Author: bentmann
Date: Wed Sep  3 07:43:28 2008
New Revision: 691629

URL: http://svn.apache.org/viewvc?rev=691629&view=rev
Log:
[MANT-44] Generated ant copy commands in package target point to hard-coded 
local repository instead of ${maven.repo.local}

Modified:
    maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml
    maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh
    
maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java
    
maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java

Modified: maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml?rev=691629&r1=691628&r2=691629&view=diff
==============================================================================
--- maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml (original)
+++ maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/pom.xml Wed Sep  3 
07:43:28 2008
@@ -29,8 +29,14 @@
   <version>1.0-SNAPSHOT</version>
   <name>Webapp project</name>
   <url>http://maven.apache.org</url>
+
   <dependencies>
     <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <version>1.2.14</version>
+    </dependency>
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>3.8.2</version>

Modified: maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh?rev=691629&r1=691628&r2=691629&view=diff
==============================================================================
--- maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh (original)
+++ maven/plugins/trunk/maven-ant-plugin/src/it/webapp-it/verify.bsh Wed Sep  3 
07:43:28 2008
@@ -2,8 +2,9 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.jar.*;
+import java.util.regex.*;
 
-import org.codehaus.plexus.util.IOUtil;
+import org.codehaus.plexus.util.*;
 
 try
 {
@@ -19,12 +20,24 @@
     System.err.println( "The file '" + build.getAbsolutePath() + "' is a 
directory or doesn't exist." );
     return false;
   }
+
   mavenBuild = new File( basedir, "maven-build.xml" );
   if ( mavenBuild.isDirectory() || !mavenBuild.exists() )
   {
     System.err.println( "The file '" + mavenBuild.getAbsolutePath() + "' is a 
directory or doesn't exist." );
     return false;
   }
+
+  String xml = FileUtils.fileRead( mavenBuild, "UTF-8" );
+  Matcher m0 = Pattern.compile( 
"<copy\\s+file\\s*=\\s*\\Q\"${maven.repo.local}/log4j/log4j/1.2.14/log4j-1.2.14.jar\"\\E"
+      + 
"\\s*todir\\s*=\\s*\\Q\"${maven.build.dir}/${maven.build.finalName}/WEB-INF/lib\"\\E"
 ).matcher( xml );
+  System.out.println( "Checking for existence of <copy> from 
${maven.repo.local} for WAR libs" );
+  if ( !m0.find() )
+  {
+      System.err.println( "FAILED!\n" + xml );
+      return false;
+  }
+
   mavenBuildProperties = new File( basedir, "maven-build.properties" );
   if ( mavenBuildProperties.isDirectory() || !mavenBuildProperties.exists() )
   {
@@ -48,6 +61,7 @@
     "WEB-INF/test.txt",
     "WEB-INF/classes/test.properties",
     "WEB-INF/classes/org/MyClass.class",
+    "WEB-INF/lib/log4j-1.2.14.jar",
   };
   for ( String entry : expected )
   {

Modified: 
maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java?rev=691629&r1=691628&r2=691629&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java
 (original)
+++ 
maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriter.java
 Wed Sep  3 07:43:28 2008
@@ -1039,7 +1039,7 @@
             }
             else if ( AntBuildWriterUtil.isEarPackaging( project ) )
             {
-                AntBuildWriterUtil.writeEarTask( writer, project );
+                AntBuildWriterUtil.writeEarTask( writer, project, 
localRepository );
                 synonym = "ear";
             }
             else if ( AntBuildWriterUtil.isWarPackaging( project ) )

Modified: 
maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java?rev=691629&r1=691628&r2=691629&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java
 (original)
+++ 
maven/plugins/trunk/maven-ant-plugin/src/main/java/org/apache/maven/plugin/ant/AntBuildWriterUtil.java
 Wed Sep  3 07:43:28 2008
@@ -452,12 +452,13 @@
      *
      * @param writer not null
      * @param project not null
+     * @param localRepository not null
      * @throws IOException if any
      */
-    public static void writeEarTask( XMLWriter writer, MavenProject project )
+    public static void writeEarTask( XMLWriter writer, MavenProject project, 
File localRepository )
         throws IOException
     {
-        writeCopyLib( writer, project, 
"${maven.build.dir}/${maven.build.finalName}" );
+        writeCopyLib( writer, project, localRepository, 
"${maven.build.dir}/${maven.build.finalName}" );
 
         writer.startElement( "ear" );
         writer.addAttribute( "destfile", 
"${maven.build.dir}/${maven.build.finalName}.ear" );
@@ -502,7 +503,7 @@
             webXml = webXml.substring( "${basedir}/".length() );
         }
         
-        writeCopyLib( writer, project, 
"${maven.build.dir}/${maven.build.finalName}/WEB-INF/lib" );
+        writeCopyLib( writer, project, localRepository, 
"${maven.build.dir}/${maven.build.finalName}/WEB-INF/lib" );
 
         writer.startElement( "war" );
         writer.addAttribute( "destfile", 
"${maven.build.dir}/${maven.build.finalName}.war" );
@@ -1108,9 +1109,10 @@
      *
      * @param writer not null
      * @param project not null
+     * @param localRepository not null
      * @param outputDir not null
      */
-    private static void writeCopyLib( XMLWriter writer, MavenProject project, 
String outputDir )
+    private static void writeCopyLib( XMLWriter writer, MavenProject project, 
File localRepository, String outputDir )
     {
         writer.startElement( "mkdir" );
         writer.addAttribute( "dir", outputDir );
@@ -1125,8 +1127,15 @@
                 if ( !artifact.getScope().equals( Artifact.SCOPE_PROVIDED )
                     && !artifact.getScope().equals( Artifact.SCOPE_TEST ) )
                 {
+                    String path = artifact.getFile().getPath();
+                    path = toRelative( localRepository, path );
+                    if ( !new File( path ).isAbsolute() )
+                    {
+                        path = "${maven.repo.local}/" + path;
+                    }
+
                     writer.startElement( "copy" );
-                    writer.addAttribute( "file", artifact.getFile().getPath() 
);
+                    writer.addAttribute( "file", path );
                     addWrapAttribute( writer, "copy", "todir", outputDir, 3 );
                     writer.endElement(); // copy
                 }


Reply via email to