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();
}
+
+
}
}