You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2007/10/15 00:42:59 UTC

svn commit: r584631 - in /maven/plugins/trunk/maven-war-plugin/src: main/java/org/apache/maven/plugin/war/ main/java/org/apache/maven/plugin/war/overlay/ test/java/org/apache/maven/plugin/war/ test/java/org/apache/maven/plugin/war/stub/

Author: olamy
Date: Sun Oct 14 15:42:58 2007
New Revision: 584631

URL: http://svn.apache.org/viewvc?rev=584631&view=rev
Log:
[MWAR-104]
adding type attribut in Overlay
change handling zip dependency/overlay implementation in OverlayManager to not use a private fields which contains only war overlay (NOTE : with this implementation overlay can be of any type)

Modified:
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/Overlay.java
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/DefaultOverlay.java
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/OverlayManager.java
    maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/WarZipTest.java
    maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/MavenZipProject.java

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/Overlay.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/Overlay.java?rev=584631&r1=584630&r2=584631&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/Overlay.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/Overlay.java Sun Oct 14 15:42:58 2007
@@ -67,6 +67,9 @@
     private Artifact artifact;
     
     private String targetPath;
+    
+    /** default overlay type is war */ 
+    private String type = "war";
 
     public Overlay()
     {
@@ -229,10 +232,20 @@
         this.targetPath = targetPath;
     }
 
+    public String getType()
+    {
+        return type;
+    }
+
 
+    public void setType( String type )
+    {
+        this.type = type;
+    }
+    
     public String toString()
     {
-        return getId();
+        return " id " + getId();
     }
 
 
@@ -292,4 +305,5 @@
             return (String[]) result.toArray( new String[result.size()] );
         }
     }
+
 }

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/DefaultOverlay.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/DefaultOverlay.java?rev=584631&r1=584630&r2=584631&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/DefaultOverlay.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/DefaultOverlay.java Sun Oct 14 15:42:58 2007
@@ -43,6 +43,7 @@
         setArtifactId( a.getArtifactId() );
         setClassifier( a.getClassifier() );
         setArtifact( a );
+        setType( a.getType() );
     }
 
     /**

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/OverlayManager.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/OverlayManager.java?rev=584631&r1=584630&r2=584631&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/OverlayManager.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/OverlayManager.java Sun Oct 14 15:42:58 2007
@@ -19,18 +19,18 @@
  * under the License.
  */
 
-import org.apache.maven.artifact.Artifact;
-import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
-import org.apache.maven.plugin.war.Overlay;
-import org.apache.maven.project.MavenProject;
-import org.codehaus.plexus.util.StringUtils;
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.Set;
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
+import org.apache.maven.plugin.war.Overlay;
+import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.StringUtils;
+
 /**
  * Manages the overlays.
  *
@@ -71,7 +71,7 @@
         
         // Initialize
         initialize( defaultIncludes, defaultExcludes );
-
+        
     }
     
 
@@ -194,23 +194,42 @@
             return null;
         }
 
-        for (Iterator iterator = artifactsOverlays.iterator();iterator.hasNext();)
+        for ( Iterator iterator = artifactsOverlays.iterator(); iterator.hasNext(); )
         {
-            // TODO Handle ZIP artifact ; Handle classifier dependencies properly (clash management)
+            // Handle classifier dependencies properly (clash management)
             Artifact artifact = (Artifact) iterator.next();
-            if ( overlay.getGroupId().equals( artifact.getGroupId() ) &&
-                overlay.getArtifactId().equals( artifact.getArtifactId() ) &&
-                ( overlay.getClassifier() == null || ( overlay.getClassifier().equals( artifact.getClassifier() ) ) ) )
+            if ( compareOverlayWithArtifact(overlay, artifact) )
             {
                 return artifact;
             }
         }
         
+        // maybe its a project dependencies zip or an other type
+        Set projectArtifacts = this.project.getDependencyArtifacts();
+        if (projectArtifacts != null)
+        {
+            for( Iterator iterator = projectArtifacts.iterator();iterator.hasNext();)
+            {
+                Artifact artifact = (Artifact) iterator.next();
+                if ( compareOverlayWithArtifact(overlay, artifact) )
+                {
+                    return artifact;
+                }
+            }
+        }
         throw new InvalidOverlayConfigurationException(
             "overlay[" + overlay + "] is not a dependency of the project." );
 
     }
     
+    private boolean compareOverlayWithArtifact(Overlay overlay, Artifact artifact)
+    {
+       return ( StringUtils.equals( overlay.getGroupId(), artifact.getGroupId() )
+            && StringUtils.equals( overlay.getArtifactId(), artifact.getArtifactId() )
+            && StringUtils.equals( overlay.getType(), artifact.getType() ) && ( overlay.getClassifier() == null || ( StringUtils
+            .equals( overlay.getClassifier(), artifact.getClassifier() ) ) ) );
+    }
+    
     /**
      * Returns a list of war {@link org.apache.maven.artifact.Artifact} describing
      * the overlays of the current project.
@@ -231,39 +250,7 @@
             {
                 result.add( artifact );
             }
-            // zip overlay is disabled by default except if user want it in the mojo's overlays
-            if ( !artifact.isOptional() && filter.include( artifact ) && ( "zip".equals( artifact.getType() ) ) )
-            {
-                Overlay overlay = getAssociatedOverlay( artifact );
-                // if the overlay doesn't exists we create a new with skip by default
-                if ( overlay != null )
-                {
-                    Overlay zipOverlay = new DefaultOverlay(artifact);
-                    zipOverlay.setSkip( true );
-                    this.overlays.add( zipOverlay );
-                }
-                result.add( artifact );
-            }
         }
         return result;
-    }
-    
-    private Overlay getAssociatedOverlay( Artifact artifact )
-    {
-        if ( this.overlays == null )
-        {
-            return null;
-        }
-        for ( Iterator iterator = this.overlays.iterator(); iterator.hasNext(); )
-        {
-            Overlay overlay = (Overlay) iterator.next();
-            if ( StringUtils.equals( artifact.getGroupId(), overlay.getGroupId() )
-                && StringUtils.equals( artifact.getArtifactId(), overlay.getArtifactId() )
-                && StringUtils.equals( artifact.getClassifier(), overlay.getClassifier() ))
-            {
-                return overlay;
-            }
-        }
-        return null;
     }
 }

Modified: maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/WarZipTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/WarZipTest.java?rev=584631&r1=584630&r2=584631&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/WarZipTest.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/WarZipTest.java Sun Oct 14 15:42:58 2007
@@ -28,6 +28,7 @@
 import org.apache.maven.plugin.war.stub.MavenZipProject;
 import org.apache.maven.plugin.war.stub.WarArtifactStub;
 import org.apache.maven.plugin.war.stub.ZipArtifactStub;
+import org.codehaus.plexus.util.FileUtils;
 
 /**
  * @author <a href="mailto:olamy@apache.org">olamy</a>
@@ -60,22 +61,29 @@
     {
         ArtifactHandler artifactHandler = (ArtifactHandler) lookup( ArtifactHandler.ROLE, "jar" );
         File zipFile = new File( getTestDirectory(), "foobar.zip" );
-        return new ZipArtifactStub( "src/test/resources/unit/warziptest", artifactHandler, zipFile );
+        Artifact artifact = new ZipArtifactStub( "src/test/resources/unit/warziptest", artifactHandler, zipFile );
+        return artifact;
     }
     
     private File configureMojo( String testId )
         throws Exception
     {
         MavenZipProject project = new MavenZipProject();
-        String outputDir = getTestDirectory().getAbsolutePath() + "/" + testId + "-output";
+        String outputDir = getTestDirectory().getAbsolutePath() + File.separatorChar + testId + "-output";
+        // clean up
+        File outputDirFile = new File(outputDir);
+        if (outputDirFile.exists())
+        {
+            FileUtils.deleteDirectory( outputDirFile );
+        }
         File webAppDirectory = new File( getTestDirectory(), testId );
         WarArtifactStub warArtifact = new WarArtifactStub( getBasedir() );
         String warName = "simple";
         File webAppSource = createWebAppSource( testId );
         File classesDir = createClassesDir( testId, true );
         File xmlSource = createXMLConfigDir( testId, new String[] { "web.xml" } );
-
         project.setArtifact( warArtifact );
+        
         this.configureMojo( mojo, new LinkedList(), classesDir, webAppSource, webAppDirectory, project );
         setVariableValueToObject( mojo, "outputDirectory", outputDir );
         setVariableValueToObject( mojo, "warName", warName );
@@ -96,6 +104,7 @@
         
         Overlay overlay = new DefaultOverlay( buildZipArtifact() );
         //overlay.setSkip( false );
+        overlay.setType( "zip" );
         mojo.addOverlay( overlay );        
         mojo.execute();
 
@@ -119,6 +128,7 @@
         
         Overlay overlay = new DefaultOverlay( buildZipArtifact() );
         overlay.setSkip( false );
+        overlay.setType( "zip" );
         overlay.setTargetPath( "overridePath" );
         mojo.addOverlay( overlay );
         
@@ -147,12 +157,13 @@
         assertZipContentNotHere( webAppDirectory );
     }
 
-    public void testOneZipWithWithForceSkip()
+    public void testOneZipWithForceSkip()
         throws Exception
     {
         File webAppDirectory = configureMojo( "one-zip-overlay-skip" );
         Overlay overlay = new DefaultOverlay( buildZipArtifact() );
         overlay.setSkip( true );
+        overlay.setType( "zip" );
         mojo.addOverlay( overlay );
 
         mojo.execute();

Modified: maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/MavenZipProject.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/MavenZipProject.java?rev=584631&r1=584630&r2=584631&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/MavenZipProject.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/MavenZipProject.java Sun Oct 14 15:42:58 2007
@@ -3,6 +3,8 @@
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.maven.artifact.Artifact;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -41,6 +43,16 @@
     public Set getArtifacts()
     {
         return this.artifacts;
+    }
+    
+    public Set getDependencyArtifacts()
+    {
+        return this.artifacts;
+    }
+
+    public void addArtifact( Artifact artifact )
+    {
+        this.artifacts.add( artifact );
     }
 
 }