You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2020/03/11 20:44:26 UTC

[maven-shared-utils] branch MSHARED-826 updated (392c19c -> 328fbf5)

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

slachiewicz pushed a change to branch MSHARED-826
in repository https://gitbox.apache.org/repos/asf/maven-shared-utils.git.


 discard 392c19c  [MSHARED-826] Apply Java 7 syntax
     add 4827543  Move newline for prettier print
     add 7d20101  [MSHARED-847] - Upgrade commons-io to 2.6
     add 29fddbc  docs: grammar
     add fec0848  Merge pull request #8 from apache/elharo-patch-1
     add 5f0ea24  [MSHARED-803] set names on threads (#15)
     add 5769481  [MSHARED-685] assert some things (#16)
     add da96cb4  docs: fix issues URL (#14)
     add 4c422c2  docs: this project does have further dependencies (#13)
     add 2e3bcac  deps: update JUnit
     add a950ff4  remove unreachable code (#17)
     add 663aa80  remove info about what's not here (#19)
     add 8ed3e68  remove unreferenced non-public class (#18)
     new 328fbf5  [MSHARED-826] Apply Java 7 syntax

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (392c19c)
            \
             N -- N -- N   refs/heads/MSHARED-826 (328fbf5)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 pom.xml                                            |    8 +-
 .../java/org/apache/maven/shared/utils/Expand.java |  213 ----
 .../maven/shared/utils/cli/CommandLineUtils.java   |    3 +
 .../apache/maven/shared/utils/package-info.java    |   36 -
 .../maven/shared/utils/reflection/Reflector.java   |  535 ---------
 .../utils/reflection/ReflectorException.java       |   70 --
 .../shared/utils/xml/PrettyPrintXMLWriter.java     |    2 +-
 src/site/apt/index.apt.vm                          |    8 +-
 .../org/apache/maven/shared/utils/ExpandTest.java  |  336 ------
 .../shared/utils/io/DirectoryScannerTest.java      |   20 +-
 .../shared/utils/reflection/ReflectorTest.java     | 1232 --------------------
 .../utils/reflection/ReflectorTestHelper.java      |  119 --
 12 files changed, 24 insertions(+), 2558 deletions(-)
 delete mode 100644 src/main/java/org/apache/maven/shared/utils/Expand.java
 delete mode 100644 src/main/java/org/apache/maven/shared/utils/package-info.java
 delete mode 100644 src/main/java/org/apache/maven/shared/utils/reflection/Reflector.java
 delete mode 100644 src/main/java/org/apache/maven/shared/utils/reflection/ReflectorException.java
 delete mode 100644 src/test/java/org/apache/maven/shared/utils/ExpandTest.java
 delete mode 100644 src/test/java/org/apache/maven/shared/utils/reflection/ReflectorTest.java
 delete mode 100644 src/test/java/org/apache/maven/shared/utils/reflection/ReflectorTestHelper.java


[maven-shared-utils] 01/01: [MSHARED-826] Apply Java 7 syntax

Posted by sl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

slachiewicz pushed a commit to branch MSHARED-826
in repository https://gitbox.apache.org/repos/asf/maven-shared-utils.git

commit 328fbf5da1220cb17017a49b2b6c39998b964da9
Author: rfscholte <rf...@apache.org>
AuthorDate: Wed Jun 12 20:26:18 2019 +0200

    [MSHARED-826] Apply Java 7 syntax
---
 .../org/apache/maven/shared/utils/PathTool.java    |   4 +
 .../apache/maven/shared/utils/PropertyUtils.java   |  92 +++-----
 .../org/apache/maven/shared/utils/StringUtils.java |   7 +-
 .../apache/maven/shared/utils/WriterFactory.java   |   1 -
 .../shared/utils/cli/CommandLineCallable.java      |   4 +-
 .../shared/utils/cli/CommandLineException.java     |   1 -
 .../utils/cli/CommandLineTimeOutException.java     |   1 -
 .../maven/shared/utils/cli/CommandLineUtils.java   |  12 +-
 .../apache/maven/shared/utils/cli/Commandline.java |  35 +---
 .../maven/shared/utils/cli/DefaultConsumer.java    |   5 -
 .../maven/shared/utils/cli/StreamFeeder.java       |   1 -
 .../maven/shared/utils/cli/StreamPumper.java       |   1 +
 .../shared/utils/cli/WriterStreamConsumer.java     |   4 -
 .../utils/cli/javatool/AbstractJavaTool.java       |  50 +----
 .../cli/javatool/AbstractJavaToolRequest.java      |  16 +-
 .../utils/cli/javatool/JavaToolException.java      |   1 -
 .../maven/shared/utils/cli/shell/BourneShell.java  |  12 +-
 .../maven/shared/utils/cli/shell/CmdShell.java     |   1 +
 .../apache/maven/shared/utils/cli/shell/Shell.java |   4 +-
 .../maven/shared/utils/introspection/ClassMap.java |   3 +-
 .../shared/utils/introspection/MethodMap.java      |   9 +-
 .../introspection/ReflectionValueExtractor.java    |   1 -
 .../shared/utils/io/DirectoryWalkListener.java     |   2 -
 .../maven/shared/utils/io/DirectoryWalker.java     |   8 +-
 .../apache/maven/shared/utils/io/FileUtils.java    | 233 ++++++---------------
 .../org/apache/maven/shared/utils/io/IOUtil.java   |  15 ++
 .../apache/maven/shared/utils/io/Java7Support.java | 171 +++------------
 .../maven/shared/utils/io/WalkCollector.java       |  10 +-
 .../shared/utils/logging/AnsiMessageBuilder.java   |  17 ++
 .../shared/utils/logging/PlainMessageBuilder.java  |  17 ++
 .../shared/utils/xml/PrettyPrintXMLWriter.java     |  14 +-
 .../maven/shared/utils/xml/XmlStreamReader.java    |   4 +-
 .../maven/shared/utils/xml/XmlWriterUtil.java      |   3 +-
 .../org/apache/maven/shared/utils/xml/Xpp3Dom.java |   8 +-
 .../maven/shared/utils/xml/Xpp3DomBuilder.java     |  21 +-
 .../maven/shared/utils/xml/Xpp3DomUtils.java       |   2 +-
 .../ReflectionValueExtractorTest.java              |   2 +-
 .../shared/utils/testhelpers/ExceptionHelper.java  |   2 +
 .../shared/utils/xml/PrettyPrintXmlWriterTest.java |   1 -
 .../maven/shared/utils/xml/XmlWriterUtilTest.java  |   3 +-
 40 files changed, 253 insertions(+), 545 deletions(-)

diff --git a/src/main/java/org/apache/maven/shared/utils/PathTool.java b/src/main/java/org/apache/maven/shared/utils/PathTool.java
index b616211..a273f14 100644
--- a/src/main/java/org/apache/maven/shared/utils/PathTool.java
+++ b/src/main/java/org/apache/maven/shared/utils/PathTool.java
@@ -20,6 +20,7 @@ package org.apache.maven.shared.utils;
  */
 
 import java.io.File;
+import java.nio.file.Path;
 import java.util.StringTokenizer;
 
 import javax.annotation.Nonnull;
@@ -32,7 +33,10 @@ import javax.annotation.Nullable;
  * This class originally got developed at Apache Anakia and later maintained
  * in maven-utils of Apache Maven-1.
  * Some external fixes by Apache Committers have been applied later.
+ * 
+ * @deprecated Use {@link Path} instead
  */
+@Deprecated
 public class PathTool
 {
     /**
diff --git a/src/main/java/org/apache/maven/shared/utils/PropertyUtils.java b/src/main/java/org/apache/maven/shared/utils/PropertyUtils.java
index 4c211d5..6eed0ac 100644
--- a/src/main/java/org/apache/maven/shared/utils/PropertyUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/PropertyUtils.java
@@ -29,8 +29,6 @@ import java.util.Properties;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import org.apache.maven.shared.utils.io.IOUtil;
-
 /**
  *
  */
@@ -108,7 +106,7 @@ public class PropertyUtils
             Properties result = new Properties();
             if ( is != null )
             {
-                try
+                try ( InputStream in = is )
                 {
                     result.load( is );
                 }
@@ -123,10 +121,6 @@ public class PropertyUtils
         {
             // ignore
         }
-        finally
-        {
-            IOUtil.close( is );
-        }
         return null;
     }
 
@@ -145,29 +139,21 @@ public class PropertyUtils
      */
     @Nonnull public static Properties loadOptionalProperties( final @Nullable URL url )
     {
-        InputStream in = null;
-        try
-        {
-            final Properties properties = new Properties();
+        final Properties properties = new Properties();
 
-            if ( url != null )
+        if ( url != null )
+        {
+            try ( InputStream in = url.openStream() ) 
             {
-                in = url.openStream();
                 properties.load( in );
-                in.close();
-                in = null;
             }
-
-            return properties;
-        }
-        catch ( final IOException e )
-        {
-            throw new AssertionError( e );
-        }
-        finally
-        {
-            IOUtil.close( in );
+            catch ( final IOException e )
+            {
+                throw new AssertionError( e );
+            }
         }
+
+        return properties;
     }
 
     /**
@@ -185,29 +171,21 @@ public class PropertyUtils
      */
     @Nonnull public static Properties loadOptionalProperties( final @Nullable File file )
     {
-        InputStream in = null;
-        try
-        {
-            final Properties properties = new Properties();
+        final Properties properties = new Properties();
 
-            if ( file != null )
+        if ( file != null )
+        {
+            try ( InputStream in = new FileInputStream( file ) ) 
             {
-                in = new FileInputStream( file );
                 properties.load( in );
-                in.close();
-                in = null;
             }
-
-            return properties;
-        }
-        catch ( final IOException e )
-        {
-            throw new AssertionError( e );
-        }
-        finally
-        {
-            IOUtil.close( in );
+            catch ( final IOException e )
+            {
+                throw new AssertionError( e );
+            }
         }
+
+        return properties;
     }
 
     /**
@@ -225,29 +203,21 @@ public class PropertyUtils
      */
     @Nonnull public static Properties loadOptionalProperties( final @Nullable InputStream inputStream )
     {
-        InputStream in = null;
-        try
-        {
-            final Properties properties = new Properties();
+        final Properties properties = new Properties();
 
-            if ( inputStream != null )
+        if ( inputStream != null )
+        {
+            try ( InputStream in = inputStream ) 
             {
-                in = inputStream;
                 properties.load( in );
-                in.close();
-                in = null;
             }
-
-            return properties;
-        }
-        catch ( final IOException e )
-        {
-            throw new AssertionError( e );
-        }
-        finally
-        {
-            IOUtil.close( in );
+            catch ( final IOException e )
+            {
+                throw new AssertionError( e );
+            }
         }
+
+        return properties;
     }
 
 }
diff --git a/src/main/java/org/apache/maven/shared/utils/StringUtils.java b/src/main/java/org/apache/maven/shared/utils/StringUtils.java
index 6b9a55a..b6b92c4 100644
--- a/src/main/java/org/apache/maven/shared/utils/StringUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/StringUtils.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.StringTokenizer;
 
 import javax.annotation.Nonnull;
@@ -49,8 +50,6 @@ import javax.annotation.Nullable;
  * @author <a href="mailto:fredrik@westermarck.com">Fredrik Westermarck</a>
  * @author Holger Krauth
  * @author <a href="mailto:alex@purpletech.com">Alexander Day Chaffee</a>
- * @version $Id$
- * 
  */
 public class StringUtils
 {
@@ -1890,7 +1889,7 @@ public class StringUtils
      */
     @Nonnull public static String defaultString( Object obj )
     {
-        return defaultString( obj, "" );
+        return Objects.toString( obj, "" );
     }
 
     /**
@@ -1906,7 +1905,7 @@ public class StringUtils
      */
     @Nonnull public static String defaultString( Object obj, @Nonnull String defaultString )
     {
-        return ( obj == null ) ? defaultString : obj.toString();
+        return Objects.toString( obj, defaultString );
     }
 
     // Reversing
diff --git a/src/main/java/org/apache/maven/shared/utils/WriterFactory.java b/src/main/java/org/apache/maven/shared/utils/WriterFactory.java
index 7e33c8f..fb2f213 100644
--- a/src/main/java/org/apache/maven/shared/utils/WriterFactory.java
+++ b/src/main/java/org/apache/maven/shared/utils/WriterFactory.java
@@ -40,7 +40,6 @@ import javax.annotation.Nonnull;
  * @author Hervé Boutemy
  * @see java.nio.charset.Charset
  * @see <a href="http://docs.oracle.com/javase/1.5.0/docs/guide/intl/encoding.doc.html">Supported encodings</a>
- * @version $Id$
  */
 public class WriterFactory
 {
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineCallable.java b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineCallable.java
index b4e4586..1a54b27 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineCallable.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineCallable.java
@@ -29,9 +29,7 @@ import java.util.concurrent.Callable;
 public interface CommandLineCallable
     extends Callable<Integer>
 {
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     Integer call()
         throws CommandLineException;
 }
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineException.java b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineException.java
index 77a50ee..9954e35 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineException.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineException.java
@@ -21,7 +21,6 @@ package org.apache.maven.shared.utils.cli;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
- * @version $Id$
  */
 public class CommandLineException
     extends Exception
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineTimeOutException.java b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineTimeOutException.java
index 5d83494..c1f8209 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineTimeOutException.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineTimeOutException.java
@@ -21,7 +21,6 @@ package org.apache.maven.shared.utils.cli;
 
 /**
  * @author Olivier Lamy
- * @version $Id$
  * 
  */
 public class CommandLineTimeOutException
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
index 904ecb9..626d565 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/CommandLineUtils.java
@@ -36,7 +36,6 @@ import org.apache.maven.shared.utils.StringUtils;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l </a>
- * @version $Id$
  */
 public abstract class CommandLineUtils
 {
@@ -50,17 +49,12 @@ public abstract class CommandLineUtils
         implements StreamConsumer
     {
 
-        private final StringBuffer string = new StringBuffer();
-
-        private static final String LS = System.getProperty( "line.separator", "\n" );
-
-        /**
-         * {@inheritDoc}
-         */
+        private final StringBuilder string = new StringBuilder();
+       
         @Override
         public void consumeLine( String line )
         {
-            string.append( line ).append( LS );
+            string.append( line ).append( System.lineSeparator() );
         }
 
         /**
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java b/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java
index db13770..75606e7 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/Commandline.java
@@ -28,7 +28,6 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
-import java.util.Vector;
 
 import org.apache.maven.shared.utils.Os;
 import org.apache.maven.shared.utils.StringUtils;
@@ -68,7 +67,7 @@ import org.apache.maven.shared.utils.cli.shell.Shell;
 public class Commandline
     implements Cloneable
 {
-    private final List<Arg> arguments = new Vector<Arg>();
+    private final List<Argument> arguments = new ArrayList<>();
 
     //protected Vector envVars = new Vector();
     // synchronized added to preserve synchronize of Vector class
@@ -96,7 +95,7 @@ public class Commandline
     {
         setDefaultShell();
         String[] tmp = CommandLineUtils.translateCommandline( toProcess );
-        if ( ( tmp.length > 0 ) )
+        if ( tmp.length > 0 )
         {
             setExecutable( tmp[0] );
             for ( int i = 1; i < tmp.length; i++ )
@@ -165,7 +164,7 @@ public class Commandline
      */
     public Arg createArg( boolean insertAtStart )
     {
-        Arg argument = new Argument();
+        Argument argument = new Argument();
         if ( insertAtStart )
         {
             arguments.add( 0, argument );
@@ -309,10 +308,9 @@ public class Commandline
      */
     public String[] getArguments( boolean mask )
     {
-        List<String> result = new ArrayList<String>( arguments.size() * 2 );
-        for ( Arg argument : arguments )
+        List<String> result = new ArrayList<>( arguments.size() * 2 );
+        for ( Argument arg : arguments )
         {
-            Argument arg = (Argument) argument;
             String[] s = arg.getParts();
             if ( s != null )
             {
@@ -335,16 +333,13 @@ public class Commandline
         return result.toArray( new String[result.size()] );
     }
 
-    /** {@inheritDoc}
-     */
+    @Override
     public String toString()
     {
         return StringUtils.join( getShellCommandline( true ), " " );
     }
 
-
-    /** {@inheritDoc}
-     */
+    @Override
     public Object clone()
     {
         throw new RuntimeException( "Do we ever clone a commandline?" );
@@ -462,9 +457,7 @@ public class Commandline
 
         private boolean mask;
 
-        /**
-         * {@inheritDoc}
-         */
+        @Override
         public void setValue( String value )
         {
             if ( value != null )
@@ -473,9 +466,7 @@ public class Commandline
             }
         }
 
-        /**
-         * {@inheritDoc}
-         */
+        @Override
         public void setLine( String line ) throws CommandLineException
         {
             if ( line == null )
@@ -493,17 +484,13 @@ public class Commandline
             }
         }
 
-        /**
-         * {@inheritDoc}
-         */
+        @Override
         public void setFile( File value )
         {
             parts = new String[]{ value.getAbsolutePath() };
         }
 
-        /**
-         * {@inheritDoc}
-         */
+        @Override
         public void setMask( boolean mask )
         {
             this.mask = mask;
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java b/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
index 5104877..ad33a55 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/DefaultConsumer.java
@@ -23,15 +23,10 @@ import java.io.IOException;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
- * @version $Id$
  */
 public class DefaultConsumer
     implements StreamConsumer
 {
-
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void consumeLine( String line ) throws IOException
     {
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/StreamFeeder.java b/src/main/java/org/apache/maven/shared/utils/cli/StreamFeeder.java
index 26e9de3..6f6723c 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/StreamFeeder.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/StreamFeeder.java
@@ -28,7 +28,6 @@ import java.util.concurrent.atomic.AtomicReference;
  * Read from an InputStream and write the output to an OutputStream.
  *
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
- * @version $Id$
  */
 class StreamFeeder
     extends AbstractStreamHandler
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java b/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
index 980bfb6..052b980 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/StreamPumper.java
@@ -75,6 +75,7 @@ public class StreamPumper
     }
 
     /** run it. */
+    @Override
     public void run()
     {
         try
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java b/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
index f8ce0d8..ec90ff3 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/WriterStreamConsumer.java
@@ -25,7 +25,6 @@ import java.io.Writer;
 
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
- * @version $Id$
  */
 public class WriterStreamConsumer
     implements StreamConsumer
@@ -42,9 +41,6 @@ public class WriterStreamConsumer
         this.writer = new BufferedWriter( writer );
     }
 
-    /**
-     * {@inheritDoc}
-     */
     @Override
     public void consumeLine( String line ) throws IOException
     {
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java b/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
index 2282680..dbbc6c7 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaTool.java
@@ -29,7 +29,6 @@ import org.codehaus.plexus.logging.AbstractLogEnabled;
 
 import java.io.File;
 import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Map;
 
@@ -79,25 +78,19 @@ public abstract class AbstractJavaTool<Request extends JavaToolRequest>
     protected abstract Commandline createCommandLine( Request request, String javaToolFileLocation )
         throws JavaToolException;
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public String getJavaToolName()
     {
         return javaToolName;
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public void setToolchain( Object toolchain )
     {
         this.toolchain = toolchain;
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public JavaToolResult execute( Request request )
         throws JavaToolException
     {
@@ -134,10 +127,7 @@ public abstract class AbstractJavaTool<Request extends JavaToolRequest>
     {
         InputStream systemIn = new InputStream()
         {
-
-            /**
-             * {@inheritDoc}
-             */
+            @Override
             public int read()
             {
                 return -1;
@@ -195,10 +185,6 @@ public abstract class AbstractJavaTool<Request extends JavaToolRequest>
         {
             systemErr = new StreamConsumer()
             {
-
-                /**
-                 * {@inheritDoc}
-                 */
                 @Override
                 public void consumeLine( final String line )
                 {
@@ -223,10 +209,6 @@ public abstract class AbstractJavaTool<Request extends JavaToolRequest>
 
             systemOut = new StreamConsumer()
             {
-
-                /**
-                 * {@inheritDoc}
-                 */
                 @Override
                 public void consumeLine( final String line )
                 {
@@ -302,30 +284,10 @@ public abstract class AbstractJavaTool<Request extends JavaToolRequest>
             Method m = toolchain.getClass().getMethod( "findTool", String.class );
             return (String) m.invoke( toolchain, javaToolName );
         }
-        catch ( NoSuchMethodException e )
+        catch ( ReflectiveOperationException | SecurityException | IllegalArgumentException e )
         {
             // should not happen if toolchain is really a Toolchain object
-            getLogger().warn( "unexpected NoSuchMethodException", e );
-        }
-        catch ( SecurityException e )
-        {
-            // should not happen
-            getLogger().warn( "unexpected SecurityException", e );
-        }
-        catch ( IllegalAccessException e )
-        {
-            // should not happen
-            getLogger().warn( "unexpected IllegalAccessException", e );
-        }
-        catch ( IllegalArgumentException e )
-        {
-            // should not happen: parameter is the right type
-            getLogger().warn( "unexpected IllegalArgumentException", e );
-        }
-        catch ( InvocationTargetException e )
-        {
-            // not expected...
-            getLogger().warn( "unexpected InvocationTargetException", e );
+            getLogger().warn( "unexpected exception", e );
         }
         return null;
     }
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaToolRequest.java b/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaToolRequest.java
index 6e18178..7efaccc 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaToolRequest.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/javatool/AbstractJavaToolRequest.java
@@ -41,33 +41,25 @@ public class AbstractJavaToolRequest
      */
     private StreamConsumer systemErrorStreamConsumer;
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public StreamConsumer getSystemOutStreamConsumer()
     {
         return systemOutStreamConsumer;
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public StreamConsumer getSystemErrorStreamConsumer()
     {
         return systemErrorStreamConsumer;
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public void setSystemOutStreamConsumer( StreamConsumer systemOutStreamConsumer )
     {
         this.systemOutStreamConsumer = systemOutStreamConsumer;
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public void setSystemErrorStreamConsumer( StreamConsumer systemErrorStreamConsumer )
     {
         this.systemErrorStreamConsumer = systemErrorStreamConsumer;
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java b/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java
index 6b6946c..5ff0af9 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/javatool/JavaToolException.java
@@ -27,7 +27,6 @@ package org.apache.maven.shared.utils.cli.javatool;
  * non-zero exit code.
  *
  * @author Tony Chemit <ch...@codelutin.com>
- * @version $Id$
  * @see JavaToolResult#getExitCode()
  * @since 0.5
  */
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/shell/BourneShell.java b/src/main/java/org/apache/maven/shared/utils/cli/shell/BourneShell.java
index 1793cbb..60138c3 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/shell/BourneShell.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/shell/BourneShell.java
@@ -49,9 +49,7 @@ public class BourneShell
         setQuotedExecutableEnabled( true );
     }
 
-    /**
-     * {@inheritDoc}
-     */
+    @Override
     public String getExecutable()
     {
         if ( Os.isFamily( Os.FAMILY_WINDOWS ) )
@@ -62,7 +60,7 @@ public class BourneShell
         return unifyQuotes( super.getExecutable() );
     }
 
-    /** {@inheritDoc} */
+    @Override
     public List<String> getShellArgsList()
     {
         List<String> shellArgs = new ArrayList<String>();
@@ -78,7 +76,7 @@ public class BourneShell
         return shellArgs;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public String[] getShellArgs()
     {
         String[] shellArgs = super.getShellArgs();
@@ -100,7 +98,7 @@ public class BourneShell
         return shellArgs;
     }
 
-    /** {@inheritDoc} */
+    @Override
     protected String getExecutionPreamble()
     {
         if ( getWorkingDirectoryAsString() == null )
@@ -118,7 +116,7 @@ public class BourneShell
         return sb.toString();
     }
 
-    /** {@inheritDoc} */
+    @Override
     protected char[] getQuotingTriggerChars()
     {
         return BASH_QUOTING_TRIGGER_CHARS;
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/shell/CmdShell.java b/src/main/java/org/apache/maven/shared/utils/cli/shell/CmdShell.java
index 7c27ac1..867e8b6 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/shell/CmdShell.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/shell/CmdShell.java
@@ -86,6 +86,7 @@ public class CmdShell
      * @param arguments The arguments for the executable.
      * @return The resulting command line.
      */
+    @Override
     public List<String> getCommandLine( String executable, String... arguments )
     {
         StringBuilder sb = new StringBuilder();
diff --git a/src/main/java/org/apache/maven/shared/utils/cli/shell/Shell.java b/src/main/java/org/apache/maven/shared/utils/cli/shell/Shell.java
index 5809610..c819c65 100644
--- a/src/main/java/org/apache/maven/shared/utils/cli/shell/Shell.java
+++ b/src/main/java/org/apache/maven/shared/utils/cli/shell/Shell.java
@@ -273,7 +273,7 @@ public class Shell
     public List<String> getShellCommandLine( String... arguments )
     {
 
-        List<String> commandLine = new ArrayList<String>();
+        List<String> commandLine = new ArrayList<>();
 
         if ( getShellCommand() != null )
         {
@@ -377,7 +377,7 @@ public class Shell
         return workingDir;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public Object clone()
     {
         throw new RuntimeException( "Do we ever clone this?" );
diff --git a/src/main/java/org/apache/maven/shared/utils/introspection/ClassMap.java b/src/main/java/org/apache/maven/shared/utils/introspection/ClassMap.java
index 7d0120c..01fc400 100644
--- a/src/main/java/org/apache/maven/shared/utils/introspection/ClassMap.java
+++ b/src/main/java/org/apache/maven/shared/utils/introspection/ClassMap.java
@@ -33,7 +33,6 @@ import java.util.Map;
  * @author <a href="mailto:bob@werken.com">Bob McWhirter</a>
  * @author <a href="mailto:szegedia@freemail.hu">Attila Szegedi</a>
  * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
- * @version $Id$
  */
 public class ClassMap
 {
@@ -56,7 +55,7 @@ public class ClassMap
      * Cache of Methods, or CACHE_MISS, keyed by method
      * name and actual arguments used to find it.
      */
-    private final Map<String, Object> methodCache = new Hashtable<String, Object>();
+    private final Map<String, Object> methodCache = new Hashtable<>();
 
     private MethodMap methodMap = new MethodMap();
 
diff --git a/src/main/java/org/apache/maven/shared/utils/introspection/MethodMap.java b/src/main/java/org/apache/maven/shared/utils/introspection/MethodMap.java
index 16df95c..fe98d09 100644
--- a/src/main/java/org/apache/maven/shared/utils/introspection/MethodMap.java
+++ b/src/main/java/org/apache/maven/shared/utils/introspection/MethodMap.java
@@ -33,7 +33,6 @@ import java.util.Map;
  * @author <a href="mailto:Christoph.Reck@dlr.de">Christoph Reck</a>
  * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
  * @author <a href="mailto:szegedia@freemail.hu">Attila Szegedi</a>
- * @version $Id$
  */
 class MethodMap
 {
@@ -46,7 +45,7 @@ class MethodMap
     /**
      * Keep track of all methods with the same name.
      */
-    private final Map<String, List<Method>> methodByNameMap = new Hashtable<String, List<Method>>();
+    private final Map<String, List<Method>> methodByNameMap = new Hashtable<>();
 
     /**
      * Add a method to a list of methods by name.
@@ -63,7 +62,7 @@ class MethodMap
 
         if ( l == null )
         {
-            l = new ArrayList<Method>();
+            l = new ArrayList<>();
             methodByNameMap.put( methodName, l );
         }
 
@@ -169,7 +168,7 @@ class MethodMap
          * (the most specific method) otherwise we have ambiguity.
          */
 
-        LinkedList<Method> maximals = new LinkedList<Method>();
+        LinkedList<Method> maximals = new LinkedList<>();
 
         for ( Method app : applicables )
         {
@@ -283,7 +282,7 @@ class MethodMap
      */
     private static LinkedList<Method> getApplicables( List<Method> methods, Class<?>... classes )
     {
-        LinkedList<Method> list = new LinkedList<Method>();
+        LinkedList<Method> list = new LinkedList<>();
 
         for ( Method method : methods )
         {
diff --git a/src/main/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractor.java b/src/main/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractor.java
index 014f10c..11d6383 100644
--- a/src/main/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractor.java
+++ b/src/main/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractor.java
@@ -41,7 +41,6 @@ import javax.annotation.Nullable;
  *
  * @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- * @version $Id$
  * @see <a href="http://struts.apache.org/1.x/struts-taglib/indexedprops.html">
  * http://struts.apache.org/1.x/struts-taglib/indexedprops.html</a>
  */
diff --git a/src/main/java/org/apache/maven/shared/utils/io/DirectoryWalkListener.java b/src/main/java/org/apache/maven/shared/utils/io/DirectoryWalkListener.java
index cf28080..71c688d 100644
--- a/src/main/java/org/apache/maven/shared/utils/io/DirectoryWalkListener.java
+++ b/src/main/java/org/apache/maven/shared/utils/io/DirectoryWalkListener.java
@@ -23,8 +23,6 @@ import java.io.File;
 
 /**
  * DirectoryWalkListener
- *
- * @version $Id$
  */
 public interface DirectoryWalkListener
 {
diff --git a/src/main/java/org/apache/maven/shared/utils/io/DirectoryWalker.java b/src/main/java/org/apache/maven/shared/utils/io/DirectoryWalker.java
index 3713fe2..65fa2c6 100644
--- a/src/main/java/org/apache/maven/shared/utils/io/DirectoryWalker.java
+++ b/src/main/java/org/apache/maven/shared/utils/io/DirectoryWalker.java
@@ -27,7 +27,6 @@ import java.util.Stack;
 /**
  * DirectoryWalker
  * 
- * @version $Id$
  */
 class DirectoryWalker
 {
@@ -104,6 +103,7 @@ class DirectoryWalker
             return (int) Math.floor( percentageOffset + ( percentageWithinDir * percentageSize ) );
         }
 
+        @Override
         public String toString()
         {
             return "DirStackEntry[" + "dir=" + dir.getAbsolutePath() + ",count=" + count + ",index=" + index
@@ -127,9 +127,9 @@ class DirectoryWalker
 
     DirectoryWalker()
     {
-        this.includes = new ArrayList<String>();
-        this.excludes = new ArrayList<String>();
-        this.listeners = new ArrayList<DirectoryWalkListener>();
+        this.includes = new ArrayList<>();
+        this.excludes = new ArrayList<>();
+        this.listeners = new ArrayList<>();
     }
 
     public void addDirectoryWalkListener( DirectoryWalkListener listener )
diff --git a/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java b/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java
index 63a5aa3..7b9f4d5 100644
--- a/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java
@@ -41,6 +41,7 @@ import java.io.Reader;
 import java.io.Writer;
 import java.net.URL;
 import java.nio.channels.FileChannel;
+import java.nio.file.Files;
 import java.security.SecureRandom;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
@@ -84,7 +85,6 @@ import java.util.Random;
  * @author <a href="mailto:Christoph.Reck@dlr.de">Christoph.Reck</a>
  * @author <a href="mailto:peter@apache.org">Peter Donald</a>
  * @author <a href="mailto:jefft@apache.org">Jeff Turner</a>
- * @version $Id$
  */
 public class FileUtils
 {
@@ -117,11 +117,6 @@ public class FileUtils
     private static final long FILE_COPY_BUFFER_SIZE = ONE_MB * 30;
 
     /**
-     * The vm line separator
-     */
-    private static final String FS = System.getProperty( "file.separator" );
-
-    /**
      * Non-valid Characters for naming files, folders under Windows: <code>":", "*", "?", "\"", "<", ">", "|"</code>
      *
      * @see <a href="http://support.microsoft.com/?scid=kb%3Ben-us%3B177506&x=12&y=13">
@@ -277,34 +272,30 @@ public class FileUtils
     {
         StringBuilder buf = new StringBuilder();
 
-        Reader reader = null;
-
-        try
+        try ( Reader reader = getReader( file, encoding ) )
         {
-            if ( encoding != null )
-            {
-                reader = new InputStreamReader( new FileInputStream( file ), encoding );
-            }
-            else
-            {
-                reader = new InputStreamReader( new FileInputStream( file ) );
-            }
             int count;
             char[] b = new char[512];
             while ( ( count = reader.read( b ) ) >= 0 )  // blocking read
             {
                 buf.append( b, 0, count );
             }
-            reader.close();
-            reader = null;
-        }
-        finally
-        {
-            IOUtil.close( reader );
         }
 
         return buf.toString();
     }
+    
+    private static Reader getReader( @Nonnull File file, @Nullable String encoding ) throws IOException
+    {
+        if ( encoding != null )
+        {
+            return new InputStreamReader( new FileInputStream( file ), encoding );
+        }
+        else
+        {
+            return new InputStreamReader( new FileInputStream( file ) );
+        }
+    }
 
     /**
      * @param file the file path
@@ -345,10 +336,8 @@ public class FileUtils
     public static void fileAppend( @Nonnull String fileName, @Nullable String encoding, @Nonnull String data )
         throws IOException
     {
-        FileOutputStream out = null;
-        try
+        try ( FileOutputStream out = new FileOutputStream( fileName, true ) ) 
         {
-            out = new FileOutputStream( fileName, true );
             if ( encoding != null )
             {
                 out.write( data.getBytes( encoding ) );
@@ -357,12 +346,6 @@ public class FileUtils
             {
                 out.write( data.getBytes() );
             }
-            out.close();
-            out = null;
-        }
-        finally
-        {
-            IOUtil.close( out );
         }
     }
 
@@ -406,24 +389,21 @@ public class FileUtils
     public static void fileWrite( @Nonnull File file, @Nullable String encoding, @Nonnull String data )
         throws IOException
     {
-        Writer writer = null;
-        try
+        try ( Writer writer = getWriter( file, encoding ) )
         {
-            if ( encoding != null )
-            {
-                writer = new OutputStreamWriter( new FileOutputStream( file ), encoding );
-            }
-            else
-            {
-                writer = new OutputStreamWriter( new FileOutputStream( file ) );
-            }
             writer.write( data );
-            writer.close();
-            writer = null;
         }
-        finally
+    }
+    
+    private static Writer getWriter( @Nonnull File file, @Nullable String encoding ) throws IOException
+    {
+        if ( encoding != null )
+        {
+            return new OutputStreamWriter( new FileOutputStream( file ), encoding );
+        }
+        else
         {
-            IOUtil.close( writer );
+            return new OutputStreamWriter( new FileOutputStream( file ) );
         }
     }
 
@@ -452,18 +432,8 @@ public class FileUtils
     public static void fileWriteArray( @Nonnull File file, @Nullable String encoding, @Nullable String... data )
         throws IOException
     {
-        Writer writer = null;
-        try
+        try ( Writer writer = getWriter( file, encoding ) ) 
         {
-            if ( encoding != null )
-            {
-                writer = new OutputStreamWriter( new FileOutputStream( file ), encoding );
-            }
-            else
-            {
-                writer = new OutputStreamWriter( new FileOutputStream( file ) );
-            }
-
             for ( int i = 0; data != null && i < data.length; i++ )
             {
                 writer.write( data[i] );
@@ -472,13 +442,6 @@ public class FileUtils
                     writer.write( "\n" );
                 }
             }
-
-            writer.close();
-            writer = null;
-        }
-        finally
-        {
-            IOUtil.close( writer );
         }
     }
 
@@ -508,7 +471,7 @@ public class FileUtils
      */
     public static String[] getFilesFromExtension( @Nonnull String directory, @Nonnull String... extensions )
     {
-        List<String> files = new ArrayList<String>();
+        List<String> files = new ArrayList<>();
 
         File currentDir = new File( directory );
 
@@ -521,7 +484,7 @@ public class FileUtils
 
         for ( String unknownFile : unknownFiles )
         {
-            String currentFileName = directory + System.getProperty( "file.separator" ) + unknownFile;
+            String currentFileName = directory + File.separator + unknownFile;
             File currentFile = new File( currentFileName );
 
             if ( currentFile.isDirectory() )
@@ -645,25 +608,11 @@ public class FileUtils
             return false;
         }
 
-        InputStream input1 = null;
-        InputStream input2 = null;
-        boolean equals = false;
-        try
+        try ( InputStream input1 = new FileInputStream( file1 );
+              InputStream input2 = new FileInputStream( file2 ) )
         {
-            input1 = new FileInputStream( file1 );
-            input2 = new FileInputStream( file2 );
-            equals = IOUtil.contentEquals( input1, input2 );
-            input1.close();
-            input1 = null;
-            input2.close();
-            input2 = null;
+            return IOUtil.contentEquals( input1, input2 );
         }
-        finally
-        {
-            IOUtil.close( input1 );
-            IOUtil.close( input2 );
-        }
-        return equals;
     }
 
     /**
@@ -828,9 +777,9 @@ public class FileUtils
             final String message = "File " + source + " does not exist";
             throw new IOException( message );
         }
-        if ( Java7Support.isAtLeastJava7() && Java7Support.isSymLink( source ) )
+        if ( Files.isSymbolicLink( source.toPath() ) )
         {
-            File target = Java7Support.readSymbolicLink( source );
+            File target = Files.readSymbolicLink( source.toPath() ).toFile();
             Java7Support.createSymbolicLink( destination, target );
             return;
         }
@@ -866,16 +815,12 @@ public class FileUtils
     private static void doCopyFile( @Nonnull File source, @Nonnull File destination )
         throws IOException
     {
-        FileInputStream fis = null;
-        FileOutputStream fos = null;
-        FileChannel input = null;
-        FileChannel output = null;
-        try
+        
+        try ( FileInputStream fis = new FileInputStream( source );
+              FileOutputStream fos = new FileOutputStream( destination );
+              FileChannel input = fis.getChannel();
+              FileChannel output = fos.getChannel();  )
         {
-            fis = new FileInputStream( source );
-            fos = new FileOutputStream( destination );
-            input = fis.getChannel();
-            output = fos.getChannel();
             long size = input.size();
             long pos = 0;
             long count;
@@ -884,21 +829,6 @@ public class FileUtils
                 count = size - pos > FILE_COPY_BUFFER_SIZE ? FILE_COPY_BUFFER_SIZE : size - pos;
                 pos += output.transferFrom( input, pos, count );
             }
-            output.close();
-            output = null;
-            fos.close();
-            fos = null;
-            input.close();
-            input = null;
-            fis.close();
-            fis = null;
-        }
-        finally
-        {
-            IOUtil.close( output );
-            IOUtil.close( fos );
-            IOUtil.close( input );
-            IOUtil.close( fis );
         }
     }
 
@@ -968,35 +898,24 @@ public class FileUtils
                                           @Nonnull final File destination )
         throws IOException
     {
-        InputStream in = source;
-        OutputStream out = null;
-        try
+        //does destination directory exist ?
+        if ( destination.getParentFile() != null && !destination.getParentFile().exists() )
         {
-            //does destination directory exist ?
-            if ( destination.getParentFile() != null && !destination.getParentFile().exists() )
-            {
-                //noinspection ResultOfMethodCallIgnored
-                destination.getParentFile().mkdirs();
-            }
-
-            //make sure we can write to destination
-            if ( destination.exists() && !destination.canWrite() )
-            {
-                final String message = "Unable to open file " + destination + " for writing.";
-                throw new IOException( message );
-            }
+            //noinspection ResultOfMethodCallIgnored
+            destination.getParentFile().mkdirs();
+        }
 
-            out = new FileOutputStream( destination );
-            IOUtil.copy( in, out );
-            out.close();
-            out = null;
-            in.close();
-            in = null;
+        //make sure we can write to destination
+        if ( destination.exists() && !destination.canWrite() )
+        {
+            final String message = "Unable to open file " + destination + " for writing.";
+            throw new IOException( message );
         }
-        finally
+
+        try ( InputStream in = source;
+              OutputStream out = new FileOutputStream( destination ) )
         {
-            IOUtil.close( out );
-            IOUtil.close( in );
+            IOUtil.copy( in, out );
         }
     }
 
@@ -1488,7 +1407,7 @@ public class FileUtils
     {
         List<String> fileNames = getFileNames( directory, includes, excludes, includeBasedir );
 
-        List<File> files = new ArrayList<File>();
+        List<File> files = new ArrayList<>();
 
         for ( String filename : fileNames )
         {
@@ -1607,7 +1526,7 @@ public class FileUtils
 
         scanner.scan();
 
-        List<String> list = new ArrayList<String>();
+        List<String> list = new ArrayList<>();
 
         if ( getFiles )
         {
@@ -1617,7 +1536,7 @@ public class FileUtils
             {
                 if ( includeBasedir )
                 {
-                    list.add( directory + FileUtils.FS + file );
+                    list.add( directory + File.separator + file );
                 }
                 else
                 {
@@ -1634,7 +1553,7 @@ public class FileUtils
             {
                 if ( includeBasedir )
                 {
-                    list.add( directory + FileUtils.FS + directory1 );
+                    list.add( directory + File.separator + directory1 );
                 }
                 else
                 {
@@ -1974,15 +1893,12 @@ public class FileUtils
     @Nonnull public static List<String> loadFile( @Nonnull File file )
         throws IOException
     {
-        List<String> lines = new ArrayList<String>();
+        List<String> lines = new ArrayList<>();
 
         if ( file.exists() )
         {
-            BufferedReader reader = null;
-            try
+            try ( BufferedReader reader = new BufferedReader( new FileReader( file ) ) )
             {
-                reader = new BufferedReader( new FileReader( file ) );
-
                 for ( String line = reader.readLine(); line != null; line = reader.readLine() )
                 {
                     line = line.trim();
@@ -1992,13 +1908,6 @@ public class FileUtils
                         lines.add( line );
                     }
                 }
-
-                reader.close();
-                reader = null;
-            }
-            finally
-            {
-                IOUtil.close( reader );
             }
         }
 
@@ -2035,41 +1944,33 @@ public class FileUtils
     /**
      * Checks whether a given file is a symbolic link.
      *
-     * This only works reliably on java7 and higher. For earlier version we use a highly crappy heuristic
-     * that mostly does not work.
-     * <p>
-     * It doesn't really test for symbolic links but whether the canonical and absolute paths of the file are identical
-     * - this may lead to false positives on some platforms.
-     * </p>
-     *
      * @param file the file to check
      * @throws IOException in case of failure.
      * @return true if symbolic link false otherwise.
-     *
+     * @deprecated Use {@link Files#isSymbolicLink(java.nio.file.Path)} instead
      */
+    @Deprecated
     public static boolean isSymbolicLink( @Nonnull final File file )
         throws IOException
     {
-        if ( Java7Support.isAtLeastJava7() )
-        {
-            return Java7Support.isSymLink( file );
-        }
-        return isSymbolicLinkLegacy( file );
+        return Files.isSymbolicLink( file.toPath() );
     }
 
     /**
      * Checks whether a given file is a symbolic link.
      *
      * @param file the file to check
-     * @return true if and only if we reliably can say this is a symlink. This will
-     *         always return false for java versions prior to 1.7.
+     * @return true if and only if we reliably can say this is a symlink.
      *
      * @throws IOException in case of failure.
+     * @deprecated Use {@link Files#isSymbolicLink(java.nio.file.Path)} instead
      */
+    @Deprecated
     public static boolean isSymbolicLinkForSure( @Nonnull final File file )
         throws IOException
     {
-        return Java7Support.isAtLeastJava7() && Java7Support.isSymLink( file );
+        // Used to return false for Java 6 and older
+        return Files.isSymbolicLink( file.toPath() );
     }
 
     /**
diff --git a/src/main/java/org/apache/maven/shared/utils/io/IOUtil.java b/src/main/java/org/apache/maven/shared/utils/io/IOUtil.java
index c0e421d..f0aea3f 100644
--- a/src/main/java/org/apache/maven/shared/utils/io/IOUtil.java
+++ b/src/main/java/org/apache/maven/shared/utils/io/IOUtil.java
@@ -844,7 +844,10 @@ public final class IOUtil
      * </p>
      *
      * @param channel The channel to close or {@code null}.
+     * @deprecated Use try-with-resources instead
+     * @see {@link AutoCloseable}
      */
+    @Deprecated
     public static void close( @Nullable Channel channel )
     {
         try
@@ -948,7 +951,10 @@ public final class IOUtil
      * </p>
      *
      * @param inputStream The stream to close or {@code null}.
+     * @deprecated Use try-with-resources instead
+     * @see {@link AutoCloseable}
      */
+    @Deprecated
     public static void close( @Nullable InputStream inputStream )
     {
         try
@@ -1052,7 +1058,10 @@ public final class IOUtil
      * </p>
      *
      * @param outputStream The stream to close or {@code null}.
+     * @deprecated Use try-with-resources instead
+     * @see {@link AutoCloseable}
      */
+    @Deprecated
     public static void close( @Nullable OutputStream outputStream )
     {
         try
@@ -1156,7 +1165,10 @@ public final class IOUtil
      * </p>
      *
      * @param reader The reader to close or {@code null}.
+     * @deprecated Use try-with-resources instead
+     * @see {@link AutoCloseable}
      */
+    @Deprecated
     public static void close( @Nullable Reader reader )
     {
         try
@@ -1260,7 +1272,10 @@ public final class IOUtil
      * </p>
      *
      * @param writer The writer to close or {@code null}.
+     * @deprecated Use try-with-resources instead
+     * @see {@link AutoCloseable}
      */
+    @Deprecated
     public static void close( @Nullable Writer writer )
     {
         try
diff --git a/src/main/java/org/apache/maven/shared/utils/io/Java7Support.java b/src/main/java/org/apache/maven/shared/utils/io/Java7Support.java
index 550de2f..7645de8 100644
--- a/src/main/java/org/apache/maven/shared/utils/io/Java7Support.java
+++ b/src/main/java/org/apache/maven/shared/utils/io/Java7Support.java
@@ -22,90 +22,26 @@ package org.apache.maven.shared.utils.io;
 import javax.annotation.Nonnull;
 import java.io.File;
 import java.io.IOException;
-import java.lang.reflect.Array;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
+import java.nio.file.Files;
 
 /**
  * Java7 feature detection
  *
  * @author Kristian Rosenvold
+ * @deprecated Java 7 is the minimum, so no need to have this class
  */
+@Deprecated
 public class Java7Support
 {
-
-    private static final boolean IS_JAVA7;
-
-    private static Method isSymbolicLink;
-
-    private static Method delete;
-
-    private static Method toPath;
-
-    private static Method exists;
-
-    private static Method toFile;
-
-    private static Method readSymlink;
-
-    private static Method createSymlink;
-
-    private static Object emptyLinkOpts;
-
-    private static Object emptyFileAttributes;
-
-    static
-    {
-        boolean isJava7x = true;
-        try
-        {
-            ClassLoader cl = Thread.currentThread().getContextClassLoader();
-            Class<?> files = cl.loadClass( "java.nio.file.Files" );
-            Class<?> path = cl.loadClass( "java.nio.file.Path" );
-            Class<?> fa = cl.loadClass( "java.nio.file.attribute.FileAttribute" );
-            Class<?> linkOption = cl.loadClass( "java.nio.file.LinkOption" );
-            isSymbolicLink = files.getMethod( "isSymbolicLink", path );
-            delete = files.getMethod( "delete", path );
-            readSymlink = files.getMethod( "readSymbolicLink", path );
-
-            emptyFileAttributes = Array.newInstance( fa, 0 );
-            final Object o = emptyFileAttributes;
-            createSymlink = files.getMethod( "createSymbolicLink", path, path, o.getClass() );
-            emptyLinkOpts = Array.newInstance( linkOption, 0 );
-            exists = files.getMethod( "exists", path, emptyLinkOpts.getClass() );
-            toPath = File.class.getMethod( "toPath" );
-            toFile = path.getMethod( "toFile" );
-        }
-        catch ( ClassNotFoundException e )
-        {
-            isJava7x = false;
-        }
-        catch ( NoSuchMethodException e )
-        {
-            isJava7x = false;
-        }
-        IS_JAVA7 = isJava7x;
-    }
-
     /**
      * @param file The file to check for being a symbolic link.
      * @return true if the file is a symlink false otherwise.
+     * 
+     * @deprecated Instead use {@link Files#isSymbolicLink(java.nio.file.Path)}
      */
     public static boolean isSymLink( @Nonnull File file )
     {
-        try
-        {
-            Object path = toPath.invoke( file );
-            return (Boolean) isSymbolicLink.invoke( null, path );
-        }
-        catch ( IllegalAccessException e )
-        {
-            throw new RuntimeException( e );
-        }
-        catch ( InvocationTargetException e )
-        {
-            throw new RuntimeException( e );
-        }
+        return Files.isSymbolicLink( file.toPath() );
     }
 
 
@@ -113,24 +49,12 @@ public class Java7Support
      * @param symlink The sym link.
      * @return The file.
      * @throws IOException in case of error.
+     * @deprecated Instead use {@link Files#readSymbolicLink(java.nio.file.Path)}
      */
     @Nonnull public static File readSymbolicLink( @Nonnull File symlink )
         throws IOException
     {
-        try
-        {
-            Object path = toPath.invoke( symlink );
-            Object resultPath =  readSymlink.invoke( null, path );
-            return (File) toFile.invoke( resultPath );
-        }
-        catch ( IllegalAccessException e )
-        {
-            throw new RuntimeException( e );
-        }
-        catch ( InvocationTargetException e )
-        {
-            throw new RuntimeException( e );
-        }
+        return Files.readSymbolicLink( symlink.toPath() ).toFile();
     }
 
 
@@ -138,107 +62,60 @@ public class Java7Support
      * @param file The file to check.
      * @return true if exist false otherwise.
      * @throws IOException in case of failure.
+     * @deprecated Instead use {@link Files#exists(java.nio.file.Path, java.nio.file.LinkOption...)}
      */
     public static boolean exists( @Nonnull File file )
         throws IOException
     {
-        try
-        {
-            Object path = toPath.invoke( file );
-            final Object invoke = exists.invoke( null, path, emptyLinkOpts );
-            return (Boolean) invoke;
-        }
-        catch ( IllegalAccessException e )
-        {
-            throw new RuntimeException( e );
-        }
-        catch ( InvocationTargetException e )
-        {
-            throw (RuntimeException) e.getTargetException();
-        }
-
+        return Files.exists( file.toPath() );
     }
 
+    // CHECKSTYLE_OFF: LineLength
     /**
      * @param symlink The link name.
      * @param target The target.
      * @return The linked file.
      * @throws IOException in case of an error.
+     * @deprecated Instead use
+     *             {@link Files#createSymbolicLink(java.nio.file.Path, java.nio.file.Path, java.nio.file.attribute.FileAttribute...)}
      */
+    // CHECKSTYLE_ON: LineLength
     @Nonnull public static File createSymbolicLink( @Nonnull File symlink,  @Nonnull File target )
         throws IOException
     {
-        try
-        {
-            if ( !exists( symlink ) )
-            {
-                Object link = toPath.invoke( symlink );
-                Object path = createSymlink.invoke( null, link, toPath.invoke( target ), emptyFileAttributes );
-                return (File) toFile.invoke( path );
-            }
-            return symlink;
-        }
-        catch ( IllegalAccessException e )
+        if ( !exists( symlink ) )
         {
-            throw new RuntimeException( e );
+            return Files.createSymbolicLink( symlink.toPath(), target.toPath() ).toFile();
         }
-        catch ( InvocationTargetException e )
-        {
-            final Throwable targetException = e.getTargetException();
-            if ( targetException instanceof IOException )
-            {
-                throw (IOException) targetException;
-            }
-            else if ( targetException instanceof RuntimeException )
-            {
-                // java.lang.UnsupportedOperationException: Symbolic links not supported on this operating system
-                // java.lang.SecurityException: denies certain permissions see Javadoc
-                throw ( RuntimeException ) targetException;
-            }
-            else
-            {
-                throw new IOException( targetException.getClass() + ": " + targetException.getLocalizedMessage() );
-            }
-        }
-
+        return symlink;
     }
+
     /**
      * Performs a nio delete
      * @param file the file to delete
      * @throws IOException in case of error.
+     * @deprecated Instead use {@link Files#delete(java.nio.file.Path)}
      */
     public static void delete( @Nonnull File file )
         throws IOException
     {
-        try
-        {
-            Object path = toPath.invoke( file );
-            delete.invoke( null, path );
-        }
-        catch ( IllegalAccessException e )
-        {
-            throw new RuntimeException( e );
-        }
-        catch ( InvocationTargetException e )
-        {
-            throw (IOException) e.getTargetException();
-        }
+        Files.delete( file.toPath() );
     }
 
     /**
-     * @return true in case of Java 7.
+     * @return true
      */
     public static boolean isJava7()
     {
-        return IS_JAVA7;
+        return true;
     }
 
     /**
-     * @return true in case of Java7 or greater.
+     * @return true
      */
     public static boolean isAtLeastJava7()
     {
-        return IS_JAVA7;
+        return true;
     }
 
 }
diff --git a/src/main/java/org/apache/maven/shared/utils/io/WalkCollector.java b/src/main/java/org/apache/maven/shared/utils/io/WalkCollector.java
index 5d48d4a..e9deb2b 100644
--- a/src/main/java/org/apache/maven/shared/utils/io/WalkCollector.java
+++ b/src/main/java/org/apache/maven/shared/utils/io/WalkCollector.java
@@ -46,27 +46,27 @@ public class WalkCollector
      */
     public WalkCollector()
     {
-        steps = new ArrayList<File>();
+        steps = new ArrayList<>();
         startCount = 0;
         finishCount = 0;
         percentageLow = 0;
         percentageHigh = 0;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void debug( String message )
     {
         // can be used to set some message
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void directoryWalkStarting( File basedir )
     {
         startingDir = basedir;
         startCount++;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void directoryWalkStep( int percentage, File file )
     {
         steps.add( file );
@@ -74,7 +74,7 @@ public class WalkCollector
         percentageHigh = Math.max( percentageHigh, percentage );
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void directoryWalkFinished()
     {
         finishCount++;
diff --git a/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java b/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java
index 2d59bc9..c947843 100644
--- a/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java
+++ b/src/main/java/org/apache/maven/shared/utils/logging/AnsiMessageBuilder.java
@@ -50,98 +50,115 @@ class AnsiMessageBuilder
         this.ansi = ansi;
     }
 
+    @Override
     public String debug( String level )
     {
         return Style.DEBUG.apply( ansi ).a( level ).reset().toString();
     }
 
+    @Override
     public String info( String level )
     {
         return Style.INFO.apply( ansi ).a( level ).reset().toString();
     }
 
+    @Override
     public String warning( String level )
     {
         return Style.WARNING.apply( ansi ).a( level ).reset().toString();
     }
 
+    @Override
     public String error( String level )
     {
         return Style.ERROR.apply( ansi ).a( level ).reset().toString();
     }
 
+    @Override
     public AnsiMessageBuilder success( Object message )
     {
         Style.SUCCESS.apply( ansi ).a( message ).reset();
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder warning( Object message )
     {
         Style.WARNING.apply( ansi ).a( message ).reset();
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder failure( Object message )
     {
         Style.FAILURE.apply( ansi ).a( message ).reset();
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder strong( Object message )
     {
         Style.STRONG.apply( ansi ).a( message ).reset();
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder mojo( Object message )
     {
         Style.MOJO.apply( ansi ).a( message ).reset();
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder project( Object message )
     {
         Style.PROJECT.apply( ansi ).a( message ).reset();
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder a( char[] value, int offset, int len )
     {
         ansi.a( value, offset, len );
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder a( char[] value )
     {
         ansi.a( value );
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder a( CharSequence value, int start, int end )
     {
         ansi.a( value, start, end );
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder a( CharSequence value )
     {
         ansi.a( value );
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder a( Object value )
     {
         ansi.a( value );
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder newline()
     {
         ansi.newline();
         return this;
     }
 
+    @Override
     public AnsiMessageBuilder format( String pattern, Object... args )
     {
         ansi.format( pattern, args );
diff --git a/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java b/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java
index 6a7b56e..92a7fb9 100644
--- a/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java
+++ b/src/main/java/org/apache/maven/shared/utils/logging/PlainMessageBuilder.java
@@ -42,92 +42,109 @@ class PlainMessageBuilder
         buffer = new StringBuilder( size );
     }
 
+    @Override
     public String debug( String level )
     {
         return a( level ).toString();
     }
 
+    @Override
     public String info( String level )
     {
         return a( level ).toString();
     }
 
+    @Override
     public String warning( String level )
     {
         return a( level ).toString();
     }
 
+    @Override
     public String error( String level )
     {
         return a( level ).toString();
     }
 
+    @Override
     public PlainMessageBuilder success( Object message )
     {
         return a( message );
     }
 
+    @Override
     public PlainMessageBuilder warning( Object message )
     {
         return a( message );
     }
 
+    @Override
     public PlainMessageBuilder failure( Object message )
     {
         return a( message );
     }
 
+    @Override
     public PlainMessageBuilder strong( Object message )
     {
         return a( message );
     }
 
+    @Override
     public PlainMessageBuilder mojo( Object message )
     {
         return a( message );
     }
 
+    @Override
     public PlainMessageBuilder project( Object message )
     {
         return a( message );
     }
 
+    @Override
     public PlainMessageBuilder a( char[] value, int offset, int len )
     {
         buffer.append( value, offset, len );
         return this;
     }
 
+    @Override
     public PlainMessageBuilder a( char[] value )
     {
         buffer.append( value );
         return this;
     }
 
+    @Override
     public PlainMessageBuilder a( CharSequence value, int start, int end )
     {
         buffer.append( value, start, end );
         return this;
     }
 
+    @Override
     public PlainMessageBuilder a( CharSequence value )
     {
         buffer.append( value );
         return this;
     }
 
+    @Override
     public PlainMessageBuilder a( Object value )
     {
         buffer.append( value );
         return this;
     }
 
+    @Override
     public PlainMessageBuilder newline()
     {
         buffer.append( System.getProperty( "line.separator" ) );
         return this;
     }
 
+    @Override
     public PlainMessageBuilder format( String pattern, Object... args )
     {
         buffer.append( String.format( pattern, args ) );
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java b/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java
index deb07d2..f1656e6 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/PrettyPrintXMLWriter.java
@@ -173,7 +173,7 @@ public class PrettyPrintXMLWriter
         assert !writer.checkError() : "Unexpected error state PrintWriter passed to PrettyPrintXMLWriter.";
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void addAttribute( String key, String value ) throws IOException
     {
         if ( !processingElement )
@@ -191,7 +191,7 @@ public class PrettyPrintXMLWriter
         }
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void setEncoding( String encoding )
     {
         if ( documentStarted )
@@ -202,7 +202,7 @@ public class PrettyPrintXMLWriter
         this.encoding = encoding;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void setDocType( String docType )
     {
         if ( documentStarted )
@@ -239,7 +239,7 @@ public class PrettyPrintXMLWriter
         this.lineIndent = lineIndentParameter.toCharArray();
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void startElement( String elementName ) throws IOException
     {
         boolean firstLine = ensureDocumentStarted();
@@ -263,7 +263,7 @@ public class PrettyPrintXMLWriter
         elementStack.add( depth++, elementName );
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void writeText( String text ) throws IOException
     {
         ensureDocumentStarted();
@@ -280,7 +280,7 @@ public class PrettyPrintXMLWriter
         }
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void writeMarkup( String markup ) throws IOException
     {
         ensureDocumentStarted();
@@ -295,7 +295,7 @@ public class PrettyPrintXMLWriter
         }
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void endElement() throws IOException
     {
         String chars = elementStack.get( --depth );
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/XmlStreamReader.java b/src/main/java/org/apache/maven/shared/utils/xml/XmlStreamReader.java
index 11a5777..c54cbab 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/XmlStreamReader.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/XmlStreamReader.java
@@ -155,14 +155,14 @@ public class XmlStreamReader
         return reader.getEncoding();
     }
 
-    /** {@inheritDoc} */
+    @Override
     public int read( char[] buf, int offset, int len )
             throws IOException
     {
         return reader.read( buf, offset, len );
     }
 
-    /** {@inheritDoc} */
+    @Override
     public void close()
             throws IOException
     {
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/XmlWriterUtil.java b/src/main/java/org/apache/maven/shared/utils/xml/XmlWriterUtil.java
index e83d1cf..826ab8f 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/XmlWriterUtil.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/XmlWriterUtil.java
@@ -26,12 +26,11 @@ import org.apache.maven.shared.utils.StringUtils;
  * Utility class for the <code>XmlWriter</code> class.
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- * @version $Id$
  */
 public class XmlWriterUtil
 {
     /** The vm line separator */
-    public static final String LS = System.getProperty( "line.separator" );
+    public static final String LS = System.lineSeparator();
 
     /** The default line indenter size i.e. 2. */
     public static final int DEFAULT_INDENTATION_SIZE = 2;
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/Xpp3Dom.java b/src/main/java/org/apache/maven/shared/utils/xml/Xpp3Dom.java
index 5efa8fc..6442bd2 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/Xpp3Dom.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/Xpp3Dom.java
@@ -341,7 +341,7 @@ public class Xpp3Dom
         return Xpp3DomUtils.mergeXpp3Dom( dominant, recessive );
     }
 
-    /** {@inheritDoc} */
+    @Override
     public boolean equals( Object obj )
     {
         if ( obj == this )
@@ -362,7 +362,7 @@ public class Xpp3Dom
             && !( childList == null ? dom.childList != null : !childList.equals( dom.childList ) );
     }
 
-    /** {@inheritDoc} */
+    @Override
     public int hashCode()
     {
         int result = 17;
@@ -373,7 +373,7 @@ public class Xpp3Dom
         return result;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public String toString()
     {
         try
@@ -430,7 +430,7 @@ public class Xpp3Dom
         return str == null || str.trim().length() == 0;
     }
 
-    /** {@inheritDoc} */
+    @Override
     public Iterator<Xpp3Dom> iterator()
     {
         return getChildrenList().iterator();
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilder.java b/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilder.java
index 0798e4f..a4861f3 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilder.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomBuilder.java
@@ -19,7 +19,6 @@ package org.apache.maven.shared.utils.xml;
  * under the License.
  */
 
-import org.apache.maven.shared.utils.io.IOUtil;
 import org.apache.maven.shared.utils.xml.pull.XmlPullParserException;
 import org.xml.sax.Attributes;
 import org.xml.sax.InputSource;
@@ -99,21 +98,15 @@ public class Xpp3DomBuilder
     public static Xpp3Dom build( @WillClose Reader reader, boolean trim )
         throws XmlPullParserException
     {
-        try
+        try ( Reader r = reader )
         {
-            DocHandler docHandler = parseSax( new InputSource( reader ), trim );
-            reader.close();
-            reader = null;
+            DocHandler docHandler = parseSax( new InputSource( r ), trim );
             return docHandler.result;
         }
         catch ( final IOException e )
         {
             throw new XmlPullParserException( e );
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
     }
 
     private static DocHandler parseSax( @Nonnull InputSource inputSource, boolean trim )
@@ -190,16 +183,16 @@ public class Xpp3DomBuilder
     private static class DocHandler
         extends DefaultHandler
     {
-        private final List<Xpp3Dom> elemStack = new ArrayList<Xpp3Dom>();
+        private final List<Xpp3Dom> elemStack = new ArrayList<>();
 
-        private final List<StringBuilder> values = new ArrayList<StringBuilder>();
+        private final List<StringBuilder> values = new ArrayList<>();
 
         // Todo: Use these for something smart !
-        private final List<SAXParseException> warnings = new ArrayList<SAXParseException>();
+        private final List<SAXParseException> warnings = new ArrayList<>();
 
-        private final List<SAXParseException> errors = new ArrayList<SAXParseException>();
+        private final List<SAXParseException> errors = new ArrayList<>();
 
-        private final List<SAXParseException> fatals = new ArrayList<SAXParseException>();
+        private final List<SAXParseException> fatals = new ArrayList<>();
 
 
         Xpp3Dom result = null;
diff --git a/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomUtils.java b/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomUtils.java
index 1b10dc8..f42eb12 100644
--- a/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/xml/Xpp3DomUtils.java
@@ -117,7 +117,7 @@ public class Xpp3DomUtils
 
     private static Map<String, Iterator<Xpp3Dom>> getCommonChildren( Xpp3Dom dominant, Xpp3Dom recessive )
     {
-        Map<String, Iterator<Xpp3Dom>> commonChildren = new HashMap<String, Iterator<Xpp3Dom>>();
+        Map<String, Iterator<Xpp3Dom>> commonChildren = new HashMap<>();
 
         for ( String childName : recessive.childMap.keySet() )
         {
diff --git a/src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java b/src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java
index e082617..97b0f31 100644
--- a/src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java
+++ b/src/test/java/org/apache/maven/shared/utils/introspection/ReflectionValueExtractorTest.java
@@ -30,13 +30,13 @@ import junit.framework.TestCase;
 
 /**
  * @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
- * @version $Id$
  */
 public class ReflectionValueExtractorTest
     extends TestCase
 {
     private Project project;
 
+    @Override
     protected void setUp()
         throws Exception
     {
diff --git a/src/test/java/org/apache/maven/shared/utils/testhelpers/ExceptionHelper.java b/src/test/java/org/apache/maven/shared/utils/testhelpers/ExceptionHelper.java
index 8d153b4..93a032d 100644
--- a/src/test/java/org/apache/maven/shared/utils/testhelpers/ExceptionHelper.java
+++ b/src/test/java/org/apache/maven/shared/utils/testhelpers/ExceptionHelper.java
@@ -49,6 +49,7 @@ public class ExceptionHelper
             this.cause = cause;
         }
 
+        @Override
         public boolean matches( Object item )
         {
             Throwable throwable = (Throwable) item;
@@ -59,6 +60,7 @@ public class ExceptionHelper
             return cause.isInstance( throwable );
         }
 
+        @Override
         public void describeTo( Description description )
         {
             description.appendText( "was caused by a " ).appendValue( cause ).appendText( " being thrown" );
diff --git a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java
index f272332..3aa1930 100644
--- a/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java
+++ b/src/test/java/org/apache/maven/shared/utils/xml/PrettyPrintXmlWriterTest.java
@@ -36,7 +36,6 @@ import org.junit.Test;
  * Test of {@link PrettyPrintXMLWriter}
  *
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- * @version $Id$
  */
 public class PrettyPrintXmlWriterTest
 {
diff --git a/src/test/java/org/apache/maven/shared/utils/xml/XmlWriterUtilTest.java b/src/test/java/org/apache/maven/shared/utils/xml/XmlWriterUtilTest.java
index 894774a..7e1b7ef 100644
--- a/src/test/java/org/apache/maven/shared/utils/xml/XmlWriterUtilTest.java
+++ b/src/test/java/org/apache/maven/shared/utils/xml/XmlWriterUtilTest.java
@@ -29,7 +29,6 @@ import junit.framework.TestCase;
 
 /**
  * @author <a href="mailto:vincent.siveton@gmail.com">Vincent Siveton</a>
- * @version $Id$
  */
 public class XmlWriterUtilTest
     extends TestCase
@@ -41,6 +40,7 @@ public class XmlWriterUtilTest
     private XMLWriter xmlWriter;
 
     /** {@inheritDoc} */
+    @Override
     protected void setUp()
         throws Exception
     {
@@ -52,6 +52,7 @@ public class XmlWriterUtilTest
     }
 
     /** {@inheritDoc} */
+    @Override
     protected void tearDown()
         throws Exception
     {