You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2020/04/26 18:23:00 UTC

[maven-assembly-plugin] 01/01: Apply try-with-resources

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch try-with-resources
in repository https://gitbox.apache.org/repos/asf/maven-assembly-plugin.git

commit cfe0355b7213fa67ec01d4a49f00e609e08c0ce2
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Apr 26 20:22:03 2020 +0200

    Apply try-with-resources
---
 .../archive/ManifestCreationFinalizer.java         | 13 +---
 .../filter/AbstractLineAggregatingHandler.java     | 31 ++------
 .../filter/ComponentsXmlArchiverFileFilter.java    | 24 +-----
 .../filter/SimpleAggregatingDescriptorHandler.java | 40 +++++-----
 .../plugins/assembly/io/DefaultAssemblyReader.java | 45 ++---------
 .../plugins/assembly/utils/LineEndingsUtils.java   | 89 +++++++++-------------
 6 files changed, 74 insertions(+), 168 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizer.java b/src/main/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizer.java
index dbd7627..cdda6f7 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizer.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizer.java
@@ -30,7 +30,6 @@ import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.jar.JarArchiver;
 import org.codehaus.plexus.archiver.jar.Manifest;
 import org.codehaus.plexus.archiver.jar.ManifestException;
-import org.codehaus.plexus.util.IOUtil;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -82,14 +81,10 @@ public class ManifestCreationFinalizer
 
                 if ( manifestFile != null )
                 {
-                    Reader manifestFileReader = null;
-                    try
+                    try ( Reader manifestFileReader =
+                        new InputStreamReader( new FileInputStream( manifestFile ), StandardCharsets.UTF_8 ) )
                     {
-                        manifestFileReader = new InputStreamReader( new FileInputStream( manifestFile ),
-                            StandardCharsets.UTF_8 );
                         manifest = new Manifest( manifestFileReader );
-                        manifestFileReader.close();
-                        manifestFileReader = null;
                     }
                     catch ( final FileNotFoundException e )
                     {
@@ -99,10 +94,6 @@ public class ManifestCreationFinalizer
                     {
                         throw new ArchiverException( "Error processing manifest: " + e.getMessage(), e );
                     }
-                    finally
-                    {
-                        IOUtil.close( manifestFileReader );
-                    }
                 }
                 else
                 {
diff --git a/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java b/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
index 49a16b9..12f1012 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
@@ -25,7 +25,6 @@ import org.codehaus.plexus.archiver.ArchiverException;
 import org.codehaus.plexus.archiver.ResourceIterator;
 import org.codehaus.plexus.archiver.UnArchiver;
 import org.codehaus.plexus.components.io.fileselectors.FileInfo;
-import org.codehaus.plexus.util.IOUtil;
 
 import javax.annotation.Nonnull;
 import java.io.BufferedReader;
@@ -80,21 +79,20 @@ abstract class AbstractLineAggregatingHandler
             final String name = entry.getKey();
             final String fname = new File( name ).getName();
 
-            PrintWriter writer = null;
             File f;
             try
             {
                 f = File.createTempFile( "assembly-" + fname, ".tmp" );
                 f.deleteOnExit();
 
-                writer = new PrintWriter( new OutputStreamWriter( new FileOutputStream( f ), getEncoding() ) );
-                for ( final String line : entry.getValue() )
+                try ( PrintWriter writer =
+                    new PrintWriter( new OutputStreamWriter( new FileOutputStream( f ), getEncoding() ) ) )
                 {
-                    writer.println( line );
+                    for ( final String line : entry.getValue() )
+                    {
+                        writer.println( line );
+                    }
                 }
-
-                writer.close();
-                writer = null;
             }
             catch ( final IOException e )
             {
@@ -102,10 +100,6 @@ abstract class AbstractLineAggregatingHandler
                     "Error adding aggregated content for: " + fname + " to finalize archive creation. Reason: "
                         + e.getMessage(), e );
             }
-            finally
-            {
-                IOUtil.close( writer );
-            }
 
             excludeOverride = true;
             archiver.addFile( f, name );
@@ -157,11 +151,9 @@ abstract class AbstractLineAggregatingHandler
     void readLines( final FileInfo fileInfo, final List<String> lines )
         throws IOException
     {
-        BufferedReader reader = null;
-        try
+        try ( BufferedReader reader =
+            new BufferedReader( new InputStreamReader( fileInfo.getContents(), getEncoding() ) ) )
         {
-            reader = new BufferedReader( new InputStreamReader( fileInfo.getContents(), getEncoding() ) );
-
             for ( String line = reader.readLine(); line != null; line = reader.readLine() )
             {
                 if ( !lines.contains( line ) )
@@ -169,13 +161,6 @@ abstract class AbstractLineAggregatingHandler
                     lines.add( line );
                 }
             }
-
-            reader.close();
-            reader = null;
-        }
-        finally
-        {
-            IOUtil.close( reader );
         }
     }
 
diff --git a/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java b/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
index a5b33b0..813da5f 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
@@ -27,7 +27,6 @@ import org.codehaus.plexus.archiver.ResourceIterator;
 import org.codehaus.plexus.archiver.UnArchiver;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.components.io.fileselectors.FileInfo;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.xml.Xpp3Dom;
 import org.codehaus.plexus.util.xml.Xpp3DomBuilder;
 import org.codehaus.plexus.util.xml.Xpp3DomWriter;
@@ -107,10 +106,9 @@ public class ComponentsXmlArchiverFileFilter
             final File f = File.createTempFile( "maven-assembly-plugin", "tmp" );
             f.deleteOnExit();
 
-            Writer fileWriter = null;
-            try
+            
+            try ( Writer fileWriter = WriterFactory.newXmlWriter( new FileOutputStream( f ) ) )
             {
-                fileWriter = WriterFactory.newXmlWriter( new FileOutputStream( f ) );
                 final Xpp3Dom dom = new Xpp3Dom( "component-set" );
                 final Xpp3Dom componentDom = new Xpp3Dom( "components" );
                 dom.addChild( componentDom );
@@ -121,13 +119,6 @@ public class ComponentsXmlArchiverFileFilter
                 }
 
                 Xpp3DomWriter.write( fileWriter, dom );
-
-                fileWriter.close();
-                fileWriter = null;
-            }
-            finally
-            {
-                IOUtil.close( fileWriter );
             }
 
             excludeOverride = true;
@@ -192,13 +183,9 @@ public class ComponentsXmlArchiverFileFilter
 
             if ( ComponentsXmlArchiverFileFilter.COMPONENTS_XML_PATH.equals( entry ) )
             {
-                Reader reader = null;
-                try
+                try ( Reader reader = new BufferedReader( ReaderFactory.newXmlReader( fileInfo.getContents() ) ) )
                 {
-                    reader = new BufferedReader( ReaderFactory.newXmlReader( fileInfo.getContents() ) );
                     addComponentsXml( reader );
-                    reader.close();
-                    reader = null;
                 }
                 catch ( final XmlPullParserException e )
                 {
@@ -207,11 +194,6 @@ public class ComponentsXmlArchiverFileFilter
 
                     throw error;
                 }
-                finally
-                {
-                    IOUtil.close( reader );
-                }
-
                 return false;
             }
             else
diff --git a/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java b/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
index ff39122..2fa7373 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
@@ -32,6 +32,7 @@ import org.codehaus.plexus.util.IOUtil;
 
 import javax.annotation.Nonnull;
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
@@ -103,44 +104,43 @@ public class SimpleAggregatingDescriptorHandler
     private File writePropertiesFile()
     {
         File f;
-
-        Writer writer = null;
         try
         {
             f = File.createTempFile( "maven-assembly-plugin", "tmp" );
             f.deleteOnExit();
 
-            writer = AssemblyFileUtils.isPropertyFile( f )
-                         ? new OutputStreamWriter( new FileOutputStream( f ), StandardCharsets.ISO_8859_1 )
-                         : new OutputStreamWriter( new FileOutputStream( f ) ); // Still platform encoding
-
-            writer.write( commentChars + " Aggregated on " + new Date() + " from: " );
-
-            for ( final String filename : filenames )
+            try ( Writer writer = getWriter( f ) )
             {
-                writer.write( "\n" + commentChars + " " + filename );
-            }
-
-            writer.write( "\n\n" );
+                writer.write( commentChars + " Aggregated on " + new Date() + " from: " );
 
-            writer.write( aggregateWriter.toString() );
+                for ( final String filename : filenames )
+                {
+                    writer.write( "\n" + commentChars + " " + filename );
+                }
 
-            writer.close();
-            writer = null;
+                writer.write( "\n\n" );
+                writer.write( aggregateWriter.toString() );
+            }
         }
         catch ( final IOException e )
         {
             throw new ArchiverException(
                 "Error adding aggregated properties to finalize archive creation. Reason: " + e.getMessage(), e );
         }
-        finally
-        {
-            IOUtil.close( writer );
-        }
 
         return f;
     }
 
+    private Writer getWriter( File f )
+        throws FileNotFoundException
+    {
+        Writer writer;
+        writer = AssemblyFileUtils.isPropertyFile( f )
+                     ? new OutputStreamWriter( new FileOutputStream( f ), StandardCharsets.ISO_8859_1 )
+                     : new OutputStreamWriter( new FileOutputStream( f ) ); // Still platform encoding
+        return writer;
+    }
+
     @Override
     public void finalizeArchiveExtraction( final UnArchiver unarchiver )
     {
diff --git a/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java b/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
index 2b695c7..a638d3c 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
@@ -19,7 +19,6 @@ package org.apache.maven.plugins.assembly.io;
  * under the License.
  */
 
-import org.apache.commons.io.IOUtils;
 import org.apache.maven.plugins.assembly.AssemblerConfigurationSource;
 import org.apache.maven.plugins.assembly.InvalidAssemblerConfigurationException;
 import org.apache.maven.plugins.assembly.interpolation.AssemblyExpressionEvaluator;
@@ -210,13 +209,9 @@ public class DefaultAssemblyReader
             }
         }
 
-        Reader reader = null;
-        try
+        try ( Reader reader = ReaderFactory.newXmlReader( resourceAsStream ) )
         {
-            reader = ReaderFactory.newXmlReader( resourceAsStream );
             final Assembly assembly = readAssembly( reader, ref, null, configSource );
-            reader.close();
-            reader = null;
             assemblies.add( assembly );
             return assembly;
         }
@@ -224,10 +219,6 @@ public class DefaultAssemblyReader
         {
             throw new AssemblyReadException( "Problem with descriptor with ID '" + ref + "'", e );
         }
-        finally
-        {
-            IOUtils.closeQuietly( reader );
-        }
     }
 
     private Assembly addAssemblyFromDescriptorFile( final File descriptor,
@@ -249,17 +240,11 @@ public class DefaultAssemblyReader
             }
         }
 
-        Reader r = null;
-        try
+        try ( Reader r = ReaderFactory.newXmlReader( descriptor ) )
         {
-            r = ReaderFactory.newXmlReader( descriptor );
-
             final Assembly assembly =
                 readAssembly( r, descriptor.getAbsolutePath(), descriptor.getParentFile(), configSource );
 
-            r.close();
-            r = null;
-
             assemblies.add( assembly );
 
             return assembly;
@@ -268,10 +253,6 @@ public class DefaultAssemblyReader
         {
             throw new AssemblyReadException( "Error reading assembly descriptor: " + descriptor, e );
         }
-        finally
-        {
-            IOUtil.close( r );
-        }
     }
 
     private Assembly addAssemblyFromDescriptor( final String spec, final Locator locator,
@@ -296,11 +277,9 @@ public class DefaultAssemblyReader
             }
         }
 
-        Reader r = null;
-        try
+        
+        try ( Reader r = ReaderFactory.newXmlReader( location.getInputStream() ) )
         {
-            r = ReaderFactory.newXmlReader( location.getInputStream() );
-
             File dir = null;
             if ( location.getFile() != null )
             {
@@ -309,9 +288,6 @@ public class DefaultAssemblyReader
 
             final Assembly assembly = readAssembly( r, spec, dir, configSource );
 
-            r.close();
-            r = null;
-
             assemblies.add( assembly );
 
             return assembly;
@@ -320,11 +296,6 @@ public class DefaultAssemblyReader
         {
             throw new AssemblyReadException( "Error reading assembly descriptor: " + spec, e );
         }
-        finally
-        {
-            IOUtil.close( r );
-        }
-
     }
 
     public Assembly readAssembly( Reader reader, final String locationDescription, final File assemblyDir,
@@ -443,10 +414,8 @@ public class DefaultAssemblyReader
             }
 
             Component component = null;
-            Reader reader = null;
-            try
+            try ( Reader reader = new InputStreamReader( resolvedLocation.getInputStream() ) )
             {
-                reader = new InputStreamReader( resolvedLocation.getInputStream() );
                 component = new ComponentXpp3Reader( transformer ).read( reader );
             }
             catch ( final IOException | XmlPullParserException e )
@@ -454,10 +423,6 @@ public class DefaultAssemblyReader
                 throw new AssemblyReadException( "Error reading component descriptor: " + location + " (resolved to: "
                     + resolvedLocation.getSpecification() + ")", e );
             }
-            finally
-            {
-                IOUtil.close( reader );
-            }
 
             mergeComponentWithAssembly( component, assembly );
         }
diff --git a/src/main/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtils.java b/src/main/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtils.java
index 3ae2eb1..e69f4e8 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtils.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/utils/LineEndingsUtils.java
@@ -19,12 +19,6 @@ package org.apache.maven.plugins.assembly.utils;
  * under the License.
  */
 
-import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
-import org.codehaus.plexus.util.IOUtil;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -36,6 +30,11 @@ import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;
 import java.io.RandomAccessFile;
 
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import org.apache.maven.plugins.assembly.format.AssemblyFormattingException;
+
 /**
  * Line Ending class which contains convenience methods to change line endings.
  */
@@ -62,7 +61,7 @@ public final class LineEndingsUtils
      * @throws IOException .
      */
     public static void convertLineEndings( @Nonnull File source, @Nonnull File dest, LineEndings lineEndings,
-                                           Boolean atEndOfFile, String encoding )
+                                           final Boolean atEndOfFile, String encoding )
         throws IOException
     {
         // MASSEMBLY-637, MASSEMBLY-96
@@ -72,12 +71,10 @@ public final class LineEndingsUtils
         String eofChars = "";
         if ( atEndOfFile == null )
         {
-            RandomAccessFile raf = null;
-            try
+            if ( source.length() >= 1 )
             {
-                if ( source.length() >= 1 )
+                try ( RandomAccessFile raf = new RandomAccessFile( source, "r" ) )
                 {
-                    raf = new RandomAccessFile( source, "r" );
                     raf.seek( source.length() - 1 );
                     byte last = raf.readByte();
                     if ( last == '\n' )
@@ -86,46 +83,16 @@ public final class LineEndingsUtils
                     }
                 }
             }
-            finally
-            {
-                if ( raf != null )
-                {
-                    try
-                    {
-                        raf.close();
-                    }
-                    catch ( IOException ex )
-                    {
-                        // ignore
-                    }
-                }
-            }
         }
         else if ( atEndOfFile )
         {
             eofChars = lineEndings.getLineEndingCharacters();
         }
 
-        BufferedReader in = null;
-        BufferedWriter out = null;
-        try
+        try ( BufferedReader in = getBufferedReader( source, encoding );
+              BufferedWriter out = getBufferedWriter( dest, encoding ) )
         {
-            if ( encoding == null )
-            {
-                // platform encoding
-                in = new BufferedReader( new InputStreamReader( new FileInputStream( source ) ) );
-                out = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( dest ) ) );
-            }
-            else
-            {
-                // MASSEMBLY-371
-                in = new BufferedReader( new InputStreamReader( new FileInputStream( source ), encoding ) );
-                out = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( dest ), encoding ) );
-            }
-
-            String line;
-
-            line = in.readLine();
+            String line = in.readLine();
             while ( line != null )
             {
                 out.write( line );
@@ -139,16 +106,34 @@ public final class LineEndingsUtils
                     out.write( eofChars );
                 }
             }
+        }
+    }
 
-            out.close();
-            out = null;
-            in.close();
-            in = null;
+    private static BufferedReader getBufferedReader( File source, String encoding ) throws IOException
+    {
+        if ( encoding == null )
+        {
+            // platform encoding
+            return new BufferedReader( new InputStreamReader( new FileInputStream( source ) ) );
         }
-        finally
+        else
         {
-            IOUtil.close( in );
-            IOUtil.close( out );
+            // MASSEMBLY-371
+            return new BufferedReader( new InputStreamReader( new FileInputStream( source ), encoding ) );
+        }
+    }
+
+    private static BufferedWriter getBufferedWriter( File dest, String encoding ) throws IOException
+    {
+        if ( encoding == null )
+        {
+            // platform encoding
+            return new BufferedWriter( new OutputStreamWriter( new FileOutputStream( dest ) ) );
+        }
+        else
+        {
+            // MASSEMBLY-371
+            return new BufferedWriter( new OutputStreamWriter( new FileOutputStream( dest ), encoding ) );
         }
     }
 
@@ -200,12 +185,10 @@ public final class LineEndingsUtils
     public static String getLineEndingCharacters( @Nullable String lineEnding )
         throws AssemblyFormattingException
     {
-
         String value = lineEnding;
 
         if ( lineEnding != null )
         {
-
             try
             {
                 value = LineEndings.valueOf( lineEnding ).getLineEndingCharacters();