You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kr...@apache.org on 2014/10/16 20:24:06 UTC

svn commit: r1632403 - in /maven/plugins/trunk/maven-assembly-plugin/src: main/java/org/apache/maven/plugin/assembly/archive/archiver/ main/java/org/apache/maven/plugin/assembly/archive/task/ main/java/org/apache/maven/plugin/assembly/filter/ main/java...

Author: krosenvold
Date: Thu Oct 16 18:24:05 2014
New Revision: 1632403

URL: http://svn.apache.org/r1632403
Log:
Run some code duplication analysis

Modified:
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/AbstractLineAggregatingHandler.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolator.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedArchivedFileSet.java Thu Oct 16 18:24:05 2014
@@ -19,6 +19,8 @@ package org.apache.maven.plugin.assembly
  * under the License.
  */
 
+import static org.apache.maven.plugin.assembly.archive.archiver.PrefixedFileSet.combineSelectors;
+
 import org.codehaus.plexus.archiver.ArchivedFileSet;
 import org.codehaus.plexus.components.io.fileselectors.FileSelector;
 
@@ -62,22 +64,7 @@ public class PrefixedArchivedFileSet
 
     public FileSelector[] getFileSelectors()
     {
-        FileSelector[] sel = fileSet.getFileSelectors();
-        if ( ( sel != null ) && ( selectors != null ) )
-        {
-            FileSelector[] temp = new FileSelector[ sel.length + selectors.length ];
-
-            System.arraycopy( sel, 0, temp, 0, sel.length );
-            System.arraycopy( selectors, 0, temp, sel.length, selectors.length );
-
-            sel = temp;
-        }
-        else if ( ( sel == null ) && ( selectors != null ) )
-        {
-            sel = selectors;
-        }
-
-        return sel;
+        return combineSelectors(fileSet.getFileSelectors(), selectors);
     }
 
     public String[] getIncludes()

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/archiver/PrefixedFileSet.java Thu Oct 16 18:24:05 2014
@@ -60,21 +60,26 @@ public class PrefixedFileSet
     public FileSelector[] getFileSelectors()
     {
         FileSelector[] sel = fileSet.getFileSelectors();
-        if ( ( sel != null ) && ( selectors != null ) )
+        final FileSelector[] selectors1 = selectors;
+        return combineSelectors(sel, selectors1);
+    }
+
+    static FileSelector[] combineSelectors(FileSelector[] first, FileSelector[] second) {
+        if ( ( first != null ) && ( second != null ) )
         {
-            final FileSelector[] temp = new FileSelector[sel.length + selectors.length];
+            final FileSelector[] temp = new FileSelector[first.length + second.length];
 
-            System.arraycopy( sel, 0, temp, 0, sel.length );
-            System.arraycopy( selectors, 0, temp, sel.length, selectors.length );
+            System.arraycopy( first, 0, temp, 0, first.length );
+            System.arraycopy(second, 0, temp, first.length, second.length );
 
-            sel = temp;
+            first = temp;
         }
-        else if ( ( sel == null ) && ( selectors != null ) )
+        else if ( ( first == null ) && ( second != null ) )
         {
-            sel = selectors;
+            first = second;
         }
 
-        return sel;
+        return first;
     }
 
     public String[] getIncludes()

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddDirectoryTask.java Thu Oct 16 18:24:05 2014
@@ -111,16 +111,7 @@ public class AddDirectoryTask
                         int i = 0;
                         for ( String include : includes )
                         {
-                            String value = AssemblyFormatUtils.fixRelativeRefs( include );
-
-                            if ( value.startsWith( "/" ) || value.startsWith( "\\" ) )
-                            {
-                                value = value.substring( 1 );
-                            }
-
-                            includesArray[i] = value;
-
-                            i++;
+                            includesArray[i++] = normalize(include);
                         }
                     }
 
@@ -130,16 +121,7 @@ public class AddDirectoryTask
                     int i = 0;
                     for ( String directoryExclude : directoryExcludes )
                     {
-                        String value = AssemblyFormatUtils.fixRelativeRefs( directoryExclude );
-
-                        if ( value.startsWith( "/" ) || value.startsWith( "\\" ) )
-                        {
-                            value = value.substring( 1 );
-                        }
-
-                        excludesArray[i] = value;
-
-                        i++;
+                        excludesArray[i++] = normalize(directoryExclude);
                     }
 
                     final DefaultFileSet fs = new DefaultFileSet();
@@ -171,6 +153,16 @@ public class AddDirectoryTask
         }
     }
 
+    private String normalize(String include) {
+        String value = AssemblyFormatUtils.fixRelativeRefs(include);
+
+        if ( value.startsWith( "/" ) || value.startsWith( "\\" ) )
+		{
+			value = value.substring( 1 );
+		}
+        return value;
+    }
+
     public void setExcludes( final List<String> excludes )
     {
         this.excludes = excludes;

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/AbstractLineAggregatingHandler.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/AbstractLineAggregatingHandler.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/AbstractLineAggregatingHandler.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/AbstractLineAggregatingHandler.java Thu Oct 16 18:24:05 2014
@@ -127,9 +127,7 @@ public abstract class AbstractLineAggreg
             return true;
         }
 
-        String name = fileInfo.getName();
-        name = AssemblyFileUtils.normalizePath( name );
-        name = name.replace( File.separatorChar, '/' );
+        String name = AssemblyFileUtils.normalizeFileInfo(fileInfo );
 
         if ( fileInfo.isFile() && fileMatches( fileInfo ) )
         {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/filter/SimpleAggregatingDescriptorHandler.java Thu Oct 16 18:24:05 2014
@@ -150,10 +150,7 @@ public class SimpleAggregatingDescriptor
             return true;
         }
 
-        String name = fileInfo.getName();
-        name = AssemblyFileUtils.normalizePath( name );
-
-        name = name.replace( File.separatorChar, '/' );
+        String name = AssemblyFileUtils.normalizeFileInfo(fileInfo);
 
         if ( fileInfo.isFile() && name.matches( filePattern ) )
         {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolator.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolator.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolator.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/interpolation/AssemblyInterpolator.java Thu Oct 16 18:24:05 2014
@@ -29,6 +29,7 @@ import java.util.Set;
 
 import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
+import org.apache.maven.plugin.assembly.io.DefaultAssemblyReader;
 import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.plugin.assembly.utils.AssemblyFileUtils;
 import org.apache.maven.plugin.assembly.utils.InterpolationConstants;
@@ -189,20 +190,8 @@ public class AssemblyInterpolator
 
         interpolator.addValueSource( new PropertiesBasedValueSource( settingsProperties ) );
 
-        Properties commandLineProperties = System.getProperties();
-        if ( session != null )
-        {
-            commandLineProperties = new Properties();
-            if ( session.getExecutionProperties() != null )
-            {
-                commandLineProperties.putAll( session.getExecutionProperties() );
-            }
-            
-            if ( session.getUserProperties() != null )
-            {
-                commandLineProperties.putAll( session.getUserProperties() );
-            }
-        }
+
+        Properties commandLineProperties = DefaultAssemblyReader.mergeExecutionPropertiesWithSystemPropertiew(session);
 
         // 7
         interpolator.addValueSource( new PropertiesBasedValueSource( commandLineProperties ) );

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/io/DefaultAssemblyReader.java Thu Oct 16 18:24:05 2014
@@ -347,20 +347,7 @@ public class DefaultAssemblyReader
             final Map<String, String> context = new HashMap<String, String>();
             final MavenSession session = configSource.getMavenSession();
 
-            Properties commandLineProperties = System.getProperties();
-            if ( session != null )
-            {
-                commandLineProperties = new Properties();
-                if ( session.getExecutionProperties() != null )
-                {
-                    commandLineProperties.putAll( session.getExecutionProperties() );
-                }
-
-                if ( session.getUserProperties() != null )
-                {
-                    commandLineProperties.putAll( session.getUserProperties() );
-                }
-            }
+            Properties commandLineProperties = mergeExecutionPropertiesWithSystemPropertiew(session);
 
             for ( final Enumeration<Object> e = commandLineProperties.keys(); e.hasMoreElements(); )
             {
@@ -417,6 +404,24 @@ public class DefaultAssemblyReader
         return assembly;
     }
 
+    public static Properties mergeExecutionPropertiesWithSystemPropertiew(MavenSession session) {
+        Properties commandLineProperties = System.getProperties();
+        if ( session != null )
+		{
+			commandLineProperties = new Properties();
+			if ( session.getExecutionProperties() != null )
+			{
+				commandLineProperties.putAll( session.getExecutionProperties() );
+			}
+
+			if ( session.getUserProperties() != null )
+			{
+				commandLineProperties.putAll( session.getUserProperties() );
+			}
+		}
+        return commandLineProperties;
+    }
+
     private void debugPrintAssembly( final String message, final Assembly assembly )
     {
         final StringWriter sWriter = new StringWriter();

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFileUtils.java Thu Oct 16 18:24:05 2014
@@ -31,6 +31,7 @@ import org.codehaus.plexus.archiver.Arch
 import org.codehaus.plexus.archiver.UnArchiver;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
 import org.codehaus.plexus.archiver.manager.NoSuchArchiverException;
+import org.codehaus.plexus.components.io.fileselectors.FileInfo;
 
 /**
  * @version $Id$
@@ -140,4 +141,12 @@ public final class AssemblyFileUtils
         return path.replace( '\\', '/' );
     }
 
+    @Nonnull
+    public static String normalizeFileInfo( @Nonnull FileInfo fileInfo )
+    {
+        String name = fileInfo.getName();
+        name = normalizePath(name);
+        return name.replace( File.separatorChar, '/' ); // How can this be anything but a no-op
+    }
+
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java?rev=1632403&r1=1632402&r2=1632403&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/DefaultAssemblyArchiverTest.java Thu Oct 16 18:24:05 2014
@@ -562,14 +562,7 @@ public class DefaultAssemblyArchiverTest
 
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
-
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        final DefaultAssemblyArchiver subject = createSubject(mm, ttArchiver);
 
         subject.createTarArchiver( "tar", TarLongFileMode.fail );
 
@@ -579,6 +572,17 @@ public class DefaultAssemblyArchiverTest
         mm.verifyAll();
     }
 
+    private DefaultAssemblyArchiver createSubject(MockManager mm,
+            TestTarArchiver ttArchiver) throws NoSuchArchiverException {
+        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
+
+        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
+
+        mm.replayAll();
+
+        return createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+    }
+
     @Test
     public void testCreateTarArchiver_TarGzFormat_ShouldInitializeGZipCompression()
         throws NoSuchArchiverException, ArchiverException
@@ -587,14 +591,7 @@ public class DefaultAssemblyArchiverTest
 
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
-
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        final DefaultAssemblyArchiver subject = createSubject(mm, ttArchiver);
 
         subject.createTarArchiver( "tar.gz", TarLongFileMode.fail );
 
@@ -612,14 +609,7 @@ public class DefaultAssemblyArchiverTest
 
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
-
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        final DefaultAssemblyArchiver subject = createSubject(mm, ttArchiver);
 
         subject.createTarArchiver( "tgz", TarLongFileMode.fail );
 
@@ -637,14 +627,7 @@ public class DefaultAssemblyArchiverTest
 
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
-
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        final DefaultAssemblyArchiver subject = createSubject(mm, ttArchiver);
 
         subject.createTarArchiver( "tar.bz2", TarLongFileMode.fail );
 
@@ -662,14 +645,7 @@ public class DefaultAssemblyArchiverTest
 
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
-
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        final DefaultAssemblyArchiver subject = createSubject(mm, ttArchiver);
 
         subject.createTarArchiver( "tbz2", TarLongFileMode.fail );
 
@@ -687,14 +663,7 @@ public class DefaultAssemblyArchiverTest
 
         final TestTarArchiver ttArchiver = new TestTarArchiver();
 
-        final MockAndControlForAssemblyArchiver macArchiverManager = new MockAndControlForAssemblyArchiver( mm );
-
-        macArchiverManager.expectGetArchiver( "tar", ttArchiver );
-
-        mm.replayAll();
-
-        final DefaultAssemblyArchiver subject =
-            createSubject( macArchiverManager, new ArrayList<AssemblyArchiverPhase>(), null );
+        final DefaultAssemblyArchiver subject = createSubject(mm, ttArchiver);
 
         try
         {