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