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 2015/04/21 18:05:16 UTC

svn commit: r1675144 - in /maven/plugins/trunk/maven-assembly-plugin/src: main/java/org/apache/maven/plugin/assembly/archive/phase/ main/java/org/apache/maven/plugin/assembly/archive/task/ main/java/org/apache/maven/plugin/assembly/utils/ test/java/org...

Author: krosenvold
Date: Tue Apr 21 16:05:16 2015
New Revision: 1675144

URL: http://svn.apache.org/r1675144
Log:
[MASSEMBLY-746] Extended warnings about platform specific behaviour

Modified:
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java?rev=1675144&r1=1675143&r2=1675144&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhase.java Tue Apr 21 16:05:16 2015
@@ -38,6 +38,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
+import static org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils.warnForPlatformSpecifics;
 import static org.codehaus.plexus.components.io.resources.ResourceFactory.createResource;
 
 /**
@@ -86,6 +87,8 @@ public class FileItemAssemblyPhase
 
             final String outputDirectory1 = fileItem.getOutputDirectory();
 
+            warnForPlatformSpecifics( getLogger(), outputDirectory1 );
+
             final String outputDirectory =
                 AssemblyFormatUtils.getOutputDirectory( outputDirectory1, configSource.getFinalName(), configSource,
                                                         AssemblyFormatUtils.moduleProjectInterpolator(

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java?rev=1675144&r1=1675143&r2=1675144&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTask.java Tue Apr 21 16:05:16 2015
@@ -27,7 +27,6 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.utils.AssemblyFormatUtils;
 import org.apache.maven.plugin.assembly.utils.TypeConversionUtils;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.shared.utils.Os;
 import org.codehaus.plexus.archiver.Archiver;
 import org.codehaus.plexus.components.io.functions.InputStreamTransformer;
 import org.codehaus.plexus.logging.Logger;
@@ -113,7 +112,7 @@ public class AddFileSetsTask
             destDirectory = fileSet.getDirectory();
         }
 
-        warnForPlatformSpecifics( destDirectory );
+        AssemblyFormatUtils.warnForPlatformSpecifics( logger,  destDirectory );
 
         destDirectory =
             AssemblyFormatUtils.getOutputDirectory( destDirectory, configSource.getFinalName(), configSource,
@@ -176,48 +175,6 @@ public class AddFileSetsTask
         }
     }
 
-    private void warnForPlatformSpecifics( String destDirectory )
-    {
-        if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
-        {
-            if ( isLinuxRootReference( destDirectory ) )
-            {
-                logger.error( "OS=Windows and the assembly descriptor contains a *nix-specific root-relative-reference"
-                                  + " (starting with slash) " + destDirectory );
-            }
-            else if ( isWindowsPath( destDirectory ) )
-            {
-                logger.warn( "The assembly descriptor contains a *nix-specific root-relative-reference"
-                                 + " (starting with slash). This is non-portable and will fail on windows "
-                                 + destDirectory );
-            }
-        }
-        else
-        {
-            if ( isWindowsPath( destDirectory ) )
-            {
-                logger.error(
-                    "OS=Non-Windows and the assembly descriptor contains a windows-specific directory reference"
-                        + " (with a drive letter) " + destDirectory );
-            }
-            else if ( isLinuxRootReference( destDirectory ) )
-            {
-                logger.warn( "The assembly descriptor contains a filesystem-root relative reference,"
-                                 + " which is not cross platform compatible " + destDirectory );
-            }
-        }
-    }
-
-    static boolean isWindowsPath( String destDirectory )
-    {
-        return ( destDirectory != null && destDirectory.length() >= 2 && destDirectory.charAt( 1 ) == ':' );
-    }
-
-    static boolean isLinuxRootReference( String destDirectory )
-    {
-        return ( destDirectory != null && destDirectory.startsWith( "/" ) );
-    }
-
     File getFileSetDirectory( final FileSet fileSet, final File basedir, final File archiveBaseDir )
         throws ArchiveCreationException, AssemblyFormattingException
     {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java?rev=1675144&r1=1675143&r2=1675144&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtils.java Tue Apr 21 16:05:16 2015
@@ -25,10 +25,12 @@ import org.apache.maven.plugin.assembly.
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugin.assembly.model.Assembly;
 import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.utils.Os;
 import org.codehaus.plexus.interpolation.fixed.FixedStringSearchInterpolator;
 import org.codehaus.plexus.interpolation.fixed.PrefixedObjectValueSource;
 import org.codehaus.plexus.interpolation.fixed.PrefixedPropertiesValueSource;
 import org.codehaus.plexus.interpolation.fixed.PropertiesBasedValueSource;
+import org.codehaus.plexus.logging.Logger;
 import org.codehaus.plexus.util.StringUtils;
 
 import javax.annotation.Nonnull;
@@ -480,4 +482,47 @@ public final class AssemblyFormatUtils
         return value;
     }
 
+    public static void warnForPlatformSpecifics( Logger logger, String destDirectory )
+    {
+        if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
+        {
+            if ( isLinuxRootReference( destDirectory ) )
+            {
+                logger.error( "OS=Windows and the assembly descriptor contains a *nix-specific root-relative-reference"
+                                  + " (starting with slash) " + destDirectory );
+            }
+            else if ( isWindowsPath( destDirectory ) )
+            {
+                logger.warn( "The assembly descriptor contains a *nix-specific root-relative-reference"
+                                 + " (starting with slash). This is non-portable and will fail on windows "
+                                 + destDirectory );
+            }
+        }
+        else
+        {
+            if ( isWindowsPath( destDirectory ) )
+            {
+                logger.error(
+                    "OS=Non-Windows and the assembly descriptor contains a windows-specific directory reference"
+                        + " (with a drive letter) " + destDirectory );
+            }
+            else if ( isLinuxRootReference( destDirectory ) )
+            {
+                logger.warn( "The assembly descriptor contains a filesystem-root relative reference,"
+                                 + " which is not cross platform compatible " + destDirectory );
+            }
+        }
+    }
+
+    static boolean isWindowsPath( String destDirectory )
+    {
+        return ( destDirectory != null && destDirectory.length() >= 2 && destDirectory.charAt( 1 ) == ':' );
+    }
+
+    static boolean isLinuxRootReference( String destDirectory )
+    {
+        return ( destDirectory != null && destDirectory.startsWith( "/" ) );
+    }
+
+
 }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java?rev=1675144&r1=1675143&r2=1675144&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/phase/FileItemAssemblyPhaseTest.java Tue Apr 21 16:05:16 2015
@@ -198,6 +198,7 @@ public class FileItemAssemblyPhaseTest
         macCS.expectInterpolators();
 
         final MockAndControlForLogger macLogger = new MockAndControlForLogger( mm );
+        macLogger.logger.warn( (String)anyObject() );
 
         final MockAndControlForArchiver macArchiver = new MockAndControlForArchiver( mm );
 
@@ -273,6 +274,8 @@ public class FileItemAssemblyPhaseTest
 
 
         final MockAndControlForLogger macLogger = new MockAndControlForLogger( mm );
+        macLogger.logger.warn( (String)anyObject() );
+
 
         final MockAndControlForArchiver macArchiver = new MockAndControlForArchiver( mm );
 

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java?rev=1675144&r1=1675143&r2=1675144&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/archive/task/AddFileSetsTaskTest.java Tue Apr 21 16:05:16 2015
@@ -231,13 +231,6 @@ public class AddFileSetsTaskTest
         mockManager.verifyAll();
     }
 
-    public void testWindowsPath(){
-        assertTrue(AddFileSetsTask.isWindowsPath( "C:\foobar" ));
-    }
-    public void testLinuxRootReferencePath(){
-        assertTrue( AddFileSetsTask.isLinuxRootReference( "/etc/home" ) );
-    }
-
     public void testExecute_ShouldThrowExceptionIfArchiveBasedirProvidedIsNonExistent()
         throws AssemblyFormattingException
     {

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java?rev=1675144&r1=1675143&r2=1675144&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/utils/AssemblyFormatUtilsTest.java Tue Apr 21 16:05:16 2015
@@ -28,6 +28,7 @@ import org.apache.maven.model.Build;
 import org.apache.maven.model.Model;
 import org.apache.maven.plugin.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugin.assembly.archive.DefaultAssemblyArchiverTest;
+import org.apache.maven.plugin.assembly.archive.task.AddFileSetsTask;
 import org.apache.maven.plugin.assembly.archive.task.testutils.ArtifactMock;
 import org.apache.maven.plugin.assembly.format.AssemblyFormattingException;
 import org.apache.maven.plugin.assembly.model.Assembly;
@@ -787,6 +788,14 @@ public class AssemblyFormatUtilsTest
         mockManager.resetAll();
     }
 
+    public void testWindowsPath(){
+        assertTrue( AssemblyFormatUtils.isWindowsPath( "C:\foobar" ));
+    }
+    public void testLinuxRootReferencePath(){
+        assertTrue( AssemblyFormatUtils.isLinuxRootReference( "/etc/home" ) );
+    }
+
+
     private final class MockAndControlForGetDistroName
     {
         final AssemblerConfigurationSource configSource;
@@ -818,6 +827,8 @@ public class AssemblyFormatUtilsTest
             expect( configSource.getFinalName()).andReturn( finalName ).atLeastOnce();
         }
 
+
+
     }
 
 }