GitHub user ppkarwasz added a comment to the discussion: java.lang.IllegalArgumentException: The `GraalVmProcessor` annotation processor is missing the required `log4j.graalvm.groupId` and `log4j.graalvm.artifactId` options
Hi @kwakeroni, There’s **no dedicated flag** to turn `GraalVmProcessor` off, since you can effectively control it through standard compiler options. As @ftreede mentioned, since Java 6, `javac` has **automatically loaded** all annotation processors found on the annotation processor path (which, by default, is just the classpath). This implicit behavior has been flagged as a security concern and is now **deprecated as of Java 23** (see [this JDK 23 heads-up](https://inside.java/2024/06/18/quality-heads-up/) and the [excellent write-up here](https://javapro.io/2024/11/19/discovering-the-perfect-java-supply-chain-attack-vector-and-how-it-got-fixed/)). Keeping the spirit of the changes in JDK 23, we intentionally make `GraalVmProcessor` fail with an **`ERROR`** (instead of silently ignoring it or logging a warning) because: * It helps developers become immediately aware that a new annotation processor is active. * It forces an **explicit decision**: either configure it properly (opt-in) or disable it (opt-out). ### ✅ How to Opt-Out Depending on whether you use **other annotation processors**, you can take one of two approaches: #### 1. You **don’t** use other annotation processors You can simply disable all annotation processing: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <!-- Completely disable annotation processing --> <proc>none</proc> </configuration> </plugin> ``` #### 2. You **do** use other annotation processors In this case, declare them explicitly and isolate your annotation processor classpath: ```xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <annotationProcessorPaths> <!-- Include only specific processors, e.g. Log4j’s PluginProcessor --> <path> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.25.0</version> </path> </annotationProcessorPaths> <annotationProcessors> <!-- List processors explicitly --> <annotationProcessor>org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor</annotationProcessor> </annotationProcessors> </configuration> </plugin> ``` This ensures that only the processors you trust and need are loaded—nothing more, nothing less. ### ✅ How to Opt-In An example on to use both `PluginProcessor` and `GraalVmProcessor` is available on the [documentation page you site](https://logging.apache.org/log4j/2.x/manual/plugins.html#plugin-registry) GitHub link: https://github.com/apache/logging-log4j2/discussions/3755#discussioncomment-13512010 ---- This is an automatically sent email for dev@logging.apache.org. To unsubscribe, please send an email to: dev-unsubscr...@logging.apache.org