Skip to content

Commit 028f562

Browse files
authored
Add support for multi-release jars (#2442)
1 parent 8cf58e1 commit 028f562

File tree

4 files changed

+17
-8
lines changed

4 files changed

+17
-8
lines changed

apm-agent/pom.xml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -417,13 +417,6 @@
417417
<exclude>**/*</exclude>
418418
</excludes>
419419
</filter>
420-
<filter>
421-
<artifact>*:*</artifact>
422-
<excludes>
423-
<exclude>**/module-info.class</exclude>
424-
<exclude>META-INF/versions/**</exclude>
425-
</excludes>
426-
</filter>
427420
<filter>
428421
<artifact>org.apache.logging.log4j:log4j-core</artifact>
429422
<!--Keep in sync with apm-agent-attach-cli/pom.xml-->

elastic-apm-agent/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@
134134
<fileset dir="${project.basedir}/target/classes/agent" includes="**/*.class" />
135135
<mapper type="regexp" from="^(.*)\.class$$" to="\1\.esclazz" />
136136
</move>
137+
<move todir="${project.basedir}/target/classes/META-INF/versions" overwrite="true">
138+
<fileset dir="${project.basedir}/target/classes/agent/META-INF/versions" includes="**" />
139+
<mapper type="regexp" from="^(\d+)/(.*)$$" to="\1/agent/\2" />
140+
</move>
137141
</target>
138142

139143
</configuration>
@@ -208,6 +212,7 @@
208212
<Can-Redefine-Classes>true</Can-Redefine-Classes>
209213
<Can-Retransform-Classes>true</Can-Retransform-Classes>
210214
<Can-Set-Native-Method-Prefix>true</Can-Set-Native-Method-Prefix>
215+
<Multi-Release>true</Multi-Release>
211216
</manifestEntries>
212217
</transformer>
213218
</transformers>

elastic-apm-agent/src/test/java/co/elastic/apm/agent/premain/AgentPackagingIT.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import java.util.jar.Manifest;
4040
import java.util.stream.Collectors;
4141
import java.util.zip.ZipEntry;
42+
import java.util.zip.ZipFile;
4243

4344
import static org.assertj.core.api.Assertions.assertThat;
4445

@@ -160,4 +161,11 @@ public String value() {
160161
})
161162
.isTrue());
162163
}
164+
165+
@Test
166+
void testMultiReleaseJar() throws Exception {
167+
JarFile jarFile = new JarFile(agentJar.toFile(), false, ZipFile.OPEN_READ, Runtime.Version.parse("9"));
168+
assertThat(jarFile.isMultiRelease()).isTrue();
169+
assertThat(jarFile.getJarEntry("agent/org/apache/logging/log4j/util/StackLocator.esclazz").getRealName()).startsWith("META-INF/versions/9");
170+
}
163171
}

pom.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,10 @@
398398
<groupId>org.jacoco</groupId>
399399
<artifactId>jacoco-maven-plugin</artifactId>
400400
<configuration>
401-
<excludes>**/*.esclazz</excludes>
401+
<excludes>
402+
<exclude>**/*.esclazz</exclude>
403+
<exclude>**/*.jar</exclude>
404+
</excludes>
402405
</configuration>
403406
<executions>
404407
<execution>

0 commit comments

Comments
 (0)