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