From c8ed6cc9c59c9ed206455e6263ffe895b6ddd475 Mon Sep 17 00:00:00 2001 From: Markus KARG Date: Tue, 22 Dec 2020 12:56:43 +0000 Subject: [PATCH 1/3] Requires parent version 7, as it requires JRE 8. Signed-off-by: Markus KARG --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1965e5ab..efad18f9 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,7 @@ limitations under the License. org.codehaus.plexus plexus - 6.5 + 7 plexus-utils From 4bc0050c8d77f971459b9b5892263a4b6293eb07 Mon Sep 17 00:00:00 2001 From: Markus KARG Date: Sun, 16 Aug 2020 15:05:37 +0000 Subject: [PATCH 2/3] Java 8: Files.newBufferedReader instead of new FileReader Provides potentially better performance. Signed-off-by: Markus KARG --- .../java/org/codehaus/plexus/util/FileUtils.java | 10 ++++------ .../org/codehaus/plexus/util/ReaderFactory.java | 7 +++---- .../java/org/codehaus/plexus/util/IOUtilTest.java | 13 ++++++------- 3 files changed, 13 insertions(+), 17 deletions(-) diff --git a/src/main/java/org/codehaus/plexus/util/FileUtils.java b/src/main/java/org/codehaus/plexus/util/FileUtils.java index f18eac34..c8bf68d7 100644 --- a/src/main/java/org/codehaus/plexus/util/FileUtils.java +++ b/src/main/java/org/codehaus/plexus/util/FileUtils.java @@ -60,7 +60,6 @@ import java.io.BufferedReader; import java.io.File; -import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; @@ -70,6 +69,7 @@ import java.io.Reader; import java.io.Writer; import java.net.URL; +import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; @@ -2252,16 +2252,14 @@ public static void copyFile( File from, File to, String encoding, FilterWrapper[ { if ( encoding == null || encoding.length() < 1 ) { - fileReader = new BufferedReader( new FileReader( from ) ); + fileReader = Files.newBufferedReader( from.toPath() ); fileWriter = new FileWriter( to ); } else { - InputStream instream = Files.newInputStream( from.toPath() ); - OutputStream outstream = Files.newOutputStream( to.toPath() ); - fileReader = new BufferedReader( new InputStreamReader( instream, encoding ) ); + fileReader = Files.newBufferedReader( from.toPath(), Charset.forName( encoding ) ); fileWriter = new OutputStreamWriter( outstream, encoding ); } @@ -2311,7 +2309,7 @@ public static List loadFile( File file ) if ( file.exists() ) { - try ( BufferedReader reader = new BufferedReader( new FileReader( file ) ) ) + try ( BufferedReader reader = Files.newBufferedReader( file.toPath() ) ) { for ( String line = reader.readLine(); line != null; line = reader.readLine() ) { diff --git a/src/main/java/org/codehaus/plexus/util/ReaderFactory.java b/src/main/java/org/codehaus/plexus/util/ReaderFactory.java index d593bbf0..a469a2c7 100644 --- a/src/main/java/org/codehaus/plexus/util/ReaderFactory.java +++ b/src/main/java/org/codehaus/plexus/util/ReaderFactory.java @@ -18,7 +18,6 @@ import java.io.File; import java.io.FileNotFoundException; -import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -154,13 +153,13 @@ public static Reader newPlatformReader( InputStream in ) * * @param file not null file. * @return a reader instance for the input file using the default platform charset. - * @throws FileNotFoundException if any. + * @throws IOException if any. * @see Charset#defaultCharset() */ public static Reader newPlatformReader( File file ) - throws FileNotFoundException + throws IOException { - return new FileReader( file ); + return Files.newBufferedReader( file.toPath() ); } /** diff --git a/src/test/java/org/codehaus/plexus/util/IOUtilTest.java b/src/test/java/org/codehaus/plexus/util/IOUtilTest.java index 0bbd7b0e..e5e52a1d 100644 --- a/src/test/java/org/codehaus/plexus/util/IOUtilTest.java +++ b/src/test/java/org/codehaus/plexus/util/IOUtilTest.java @@ -22,7 +22,6 @@ import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; @@ -210,7 +209,7 @@ public void testReaderToOutputStream() throws Exception { File destination = newFile( "copy3.txt" ); - FileReader fin = new FileReader( testFile ); + Reader fin = Files.newBufferedReader( testFile.toPath() ); OutputStream fout = Files.newOutputStream( destination.toPath() ); IOUtil.copy( fin, fout ); // Note: this method *does* flush. It is equivalent to: @@ -232,7 +231,7 @@ public void testReaderToWriter() throws Exception { File destination = newFile( "copy4.txt" ); - FileReader fin = new FileReader( testFile ); + Reader fin = Files.newBufferedReader( testFile.toPath() ); FileWriter fout = new FileWriter( destination ); IOUtil.copy( fin, fout ); @@ -248,7 +247,7 @@ public void testReaderToWriter() public void testReaderToString() throws Exception { - FileReader fin = new FileReader( testFile ); + Reader fin = Files.newBufferedReader( testFile.toPath() ); String out = IOUtil.toString( fin ); assertNotNull( out ); assertTrue( "Wrong output size: out.length()=" + out.length() + "!=" + FILE_SIZE, out.length() == FILE_SIZE ); @@ -260,7 +259,7 @@ public void testStringToOutputStream() throws Exception { File destination = newFile( "copy5.txt" ); - FileReader fin = new FileReader( testFile ); + Reader fin = Files.newBufferedReader( testFile.toPath() ); // Create our String. Rely on testReaderToString() to make sure this is valid. String str = IOUtil.toString( fin ); OutputStream fout = Files.newOutputStream( destination.toPath() ); @@ -284,7 +283,7 @@ public void testStringToWriter() throws Exception { File destination = newFile( "copy6.txt" ); - FileReader fin = new FileReader( testFile ); + Reader fin = Files.newBufferedReader( testFile.toPath() ); // Create our String. Rely on testReaderToString() to make sure this is valid. String str = IOUtil.toString( fin ); FileWriter fout = new FileWriter( destination ); @@ -316,7 +315,7 @@ public void testInputStreamToByteArray() public void testStringToByteArray() throws Exception { - FileReader fin = new FileReader( testFile ); + Reader fin = Files.newBufferedReader( testFile.toPath() ); // Create our String. Rely on testReaderToString() to make sure this is valid. String str = IOUtil.toString( fin ); From 6ca093b283692acacf42e3bfc3afcf30d0232feb Mon Sep 17 00:00:00 2001 From: Markus KARG Date: Sun, 16 Aug 2020 15:12:44 +0000 Subject: [PATCH 3/3] Java 8: Files.newBufferedWriter instead of new FileWriter Provides potentially better performance. Signed-off-by: Markus KARG --- src/main/java/org/codehaus/plexus/util/FileUtils.java | 3 +-- .../java/org/codehaus/plexus/util/WriterFactory.java | 4 +--- src/test/java/org/codehaus/plexus/util/IOUtilTest.java | 9 ++++----- .../org/codehaus/plexus/util/cli/CommandlineTest.java | 9 +++++---- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/codehaus/plexus/util/FileUtils.java b/src/main/java/org/codehaus/plexus/util/FileUtils.java index c8bf68d7..cac82ba3 100644 --- a/src/main/java/org/codehaus/plexus/util/FileUtils.java +++ b/src/main/java/org/codehaus/plexus/util/FileUtils.java @@ -60,7 +60,6 @@ import java.io.BufferedReader; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; @@ -2253,7 +2252,7 @@ public static void copyFile( File from, File to, String encoding, FilterWrapper[ if ( encoding == null || encoding.length() < 1 ) { fileReader = Files.newBufferedReader( from.toPath() ); - fileWriter = new FileWriter( to ); + fileWriter = Files.newBufferedWriter( to.toPath() ); } else { diff --git a/src/main/java/org/codehaus/plexus/util/WriterFactory.java b/src/main/java/org/codehaus/plexus/util/WriterFactory.java index fce68943..cf8326c4 100644 --- a/src/main/java/org/codehaus/plexus/util/WriterFactory.java +++ b/src/main/java/org/codehaus/plexus/util/WriterFactory.java @@ -17,8 +17,6 @@ */ import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; @@ -145,7 +143,7 @@ public static Writer newPlatformWriter( OutputStream out ) public static Writer newPlatformWriter( File file ) throws IOException { - return new FileWriter( file ); + return Files.newBufferedWriter( file.toPath() ); } /** diff --git a/src/test/java/org/codehaus/plexus/util/IOUtilTest.java b/src/test/java/org/codehaus/plexus/util/IOUtilTest.java index e5e52a1d..40f2846c 100644 --- a/src/test/java/org/codehaus/plexus/util/IOUtilTest.java +++ b/src/test/java/org/codehaus/plexus/util/IOUtilTest.java @@ -22,7 +22,6 @@ import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -178,7 +177,7 @@ public void testInputStreamToWriter() { File destination = newFile( "copy2.txt" ); InputStream fin = Files.newInputStream( testFile.toPath() ); - FileWriter fout = new FileWriter( destination ); + Writer fout = Files.newBufferedWriter( destination.toPath() ); IOUtil.copy( fin, fout ); @@ -232,7 +231,7 @@ public void testReaderToWriter() { File destination = newFile( "copy4.txt" ); Reader fin = Files.newBufferedReader( testFile.toPath() ); - FileWriter fout = new FileWriter( destination ); + Writer fout = Files.newBufferedWriter( destination.toPath() ); IOUtil.copy( fin, fout ); fout.flush(); @@ -286,7 +285,7 @@ public void testStringToWriter() Reader fin = Files.newBufferedReader( testFile.toPath() ); // Create our String. Rely on testReaderToString() to make sure this is valid. String str = IOUtil.toString( fin ); - FileWriter fout = new FileWriter( destination ); + Writer fout = Files.newBufferedWriter( destination.toPath() ); IOUtil.copy( str, fout ); fout.flush(); @@ -330,7 +329,7 @@ public void testByteArrayToWriter() throws Exception { File destination = newFile( "copy7.txt" ); - FileWriter fout = new FileWriter( destination ); + Writer fout = Files.newBufferedWriter( destination.toPath() ); InputStream fin = Files.newInputStream( testFile.toPath() ); // Create our byte[]. Rely on testInputStreamToByteArray() to make sure this is valid. diff --git a/src/test/java/org/codehaus/plexus/util/cli/CommandlineTest.java b/src/test/java/org/codehaus/plexus/util/cli/CommandlineTest.java index 28ec8297..97073d60 100644 --- a/src/test/java/org/codehaus/plexus/util/cli/CommandlineTest.java +++ b/src/test/java/org/codehaus/plexus/util/cli/CommandlineTest.java @@ -21,9 +21,10 @@ import static org.junit.Assert.fail; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.Writer; +import java.nio.file.Files; +import java.nio.file.Paths; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.Os; @@ -443,10 +444,10 @@ public void testDollarSignInArgumentPath() assertTrue( "Can't create dir:" + dir.getAbsolutePath(), dir.mkdirs() ); } - FileWriter writer = null; + Writer writer = null; try { - writer = new FileWriter( new File( dir, "test$1.txt" ) ); + writer = Files.newBufferedWriter( dir.toPath().resolve( "test$1.txt" ) ); IOUtil.copy( "Success", writer ); } finally @@ -568,7 +569,7 @@ private static void createAndCallScript( File dir, String content ) bat = new File( dir, "echo" ); } - Writer w = new FileWriter( bat ); + Writer w = Files.newBufferedWriter( bat.toPath() ); try { IOUtil.copy( content, w );