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;