Hi, Thanks for the report. I guess you mean shading ? Because it would say it's not really a problem to not ship log4j, simply to allow us to pick the version you want. If you want it in the uber jar (shaded), let me check. I will probably a Jira and keep you posted.
Regards JB On Thu, Nov 16, 2023 at 12:47 AM Norman Hamer <nha...@absolute.com.invalid> wrote: > > TL;DR this is a regression vs 5.17.6 > It appears to me (code inspection) to be caused by commit e5970172 / AMQ-7426 > > activemq-all-5.18.3.jar(as far as I can tell, erroneously) includes a > META-INF/services/org.slf4j.spi.SLF4JServiceProvider file specifying > org.apache.logging.slf4j.SLF4JServiceProvider > (aka > logging-log4j2/log4j-slf4j2-impl/src/main/java/org/apache/logging/slf4j/SLF4JServiceProvider.java) > rather than allowing/requiring the application to configure it. > > This looks to me to be just be the default because > org.apache.logging:log4j-slf4j-impl is included, even though it's declared > optional. > > ------------- > > Workarounds: > > Delete META-INF/services/org.slf4j.spi.SLF4JServiceProvider from > activemq-all-5.18.3.jar Downgrade to activemq-all-5.17.6.jar Include log4j2 > in the classpath > > ------------- > > Attempting to upgrade a project from 5.16.x, which does not otherwise include > log4j2, I dropped in 5.18.3 and see the following exceptions: > > Exception occurred: java.lang.ClassNotFoundException (to be caught at: > org.slf4j.LoggerFactory.bind(), line=208 > bci=86)"thread=AlertClientSettingsProvider", > jdk.internal.loader.BuiltinClassLoader.loadClass(), line=581 bci=19 > > AlertClientSettingsProvider[1] where > [1] jdk.internal.loader.BuiltinClassLoader.loadClass > (BuiltinClassLoader.java:581) > [2] jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass > (ClassLoaders.java:178) > [3] java.lang.ClassLoader.loadClass (ClassLoader.java:522) > [4] org.apache.logging.slf4j.SLF4JServiceProvider.initialize > (SLF4JServiceProvider.java:53) > [5] org.slf4j.LoggerFactory.bind (LoggerFactory.java:195) > [6] org.slf4j.LoggerFactory.performInitialization (LoggerFactory.java:182) > [7] org.slf4j.LoggerFactory.getProvider (LoggerFactory.java:490) > [8] org.slf4j.LoggerFactory.getILoggerFactory (LoggerFactory.java:476) > [9] org.slf4j.LoggerFactory.getLogger (LoggerFactory.java:425) > [10] org.slf4j.LoggerFactory.getLogger (LoggerFactory.java:451) > [11] org.apache.activemq.broker.BrokerService.<clinit> > (BrokerService.java:139) <application stack snipped> > > AlertClientSettingsProvider[1] locals > Method arguments: > cn = "org.apache.logging.log4j.Logger" > resolve = false > > causing: > > Exception occurred: java.lang.NoClassDefFoundError (to be caught at: > java.util.concurrent.FutureTask.runAndReset(), line=307 > bci=55)"thread=AlertClientSettingsProvider", > org.slf4j.LoggerFactory.getProvider(), line=492 bci=33 > > AlertClientSettingsProvider[1] where > [1] org.slf4j.LoggerFactory.getProvider (LoggerFactory.java:492) > [2] org.slf4j.LoggerFactory.getILoggerFactory (LoggerFactory.java:476) > [3] org.slf4j.LoggerFactory.getLogger (LoggerFactory.java:425) > [4] org.slf4j.LoggerFactory.getLogger (LoggerFactory.java:451) > [5] org.apache.activemq.broker.BrokerService.<clinit> > (BrokerService.java:139) <application stack snipped> > > (Instantiation of BrokerService fails and the application goes away) > > -------------