Skip to content

Commit d0ae82c

Browse files
committed
build(log4j2): Pin compilation to JDK 8 via Maven Toolchains
Release 1.6.3 was built on a JDK that does not run annotation processors by default, which silently dropped the Log4j2 plugin descriptor (META-INF/.../Log4j2Plugins.dat) for LambdaAppender, LambdaTextFormat, and LambdaJsonFormat. The published artifact was broken at runtime: log4j could not resolve <Lambda>, <LambdaTextFormat>, or <LambdaJsonFormat> elements in user log4j2.xml configurations. Configure maven-toolchains-plugin to require a JDK 8 toolchain so javac comes from a JDK that runs annotation processors by default, regardless of which JVM Maven is invoked under. The version range [1.8,9) matches both "1.8" and "8". The existing GitHub Actions workflow at .github/workflows/aws-lambda-java-log4j2.yml uses actions/setup-java@v5 with java-version: 8 and distribution: corretto. setup-java@v5 auto-generates a ~/.m2/toolchains.xml entry with <version>8</version>, which the [1.8,9) range matches, so no workflow changes are required. When no matching JDK 8 toolchain is available, the build now fails fast at the validate phase with a clear "Cannot find matching toolchain definitions" error instead of silently producing an artifact missing its plugin descriptor.
1 parent 8adb3d7 commit d0ae82c

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

aws-lambda-java-log4j2/pom.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,32 @@
6262
</dependency>
6363
</dependencies>
6464

65+
<build>
66+
<plugins>
67+
<plugin>
68+
<groupId>org.apache.maven.plugins</groupId>
69+
<artifactId>maven-toolchains-plugin</artifactId>
70+
<version>3.2.0</version>
71+
<configuration>
72+
<toolchains>
73+
<jdk>
74+
<!-- Range matches both "8" (e.g. actions/setup-java)
75+
and "1.8" (legacy / hand-written toolchains). -->
76+
<version>[1.8,9)</version>
77+
</jdk>
78+
</toolchains>
79+
</configuration>
80+
<executions>
81+
<execution>
82+
<goals>
83+
<goal>toolchain</goal>
84+
</goals>
85+
</execution>
86+
</executions>
87+
</plugin>
88+
</plugins>
89+
</build>
90+
6591
<profiles>
6692
<profile>
6793
<id>dev</id>

0 commit comments

Comments
 (0)