Author: krosenvold
Date: Sat Dec  6 19:46:13 2014
New Revision: 1643597

URL: http://svn.apache.org/r1643597
Log:
[MASSEMBLY-648] Fail when filtering line endings on jar/zip files

Modified:
    
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java

Modified: 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java
URL: 
http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java?rev=1643597&r1=1643596&r2=1643597&view=diff
==============================================================================
--- 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java
 (original)
+++ 
maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java
 Sat Dec  6 19:46:13 2014
@@ -39,7 +39,7 @@ import java.util.LinkedHashSet;
 import java.util.List;
 
 /**
- * 
+ *
  */
 public class ReaderFormatter
 {
@@ -91,9 +91,32 @@ public class ReaderFormatter
         }
     }
 
+
+    private static boolean isForbiddenFiletypes( PlexusIoResource 
plexusIoResource )
+        throws IOException
+    {
+        String fileName = plexusIoResource.getName().toLowerCase();
+        return ( fileName.endsWith( ".zip" ) || fileName.endsWith( ".jar" ) );
+    }
+
+    private static void 
checkifFileTypeIsAppropriateForLineEndingTransformation( PlexusIoResource 
plexusIoResource )
+        throws IOException
+    {
+        if ( isForbiddenFiletypes( plexusIoResource ) )
+        {
+            throw new IOException( "Cannot transform line endings on this kind 
of file: " + plexusIoResource.getName() +
+                                       "\nDoing so is more or less guaranteed 
to destroy the file, and it indicates a "
+                                       + "problem with your assembly 
descriptor."
+                                       + "\nThis error message is new as of 
2.5.3. "
+                                       + "\nEarlier versions of 
assembly-plugin will silently destroy your file. "
+                                       + "Fix your descriptor" );
+        }
+
+    }
+
     @Nullable
     public static InputStreamTransformer getFileSetTransformers( final 
AssemblerConfigurationSource configSource,
-                                                   final boolean isFiltered, 
String fileSetLineEnding )
+                                                                 final boolean 
isFiltered, String fileSetLineEnding )
         throws AssemblyFormattingException
     {
         final LineEndings lineEndingToUse = LineEndingsUtils.getLineEnding( 
fileSetLineEnding );
@@ -125,6 +148,7 @@ public class ReaderFormatter
                     }
                     if ( transformLineEndings )
                     {
+                        
checkifFileTypeIsAppropriateForLineEndingTransformation( plexusIoResource );
                         result = LineEndingsUtils.lineEndingConverter( result, 
lineEndingToUse );
                     }
                     return result;


Reply via email to