[MSHADE-360] avoid PrintWriter (#44)
* avoid PrintWriter
* System.lineSeparator()
diff --git a/src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.java b/src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.java
index d0e25a7..173d1d9 100644
--- a/src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.java
+++ b/src/main/java/org/apache/maven/plugins/shade/resource/ApacheNoticeResourceTransformer.java
@@ -27,7 +27,6 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -211,16 +210,15 @@
jarEntry.setTime( time );
jos.putNextEntry( jarEntry );
- Writer pow;
+ Writer writer;
if ( StringUtils.isNotEmpty( encoding ) )
{
- pow = new OutputStreamWriter( jos, encoding );
+ writer = new OutputStreamWriter( jos, encoding );
}
else
{
- pow = new OutputStreamWriter( jos );
+ writer = new OutputStreamWriter( jos );
}
- PrintWriter writer = new PrintWriter( pow );
int count = 0;
for ( String line : entries )
@@ -233,26 +231,26 @@
if ( count == 2 && copyright != null )
{
- writer.print( copyright );
- writer.print( '\n' );
+ writer.write( copyright );
+ writer.write( '\n' );
}
else
{
- writer.print( line );
- writer.print( '\n' );
+ writer.write( line );
+ writer.write( '\n' );
}
if ( count == 3 )
{
//do org stuff
for ( Map.Entry<String, Set<String>> entry : organizationEntries.entrySet() )
{
- writer.print( entry.getKey() );
- writer.print( '\n' );
+ writer.write( entry.getKey() );
+ writer.write( '\n' );
for ( String l : entry.getValue() )
{
- writer.print( l );
+ writer.write( l );
}
- writer.print( '\n' );
+ writer.write( '\n' );
}
}
}
diff --git a/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java b/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
index 7e5d3a6..6a2bec6 100644
--- a/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
+++ b/src/main/java/org/apache/maven/plugins/shade/resource/ServicesResourceTransformer.java
@@ -25,8 +25,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.io.PrintWriter;
+import java.io.OutputStreamWriter;
import java.io.StringReader;
+import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
@@ -132,15 +133,17 @@
jos.putNextEntry( jarEntry );
- //read the content of service file for candidate classes for relocation
- PrintWriter writer = new PrintWriter( jos );
+ // read the content of service file for candidate classes for relocation.
+ // Specification requires that this file is encoded in UTF-8.
+ Writer writer = new OutputStreamWriter( jos, StandardCharsets.UTF_8 );
InputStreamReader streamReader = new InputStreamReader( data.toInputStream() );
BufferedReader reader = new BufferedReader( streamReader );
String className;
while ( ( className = reader.readLine() ) != null )
{
- writer.println( className );
+ writer.write( className );
+ writer.write( System.lineSeparator() );
writer.flush();
}