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