diff --git a/.gitignore b/.gitignore
index 1b168f7..874d961 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@ PlayOutAgent/poa-trunk.jar
ReportingAgent/bin
TamiFlexDatabase/bin
Booster/bin
+**/target/
PlayInAgent/pia-trunk.jar
de.bodden.tamiflex/lib/pia.jar
de.bodden.tamiflex/lib/poa.jar
diff --git a/Booster/ant.settings.template b/Booster/ant.settings.template
deleted file mode 100644
index ff5ba55..0000000
--- a/Booster/ant.settings.template
+++ /dev/null
@@ -1,2 +0,0 @@
-soot.version=trunk
-tf.version=trunk
\ No newline at end of file
diff --git a/Booster/build.xml b/Booster/build.xml
deleted file mode 100644
index 165c1ff..0000000
--- a/Booster/build.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-
- description
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Booster/lib/soot-trunk.jar b/Booster/lib/soot-trunk.jar
deleted file mode 100644
index 6f546bb..0000000
Binary files a/Booster/lib/soot-trunk.jar and /dev/null differ
diff --git a/Booster/pom.xml b/Booster/pom.xml
new file mode 100644
index 0000000..0e87d3d
--- /dev/null
+++ b/Booster/pom.xml
@@ -0,0 +1,50 @@
+
+
+ 4.0.0
+
+ de.bodden.tamiflex
+ tamiflex-parent
+ trunk
+
+ booster
+
+ 11
+
+
+ src
+ booster-${project.version}
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ package
+ shade
+
+ false
+
+
+
+ de.bodden.tamiflex.booster.ReflInliner
+ ${project.version}
+
+
+
+
+
+
+
+
+
+
+
+
+ org.soot-oss
+ soot
+ 4.6.0
+
+
+
diff --git a/MonitorAgent/ant.settings b/MonitorAgent/ant.settings
deleted file mode 100644
index 3dfefc2..0000000
--- a/MonitorAgent/ant.settings
+++ /dev/null
@@ -1 +0,0 @@
-tf.version=trunk
\ No newline at end of file
diff --git a/MonitorAgent/build.xml b/MonitorAgent/build.xml
deleted file mode 100644
index 9dda16f..0000000
--- a/MonitorAgent/build.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/MonitorAgent/poa-trunk.jar b/MonitorAgent/poa-trunk.jar
deleted file mode 100644
index 7bb2a6a..0000000
Binary files a/MonitorAgent/poa-trunk.jar and /dev/null differ
diff --git a/MonitorAgent/pom.xml b/MonitorAgent/pom.xml
new file mode 100644
index 0000000..f75dacd
--- /dev/null
+++ b/MonitorAgent/pom.xml
@@ -0,0 +1,63 @@
+
+
+ 4.0.0
+
+ de.bodden.tamiflex
+ tamiflex-parent
+ trunk
+
+ monitor-agent
+
+ src
+ poa-${project.version}
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-shared-and-runtime-sources
+ generate-sources
+ add-source
+
+
+ rtlib
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ package
+ shade
+
+ false
+
+
+
+ de.bodden.tamiflex.playout.Agent
+ true
+ ${project.version}
+
+
+
+
+
+
+
+
+
+
+
+ de.bodden.tamiflex
+ normalizer
+ ${project.version}
+
+
+
diff --git a/MonitorAgent/src/de/bodden/tamiflex/playout/ReflectionMonitor.java b/MonitorAgent/src/de/bodden/tamiflex/playout/ReflectionMonitor.java
index ca2680a..a834439 100644
--- a/MonitorAgent/src/de/bodden/tamiflex/playout/ReflectionMonitor.java
+++ b/MonitorAgent/src/de/bodden/tamiflex/playout/ReflectionMonitor.java
@@ -16,11 +16,9 @@
import java.lang.instrument.IllegalClassFormatException;
import java.security.ProtectionDomain;
-import org.objectweb.asm.ClassAdapter;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
-import org.objectweb.asm.MethodAdapter;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
@@ -36,7 +34,7 @@ public byte[] transform(ClassLoader loader, final String className,
ClassReader creader = new ClassReader(classfileBuffer);
ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS);
- ClassVisitor visitor = new ClassAdapter(writer) {
+ ClassVisitor visitor = new ClassVisitor(Opcodes.ASM9, writer) {
public MethodVisitor visitMethod(int access, String methodName, String desc, String signature, String[] exceptions) {
//delegate
@@ -66,10 +64,10 @@ public MethodVisitor visitMethod(int access, String methodName, String desc, Str
}
}
- static class ClassForNameAdapter extends MethodAdapter {
+ static class ClassForNameAdapter extends MethodVisitor {
public ClassForNameAdapter(MethodVisitor mv) {
- super(mv);
+ super(Opcodes.ASM9, mv);
}
@Override
@@ -85,10 +83,10 @@ public void visitInsn(int opcode) {
}
- static class ClassNewInstanceAdapter extends MethodAdapter {
+ static class ClassNewInstanceAdapter extends MethodVisitor {
public ClassNewInstanceAdapter(MethodVisitor mv) {
- super(mv);
+ super(Opcodes.ASM9, mv);
}
@Override
@@ -104,10 +102,10 @@ public void visitInsn(int opcode) {
}
- static class MethodInvokeAdapter extends MethodAdapter {
+ static class MethodInvokeAdapter extends MethodVisitor {
public MethodInvokeAdapter(MethodVisitor mv) {
- super(mv);
+ super(Opcodes.ASM9, mv);
}
@Override
@@ -125,11 +123,11 @@ public void visitInsn(int opcode) {
}
- static class ConstructorNewInstanceAdapter extends MethodAdapter {
+ static class ConstructorNewInstanceAdapter extends MethodVisitor {
public ConstructorNewInstanceAdapter(MethodVisitor mv) {
- super(mv);
+ super(Opcodes.ASM9, mv);
}
@Override
@@ -146,10 +144,10 @@ public void visitInsn(int opcode) {
}
//Comment creation
-/* static class CommentAdapter extends MethodAdapter {
+/* static class CommentAdapter extends MethodVisitor {
public CommentAdapter(MethodVisitor mv) {
- super(mv);
+ super(Opcodes.ASM9, mv);
}
@Override
diff --git a/Normalizer/lib/asm-9.9.1.jar b/Normalizer/lib/asm-9.9.1.jar
deleted file mode 100644
index 3fb0cd0..0000000
Binary files a/Normalizer/lib/asm-9.9.1.jar and /dev/null differ
diff --git a/Normalizer/lib/asm-commons-9.9.1.jar b/Normalizer/lib/asm-commons-9.9.1.jar
deleted file mode 100644
index c69bd4a..0000000
Binary files a/Normalizer/lib/asm-commons-9.9.1.jar and /dev/null differ
diff --git a/Normalizer/lib/asm-tree-9.9.1.jar b/Normalizer/lib/asm-tree-9.9.1.jar
deleted file mode 100644
index 59edb09..0000000
Binary files a/Normalizer/lib/asm-tree-9.9.1.jar and /dev/null differ
diff --git a/Normalizer/lib/asm-util-9.9.1.jar b/Normalizer/lib/asm-util-9.9.1.jar
deleted file mode 100644
index 0a9e77a..0000000
Binary files a/Normalizer/lib/asm-util-9.9.1.jar and /dev/null differ
diff --git a/Normalizer/pom.xml b/Normalizer/pom.xml
new file mode 100644
index 0000000..567d10a
--- /dev/null
+++ b/Normalizer/pom.xml
@@ -0,0 +1,33 @@
+
+
+ 4.0.0
+
+ de.bodden.tamiflex
+ tamiflex-parent
+ trunk
+
+ normalizer
+
+ src
+ normalizer-${project.version}
+
+
+
+ org.ow2.asm
+ asm
+ ${asm.version}
+
+
+ org.ow2.asm
+ asm-commons
+ ${asm.version}
+
+
+ org.ow2.asm
+ asm-tree
+ ${asm.version}
+
+
+
diff --git a/PlayInAgent/ant.settings b/PlayInAgent/ant.settings
deleted file mode 100644
index 87dfbb4..0000000
--- a/PlayInAgent/ant.settings
+++ /dev/null
@@ -1 +0,0 @@
-tf.version=trunk
diff --git a/PlayInAgent/ant.settings.template b/PlayInAgent/ant.settings.template
deleted file mode 100644
index 3dfefc2..0000000
--- a/PlayInAgent/ant.settings.template
+++ /dev/null
@@ -1 +0,0 @@
-tf.version=trunk
\ No newline at end of file
diff --git a/PlayInAgent/build.xml b/PlayInAgent/build.xml
deleted file mode 100644
index 7ea7f5a..0000000
--- a/PlayInAgent/build.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/PlayInAgent/pom.xml b/PlayInAgent/pom.xml
new file mode 100644
index 0000000..6cb2300
--- /dev/null
+++ b/PlayInAgent/pom.xml
@@ -0,0 +1,72 @@
+
+
+ 4.0.0
+
+ de.bodden.tamiflex
+ tamiflex-parent
+ trunk
+
+ playin-agent
+
+ 21
+
+
+ src
+ pia-${project.version}
+
+
+ .
+ pia.properties
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-runtime-sources
+ generate-sources
+ add-source
+
+ rtlib
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ package
+ shade
+
+ false
+
+
+
+ de.bodden.tamiflex.playin.Agent
+ de.bodden.tamiflex.playin.Agent
+ true
+ ${project.version}
+ pia-${project.version}.jar pia.jar
+
+
+
+
+
+
+
+
+
+
+
+ de.bodden.tamiflex
+ normalizer
+ ${project.version}
+
+
+
diff --git a/PlayOutAgent/ant.settings b/PlayOutAgent/ant.settings
deleted file mode 100644
index 3dfefc2..0000000
--- a/PlayOutAgent/ant.settings
+++ /dev/null
@@ -1 +0,0 @@
-tf.version=trunk
\ No newline at end of file
diff --git a/PlayOutAgent/ant.settings.template b/PlayOutAgent/ant.settings.template
deleted file mode 100644
index 3dfefc2..0000000
--- a/PlayOutAgent/ant.settings.template
+++ /dev/null
@@ -1 +0,0 @@
-tf.version=trunk
\ No newline at end of file
diff --git a/PlayOutAgent/build.xml b/PlayOutAgent/build.xml
deleted file mode 100644
index bcc155e..0000000
--- a/PlayOutAgent/build.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/PlayOutAgent/pom.xml b/PlayOutAgent/pom.xml
new file mode 100644
index 0000000..990d171
--- /dev/null
+++ b/PlayOutAgent/pom.xml
@@ -0,0 +1,82 @@
+
+
+ 4.0.0
+
+ de.bodden.tamiflex
+ tamiflex-parent
+ trunk
+
+ playout-agent
+
+ 21
+
+
+ src
+ poa-${project.version}
+
+
+ .
+ poa.properties
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-runtime-sources
+ generate-sources
+ add-source
+
+ rtlib
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ package
+ shade
+
+ false
+
+
+
+ de.bodden.tamiflex.playout.Agent
+ de.bodden.tamiflex.playout.Agent
+ true
+ ${project.version}
+ poa-${project.version}.jar poa.jar
+
+
+
+
+
+
+
+
+
+
+
+ de.bodden.tamiflex
+ normalizer
+ ${project.version}
+
+
+ org.ow2.asm
+ asm-util
+ ${asm.version}
+
+
+ org.apache.ant
+ ant
+ 1.10.15
+
+
+
diff --git a/README.md b/README.md
index 6b22e4b..43245f8 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,16 @@
TamiFlex is a tool for dealing with reflection in the static analysis of Java programs. It can record reflective calls dynamically and then embed them into the application.
[Read more here in the wiki.](https://github.com/secure-software-engineering/tamiflex/wiki)
+## Building
+
+Build the project from the repository root with Maven and JDK 21 or newer:
+
+```sh
+mvn clean package
+```
+
+Maven downloads the build dependencies from Maven Central. The generated agent and tool JARs are written to the respective module's `target` directory.
+
## License
TamiFlex itself is available as Open Source under the [Eclipse Public License](https://www.eclipse.org/legal/epl-v10.html).
diff --git a/ReportingAgent/ant.settings b/ReportingAgent/ant.settings
deleted file mode 100644
index 3dfefc2..0000000
--- a/ReportingAgent/ant.settings
+++ /dev/null
@@ -1 +0,0 @@
-tf.version=trunk
\ No newline at end of file
diff --git a/ReportingAgent/ant.settings.template b/ReportingAgent/ant.settings.template
deleted file mode 100644
index 3dfefc2..0000000
--- a/ReportingAgent/ant.settings.template
+++ /dev/null
@@ -1 +0,0 @@
-tf.version=trunk
\ No newline at end of file
diff --git a/ReportingAgent/build.xml b/ReportingAgent/build.xml
deleted file mode 100644
index ba38734..0000000
--- a/ReportingAgent/build.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ReportingAgent/pom.xml b/ReportingAgent/pom.xml
new file mode 100644
index 0000000..1985a18
--- /dev/null
+++ b/ReportingAgent/pom.xml
@@ -0,0 +1,63 @@
+
+
+ 4.0.0
+
+ de.bodden.tamiflex
+ tamiflex-parent
+ trunk
+
+ reporting-agent
+
+ src
+ reporting-${project.version}
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+
+
+ add-shared-and-runtime-sources
+ generate-sources
+ add-source
+
+
+ rtlib
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ package
+ shade
+
+ false
+
+
+
+ de.bodden.tamiflex.reporting.Agent
+ true
+ ${project.version}
+
+
+
+
+
+
+
+
+
+
+
+ de.bodden.tamiflex
+ normalizer
+ ${project.version}
+
+
+
diff --git a/ReportingAgent/src/de/bodden/tamiflex/reporting/ReflectionMonitor.java b/ReportingAgent/src/de/bodden/tamiflex/reporting/ReflectionMonitor.java
index 15e80fc..1f69333 100644
--- a/ReportingAgent/src/de/bodden/tamiflex/reporting/ReflectionMonitor.java
+++ b/ReportingAgent/src/de/bodden/tamiflex/reporting/ReflectionMonitor.java
@@ -18,11 +18,11 @@
import java.lang.instrument.IllegalClassFormatException;
import java.security.ProtectionDomain;
-import org.objectweb.asm.ClassAdapter;
import org.objectweb.asm.ClassReader;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.ClassWriter;
import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
import de.bodden.tamiflex.normalizer.NameExtractor;
@@ -43,7 +43,7 @@ public byte[] transform(ClassLoader loader, String className,
ClassReader creader = new ClassReader(classfileBuffer);
ClassWriter writer = new ClassWriter(ClassWriter.COMPUTE_MAXS);
- ClassVisitor visitor = new ClassAdapter(writer) {
+ ClassVisitor visitor = new ClassVisitor(Opcodes.ASM9, writer) {
public MethodVisitor visitMethod(int access, String methodName, String desc, String signature, String[] exceptions) {
//delegate
diff --git a/ReportingAgent/src/de/bodden/tamiflex/reporting/ReportingMethodAdapter.java b/ReportingAgent/src/de/bodden/tamiflex/reporting/ReportingMethodAdapter.java
index 00a5eaa..1e60b86 100644
--- a/ReportingAgent/src/de/bodden/tamiflex/reporting/ReportingMethodAdapter.java
+++ b/ReportingAgent/src/de/bodden/tamiflex/reporting/ReportingMethodAdapter.java
@@ -10,14 +10,13 @@
******************************************************************************/
package de.bodden.tamiflex.reporting;
-import org.objectweb.asm.MethodAdapter;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
-public abstract class ReportingMethodAdapter extends MethodAdapter {
+public abstract class ReportingMethodAdapter extends MethodVisitor {
public ReportingMethodAdapter(MethodVisitor mv) {
- super(mv);
+ super(Opcodes.ASM9, mv);
}
@Override
diff --git a/TamiFlexDatabase/ant.settings b/TamiFlexDatabase/ant.settings
deleted file mode 100644
index 3dfefc2..0000000
--- a/TamiFlexDatabase/ant.settings
+++ /dev/null
@@ -1 +0,0 @@
-tf.version=trunk
\ No newline at end of file
diff --git a/TamiFlexDatabase/build.xml b/TamiFlexDatabase/build.xml
deleted file mode 100644
index d981f0d..0000000
--- a/TamiFlexDatabase/build.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/TamiFlexDatabase/lib/mysql-connector-java-5.1.12-bin.jar b/TamiFlexDatabase/lib/mysql-connector-java-5.1.12-bin.jar
deleted file mode 100644
index af5847e..0000000
Binary files a/TamiFlexDatabase/lib/mysql-connector-java-5.1.12-bin.jar and /dev/null differ
diff --git a/TamiFlexDatabase/pom.xml b/TamiFlexDatabase/pom.xml
new file mode 100644
index 0000000..7399e49
--- /dev/null
+++ b/TamiFlexDatabase/pom.xml
@@ -0,0 +1,46 @@
+
+
+ 4.0.0
+
+ de.bodden.tamiflex
+ tamiflex-parent
+ trunk
+
+ tamiflex-database
+
+ src
+ dbdumper-${project.version}
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+
+
+ package
+ shade
+
+ false
+
+
+
+ de.bodden.tamiflex.db.DBMain
+ ${project.version}
+
+
+
+
+
+
+
+
+
+
+
+ com.mysql
+ mysql-connector-j
+ 8.2.0
+
+
+
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..1fad21e
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,52 @@
+
+
+ 4.0.0
+
+ de.bodden.tamiflex
+ tamiflex-parent
+ trunk
+ pom
+
+
+ Normalizer
+ Booster
+ PlayInAgent
+ PlayOutAgent
+ MonitorAgent
+ ReportingAgent
+ TamiFlexDatabase
+
+
+
+ UTF-8
+ 8
+ 9.9.1
+ 3.13.0
+ 3.6.0
+ 3.6.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven.compiler.plugin.version}
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ ${maven.shade.plugin.version}
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ ${build.helper.plugin.version}
+
+
+
+
+