You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/06/30 11:17:26 UTC

svn commit: r1355671 - in /maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war: AbstractWarMojo.java Overlay.java overlay/OverlayManager.java

Author: rfscholte
Date: Sat Jun 30 09:17:25 2012
New Revision: 1355671

URL: http://svn.apache.org/viewvc?rev=1355671&view=rev
Log:
Improve generics

Modified:
    maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java
    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/OverlayManager.java

Modified: maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java?rev=1355671&r1=1355670&r2=1355671&view=diff
==============================================================================
--- maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java (original)
+++ maven/plugins/trunk/maven-war-plugin/src/main/java/org/apache/maven/plugin/war/AbstractWarMojo.java Sat Jun 30 09:17:25 2012
@@ -24,7 +24,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.archiver.MavenArchiveConfiguration;
@@ -55,6 +54,7 @@ import org.apache.maven.shared.filtering
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.archiver.jar.JarArchiver;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
+import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -127,7 +127,7 @@ public abstract class AbstractWarMojo
      * Filters (property files) to include during the interpolation of the pom.xml.
      */
     @Parameter
-    private List filters;
+    private List<String> filters;
 
     /**
      * The path to the web.xml file to use.
@@ -236,7 +236,7 @@ public abstract class AbstractWarMojo
      * @since 2.1-alpha-1
      */
     @Parameter
-    private List overlays = new ArrayList();
+    private List<Overlay> overlays = new ArrayList<Overlay>();
 
     /**
      * A list of file extensions that should not be filtered.
@@ -245,7 +245,7 @@ public abstract class AbstractWarMojo
      * @since 2.1-alpha-2
      */
     @Parameter
-    private List nonFilteredFileExtensions;
+    private List<String> nonFilteredFileExtensions;
 
     /**
      * @since 2.1-alpha-2
@@ -304,7 +304,7 @@ public abstract class AbstractWarMojo
      */
     protected String[] getExcludes()
     {
-        List excludeList = new ArrayList();
+        List<String> excludeList = new ArrayList<String>();
         if ( StringUtils.isNotEmpty( warSourceExcludes ) )
         {
             excludeList.addAll( Arrays.asList( StringUtils.split( warSourceExcludes, "," ) ) );
@@ -396,6 +396,7 @@ public abstract class AbstractWarMojo
      * @throws MojoFailureException   if an unexpected error occurred while packaging the webapp
      * @throws IOException            if an error occurred while copying the files
      */
+    @SuppressWarnings( "unchecked" )
     public void buildWebapp( MavenProject project, File webappDirectory )
         throws MojoExecutionException, MojoFailureException, IOException
     {
@@ -415,8 +416,8 @@ public abstract class AbstractWarMojo
 
         final OverlayManager overlayManager =
             new OverlayManager( overlays, project, dependentWarIncludes, dependentWarExcludes, currentProjectOverlay );
-        final List packagingTasks = getPackagingTasks( overlayManager );
-        List defaultFilterWrappers = null;
+        final List<WarPackagingTask> packagingTasks = getPackagingTasks( overlayManager );
+        List<FileUtils.FilterWrapper> defaultFilterWrappers = null;
         try
         {
             MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution();
@@ -438,21 +439,16 @@ public abstract class AbstractWarMojo
                                                                             getNonFilteredFileExtensions(),
                                                                             filteringDeploymentDescriptors,
                                                                             this.artifactFactory );
-        final Iterator it = packagingTasks.iterator();
-        while ( it.hasNext() )
+        for ( WarPackagingTask warPackagingTask : packagingTasks )
         {
-            WarPackagingTask warPackagingTask = (WarPackagingTask) it.next();
             warPackagingTask.performPackaging( context );
         }
 
         // Post packaging
-        final List postPackagingTasks = getPostPackagingTasks();
-        final Iterator it2 = postPackagingTasks.iterator();
-        while ( it2.hasNext() )
+        final List<WarPostPackagingTask> postPackagingTasks = getPostPackagingTasks();
+        for( WarPostPackagingTask task  : postPackagingTasks )
         {
-            WarPostPackagingTask task = (WarPostPackagingTask) it2.next();
             task.performPostPackaging( context );
-
         }
         getLog().info( "Webapp assembled in [" + ( System.currentTimeMillis() - startTime ) + " msecs]" );
 
@@ -466,20 +462,18 @@ public abstract class AbstractWarMojo
      * @return the list of packaging tasks
      * @throws MojoExecutionException if the packaging tasks could not be built
      */
-    private List getPackagingTasks( OverlayManager overlayManager )
+    private List<WarPackagingTask> getPackagingTasks( OverlayManager overlayManager )
         throws MojoExecutionException
     {
-        final List packagingTasks = new ArrayList();
+        final List<WarPackagingTask> packagingTasks = new ArrayList<WarPackagingTask>();
         if ( useCache )
         {
             packagingTasks.add( new DependenciesAnalysisPackagingTask() );
         }
 
-        final List resolvedOverlays = overlayManager.getOverlays();
-        final Iterator it = resolvedOverlays.iterator();
-        while ( it.hasNext() )
+        final List<Overlay> resolvedOverlays = overlayManager.getOverlays();
+        for ( Overlay overlay : resolvedOverlays )
         {
-            Overlay overlay = (Overlay) it.next();
             if ( overlay.isCurrentProject() )
             {
                 packagingTasks.add( new WarProjectPackagingTask( webResources, webXml, containerConfigXML,
@@ -500,9 +494,9 @@ public abstract class AbstractWarMojo
      *
      * @return the list of post packaging tasks
      */
-    private List getPostPackagingTasks()
+    private List<WarPostPackagingTask> getPostPackagingTasks()
     {
-        final List postPackagingTasks = new ArrayList();
+        final List<WarPostPackagingTask> postPackagingTasks = new ArrayList<WarPostPackagingTask>();
         if ( useCache )
         {
             postPackagingTasks.add( new SaveWebappStructurePostPackagingTask( cacheFile ) );
@@ -526,15 +520,15 @@ public abstract class AbstractWarMojo
 
         private final OverlayManager overlayManager;
 
-        private final List filterWrappers;
+        private final List<FileUtils.FilterWrapper> filterWrappers;
 
-        private List nonFilteredFileExtensions;
+        private List<String> nonFilteredFileExtensions;
 
         private boolean filteringDeploymentDescriptors;
 
         public DefaultWarPackagingContext( File webappDirectory, final WebappStructure webappStructure,
-                                           final OverlayManager overlayManager, List filterWrappers,
-                                           List nonFilteredFileExtensions, boolean filteringDeploymentDescriptors,
+                                           final OverlayManager overlayManager, List<FileUtils.FilterWrapper> filterWrappers,
+                                           List<String>  nonFilteredFileExtensions, boolean filteringDeploymentDescriptors,
                                            ArtifactFactory artifactFactory )
         {
             this.webappDirectory = webappDirectory;
@@ -543,14 +537,12 @@ public abstract class AbstractWarMojo
             this.filterWrappers = filterWrappers;
             this.artifactFactory = artifactFactory;
             this.filteringDeploymentDescriptors = filteringDeploymentDescriptors;
-            this.nonFilteredFileExtensions = nonFilteredFileExtensions == null ? Collections.EMPTY_LIST
+            this.nonFilteredFileExtensions = nonFilteredFileExtensions == null ? Collections.<String>emptyList()
                                                                               : nonFilteredFileExtensions;
             // This is kinda stupid but if we loop over the current overlays and we request the path structure
             // it will register it. This will avoid wrong warning messages in a later phase
-            final Iterator it = overlayManager.getOverlayIds().iterator();
-            while ( it.hasNext() )
+            for ( String overlayId : overlayManager.getOverlayIds() )
             {
-                String overlayId = (String) it.next();
                 webappStructure.getStructure( overlayId );
             }
         }
@@ -620,7 +612,7 @@ public abstract class AbstractWarMojo
             return jarArchiver;
         }
 
-        public List getFilters()
+        public List<String> getFilters()
         {
             return filters;
         }
@@ -630,7 +622,7 @@ public abstract class AbstractWarMojo
             return webappStructure;
         }
 
-        public List getOwnerIds()
+        public List<String> getOwnerIds()
         {
             return overlayManager.getOverlayIds();
         }
@@ -640,7 +632,7 @@ public abstract class AbstractWarMojo
             return mavenFileFilter;
         }
 
-        public List getFilterWrappers()
+        public List<FileUtils.FilterWrapper> getFilterWrappers()
         {
             return filterWrappers;
         }
@@ -736,12 +728,12 @@ public abstract class AbstractWarMojo
         this.outputFileNameMapping = outputFileNameMapping;
     }
 
-    public List getOverlays()
+    public List<Overlay> getOverlays()
     {
         return overlays;
     }
 
-    public void setOverlays( List overlays )
+    public void setOverlays( List<Overlay> overlays )
     {
         this.overlays = overlays;
     }
@@ -781,12 +773,12 @@ public abstract class AbstractWarMojo
         this.webResources = webResources;
     }
 
-    public List getFilters()
+    public List<String> getFilters()
     {
         return filters;
     }
 
-    public void setFilters( List filters )
+    public void setFilters( List<String> filters )
     {
         this.filters = filters;
     }
@@ -847,12 +839,12 @@ public abstract class AbstractWarMojo
         return archive;
     }
 
-    public List getNonFilteredFileExtensions()
+    public List<String> getNonFilteredFileExtensions()
     {
         return nonFilteredFileExtensions;
     }
 
-    public void setNonFilteredFileExtensions( List nonFilteredFileExtensions )
+    public void setNonFilteredFileExtensions( List<String> nonFilteredFileExtensions )
     {
         this.nonFilteredFileExtensions = nonFilteredFileExtensions;
     }

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=1355671&r1=1355670&r2=1355671&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 Sat Jun 30 09:17:25 2012
@@ -280,7 +280,7 @@ public class Overlay
 
     private String[] parse( String s )
     {
-        final List result = new ArrayList();
+        final List<String> result = new ArrayList<String>();
         if ( s == null )
         {
             return (String[]) result.toArray( new String[result.size()] );

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=1355671&r1=1355670&r2=1355671&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 Sat Jun 30 09:17:25 2012
@@ -19,19 +19,18 @@ package org.apache.maven.plugin.war.over
  * 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.Arrays;
-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.
  *
@@ -41,11 +40,11 @@ import java.util.Set;
  */
 public class OverlayManager
 {
-    private final List overlays;
+    private final List<Overlay> overlays;
 
     private final MavenProject project;
 
-    private final List artifactsOverlays;
+    private final List<Artifact> artifactsOverlays;
 
     /**
      * Creates a manager with the specified overlays.
@@ -61,11 +60,11 @@ public class OverlayManager
      * @throws InvalidOverlayConfigurationException
      *          if the config is invalid
      */
-    public OverlayManager( List overlays, MavenProject project, String defaultIncludes, String defaultExcludes,
+    public OverlayManager( List<Overlay> overlays, MavenProject project, String defaultIncludes, String defaultExcludes,
                            Overlay currentProjectOverlay )
         throws InvalidOverlayConfigurationException
     {
-        this.overlays = new ArrayList();
+        this.overlays = new ArrayList<Overlay>();
         if ( overlays != null )
         {
             this.overlays.addAll( overlays );
@@ -85,7 +84,7 @@ public class OverlayManager
      *
      * @return the overlays
      */
-    public List getOverlays()
+    public List<Overlay> getOverlays()
     {
         return overlays;
     }
@@ -95,13 +94,11 @@ public class OverlayManager
      *
      * @return the overlay ids
      */
-    public List getOverlayIds()
+    public List<String> getOverlayIds()
     {
-        final Iterator it = overlays.iterator();
-        final List result = new ArrayList();
-        while ( it.hasNext() )
+        final List<String> result = new ArrayList<String>();
+        for ( Overlay overlay : overlays )
         {
-            Overlay overlay = (Overlay) it.next();
             result.add( overlay.getId() );
         }
         return result;
@@ -109,7 +106,7 @@ public class OverlayManager
     }
 
     /**
-     * Intializes the manager and validates the overlays configuration.
+     * Initializes the manager and validates the overlays configuration.
      *
      * @param defaultIncludes the default includes to use
      * @param defaultExcludes the default excludes to use
@@ -123,8 +120,8 @@ public class OverlayManager
 
         // Build the list of configured artifacts and makes sure that each overlay
         // refer to a valid artifact
-        final List configuredWarArtifacts = new ArrayList();
-        final ListIterator it = overlays.listIterator();
+        final List<Artifact> configuredWarArtifacts = new ArrayList<Artifact>();
+        final ListIterator<Overlay> it = overlays.listIterator();
         while ( it.hasNext() )
         {
             Overlay overlay = (Overlay) it.next();
@@ -155,10 +152,8 @@ public class OverlayManager
         }
 
         // Build the list of missing overlays
-        final Iterator it2 = artifactsOverlays.iterator();
-        while ( it2.hasNext() )
+        for ( Artifact artifact : artifactsOverlays )
         {
-            Artifact artifact = (Artifact) it2.next();
             if ( !configuredWarArtifacts.contains( artifact ) )
             {
                 // Add a default overlay for the given artifact which will be applied after
@@ -168,10 +163,8 @@ public class OverlayManager
         }
 
         // Final validation, make sure that the current project is in there. Otherwise add it first
-        final Iterator it3 = overlays.iterator();
-        while ( it3.hasNext() )
+        for ( Overlay overlay : overlays )
         {
-            Overlay overlay = (Overlay) it3.next();
             if ( overlay.equals( currentProjectOverlay ) )
             {
                 return;
@@ -200,10 +193,9 @@ public class OverlayManager
             return null;
         }
 
-        for ( Iterator iterator = artifactsOverlays.iterator(); iterator.hasNext(); )
+        for ( Artifact artifact : artifactsOverlays )
         {
             // Handle classifier dependencies properly (clash management)
-            Artifact artifact = (Artifact) iterator.next();
             if ( compareOverlayWithArtifact( overlay, artifact ) )
             {
                 return artifact;
@@ -211,12 +203,12 @@ public class OverlayManager
         }
 
         // maybe its a project dependencies zip or an other type
-        Set projectArtifacts = this.project.getDependencyArtifacts();
+        @SuppressWarnings( "unchecked" )
+        Set<Artifact> projectArtifacts = this.project.getDependencyArtifacts();
         if ( projectArtifacts != null )
         {
-            for ( Iterator iterator = projectArtifacts.iterator(); iterator.hasNext(); )
+            for ( Artifact artifact : projectArtifacts )
             {
-                Artifact artifact = (Artifact) iterator.next();
                 if ( compareOverlayWithArtifact( overlay, artifact ) )
                 {
                     return artifact;
@@ -248,16 +240,15 @@ public class OverlayManager
      *
      * @return the overlays as artifacts objects
      */
-    private List getOverlaysAsArtifacts()
+    private List<Artifact> getOverlaysAsArtifacts()
     {
         ScopeArtifactFilter filter = new ScopeArtifactFilter( Artifact.SCOPE_RUNTIME );
-        final Set artifacts = project.getArtifacts();
-        final Iterator it = artifacts.iterator();
+        @SuppressWarnings( "unchecked" )
+        final Set<Artifact> artifacts = project.getArtifacts();
 
-        final List result = new ArrayList();
-        while ( it.hasNext() )
+        final List<Artifact> result = new ArrayList<Artifact>();
+        for ( Artifact artifact : artifacts )
         {
-            Artifact artifact = (Artifact) it.next();
             if ( !artifact.isOptional() && filter.include( artifact ) && ( "war".equals( artifact.getType() ) ) )
             {
                 result.add( artifact );