]> source.dussan.org Git - aspectj.git/commitdiff
Fix for AJDT bug 40380.
authormkersten <mkersten>
Wed, 23 Jul 2003 17:23:22 +0000 (17:23 +0000)
committermkersten <mkersten>
Wed, 23 Jul 2003 17:23:22 +0000 (17:23 +0000)
ajde/src/org/aspectj/ajde/internal/CompilerAdapter.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/AjdtCommand.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java

index 0722b425a292c245bb9bd6deeaf038e9b75f7bac..cbd31eb93c747f328fefdc745133fbbdcab55f7b 100644 (file)
 
 package org.aspectj.ajde.internal;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
 import org.aspectj.ajde.Ajde;
 import org.aspectj.ajde.BuildOptionsAdapter;
 import org.aspectj.ajde.BuildProgressMonitor;
 import org.aspectj.ajde.ProjectPropertiesAdapter;
 import org.aspectj.ajde.TaskListManager;
 import org.aspectj.ajdt.ajc.AjdtCommand;
+import org.aspectj.ajdt.ajc.BuildArgParser;
 import org.aspectj.ajdt.internal.core.builder.AjBuildConfig;
 import org.aspectj.ajdt.internal.core.builder.AjBuildManager;
 import org.aspectj.bridge.AbortException;
@@ -34,15 +44,6 @@ import org.aspectj.util.LangUtil;
 import org.eclipse.core.runtime.OperationCanceledException;
 import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
 
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.StringTokenizer;
-
 public class CompilerAdapter {
 
        private Map optionsMap;
@@ -158,10 +159,13 @@ public class CompilerAdapter {
         String[] args = new String[] { "@" + config.getAbsolutePath() };
         CountingMessageHandler counter 
             = CountingMessageHandler.makeCountingMessageHandler(messageHandler);
-        AjBuildConfig local = AjdtCommand.genBuildConfig(args, counter);
+               BuildArgParser parser = new BuildArgParser();
+        AjBuildConfig local = parser.genBuildConfig(args, counter, false);  
+             
         if (counter.hasErrors()) {
             return null; 
-        }
+        } 
+        
         local.setConfigFile(config);
 
         // -- get globals, treat as defaults used if no local values
index d1444a4e08eb05cb8c88650f3bd2566e6cdadafb..57c3de9d2c26504d0823d9ad21dd3eccc43bc119 100644 (file)
@@ -120,7 +120,7 @@ public class AjdtCommand implements ICommand {
         } 
         return false;
     }
-
+       
     /** 
      * This creates a build configuration for the arguments.
      * Errors reported to the handler:
@@ -138,7 +138,7 @@ public class AjdtCommand implements ICommand {
         AjBuildConfig config = parser.genBuildConfig(args, handler);
         String message = parser.getOtherMessages(true);
 
-        if (null != message) {
+        if (null != message) {  
             IMessage.Kind kind = inferKind(message);
             IMessage m = new Message(message, kind, null, null);            
             handler.handleMessage(m);
index 415d0a977335649633eb7ebfe2787281885c7b12..bcc220888ab7389d8bcf38f9e7c57114594ed637 100644 (file)
@@ -90,16 +90,29 @@ public class BuildArgParser extends Main {
        public BuildArgParser() { 
                this(new StringPrintWriter(new StringWriter()));
        }
-    
+
+       /**
+        * Generate build configuration for the input args,
+        * passing to handler any error messages.
+        * @param args the String[] arguments for the build configuration
+        * @param handler the IMessageHandler handler for any errors
+        * @return AjBuildConfig per args, 
+        *         which will be invalid unless there are no handler errors.
+        */
+       public AjBuildConfig genBuildConfig(String[] args, IMessageHandler handler) {
+               return genBuildConfig(args, handler, true);
+       }  
+      
     /**
      * Generate build configuration for the input args,
      * passing to handler any error messages.
      * @param args the String[] arguments for the build configuration
      * @param handler the IMessageHandler handler for any errors
+     * @param setClasspath     determines if the classpath should be parsed and set on the build configuration
      * @return AjBuildConfig per args, 
      *         which will be invalid unless there are no handler errors.
      */
-       public AjBuildConfig genBuildConfig(String[] args, IMessageHandler handler) {
+       public AjBuildConfig genBuildConfig(String[] args, IMessageHandler handler, boolean setClasspath) {
                AjBuildConfig buildConfig = new AjBuildConfig();
                try {
                        // sets filenames to be non-null in order to make sure that file paramters are ignored
@@ -153,7 +166,9 @@ public class BuildArgParser extends Main {
                                buildConfig.setOutputDir(new File(destinationPath));
                        }
                        
-                       buildConfig.setClasspath(getClasspath(parser));
+                       if (setClasspath) {
+                               buildConfig.setClasspath(getClasspath(parser));
+                       }
                        
                        if (incrementalMode 
                 && (0 == buildConfig.getSourceRoots().size())) {