Re: [VOTE] Release Apache Log4j 3.0.0-alpha1-rc2

2023-06-20 Thread Gary Gregory
+1

Tested src zip file, ASC and SHA512 OK.
Builds OK with 'mvn clean verify'

I did not do any integration testing with my apps as it is a pain to
use something that is not in MC yet so that my CI/CD can more easily
pick it up in branch builds. I'm happy to see real bits go out though!
:-)

- TODO not a blocker: Remove SHA256 files from dist.a.o, SHA512 is enough.
- TODO not a blocker: Use the enforcer plugin to make it obvious we
require Java 11 or above.

Using:

Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c)
Maven home: /usr/local/Cellar/maven/3.9.2/libexec
Java version: 11.0.19, vendor: Homebrew, runtime:
/usr/local/Cellar/openjdk@11/11.0.19/libexec/openjdk.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "13.4", arch: "x86_64", family: "mac"
Darwin  22.5.0 Darwin Kernel Version 22.5.0: Mon Apr 24 20:51:50
PDT 2023; root:xnu-8796.121.2~5/RELEASE_X86_64 x86_64

Gary

On Sat, Jun 17, 2023 at 11:17 PM Ralph Goers  wrote:
>
> This is a vote to release Log4j 3.0.0-alpha, the first release the Log4j 3.x 
> series.
>
> Please download, test, and cast your votes on the log4j developers list.
> [] +1, release the artifacts
> [] -1, don't release because...
>
> The vote will remain open for 72 hours. All votes are welcome and we 
> encourage everyone to test the release, but only Logging PMC votes are 
> “officially” counted. As always, at least 3 +1 votes and more positive than 
> negative votes are required.
>
> Changes in this version include:
>
> Added
> • Allow plugins to be created through more flexible dependency injection 
> patterns. (for LOG4J2-1188 by Matt Sicker)
> • Allow to force LOG4J2 to use TCCL only. (for LOG4J2-2171 by 
> rmannibucau, Ralph Goers)
> • Allow web lookup to access more information. (for LOG4J2-2523 by Romain 
> Manni-Bucau, Ralph Goers)
> • Allow web lookup of session attributes. (for LOG4J2-2688 by Ralph 
> Goers, Romain Manni-Bucau)
> • Add support for injecting plugin configuration via builder methods. 
> (for LOG4J2-2700 by Matt Sicker)
> • Add scopes API for customizing plugin instance lifecycle. (for 
> LOG4J2-2852 by Matt Sicker)
> • Add qualifier annotations for distinguishing instances of the same 
> type. (for LOG4J2-2853 by Matt Sicker)
> • Create standardized dependency injection API. This is supported in 
> several plugin categories and other configurable instances previously defined 
> via system properties. (for LOG4J2-2854 by Matt Sicker)
> • Add conditional annotations to support more declarative binding factory 
> bundle classes. (for LOG4J2-3300 by Matt Sicker)
> • Add built-in JSON configuration parser for a useful structured 
> configuration file format which only requires the java.base module. (for 
> LOG4J2-3415 by Matt Sicker)
> • Add @Ordered annotation to support plugin ordering when two or more 
> plugins within the same category have the same case-insensitive name. (for 
> LOG4J2-857 by Matt Sicker)
>
> Changed
> • Simplify Maven site phase and align it with the one in 2.x branch. (for 
> 1220 by Volkan Yazıcı)
> • Update build to use Java 11 bytecode. (for 480 by Ralph Goers)
> • Convert documentation into AsciiDoc format. (for LOG4J2-1802 by Matt 
> Sicker)
> • Rename package core.util.datetime to core.time.internal.format to 
> clarify these classes are to be considered private. (for LOG4J2-2224 by Remko 
> Popma)
> • Move time-related classes from core.util to core.time. Classes 
> considered private moved to core.time.internal. (for LOG4J2-2225 by Remko 
> Popma)
> • Split off Kafka support into a new module log4j-kafka. (for LOG4J2-2227 
> by Gary Gregory)
> • Split off ZeroMq/JeroMq support into a new module log4j-jeromq. (for 
> LOG4J2-2228 by Gary Gregory)
> • Split off SMTP support into a new module log4j-smtp. (for LOG4J2-2230 
> by Gary Gregory)
> • Split off CSV layout into a new module log4j-csv. (for LOG4J2-2231 by 
> Gary Gregory)
> • Split off JMS support into a new module log4j-jms. (for LOG4J2-2232 by 
> Gary Gregory)
> • Split off JDBC support into a new module log4j-jdbc. (for LOG4J2-2233 
> by Gary Gregory)
> • Split off Jackson-based layouts into their own modules: 
> log4j-layout-jackson-json, log4j-layout-jackson-xml and 
> log4j-layout-jackson-yaml. (for LOG4J2-2237 by Gary Gregory)
> • Update builder methods from the "with" prefix to the "set" prefix. (for 
> LOG4J2-2492 by Gary Gregory)
> • Remove deprecated code. (for LOG4J2-2493 by Gary Gregory)
> • Fix typo in method MergeStrategy.mergeConfigurations. (for LOG4J2-2617 
> by Matt Sicker)
> • Separate plugin support to its own module. Plugin annotation processor 
> will now generate a Java source file compatible with java.util.ServiceLoader 
> instead of a binary file. (for LOG4J2-2621 by Ralph Goers)
> • Rename PluginVisitor and related classes to 
> ConfigurationInjectionBuilder. (for LOG4J2-2683

Re: Optional dependencies in `log4j-core` 3.x

2023-06-20 Thread Matt Sicker
The JSON configuration can use the built-in JSON parser via the “Jason” version 
of the JSON configuration classes. I already added that a while ago. The 
Jackson ones can be moved to their own module.

As for async logging, if it’s possible to break it into its own module, that’d 
be great, particularly to avoid having to set a system property to enable it.
—
Matt Sicker

> On Jun 19, 2023, at 13:24, Piotr P. Karwasz  wrote:
> 
> Hi all,
> 
> While the list of optional dependencies in `log4j-core` version 3.x is
> much shorter than the one in the 2.x series, we could probably still
> improve it a bit:
> 
> * we could remove `jansi`. Since Windows 10 the terminal supports
> standard ANSI escapes[1]. On the other hand we broke JANSI support 3
> years ago by upgrading from JANSI 1.x to 2.x[2]: the new version does
> not have the `org.fusesource.jansi.WindowsAnsiOutputStream` class we
> rely upon,
> * we should consider removing the Jackson dependency:
>1. it is only required by the YAML configuration format, that we
> could move to a new module,
>2. the JSON configuration format should probably use the JSON
> parser embedded into `log4j-api`.
> * maybe we could add some POM-only artifacts like
> `log4j-core-starter-async` that would depend on `log4j-core` and the
> recommended version of `disruptor`. The problem I find with optional
> dependencies is that consumers need to hardcode the version of the
> dependency in their POM and need to remember to upgrade it when they
> upgrade `log4j-core`. If we introduce "starters" for each optional
> dependency (LMAX disruptor, Conversant disruptor and JCTools), users
> can rely on our choice of the version.
> 
> Piotr
> 
> [1] https://stackoverflow.com/q/16755142/11748454
> [2] 
> https://github.com/apache/logging-log4j2/commit/9fabec5277f06f59ceaeff20da055ab7bf1952c4



Apache Log4cxx 1.1.0

2023-06-20 Thread Ghori, Asif [US] (AS)
Hi

I downloaded the Apache Log4cxx 1.1.0 and tried to compile using the 
instructions of cmake/make file for 32 bit build.
I get the following error:

Call of overloaded 
'AppenderSkeleton(std::unique_ptr) is ambiguous


And than candidate listed are appenderskeleton.h line  44  and line 64.

I searched the google and your website .. no one has mentioned this error.

Please advise, Is there some flag that I am suppose to set or use. I used -m32 
cmake/gcc flag for 32 bit compilation on linux redhat rhel-9.0

Thanks
Asif ghori


Re: Apache Log4cxx 1.1.0

2023-06-20 Thread Gary Gregory
Do we even still support 32-bit builds?

Gary

On Tue, Jun 20, 2023, 17:09 Ghori, Asif [US] (AS) 
wrote:

> Hi
>
> I downloaded the Apache Log4cxx 1.1.0 and tried to compile using the
> instructions of cmake/make file for 32 bit build.
> I get the following error:
>
> Call of overloaded
> 'AppenderSkeleton(std::unique_ptr std::default_delete) is ambiguous
>
>
> And than candidate listed are appenderskeleton.h line  44  and line 64.
>
> I searched the google and your website .. no one has mentioned this error.
>
> Please advise, Is there some flag that I am suppose to set or use. I used
> -m32 cmake/gcc flag for 32 bit compilation on linux redhat rhel-9.0
>
> Thanks
> Asif ghori
>


Re: Apache Log4cxx 1.1.0

2023-06-20 Thread Stephen Webb
Yes, 32-bit builds should be OK. The code at line 64 should be

AppenderSkeleton(const LayoutPtr& layout);

The code at line 44 should be:

AppenderSkeleton(LOG4CXX_PRIVATE_PTR(AppenderSkeletonPrivate) priv);


Asif, is your AppenderSkeleton.h different?

On Wed, Jun 21, 2023 at 7:25 AM Gary Gregory  wrote:

> Do we even still support 32-bit builds?
>
> Gary
>
> On Tue, Jun 20, 2023, 17:09 Ghori, Asif [US] (AS) 
> wrote:
>
> > Hi
> >
> > I downloaded the Apache Log4cxx 1.1.0 and tried to compile using the
> > instructions of cmake/make file for 32 bit build.
> > I get the following error:
> >
> > Call of overloaded
> >
> 'AppenderSkeleton(std::unique_ptr > std::default_delete) is ambiguous
> >
> >
> > And than candidate listed are appenderskeleton.h line  44  and line 64.
> >
> > I searched the google and your website .. no one has mentioned this
> error.
> >
> > Please advise, Is there some flag that I am suppose to set or use. I used
> > -m32 cmake/gcc flag for 32 bit compilation on linux redhat rhel-9.0
> >
> > Thanks
> > Asif ghori
> >
>


MongoDB 3 appender

2023-06-20 Thread Piotr P. Karwasz
Hi all,

According to MongoDB's lifecycle page:

https://www.mongodb.com/support-policy/lifecycles

MongoDB 3.x reached end-of-life in 2021.

Should we drop the `log4j-mongodb3` module in Log4j 3.x?

Piotr

PS: We forgot to drop `log4j-liquibase` in the `main` branch. I'll do
it shortly.


Re: [VOTE] Release Apache Log4j 3.0.0-alpha1-rc2

2023-06-20 Thread Ralph Goers
My +1

Ralph

> On Jun 20, 2023, at 4:41 AM, Gary Gregory  wrote:
> 
> +1
> 
> Tested src zip file, ASC and SHA512 OK.
> Builds OK with 'mvn clean verify'
> 
> I did not do any integration testing with my apps as it is a pain to
> use something that is not in MC yet so that my CI/CD can more easily
> pick it up in branch builds. I'm happy to see real bits go out though!
> :-)
> 
> - TODO not a blocker: Remove SHA256 files from dist.a.o, SHA512 is enough.
> - TODO not a blocker: Use the enforcer plugin to make it obvious we
> require Java 11 or above.
> 
> Using:
> 
> Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c)
> Maven home: /usr/local/Cellar/maven/3.9.2/libexec
> Java version: 11.0.19, vendor: Homebrew, runtime:
> /usr/local/Cellar/openjdk@11/11.0.19/libexec/openjdk.jdk/Contents/Home
> Default locale: en_US, platform encoding: UTF-8
> OS name: "mac os x", version: "13.4", arch: "x86_64", family: "mac"
> Darwin  22.5.0 Darwin Kernel Version 22.5.0: Mon Apr 24 20:51:50
> PDT 2023; root:xnu-8796.121.2~5/RELEASE_X86_64 x86_64
> 
> Gary
> 
> On Sat, Jun 17, 2023 at 11:17 PM Ralph Goers  
> wrote:
>> 
>> This is a vote to release Log4j 3.0.0-alpha, the first release the Log4j 3.x 
>> series.
>> 
>> Please download, test, and cast your votes on the log4j developers list.
>> [] +1, release the artifacts
>> [] -1, don't release because...
>> 
>> The vote will remain open for 72 hours. All votes are welcome and we 
>> encourage everyone to test the release, but only Logging PMC votes are 
>> “officially” counted. As always, at least 3 +1 votes and more positive than 
>> negative votes are required.
>> 
>> Changes in this version include:
>> 
>> Added
>>• Allow plugins to be created through more flexible dependency injection 
>> patterns. (for LOG4J2-1188 by Matt Sicker)
>>• Allow to force LOG4J2 to use TCCL only. (for LOG4J2-2171 by 
>> rmannibucau, Ralph Goers)
>>• Allow web lookup to access more information. (for LOG4J2-2523 by Romain 
>> Manni-Bucau, Ralph Goers)
>>• Allow web lookup of session attributes. (for LOG4J2-2688 by Ralph 
>> Goers, Romain Manni-Bucau)
>>• Add support for injecting plugin configuration via builder methods. 
>> (for LOG4J2-2700 by Matt Sicker)
>>• Add scopes API for customizing plugin instance lifecycle. (for 
>> LOG4J2-2852 by Matt Sicker)
>>• Add qualifier annotations for distinguishing instances of the same 
>> type. (for LOG4J2-2853 by Matt Sicker)
>>• Create standardized dependency injection API. This is supported in 
>> several plugin categories and other configurable instances previously 
>> defined via system properties. (for LOG4J2-2854 by Matt Sicker)
>>• Add conditional annotations to support more declarative binding factory 
>> bundle classes. (for LOG4J2-3300 by Matt Sicker)
>>• Add built-in JSON configuration parser for a useful structured 
>> configuration file format which only requires the java.base module. (for 
>> LOG4J2-3415 by Matt Sicker)
>>• Add @Ordered annotation to support plugin ordering when two or more 
>> plugins within the same category have the same case-insensitive name. (for 
>> LOG4J2-857 by Matt Sicker)
>> 
>> Changed
>>• Simplify Maven site phase and align it with the one in 2.x branch. (for 
>> 1220 by Volkan Yazıcı)
>>• Update build to use Java 11 bytecode. (for 480 by Ralph Goers)
>>• Convert documentation into AsciiDoc format. (for LOG4J2-1802 by Matt 
>> Sicker)
>>• Rename package core.util.datetime to core.time.internal.format to 
>> clarify these classes are to be considered private. (for LOG4J2-2224 by 
>> Remko Popma)
>>• Move time-related classes from core.util to core.time. Classes 
>> considered private moved to core.time.internal. (for LOG4J2-2225 by Remko 
>> Popma)
>>• Split off Kafka support into a new module log4j-kafka. (for LOG4J2-2227 
>> by Gary Gregory)
>>• Split off ZeroMq/JeroMq support into a new module log4j-jeromq. (for 
>> LOG4J2-2228 by Gary Gregory)
>>• Split off SMTP support into a new module log4j-smtp. (for LOG4J2-2230 
>> by Gary Gregory)
>>• Split off CSV layout into a new module log4j-csv. (for LOG4J2-2231 by 
>> Gary Gregory)
>>• Split off JMS support into a new module log4j-jms. (for LOG4J2-2232 by 
>> Gary Gregory)
>>• Split off JDBC support into a new module log4j-jdbc. (for LOG4J2-2233 
>> by Gary Gregory)
>>• Split off Jackson-based layouts into their own modules: 
>> log4j-layout-jackson-json, log4j-layout-jackson-xml and 
>> log4j-layout-jackson-yaml. (for LOG4J2-2237 by Gary Gregory)
>>• Update builder methods from the "with" prefix to the "set" prefix. (for 
>> LOG4J2-2492 by Gary Gregory)
>>• Remove deprecated code. (for LOG4J2-2493 by Gary Gregory)
>>• Fix typo in method MergeStrategy.mergeConfigurations. (for LOG4J2-2617 
>> by Matt Sicker)
>>• Separate plugin support to its own module. Plugin annotation processor 
>> will now generate a Java source file compatible with java.

[RESULT][VOTE] Release Apache Log4j 3.0.0-alpha1-rc2

2023-06-20 Thread Ralph Goers
This vote has passed with 3 +1 votes from Piotr Karwasz, Gary Gregory, and 
Ralph Goers.  I will continue with the release process.

Ralph