This is a vote to release the Apache Log4j 3.0.0-beta1.

Website: https://logging.staged.apache.org/log4j
GitHub: https://github.com/apache/logging-log4j2
Commit: c5dbdcfeb0216e1e3e333436e9b4d04cc3b8e6fd
Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j
Nexus:
https://repository.apache.org/content/repositories/orgapachelogging-1246
Signing key: 0x077e8893a6dcc33dd4a4d5b256e73ba9a0b592d0

Please download, test, and cast your votes on this mailing list.

[ ] +1, release the artifacts
[ ] -1, don't release, because...

This vote is open for 72 hours and will pass unless getting a
net negative vote count. All votes are welcome and we encourage
everyone to test the release, but only the Logging Services PMC
votes are officially counted.

== Review Kit

The minimum set of steps needed to review the uploaded distribution
files in the Subversion repository can be summarized as follows:

    # Check out the distribution
    svn co https://dist.apache.org/repos/... && cd $_

    # Verify checksums
    shasum --check *.sha512

    # Verify signatures
    wget -O - https://downloads.apache.org/logging/KEYS | gpg --import
    for sigFile in *.asc; do gpg --verify $sigFile; done

    # Verify reproduciblity
    umask 0022
    unzip *-src.zip -d src
    cd src
    export NEXUS_REPO=https://repository.apache.org/content/...
    sh mvnw -Prelease \
        verify artifact:compare \
        -Dreference.repo=$NEXUS_REPO \
        -Dcyclonedx.skip

Some SBOM discrepancy is causing reproducibility mismatch, hence the
`-Dcyclonedx.skip`. Since `2.x` and `main` are greatly diverged, I couldn't
figure out the missing piece yet.

== Release Notes

This is the first beta release of the upcoming major release, i.e., `3.0.0`.

=== Added

* Add annotations for nullability. (LOG4J2-1477)
* Remove deprecated code. (LOG4J2-2493)
* Add a more generalized dependency injection system to plugins inspired by
JSR 330. (LOG4J2-2803)
* Add and enhance structured properties for per-context settings outside
configuration files. (1473)
* Automate artifact publishing and release preparation. (LOG4J2-3466)
* Add support for dependency injection of plugins into container types such
as `Optional<T>`, `Collection<T>`, `Set<T>`, `Stream<T>`, `List<T>`, and
`Map<String, T>`. (LOG4J2-3496)
* Add support for `ConstraintValidator` in plugin classes. (LOG4J2-3497)

=== Changed

* Remove liquibase-log4j2 maven module (#1193)
* Make the output of annotation processing reproducible. (#1520)
* Replace `synchronized` blocks with locks for improved performance with
virtual threads. (#1532)
* Removes additional `isFiltered` checks in `AsyncLoggerConfig`. (#1550)
* Ignore exceptions thrown by PropertySources. Eliminate ClassCastException
when SimpleLoggerContext is used. (spring-projects/spring-boot#33450, #1799)
* Update `com.lmax:disruptor` to version `4.0.0` (#1829)
* Migrate most tests to JUnit 5. This includes a more powerful set of test
extensions. (LOG4J2-2653)
* Make Log4j use its own BOM. (LOG4J2-3511)
* Change encoding of HTTP Basic Authentication to UTF-8. (#1970)
* Upgraded the required compiler version to Java 17
* Upgraded the required runtime version to Java 17
* Update `actions/checkout` to version `4.1.1` (#1869)
* Update `actions/setup-java` to version `3.13.0` (#1809)
* Update `actions/setup-python` to version `4.7.1` (#1831)
* Update `ch.qos.logback:logback-classic` to version `1.4.14` (#2028)
* Update `com.datastax.cassandra:cassandra-driver-core` to version `3.11.5`
(#1889)
* Update `com.fasterxml.jackson:jackson-bom` to version `2.16.0` (#1974)
* Update `com.github.luben:zstd-jni` to version `1.5.5-11` (#2032)
* Update `com.github.spotbugs:spotbugs-maven-plugin` to version `4.7.3.6`
(#1879)
* Update `com.github.tomakehurst:wiremock-jre8` to version `2.35.1` (#1765)
* Update `com.google.errorprone:error_prone_core` to version `2.23.0`
(#1871)
* Update `com.google.guava:guava-testlib` to version `32.1.3-jre` (#1934)
* Update `com.h2database:h2` to version `2.2.224` (#1917)
* Update `commons-codec:commons-codec` to version `1.16.0` (#2054)
* Update `commons-io:commons-io` to version `2.15.1` (#2035)
* Update `commons-logging:commons-logging` to version `1.3.0` (#2046)
* Update `de.flapdoodle.reverse:de.flapdoodle.reverse` to version `1.7.2`
(#2000)
* Update `io.netty:netty-bom` to version `4.1.101.Final` (#1999)
* Update `net.java.dev.jna:jna` to version `5.14.0` (#2082)
* Update `org.apache.aries.spifly:org.apache.aries.spifly.dynamic.bundle`
to version `1.3.7` (#2053)
* Update `org.apache.commons:commons-compress` to version `1.25.0` (#2055)
* Update `org.apache.commons:commons-csv` to version `1.10.0` (#2041)
* Update `org.apache.commons:commons-dbcp2` to version `2.11.0` (#2044)
* Update `org.apache.commons:commons-lang3` to version `3.14.0` (#2036)
* Update `org.apache.commons:commons-pool2` to version `2.12.0` (#2038)
* Update `org.apache.groovy:groovy-bom` to version `4.0.16` (#2039)
* Update `org.apache.maven:maven-core` to version `3.9.6` (#2049)
* Update `org.apache.maven.surefire:surefire-junit47` to version `3.2.2`
(#2051)
* Update `org.apache.tomcat:tomcat-juli` to version `10.1.16` (#2052)
* Update `org.codehaus.plexus:plexus-utils` to version `3.5.1` (#2061)
* Update `org.eclipse.jetty:jetty-bom` to version `9.4.53.v20231009` (#1931)
* Update `org.eclipse.persistence:org.eclipse.persistence.jpa` to version
`2.7.13` (#1933)
* Update `org.eclipse.platform:org.eclipse.osgi` to version `3.18.600`
(#2064)
* Update `org.elasticsearch.client:elasticsearch-rest-high-level-client` to
version `7.17.15` (#1996)
* Update `org.graalvm.truffle:truffle-api` to version `23.1.1` (#1872)
* Update `org.jctools:jctools-core` to version `4.0.2` (#1995)
* Update `org.jmdns:jmdns` to version `3.5.9` (#2069)
* Update `org.junit:junit-bom` to version `5.10.1` (#1993)
* Update `org.junit-pioneer:junit-pioneer` to version `2.2.0` (#1986)
* Update `org.mockito:mockito-bom` to version `5.8.0` (#2031)
* Update `org.mongodb:bson` to version `4.11.1` (#1991)
* Update `org.springframework.boot:spring-boot` to version `2.7.17` (#1902)
* Update `org.springframework.boot:spring-boot-dependencies` to version
`2.7.18` (#2002)
* Update `org.springframework:spring-framework-bom` to version `5.3.30`
(#1903)
* Update `org.springframework:spring-test` to version `5.3.31` (#1992)
* Update `org.xerial.snappy:snappy-java` to version `1.1.10.5` (#1877)
* Update `org.zeromq:jeromq` to version `0.5.4` (#1888)
* Update `uk.org.webcompere:system-stubs-core` to version `2.1.5` (#2001)
* Update OpenTest4J to version `1.3.0`

=== Removed

* Remove `GelfLayout` (a GELF-compatible layout is still possible using
JSON Template Layout) (#1951)
* Remove `log4j-cassandra` (#1951)
* Remove `log4j-couchdb` (#1951)
* Remove Jackson-based JSON configuration support. JSON configuration files
are now handled through a built-in JSON parser.
* Moved Log4j Jakarta EE modules (`log4j-jakarta-jms`,
`log4j-jakarta-smtp`, and `log4j-jakarta-web`) to their own repository[1]
and website[2] (#1966)
* Removed all Java EE modules: `log4j-jms`, `log4j-jpa`, `log4j-smtp`,
`log4j-web` (#1966)
* Remove `log4j-jeromq` module (users are recommended to migrate to
loghublog4j2[3]) (#1951)
* Remove `log4j-kafka` (#1951)
* Remove `log4j-layout-jackson-json` module (it is superseded by JSON
Template Layout) (#1951)
* Remove `log4j-layout-jackson-yaml` module (#1951)
* Remove legacy OSGi integration. `ServiceLoader` mechanism should be used
instead.
* Remove `log4j-mongodb3` module (#1951)
* Remove support for `SecurityManager`. Starting in Java 21, a custom
`SecurityManager` cannot be used.
* Remove `log4j-spring-boot` module (its features are upstreamed to
`org.springframework.boot:spring-boot-starter-log4j2`) (#1951)

[1] https://github.com/apache/logging-log4j-jakarta
[2] https://logging.apache.org/log4j/jakarta
[3] https://github.com/fbacchella/loghublog4j2

=== Fixed

* Remove locale-dependent `toLowerCase/toUpperCase` calls. (#1281)
* Add environment variable arbiter. (#1312)
* Fixed logging of java.sql.Date objects by appending it before Log4J tries
to call java.util.Date.toInstant() on it. (#1366)
* Adapt the OSGi metadata of `log4j-api`, `log4j-core`, `log4j-slf4j-impl`
and `log4j-slf4j2-impl` to activate the bundle when it is accessed. To
achieve that set the `Bundle-ActivationPolicy` to `lazy` for the log4j
bundles. (#1367)
* Fix runtime dependencies documentation. (#1530)
* Allow to override fqcn in `Log4jEventBuilder` by implementing
`CallerBoundaryAware`. (#1533)
* Migrate MongoDB tests to JUnit 5 and Flapdoodle Embedded MongoDB 4.
(#1589)
* Fixed rollover strategy in the Log4j 1.x compatibility layer. (#1650)
* Only shutdown Log4j after last `Log4jServletContextListener` is executed.
(#1782)
* Fixes context data loss if `<AsyncLogger>` components are used with an
all async logger context. (#1786)
* AppenderLoggingException logging any exception to a MongoDB Appender.
(LOG4J2-3392)

Reply via email to