From 99f5c14fb0df142b1e25361a7ff3951a5a6d4d5d Mon Sep 17 00:00:00 2001 From: wisberg Date: Wed, 14 May 2003 03:36:34 +0000 Subject: [PATCH] Fix for taskdef bug 37576 http://bugs.eclipse.org/bugs/show_bug.cgi?id=37576 --- .../aspectj/tools/ant/taskdefs/AjcTask.java | 80 +++++++++++-------- .../tools/ant/taskdefs/AjcTaskTest.java | 18 +++++ 2 files changed, 63 insertions(+), 35 deletions(-) diff --git a/taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java b/taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java index f9655b4aa..6e843ce3b 100644 --- a/taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java +++ b/taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java @@ -653,10 +653,10 @@ public class AjcTask extends MatchingTask { } public Path createClasspath() { - if (bootclasspath == null) { - bootclasspath = new Path(project); + if (classpath == null) { + classpath = new Path(project); } - return bootclasspath.createPath(); + return classpath.createPath(); } public void setBootclasspath(Path path) { @@ -668,10 +668,10 @@ public class AjcTask extends MatchingTask { } public Path createBootclasspath() { - if (classpath == null) { - classpath = new Path(project); + if (bootclasspath == null) { + bootclasspath = new Path(project); } - return classpath.createPath(); + return bootclasspath.createPath(); } public void setExtdirs(Path path) { @@ -749,36 +749,12 @@ public class AjcTask extends MatchingTask { executing = true; } try { - if (0 < ignored.size()) { - for (Iterator iter = ignored.iterator(); iter.hasNext();) { - log("ignored: " + iter.next(), Project.MSG_INFO); - } - } - // when copying resources, use temp jar for class output - // then copy temp jar contents and resources to output jar - if (null != outjar) { - if (copyInjars || (null != sourceRootCopyFilter)) { - String path = outjar.getAbsolutePath(); - int len = FileUtil.zipSuffixLength(path); - if (len < 1) { - log("not copying injars - weird outjar: " + path); - } else { - path = path.substring(0, path.length()-len) + ".tmp.jar"; - tmpOutjar = new File(path); - } - } - if (null == tmpOutjar) { - cmd.addFlagged("-outjar", outjar.getAbsolutePath()); - } else { - cmd.addFlagged("-outjar", tmpOutjar.getAbsolutePath()); - } - } - - addListArgs(); - if (verbose || listFileArgs) { // XXX if listFileArgs, only do that + boolean copyArgs = false; + setupCommand(copyArgs); + if (verbose || listFileArgs) { // XXX if listFileArgs, only do that String[] args = cmd.extractArguments(); - log("ajc " + Arrays.asList(args), Project.MSG_VERBOSE); - } + log("ajc " + Arrays.asList(args), Project.MSG_VERBOSE); + } if (!fork) { executeInSameVM(); } else { // when forking, Adapter handles failonerror @@ -797,6 +773,40 @@ public class AjcTask extends MatchingTask { tmpOutjar.delete(); } } + } + + String[] setupCommand(boolean copyArgs) { + if (0 < ignored.size()) { + for (Iterator iter = ignored.iterator(); iter.hasNext();) { + log("ignored: " + iter.next(), Project.MSG_INFO); + } + } + // when copying resources, use temp jar for class output + // then copy temp jar contents and resources to output jar + if (null != outjar) { + if (copyInjars || (null != sourceRootCopyFilter)) { + String path = outjar.getAbsolutePath(); + int len = FileUtil.zipSuffixLength(path); + if (len < 1) { + log("not copying injars - weird outjar: " + path); + } else { + path = path.substring(0, path.length()-len) + ".tmp.jar"; + tmpOutjar = new File(path); + } + } + if (null == tmpOutjar) { + cmd.addFlagged("-outjar", outjar.getAbsolutePath()); + } else { + cmd.addFlagged("-outjar", tmpOutjar.getAbsolutePath()); + } + } + + addListArgs(); + String[] result = null; + if (copyArgs) { + result = cmd.extractArguments(); + } + return result; } /** diff --git a/taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java b/taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java index 9e6025c95..d343797cd 100644 --- a/taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java +++ b/taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java @@ -134,6 +134,24 @@ public class AjcTaskTest extends TestCase { runTest(task, NO_EXCEPTION, IMessageHolderChecker.ONE_ERROR_ONE_ABORT); } + public void testClasspath() { + AjcTask task = getTask(NOFILE); + String[] cmd = task.setupCommand(true); + String classpath = null; + String bootclasspath = null; + for (int i = 0; i < cmd.length; i++) { + if ("-classpath".equals(cmd[i])) { + classpath = cmd[i+1]; + } else if ("-bootclasspath".equals(cmd[i])) { + bootclasspath = cmd[i+1]; + } + } + assertTrue("not expecting bootclasspath", + null == bootclasspath); + assertTrue("expecting aspectj in classpath", + (-1 != classpath.indexOf("aspectjrt.jar"))); + } + // ---------------------------------------- sourcefile // XXX need to figure out how to specify files directly programmatically // public void testDefaultFile() { -- 2.39.5