Skip to content

Commit f099ac0

Browse files
authored
Merge pull request #148 from dmitri-gb/master
Make Java agent work with JDK 9+
2 parents cdb21e9 + 2b181dc commit f099ac0

14 files changed

Lines changed: 166 additions & 69 deletions

File tree

.idea/libraries/Maven__org_ow2_asm_asm_7_0.xml

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/Maven__org_ow2_asm_asm_debug_all_5_2.xml

Lines changed: 0 additions & 13 deletions
This file was deleted.

.idea/libraries/Maven__org_ow2_asm_asm_tree_7_0.xml

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

end-to-end-tests/end-to-end-tests.iml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
<orderEntry type="library" name="Maven: com.google.guava:guava:11.0.2" level="project" />
1515
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
1616
<orderEntry type="library" scope="TEST" name="Maven: commons-lang:commons-lang:2.6" level="project" />
17-
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm-debug-all:5.2" level="project" />
17+
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:7.0" level="project" />
18+
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm-tree:7.0" level="project" />
1819
<orderEntry type="library" scope="TEST" name="Maven: org.apache.bcel:bcel:5.2" level="project" />
1920
<orderEntry type="library" scope="TEST" name="Maven: jakarta-regexp:jakarta-regexp:1.4" level="project" />
2021
<orderEntry type="module-library">

end-to-end-tests/pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,13 @@
3030

3131
<dependency>
3232
<groupId>org.ow2.asm</groupId>
33-
<artifactId>asm-debug-all</artifactId>
33+
<artifactId>asm</artifactId>
34+
<scope>test</scope>
35+
</dependency>
36+
37+
<dependency>
38+
<groupId>org.ow2.asm</groupId>
39+
<artifactId>asm-tree</artifactId>
3440
<scope>test</scope>
3541
</dependency>
3642

parent/pom.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,14 @@
8585

8686
<dependency>
8787
<groupId>org.ow2.asm</groupId>
88-
<artifactId>asm-debug-all</artifactId>
89-
<version>5.2</version>
88+
<artifactId>asm</artifactId>
89+
<version>7.0</version>
90+
</dependency>
91+
92+
<dependency>
93+
<groupId>org.ow2.asm</groupId>
94+
<artifactId>asm-tree</artifactId>
95+
<version>7.0</version>
9096
</dependency>
9197

9298
<dependency>
@@ -312,7 +318,7 @@
312318

313319
<plugin>
314320
<artifactId>maven-plugin-plugin</artifactId>
315-
<version>3.4</version>
321+
<version>3.6.0</version>
316322
</plugin>
317323

318324
<plugin>

retrolambda-maven-plugin/retrolambda-maven-plugin.iml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
<orderEntry type="inheritedJdk" />
1414
<orderEntry type="sourceFolder" forTests="false" />
1515
<orderEntry type="module" module-name="retrolambda" />
16-
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.2" level="project" />
16+
<orderEntry type="library" name="Maven: org.ow2.asm:asm:7.0" level="project" />
17+
<orderEntry type="library" name="Maven: org.ow2.asm:asm-tree:7.0" level="project" />
1718
<orderEntry type="library" name="Maven: com.esotericsoftware:minlog:1.3" level="project" />
1819
<orderEntry type="module" module-name="retrolambda-api" />
1920
<orderEntry type="library" name="Maven: org.apache.maven:maven-plugin-api:3.0" level="project" />

retrolambda/pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@
2323

2424
<dependency>
2525
<groupId>org.ow2.asm</groupId>
26-
<artifactId>asm-debug-all</artifactId>
26+
<artifactId>asm</artifactId>
27+
</dependency>
28+
29+
<dependency>
30+
<groupId>org.ow2.asm</groupId>
31+
<artifactId>asm-tree</artifactId>
2732
</dependency>
2833

2934
<dependency>
@@ -50,6 +55,7 @@
5055
<mainClass>net.orfjackal.retrolambda.Main</mainClass>
5156
</manifest>
5257
<manifestEntries>
58+
<Can-Retransform-Classes>true</Can-Retransform-Classes>
5359
<Premain-Class>net.orfjackal.retrolambda.PreMain</Premain-Class>
5460
</manifestEntries>
5561
</archive>

retrolambda/retrolambda.iml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
<orderEntry type="inheritedJdk" />
1212
<orderEntry type="sourceFolder" forTests="false" />
1313
<orderEntry type="module" module-name="retrolambda-api" />
14-
<orderEntry type="library" name="Maven: org.ow2.asm:asm-debug-all:5.2" level="project" />
14+
<orderEntry type="library" name="Maven: org.ow2.asm:asm:7.0" level="project" />
15+
<orderEntry type="library" name="Maven: org.ow2.asm:asm-tree:7.0" level="project" />
1516
<orderEntry type="library" name="Maven: com.google.guava:guava:18.0" level="project" />
1617
<orderEntry type="library" name="Maven: com.esotericsoftware:minlog:1.3" level="project" />
1718
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright © 2013-2018 Esko Luontola and other Retrolambda contributors
2+
// This software is released under the Apache License 2.0.
3+
// The license text is at http://www.apache.org/licenses/LICENSE-2.0
4+
5+
package net.orfjackal.retrolambda;
6+
7+
import net.orfjackal.retrolambda.ext.ow2asm.EnhancedClassReader;
8+
import net.orfjackal.retrolambda.lambdas.LambdaClassSaver;
9+
import org.objectweb.asm.ClassReader;
10+
11+
public class Agent {
12+
13+
private static boolean enabled = false;
14+
private static LambdaClassSaver lambdaClassSaver;
15+
private static boolean isJavacHacksEnabled;
16+
17+
public static void enable() {
18+
enabled = true;
19+
}
20+
21+
public static boolean isEnabled() {
22+
return enabled;
23+
}
24+
25+
public static void setLambdaClassSaver(LambdaClassSaver lambdaClassSaver, boolean isJavacHacksEnabled) {
26+
Agent.lambdaClassSaver = lambdaClassSaver;
27+
Agent.isJavacHacksEnabled = isJavacHacksEnabled;
28+
}
29+
30+
public static void saveLambda(byte[] bytes) {
31+
if (lambdaClassSaver != null) {
32+
ClassReader reader = EnhancedClassReader.create(bytes, isJavacHacksEnabled);
33+
lambdaClassSaver.saveIfLambda(reader.getClassName(), bytes);
34+
}
35+
}
36+
}

0 commit comments

Comments
 (0)