Thanks so much for putting time into this Ralph, I really appreciated it. There is no way I could have figured this out by myself. I have some questions regarding pom.xml of JTL:
In manifestEntries of JTL pom.xml, shouldn't there be an Automatic-Module-Name entry? There are X-Compile-Source-JDK and X-Compile-Target-JDK manifestEntries in pom.xml. I was expecting something like X-Compile-Release-JDK exposing maven.compiler.release property. Isn't there such a thing? On Wed, Apr 7, 2021 at 7:29 AM Ralph Goers <ralph.go...@dslextreme.com> wrote: > I have found the problem with the master branch and fixed it. As I > suspected I thought I had previously fixed this but I am not sure what > happened to it. > > The issue was simple. Log4j-layout-template-json generates plugins in both > the public jar and in its tests. However, it was using the same Java > package for both resulting in duplicate Log4jPlugins classes on the class > path. Only one of them could be loaded. I fixed the problem by modifying > the compiler plugin to specify the package to use for the test plugins. > > We are still getting a few errors in both the GitHub Actions and Jenkins, > but those are probably legitimate issues that existed prior to the changes. > > One test that keeps failing on GitHub is the SimplePerfTest. It simply > tries to calculate the time it takes to perform isDebugEnabled, > isEnabled(Level.DEBUG) and logger.debug where all are false. Normally these > values are very small and consistent with each other. But in GitHb > sometimes one or two of the tests will be double or triple what it is > normally, which will cause the test to fail its limit check. I suspect this > is purely an environmental issue and will probably just look for a way to > disable that test on GitHub. I’ve never seen the issue on Jenkins. > > Ralph > > > On Apr 6, 2021, at 4:49 PM, Ralph Goers <ralph.go...@dslextreme.com> > wrote: > > > > There was one test I saw saying it couldn’t find the ListAppender. So I > ran that test with -X and -Dlog4j2.debug=true and got > > > > DEBUG StatusLogger Returning AppenderRef with parent root of type > AppenderRef:class org.apache.logging.log4j.core.config.AppenderRef > > DEBUG StatusLogger Returning root with parent loggers of type root:class > org.apache.logging.log4j.core.config.LoggerConfig$RootLogger > > DEBUG StatusLogger Returning loggers with parent root of type > loggers:class org.apache.logging.log4j.core.config.LoggersPlugin > > DEBUG StatusLogger Completed parsing configuration > > ERROR StatusLogger Error processing element JsonTemplateLayout: > CLASS_NOT_FOUND > > ERROR StatusLogger Unable to locate plugin type for JsonTemplateLayout > > DEBUG StatusLogger PluginManager 'Lookup' found 16 plugins > > ERROR StatusLogger Unable to locate plugin for > eventTemplateAdditionalField > > ERROR StatusLogger Unable to locate plugin for > eventTemplateAdditionalField > > ERROR StatusLogger Unable to locate plugin for > eventTemplateAdditionalField > > ERROR StatusLogger Unable to locate plugin for > eventTemplateAdditionalField > > ERROR StatusLogger Unable to locate plugin for JsonTemplateLayout > > DEBUG StatusLogger Building Plugin[name=appender, > class=org.apache.logging.log4j.test.appender.ListAppender]. > > TRACE StatusLogger TypeConverterRegistry initializing. > > DEBUG StatusLogger PluginManager 'TypeConverter' found 26 plugins > > ERROR StatusLogger Could not create plugin of type class > org.apache.logging.log4j.test.appender.ListAppender for element List > > java.lang.NullPointerException > > at > org.apache.logging.log4j.plugins.inject.PluginElementInjector.isRequestedNode(PluginElementInjector.java:94) > > at > java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:176) > > at > java.base/java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1632) > > at > java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127) > > at > java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) > > at > java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) > > at > java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) > > at > java.base/java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:150) > > at > java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > > at > java.base/java.util.stream.ReferencePipeline.findAny(ReferencePipeline.java:548) > > at > org.apache.logging.log4j.plugins.inject.PluginElementInjector.inject(PluginElementInjector.java:79) > > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.lambda$injectBuilder$1(PluginBuilder.java:204) > > at java.base/java.util.Optional.ifPresent(Optional.java:183) > > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.injectBuilder(PluginBuilder.java:192) > > at > org.apache.logging.log4j.core.config.plugins.util.PluginBuilder.build(PluginBuilder.java:126) > > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createPluginObject(AbstractConfiguration.java:995) > > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:935) > > at > org.apache.logging.log4j.core.config.AbstractConfiguration.createConfiguration(AbstractConfiguration.java:927) > > at > org.apache.logging.log4j.core.config.AbstractConfiguration.doConfigure(AbstractConfiguration.java:545) > > at > org.apache.logging.log4j.core.config.AbstractConfiguration.initialize(AbstractConfiguration.java:242) > > at > org.apache.logging.log4j.core.config.AbstractConfiguration.start(AbstractConfiguration.java:289) > > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:621) > > > > > > There is obviously lots wrong here. I’ll keep looking into this. > > > > Ralph > > > >> On Apr 6, 2021, at 4:16 PM, Ralph Goers <ralph.go...@dslextreme.com> > wrote: > >> > >> I deleted the files from my local repo and restarted the build. It is > running along just fine - at least until it hits json template layout. > >> > >> Is there a reason you use the maven wrapper instead of Maven itself? I > have never used the wrapper. I am wondering if there is something going on > there. > >> > >> Ralph > >> > >>> On Apr 6, 2021, at 4:10 PM, Ralph Goers <ralph.go...@dslextreme.com> > wrote: > >>> > >>> I’ve never seen that. What is maven-annotations-production:log4j-api? > >>> > >>> Let me try removing the files from my maven local repo as you did. > >>> > >>> Ralph > >>> > >>>> On Apr 6, 2021, at 1:14 PM, Volkan Yazıcı <volkan.yaz...@gmail.com> > wrote: > >>>> > >>>> As subject hints, I am not able to run tests in IDEA anymore after > Java 11 > >>>> upgrade. I have deleted all IDEA related files and issued a clean > Maven > >>>> build: > >>>> > >>>> $ rm -rf ./.idea ./**/*.iml > >>>> $ rm -rf ~/.m2/repository/org/apache/logging/log4j/*/3*-SNAPSHOT > >>>> $ ./mvnw clean install -DskipTests=true > >>>> > >>>> Opened the directory using IDEA (2021.1 RC), but couldn't get it to > have > >>>> successful build: > >>>> > >>>> W: Output path > >>>> > /home/vy/Projects/log4j/3/log4j-core/target/generated-sources/annotations > >>>> intersects with a source root. Only files that were created by build > will > >>>> be cleaned > >>>> W: Output path > >>>> > /home/vy/Projects/log4j/3/log4j-plugins/target/generated-test-sources/test-annotations > >>>> intersects with a source root. Only files that were created by build > will > >>>> be cleaned > >>>> W: Output path > >>>> > /home/vy/Projects/log4j/3/log4j-layout-template-json/target/generated-test-sources/test-annotations > >>>> intersects with a source root. Only files that were created by build > will > >>>> be cleaned > >>>> W: Output path > >>>> > /home/vy/Projects/log4j/3/log4j-plugins/target/generated-sources/annotations > >>>> intersects with a source root. Only files that were created by build > will > >>>> be cleaned > >>>> W: Output path > >>>> > /home/vy/Projects/log4j/3/log4j-layout-template-json/target/generated-sources/annotations > >>>> intersects with a source root. Only files that were created by build > will > >>>> be cleaned > >>>> W: Output path > >>>> > /home/vy/Projects/log4j/3/log4j-layout-jackson-json/target/generated-sources/annotations > >>>> intersects with a source root. Only files that were created by build > will > >>>> be cleaned > >>>> W: Output path > >>>> > /home/vy/Projects/log4j/3/log4j-core/target/generated-test-sources/test-annotations > >>>> intersects with a source root. Only files that were created by build > will > >>>> be cleaned > >>>> > >>>> *E: Cannot build maven-annotations-production:log4j-api because it is > >>>> included into a circular dependency (module 'log4j-api' production, > >>>> maven-annotations-production:log4j-api, module 'log4j-plugins' > production, > >>>> maven-annotations-production:log4j-plugins)E: Cannot build > >>>> maven-annotations-test:log4j-plugins because it is included into a > circular > >>>> dependency (maven-annotations-test:log4j-plugins, module 'log4j-api' > tests, > >>>> maven-annotations-test:log4j-api, module 'log4j-plugins' tests)* > >>>> > >>>> Did you get it working? What shall I do to make it work? > >>> > >>> > >>> > >> > >> > >> > > > > > > > > >