]> source.dussan.org Git - aspectj.git/commitdiff
124460: allows .xml files mixed in with source files on command line
authoraclement <aclement>
Sat, 31 Jan 2009 01:11:55 +0000 (01:11 +0000)
committeraclement <aclement>
Sat, 31 Jan 2009 01:11:55 +0000 (01:11 +0000)
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/ConfigParser.java

index fb270f5b57b572ebd77535b17df6cb4407178616..3b7a77905c4709a2a10efc77aaf27b10293251a3 100644 (file)
@@ -144,6 +144,9 @@ public class BuildArgParser extends Main {
 
                        boolean incrementalMode = buildConfig.isIncrementalMode() || buildConfig.isIncrementalFileMode();
 
+                       List xmlfileList = new ArrayList();
+                       xmlfileList.addAll(parser.getXmlFiles());
+
                        List fileList = new ArrayList();
                        List files = parser.getFiles();
                        if (!LangUtil.isEmpty(files)) {
@@ -179,6 +182,8 @@ public class BuildArgParser extends Main {
                                }
                        }
 
+                       buildConfig.setXmlFiles(xmlfileList);
+
                        buildConfig.setFiles(fileList);
                        if (destinationPath != null) { // XXX ?? unparsed but set?
                                buildConfig.setOutputDir(new File(destinationPath));
index f6d33b14a610bb39681bab11fcdb7a12ea16e44d..8ab62e231e74f550b1d9c6191358646d5713ca69 100644 (file)
@@ -18,6 +18,7 @@ import java.io.File;
 import java.io.FileFilter;
 import java.io.FileReader;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -25,6 +26,7 @@ public class ConfigParser {
        Location location;
        protected File relativeDirectory = null;
        protected List files = new LinkedList();
+       protected List xmlfiles = new ArrayList();
        private boolean fileParsed = false;
        protected static String CONFIG_MSG = "build config error: ";
 
@@ -32,6 +34,10 @@ public class ConfigParser {
                return files;
        }
 
+       public List getXmlFiles() {
+               return xmlfiles;
+       }
+
        public void parseCommandLine(String[] argsArray) throws ParseException {
                location = new CommandLineLocation();
                LinkedList args = new LinkedList();
@@ -100,7 +106,7 @@ public class ConfigParser {
                s = stripSingleLineComment(s, "#");
                s = s.trim();
                if (s.startsWith("\"") && s.endsWith("\"")) {
-                       if (s.length()==1) {
+                       if (s.length() == 1) {
                                return "";
                        } else {
                                s = s.substring(1, s.length() - 1);
@@ -116,10 +122,16 @@ public class ConfigParser {
                if (!sourceFile.isFile()) {
                        showError("source file does not exist: " + sourceFile.getPath());
                }
-
                files.add(sourceFile);
        }
 
+       protected void addXmlFile(File xmlFile) {
+               if (!xmlFile.isFile()) {
+                       showError("XML file does not exist: " + xmlFile.getPath());
+               }
+               xmlfiles.add(xmlFile);
+       }
+
        void addFileOrPattern(File sourceFile) {
                if (sourceFile.getName().charAt(0) == '*') {
                        if (sourceFile.getName().equals("*.java")) {
@@ -197,6 +209,13 @@ public class ConfigParser {
                return arg.getValue();
        }
 
+       /**
+        * aop.xml configuration files can be passed on the command line.
+        */
+       boolean isXml(String s) {
+               return s.endsWith(".xml");
+       }
+
        boolean isSourceFileName(String s) {
                if (s.endsWith(".java"))
                        return true;
@@ -219,6 +238,8 @@ public class ConfigParser {
                        parseConfigFileHelper(makeFile(removeArg(args).getValue()));
                } else if (isSourceFileName(v)) {
                        addFileOrPattern(makeFile(v));
+               } else if (isXml(v)) {
+                       addXmlFile(makeFile(v));
                } else {
                        parseOption(arg.getValue(), args);
                }