]> source.dussan.org Git - aspectj.git/commitdiff
Fix broken 'useFullLTW' test mode
authorAlexander Kriegisch <Alexander@Kriegisch.name>
Wed, 23 Mar 2022 01:37:16 +0000 (08:37 +0700)
committerAlexander Kriegisch <Alexander@Kriegisch.name>
Wed, 23 Mar 2022 01:37:16 +0000 (08:37 +0700)
It was referring to a no longer existent weaver under
aj-build/dist/tools/lib/aspectjweaver.jar, which now has been replaced
by the new file lib/aspectj/lib/aspectjweaver.jar.

Several tests were broken, not finding the agent. But because those
tests make no assertions, nobody ever noticed. Only when I had to change
some LTW tests from in-process to full LTW mode (see next commit) due to
them now obviously calling some code paths which need '--add-opens', I
even noticed the problem.

Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
lib/aspectj/lib/aspectjweaver.jar [new file with mode: 0644]
org.aspectj.ajdt.core/src/test/java/org/aspectj/tools/ajc/AjcTestCase.java

diff --git a/lib/aspectj/lib/aspectjweaver.jar b/lib/aspectj/lib/aspectjweaver.jar
new file mode 100644 (file)
index 0000000..12bfd44
Binary files /dev/null and b/lib/aspectj/lib/aspectjweaver.jar differ
index b6ae38ba1fcb1007464294bb6d7e31c0009d8feb..f0e7673a035e1dbe9c2058dccfc13c779b409489 100644 (file)
@@ -29,6 +29,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.StringTokenizer;
+import java.util.stream.Collectors;
 
 import org.aspectj.bridge.IMessage;
 import org.aspectj.bridge.ISourceLocation;
@@ -623,9 +624,12 @@ public abstract class AjcTestCase extends TestCase {
 
                        File directory = new File (".");
                        String absPath = directory.getAbsolutePath();
-                       String javaagent= absPath+separator+".."+separator+"aj-build"+separator+"dist"+separator+"tools"+separator+"lib"+separator+"aspectjweaver.jar";
+                       String javaagent = absPath + separator + ".." + separator + "lib" + separator + "aspectj" + separator + "lib" + separator + "aspectjweaver.jar";
+                       String defaultCpAbsolute = Arrays.stream(DEFAULT_CLASSPATH_ENTRIES.split(pathSeparator))
+                               .map(path -> new File(path).getAbsolutePath())
+                               .collect(Collectors.joining(pathSeparator));
                        try {
-                               String command ="java " +vmargs+ " -classpath " + cp +" -javaagent:"+javaagent + " " + className ;
+                               String command = "java " + vmargs + " -classpath " + cp + pathSeparator + defaultCpAbsolute + " -javaagent:" + javaagent + " " + className;
 
                                // Command is executed using ProcessBuilder to allow setting CWD for ajc sandbox compliance
                                ProcessBuilder pb = new ProcessBuilder(tokenizeCommand(command));