diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 5e7fa1e63ce..6c73c48d8d7 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -90,9 +90,6 @@ updates: registries: - maven-central ignore: - # `com.github.spotbugs:spotbugs-annotations:4.9.0` and onwards require Java 11 - - dependency-name: "com.github.spotbugs:spotbugs-annotations" - versions: [ "[4.9.0,)" ] # Jetty 10.x does not have an internal logging API - dependency-name: "org.eclipse.jetty:*" versions: [ "[10,)" ] diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/DefaultThrowableRenderer.java b/log4j-1.2-api/src/main/java/org/apache/log4j/DefaultThrowableRenderer.java index 79129edbb34..0c84d3d0cee 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/DefaultThrowableRenderer.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/DefaultThrowableRenderer.java @@ -16,7 +16,6 @@ */ package org.apache.log4j; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InterruptedIOException; import java.io.LineNumberReader; @@ -24,6 +23,7 @@ import java.io.StringReader; import java.io.StringWriter; import java.util.ArrayList; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; import org.apache.log4j.spi.ThrowableRenderer; /** diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/FileAppender.java b/log4j-1.2-api/src/main/java/org/apache/log4j/FileAppender.java index 25b6edf77d2..69996e7da4d 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/FileAppender.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/FileAppender.java @@ -16,7 +16,6 @@ */ package org.apache.log4j; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; @@ -26,6 +25,7 @@ import java.io.Writer; import org.apache.log4j.helpers.LogLog; import org.apache.log4j.helpers.QuietWriter; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; import org.apache.log4j.spi.ErrorCode; /** diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java b/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java index 850ea52bd61..d1471558678 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/Hierarchy.java @@ -16,7 +16,6 @@ */ package org.apache.log4j; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Enumeration; import java.util.Hashtable; import java.util.Vector; @@ -25,6 +24,7 @@ import java.util.concurrent.ConcurrentMap; import org.apache.log4j.helpers.LogLog; import org.apache.log4j.helpers.OptionConverter; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; import org.apache.log4j.legacy.core.ContextUtil; import org.apache.log4j.or.ObjectRenderer; import org.apache.log4j.or.RendererMap; diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java b/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java index 647b86e5b92..9892109b9b6 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/PropertyConfigurator.java @@ -16,7 +16,6 @@ */ package org.apache.log4j; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InputStream; import java.io.InterruptedIOException; @@ -37,6 +36,7 @@ import org.apache.log4j.helpers.FileWatchdog; import org.apache.log4j.helpers.LogLog; import org.apache.log4j.helpers.OptionConverter; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; import org.apache.log4j.or.RendererMap; import org.apache.log4j.spi.Configurator; import org.apache.log4j.spi.ErrorHandler; diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/RollingFileAppender.java b/log4j-1.2-api/src/main/java/org/apache/log4j/RollingFileAppender.java index ce03ec2bc8a..315ff108d70 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/RollingFileAppender.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/RollingFileAppender.java @@ -16,7 +16,6 @@ */ package org.apache.log4j; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.io.InterruptedIOException; @@ -24,6 +23,7 @@ import org.apache.log4j.helpers.CountingQuietWriter; import org.apache.log4j.helpers.LogLog; import org.apache.log4j.helpers.OptionConverter; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; import org.apache.log4j.spi.LoggingEvent; /** diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/FileWatchdog.java b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/FileWatchdog.java index ecf686faf4f..a7c9846b2ba 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/FileWatchdog.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/FileWatchdog.java @@ -16,8 +16,8 @@ */ package org.apache.log4j.helpers; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; /** * Checks every now and then that a certain file has not changed. If it has, then call the {@link #doOnChange} method. diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/UtilLoggingLevel.java b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/UtilLoggingLevel.java index f99ad0b8c7c..5e64f0c8137 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/UtilLoggingLevel.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/UtilLoggingLevel.java @@ -18,10 +18,10 @@ import static org.apache.logging.log4j.util.Strings.toRootUpperCase; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Level; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; /** * An extension of the Level class that provides support for java.util.logging Levels. diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/package-info.java b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/package-info.java index b94af3ba614..a6e54fdb7b1 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/package-info.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/helpers/package-info.java @@ -18,7 +18,7 @@ * Log4j 1.x compatibility layer. */ @Export -@Version("2.20.3") +@Version("2.26.0") package org.apache.log4j.helpers; import org.osgi.annotation.bundle.Export; diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/internal/annotation/SuppressFBWarnings.java b/log4j-1.2-api/src/main/java/org/apache/log4j/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..25809ea12df --- /dev/null +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.log4j.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1XmlLayout.java b/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1XmlLayout.java index a508218b119..ed7ff047ae4 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1XmlLayout.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1XmlLayout.java @@ -16,12 +16,12 @@ */ package org.apache.log4j.layout; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.PrintWriter; import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Objects; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.config.Node; diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/package-info.java b/log4j-1.2-api/src/main/java/org/apache/log4j/package-info.java index 7462396fa7f..e8b23234771 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/package-info.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/package-info.java @@ -18,7 +18,7 @@ * Log4j 1.x compatibility layer. */ @Export -@Version("2.20.2") +@Version("2.26.0") package org.apache.log4j; import org.osgi.annotation.bundle.Export; diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/DOMConfigurator.java b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/DOMConfigurator.java index 5aff69da56f..17e904d08c0 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/DOMConfigurator.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/DOMConfigurator.java @@ -16,7 +16,6 @@ */ package org.apache.log4j.xml; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -34,6 +33,7 @@ import org.apache.log4j.config.PropertySetter; import org.apache.log4j.helpers.LogLog; import org.apache.log4j.helpers.OptionConverter; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; import org.apache.log4j.spi.LoggerRepository; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java index dd2a0312b06..a4e79161398 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/XmlConfiguration.java @@ -16,7 +16,6 @@ */ package org.apache.log4j.xml; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InterruptedIOException; import java.util.HashMap; @@ -36,6 +35,7 @@ import org.apache.log4j.config.Log4j1Configuration; import org.apache.log4j.config.PropertySetter; import org.apache.log4j.helpers.OptionConverter; +import org.apache.log4j.internal.annotation.SuppressFBWarnings; import org.apache.log4j.rewrite.RewritePolicy; import org.apache.log4j.spi.AppenderAttachable; import org.apache.log4j.spi.ErrorHandler; diff --git a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/package-info.java b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/package-info.java index b7c3d31598d..947cfd69652 100644 --- a/log4j-1.2-api/src/main/java/org/apache/log4j/xml/package-info.java +++ b/log4j-1.2-api/src/main/java/org/apache/log4j/xml/package-info.java @@ -18,7 +18,7 @@ * Log4j 1.x compatibility layer. */ @Export -@Version("2.20.2") +@Version("2.26.0") package org.apache.log4j.xml; import org.osgi.annotation.bundle.Export; diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/TestLogger.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/TestLogger.java index e95f1e9bb67..3dd4278ec24 100644 --- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/TestLogger.java +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/TestLogger.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.test; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.ArrayList; @@ -28,6 +27,7 @@ import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.spi.AbstractLogger; +import org.apache.logging.log4j.test.internal.annotation.SuppressFBWarnings; /** * diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/internal/annotation/SuppressFBWarnings.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..ced8d09001e --- /dev/null +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.test.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/DirectoryCleaner.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/DirectoryCleaner.java index 84c12b42109..efcd29753d9 100644 --- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/DirectoryCleaner.java +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/DirectoryCleaner.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.test.junit; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; @@ -26,6 +25,7 @@ import java.nio.file.attribute.BasicFileAttributes; import java.util.Collection; import java.util.HashSet; +import org.apache.logging.log4j.test.internal.annotation.SuppressFBWarnings; import org.junit.jupiter.api.extension.ExtensionContext; class DirectoryCleaner extends AbstractFileCleaner { diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/FileCleaner.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/FileCleaner.java index 9a9500d53a6..bf49a7ea51a 100644 --- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/FileCleaner.java +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/FileCleaner.java @@ -16,13 +16,13 @@ */ package org.apache.logging.log4j.test.junit; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Collection; import java.util.HashSet; +import org.apache.logging.log4j.test.internal.annotation.SuppressFBWarnings; import org.junit.jupiter.api.extension.ExtensionContext; class FileCleaner extends AbstractFileCleaner { diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/SerialUtil.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/SerialUtil.java index e568e415130..707fee87d3e 100644 --- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/SerialUtil.java +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/SerialUtil.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.test.junit; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -25,6 +24,7 @@ import java.io.ObjectOutput; import java.io.ObjectOutputStream; import java.io.Serializable; +import org.apache.logging.log4j.test.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.util.Constants; import org.apache.logging.log4j.util.FilteredObjectInputStream; diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/package-info.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/package-info.java index 2a37b2933ff..ca324bf73a2 100644 --- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/package-info.java +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/package-info.java @@ -15,7 +15,7 @@ * limitations under the license. */ @Export -@Version("2.24.1") +@Version("2.26.0") package org.apache.logging.log4j.test.junit; import org.osgi.annotation.bundle.Export; diff --git a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/package-info.java b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/package-info.java index 5a0ebc45101..36413766c5a 100644 --- a/log4j-api-test/src/main/java/org/apache/logging/log4j/test/package-info.java +++ b/log4j-api-test/src/main/java/org/apache/logging/log4j/test/package-info.java @@ -15,7 +15,7 @@ * limitations under the license. */ @Export -@Version("2.21.1") +@Version("2.26.0") package org.apache.logging.log4j.test; import org.osgi.annotation.bundle.Export; diff --git a/log4j-api-test/src/test/java/org/apache/logging/log4j/status/StatusLoggerDateTest.java b/log4j-api-test/src/test/java/org/apache/logging/log4j/status/StatusLoggerDateTest.java index 0978587692a..55cd1577832 100644 --- a/log4j-api-test/src/test/java/org/apache/logging/log4j/status/StatusLoggerDateTest.java +++ b/log4j-api-test/src/test/java/org/apache/logging/log4j/status/StatusLoggerDateTest.java @@ -18,11 +18,11 @@ import static org.assertj.core.api.Assertions.assertThat; -import edu.umd.cs.findbugs.annotations.Nullable; import java.time.Instant; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Properties; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/internal/annotation/SuppressFBWarnings.java b/log4j-api/src/main/java/org/apache/logging/log4j/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..2023a4cb062 --- /dev/null +++ b/log4j-api/src/main/java/org/apache/logging/log4j/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java index 1690893187f..4d36201e9e6 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLogger.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.simple; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.PrintStream; import java.text.DateFormat; import java.text.SimpleDateFormat; @@ -25,6 +24,7 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.ThreadContext; +import org.apache.logging.log4j.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.spi.AbstractLogger; diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java index 55cced06f58..3286bb356d0 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/simple/SimpleLoggerContext.java @@ -16,9 +16,9 @@ */ package org.apache.logging.log4j.simple; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.PrintStream; import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.message.ParameterizedMessageFactory; import org.apache.logging.log4j.simple.internal.SimpleProvider; diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/simple/package-info.java b/log4j-api/src/main/java/org/apache/logging/log4j/simple/package-info.java index 29139a12ace..3e5667856f2 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/simple/package-info.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/simple/package-info.java @@ -20,7 +20,7 @@ * Providers are able to be loaded at runtime. */ @Export -@Version("2.24.1") +@Version("2.26.0") package org.apache.logging.log4j.simple; import org.osgi.annotation.bundle.Export; diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusConsoleListener.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusConsoleListener.java index ce23ff5aa9b..7e7b2b2c92a 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusConsoleListener.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusConsoleListener.java @@ -18,13 +18,13 @@ import static java.util.Objects.requireNonNull; -import edu.umd.cs.findbugs.annotations.Nullable; import java.io.IOException; import java.io.OutputStream; import java.io.PrintStream; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import org.apache.logging.log4j.Level; +import org.jspecify.annotations.Nullable; /** * A {@link StatusListener} that writes to the console. diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusData.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusData.java index 1b0dcf31dee..7cef97d94c1 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusData.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusData.java @@ -19,15 +19,15 @@ import static java.util.Objects.requireNonNull; import static org.apache.logging.log4j.util.Chars.SPACE; -import edu.umd.cs.findbugs.annotations.Nullable; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.io.Serializable; import java.time.Instant; import java.time.format.DateTimeFormatter; import org.apache.logging.log4j.Level; +import org.apache.logging.log4j.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.message.Message; +import org.jspecify.annotations.Nullable; /** * The Status data. diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java index 699dc66c8a7..06d8a547b04 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/StatusLogger.java @@ -18,8 +18,6 @@ import static java.util.Objects.requireNonNull; -import edu.umd.cs.findbugs.annotations.Nullable; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InputStream; import java.net.URL; @@ -41,11 +39,13 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Marker; +import org.apache.logging.log4j.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.message.MessageFactory; import org.apache.logging.log4j.message.ParameterizedNoReferenceMessageFactory; import org.apache.logging.log4j.spi.AbstractLogger; import org.apache.logging.log4j.util.Constants; +import org.jspecify.annotations.Nullable; /** * Records events that occur in the logging system. diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/status/package-info.java b/log4j-api/src/main/java/org/apache/logging/log4j/status/package-info.java index 12fddb60395..25274a7b239 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/status/package-info.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/status/package-info.java @@ -19,7 +19,7 @@ * used by applications reporting on the status of the logging system */ @Export -@Version("2.23.1") +@Version("2.26.0") package org.apache.logging.log4j.status; import org.osgi.annotation.bundle.Export; diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyFilePropertySource.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyFilePropertySource.java index acb4310c3c3..4c665879ba0 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyFilePropertySource.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/PropertyFilePropertySource.java @@ -16,12 +16,12 @@ */ package org.apache.logging.log4j.util; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Properties; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.status.StatusLogger; /** diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java index 2b74606f081..d66c35c34c8 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/ProviderUtil.java @@ -21,7 +21,6 @@ import aQute.bnd.annotation.Cardinality; import aQute.bnd.annotation.Resolution; import aQute.bnd.annotation.spi.ServiceConsumer; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.net.URL; import java.util.Collection; @@ -35,6 +34,7 @@ import java.util.stream.Collectors; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.simple.internal.SimpleProvider; import org.apache.logging.log4j.spi.LoggerContextFactory; import org.apache.logging.log4j.spi.Provider; diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/internal/SerializationUtil.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/internal/SerializationUtil.java index 6180f47421f..3cb70668981 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/internal/SerializationUtil.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/internal/SerializationUtil.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.util.internal; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -29,6 +28,7 @@ import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.List; +import org.apache.logging.log4j.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.util.FilteredObjectInputStream; diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/package-info.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/package-info.java index 23fcfbd931d..f20d42965cc 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/util/package-info.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/package-info.java @@ -20,7 +20,7 @@ * There are no guarantees for binary or logical compatibility in this package. */ @Export -@Version("2.25.0") +@Version("2.26.0") package org.apache.logging.log4j.util; import org.osgi.annotation.bundle.Export; diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/internal/annotation/SuppressFBWarnings.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..480ad326075 --- /dev/null +++ b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.appserver.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java index 70b93443287..b520c04f5ba 100644 --- a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java +++ b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/Log4j2Logger.java @@ -16,9 +16,9 @@ */ package org.apache.logging.log4j.appserver.jetty; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.appserver.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.spi.ExtendedLogger; import org.apache.logging.log4j.spi.LoggerContext; import org.eclipse.jetty.util.log.AbstractLogger; diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/package-info.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/package-info.java index 41b7bce8119..d4e606ba467 100644 --- a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/package-info.java +++ b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/jetty/package-info.java @@ -19,7 +19,7 @@ */ @Open @Export -@Version("2.20.1") +@Version("2.26.0") package org.apache.logging.log4j.appserver.jetty; import aQute.bnd.annotation.jpms.Open; diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java index 11817c66189..2176acc494f 100644 --- a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java +++ b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/TomcatLogger.java @@ -18,13 +18,13 @@ import aQute.bnd.annotation.Resolution; import aQute.bnd.annotation.spi.ServiceProvider; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import org.apache.juli.logging.Log; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.appserver.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.spi.ExtendedLogger; import org.apache.logging.log4j.spi.LoggerContext; diff --git a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java index d8d724f4ebf..0a84c1f7081 100644 --- a/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java +++ b/log4j-appserver/src/main/java/org/apache/logging/log4j/appserver/tomcat/package-info.java @@ -18,7 +18,7 @@ * Log4j integration with Apache Tomcat 8.5 or greater. */ @Export -@Version("2.20.1") +@Version("2.26.0") package org.apache.logging.log4j.appserver.tomcat; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/AvailablePortFinder.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/AvailablePortFinder.java index ffd7d0b2769..8758a6e0bb5 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/AvailablePortFinder.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/AvailablePortFinder.java @@ -16,13 +16,13 @@ */ package org.apache.logging.log4j.core.test; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.net.DatagramSocket; import java.net.ServerSocket; import java.util.NoSuchElementException; import java.util.concurrent.atomic.AtomicInteger; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.test.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Closer; import org.apache.logging.log4j.status.StatusLogger; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/GcFreeLoggingTestUtil.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/GcFreeLoggingTestUtil.java index ace41854670..a299334b051 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/GcFreeLoggingTestUtil.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/GcFreeLoggingTestUtil.java @@ -21,7 +21,6 @@ import com.google.monitoring.runtime.instrumentation.AllocationRecorder; import com.google.monitoring.runtime.instrumentation.Sampler; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.net.URL; import java.nio.charset.Charset; @@ -35,6 +34,7 @@ import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.MarkerManager; import org.apache.logging.log4j.ThreadContext; +import org.apache.logging.log4j.core.test.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Constants; import org.apache.logging.log4j.message.StringMapMessage; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/JdbcH2TestHelper.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/JdbcH2TestHelper.java index 95ee5330ca0..e8dcc9fa60a 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/JdbcH2TestHelper.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/JdbcH2TestHelper.java @@ -16,13 +16,13 @@ */ package org.apache.logging.log4j.core.test.appender.db.jdbc; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.apache.logging.log4j.core.appender.db.jdbc.AbstractConnectionSource; import org.apache.logging.log4j.core.appender.db.jdbc.ConnectionSource; +import org.apache.logging.log4j.core.test.internal.annotation.SuppressFBWarnings; @SuppressFBWarnings("HARD_CODE_PASSWORD") public class JdbcH2TestHelper { diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/package-info.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/package-info.java index 638390f63ab..b49536fd023 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/package-info.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/package-info.java @@ -15,7 +15,7 @@ * limitations under the license. */ @Export -@Version("2.20.3") +@Version("2.26.0") package org.apache.logging.log4j.core.test.appender.db.jdbc; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/internal/annotation/SuppressFBWarnings.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..c30fd886e4b --- /dev/null +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.core.test.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/AbstractExternalFileCleaner.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/AbstractExternalFileCleaner.java index 4477b55da72..9fa720e66ec 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/AbstractExternalFileCleaner.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/AbstractExternalFileCleaner.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.test.junit; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.io.PrintStream; @@ -28,6 +27,7 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import org.apache.logging.log4j.core.test.internal.annotation.SuppressFBWarnings; import org.junit.Assert; import org.junit.rules.ExternalResource; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/JdbcRule.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/JdbcRule.java index d6f76b4fa26..76065470d51 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/JdbcRule.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/JdbcRule.java @@ -16,13 +16,13 @@ */ package org.apache.logging.log4j.core.test.junit; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.Objects; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.core.appender.db.jdbc.ConnectionSource; +import org.apache.logging.log4j.core.test.internal.annotation.SuppressFBWarnings; import org.junit.rules.TestRule; import org.junit.runner.Description; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/package-info.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/package-info.java index 4103b148043..a92fa4c3452 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/package-info.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/junit/package-info.java @@ -20,7 +20,7 @@ * @see org.junit.rules.TestRule */ @Export -@Version("2.23.1") +@Version("2.26.0") package org.apache.logging.log4j.core.test.junit; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/mock/MockTcpSyslogServer.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/mock/MockTcpSyslogServer.java index 7fecbe9ef81..87a87030474 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/mock/MockTcpSyslogServer.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/mock/MockTcpSyslogServer.java @@ -16,11 +16,11 @@ */ package org.apache.logging.log4j.core.test.net.mock; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; +import org.apache.logging.log4j.core.test.internal.annotation.SuppressFBWarnings; public class MockTcpSyslogServer extends MockSyslogServer { private final ServerSocket serverSocket; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/mock/package-info.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/mock/package-info.java index 466921018df..a7501fb3cd1 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/mock/package-info.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/mock/package-info.java @@ -15,7 +15,7 @@ * limitations under the license. */ @Export -@Version("2.21.0") +@Version("2.26.0") package org.apache.logging.log4j.core.test.net.mock; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/ssl/TlsSyslogTestUtil.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/ssl/TlsSyslogTestUtil.java index bb3b7691b63..a67aa3d7a93 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/ssl/TlsSyslogTestUtil.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/ssl/TlsSyslogTestUtil.java @@ -16,9 +16,9 @@ */ package org.apache.logging.log4j.core.test.net.ssl; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Random; +import org.apache.logging.log4j.core.test.internal.annotation.SuppressFBWarnings; @SuppressFBWarnings("PREDICTABLE_RANDOM") public class TlsSyslogTestUtil { diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/ssl/package-info.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/ssl/package-info.java index 97a787665d0..734cd0dc601 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/ssl/package-info.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/net/ssl/package-info.java @@ -15,7 +15,7 @@ * limitations under the license. */ @Export -@Version("2.20.2") +@Version("2.26.0") package org.apache.logging.log4j.core.test.net.ssl; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/package-info.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/package-info.java index 2199930f31f..70fbbc2b6f5 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/package-info.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/package-info.java @@ -15,7 +15,7 @@ * limitations under the license. */ @Export -@Version("2.25.0") +@Version("2.26.0") @BaselineIgnore("2.25.0") package org.apache.logging.log4j.core.test; diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/smtp/SimpleSmtpServer.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/smtp/SimpleSmtpServer.java index c02b115d22e..42f3b05eacc 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/smtp/SimpleSmtpServer.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/smtp/SimpleSmtpServer.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.test.smtp; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -26,6 +25,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import org.apache.logging.log4j.core.test.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.util.Strings; /** diff --git a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/smtp/package-info.java b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/smtp/package-info.java index 3d4e74b7a9a..8b7122660aa 100644 --- a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/smtp/package-info.java +++ b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/smtp/package-info.java @@ -15,7 +15,7 @@ * limitations under the license. */ @Export -@Version("2.20.2") +@Version("2.26.0") package org.apache.logging.log4j.core.test.smtp; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderReconnectTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderReconnectTest.java index 619749eacf2..ebba3ba42fd 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderReconnectTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/SocketAppenderReconnectTest.java @@ -21,7 +21,6 @@ import static org.awaitility.Awaitility.await; import static org.junit.jupiter.api.Assertions.fail; -import edu.umd.cs.findbugs.annotations.Nullable; import java.net.InetSocketAddress; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -48,6 +47,7 @@ import org.apache.logging.log4j.core.net.ssl.SslKeyStoreConstants; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.test.junit.UsingStatusListener; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.CleanupMode; import org.junit.jupiter.api.io.TempDir; diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/xml/XmlConfigurationPropsTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/xml/XmlConfigurationPropsTest.java index 3437f787b8a..d421d58c3aa 100644 --- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/xml/XmlConfigurationPropsTest.java +++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/xml/XmlConfigurationPropsTest.java @@ -22,7 +22,6 @@ import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; -import edu.umd.cs.findbugs.annotations.Nullable; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.test.junit.LoggerContextSource; @@ -31,6 +30,7 @@ import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.test.junit.SetTestProperty; import org.apache.logging.log4j.test.junit.UsingStatusLoggerMock; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.junit.jupiter.MockitoExtension; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java index 6db471cb87a..da62cc24855 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/LoggerContext.java @@ -19,7 +19,6 @@ import static org.apache.logging.log4j.core.jmx.internal.JmxUtil.isJmxDisabled; import static org.apache.logging.log4j.core.util.ShutdownCallbackRegistry.SHUTDOWN_HOOK_MARKER; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; @@ -42,6 +41,7 @@ import org.apache.logging.log4j.core.config.NullConfiguration; import org.apache.logging.log4j.core.config.Reconfigurable; import org.apache.logging.log4j.core.impl.Log4jLogEvent; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.jmx.Server; import org.apache.logging.log4j.core.util.Cancellable; import org.apache.logging.log4j.core.util.Constants; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java index 75f933790d4..85d3c8da83e 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/FileManager.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -42,6 +41,7 @@ import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Constants; import org.apache.logging.log4j.core.util.FileUtils; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java index 6a49f181c4c..5cd96e5430a 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpURLConnectionManager.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -33,6 +32,7 @@ import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationException; import org.apache.logging.log4j.core.config.Property; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier; import org.apache.logging.log4j.core.net.ssl.SslConfiguration; import org.apache.logging.log4j.core.util.IOUtils; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcDatabaseManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcDatabaseManager.java index 54ac2aace98..34a932f274f 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcDatabaseManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/JdbcDatabaseManager.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.db.jdbc; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.Reader; import java.io.Serializable; import java.io.StringReader; @@ -50,6 +49,7 @@ import org.apache.logging.log4j.core.appender.db.DbAppenderLoggingException; import org.apache.logging.log4j.core.config.plugins.convert.DateTypeConverter; import org.apache.logging.log4j.core.config.plugins.convert.TypeConverters; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Closer; import org.apache.logging.log4j.core.util.Log4jThread; import org.apache.logging.log4j.message.MapMessage; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/package-info.java index 49a64405d80..02ea4343fc5 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/db/jdbc/package-info.java @@ -19,7 +19,7 @@ * a JDBC driver on your classpath for the database you wish to log to. */ @Export -@Version("2.20.1") +@Version("2.26.0") package org.apache.logging.log4j.core.appender.db.jdbc; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/AbstractRolloverStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/AbstractRolloverStrategy.java index 6bc352b993f..f9953d60186 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/AbstractRolloverStrategy.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/AbstractRolloverStrategy.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.nio.file.DirectoryStream; @@ -32,6 +31,7 @@ import org.apache.logging.log4j.LoggingException; import org.apache.logging.log4j.core.appender.rolling.action.Action; import org.apache.logging.log4j.core.appender.rolling.action.CompositeAction; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.lookup.StrSubstitutor; import org.apache.logging.log4j.core.pattern.NotANumber; import org.apache.logging.log4j.core.util.Integers; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java index 969e37f5812..ea1bae76696 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DefaultRolloverStrategy.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -42,6 +41,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginConfiguration; import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.core.config.plugins.PluginFactory; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.lookup.StrSubstitutor; import org.apache.logging.log4j.core.util.Integers; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DirectWriteRolloverStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DirectWriteRolloverStrategy.java index 7694ce48a48..e105fa455b1 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DirectWriteRolloverStrategy.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/DirectWriteRolloverStrategy.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -41,6 +40,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginConfiguration; import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.core.config.plugins.PluginFactory; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.lookup.StrSubstitutor; import org.apache.logging.log4j.core.util.Integers; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/FileExtension.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/FileExtension.java index a7622b2c5f8..e62419b6858 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/FileExtension.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/FileExtension.java @@ -16,13 +16,13 @@ */ package org.apache.logging.log4j.core.appender.rolling; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.util.Objects; import org.apache.logging.log4j.core.appender.rolling.action.Action; import org.apache.logging.log4j.core.appender.rolling.action.CommonsCompressAction; import org.apache.logging.log4j.core.appender.rolling.action.GzCompressAction; import org.apache.logging.log4j.core.appender.rolling.action.ZipCompressAction; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; /** * Enumerates over supported file extensions for compression. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java index 8be7dd4f9c4..afdb7416585 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; @@ -46,6 +45,7 @@ import org.apache.logging.log4j.core.appender.rolling.action.AbstractAction; import org.apache.logging.log4j.core.appender.rolling.action.Action; import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Constants; import org.apache.logging.log4j.core.util.FileUtils; import org.apache.logging.log4j.core.util.Log4jThreadFactory; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java index bd41ce31c7a..1c0a0241fe6 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingRandomAccessFileManager.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.io.OutputStream; @@ -28,6 +27,7 @@ import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.AppenderLoggingException; import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.FileUtils; import org.apache.logging.log4j.core.util.NullOutputStream; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/TimeBasedTriggeringPolicy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/TimeBasedTriggeringPolicy.java index 54f406ec8c3..5f7dedd50da 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/TimeBasedTriggeringPolicy.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/TimeBasedTriggeringPolicy.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; import org.apache.logging.log4j.core.Core; @@ -25,6 +24,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginAttribute; import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Integers; /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/AbstractPathAction.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/AbstractPathAction.java index c8d251f672f..b795d449bf3 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/AbstractPathAction.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/AbstractPathAction.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling.action; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.nio.file.FileVisitOption; import java.nio.file.FileVisitor; @@ -29,6 +28,7 @@ import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.lookup.StrSubstitutor; /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/FileRenameAction.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/FileRenameAction.java index e7bb2376db7..5db648a1263 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/FileRenameAction.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/FileRenameAction.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling.action; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.io.PrintWriter; @@ -25,6 +24,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; /** * File rename action. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PosixViewAttributeAction.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PosixViewAttributeAction.java index 51e038f1c13..f5149bb7fa8 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PosixViewAttributeAction.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/action/PosixViewAttributeAction.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.appender.rolling.action; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.FileVisitor; @@ -37,6 +36,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginConfiguration; import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.lookup.StrSubstitutor; import org.apache.logging.log4j.core.util.FileUtils; import org.apache.logging.log4j.util.Strings; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java index 92d351e2de9..ec76a76d602 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLoggerConfig.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.async; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; @@ -36,6 +35,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginConfiguration; import org.apache.logging.log4j.core.config.plugins.PluginElement; import org.apache.logging.log4j.core.config.plugins.validation.constraints.Required; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.jmx.RingBufferAdmin; import org.apache.logging.log4j.core.util.Booleans; import org.apache.logging.log4j.spi.AbstractLogger; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java index d6143cdc158..dd50987f257 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/ConfigurationSource.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.config; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -34,6 +33,7 @@ import java.nio.file.Path; import java.util.Objects; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.net.UrlConnectionFactory; import org.apache.logging.log4j.core.util.FileUtils; import org.apache.logging.log4j.core.util.Loader; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java index bf039a2dafc..43016cfbed9 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/DefaultConfigurationBuilder.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.config.builder.impl; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.OutputStream; import java.io.StringReader; @@ -60,6 +59,7 @@ import org.apache.logging.log4j.core.config.builder.api.RootLoggerComponentBuilder; import org.apache.logging.log4j.core.config.builder.api.ScriptComponentBuilder; import org.apache.logging.log4j.core.config.builder.api.ScriptFileComponentBuilder; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Integers; import org.apache.logging.log4j.core.util.Throwables; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/package-info.java index 32a69487d75..c7feac338f5 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/builder/impl/package-info.java @@ -20,7 +20,7 @@ * @since 2.4 */ @Export -@Version("2.25.0") +@Version("2.26.0") package org.apache.logging.log4j.core.config.builder.impl; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java index 6c81224c2d6..8b57df7fcd3 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java @@ -18,7 +18,6 @@ import static org.apache.logging.log4j.util.Strings.toRootLowerCase; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.math.BigDecimal; import java.math.BigInteger; @@ -37,6 +36,7 @@ import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.config.plugins.Plugin; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.CronExpression; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.util.Constants; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/package-info.java index a4300945314..e7d16d7f33f 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/package-info.java @@ -20,7 +20,7 @@ * attributes in plugin factory methods. */ @Export -@Version("2.24.0") +@Version("2.26.0") package org.apache.logging.log4j.core.config.plugins.convert; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java index 53a32a99edf..810938c2eec 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.config.plugins.util; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -38,6 +37,7 @@ import java.util.jar.JarFile; import java.util.jar.JarInputStream; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Loader; import org.apache.logging.log4j.status.StatusLogger; import org.osgi.framework.FrameworkUtil; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/package-info.java index c2c42b8d5b7..e3956726151 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/package-info.java @@ -19,7 +19,7 @@ * Utility and manager classes for Log4j 2 plugins. */ @Export -@Version("2.20.2") +@Version("2.26.0") package org.apache.logging.log4j.core.config.plugins.util; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java index 1a1c22835a7..31c43983e71 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/StatusConfiguration.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.config.status; -import edu.umd.cs.findbugs.annotations.Nullable; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; @@ -30,6 +29,7 @@ import org.apache.logging.log4j.core.util.NetUtils; import org.apache.logging.log4j.status.StatusConsoleListener; import org.apache.logging.log4j.status.StatusLogger; +import org.jspecify.annotations.Nullable; /** * Configuration for setting up the {@link StatusLogger} fallback listener. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/package-info.java index 1e20784cf97..703f79aa003 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/status/package-info.java @@ -19,7 +19,7 @@ * Configuration classes for the {@link org.apache.logging.log4j.status.StatusLogger} API. */ @Export -@Version("2.20.2") +@Version("2.26.0") package org.apache.logging.log4j.core.config.status; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java index 6caeec59ae5..3218589bb1d 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/xml/XmlConfiguration.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.config.xml; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -41,6 +40,7 @@ import org.apache.logging.log4j.core.config.Reconfigurable; import org.apache.logging.log4j.core.config.plugins.util.PluginType; import org.apache.logging.log4j.core.config.status.StatusConfiguration; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Closer; import org.apache.logging.log4j.core.util.Integers; import org.apache.logging.log4j.core.util.Loader; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java index 62ef3a596e0..cc1f2e6c029 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java @@ -18,7 +18,6 @@ import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.InputStream; import java.net.URI; @@ -44,6 +43,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.core.config.plugins.PluginConfiguration; import org.apache.logging.log4j.core.filter.mutable.KeyValuePairConfig; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.AuthorizationProvider; import org.apache.logging.log4j.core.util.KeyValuePair; import org.apache.logging.log4j.core.util.internal.HttpInputStreamUtil; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/package-info.java index bb45186e7ad..f02feaa580e 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/package-info.java @@ -22,7 +22,7 @@ * {@link org.apache.logging.log4j.core.Filter#ELEMENT_TYPE filter}. */ @Export -@Version("2.25.0") +@Version("2.26.0") package org.apache.logging.log4j.core.filter; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/internal/annotation/SuppressFBWarnings.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..ffad5257322 --- /dev/null +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.core.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java index e91cb4c3884..d8927d6737d 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/LoggerContextAdmin.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.jmx; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.ByteArrayInputStream; @@ -44,6 +43,7 @@ import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.ConfigurationFactory; import org.apache.logging.log4j.core.config.ConfigurationSource; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Closer; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.util.Strings; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/package-info.java index 480cc2c6b27..dd13c9482a2 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/jmx/package-info.java @@ -18,7 +18,7 @@ * Log4j 2 JMX support. */ @Export -@Version("2.23.0") +@Version("2.26.0") package org.apache.logging.log4j.core.jmx; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java index 9889a6a7c2b..58e3560711c 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java @@ -19,7 +19,6 @@ import static org.apache.logging.log4j.util.Chars.LF; import static org.apache.logging.log4j.util.Chars.NUL; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -43,6 +42,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.core.config.plugins.PluginElement; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.layout.internal.ExcludeChecker; import org.apache.logging.log4j.core.layout.internal.IncludeChecker; import org.apache.logging.log4j.core.layout.internal.ListChecker; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java index 4debdfab722..b5f5cc9f622 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/HtmlLayout.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.layout; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InterruptedIOException; import java.io.LineNumberReader; @@ -37,6 +36,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute; import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory; import org.apache.logging.log4j.core.config.plugins.PluginFactory; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.pattern.DatePatternConverter; import org.apache.logging.log4j.core.util.Transform; import org.apache.logging.log4j.util.Strings; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MainMapLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MainMapLookup.java index 2ff23cc38f9..eda565875b0 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MainMapLookup.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/MainMapLookup.java @@ -16,10 +16,10 @@ */ package org.apache.logging.log4j.core.lookup; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Map; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.config.plugins.Plugin; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; /** * A map-based lookup for main arguments. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java index 1aa2f5e18dd..cfd6a9003d3 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/JndiManager.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.net; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.net.URI; import java.net.URISyntaxException; import java.util.Properties; @@ -26,6 +25,7 @@ import javax.naming.NamingException; import org.apache.logging.log4j.core.appender.AbstractManager; import org.apache.logging.log4j.core.appender.ManagerFactory; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.JndiCloser; import org.apache.logging.log4j.util.PropertiesUtil; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java index f44132df6df..72376d39650 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/SmtpManager.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.net; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; @@ -41,6 +40,7 @@ import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.layout.AbstractStringLayout.Serializer; import org.apache.logging.log4j.core.layout.PatternLayout; import org.apache.logging.log4j.core.net.ssl.SslConfiguration; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java index ac53c1b4a71..75d4306b688 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/TcpSocketManager.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.net; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.OutputStream; import java.io.Serializable; @@ -34,6 +33,7 @@ import org.apache.logging.log4j.core.appender.AppenderLoggingException; import org.apache.logging.log4j.core.appender.ManagerFactory; import org.apache.logging.log4j.core.appender.OutputStreamManager; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Closer; import org.apache.logging.log4j.core.util.Log4jThread; import org.apache.logging.log4j.core.util.NullOutputStream; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java index fe57d821d96..68b933bfea7 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/UrlConnectionFactory.java @@ -18,7 +18,6 @@ import static org.apache.logging.log4j.util.Strings.toRootLowerCase; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.net.HttpURLConnection; import java.net.JarURLConnection; @@ -30,6 +29,7 @@ import javax.net.ssl.HttpsURLConnection; import javax.net.ssl.SSLContext; import org.apache.logging.log4j.core.config.ConfigurationFactory; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.net.ssl.LaxHostnameVerifier; import org.apache.logging.log4j.core.net.ssl.SslConfiguration; import org.apache.logging.log4j.core.net.ssl.SslConfigurationFactory; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/package-info.java index 9a23c5b1374..089d4b3f261 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/package-info.java @@ -25,7 +25,7 @@ * */ @Export -@Version("2.20.3") +@Version("2.26.0") package org.apache.logging.log4j.core.net; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/FilePasswordProvider.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/FilePasswordProvider.java index f2407a979b2..d264c5e570b 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/FilePasswordProvider.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/FilePasswordProvider.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.net.ssl; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; @@ -26,6 +25,7 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; /** * PasswordProvider that reads password from a file. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/LaxHostnameVerifier.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/LaxHostnameVerifier.java index 0068619c70c..3e2ef8e253f 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/LaxHostnameVerifier.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/LaxHostnameVerifier.java @@ -16,9 +16,9 @@ */ package org.apache.logging.log4j.core.net.ssl; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLSession; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; /** * An HostnameVerifier which accepts everything. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/package-info.java index 7f7b26c2827..748173b9a3e 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/net/ssl/package-info.java @@ -18,7 +18,7 @@ * Log4j 2 SSL support */ @Export -@Version("2.20.3") +@Version("2.26.0") package org.apache.logging.log4j.core.net.ssl; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/package-info.java index 00552976b76..45bc926c52c 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/package-info.java @@ -18,7 +18,7 @@ * Implementation of Log4j 2. */ @Export -@Version("2.24.2") +@Version("2.26.0") package org.apache.logging.log4j.core; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptFile.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptFile.java index 8f55ab48cba..125cefbf408 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptFile.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/script/ScriptFile.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.script; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -30,6 +29,7 @@ import org.apache.logging.log4j.core.config.plugins.Plugin; import org.apache.logging.log4j.core.config.plugins.PluginAttribute; import org.apache.logging.log4j.core.config.plugins.PluginFactory; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.ExtensionLanguageMapping; import org.apache.logging.log4j.core.util.FileUtils; import org.apache.logging.log4j.core.util.IOUtils; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/Generate.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/Generate.java index 873729a4bc5..81afa461dcd 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/Generate.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/Generate.java @@ -16,11 +16,11 @@ */ package org.apache.logging.log4j.core.tools; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.PrintStream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.util.Integers; /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/package-info.java index 8cbd2eb92fa..38f664c29c9 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/package-info.java @@ -18,7 +18,7 @@ * Log4j 2 command line tools. */ @Export -@Version("2.20.1") +@Version("2.26.0") package org.apache.logging.log4j.core.tools; import org.osgi.annotation.bundle.Export; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java index 6c1dcbb9866..fb0b56bfce4 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/tools/picocli/CommandLine.java @@ -22,7 +22,6 @@ import static org.apache.logging.log4j.util.Strings.toRootLowerCase; import static org.apache.logging.log4j.util.Strings.toRootUpperCase; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.PrintStream; import java.lang.annotation.ElementType; @@ -70,6 +69,7 @@ import java.util.UUID; import java.util.concurrent.Callable; import java.util.regex.Pattern; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.core.tools.picocli.CommandLine.Help.Ansi.IStyle; import org.apache.logging.log4j.core.tools.picocli.CommandLine.Help.Ansi.Style; import org.apache.logging.log4j.core.tools.picocli.CommandLine.Help.Ansi.Text; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java index 5eb467d0bed..74ac05e64a2 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/FileUtils.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.util; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.net.URI; @@ -34,6 +33,7 @@ import java.util.Objects; import java.util.Set; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.status.StatusLogger; /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NameUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NameUtil.java index c1f9c6d5a86..1c2b32d0d8d 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NameUtil.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NameUtil.java @@ -16,11 +16,11 @@ */ package org.apache.logging.log4j.core.util; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.nio.charset.Charset; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Objects; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.util.Strings; /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java index 22286c636d5..92a85a6fa19 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/NetUtils.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.core.util; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.net.InetAddress; import java.net.MalformedURLException; @@ -32,6 +31,7 @@ import java.util.List; import java.util.function.Function; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.status.StatusLogger; /** diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java index 5a79ab8b9ab..e7f4757b21e 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Source.java @@ -18,7 +18,6 @@ import static java.util.Objects.requireNonNull; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; @@ -30,6 +29,7 @@ import java.util.Objects; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.config.ConfigurationSource; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.util.Strings; import org.jspecify.annotations.NullMarked; diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Throwables.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Throwables.java index 7c97d495ba4..cf00631f9f8 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Throwables.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/Throwables.java @@ -18,7 +18,6 @@ import static java.util.Objects.requireNonNull; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.io.InterruptedIOException; import java.io.LineNumberReader; @@ -29,6 +28,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.apache.logging.log4j.core.internal.annotation.SuppressFBWarnings; /** * Helps with Throwable objects. diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/package-info.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/package-info.java index 932e8bc0800..b9efa51956b 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/util/package-info.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/util/package-info.java @@ -18,7 +18,7 @@ * Log4j 2 helper classes. */ @Export -@Version("2.25.0") +@Version("2.26.0") package org.apache.logging.log4j.core.util; import org.osgi.annotation.bundle.Export; diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/Log4jBridgeHandler.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/Log4jBridgeHandler.java index efc3e563987..40a8a0d2f02 100644 --- a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/Log4jBridgeHandler.java +++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/Log4jBridgeHandler.java @@ -17,7 +17,6 @@ package org.apache.logging.log4j.jul; // note: NO import of Logger, Level, LogManager to prevent conflicts JUL/log4j -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.Enumeration; @@ -28,6 +27,7 @@ import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.config.Configuration; import org.apache.logging.log4j.core.config.LoggerConfig; +import org.apache.logging.log4j.jul.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.spi.ExtendedLogger; import org.apache.logging.log4j.status.StatusLogger; diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/internal/annotation/SuppressFBWarnings.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..0fddf126cea --- /dev/null +++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.jul.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/package-info.java b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/package-info.java index dd227473066..d7c5b41f89b 100644 --- a/log4j-jul/src/main/java/org/apache/logging/log4j/jul/package-info.java +++ b/log4j-jul/src/main/java/org/apache/logging/log4j/jul/package-info.java @@ -15,7 +15,7 @@ * limitations under the license. */ @Export -@Version("2.20.2") +@Version("2.26.0") package org.apache.logging.log4j.jul; import org.osgi.annotation.bundle.Export; diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/internal/annotation/SuppressFBWarnings.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..4328e28efc0 --- /dev/null +++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.layout.template.json.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/Uris.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/Uris.java index 957326d9ad6..d1c69d8788f 100644 --- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/Uris.java +++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/Uris.java @@ -18,7 +18,6 @@ import static org.apache.logging.log4j.util.Strings.toRootLowerCase; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; @@ -33,6 +32,7 @@ import java.util.List; import java.util.Objects; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.layout.template.json.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.util.LoaderUtil; diff --git a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/package-info.java b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/package-info.java index dbb7814d27a..a806ff5105f 100644 --- a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/package-info.java +++ b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/util/package-info.java @@ -15,7 +15,7 @@ * limitations under the License. */ @Export -@Version("2.22.0") +@Version("2.26.0") @Open("org.apache.logging.log4j.core") package org.apache.logging.log4j.layout.template.json.util; diff --git a/log4j-parent/pom.xml b/log4j-parent/pom.xml index 6328ac4c9b0..dcb10255a46 100644 --- a/log4j-parent/pom.xml +++ b/log4j-parent/pom.xml @@ -132,8 +132,6 @@ 1.1.2 4.14.0 3.6.0 - - 4.8.6 2.7.18 5.3.39 2.0.3 @@ -163,7 +161,6 @@ $[bnd-module-name];access=0;modules=" biz.aQute.bnd.annotation, com.google.errorprone.annotations, - com.github.spotbugs.annotations, org.osgi.annotation.bundle, org.osgi.annotation.versioning " @@ -877,13 +874,6 @@ provided - - com.github.spotbugs - spotbugs-annotations - ${spotbugs-annotations.version} - provided - - @@ -1124,11 +1114,6 @@ org.osgi.annotation.versioning ${osgi.annotation.versioning.version} - - com.github.spotbugs - spotbugs-annotations - ${spotbugs-annotations.version} - diff --git a/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/internal/annotation/SuppressFBWarnings.java b/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/internal/annotation/SuppressFBWarnings.java new file mode 100644 index 00000000000..f139a9c8094 --- /dev/null +++ b/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/internal/annotation/SuppressFBWarnings.java @@ -0,0 +1,31 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to you under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.logging.log4j.perf.internal.annotation; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * Annotation to suppress Spotbugs warnings. + */ +@Retention(RetentionPolicy.CLASS) +public @interface SuppressFBWarnings { + + String[] value() default {}; + + String justification() default ""; +} diff --git a/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java b/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java index 83a4d45672b..baa44d234a6 100644 --- a/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java +++ b/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.perf.jmh; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @@ -29,6 +28,7 @@ import org.apache.logging.log4j.core.config.ConfigurationFactory; import org.apache.logging.log4j.core.config.DefaultConfiguration; import org.apache.logging.log4j.core.util.Closer; +import org.apache.logging.log4j.perf.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.status.StatusLogger; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; diff --git a/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java b/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java index e58d7613b69..75c614588b0 100644 --- a/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java +++ b/log4j-perf-test/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java @@ -16,7 +16,6 @@ */ package org.apache.logging.log4j.perf.jmh; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @@ -29,6 +28,7 @@ import org.apache.logging.log4j.core.config.ConfigurationFactory; import org.apache.logging.log4j.core.config.DefaultConfiguration; import org.apache.logging.log4j.core.util.Closer; +import org.apache.logging.log4j.perf.internal.annotation.SuppressFBWarnings; import org.apache.logging.log4j.status.StatusLogger; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; diff --git a/src/changelog/.2.x.x/3985_remove_spotbugs_annotations.xml b/src/changelog/.2.x.x/3985_remove_spotbugs_annotations.xml new file mode 100644 index 00000000000..a2c7b3b8b20 --- /dev/null +++ b/src/changelog/.2.x.x/3985_remove_spotbugs_annotations.xml @@ -0,0 +1,13 @@ + + + + + + Remove the `com.github.spotbugs:spotbugs-annotations` dependency + +