peterreilly    2004/04/28 02:01:08

  Modified:    src/main/org/apache/tools/ant/taskdefs ImportTask.java
               src/testcases/org/apache/tools/ant/taskdefs ImportTest.java
  Added:       src/etc/testcases/taskdefs/import/symlinks/d1 p1.xml
               src/etc/testcases/taskdefs/import/symlinks/d2 p2.xml
               src/etc/testcases/taskdefs/import/symlinks/d3a p3.xml
  Log:
  File paths to imported build files should not be canonicalized
  PR: 28505
  Obtained from: Jesse Glick
  
  Revision  Changes    Path
  1.28      +0 -9      
ant/src/main/org/apache/tools/ant/taskdefs/ImportTask.java
  
  Index: ImportTask.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/ImportTask.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- ImportTask.java   13 Apr 2004 21:42:58 -0000      1.27
  +++ ImportTask.java   28 Apr 2004 09:01:08 -0000      1.28
  @@ -131,8 +131,6 @@
               }
           }
   
  -        importedFile = new File(getPath(importedFile));
  -
           if (importStack.contains(importedFile)) {
               getProject().log(
                   "Skipped already imported file:\n   "
  @@ -148,11 +146,4 @@
           }
       }
   
  -    private static String getPath(File file) {
  -        try {
  -            return file.getCanonicalPath();
  -        } catch (IOException e) {
  -            return file.getAbsolutePath();
  -        }
  -    }
   }
  
  
  
  1.13      +33 -1     
ant/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java
  
  Index: ImportTest.java
  ===================================================================
  RCS file: 
/home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/ImportTest.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ImportTest.java   18 Mar 2004 21:31:13 -0000      1.12
  +++ ImportTest.java   28 Apr 2004 09:01:08 -0000      1.13
  @@ -17,6 +17,9 @@
   
   package org.apache.tools.ant.taskdefs;
   
  +import java.io.File;
  +import java.io.IOException;
  +
   import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.BuildFileTest;
   import org.apache.tools.ant.Location;
  @@ -109,5 +112,34 @@
               "Did not see build exception",
               false);
       }
  -}
   
  +    public void testSymlinkedImports() throws Exception {
  +        String ln = "/usr/bin/ln";
  +        if (!new File(ln).exists()) {
  +            ln = "/bin/ln";
  +        }
  +        if (!new File(ln).exists()) {
  +            // Running on Windows or something, so skip it.
  +            return;
  +        }
  +        String symlink = "src/etc/testcases/taskdefs/import/symlinks/d3b";
  +        if (Runtime.getRuntime().exec(new String[] {ln, "-s", "d3a", 
symlink}).waitFor() != 0) {
  +            throw new IOException("'" + ln + " -s d3a " + symlink + "' 
failed");
  +        }
  +        try {
  +            configureProject(
  +                "src/etc/testcases/taskdefs/import/symlinks/d1/p1.xml");
  +            assertPropertyEquals(
  +                "ant.file.p2",
  +                new 
File("src/etc/testcases/taskdefs/import/symlinks/d2/p2.xml")
  +                .getAbsolutePath());
  +            assertPropertyEquals(
  +                "ant.file.p3",
  +                new 
File("src/etc/testcases/taskdefs/import/symlinks/d3b/p3.xml")
  +                .getAbsolutePath());
  +        } finally {
  +            new File(symlink).delete();
  +        }
  +    }
  +
  +}
  
  
  
  1.1                  ant/src/etc/testcases/taskdefs/import/symlinks/d1/p1.xml
  
  Index: p1.xml
  ===================================================================
  <project name="p1" default="run">
      <import file="../d2/p2.xml"/>
      <import file="../d3b/p3.xml"/>
  </project>
  
  
  
  1.1                  ant/src/etc/testcases/taskdefs/import/symlinks/d2/p2.xml
  
  Index: p2.xml
  ===================================================================
  <project name="p2"/>
  
  
  
  1.1                  ant/src/etc/testcases/taskdefs/import/symlinks/d3a/p3.xml
  
  Index: p3.xml
  ===================================================================
  <project name="p3"/>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to