You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2010/04/22 13:18:08 UTC

svn commit: r936784 - in /ant/core/trunk/src: main/org/apache/tools/ant/helper/ProjectHelper2.java tests/antunit/taskdefs/import-url-test.xml

Author: bodewig
Date: Thu Apr 22 11:18:08 2010
New Revision: 936784

URL: http://svn.apache.org/viewvc?rev=936784&view=rev
Log:
don't warn about duplicate project names if importing the same URL twice.  PR 49162

Modified:
    ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
    ant/core/trunk/src/tests/antunit/taskdefs/import-url-test.xml

Modified: ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java?rev=936784&r1=936783&r2=936784&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/helper/ProjectHelper2.java Thu Apr 22 11:18:08 2010
@@ -760,17 +760,34 @@ public class ProjectHelper2 extends Proj
             String antFileProp =
                 MagicNames.ANT_FILE + "." + context.getCurrentProjectName();
             String dup = project.getProperty(antFileProp);
+            String typeProp =
+                MagicNames.ANT_FILE_TYPE + "." + context.getCurrentProjectName();
+            String dupType = project.getProperty(typeProp);
             if (dup != null && nameAttributeSet) {
-                File dupFile = new File(dup);
-                if (context.isIgnoringProjectTag() && !dupFile.equals(context.getBuildFile())) {
+                Object dupFile = null;
+                Object contextFile = null;
+                if (MagicNames.ANT_FILE_TYPE_URL.equals(dupType)) {
+                    try {
+                        dupFile = new URL(dup);
+                    } catch (java.net.MalformedURLException mue) {
+                        throw new BuildException("failed to parse "
+                                                 + dup + " as URL while looking"
+                                                 + " at a duplicate project"
+                                                 + " name.", mue);
+                    }
+                    contextFile = context.getBuildFileURL();
+                } else {
+                    dupFile = new File(dup);
+                    contextFile = context.getBuildFile();
+                }
+
+                if (context.isIgnoringProjectTag() && !dupFile.equals(contextFile)) {
                     project.log("Duplicated project name in import. Project "
                             + context.getCurrentProjectName() + " defined first in " + dup
-                            + " and again in " + context.getBuildFile(), Project.MSG_WARN);
+                            + " and again in " + contextFile, Project.MSG_WARN);
                 }
             }
             if (nameAttributeSet) {
-                String typeProp = MagicNames.ANT_FILE_TYPE + "."
-                    + context.getCurrentProjectName();
                 if (context.getBuildFile() != null) {
                     project.setUserProperty(antFileProp,
                                             context.getBuildFile().toString());
@@ -921,7 +938,7 @@ public class ProjectHelper2 extends Proj
                 prefix = getTargetPrefix(context);
                 if (prefix == null) {
                     throw new BuildException("can't include build file "
-                                             + context.getBuildFile()
+                                             + context.getBuildFileURL()
                                              + ", no as attribute has been given"
                                              + " and the project tag doesn't"
                                              + " specify a name attribute");

Modified: ant/core/trunk/src/tests/antunit/taskdefs/import-url-test.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/import-url-test.xml?rev=936784&r1=936783&r2=936784&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/import-url-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/import-url-test.xml Thu Apr 22 11:18:08 2010
@@ -51,6 +51,11 @@ foo=bar
       <classpath location="${test.jar}"/>
     </javaresource>
   </import>
+  <import>
+    <javaresource name="a/b/outer.xml">
+      <classpath location="${test.jar}"/>
+    </javaresource>
+  </import>
 
   <target name="testImportOfNestedFile" depends="foo">
     <au:assertLogContains text="In inner"/>