Hi Ralph,

On Tue, 9 Apr 2024 at 23:46, Ralph Goers <ralph.go...@dslextreme.com> wrote:
> You are forgetting one small thing.  Plugins in 3.x use ServiceLoader while 
> 2.x uses the Log4j2Plugins.dat file. While 3.x supports the old format it 
> will be much better for users to not have to use the transformer when 
> building uber jars as most tooling supports ServiceLoader out of the box.

There are so many valid alternatives to the classical uber-jar created
by Maven Shade plugin, that I am not too much concerned about that.
The executable JARs created by Spring Boot Plugins would be my first
choice[1]. Since the dependencies are retained in their original JAR
form no complex transformers are necessary, only a small
`spring-boot-loader` artifact is added.

So `log4j-docker` should have a 3.x version, what about the other
artifacts that don't have `Log4j2Plugins.dat` and don't depend on
`log4j-core`?

> Not only is 3.x compiled with Java 17 that is also the target version. If the 
> component they are targeting also has a minimum version of Java 17 then it 
> definitely makes sense IMO to have then in 3.x. However, SLF4J still targets 
> Java 8 and I haven’t seen any indication that will change anytime soon.

Is there a real advantage in having Java 17 bytecode? The source code
is Java 8 compatible, I wonder if there are bytecode optimization that
the compiler can do (and the JVM can not).

BTW: Maybe SLF4J still uses Java 8, but the latest Logback uses Java 11.

Piotr

[1] 
https://docs.spring.io/spring-boot/docs/current/maven-plugin/reference/htmlsingle/#packaging

Reply via email to