maven-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
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/
Date Mon, 08 Oct 2007 12:44:28 GMT
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();



Mime
View raw message