Author: snicoll
Date: Sun Jan 13 03:05:38 2008
New Revision: 611557

URL: http://svn.apache.org/viewvc?rev=611557&view=rev
Log:
MWAR-136:  Could not overlay two overlays with same groupId and artifactId 
(classifier)

Modified:
    
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/overlay/OverlayManager.java
    
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/ArtifactsPackagingTask.java
    
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/OverlayPackagingTask.java
    
maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/overlay/OverlayManagerTest.java
    
maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/WarArtifactStub.java

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=611557&r1=611556&r2=611557&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 Jan 13 03:05:38 2008
@@ -234,8 +234,7 @@
         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() ) ) 
) );
+            StringUtils.equals( overlay.getClassifier(), 
artifact.getClassifier() ) );
     }
 
     /**

Modified: 
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/ArtifactsPackagingTask.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/ArtifactsPackagingTask.java?rev=611557&r1=611556&r2=611557&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/ArtifactsPackagingTask.java
 (original)
+++ 
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/ArtifactsPackagingTask.java
 Sun Jan 13 03:05:38 2008
@@ -103,12 +103,12 @@
                     else if ( "war".equals( type ) )
                     {
                         // Nothing to do here, it is an overlay and it's 
already handled
-                        context.getLog().info( "nothing to do with war 
dependency as it's handle with overlay" );
+                        context.getLog().debug( "war artifacts are handled as 
overlays, ignoring[" + artifact + "]" );
                     }
                     else if ( "zip".equals( type ) )
                     {
                         // Nothing to do here, it is an overlay and it's 
already handled
-                        context.getLog().info( "nothing to do with zip 
dependency as it's handle with overlay" );
+                        context.getLog().debug( "zip artifacts are handled as 
overlays, ignoring[" + artifact + "]" );
                     }
                     else
                     {

Modified: 
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/OverlayPackagingTask.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/OverlayPackagingTask.java?rev=611557&r1=611556&r2=611557&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/OverlayPackagingTask.java
 (original)
+++ 
maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/packaging/OverlayPackagingTask.java
 Sun Jan 13 03:05:38 2008
@@ -56,8 +56,7 @@
         throws MojoExecutionException
     {
         context.getLog().debug(
-                                "OverlayPackagingTask performPackaging 
overlay.getTargetPath() "
-                                    + overlay.getTargetPath() );
+            "OverlayPackagingTask performPackaging overlay.getTargetPath() " + 
overlay.getTargetPath() );
         if ( overlay.shouldSkip() )
         {
             context.getLog().info( "Skipping overlay[" + overlay + "]" );
@@ -73,7 +72,7 @@
 
                 // Step2: setup
                 final PathSet includes = getFilesToIncludes( tmpDir, 
overlay.getIncludes(), overlay.getExcludes() );
-                
+
                 // Copy
                 if ( null == overlay.getTargetPath() )
                 {
@@ -115,10 +114,9 @@
         final File tmpDir = getOverlayTempDirectory( context, overlay );
 
         // TODO: not sure it's good, we should reuse the markers of the 
dependency plugin
-        if ( FileUtils.sizeOfDirectory( tmpDir ) == 0
-            || overlay.getArtifact().getFile().lastModified() > 
tmpDir.lastModified() )
+        if ( FileUtils.sizeOfDirectory( tmpDir ) == 0 ||
+            overlay.getArtifact().getFile().lastModified() > 
tmpDir.lastModified() )
         {
-            context.getLog().info( "Unpacking overlay[" + overlay + "]" );
             doUnpack( context, overlay.getArtifact().getFile(), tmpDir );
         }
         else
@@ -142,7 +140,12 @@
         {
             groupIdDir.mkdir();
         }
-        final File result = new File( groupIdDir, overlay.getArtifactId() );
+        String directoryName = overlay.getArtifactId();
+        if ( overlay.getClassifier() != null )
+        {
+            directoryName = directoryName + "-" + overlay.getClassifier();
+        }
+        final File result = new File( groupIdDir, directoryName );
         if ( !result.exists() )
         {
             result.mkdirs();

Modified: 
maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/overlay/OverlayManagerTest.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/overlay/OverlayManagerTest.java?rev=611557&r1=611556&r2=611557&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/overlay/OverlayManagerTest.java
 (original)
+++ 
maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/overlay/OverlayManagerTest.java
 Sun Jan 13 03:05:38 2008
@@ -163,12 +163,54 @@
         }
     }
 
+    public void testOverlaysWithSameArtifactAndGroupId()
+        throws Exception
+    {
 
-    protected ArtifactStub newWarArtifact( String groupId, String artifactId )
+        final MavenProjectArtifactsStub project = new 
MavenProjectArtifactsStub();
+        final ArtifactStub first = newWarArtifact( "test", "test-webapp" );
+        final ArtifactStub second = newWarArtifact( "test", "test-webapp", 
"my-classifier" );
+
+        project.addArtifact( first );
+        project.addArtifact( second );
+
+        final List overlays = new ArrayList();
+        overlays.add( new DefaultOverlay( first ) );
+        overlays.add( new DefaultOverlay( second ) );
+
+        try
+        {
+            OverlayManager manager = new OverlayManager( overlays, project, 
DEFAULT_INCLUDES, DEFAULT_EXCLUDES );
+            assertNotNull( manager.getOverlays() );
+            assertEquals( 3, manager.getOverlays().size() );
+            assertEquals( Overlay.currentProjectInstance(), 
manager.getOverlays().get( 0 ) );
+            assertEquals( overlays.get( 0 ), manager.getOverlays().get( 1 ) );
+            assertEquals( overlays.get( 1 ), manager.getOverlays().get( 2 ) );
+
+        }
+        catch ( InvalidOverlayConfigurationException e )
+        {
+            e.printStackTrace();
+            fail( "Should not have failed to validate a valid overlay config " 
+ e.getMessage() );
+        }
+    }
+
+
+    protected ArtifactStub newWarArtifact( String groupId, String artifactId, 
String classifier )
     {
-        final ArtifactStub a = new WarArtifactStub( getBasedir() );
+        final WarArtifactStub a = new WarArtifactStub( getBasedir() );
         a.setGroupId( groupId );
         a.setArtifactId( artifactId );
+        if ( classifier != null )
+        {
+            a.setClassifier( classifier );
+        }
         return a;
+    }
+
+    protected ArtifactStub newWarArtifact( String groupId, String artifactId )
+    {
+        return newWarArtifact( groupId, artifactId, null );
+
     }
 }

Modified: 
maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/WarArtifactStub.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/WarArtifactStub.java?rev=611557&r1=611556&r2=611557&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/WarArtifactStub.java
 (original)
+++ 
maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/WarArtifactStub.java
 Sun Jan 13 03:05:38 2008
@@ -32,6 +32,8 @@
 
     private String artifactId;
 
+    private String classifier;
+
     private File file;
 
     public WarArtifactStub( String _basedir )
@@ -96,5 +98,18 @@
         file = _file;
     }
 
+    public String getClassifier()
+    {
+        return classifier;
+    }
+
+    public void setClassifier( String classifier )
+    {
+        this.classifier = classifier;
+    }
 
+    public boolean hasClassifier()
+    {
+        return classifier != null;
+    }
 }


Reply via email to