]> source.dussan.org Git - aspectj.git/commitdiff
Fix for taskdef bug 37576
authorwisberg <wisberg>
Wed, 14 May 2003 03:36:34 +0000 (03:36 +0000)
committerwisberg <wisberg>
Wed, 14 May 2003 03:36:34 +0000 (03:36 +0000)
http://bugs.eclipse.org/bugs/show_bug.cgi?id=37576

taskdefs/src/org/aspectj/tools/ant/taskdefs/AjcTask.java
taskdefs/testsrc/org/aspectj/tools/ant/taskdefs/AjcTaskTest.java

index f9655b4aa36cb17bbc6ae779b362ddf852fae07b..6e843ce3b19d0d2b0397f16c08582664885058c0 100644 (file)
@@ -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;
     }   
 
     /**
index 9e6025c952680c68a213900cd815c36a0ddaf29d..d343797cd260f8804d8a3c978f9f9fd3fa3b8fd0 100644 (file)
@@ -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() {