Apply try-with-resources and multi-catch
diff --git a/src/main/java/org/apache/maven/shared/verifier/Embedded3xLauncher.java b/src/main/java/org/apache/maven/shared/verifier/Embedded3xLauncher.java
index 699be36..8979a23 100644
--- a/src/main/java/org/apache/maven/shared/verifier/Embedded3xLauncher.java
+++ b/src/main/java/org/apache/maven/shared/verifier/Embedded3xLauncher.java
@@ -107,27 +107,7 @@
 
             return new Embedded3xLauncher( mavenCli, doMain );
         }
-        catch ( ClassNotFoundException e )
-        {
-            throw new LauncherException( "Invalid Maven home directory " + mavenHome, e );
-        }
-        catch ( InstantiationException e )
-        {
-            throw new LauncherException( "Invalid Maven home directory " + mavenHome, e );
-        }
-        catch ( IllegalAccessException e )
-        {
-            throw new LauncherException( "Invalid Maven home directory " + mavenHome, e );
-        }
-        catch ( NoSuchMethodException e )
-        {
-            throw new LauncherException( "Invalid Maven home directory " + mavenHome, e );
-        }
-        catch ( InvocationTargetException e )
-        {
-            throw new LauncherException( "Invalid Maven home directory " + mavenHome, e );
-        }
-        catch ( IOException e )
+        catch ( ReflectiveOperationException | IOException e )
         {
             throw new LauncherException( "Invalid Maven home directory " + mavenHome, e );
         }
@@ -157,19 +137,7 @@
 
             return new Embedded3xLauncher( mavenCli, doMain );
         }
-        catch ( ClassNotFoundException e )
-        {
-            throw new LauncherException( e.getMessage(), e );
-        }
-        catch ( NoSuchMethodException e )
-        {
-            throw new LauncherException( e.getMessage(), e );
-        }
-        catch ( InstantiationException e )
-        {
-            throw new LauncherException( e.getMessage(), e );
-        }
-        catch ( IllegalAccessException e )
+        catch ( ReflectiveOperationException e )
         {
             throw new LauncherException( e.getMessage(), e );
         }
@@ -255,11 +223,7 @@
                 System.setProperties( originalProperties );
             }
         }
-        catch ( IllegalAccessException e )
-        {
-            throw new LauncherException( "Failed to run Maven: " + e.getMessage(), e );
-        }
-        catch ( InvocationTargetException e )
+        catch ( IllegalAccessException | InvocationTargetException e )
         {
             throw new LauncherException( "Failed to run Maven: " + e.getMessage(), e );
         }
diff --git a/src/main/java/org/apache/maven/shared/verifier/Verifier.java b/src/main/java/org/apache/maven/shared/verifier/Verifier.java
index 3981d71..e9c96f4 100644
--- a/src/main/java/org/apache/maven/shared/verifier/Verifier.java
+++ b/src/main/java/org/apache/maven/shared/verifier/Verifier.java
@@ -50,8 +50,6 @@
 import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
-import junit.framework.Assert;
-
 import org.apache.maven.shared.utils.StringUtils;
 import org.apache.maven.shared.utils.cli.CommandLineException;
 import org.apache.maven.shared.utils.cli.CommandLineUtils;
@@ -59,7 +57,7 @@
 import org.apache.maven.shared.utils.cli.StreamConsumer;
 import org.apache.maven.shared.utils.cli.WriterStreamConsumer;
 import org.apache.maven.shared.utils.io.FileUtils;
-import org.apache.maven.shared.utils.io.IOUtil;
+import org.junit.Assert;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
@@ -341,15 +339,10 @@
             File propertiesFile = new File( getBasedir(), filename );
             if ( propertiesFile.exists() )
             {
-                FileInputStream fis = new FileInputStream( propertiesFile );
-                try
+                try ( FileInputStream fis = new FileInputStream( propertiesFile ) ) 
                 {
                     properties.load( fis );
                 }
-                finally
-                {
-                    fis.close();
-                }
             }
         }
         catch ( FileNotFoundException e )
@@ -379,20 +372,8 @@
     {
         List<String> lines = new ArrayList<String>();
 
-        File file = new File( getBasedir(), filename );
-
-        BufferedReader reader = null;
-        try
+        try ( BufferedReader reader = getReader( filename, encoding ) )
         {
-            if ( StringUtils.isNotEmpty( encoding ) )
-            {
-                reader = new BufferedReader( new InputStreamReader( new FileInputStream( file ), encoding ) );
-            }
-            else
-            {
-                reader = new BufferedReader( new FileReader( file ) );
-            }
-
             String line;
             while ( ( line = reader.readLine() ) != null )
             {
@@ -402,14 +383,24 @@
                 }
             }
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
 
         return lines;
     }
 
+    private BufferedReader getReader( String filename, String encoding ) throws IOException
+    {
+        File file = new File( getBasedir(), filename );
+
+        if ( StringUtils.isNotEmpty( encoding ) )
+        {
+            return new BufferedReader( new InputStreamReader( new FileInputStream( file ), encoding ) );
+        }
+        else
+        {
+            return new BufferedReader( new FileReader( file ) );
+        }
+    }
+
     public List<String> loadFile( String basedir, String filename, boolean hasCommand )
         throws VerificationException
     {
@@ -421,14 +412,10 @@
     {
         List<String> lines = new ArrayList<String>();
 
-        BufferedReader reader = null;
-
         if ( file.exists() )
         {
-            try
+            try ( BufferedReader reader = new BufferedReader( new FileReader( file ) ) )
             {
-                reader = new BufferedReader( new FileReader( file ) );
-
                 String line = reader.readLine();
 
                 while ( line != null )
@@ -441,8 +428,6 @@
                     }
                     line = reader.readLine();
                 }
-
-                reader.close();
             }
             catch ( FileNotFoundException e )
             {
@@ -452,10 +437,6 @@
             {
                 throw new VerificationException( e );
             }
-            finally
-            {
-                IOUtil.close( reader );
-            }
         }
 
         return lines;
@@ -798,23 +779,22 @@
 
             cli.setWorkingDirectory( basedir );
 
-            Writer logWriter = new FileWriter( new File( basedir, LOG_FILENAME ) );
-
-            StreamConsumer out = new WriterStreamConsumer( logWriter );
-
-            StreamConsumer err = new WriterStreamConsumer( logWriter );
-
-            System.out.println( "Command: " + CommandLineUtils.toString( cli.getCommandline() ) );
-
-            int ret = CommandLineUtils.executeCommandLine( cli, out, err );
-
-            logWriter.close();
-
-            if ( ret > 0 )
+            try ( Writer logWriter = new FileWriter( new File( basedir, LOG_FILENAME ) ) ) 
             {
-                System.err.println( "Exit code: " + ret );
+                StreamConsumer out = new WriterStreamConsumer( logWriter );
 
-                throw new VerificationException();
+                StreamConsumer err = new WriterStreamConsumer( logWriter );
+
+                System.out.println( "Command: " + CommandLineUtils.toString( cli.getCommandline() ) );
+
+                int ret = CommandLineUtils.executeCommandLine( cli, out, err );
+
+                if ( ret > 0 )
+                {
+                    System.err.println( "Exit code: " + ret );
+
+                    throw new VerificationException();
+                }
             }
         }
         catch ( CommandLineException e )
@@ -1529,30 +1509,22 @@
     private void displayLogFile()
     {
         System.out.println( "Log file contents:" );
-        BufferedReader reader = null;
-        try
+
+        try ( BufferedReader reader = 
+                        new BufferedReader( new FileReader( new File( getBasedir(), getLogFileName() ) ) ) )
         {
-            reader = new BufferedReader( new FileReader( new File( getBasedir(), getLogFileName() ) ) );
             String line = reader.readLine();
+            
             while ( line != null )
             {
                 System.out.println( line );
                 line = reader.readLine();
             }
-            reader.close();
-        }
-        catch ( FileNotFoundException e )
-        {
-            System.err.println( "Error: " + e );
         }
         catch ( IOException e )
         {
             System.err.println( "Error: " + e );
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
     }
 
     // ----------------------------------------------------------------------