Olivier, The idea we put forward was the presence of a flag that enable / disable the zip handling altogether. Having to declare every overlay when you actually want this as the default is a bit painful.
Please read the discussion in the Jira issue (Unless you disagree with the proposal). Thanks, Stéphane ---------- Forwarded message ---------- From: [EMAIL PROTECTED] <[EMAIL PROTECTED]> Date: Oct 8, 2007 2:44 PM Subject: svn commit: r582805 - in /maven/plugins/trunk/maven-war-plugin/src: main/java/org/apache/maven/plugin/war/overlay/ site/apt/ test/java/org/apache/maven/plugin/war/ test/java/org/apache/maven/plugin/war/stub/ To: [EMAIL PROTECTED] Author: olamy Date: Mon Oct 8 05:44:27 2007 New Revision: 582805 URL: http://svn.apache.org/viewvc?rev=582805&view=rev Log: [MWAR-104] to preserve backward comp. zip overlay must be off by default add some notes on this in overlays.apt. 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/site/apt/overlays.apt 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/ZipArtifactStub.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=582805&r1=582804&r2=582805&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 Mon Oct 8 05:44:27 2007 @@ -23,6 +23,7 @@ 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; @@ -41,10 +42,6 @@ private final MavenProject project; - //private final List warArtifactss; - - //private final List zipArtifacts; - private final List artifactsOverlays; /** @@ -70,29 +67,12 @@ } this.project = project; - //this.warArtifacts = getOverlaysAsArtifactsWithType( "war" ); - - //this.zipArtifacts = getOverlaysAsArtifactsWithType( "zip" ); - this.artifactsOverlays = getOverlaysAsArtifacts(); // Initialize initialize( defaultIncludes, defaultExcludes ); } - - /** - * Returns the war artifactst attachted to the project. - * - * @return a list of war Artifact - */ - /* - public List getWarArtifacts() - { - return warArtifacts; - } - */ - /** @@ -247,12 +227,43 @@ while ( it.hasNext() ) { Artifact artifact = (Artifact) it.next(); - if ( !artifact.isOptional() && filter.include( artifact ) - && ( "war".equals( artifact.getType() ) || "zip".equals( artifact.getType() ) ) ) + if ( !artifact.isOptional() && filter.include( artifact ) && ( "war".equals( artifact.getType() ) ) ) + { + 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/site/apt/overlays.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/site/apt/overlays.apt?rev=582805&r1=582804&r2=582805&view=diff ============================================================================== --- maven/plugins/trunk/maven-war-plugin/src/site/apt/overlays.apt (original) +++ maven/plugins/trunk/maven-war-plugin/src/site/apt/overlays.apt Mon Oct 8 05:44:27 2007 @@ -333,4 +333,34 @@ [...] +-----------------+ +* Zip dependencies with overlays + The plugin now handles zip dependencies and can extract content to the webapp directory. + + <<To preserve backward compatibility and some user workaround this features is disabled by default.>> + + To enable this you have to declare your zip dependency in the overlays mojo configuration section. + + A sample configuration for a zip (groupId : zipGroupId, artifactId : zipId). + With this configuration, the zip content will be in webappDirectory/scripts/. + ++-----------------+ + [...] + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <configuration> + <overlays> + <overlay> + <groupId>zipGroupId</groupId> + <artifactId>zipId</artifactId> + <!-- optionnal the path to put zip content --> + <targetPath>scripts</targetPath> + </overlay> + </overlays> + </configuration> + </plugin> + </plugins> + [...] ++-----------------+ 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=582805&r1=582804&r2=582805&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 Mon Oct 8 05:44:27 2007 @@ -89,11 +89,14 @@ return webAppDirectory; } - public void testOneZip() + public void testOneZipWithNoSkip() throws Exception { File webAppDirectory = configureMojo( "one-zip" ); + Overlay overlay = new DefaultOverlay( buildZipArtifact() ); + //overlay.setSkip( false ); + mojo.addOverlay( overlay ); mojo.execute(); File foo = new File( webAppDirectory, "foo.txt" ); @@ -115,7 +118,7 @@ File webAppDirectory = configureMojo( "one-zip-overlay-targetPath" ); Overlay overlay = new DefaultOverlay( buildZipArtifact() ); - //overlay.setIncludes( new String[] {"**/**"} ); + overlay.setSkip( false ); overlay.setTargetPath( "overridePath" ); mojo.addOverlay( overlay ); @@ -134,17 +137,31 @@ assertTrue( "bar/bar.txt not a file", bar.isFile() ); } - public void testOneZipWithWithSkip() + public void testOneZipDefaultSkip() throws Exception { File webAppDirectory = configureMojo( "one-zip-overlay-skip" ); + mojo.execute(); + + assertZipContentNotHere( webAppDirectory ); + } + + public void testOneZipWithWithForceSkip() + throws Exception + { + File webAppDirectory = configureMojo( "one-zip-overlay-skip" ); Overlay overlay = new DefaultOverlay( buildZipArtifact() ); overlay.setSkip( true ); mojo.addOverlay( overlay ); mojo.execute(); + assertZipContentNotHere( webAppDirectory ); + } + + protected void assertZipContentNotHere(File webAppDirectory) + { File foo = new File( webAppDirectory.getPath() + File.separatorChar + "overridePath", "foo.txt" ); assertFalse( "foo.txt exists", foo.exists() ); assertFalse( "foo.txt a file", foo.isFile() ); @@ -156,5 +173,5 @@ File bar = new File( barDirectory, "bar.txt" ); assertFalse( "bar/bar.txt exists", bar.exists() ); assertFalse( "bar/bar.txt is a file", bar.isFile() ); - } + } } Modified: maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/ZipArtifactStub.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/ZipArtifactStub.java?rev=582805&r1=582804&r2=582805&view=diff ============================================================================== --- maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/ZipArtifactStub.java (original) +++ maven/plugins/trunk/maven-war-plugin/src/test/java/org/apache/maven/plugin/war/stub/ZipArtifactStub.java Mon Oct 8 05:44:27 2007 @@ -37,6 +37,12 @@ this.zip = zipFile; } + + public String getId() + { + return null; + } + public ArtifactHandler getArtifactHandler() { return super.getArtifactHandler(); -- Large Systems Suck: This rule is 100% transitive. If you build one, you suck" -- S.Yegge --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
