Skip to content

Commit 6cbc02a

Browse files
committed
Refactor agent class names; use ASM API version correctly in Proxy Agent; remove unnecessary code in ContinuableClassLoader; rename Ant & Maven artifacts
1 parent d596057 commit 6cbc02a

File tree

23 files changed

+50
-87
lines changed

23 files changed

+50
-87
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ There is a separate Ant task for applying JavaFlow instrumentation at build-time
7878
It's possibe to instrument compiled Java classes as below:
7979
```xml
8080
<target name="instrument-classes" description="JavaFlow Instrumentation" depends="compile">
81-
<taskdef name="javaflow" classname="org.apache.commons.javaflow.tools.ant.AntRewriteTask"
81+
<taskdef name="javaflow" classname="org.apache.commons.javaflow.tools.ant.ContinuableClassesInstrumentationTask"
8282
classpathref="ant-lib-classpath"/>
8383
<echo message="JavaFlow instrumentation of compiled classes in ${classes.dir}" />
8484
<javaflow srcdir="${classes.dir}" destdir="${i-classes.dir}" classpathref="classpath"/>
@@ -87,7 +87,7 @@ It's possibe to instrument compiled Java classes as below:
8787
... as well as re-write packaged JAR file:
8888
```xml
8989
<target name="instrument-jar" description="JavaFlow Instrumentation" depends="jar">
90-
<taskdef name="javaflow" classname="org.apache.commons.javaflow.tools.ant.AntRewriteTask"
90+
<taskdef name="javaflow" classname="org.apache.commons.javaflow.tools.ant.ContinuableClassesInstrumentationTask"
9191
classpathref="ant-lib-classpath"/>
9292
<echo message="JavaFlow instrumentation of compiled classes in ${jar.dir}/${ant.project.name}.jar" />
9393
<javaflow srcdir="${jar.dir}" destdir="${i-jar.dir}" classpathref="classpath"/>

net.tascalate.javaflow.agent.core/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
<artifactId>net.tascalate.javaflow.agent.core</artifactId>
1212
<packaging>jar</packaging>
1313

14-
<name>Tascalate JavaFlow / Agent / Continuations Instrumentation Agent</name>
14+
<name>Tascalate JavaFlow / Agent / Continuable Classes Instrumentation Agent</name>
1515

1616
<properties>
1717
<license.header>../HEADER-ORIGINAL.txt</license.header>
18-
<java-agent.class>org.apache.commons.javaflow.agent.core.JavaFlowInstrumentationAgent</java-agent.class>
18+
<java-agent.class>org.apache.commons.javaflow.agent.core.ContinuableClassesInstrumentationAgent</java-agent.class>
1919
</properties>
2020

2121
<dependencies>
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import org.apache.commons.javaflow.agent.common.ConfigurableClassFileTransformer;
1919
import org.apache.commons.javaflow.providers.asmx.AsmxResourceTransformationFactory;
2020

21-
public class JavaFlowClassTransformer extends ConfigurableClassFileTransformer {
22-
public JavaFlowClassTransformer() {
21+
class ContinuableClassBytecodeTransformer extends ConfigurableClassFileTransformer {
22+
public ContinuableClassBytecodeTransformer() {
2323
super(new AsmxResourceTransformationFactory());
2424
}
2525
}
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727

2828
import net.tascalate.instrument.agent.AbstractLambdaAwareInstrumentationAgent;
2929

30-
public class JavaFlowInstrumentationAgent extends AbstractLambdaAwareInstrumentationAgent {
30+
public class ContinuableClassesInstrumentationAgent extends AbstractLambdaAwareInstrumentationAgent {
3131

32-
private final ClassFileTransformer javaFlowClassTransformer = new JavaFlowClassTransformer();
32+
private final ClassFileTransformer continuableClassTransformer = new ContinuableClassBytecodeTransformer();
3333

34-
protected JavaFlowInstrumentationAgent(String arguments, Instrumentation instrumentation) {
34+
protected ContinuableClassesInstrumentationAgent(String arguments, Instrumentation instrumentation) {
3535
super(arguments, instrumentation);
3636
}
3737

@@ -46,7 +46,7 @@ protected JavaFlowInstrumentationAgent(String arguments, Instrumentation instrum
4646
* @throws Exception
4747
*/
4848
public static void premain(String args, Instrumentation instrumentation) throws Exception {
49-
JavaFlowInstrumentationAgent agent = new JavaFlowInstrumentationAgent(args, instrumentation);
49+
ContinuableClassesInstrumentationAgent agent = new ContinuableClassesInstrumentationAgent(args, instrumentation);
5050
agent.attachDefaultLambdaInstrumentationHook();
5151
agent.install();
5252
}
@@ -62,7 +62,7 @@ public static void premain(String args, Instrumentation instrumentation) throws
6262
* @throws Exception
6363
*/
6464
public static void agentmain(String args, Instrumentation instrumentation) throws Exception {
65-
JavaFlowInstrumentationAgent agent = new JavaFlowInstrumentationAgent(args, instrumentation);
65+
ContinuableClassesInstrumentationAgent agent = new ContinuableClassesInstrumentationAgent(args, instrumentation);
6666
agent.attachDefaultLambdaInstrumentationHook();
6767
Set<String> nonRetransformPackages = new HashSet<String>(BASE_OWN_PACKAGES);
6868
nonRetransformPackages.addAll(
@@ -77,7 +77,7 @@ public static void agentmain(String args, Instrumentation instrumentation) throw
7777
@Override
7878
protected Collection<ClassFileTransformer> createTransformers(boolean canRetransform) {
7979
if (canRetransform) {
80-
return Collections.singleton(javaFlowClassTransformer);
80+
return Collections.singleton(continuableClassTransformer);
8181
} else {
8282
return Collections.emptySet();
8383
}
@@ -89,6 +89,6 @@ protected String readLambdaClassName(byte[] bytes) {
8989
}
9090

9191
void attachDefaultLambdaInstrumentationHook() throws Exception {
92-
attachLambdaInstrumentationHook(createLambdaClassTransformer(javaFlowClassTransformer));
92+
attachLambdaInstrumentationHook(createLambdaClassTransformer(continuableClassTransformer));
9393
}
9494
}

net.tascalate.javaflow.agent.proxy/.classpath

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
</classpathentry>
2727
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
2828
<attributes>
29-
<attribute name="module" value="true"/>
3029
<attribute name="maven.pomderived" value="true"/>
3130
</attributes>
3231
</classpathentry>

net.tascalate.javaflow.agent.proxy/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
<artifactId>net.tascalate.javaflow.agent.proxy</artifactId>
1212
<packaging>jar</packaging>
1313

14-
<name>Tascalate JavaFlow / Agent / Proxy (CDI, Spring, etc) Instrumentation JavaAgent</name>
14+
<name>Tascalate JavaFlow / Agent / Continuable Proxies (CDI, Spring, etc) Instrumentation Agent</name>
1515

1616
<properties>
1717
<license.header>../HEADER-ORIGINAL.txt</license.header>
18-
<java-agent.class>org.apache.commons.javaflow.agent.proxy.CdiProxyInstrumentationAgent</java-agent.class>
18+
<java-agent.class>org.apache.commons.javaflow.agent.proxy.ContinuableProxiesInstrumentationAgent</java-agent.class>
1919
</properties>
2020

2121
<dependencies>
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727

2828
import net.tascalate.instrument.agent.AbstractInstrumentationAgent;
2929

30-
public class CdiProxyInstrumentationAgent extends AbstractInstrumentationAgent {
30+
public class ContinuableProxiesInstrumentationAgent extends AbstractInstrumentationAgent {
3131

32-
protected CdiProxyInstrumentationAgent(String arguments, Instrumentation instrumentation) {
32+
protected ContinuableProxiesInstrumentationAgent(String arguments, Instrumentation instrumentation) {
3333
super(arguments, instrumentation);
3434
}
3535

@@ -44,7 +44,7 @@ protected CdiProxyInstrumentationAgent(String arguments, Instrumentation instrum
4444
* @throws Exception
4545
*/
4646
public static void premain(String args, Instrumentation instrumentation) throws Exception {
47-
CdiProxyInstrumentationAgent agent = new CdiProxyInstrumentationAgent(args, instrumentation);
47+
ContinuableProxiesInstrumentationAgent agent = new ContinuableProxiesInstrumentationAgent(args, instrumentation);
4848
agent.install();
4949
}
5050

@@ -59,7 +59,7 @@ public static void premain(String args, Instrumentation instrumentation) throws
5959
* @throws Exception
6060
*/
6161
public static void agentmain(String args, Instrumentation instrumentation) throws Exception {
62-
CdiProxyInstrumentationAgent agent = new CdiProxyInstrumentationAgent(args, instrumentation);
62+
ContinuableProxiesInstrumentationAgent agent = new ContinuableProxiesInstrumentationAgent(args, instrumentation);
6363
Set<String> nonRetransformPackages = new HashSet<String>(BASE_OWN_PACKAGES);
6464
nonRetransformPackages.addAll(
6565
InstrumentationUtils.packagePrefixesOf(
@@ -73,7 +73,7 @@ public static void agentmain(String args, Instrumentation instrumentation) throw
7373
@Override
7474
protected Collection<ClassFileTransformer> createTransformers(boolean canRetransform) {
7575
if (canRetransform) {
76-
ClassFileTransformer transformer = new CdiProxyClassTransformer();
76+
ClassFileTransformer transformer = new ContinuableProxyBytecodeTransformer();
7777
return Collections.singleton(transformer);
7878
} else {
7979
return Collections.emptySet();

net.tascalate.javaflow.agent.proxy/src/main/java/org/apache/commons/javaflow/agent/proxy/ContinuableProxyAdapter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,12 @@ class ContinuableProxyAdapter extends ExtendedClassVisitor {
3838

3939
private ProxyClassProcessor processor;
4040

41-
ContinuableProxyAdapter(ClassVisitor delegate,
41+
ContinuableProxyAdapter(int api,
42+
ClassVisitor delegate,
4243
ClassHierarchy hierarchy,
4344
ContinuableClassInfoResolver cciResolver,
4445
List<ProxyType> proxyTypes) {
45-
super(delegate);
46+
super(api, delegate);
4647
this.cciResolver = cciResolver;
4748
this.hierarchy = hierarchy;
4849
this.proxyTypes = proxyTypes;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@
1717

1818
import org.apache.commons.javaflow.agent.common.ConfigurableClassFileTransformer;
1919

20-
class CdiProxyClassTransformer extends ConfigurableClassFileTransformer {
20+
class ContinuableProxyBytecodeTransformer extends ConfigurableClassFileTransformer {
2121

22-
CdiProxyClassTransformer() {
22+
ContinuableProxyBytecodeTransformer() {
2323
super(new ContinuableProxyTransformationFactory());
2424
}
2525
}

net.tascalate.javaflow.agent.proxy/src/main/java/org/apache/commons/javaflow/agent/proxy/ContinuableProxyTransformer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import net.tascalate.asmx.ClassReader;
2626
import net.tascalate.asmx.ClassVisitor;
2727
import net.tascalate.asmx.ClassWriter;
28+
import net.tascalate.asmx.plus.AsmVersion;
2829
import net.tascalate.asmx.plus.ClassHierarchy;
2930
import net.tascalate.asmx.plus.OfflineClassWriter;
3031

@@ -46,7 +47,7 @@ class ContinuableProxyTransformer extends AbstractResourceTransformer {
4647
public byte[] transform(byte[] original, Collection<String> retransformClasses) {
4748
ClassReader reader = new ClassReader(original);
4849
ClassWriter writer = new OfflineClassWriter(classHierarchy, reader, ClassWriter.COMPUTE_FRAMES + ClassWriter.COMPUTE_MAXS);
49-
ClassVisitor visitor = new ContinuableProxyAdapter(writer, classHierarchy, cciResolver, proxyTypes);
50+
ClassVisitor visitor = new ContinuableProxyAdapter(AsmVersion.CURRENT, writer, classHierarchy, cciResolver, proxyTypes);
5051
cciResolver.reset(retransformClasses);
5152
try {
5253
reader.accept(visitor, ClassReader.EXPAND_FRAMES);

0 commit comments

Comments
 (0)