[VOTE] Release Apache Log4j 3.0.0-beta2 RC1

2024-02-18 Thread Piotr P. Karwasz
This is a vote to release the Apache Log4j 3.0.0-beta2.

Website: https://logging.staged.apache.org/log4j/3.x/
GitHub: https://github.com/apache/logging-log4j2
Commit: 086db24a04f905b40649666aafe3bb4778a75291
Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j
Nexus: https://repository.apache.org/content/repositories/orgapachelogging-1259
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.

Countdown: 
https://www.timeanddate.com/countdown/generic?iso=20240221T0807&p0=1440&font=cursive

== Verification instructions

The following environment is required to verify the build:
 * any UNIX OS,
 * JDK 17

Short verification procedure:

# Download distribution
wget --recursive --no-parent --cut-dirs=5 --no-host-directories \
https://dist.apache.org/repos/dist/dev/logging/log4j/
# Verify hashes
sha512sum -c *sha512
# Verify signatures
for sig in *asc; do gpg --verify $sig; done
# Prepare build environment:
unzip -d src apache-log4j-3.0.0-beta2-src.zip && cd src
umask 0022
# Run build and verification
./mvnw clean verify artifact:compare -Prelease \
-Dreference.repo=https://repository.apache.org/content/repositories/orgapachelogging-1258

== Release Notes

This release provides a continuation of the modularisation process of
Log4j Core.
The following features were moved to separate artifacts:

* The async logger feature was moved to `log4j-async-logger` and it
was upgraded to use LMAX Disruptor 4.x.
The async appender is still available by default in `log4j-core`.
* The YAML configuration is available now in `log4j-config-yaml`.
* The Java properties configuration was removed and replaced with a
similar format based on `jackson-dataformat-properties` in a new
`log4j-config-properties` artifact.

Other features were removed:

* Jetty 9.x users are encouraged to migrate to Jetty 10.x or later and
replace `log4j-appserver` with `log4j-slf4j2-impl`.
* Tomcat JULI support will be available from a third-party (cf.
https://github.com/copernik-eu/log4j-plugins).
* Apache Commons Logging users are encouraged to upgrade
`commons-logging` to version 1.3.0 or later and remove `log4j-jcl`.
* Support for the XML layout was dropped.
* Support for JMX was dropped and will be replaced with a more recent
technology.

=== Added

* Add and update DSLs for setting up dependency injection for test and
non-test code. (#2147)
* Add a `ConfigurationExtension` mechanism to allow third-party JARs
to extend the `` element.
* Add a new properties configuration factory based on
`jackson-dataformat-properties`.

=== Changed

* Change the order of evaluation of `FormattedMessage` formatters.
Messages are evaluated using `java.util.Format` only if they don't
comply to the `java.text.MessageFormat` or `ParameterizedMessage`
format. (#1223)
* Split off async logger support into a new `log4j-async-logger` module.
* Split off YAML configuration into a new `log4j-config-yaml` module.

=== Fixed

* Rewrote message parameter formatter with improved escape handling (#1626)
* The MongoDb4 appender now supports long values to configure
`collectionSize` (#1747)
* Mark `JdkMapAdapterStringMap` as frozen if map is immutable. (#2098)
* Fix regression in `JdkMapAdapterStringMap` performance. (#2238)
* Prevents ClassCastException when trying to assign a
SimpleLoggerContext to a core LoggerContext (LOG4J2-1921)
* Possible NullPointerException in MongoDb4DocumentObject,
MongoDbDocumentObject, DefaultNoSqlObject. (LOG4J2-3392)
* Fix NPE in `CloseableThreadContext`. (#1426)
* Fix NPE in `RollingFileManager`. (#1645)
* Fix `log4j-spring-cloud-config-client` dependencies to include only
those required. (2157)
* Workaround a Coursier/Ivy dependency resolution bug affecting
`log4j-slf4j-impl` and `log4j-mongodb3`. (#2065)

=== Removed

* Removed legacy `2.x` properties configuration factory.
* Remove `DefaultLogEventFactory`
* Remove `log4j-appserver` module (#2257)
* Remove `org.apache.logging.log4j.core.parser` and related packages. (#2154)
* Remove `log4j-jcl` module (#2257)
* Removed JMX support.
* Remove `log4j-layout-jackson` module (#2198)
* Remove `log4j-layout-jackson-xml` module (#2198)
* Remove `log4j2.enable.threadlocals` property (#2105)

=== Updated

* Update `apache/logging-parent` to version `` (#2191)
* Update `com.fasterxml.jackson:jackson-bom` to version `2.16.1` (#2127)
* Update `commons-codec:commons-codec` to version `1.16.1` (#2276)
* Update `io.netty:netty-bom` to version `4.1.107.Final` (#2283)
* Update `org.apache.logging:logging-parent` to version `10.6.0` (#2193)
* Update `org.apache.tomcat:tomcat-juli` to version `10.1.18` (#2176)
* Update `org.eclipse.jetty:jetty-bom` to versi

Re: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1

2024-02-18 Thread Gary Gregory
+1

Note that the verification instructions below or the distro process or
both need changes because the wget and all commands get EVERYTHING and
work on EVERYTHING, which in this case means that BOTH release
candidates for 2.23.0 and 3.0.0-beta2 are downloaded and instructions
work on both at the same time, obviously not the intent.

Over at Commons, we account for this use case by using the version in
the distro folder, so, for example, here you'd RC in
https://dist.apache.org/repos/dist/dev/logging/log4j/3.0.0-beta2, not
https://dist.apache.org/repos/dist/dev/logging/log4j

- Tested src zip file
- ASC OK
- SHA512 OK
- mvn clean verify OK

Using:

openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment Homebrew (build 17.0.9+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.9+0, mixed mode, sharing)

Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /usr/local/Cellar/maven/3.9.6/libexec
Java version: 17.0.9, vendor: Homebrew, runtime:
/usr/local/Cellar/openjdk@17/17.0.9/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "14.3.1", arch: "x86_64", family: "mac"

Darwin  23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:28:58
PST 2023; root:xnu-10002.81.5~7/RELEASE_X86_64 x86_64

Gary

On Sun, Feb 18, 2024 at 8:07 AM Piotr P. Karwasz
 wrote:
>
> This is a vote to release the Apache Log4j 3.0.0-beta2.
>
> Website: https://logging.staged.apache.org/log4j/3.x/
> GitHub: https://github.com/apache/logging-log4j2
> Commit: 086db24a04f905b40649666aafe3bb4778a75291
> Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j
> Nexus: 
> https://repository.apache.org/content/repositories/orgapachelogging-1259
> 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.
>
> Countdown: 
> https://www.timeanddate.com/countdown/generic?iso=20240221T0807&p0=1440&font=cursive
>
> == Verification instructions
>
> The following environment is required to verify the build:
>  * any UNIX OS,
>  * JDK 17
>
> Short verification procedure:
>
> # Download distribution
> wget --recursive --no-parent --cut-dirs=5 --no-host-directories \
> https://dist.apache.org/repos/dist/dev/logging/log4j/
> # Verify hashes
> sha512sum -c *sha512
> # Verify signatures
> for sig in *asc; do gpg --verify $sig; done
> # Prepare build environment:
> unzip -d src apache-log4j-3.0.0-beta2-src.zip && cd src
> umask 0022
> # Run build and verification
> ./mvnw clean verify artifact:compare -Prelease \
> -Dreference.repo=https://repository.apache.org/content/repositories/orgapachelogging-1258
>
> == Release Notes
>
> This release provides a continuation of the modularisation process of
> Log4j Core.
> The following features were moved to separate artifacts:
>
> * The async logger feature was moved to `log4j-async-logger` and it
> was upgraded to use LMAX Disruptor 4.x.
> The async appender is still available by default in `log4j-core`.
> * The YAML configuration is available now in `log4j-config-yaml`.
> * The Java properties configuration was removed and replaced with a
> similar format based on `jackson-dataformat-properties` in a new
> `log4j-config-properties` artifact.
>
> Other features were removed:
>
> * Jetty 9.x users are encouraged to migrate to Jetty 10.x or later and
> replace `log4j-appserver` with `log4j-slf4j2-impl`.
> * Tomcat JULI support will be available from a third-party (cf.
> https://github.com/copernik-eu/log4j-plugins).
> * Apache Commons Logging users are encouraged to upgrade
> `commons-logging` to version 1.3.0 or later and remove `log4j-jcl`.
> * Support for the XML layout was dropped.
> * Support for JMX was dropped and will be replaced with a more recent
> technology.
>
> === Added
>
> * Add and update DSLs for setting up dependency injection for test and
> non-test code. (#2147)
> * Add a `ConfigurationExtension` mechanism to allow third-party JARs
> to extend the `` element.
> * Add a new properties configuration factory based on
> `jackson-dataformat-properties`.
>
> === Changed
>
> * Change the order of evaluation of `FormattedMessage` formatters.
> Messages are evaluated using `java.util.Format` only if they don't
> comply to the `java.text.MessageFormat` or `ParameterizedMessage`
> format. (#1223)
> * Split off async logger support into a new `log4j-async-logger` module.
> * Split off YAML configuration into a new `log4j-config-yaml` module.
>
> === Fixed
>
> * Rewrote message parameter formatter with improved escape handling (#1626)
> * The MongoDb4 appender now supports long values to configure
> `collectionSize` (#1747)
> * Mark `JdkMapAdapterStringMap`

Distribution location was: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1

2024-02-18 Thread Piotr P. Karwasz
Hi Gary,

On Sun, 18 Feb 2024 at 15:12, Gary Gregory  wrote:
> Note that the verification instructions below or the distro process or
> both need changes because the wget and all commands get EVERYTHING and
> work on EVERYTHING, which in this case means that BOTH release
> candidates for 2.23.0 and 3.0.0-beta2 are downloaded and instructions
> work on both at the same time, obviously not the intent.
>
> Over at Commons, we account for this use case by using the version in
> the distro folder, so, for example, here you'd RC in
> https://dist.apache.org/repos/dist/dev/logging/log4j/3.0.0-beta2, not
> https://dist.apache.org/repos/dist/dev/logging/log4j

+1 for version specific folders.

You didn't notice it but the CI removed the 2.23.0 distribution files,
when it committed 3.0.0-beta2.

How exactly does `dist.apache.org` work with `archive.apache.org`?
Will it still work with directories like `/log4j/3.0.0-beta2/`?

Piotr


Re: Distribution location was: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1

2024-02-18 Thread Ralph Goers
Just navigate to https://archive.apache.org/dist/logging/ and take a look. Note 
that under log4j you will find version directories. Under log4j-audit you will 
not find directories. Basically it is however they get added to 
https://dist.apache.org/repos/dist/dev/logging/. It is just a mirror of what 
gets committed there.

I would suggest it makes sense to use version directories on a project that has 
lots of releases.  For consistency it would make sense to do that everywhere 
but that ship has already sailed for existing projects.

Ralph

> On Feb 18, 2024, at 10:09 AM, Piotr P. Karwasz  
> wrote:
> 
> Hi Gary,
> 
> On Sun, 18 Feb 2024 at 15:12, Gary Gregory  wrote:
>> Note that the verification instructions below or the distro process or
>> both need changes because the wget and all commands get EVERYTHING and
>> work on EVERYTHING, which in this case means that BOTH release
>> candidates for 2.23.0 and 3.0.0-beta2 are downloaded and instructions
>> work on both at the same time, obviously not the intent.
>> 
>> Over at Commons, we account for this use case by using the version in
>> the distro folder, so, for example, here you'd RC in
>> https://dist.apache.org/repos/dist/dev/logging/log4j/3.0.0-beta2, not
>> https://dist.apache.org/repos/dist/dev/logging/log4j
> 
> +1 for version specific folders.
> 
> You didn't notice it but the CI removed the 2.23.0 distribution files,
> when it committed 3.0.0-beta2.
> 
> How exactly does `dist.apache.org` work with `archive.apache.org`?
> Will it still work with directories like `/log4j/3.0.0-beta2/`?
> 
> Piotr



Re: Distribution location was: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1

2024-02-18 Thread Piotr P. Karwasz
Hi Ralph,

On Mon, 19 Feb 2024 at 05:03, Ralph Goers  wrote:
>
> Just navigate to https://archive.apache.org/dist/logging/ and take a look. 
> Note that under log4j you will find version directories. Under log4j-audit 
> you will not find directories. Basically it is however they get added to 
> https://dist.apache.org/repos/dist/dev/logging/. It is just a mirror of what 
> gets committed there.

Thanks for the explanation. I didn't notice that
https://dist.apache.org/repos/dist/release/logging/ and
https://dist.apache.org/repos/dist/dev/logging/ has a different
directory structure: the former has directories like /log4j/2.22.1,
the latter only /log4j.

Therefore we probably just need to upload the RCs to
`/dist/dev/logging/log4j/2.x` and `/dist/dev/logging/log4j/3.x`. The
release manager will then move them to the appropriate folder in
`/dist/release/logging/log4j`.

Piotr


Re: [VOTE] Release Apache Log4j 2.23.0 RC1

2024-02-18 Thread Volkan Yazıcı
+1

On Sat, Feb 17, 2024 at 2:15 PM Piotr P. Karwasz 
wrote:

> This is a vote to release the Apache Log4j 2.23.0.
>
> Website: https://logging.staged.apache.org/log4j/2.x/
> GitHub: https://github.com/apache/logging-log4j2
> Commit: 73da9013314ba8afe459baf52f3360ca1a2df51f
> Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j
> Nexus:
> https://repository.apache.org/content/repositories/orgapachelogging-1258
> 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.
>
> Countdown:
> https://www.timeanddate.com/countdown/generic?iso=20240220T1315&p0=1440&font=cursive
>
> == Verification instructions
>
> The following environment is required to verify the build:
>  * any UNIX OS,
>  * JDK 17
>
> Short verification procedure:
>
> # Download distribution
> wget --recursive --no-parent --cut-dirs=5 --no-host-directories
> https://dist.apache.org/repos/dist/dev/logging/log4j/
> # Verify hashes
> sha512-sum -c *sha512
> # Verify signatures
> for sig in *asc; do gpg --verify $sig; done
> # Prepare build environment:
> unzip -d src apache-log4j-2.23.0-src.zip && cd src
> umask 0022
> # Run build and verification
> ./mvnw clean verify -Prelease
> -Dreference.repo=
> https://repository.apache.org/content/repositories/orgapachelogging-1258
>
> == Release Notes
>
> This release adds support for LMAX Disruptor 4.x and several
> performance and bug fixes.
>
> In order to maintain compatibility with JRE 8, support for LMAX
> Disruptor 3.x is maintained.
>
> === Added
>
> * Added support for LMAX Disruptor 4.x (#1821)
>
> === Changed
>
> * Simplify BND configuration after upgrade from version `6.4.1` to `7.0.0`
>
> === Deprecated
>
> * Deprecate the configuration attribute `verbose` (i.e.,
> ` (#2226)
> * Deprecated the `RingBufferLogEventHandler` class for removal from
> the public API in 3.x
>
> === Fixed
>
> * Fix regression in `JdkMapAdapterStringMap` performance. (#2238)
> * Fix the behavior of `Logger#setLevel` and `Logger#getLevel` in the
> Log4j 1.2 bridge. (#2282)
> * Fix the behavior of `CoreLogger#getLevel` and `CoreLogger#setLevel`
> in the `log4j-jul` module. (#2282)
> * Allow deserialization of all arrays of allowed classes.
> (https://issues.apache.org/jira/browse/LOG4J2-3680[LOG4J2-3680])
> * Allow the  node to appear in any position in the
> configuration element.
> * Fix forgotten `threadName` field in `RingBufferLogEvent#clear()` (#2234)
> * Fix `StringBuilder` cache corruption on recursive access
> * Fixed use of `SecurityManager` in `LoaderUtil` where
> `AccessController::doPrivileged` should only be invoked when a
> `SecurityManager` is installed. Some runtimes do not seem to have this
> method available. (#2129)
> * Fix `log4j-spring-cloud-config-client` dependencies to include only
> those required. (#2157)
> * Fix typo in Kubernetes `clientKeyData` configuration property.
>
> === Updated
>
> * Update `com.fasterxml.jackson:jackson-bom` to version `2.16.1` (#2126)
> * Update `commons-codec:commons-codec` to version `1.16.1` (#2277)
> * Update `io.netty:netty-bom` to version `4.1.107.Final` (#2284)
> * Update `org.apache.logging:logging-parent` to version `10.6.0` (#2197)
> * Update `org.eclipse.jetty:jetty-bom` to version `9.4.54.v20240208`
> (#2287)
> * Update `org.jctools:jctools-core` to version `4.0.3` (#2270)
> * Update `org.springframework:spring-framework-bom` to version `5.3.32`
> (#2293)
> * Update `org.zeromq:jeromq` to version `0.6.0` (#2271)
>
> Piotr
>


Re: [VOTE] Release Apache Log4j 3.0.0-beta2 RC1

2024-02-18 Thread Volkan Yazıcı
+1

On Sun, Feb 18, 2024 at 9:06 AM Piotr P. Karwasz 
wrote:

> This is a vote to release the Apache Log4j 3.0.0-beta2.
>
> Website: https://logging.staged.apache.org/log4j/3.x/
> GitHub: https://github.com/apache/logging-log4j2
> Commit: 086db24a04f905b40649666aafe3bb4778a75291
> Distribution: https://dist.apache.org/repos/dist/dev/logging/log4j
> Nexus:
> https://repository.apache.org/content/repositories/orgapachelogging-1259
> 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.
>
> Countdown:
> https://www.timeanddate.com/countdown/generic?iso=20240221T0807&p0=1440&font=cursive
>
> == Verification instructions
>
> The following environment is required to verify the build:
>  * any UNIX OS,
>  * JDK 17
>
> Short verification procedure:
>
> # Download distribution
> wget --recursive --no-parent --cut-dirs=5 --no-host-directories \
> https://dist.apache.org/repos/dist/dev/logging/log4j/
> # Verify hashes
> sha512sum -c *sha512
> # Verify signatures
> for sig in *asc; do gpg --verify $sig; done
> # Prepare build environment:
> unzip -d src apache-log4j-3.0.0-beta2-src.zip && cd src
> umask 0022
> # Run build and verification
> ./mvnw clean verify artifact:compare -Prelease \
> -Dreference.repo=
> https://repository.apache.org/content/repositories/orgapachelogging-1258
>
> == Release Notes
>
> This release provides a continuation of the modularisation process of
> Log4j Core.
> The following features were moved to separate artifacts:
>
> * The async logger feature was moved to `log4j-async-logger` and it
> was upgraded to use LMAX Disruptor 4.x.
> The async appender is still available by default in `log4j-core`.
> * The YAML configuration is available now in `log4j-config-yaml`.
> * The Java properties configuration was removed and replaced with a
> similar format based on `jackson-dataformat-properties` in a new
> `log4j-config-properties` artifact.
>
> Other features were removed:
>
> * Jetty 9.x users are encouraged to migrate to Jetty 10.x or later and
> replace `log4j-appserver` with `log4j-slf4j2-impl`.
> * Tomcat JULI support will be available from a third-party (cf.
> https://github.com/copernik-eu/log4j-plugins).
> * Apache Commons Logging users are encouraged to upgrade
> `commons-logging` to version 1.3.0 or later and remove `log4j-jcl`.
> * Support for the XML layout was dropped.
> * Support for JMX was dropped and will be replaced with a more recent
> technology.
>
> === Added
>
> * Add and update DSLs for setting up dependency injection for test and
> non-test code. (#2147)
> * Add a `ConfigurationExtension` mechanism to allow third-party JARs
> to extend the `` element.
> * Add a new properties configuration factory based on
> `jackson-dataformat-properties`.
>
> === Changed
>
> * Change the order of evaluation of `FormattedMessage` formatters.
> Messages are evaluated using `java.util.Format` only if they don't
> comply to the `java.text.MessageFormat` or `ParameterizedMessage`
> format. (#1223)
> * Split off async logger support into a new `log4j-async-logger` module.
> * Split off YAML configuration into a new `log4j-config-yaml` module.
>
> === Fixed
>
> * Rewrote message parameter formatter with improved escape handling (#1626)
> * The MongoDb4 appender now supports long values to configure
> `collectionSize` (#1747)
> * Mark `JdkMapAdapterStringMap` as frozen if map is immutable. (#2098)
> * Fix regression in `JdkMapAdapterStringMap` performance. (#2238)
> * Prevents ClassCastException when trying to assign a
> SimpleLoggerContext to a core LoggerContext (LOG4J2-1921)
> * Possible NullPointerException in MongoDb4DocumentObject,
> MongoDbDocumentObject, DefaultNoSqlObject. (LOG4J2-3392)
> * Fix NPE in `CloseableThreadContext`. (#1426)
> * Fix NPE in `RollingFileManager`. (#1645)
> * Fix `log4j-spring-cloud-config-client` dependencies to include only
> those required. (2157)
> * Workaround a Coursier/Ivy dependency resolution bug affecting
> `log4j-slf4j-impl` and `log4j-mongodb3`. (#2065)
>
> === Removed
>
> * Removed legacy `2.x` properties configuration factory.
> * Remove `DefaultLogEventFactory`
> * Remove `log4j-appserver` module (#2257)
> * Remove `org.apache.logging.log4j.core.parser` and related packages.
> (#2154)
> * Remove `log4j-jcl` module (#2257)
> * Removed JMX support.
> * Remove `log4j-layout-jackson` module (#2198)
> * Remove `log4j-layout-jackson-xml` module (#2198)
> * Remove `log4j2.enable.threadlocals` property (#2105)
>
> === Updated
>
> * Update `apache/logging-parent` to version `` (#2191)
> * Update `com.fasterxml.jackson:jackson-bom` to version `2.16.1` (#2127)
> * Update `commons-codec:commons-