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/11/09 12:18:18 UTC

svn commit: r1637652 - in /maven/plugins/trunk/maven-assembly-plugin/src: main/java/org/apache/maven/plugin/assembly/format/ main/java/org/apache/maven/plugin/assembly/utils/ test/java/org/apache/maven/plugin/assembly/format/

Author: krosenvold
Date: Sun Nov  9 11:18:17 2014
New Revision: 1637652

URL: http://svn.apache.org/r1637652
Log:
[MASSEMBLY-729] Lineendings also without filtering

Modified:
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/format/ReaderFormatter.java
    maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java
    maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.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=1637652&r1=1637651&r2=1637652&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 Sun Nov  9 11:18:17 2014
@@ -42,7 +42,7 @@ public class ReaderFormatter
 {
     private static Reader createReaderFilter( @Nonnull Reader source, String escapeString, List<String> delimiters,
                                               AssemblerConfigurationSource configSource, boolean isPropertiesFile )
-        throws AssemblyFormattingException
+        throws IOException
     {
         try
         {
@@ -82,7 +82,7 @@ public class ReaderFormatter
         }
         catch ( MavenFilteringException e )
         {
-            throw new AssemblyFormattingException( "Error filtering file '" + source + "': " + e.getMessage(), e );
+            throw new IOException( "Error filtering file '" + source + "': " + e.getMessage(), e );
         }
     }
 
@@ -92,53 +92,36 @@ public class ReaderFormatter
                                                    final boolean isFiltered, String fileSetLineEnding )
         throws AssemblyFormattingException
     {
-        final String lineEndingHint = fileSetLineEnding;
+        final LineEndings lineEndingToUse = LineEndingsUtils.getLineEnding( fileSetLineEnding );
 
-        String lineEnding = LineEndingsUtils.getLineEndingCharacters( lineEndingHint );
+        final boolean transformLineEndings = !LineEndings.keep.equals( lineEndingToUse );
 
-        if ( ( lineEnding != null ) || isFiltered )
+        if ( transformLineEndings || isFiltered )
         {
             return new InputStreamTransformer()
             {
                 public InputStream transform( PlexusIoResource plexusIoResource, InputStream inputStream )
                     throws IOException
                 {
+                    InputStream result = inputStream;
                     if ( isFiltered )
                     {
                         final String encoding = configSource.getEncoding();
 
-                        Reader source = encoding != null
-                            ? new InputStreamReader( inputStream, encoding )
+                        Reader source = encoding != null ? new InputStreamReader( inputStream, encoding )
                             : new InputStreamReader( inputStream ); // wtf platform encoding ? TODO: Fix this
-                        try
-                        {
-                            boolean isPropertyFile = AssemblyFileUtils.isPropertyFile( plexusIoResource.getName() );
-                            Reader filtered =
-                                createReaderFilter( source, configSource.getEscapeString(), configSource.getDelimiters(),
-                                                    configSource, isPropertyFile );
-                            final ReaderInputStream readerInputStream = encoding != null
-                                ? new ReaderInputStream( filtered, encoding )
-                                : new ReaderInputStream( filtered );
-
-                            LineEndings lineEnding = LineEndingsUtils.getLineEnding( lineEndingHint );
-                            if ( !LineEndings.keep.equals( lineEnding ) )
-                            {
-                                return LineEndingsUtils.lineEndingConverter( readerInputStream, lineEnding );
-
-                            }
-                            return readerInputStream;
-
-                        }
-                        catch ( AssemblyFormattingException e )
-                        {
-                            throw new IOException( e.getMessage() );
-                        }
-
+                        boolean isPropertyFile = AssemblyFileUtils.isPropertyFile( plexusIoResource.getName() );
+                        Reader filtered =
+                            createReaderFilter( source, configSource.getEscapeString(), configSource.getDelimiters(),
+                                                configSource, isPropertyFile );
+                        result = encoding != null ? new ReaderInputStream( filtered, encoding )
+                            : new ReaderInputStream( filtered );
                     }
-                    else
+                    if ( transformLineEndings )
                     {
-                        return inputStream;
+                        result = LineEndingsUtils.lineEndingConverter( result, lineEndingToUse );
                     }
+                    return result;
                 }
             };
         }

Modified: maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java?rev=1637652&r1=1637651&r2=1637652&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/main/java/org/apache/maven/plugin/assembly/utils/LineEndingsUtils.java Sun Nov  9 11:18:17 2014
@@ -164,7 +164,7 @@ public final class LineEndingsUtils
             : lineEndings.isCrLF() ? new WindowsLineFeedInputStream( in, false ) : in;
     }
 
-    public static LineEndings getLineEnding( @Nullable String lineEnding )
+    public static @Nonnull LineEndings getLineEnding( @Nullable String lineEnding )
         throws AssemblyFormattingException
     {
         LineEndings result = LineEndings.keep;

Modified: maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java?rev=1637652&r1=1637651&r2=1637652&view=diff
==============================================================================
--- maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java (original)
+++ maven/plugins/trunk/maven-assembly-plugin/src/test/java/org/apache/maven/plugin/assembly/format/ReaderFormatterTest.java Sun Nov  9 11:18:17 2014
@@ -52,6 +52,16 @@ public class ReaderFormatterTest
     }
 
     @Test
+    public void lineDosFeed_withoutFiltering()
+        throws IOException, AssemblyFormattingException
+    {
+        final PojoConfigSource cfg = getPojoConfigSource();
+        InputStreamTransformer fileSetTransformers = getFileSetTransformers( cfg, false, "dos" );
+        InputStream fud = fileSetTransformers.transform( dummyResource(), payload( "This is a\ntest." ) );
+        assertEquals( "This is a\r\ntest.", readResultStream( fud ) );
+    }
+
+    @Test
     public void lineUnixFeedWithInterpolation()
         throws IOException, AssemblyFormattingException
     {