ctubbsii commented on code in PR #5890:
URL: https://github.com/apache/accumulo/pull/5890#discussion_r2361252260
##########
pom.xml:
##########
@@ -1682,11 +1693,57 @@
<surefire.reuseForks>${reuseForks}</surefire.reuseForks>
</properties>
</profile>
+ <profile>
+ <!--
+ Explicitly add the log4j annotation processor to generate the
Log4jPlugins.dat file for the
+ AccumuloMonitorAppender, but only when not using the errorprone
profile. This is necessary
+ because log4j added a GraalVMProcessor that we don't need and won't
run without failing the
+ build, so we need to itemize all the processors we do want to run.
Except, I couldn't get
+ errorprone to work when I tried to itemize its processors, so
errorprone needs to rely on
+ the normal autodiscovery process. Since that would pick up the
unwanted GraalVMProcessor,
+ this profile exists to avoid adding log4j-core to the processors when
using errorprone.
+ This prevents using the AccumuloMonitorAppender when using the
errorprone profile.
+ Activate the errorprone profile and de-activate this one
simultaneously by using:
+ `mvn -Derrorprone` or `mvn -Perrorprone,!generate-log4j-plugin-data`
+ -->
+ <id>generate-log4j-plugin-data</id>
+ <activation>
+ <property>
+ <name>!errorprone</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <annotationProcessorPaths>
+ <path>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>${version.log4j}</version>
+ </path>
+ </annotationProcessorPaths>
+ <annotationProcessors>
Review Comment:
It's correct that it avoids auto discovery, but it's incorrect that it's
avoiding the errorprone processor. It's actually avoiding a second log4j
process (GraalVMProcessor) from log4j-core, which is what the other comments
explain.
The errorprone one is being avoided by not being present on the
`<annotationProcessorPaths/>` element in this profile, since it's only added to
that in the other profile. A comment here to explain that part would just be
explaining how Maven profiles and/or `maven-compiler-plugin` configuration
elements work, which I think is best left to the docs for those projects.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]