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; + } }