private static final String BUILD_OUTPUT_FOLDER = "target";
public static final String outputFolder(String module) {
- return File.pathSeparator + ".." +File.separator + module + File.separator + "target" + File.separator + "classes";
+ return File.pathSeparator + ".." +File.separator + module + File.separator + BUILD_OUTPUT_FOLDER + File.separator + "classes";
}
public static final String outputFolders(String... modules) {
StringBuilder s = new StringBuilder();
for (String module: modules) {
- s.append(File.pathSeparator + ".." +File.separator + module + File.separator + "target" + File.separator + "classes");
+ s.append(File.pathSeparator + ".." +File.separator + module + File.separator + BUILD_OUTPUT_FOLDER + File.separator + "classes");
}
return s.toString();
}
// ALSO SEE ANTSPEC AND AJCTESTCASE
- private static final String TESTER_PATH = outputFolder("testing-client") + outputFolder("runtime") + outputFolder("bcel-builder")
- // + File.pathSeparator + ".." + File.separator + "runtime" + File.separator + BUILD_OUTPUT_FOLDER //
- // + File.pathSeparator + ".." + File.separator + "aspectj5rt" + File.separator + BUILD_OUTPUT_FOLDER //
- + File.pathSeparator + ".." + File.separator + "lib" + File.separator + "junit" + File.separator + "junit.jar" //
- // + File.pathSeparator + ".." + File.separator + "lib" + File.separator + "bcel" + File.separator + "bcel.jar" //
- // + File.pathSeparator + ".." + File.separator + "lib" + File.separator + "bcel" + File.separator
- // + "bcel-verifier.jar" +
-
- + outputFolder("bridge")
- + outputFolder("loadtime")
- + outputFolder("weaver")
- + outputFolder("org.aspectj.matcher")
- + outputFolder("bridge");
- // File.pathSeparator + ".." + File.separator + "bridge" + File.separator + "bin" + File.pathSeparator + ".."
- // + File.separator + "loadtime" + File.separator + "bin" + File.pathSeparator
- // + ".."
- // + File.separator
- // + "weaver"
- // + File.separator
- // + "bin"
- // + File.pathSeparator
- // + ".."
- // + File.separator
- // + "weaver5"
- // + File.separator
- // + "bin"
- // + File.pathSeparator
- // + ".."
- // + File.separator
- // + "org.aspectj.matcher"
- // + File.separator
- // + "bin"
-
- // When the build machine executes the tests, it is using code built into jars rather than code build into
- // bin directories. This means for the necessary types to be found we have to put these jars on the classpath:
- // + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars" + File.separator + "bridge.jar"
- // + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars" + File.separator
- // + "org.aspectj.matcher.jar" + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars"
- // + File.separator + "util.jar" + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars"
- // + File.separator + "loadtime.jar" + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars"
- // + File.separator + "weaver.jar" + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars"
- // + File.separator + "weaver5.jar" + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars"
- // + File.separator + "asm.jar" + File.pathSeparator + ".." + File.separator + "lib" + File.separator + "test"
- // + File.separator + "testing-client.jar"
- // // hmmm, this next one should perhaps point to an aj-build jar...
- // + File.pathSeparator + ".." + File.separator + "lib" + File.separator + "test" + File.separator + "aspectjrt.jar";
+ private static final String TESTER_PATH =
+ outputFolder("testing-client")
+ + outputFolder("runtime")
+ + outputFolder("bcel-builder")
+ + File.pathSeparator + ".." + File.separator + "lib" + File.separator + "junit" + File.separator + "junit.jar"
+ + outputFolder("bridge")
+ + outputFolder("loadtime")
+ + outputFolder("weaver")
+ + outputFolder("org.aspectj.matcher")
+ + outputFolder("bridge");
private CompilationResult result;
private File sandbox;
addMessagesTo(errors, holder.getErrors());
addMessagesTo(fails, holder.getMessages(IMessage.FAIL, true));
addMessagesTo(weaves, holder.getMessages(IMessage.WEAVEINFO, false));
- String stdOut = new String(out.toByteArray());
- String stdErr = new String(err.toByteArray());
+ String stdOut = out.toString();
+ String stdErr = err.toString();
result = new CompilationResult(args, stdOut, stdErr, infos, errors, warnings, fails, weaves);
} finally {
System.setOut(systemOut);
+ File.pathSeparator + ".." + File.separator + "lib" + File.separator + "bcel" + File.separator + "bcel.jar"
+ File.pathSeparator + ".." + File.separator + "lib" + File.separator + "bcel" + File.separator + "bcel-verifier.jar"
+ File.pathSeparator + CLASSPATH_ASM_RENAMED
- // When the build machine executes the tests, it is using code built into jars rather than code build into
- // target/classes directories. This means for the necessary types to be found we have to put these jars on the classpath:
- + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars" + File.separator + "bridge.jar"
- + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars" + File.separator + "util.jar"
- + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars" + File.separator + "org.aspectj.matcher.jar"
- + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars" + File.separator + "loadtime.jar"
- + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars" + File.separator + "weaver.jar"
- + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars"
- + File.pathSeparator + ".." + File.separator + "aj-build" + File.separator + "jars" + File.separator + "asm.jar"
+ File.pathSeparator + ".." + File.separator + "lib" + File.separator + "test" + File.separator + "testing-client.jar"
// hmmm, this next one should perhaps point to an aj-build jar...
+ File.pathSeparator + ".." + File.separator + "lib" + File.separator + "test" + File.separator + "aspectjrt.jar"
/*******************************************************************************
* Copyright (c) 2005 Contributors.
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution and is available at
- * http://eclipse.org/legal/epl-v10.html
- *
+ * All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution and is available at
+ * http://eclipse.org/legal/epl-v10.html
+ *
* Contributors:
* Alexandre Vasseur initial implementation
*******************************************************************************/
* Element {@code <stdout><line text="..">} and {@code <stderr><line text="..">} can be used. For now, a full match is
* performed on the output of the runned target only (not the whole Ant invocation). This is experimental and you are
* advised to use a {@code <junit>} task instead or a {@code <java>} whose main throws some exception upon failure.
- *
+ *
* @author <a href="mailto:alex AT gnilux DOT com">Alexandre Vasseur</a>
*/
public class AntSpec implements ITestStep {
-
- public static final String outputFolders(String... modules) {
+ public static String outputFolders(String... modules) {
StringBuilder s = new StringBuilder();
for (String module: modules) {
s.append(File.pathSeparator + ".." +File.separator + module + File.separator + "target" + File.separator + "classes");
}
return s.toString();
}
-
-
+
+
// ALSO SEE AJC
private final static String DEFAULT_LTW_CLASSPATH_ENTRIES =
outputFolders("asm", "bridge", "loadtime", "weaver", "org.aspectj.matcher", "bcel-builder");
-// private final static String DEFAULT_LTW_CLASSPATH_ENTRIES = ".." + File.separator + "asm/bin" + File.pathSeparator + ".."
-// + File.separator + "bridge/bin" + File.pathSeparator + ".." + File.separator + "loadtime/bin" + File.pathSeparator
-// + ".." + File.separator + "loadtime5/bin" + File.pathSeparator + ".." + File.separator + "weaver/bin"
-// + File.pathSeparator + ".." + File.separator + "org.aspectj.matcher/bin" + File.pathSeparator + ".." + File.separator
-// + "lib/bcel/bcel.jar" + File.pathSeparator + ".." + File.separator + "lib/bcel/bcel-verifier.jar";;
private boolean m_verbose = false;
private AjcTest m_ajcTest;
// On Java 16+, LTW no longer works without this parameter. Add the argument here and not in AjcTestCase::run,
// because even if 'useLTW' and 'useFullLTW' are not set, we might in the future have tests for weaver attachment
// during runtime. See also docs/dist/doc/README-187.html.
- //
+ //
// Attention: Ant 1.6.3 under Linux neither likes "" (empty string) nor " " (space), on Windows it would not be
- // a problem. So we use "_dummy" Java system properties, even though they pollute the command line.
+ // a problem. So we use "_dummy" Java system properties, even though they pollute the command line.
p.setUserProperty("aj.addOpensKey", is16VMOrGreater() ? "--add-opens" : "-D_dummy");
p.setUserProperty("aj.addOpensValue", is16VMOrGreater() ? "java.base/java.lang=ALL-UNNAMED" : "-D_dummy");
fr.close();
}
} catch (Exception e) {
- System.out.println("Exception whilst loading forked java task output " + e.getMessage() + "\n");
+ String exceptionMessage = "Exception whilst loading forked java task output " + e.getMessage() + "\n";
+ System.out.println(exceptionMessage);
e.printStackTrace();
- stdout.append("Exception whilst loading forked java task output " + e.getMessage() + "\n");
+ stdout.append(exceptionMessage);
}
- StringBuffer message = new StringBuffer();
- message.append(event.getException().toString()).append("\n");
- message.append(verboseLog);
- message.append(stdout);
- message.append(stderr);
// AjcTestCase.fail(failMessage + "failure " + event.getException());
- AjcTestCase.fail(message.toString());
+ AjcTestCase.fail(event.getException() + "\n" + verboseLog + stdout + stderr);
}
}
// WARNING: Please consider reporting this to the maintainers of org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor
// WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
// WARNING: All illegal access operations will be denied in a future release
-
+
stderr2 = stderr2.replaceAll("WARNING: An illegal reflective access operation has occurred\n","");
stderr2 = stderr2.replaceAll("WARNING: Illegal reflective access using Lookup on org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor[^\n]*\n","");
stderr2 = stderr2.replaceAll("WARNING: Please consider reporting this to the maintainers of org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor\n","");
}
public void setVerbose(String verbose) {
- if (verbose != null && "true".equalsIgnoreCase(verbose)) {
+ if ("true".equalsIgnoreCase(verbose)) {
m_verbose = true;
}
}