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 2019/03/16 10:09:53 UTC

[maven-archetype] branch ARCHETYPE-560 created (now 41ed55d)

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

rfscholte pushed a change to branch ARCHETYPE-560
in repository https://gitbox.apache.org/repos/asf/maven-archetype.git.


      at 41ed55d  [ARCHETYPE-560] Require Java 7

This branch includes the following new commits:

     new 9f548e8  [ARCHETYPE-560] Require Java 7
     new 41ed55d  [ARCHETYPE-560] Require Java 7

The 2 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.



[maven-archetype] 02/02: [ARCHETYPE-560] Require Java 7

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

rfscholte pushed a commit to branch ARCHETYPE-560
in repository https://gitbox.apache.org/repos/asf/maven-archetype.git

commit 41ed55d25d4db8e4af553c2bb3e30872049b49a7
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Mar 16 11:09:42 2019 +0100

    [ARCHETYPE-560] Require Java 7
---
 .../archetype/ArchetypeGenerationRequest.java      |   3 +
 .../maven/archetype/DefaultArchetypeManager.java   |  26 +--
 .../common/DefaultArchetypeArtifactManager.java    | 191 +++++----------------
 .../common/DefaultArchetypeFilesResolver.java      |  14 ++
 .../maven/archetype/common/DefaultPomManager.java  | 108 ++++--------
 .../maven/archetype/common/MavenJDOMWriter.java    |   1 +
 .../archetype/common/util/FileCharsetDetector.java |  13 +-
 .../apache/maven/archetype/common/util/Format.java |   7 +-
 .../archetype/common/util/NamespaceStack.java      |   5 +-
 .../maven/archetype/common/util/XMLOutputter.java  |   2 +
 .../archetype/creator/FilesetArchetypeCreator.java |  98 ++---------
 .../archetype/downloader/DefaultDownloader.java    |   2 +
 .../generator/DefaultArchetypeGenerator.java       |   2 +
 .../DefaultFilesetArchetypeGenerator.java          |  37 +---
 .../maven/archetype/old/DefaultOldArchetype.java   | 148 +++++-----------
 .../DefaultRepositoryCrawler.java                  |  15 +-
 .../source/CatalogArchetypeDataSource.java         |  18 +-
 .../source/InternalCatalogArchetypeDataSource.java |   1 +
 .../source/LocalCatalogArchetypeDataSource.java    |   2 +
 .../source/RemoteCatalogArchetypeDataSource.java   |   1 +
 .../generator/DefaultArchetypeGeneratorTest.java   |  53 ++----
 .../apache/maven/archetype/old/ArchetypeTest.java  |   1 +
 .../archetype/old/descriptor/ArchetypeXsdTest.java |  10 +-
 .../LocalCatalogArchetypeDataSourceTest.java       |   9 +-
 .../RemoteCatalogArchetypeDataSourceTest.java      |  12 +-
 .../archetype/test/ArchetypeGenerationTest.java    |   2 +-
 .../creator/DefaultArchetypeCreatorIT.java         |   6 +-
 .../archetype/test/ArchetyperRoundtripIT.java      |  20 ++-
 .../test/ArchetyperRoundtripWithProxyIT.java       |  10 +-
 .../archetype/test/RoundtripMultiModuleIT.java     |  26 +--
 .../apache/maven/archetype/proxy/ProxyServlet.java |  12 +-
 .../maven/archetype/proxy/RepositoryServlet.java   |  13 +-
 .../archetype/repository/RepositoryServlet.java    |  11 +-
 .../maven/archetype/mojos/CrawlRepositoryMojo.java |   1 +
 .../mojos/CreateArchetypeFromProjectMojo.java      |   1 +
 .../mojos/CreateProjectFromArchetypeMojo.java      |   1 +
 .../maven/archetype/mojos/IntegrationTestMojo.java |  64 +++----
 .../org/apache/maven/archetype/mojos/JarMojo.java  |   1 +
 .../archetype/mojos/UpdateLocalCatalogMojo.java    |   1 +
 .../maven/archetype/ui/ArchetypePrompter.java      |   6 +
 .../archetype/ui/DefaultArchetypeFactory.java      |   5 +
 .../DefaultArchetypeCreationConfigurator.java      |  18 +-
 .../creation/DefaultArchetypeCreationQueryer.java  |  11 ++
 .../DefaultArchetypeGenerationConfigurator.java    |  11 +-
 .../DefaultArchetypeGenerationQueryer.java         |   2 +
 .../DefaultArchetypeSelectionQueryer.java          |   3 +
 .../ui/generation/DefaultArchetypeSelector.java    |   1 +
 ...efaultArchetypeGenerationConfigurator2Test.java |   1 +
 ...DefaultArchetypeGenerationConfiguratorTest.java |   1 +
 .../DefaultArchetypeGenerationQueryerTest.java     |   3 +
 .../DefaultArchetypeSelectionQueryerTest.java      |   3 +
 .../generation/DefaultArchetypeSelectorTest.java   |   3 +
 52 files changed, 364 insertions(+), 652 deletions(-)

diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
index c3858cf..03e060f 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/ArchetypeGenerationRequest.java
@@ -70,6 +70,7 @@ public class ArchetypeGenerationRequest
      * 
      * @deprecated see ARCHETYPE-439
      */
+    @Deprecated
     private String archetypeRepository;
 
     // Archetype configuration
@@ -180,6 +181,7 @@ public class ArchetypeGenerationRequest
      * @return the URL of the archetype repository
      * @deprecated see ARCHETYPE-439
      */
+    @Deprecated
     public String getArchetypeRepository()
     {
         return archetypeRepository;
@@ -191,6 +193,7 @@ public class ArchetypeGenerationRequest
      * @return this request
      * @deprecated see ARCHETYPE-439
      */
+    @Deprecated
     public ArchetypeGenerationRequest setArchetypeRepository( String archetypeRepository )
     {
         this.archetypeRepository = archetypeRepository;
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
index 5ad3e78..f58c233 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/DefaultArchetypeManager.java
@@ -57,6 +57,7 @@ public class DefaultArchetypeManager
     @Requirement( role = ArchetypeDataSource.class )
     private Map<String, ArchetypeDataSource> archetypeSources;
 
+    @Override
     public ArchetypeCreationResult createArchetypeFromProject( ArchetypeCreationRequest request )
     {
         ArchetypeCreationResult result = new ArchetypeCreationResult();
@@ -66,6 +67,7 @@ public class DefaultArchetypeManager
         return result;
     }
 
+    @Override
     public ArchetypeGenerationResult generateProjectFromArchetype( ArchetypeGenerationRequest request )
     {
         ArchetypeGenerationResult result = new ArchetypeGenerationResult();
@@ -75,6 +77,7 @@ public class DefaultArchetypeManager
         return result;
     }
 
+    @Override
     public File archiveArchetype( File archetypeDirectory, File outputDirectory, String finalName )
         throws DependencyResolutionRequiredException, IOException
     {
@@ -93,20 +96,12 @@ public class DefaultArchetypeManager
             archive.getParentFile().mkdirs();
         }
 
-        ZipOutputStream zos = null;
-        try
+        try ( ZipOutputStream zos = new ZipOutputStream( new FileOutputStream( archive ) ) )
         {
-            zos = new ZipOutputStream( new FileOutputStream( archive ) );
-
             zos.setLevel( 9 );
 
             zipper( zos, sourceDirectory.getAbsolutePath().length(), sourceDirectory );
         }
-        finally
-        {
-            IOUtil.close( zos );
-        }
-
     }
 
     private void zipper( ZipOutputStream zos, int offset, File currentSourceDirectory )
@@ -146,17 +141,10 @@ public class DefaultArchetypeManager
 
                 zos.putNextEntry( e );
 
-                FileInputStream is = null;
-                try
+                try ( FileInputStream is = new FileInputStream( files[i] ) )
                 {
-                    is = new FileInputStream( files[i] );
-
                     IOUtil.copy( is, zos );
                 }
-                finally
-                {
-                    IOUtil.close( is );
-                }
 
                 zos.flush();
 
@@ -165,6 +153,7 @@ public class DefaultArchetypeManager
         }
     }
 
+    @Override
     public ArchetypeCatalog getInternalCatalog()
     {
         try
@@ -179,6 +168,7 @@ public class DefaultArchetypeManager
         }
     }
 
+    @Override
     public ArchetypeCatalog getLocalCatalog( ProjectBuildingRequest buildingRequest )
     {
         try
@@ -193,6 +183,7 @@ public class DefaultArchetypeManager
         }
     }
 
+    @Override
     public ArchetypeCatalog getRemoteCatalog( ProjectBuildingRequest buildingRequest )
     {
         try
@@ -207,6 +198,7 @@ public class DefaultArchetypeManager
         }
     }
 
+    @Override
     public void updateLocalCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype )
     {
         try
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
index 3ba4435..9cbdbc6 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeArtifactManager.java
@@ -33,7 +33,6 @@ import org.apache.maven.project.ProjectBuildingRequest;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -52,7 +51,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
 import java.util.zip.ZipEntry;
-import java.util.zip.ZipException;
 import java.util.zip.ZipFile;
 
 @Component( role = ArchetypeArtifactManager.class )
@@ -68,6 +66,7 @@ public class DefaultArchetypeArtifactManager
 
     private Map<String, File> archetypeCache = new TreeMap<String, File>();
 
+    @Override
     public File getArchetypeFile( final String groupId, final String artifactId, final String version,
                                   ArtifactRepository archetypeRepository, final ArtifactRepository localRepository,
                                   final List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest )
@@ -97,6 +96,7 @@ public class DefaultArchetypeArtifactManager
         }
     }
 
+    @Override
     public ClassLoader getArchetypeJarLoader( File archetypeFile )
         throws UnknownArchetype
     {
@@ -114,19 +114,19 @@ public class DefaultArchetypeArtifactManager
         }
     }
 
+    @Override
     public Model getArchetypePom( File jar )
         throws XmlPullParserException, UnknownArchetype, IOException
     {
-        ZipFile zipFile = null;
-        try
+        
+        try ( ZipFile zipFile = getArchetypeZipFile( jar ) )
         {
             String pomFileName = null;
-            zipFile = getArchetypeZipFile( jar );
 
             Enumeration<? extends ZipEntry> enumeration = zipFile.entries();
             while ( enumeration.hasMoreElements() )
             {
-                ZipEntry el = (ZipEntry) enumeration.nextElement();
+                ZipEntry el = enumeration.nextElement();
 
                 String entry = el.getName();
                 if ( entry.startsWith( "META-INF" ) && entry.endsWith( "pom.xml" ) )
@@ -148,12 +148,9 @@ public class DefaultArchetypeArtifactManager
             }
             return pomManager.readPom( zipFile.getInputStream( pom ) );
         }
-        finally
-        {
-            closeZipFile( zipFile );
-        }
     }
 
+    @Override
     public ZipFile getArchetypeZipFile( File archetypeFile )
         throws UnknownArchetype
     {
@@ -161,46 +158,29 @@ public class DefaultArchetypeArtifactManager
         {
             return new ZipFile( archetypeFile );
         }
-        catch ( ZipException e )
-        {
-            throw new UnknownArchetype( e );
-        }
         catch ( IOException e )
         {
             throw new UnknownArchetype( e );
         }
     }
 
+    @Override
     public boolean isFileSetArchetype( File archetypeFile )
     {
-        ZipFile zipFile = null;
-        try
+        getLogger().debug( "checking fileset archetype status on " + archetypeFile );
+        
+        try ( ZipFile zipFile = getArchetypeZipFile( archetypeFile ) )
         {
-            getLogger().debug( "checking fileset archetype status on " + archetypeFile );
-
-            zipFile = getArchetypeZipFile( archetypeFile );
-
             return isFileSetArchetype( zipFile );
         }
-        catch ( IOException e )
-        {
-            getLogger().debug( e.toString() );
-            return false;
-        }
-        catch ( UnknownArchetype e )
+        catch ( IOException | UnknownArchetype e )
         {
             getLogger().debug( e.toString() );
             return false;
         }
-        finally
-        {
-            if ( zipFile != null )
-            {
-                closeZipFile( zipFile );
-            }
-        }
     }
 
+    @Override
     public boolean isFileSetArchetype( String groupId, String artifactId, String version,
                                        ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
                                        List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest )
@@ -219,36 +199,23 @@ public class DefaultArchetypeArtifactManager
         }
     }
 
+    @Override
     public boolean isOldArchetype( File archetypeFile )
     {
-        ZipFile zipFile = null;
-        try
-        {
-            getLogger().debug( "checking old archetype status on " + archetypeFile );
-
-            zipFile = getArchetypeZipFile( archetypeFile );
+        getLogger().debug( "checking old archetype status on " + archetypeFile );
 
+        try ( ZipFile zipFile = getArchetypeZipFile( archetypeFile ) )
+        {
             return isOldArchetype( zipFile );
         }
-        catch ( IOException e )
+        catch ( IOException | UnknownArchetype e )
         {
             getLogger().debug( e.toString() );
             return false;
         }
-        catch ( UnknownArchetype e )
-        {
-            getLogger().debug( e.toString() );
-            return false;
-        }
-        finally
-        {
-            if ( zipFile != null )
-            {
-                closeZipFile( zipFile );
-            }
-        }
     }
 
+    @Override
     public boolean isOldArchetype( String groupId, String artifactId, String version,
                                    ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
                                    List<ArtifactRepository> repositories, ProjectBuildingRequest buildingRequest )
@@ -267,6 +234,7 @@ public class DefaultArchetypeArtifactManager
         }
     }
 
+    @Override
     public boolean exists( String archetypeGroupId, String archetypeArtifactId, String archetypeVersion,
                            ArtifactRepository archetypeRepository, ArtifactRepository localRepository,
                            List<ArtifactRepository> remoteRepositories, ProjectBuildingRequest buildingRequest )
@@ -300,12 +268,11 @@ public class DefaultArchetypeArtifactManager
         }
     }
 
+    @Override
     public String getPostGenerationScript( File archetypeFile ) throws UnknownArchetype
     {
-        ZipFile zipFile = null;
-        try
+        try ( ZipFile zipFile = getArchetypeZipFile( archetypeFile ) )
         {
-            zipFile = getArchetypeZipFile( archetypeFile );
             Reader reader = getDescriptorReader( zipFile, Constants.ARCHETYPE_POST_GENERATION_SCRIPT );
             return reader == null ? null : IOUtils.toString( reader );
         }
@@ -313,36 +280,23 @@ public class DefaultArchetypeArtifactManager
         {
             throw new UnknownArchetype( e );
         }
-        finally
-        {
-            closeZipFile( zipFile );
-        }
     }
 
+    @Override
     public ArchetypeDescriptor getFileSetArchetypeDescriptor( File archetypeFile )
         throws UnknownArchetype
     {
-        ZipFile zipFile = null;
-        try
+        try ( ZipFile zipFile = getArchetypeZipFile( archetypeFile ) )
         {
-            zipFile = getArchetypeZipFile( archetypeFile );
-
             return loadFileSetArchetypeDescriptor( zipFile );
         }
-        catch ( XmlPullParserException e )
+        catch ( XmlPullParserException | IOException e )
         {
             throw new UnknownArchetype( e );
         }
-        catch ( IOException e )
-        {
-            throw new UnknownArchetype( e );
-        }
-        finally
-        {
-            closeZipFile( zipFile );
-        }
     }
 
+    @Override
     public org.apache.maven.archetype.metadata.ArchetypeDescriptor getFileSetArchetypeDescriptor( String groupId,
                                                                           String artifactId,
                                                                           String version,
@@ -358,21 +312,19 @@ public class DefaultArchetypeArtifactManager
         return getFileSetArchetypeDescriptor( archetypeFile );
     }
 
+    @Override
     public List<String> getFilesetArchetypeResources( File archetypeFile )
         throws UnknownArchetype
     {
         getLogger().debug( "getFilesetArchetypeResources( \"" + archetypeFile.getAbsolutePath() + "\" )" );
-        List<String> archetypeResources = new ArrayList<String>();
+        List<String> archetypeResources = new ArrayList<>();
 
-        ZipFile zipFile = null;
-        try
+        try ( ZipFile zipFile = getArchetypeZipFile( archetypeFile )  ) 
         {
-            zipFile = getArchetypeZipFile( archetypeFile );
-
             Enumeration<? extends ZipEntry> enumeration = zipFile.entries();
             while ( enumeration.hasMoreElements() )
             {
-                ZipEntry entry = (ZipEntry) enumeration.nextElement();
+                ZipEntry entry = enumeration.nextElement();
 
                 if ( entry.getName().startsWith( Constants.ARCHETYPE_RESOURCES ) )
                 {
@@ -389,36 +341,27 @@ public class DefaultArchetypeArtifactManager
             }
             return archetypeResources;
         }
-        finally
+        catch ( IOException e )
         {
-            closeZipFile( zipFile );
+            throw new UnknownArchetype( e );
         }
     }
 
+    @Override
     public org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor( File archetypeFile )
         throws UnknownArchetype
     {
-        ZipFile zipFile = null;
-        try
+        try ( ZipFile zipFile = getArchetypeZipFile( archetypeFile ) )
         {
-            zipFile = getArchetypeZipFile( archetypeFile );
-
             return loadOldArchetypeDescriptor( zipFile );
         }
-        catch ( XmlPullParserException e )
-        {
-            throw new UnknownArchetype( e );
-        }
-        catch ( IOException e )
+        catch ( XmlPullParserException | IOException e )
         {
             throw new UnknownArchetype( e );
         }
-        finally
-        {
-            closeZipFile( zipFile );
-        }
     }
 
+    @Override
     public org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor getOldArchetypeDescriptor( String groupId,
                                                                             String artifactId,
                                                                             String version,
@@ -460,43 +403,27 @@ public class DefaultArchetypeArtifactManager
     private boolean isFileSetArchetype( ZipFile zipFile )
         throws IOException
     {
-        Reader reader = null;
-        try
+        try ( Reader reader = getArchetypeDescriptorReader( zipFile ); )
         {
-            reader = getArchetypeDescriptorReader( zipFile );
-
             return ( reader != null );
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
     }
 
     private boolean isOldArchetype( ZipFile zipFile )
         throws IOException
     {
-        Reader reader = null;
-        try
+        try ( Reader reader = getOldArchetypeDescriptorReader( zipFile ) )
         {
-            reader = getOldArchetypeDescriptorReader( zipFile );
-
             return ( reader != null );
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
     }
 
     private org.apache.maven.archetype.metadata.ArchetypeDescriptor loadFileSetArchetypeDescriptor( ZipFile zipFile )
         throws IOException, XmlPullParserException
     {
-        Reader reader = null;
-        try
+        
+        try ( Reader reader = getArchetypeDescriptorReader( zipFile ) )
         {
-            reader = getArchetypeDescriptorReader( zipFile );
-
             if ( reader == null )
             {
                 return null;
@@ -505,28 +432,17 @@ public class DefaultArchetypeArtifactManager
             ArchetypeDescriptorXpp3Reader archetypeReader = new ArchetypeDescriptorXpp3Reader();
             return archetypeReader.read( reader, false );
         }
-        catch ( IOException e )
-        {
-            throw e;
-        }
-        catch ( XmlPullParserException e )
+        catch ( IOException | XmlPullParserException e )
         {
             throw e;
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
     }
 
     private org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor loadOldArchetypeDescriptor( ZipFile zipFile )
         throws IOException, XmlPullParserException
     {
-        Reader reader = null;
-        try
+        try ( Reader reader = getOldArchetypeDescriptorReader( zipFile ) )
         {
-            reader = getOldArchetypeDescriptorReader( zipFile );
-
             if ( reader == null )
             {
                 return null;
@@ -535,18 +451,10 @@ public class DefaultArchetypeArtifactManager
             ArchetypeDescriptorBuilder builder = new ArchetypeDescriptorBuilder();
             return builder.build( reader );
         }
-        catch ( IOException ex )
+        catch ( IOException | XmlPullParserException  ex )
         {
             throw ex;
         }
-        catch ( XmlPullParserException ex )
-        {
-            throw ex;
-        }
-        finally
-        {
-            IOUtil.close( reader );
-        }
     }
 
     private Reader getArchetypeDescriptorReader( ZipFile zipFile )
@@ -595,7 +503,7 @@ public class DefaultArchetypeArtifactManager
         Enumeration<? extends ZipEntry> enu = zipFile.entries();
         while ( enu.hasMoreElements() )
         {
-            ZipEntry entryfound = (ZipEntry) enu.nextElement();
+            ZipEntry entryfound = enu.nextElement();
             getLogger().debug( "  - " + entryfound.getName() );
 
             if ( searchString.equals( entryfound.getName() ) )
@@ -607,15 +515,4 @@ public class DefaultArchetypeArtifactManager
         return null;
     }
 
-    private void closeZipFile( ZipFile zipFile )
-    {
-        try
-        {
-            zipFile.close();
-        }
-        catch ( Exception e )
-        {
-            getLogger().error( "Failed to close " + zipFile.getName() + " zipFile." );
-        }
-    }
 }
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java
index d84f9dd..8843d67 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultArchetypeFilesResolver.java
@@ -40,6 +40,7 @@ public class DefaultArchetypeFilesResolver
     extends AbstractLogEnabled
     implements ArchetypeFilesResolver
 {
+    @Override
     public List<String> getFilesWithExtension( List<String> files, String extension )
     {
         ListScanner scanner = new ListScanner();
@@ -51,6 +52,7 @@ public class DefaultArchetypeFilesResolver
         return scanner.scan( files );
     }
 
+    @Override
     public List<String> getFilteredFiles( List<String> files, String filtered )
     {
         ListScanner scanner = new ListScanner();
@@ -65,6 +67,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> filterFiles( String moduleOffset, FileSet fileSet, List<String> archetypeResources )
     {
         ListScanner scanner = new ListScanner();
@@ -77,6 +80,7 @@ public class DefaultArchetypeFilesResolver
         return scanner.scan( archetypeResources );
     }
 
+    @Override
     public List<String> findOtherResources( int level, List<String> files, String languages )
     {
         ListScanner scanner = new ListScanner();
@@ -100,6 +104,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> findOtherResources( int level, List<String> files, List<String> sourcesFiles, String languages )
     {
         ListScanner scanner = new ListScanner();
@@ -130,6 +135,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> findOtherSources( int level, List<String> files, String languages )
     {
         ListScanner scanner = new ListScanner();
@@ -157,6 +163,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> findResourcesMainFiles( List<String> files, String languages )
     {
         ListScanner scanner = new ListScanner();
@@ -171,6 +178,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> findResourcesTestFiles( List<String> files, String languages )
     {
         ListScanner scanner = new ListScanner();
@@ -185,6 +193,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> findSiteFiles( List<String> files, String languages )
     {
         ListScanner scanner = new ListScanner();
@@ -199,6 +208,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> findSourcesMainFiles( List<String> files, String languages )
     {
         ListScanner scanner = new ListScanner();
@@ -212,6 +222,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> findSourcesTestFiles( List<String> files, String languages )
     {
         ListScanner scanner = new ListScanner();
@@ -225,6 +236,7 @@ public class DefaultArchetypeFilesResolver
         return result;
     }
 
+    @Override
     public List<String> getPackagedFiles( List<String> files, String packageName )
     {
         List<String> packagedFiles = new ArrayList<String>();
@@ -239,6 +251,7 @@ public class DefaultArchetypeFilesResolver
         return packagedFiles;
     }
 
+    @Override
     public String resolvePackage( File basedir, List<String> languages )
         throws IOException
     {
@@ -249,6 +262,7 @@ public class DefaultArchetypeFilesResolver
         return resolvePackage( files );
     }
 
+    @Override
     public List<String> getUnpackagedFiles( List<String> files, String packageName )
     {
         List<String> unpackagedFiles = new ArrayList<String>();
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
index 262a38e..e4380cc 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/DefaultPomManager.java
@@ -36,7 +36,6 @@ import org.apache.maven.model.Plugin;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -72,18 +71,16 @@ public class DefaultPomManager
     extends AbstractLogEnabled
     implements PomManager
 {
+    @Override
     public void addModule( File pom, String artifactId )
         throws IOException, XmlPullParserException, DocumentException, InvalidPackaging
     {
         boolean found = false;
 
         StringWriter writer = new StringWriter();
-        Reader fileReader = null;
-
-        try
+        
+        try ( Reader fileReader = ReaderFactory.newXmlReader( pom ) )
         {
-            fileReader = ReaderFactory.newXmlReader( pom );
-
             SAXReader reader = new SAXReader();
             Document document = reader.read( fileReader );
             Element project = document.getRootElement();
@@ -150,12 +147,9 @@ public class DefaultPomManager
                 FileUtils.fileWrite( pom.getAbsolutePath(), writer.toString() );
             } // end if
         }
-        finally
-        {
-            IOUtil.close( fileReader );
-        }
     }
 
+    @Override
     public void addParent( File pom, File parentPom )
         throws IOException, XmlPullParserException
     {
@@ -185,6 +179,7 @@ public class DefaultPomManager
         writePom( generatedModel, pom, pom );
     }
 
+    @Override
     public void mergePoms( File pom, File temporaryPom )
         throws IOException, XmlPullParserException
     {
@@ -262,64 +257,43 @@ public class DefaultPomManager
         writePom( model, pom, pom );
     }
 
+    @Override
     public Model readPom( final File pomFile )
         throws IOException, XmlPullParserException
     {
-        Model model;
-        Reader pomReader = null;
-        try
+        try ( Reader pomReader = ReaderFactory.newXmlReader( pomFile ) )
         {
-            pomReader = ReaderFactory.newXmlReader( pomFile );
-
             MavenXpp3Reader reader = new MavenXpp3Reader();
 
-            model = reader.read( pomReader );
+            return reader.read( pomReader );
         }
-        finally
-        {
-            IOUtil.close( pomReader );
-        }
-        return model;
     }
 
 
+    @Override
     public Model readPom( InputStream pomStream )
         throws IOException, XmlPullParserException
     {
-        Reader pomReader = ReaderFactory.newXmlReader( pomStream );
-
-        MavenXpp3Reader reader = new MavenXpp3Reader();
+        try ( Reader pomReader = ReaderFactory.newXmlReader( pomStream ) )
+        {
+            MavenXpp3Reader reader = new MavenXpp3Reader();
 
-        return reader.read( pomReader );
+            return reader.read( pomReader );
+        }
     }
 
+    @Override
     public void writePom( final Model model, final File pomFile, final File initialPomFile )
         throws IOException
     {
-        InputStream inputStream = null;
-        Writer outputStreamWriter = null;
-
         String fileEncoding =
             StringUtils.isEmpty( model.getModelEncoding() ) ? "UTF-8" : model.getModelEncoding();
 
-        try
+        org.jdom.Document doc;
+        try ( InputStream inputStream = new FileInputStream( initialPomFile ) )
         {
-            inputStream = new FileInputStream( initialPomFile );
-
             SAXBuilder builder = new SAXBuilder();
-            org.jdom.Document doc = builder.build( inputStream );
-            inputStream.close();
-            inputStream = null;
-
-            // The cdata parts of the pom are not preserved from initial to target
-            MavenJDOMWriter writer = new MavenJDOMWriter();
-
-            outputStreamWriter =
-                new OutputStreamWriter( new FileOutputStream( pomFile ), fileEncoding );
-
-            final String ls = System.getProperty( "line.separator" );
-            Format form = Format.getRawFormat().setEncoding( fileEncoding ).setLineSeparator( ls );
-            writer.write( model, doc, outputStreamWriter, form );
+            doc = builder.build( inputStream );
         }
         catch ( JDOMException exc )
         {
@@ -328,29 +302,25 @@ public class DefaultPomManager
             ioe.initCause( exc );
             throw ioe;
         }
+        
+        try ( Writer outputStreamWriter = new OutputStreamWriter( new FileOutputStream( pomFile ), fileEncoding ) ) 
+        {
+            // The cdata parts of the pom are not preserved from initial to target
+            MavenJDOMWriter writer = new MavenJDOMWriter();
+
+            final String ls = System.lineSeparator();
+            Format form = Format.getRawFormat().setEncoding( fileEncoding ).setLineSeparator( ls );
+            writer.write( model, doc, outputStreamWriter, form );
+        }
         catch ( FileNotFoundException e )
         {
             getLogger().debug( "Creating pom file " + pomFile );
 
-            Writer pomWriter = null;
-
-            try
+            try ( Writer pomWriter = new OutputStreamWriter( new FileOutputStream( pomFile ), fileEncoding ) )
             {
-                pomWriter =
-                    new OutputStreamWriter( new FileOutputStream( pomFile ), fileEncoding );
-
                 MavenXpp3Writer writer = new MavenXpp3Writer();
                 writer.write( pomWriter, model );
             }
-            finally
-            {
-                IOUtil.close( pomWriter );
-            }
-        }
-        finally
-        {
-            IOUtil.close( inputStream );
-            IOUtil.close( outputStreamWriter );
         }
     }
 
@@ -380,11 +350,9 @@ public class DefaultPomManager
 
     private void mergeProfiles( Model model, Model generatedModel )
     {
-        @SuppressWarnings( "unchecked" )
         List<Profile> generatedProfiles = generatedModel.getProfiles();
         if ( generatedProfiles != null && generatedProfiles.size() > 0 )
         {
-            @SuppressWarnings( "unchecked" )
             List<Profile> modelProfiles = model.getProfiles();
             Map<String, Profile> modelProfileIdMap = new HashMap<String, Profile>();
             if ( modelProfiles == null )
@@ -411,8 +379,8 @@ public class DefaultPomManager
                 else
                 {
                     getLogger().warn( "Try to merge profiles with id " + generatedProfileId );
-                    mergeModelBase( (Profile) modelProfileIdMap.get( generatedProfileId ), generatedProfile );
-                    mergeProfileBuild( (Profile) modelProfileIdMap.get( generatedProfileId ), generatedProfile );
+                    mergeModelBase( modelProfileIdMap.get( generatedProfileId ), generatedProfile );
+                    mergeProfileBuild( modelProfileIdMap.get( generatedProfileId ), generatedProfile );
                 }
             }
         }
@@ -434,17 +402,15 @@ public class DefaultPomManager
     private void mergeModelBase( ModelBase model, ModelBase generatedModel )
     {
         // ModelBase can be a Model or a Profile...
-
-        @SuppressWarnings( "unchecked" )
         Map<String, Dependency> dependenciesByIds = createDependencyMap( model.getDependencies() );
-        @SuppressWarnings( "unchecked" )
+
         Map<String, Dependency> generatedDependenciesByIds = createDependencyMap( generatedModel.getDependencies() );
 
         for ( String generatedDependencyId : generatedDependenciesByIds.keySet() )
         {
             if ( !dependenciesByIds.containsKey( generatedDependencyId ) )
             {
-                model.addDependency( (Dependency) generatedDependenciesByIds.get( generatedDependencyId ) );
+                model.addDependency( generatedDependenciesByIds.get( generatedDependencyId ) );
             }
             else
             {
@@ -467,9 +433,8 @@ public class DefaultPomManager
                 model.setReporting( new Reporting() );
             }
 
-            @SuppressWarnings( "unchecked" )
             Map<String, ReportPlugin> reportPluginsByIds = model.getReporting().getReportPluginsAsMap();
-            @SuppressWarnings( "unchecked" )
+
             Map<String, ReportPlugin> generatedReportPluginsByIds =
                 generatedModel.getReporting().getReportPluginsAsMap();
 
@@ -489,9 +454,8 @@ public class DefaultPomManager
 
     private void mergeBuildPlugins( BuildBase modelBuild, BuildBase generatedModelBuild )
     {
-        @SuppressWarnings( "unchecked" )
         Map<String, Plugin> pluginsByIds = modelBuild.getPluginsAsMap();
-        @SuppressWarnings( "unchecked" )
+
         List<Plugin> generatedPlugins = generatedModelBuild.getPlugins();
 
         for ( Plugin generatedPlugin : generatedPlugins )
@@ -505,7 +469,7 @@ public class DefaultPomManager
             else
             {
                 getLogger().info( "Try to merge plugin configuration of plugins with id: " + generatedPluginsId );
-                Plugin modelPlugin = (Plugin) pluginsByIds.get( generatedPluginsId );
+                Plugin modelPlugin = pluginsByIds.get( generatedPluginsId );
 
                 modelPlugin.setConfiguration( Xpp3DomUtils.mergeXpp3Dom( (Xpp3Dom) generatedPlugin.getConfiguration(),
                                                                          (Xpp3Dom) modelPlugin.getConfiguration() ) );
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/MavenJDOMWriter.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/MavenJDOMWriter.java
index 2fe0bf2..1ddbdfc 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/MavenJDOMWriter.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/MavenJDOMWriter.java
@@ -130,6 +130,7 @@ public class MavenJDOMWriter
      * @param document
      * @deprecated
      */
+    @Deprecated
     public void write( Model project, Document document, OutputStream stream )
         throws java.io.IOException
     {
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/util/FileCharsetDetector.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/util/FileCharsetDetector.java
index ab2e39a..8dfc043 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/util/FileCharsetDetector.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/util/FileCharsetDetector.java
@@ -48,6 +48,7 @@ public class FileCharsetDetector
 
         det.Init( new nsICharsetDetectionObserver()
         {
+            @Override
             @SuppressWarnings( "checkstyle:methodname" )
             public void Notify( String charset )
             {
@@ -56,11 +57,9 @@ public class FileCharsetDetector
             }
         } );
 
-        FileInputStream fileInputStream = new FileInputStream( detectedFile );
-        BufferedInputStream imp = new BufferedInputStream( fileInputStream );
-        try
+        try ( FileInputStream fileInputStream = new FileInputStream( detectedFile );
+              BufferedInputStream imp = new BufferedInputStream( fileInputStream ) )
         {
-
             byte[] buf = new byte[1024];
             int len;
             boolean done = false;
@@ -98,11 +97,6 @@ public class FileCharsetDetector
                 charset = "ASCII";
             }
         }
-        finally
-        {
-            imp.close();
-            fileInputStream.close();
-        }
     }
 
 
@@ -114,6 +108,7 @@ public class FileCharsetDetector
 
         det.Init( new nsICharsetDetectionObserver()
         {
+            @Override
             @SuppressWarnings( "checkstyle:methodname" )
             public void Notify( String charset )
             {
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/util/Format.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/util/Format.java
index af75a09..18dce66 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/util/Format.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/util/Format.java
@@ -438,6 +438,7 @@ public class Format
         return encoding;
     }
 
+    @Override
     protected Object clone()
     {
         Format format = null;
@@ -503,6 +504,7 @@ public class Format
             }
         }
 
+        @Override
         public boolean shouldEscape( char ch )
         {
             if ( bits == 16 )
@@ -511,11 +513,11 @@ public class Format
             }
             if ( bits == 8 )
             {
-                return ( (int) ch > 255 );
+                return ( ch > 255 );
             }
             if ( bits == 7 )
             {
-                return ( (int) ch > 127 );
+                return ( ch > 127 );
             }
             else
             {
@@ -639,6 +641,7 @@ public class Format
             this.name = name;
         }
 
+        @Override
         public String toString()
         {
             return name;
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/util/NamespaceStack.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/util/NamespaceStack.java
index 142cbac..c0e02f8 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/util/NamespaceStack.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/util/NamespaceStack.java
@@ -106,7 +106,7 @@ class NamespaceStack
      */
     public String pop()
     {
-        String prefix = (String) prefixes.pop();
+        String prefix = prefixes.pop();
         uris.pop();
 
         return prefix;
@@ -136,7 +136,7 @@ class NamespaceStack
         {
             return null;
         }
-        String uri = (String) uris.elementAt( index );
+        String uri = uris.elementAt( index );
         return uri;
     }
 
@@ -145,6 +145,7 @@ class NamespaceStack
      * most recently added <code>{@link Namespace}</code> to
      * the "oldest," all to <code>System.out</code>.
      */
+    @Override
     public String toString()
     {
         StringBuffer buf = new StringBuffer();
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/common/util/XMLOutputter.java b/archetype-common/src/main/java/org/apache/maven/archetype/common/util/XMLOutputter.java
index ff25994..fc7b79b 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/common/util/XMLOutputter.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/common/util/XMLOutputter.java
@@ -1708,6 +1708,7 @@ public class XMLOutputter
     }
 
     /** Returns a copy of this XMLOutputter. */
+    @Override
     public Object clone()
     {
         // Implementation notes: Since all state of an XMLOutputter is
@@ -1735,6 +1736,7 @@ public class XMLOutputter
      *
      * @return a string listing the settings for this XMLOutputter instance
      */
+    @Override
     public String toString()
     {
         StringBuffer buffer = new StringBuffer();
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
index 747d73e..86ffc22 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/creator/FilesetArchetypeCreator.java
@@ -101,6 +101,7 @@ public class FilesetArchetypeCreator
     @Requirement
     private Invoker invoker;
 
+    @Override
     public void createArchetype( ArchetypeCreationRequest request, ArchetypeCreationResult result )
     {
         MavenProject project = request.getProject();
@@ -243,21 +244,15 @@ public class FilesetArchetypeCreator
                         pomReversedProperties, preserveCData, keepParent );
             getLogger().debug( "Created Archetype " + archetypeDescriptor.getName() + " template pom(s)" );
 
-            Writer out = null;
-            try
+            
+            try ( Writer out = WriterFactory.newXmlWriter( archetypeDescriptorFile ) )
             {
-                out = WriterFactory.newXmlWriter( archetypeDescriptorFile );
-
                 ArchetypeDescriptorXpp3Writer writer = new ArchetypeDescriptorXpp3Writer();
 
                 writer.write( out, archetypeDescriptor );
 
                 getLogger().debug( "Archetype " + archetypeDescriptor.getName() + " descriptor written" );
             }
-            finally
-            {
-                IOUtil.close( out );
-            }
 
             createArchetypeBasicIt( archetypeDescriptor, outputDirectory );
 
@@ -332,13 +327,9 @@ public class FilesetArchetypeCreator
         File basicItDirectory = new File( generatedSourcesDirectory, basic );
         basicItDirectory.mkdirs();
 
-        InputStream in = null;
-        OutputStream out = null;
-
-        try
+        try ( InputStream in = FilesetArchetypeCreator.class.getResourceAsStream( "archetype.properties" );
+              OutputStream out = new FileOutputStream( new File( basicItDirectory, "archetype.properties" ) ) )
         {
-            in = FilesetArchetypeCreator.class.getResourceAsStream( "archetype.properties" );
-
             Properties archetypeProperties = new Properties();
             archetypeProperties.load( in );
 
@@ -347,14 +338,9 @@ public class FilesetArchetypeCreator
                 archetypeProperties.put( req.getKey(), req.getDefaultValue() );
             }
 
-            out = new FileOutputStream( new File( basicItDirectory, "archetype.properties" ) );
             archetypeProperties.store( out, null );
         }
-        finally
-        {
-            IOUtil.close( in );
-            IOUtil.close( out );
-        }
+
         copyResource( "goal.txt", new File( basicItDirectory, "goal.txt" ) );
 
         getLogger().debug( "Added basic integration test" );
@@ -475,21 +461,11 @@ public class FilesetArchetypeCreator
     private void copyResource( String name, File destination )
         throws IOException
     {
-        InputStream in = null;
-        OutputStream out = null;
-
-        try
+        try ( InputStream in = FilesetArchetypeCreator.class.getResourceAsStream( name );
+              OutputStream out = new FileOutputStream( destination ) )
         {
-            in = FilesetArchetypeCreator.class.getResourceAsStream( name );
-            out = new FileOutputStream( destination );
-
             IOUtil.copy( in, out );
         }
-        finally
-        {
-            IOUtil.close( in );
-            IOUtil.close( out );
-        }
     }
 
     private void addRequiredProperties( ArchetypeDescriptor archetypeDescriptor, Properties properties )
@@ -835,9 +811,9 @@ public class FilesetArchetypeCreator
         {
             DirectoryScanner scanner = new DirectoryScanner();
             scanner.setBasedir( basedir );
-            scanner.setIncludes( (String[]) concatenateToList( fileSet.getIncludes(), fileSet.getDirectory() ).toArray(
+            scanner.setIncludes( concatenateToList( fileSet.getIncludes(), fileSet.getDirectory() ).toArray(
                 new String[fileSet.getIncludes().size()] ) );
-            scanner.setExcludes( (String[]) addLists( fileSet.getExcludes(), excludePatterns ).toArray(
+            scanner.setExcludes( addLists( fileSet.getExcludes(), excludePatterns ).toArray(
                 new String[fileSet.getExcludes().size()] ) );
             scanner.addDefaultExcludes();
             getLogger().debug( "Using fileset " + fileSet );
@@ -874,27 +850,17 @@ public class FilesetArchetypeCreator
 
             FileUtils.copyFile( initialPomFile, inputFile );
 
-            Reader in = null;
-            Writer out = null;
-            try
+            try ( Reader in = ReaderFactory.newXmlReader( inputFile );
+                  Writer out = WriterFactory.newXmlWriter( outputFile ) )
             {
-                in = ReaderFactory.newXmlReader( inputFile );
-
                 String initialcontent = IOUtil.toString( in );
 
                 String content = getReversedContent( initialcontent, pomReversedProperties );
 
                 outputFile.getParentFile().mkdirs();
 
-                out = WriterFactory.newXmlWriter( outputFile );
-
                 IOUtil.copy( content, out );
             }
-            finally
-            {
-                IOUtil.close( in );
-                IOUtil.close( out );
-            }
 
             inputFile.delete();
         }
@@ -919,10 +885,8 @@ public class FilesetArchetypeCreator
             pomManager.writePom( pom, outputFile, initialPomFile );
         }
 
-        Reader in = null;
-        try
+        try ( Reader in = ReaderFactory.newXmlReader( initialPomFile ) )
         {
-            in = ReaderFactory.newXmlReader( initialPomFile );
             String initialcontent = IOUtil.toString( in );
 
             Iterator<?> properties = pomReversedProperties.keySet().iterator();
@@ -938,10 +902,6 @@ public class FilesetArchetypeCreator
                 }
             }
         }
-        finally
-        {
-            IOUtil.close( in );
-        }
     }
 
     private FileSet createFileSet( final List<String> excludes, final boolean packaged, final boolean filtered,
@@ -1103,27 +1063,17 @@ public class FilesetArchetypeCreator
 
             FileUtils.copyFile( initialPomFile, inputFile );
 
-            Reader in = null;
-            Writer out = null;
-            try
+            try ( Reader in = ReaderFactory.newXmlReader( inputFile );
+                  Writer out = WriterFactory.newXmlWriter( outputFile ) )
             {
-                in = ReaderFactory.newXmlReader( inputFile );
-
                 String initialcontent = IOUtil.toString( in );
 
                 String content = getReversedContent( initialcontent, pomReversedProperties );
 
                 outputFile.getParentFile().mkdirs();
 
-                out = WriterFactory.newXmlWriter( outputFile );
-
                 IOUtil.copy( content, out );
             }
-            finally
-            {
-                IOUtil.close( in );
-                IOUtil.close( out );
-            }
 
             inputFile.delete();
         }
@@ -1171,10 +1121,8 @@ public class FilesetArchetypeCreator
             pomManager.writePom( pom, outputFile, initialPomFile );
         }
 
-        Reader in = null;
-        try
+        try ( Reader in = ReaderFactory.newXmlReader( initialPomFile ) )
         {
-            in = ReaderFactory.newXmlReader( initialPomFile );
             String initialcontent = IOUtil.toString( in );
 
             for ( Iterator<?> properties = pomReversedProperties.keySet().iterator(); properties.hasNext(); )
@@ -1189,10 +1137,6 @@ public class FilesetArchetypeCreator
                 }
             }
         }
-        finally
-        {
-            IOUtil.close( in );
-        }
     }
 
     private Set<String> getExtensions( List<String> files )
@@ -1791,18 +1735,14 @@ public class FilesetArchetypeCreator
 
     public String getArchetypeVersion()
     {
-        InputStream is = null;
-
         // This should actually come from the pom.properties at testing but it's not generated and put into the JAR, it
         // happens as part of the JAR plugin which is crap as it makes testing inconsistent.
         String version = "version";
 
-        try
+        try ( InputStream is = getClass().getClassLoader().getResourceAsStream( MAVEN_PROPERTIES ) )
         {
             Properties properties = new Properties();
 
-            is = getClass().getClassLoader().getResourceAsStream( MAVEN_PROPERTIES );
-
             if ( is != null )
             {
                 properties.load( is );
@@ -1821,9 +1761,5 @@ public class FilesetArchetypeCreator
         {
             return version;
         }
-        finally
-        {
-            IOUtil.close( is );
-        }
     }
 }
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
index 8cb6e5e..66e0ea5 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/downloader/DefaultDownloader.java
@@ -42,6 +42,7 @@ public class DefaultDownloader
     @Requirement
     private ArtifactResolver artifactResolver;
 
+    @Override
     public File download( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
                           ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
                           ProjectBuildingRequest buildingRequest )
@@ -96,6 +97,7 @@ public class DefaultDownloader
         return artifact.getFile();
     }
 
+    @Override
     public File downloadOld( String groupId, String artifactId, String version, ArtifactRepository archetypeRepository,
                              ArtifactRepository localRepository, List<ArtifactRepository> remoteRepositories,
                              ProjectBuildingRequest buildingRequest )
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
index fba7e5e..3d47d45 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultArchetypeGenerator.java
@@ -141,6 +141,7 @@ public class DefaultArchetypeGenerator
         oldArchetype.createArchetype( request, archetypeFile );
     }
 
+    @Override
     public void generateArchetype( ArchetypeGenerationRequest request, File archetypeFile,
                                    ArchetypeGenerationResult result )
     {
@@ -166,6 +167,7 @@ public class DefaultArchetypeGenerator
         }
     }
 
+    @Override
     public void generateArchetype( ArchetypeGenerationRequest request, ArchetypeGenerationResult result )
     {
         try
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
index 2a5851c..2e8d203 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/generator/DefaultFilesetArchetypeGenerator.java
@@ -93,6 +93,7 @@ public class DefaultFilesetArchetypeGenerator
      */
     private static final Pattern TOKEN_PATTERN = Pattern.compile( "__((?:[^_]+_)*[^_]+)__" );
 
+    @Override
     public void generateArchetype( ArchetypeGenerationRequest request, File archetypeFile )
         throws UnknownArchetype, ArchetypeNotConfigured, ProjectDirectoryExists, PomFileExists, OutputFileExists,
         ArchetypeGenerationFailure
@@ -299,22 +300,12 @@ public class DefaultFilesetArchetypeGenerator
         }
         else
         {
-            InputStream inputStream = null;
-            OutputStream out = null;
-            try
-            {
-                inputStream = archetypeZipFile.getInputStream( input );
-
-                outFile.getParentFile().mkdirs();
-
-                out = new FileOutputStream( outFile );
+            outFile.getParentFile().mkdirs();
 
-                IOUtil.copy( inputStream, out );
-            }
-            finally
+            try ( InputStream inputStream = archetypeZipFile.getInputStream( input );
+                  OutputStream out = new FileOutputStream( outFile ) )
             {
-                IOUtil.close( inputStream );
-                IOUtil.close( out );
+                IOUtil.copy( inputStream, out );
             }
         }
 
@@ -488,8 +479,7 @@ public class DefaultFilesetArchetypeGenerator
 
     private String evaluateExpression( Context context, String key, String value )
     {
-        StringWriter stringWriter = new StringWriter();
-        try
+        try ( StringWriter stringWriter = new StringWriter() )
         {
             Velocity.evaluate( context, stringWriter, key, value );
             return stringWriter.toString();
@@ -498,11 +488,6 @@ public class DefaultFilesetArchetypeGenerator
         {
             return value;
         }
-        finally
-        {
-            IOUtil.close( stringWriter );
-        }
-
     }
 
     private void processArchetypeTemplates( AbstractArchetypeDescriptor archetypeDescriptor,
@@ -730,16 +715,12 @@ public class DefaultFilesetArchetypeGenerator
 
         getLogger().debug( "Merging into " + outFile );
 
-        Writer writer = null;
-
-        try
+        try ( Writer writer = new OutputStreamWriter( new FileOutputStream( outFile ), encoding ) )
         {
             StringWriter stringWriter = new StringWriter();
 
             velocity.getEngine().mergeTemplate( templateFileName, encoding, context, stringWriter );
 
-            writer = new OutputStreamWriter( new FileOutputStream( outFile ), encoding );
-
             writer.write( StringUtils.unifyLineSeparators( stringWriter.toString() ) );
 
             writer.flush();
@@ -748,10 +729,6 @@ public class DefaultFilesetArchetypeGenerator
         {
             throw new ArchetypeGenerationFailure( "Error merging velocity templates: " + e.getMessage(), e );
         }
-        finally
-        {
-            IOUtil.close( writer );
-        }
 
         return true;
     }
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java b/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
index 5dca83e..bfc207b 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/old/DefaultOldArchetype.java
@@ -62,6 +62,7 @@ import java.io.OutputStreamWriter;
 import java.io.Reader;
 import java.io.StringWriter;
 import java.io.Writer;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
 import java.util.HashMap;
@@ -103,6 +104,7 @@ public class DefaultOldArchetype
     // artifactId = maven-foo-archetype
     // version = latest
 
+    @Override
     public void createArchetype( ArchetypeGenerationRequest request, ArtifactRepository archetypeRepository )
         throws UnknownArchetype, ArchetypeNotFoundException, ArchetypeDescriptorException,
         ArchetypeTemplateProcessingException
@@ -121,6 +123,7 @@ public class DefaultOldArchetype
         createArchetype( request, archetypeFile );
     }
 
+    @Override
     public void createArchetype( ArchetypeGenerationRequest request, File archetypeFile )
         throws ArchetypeDescriptorException, ArchetypeTemplateProcessingException
     {
@@ -170,42 +173,25 @@ public class DefaultOldArchetype
 
         URLClassLoader archetypeJarLoader;
 
-        InputStream is = null;
-
+        URL[] urls;
         try
         {
-            URL[] urls = new URL[1];
-
-            urls[0] = archetypeFile.toURL();
-
-            archetypeJarLoader = new URLClassLoader( urls );
-
-            is = getStream( ARCHETYPE_DESCRIPTOR, archetypeJarLoader );
-
-            if ( is == null )
-            {
-                is = getStream( ARCHETYPE_OLD_DESCRIPTOR, archetypeJarLoader );
-            }
-
-            if ( is == null )
-            {
-                throw new ArchetypeDescriptorException( "The " + ARCHETYPE_DESCRIPTOR
-                                                        + " descriptor cannot be found." );
-            }
-
-            descriptor = builder.build( new XmlStreamReader( is ) );
+            urls = new URL[] {archetypeFile.toURL() };
         }
-        catch ( IOException e )
+        catch ( MalformedURLException e )
         {
-            throw new ArchetypeDescriptorException( "Error reading the " + ARCHETYPE_DESCRIPTOR + " descriptor.", e );
+            throw new ArchetypeDescriptorException( e.getMessage() );
         }
-        catch ( XmlPullParserException e )
+
+        archetypeJarLoader = new URLClassLoader( urls );
+
+        try ( InputStream is = getDescriptorInputStream( archetypeJarLoader ) )
         {
-            throw new ArchetypeDescriptorException( "Error reading the " + ARCHETYPE_DESCRIPTOR + " descriptor.", e );
+            descriptor = builder.build( new XmlStreamReader( is ) );
         }
-        finally
+        catch ( IOException | XmlPullParserException e )
         {
-            IOUtil.close( is );
+            throw new ArchetypeDescriptorException( "Error reading the " + ARCHETYPE_DESCRIPTOR + " descriptor.", e );
         }
 
         // ----------------------------------------------------------------------
@@ -298,11 +284,8 @@ public class DefaultOldArchetype
         {
             if ( parentPomFile.exists() )
             {
-                Reader fileReader = null;
-
-                try
+                try ( Reader fileReader = ReaderFactory.newXmlReader( parentPomFile ) )
                 {
-                    fileReader = ReaderFactory.newXmlReader( parentPomFile );
                     MavenXpp3Reader reader = new MavenXpp3Reader();
                     parentModel = reader.read( fileReader );
                     if ( !"pom".equals( parentModel.getPackaging() ) )
@@ -311,19 +294,10 @@ public class DefaultOldArchetype
                             "Unable to add module to the current project as it is not of packaging type 'pom'" );
                     }
                 }
-                catch ( IOException e )
+                catch ( IOException | XmlPullParserException e )
                 {
                     throw new ArchetypeTemplateProcessingException( "Unable to read parent POM", e );
                 }
-                catch ( XmlPullParserException e )
-                {
-                    throw new ArchetypeTemplateProcessingException( "Unable to read parent POM", e );
-                }
-                finally
-                {
-                    IOUtil.close( fileReader );
-                }
-
                 parentModel.getModules().add( artifactId );
             }
         }
@@ -360,43 +334,28 @@ public class DefaultOldArchetype
                 IOUtil.close( fileWriter );
             }
 */
-            Reader fileReader = null;
+            
             boolean added;
             StringWriter w = new StringWriter();
-            try
+            try ( Reader fileReader = ReaderFactory.newXmlReader( parentPomFile ) )
             {
-                fileReader = ReaderFactory.newXmlReader( parentPomFile );
                 added = addModuleToParentPom( artifactId, fileReader, w );
             }
-            catch ( IOException e )
-            {
-                throw new ArchetypeTemplateProcessingException( "Unable to rewrite parent POM", e );
-            }
-            catch ( DocumentException e )
+            catch ( IOException | DocumentException e )
             {
                 throw new ArchetypeTemplateProcessingException( "Unable to rewrite parent POM", e );
             }
-            finally
-            {
-                IOUtil.close( fileReader );
-            }
 
             if ( added )
             {
-                Writer out = null;
-                try
+                try ( Writer out = WriterFactory.newXmlWriter( parentPomFile ) )
                 {
-                    out = WriterFactory.newXmlWriter( parentPomFile );
                     IOUtil.copy( w.toString(), out );
                 }
                 catch ( IOException e )
                 {
                     throw new ArchetypeTemplateProcessingException( "Unable to rewrite parent POM", e );
                 }
-                finally
-                {
-                    IOUtil.close( out );
-                }
             }
         }
 
@@ -410,6 +369,24 @@ public class DefaultOldArchetype
 
     }
 
+    private InputStream getDescriptorInputStream( ClassLoader archetypeJarLoader ) throws ArchetypeDescriptorException
+    {
+        InputStream is = getStream( ARCHETYPE_DESCRIPTOR, archetypeJarLoader );
+
+        if ( is == null )
+        {
+            is = getStream( ARCHETYPE_OLD_DESCRIPTOR, archetypeJarLoader );
+        }
+
+        if ( is == null )
+        {
+            throw new ArchetypeDescriptorException( "The " + ARCHETYPE_DESCRIPTOR
+                                                    + " descriptor cannot be found." );
+        }
+        
+        return is;
+    }
+
     static boolean addModuleToParentPom( String artifactId, Reader fileReader, Writer fileWriter )
         throws DocumentException, IOException, ArchetypeTemplateProcessingException
     {
@@ -490,27 +467,17 @@ public class DefaultOldArchetype
         // ---------------------------------------------------------------------
 
         Model generatedModel;
-        Reader pomReader = null;
-        try
+        
+        try ( Reader pomReader = ReaderFactory.newXmlReader( pomFile ) )
         {
-            pomReader = ReaderFactory.newXmlReader( pomFile );
-
             MavenXpp3Reader reader = new MavenXpp3Reader();
 
             generatedModel = reader.read( pomReader );
         }
-        catch ( IOException e )
+        catch ( IOException | XmlPullParserException e )
         {
             throw new ArchetypeTemplateProcessingException( "Error reading POM", e );
         }
-        catch ( XmlPullParserException e )
-        {
-            throw new ArchetypeTemplateProcessingException( "Error reading POM", e );
-        }
-        finally
-        {
-            IOUtil.close( pomReader );
-        }
 
         if ( parentModel != null )
         {
@@ -528,11 +495,8 @@ public class DefaultOldArchetype
             }
             generatedModel.setParent( parent );
 
-            Writer pomWriter = null;
-            try
+            try (  Writer pomWriter = WriterFactory.newXmlWriter( pomFile ) )
             {
-                pomWriter = WriterFactory.newXmlWriter( pomFile );
-
                 MavenXpp3Writer writer = new MavenXpp3Writer();
                 writer.write( pomWriter, generatedModel );
             }
@@ -540,10 +504,6 @@ public class DefaultOldArchetype
             {
                 throw new ArchetypeTemplateProcessingException( "Error rewriting POM", e );
             }
-            finally
-            {
-                IOUtil.close( pomWriter );
-            }
         }
 
         // XXX: Following POM processing block may be a candidate for
@@ -841,8 +801,7 @@ public class DefaultOldArchetype
 
         if ( descriptor.isFiltered() )
         {
-            Writer writer = null;
-            try
+            try ( Writer writer = new OutputStreamWriter( new FileOutputStream( f ), descriptor.getEncoding() ) )
             {
                 StringWriter stringWriter = new StringWriter();
 
@@ -850,8 +809,6 @@ public class DefaultOldArchetype
 
                 velocity.getEngine().mergeTemplate( template, descriptor.getEncoding(), context, stringWriter );
 
-                writer = new OutputStreamWriter( new FileOutputStream( f ), descriptor.getEncoding() );
-
                 writer.write( StringUtils.unifyLineSeparators( stringWriter.toString() ) );
 
                 writer.flush();
@@ -860,33 +817,18 @@ public class DefaultOldArchetype
             {
                 throw new ArchetypeTemplateProcessingException( "Error merging velocity templates", e );
             }
-            finally
-            {
-                IOUtil.close( writer );
-            }
         }
         else
         {
-            InputStream is = getStream( ARCHETYPE_RESOURCES + "/" + template, null );
-
-            OutputStream fos = null;
-
-            try
+            try ( InputStream is = getStream( ARCHETYPE_RESOURCES + "/" + template, null );
+                  OutputStream fos = new FileOutputStream( f ) )
             {
-                fos = new FileOutputStream( f );
-
                 IOUtil.copy( is, fos );
             }
             catch ( Exception e )
             {
                 throw new ArchetypeTemplateProcessingException( "Error copying file", e );
             }
-            finally
-            {
-                IOUtil.close( fos );
-
-                IOUtil.close( is );
-            }
         }
     }
 
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawler.java b/archetype-common/src/main/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawler.java
index 77a87e0..1fd3f97 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawler.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/repositorycrawler/DefaultRepositoryCrawler.java
@@ -31,7 +31,6 @@ import org.apache.maven.model.Model;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.WriterFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
@@ -53,6 +52,7 @@ public class DefaultRepositoryCrawler
     @Requirement
     private ArchetypeArtifactManager archetypeArtifactManager;
 
+    @Override
     public ArchetypeCatalog crawl( File repository )
     {
         if ( !repository.isDirectory() )
@@ -149,14 +149,13 @@ public class DefaultRepositoryCrawler
         return catalog;
     }
 
+    @Override
     public boolean writeCatalog( ArchetypeCatalog archetypeCatalog, File archetypeCatalogFile )
     {
-        Writer fileWriter = null;
-        try
-        {
-            ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
+        ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
 
-            fileWriter = WriterFactory.newXmlWriter( archetypeCatalogFile );
+        try ( Writer fileWriter = WriterFactory.newXmlWriter( archetypeCatalogFile ) )
+        {
             catalogWriter.write( fileWriter, archetypeCatalog );
             return true;
         }
@@ -165,9 +164,5 @@ public class DefaultRepositoryCrawler
             getLogger().warn( "Catalog can not be writen to " + archetypeCatalogFile, ex );
             return false;
         }
-        finally
-        {
-            IOUtil.close( fileWriter );
-        }
     }
 }
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java b/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java
index 27a49a7..7d75751 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/source/CatalogArchetypeDataSource.java
@@ -29,7 +29,6 @@ import org.apache.maven.archetype.catalog.ArchetypeCatalog;
 import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Reader;
 import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Writer;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.WriterFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
@@ -45,11 +44,8 @@ public abstract  class CatalogArchetypeDataSource
     protected void writeLocalCatalog( ArchetypeCatalog catalog, File catalogFile )
         throws ArchetypeDataSourceException
     {
-        Writer writer = null;
-        try
+        try ( Writer writer = WriterFactory.newXmlWriter( catalogFile ) )
         {
-            writer = WriterFactory.newXmlWriter( catalogFile );
-
             ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
 
             catalogWriter.write( writer, catalog );
@@ -58,20 +54,16 @@ public abstract  class CatalogArchetypeDataSource
         {
             throw new ArchetypeDataSourceException( "Error writing archetype catalog.", e );
         }
-        finally
-        {
-            IOUtil.close( writer );
-        }
     }
 
     protected ArchetypeCatalog readCatalog( Reader reader )
         throws ArchetypeDataSourceException
     {
-        try
+        try ( Reader catReader = reader )
         {
             ArchetypeCatalogXpp3Reader catalogReader = new ArchetypeCatalogXpp3Reader();
 
-            return catalogReader.read( reader );
+            return catalogReader.read( catReader );
         }
         catch ( IOException e )
         {
@@ -81,9 +73,5 @@ public abstract  class CatalogArchetypeDataSource
         {
             throw new ArchetypeDataSourceException( "Error parsing archetype catalog.", e );
         }
-        finally
-        {
-            IOUtil.close( reader );
-        }
     }
 }
\ No newline at end of file
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/source/InternalCatalogArchetypeDataSource.java b/archetype-common/src/main/java/org/apache/maven/archetype/source/InternalCatalogArchetypeDataSource.java
index f7f617d..32f7973 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/source/InternalCatalogArchetypeDataSource.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/source/InternalCatalogArchetypeDataSource.java
@@ -37,6 +37,7 @@ public class InternalCatalogArchetypeDataSource
     extends CatalogArchetypeDataSource
 {
 
+    @Override
     public ArchetypeCatalog getArchetypeCatalog( ProjectBuildingRequest buildingRequest )
         throws ArchetypeDataSourceException
     {
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSource.java b/archetype-common/src/main/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSource.java
index 5cbddf6..0b50371 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSource.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSource.java
@@ -40,6 +40,7 @@ public class LocalCatalogArchetypeDataSource
     @Requirement
     private RepositoryManager repositoryManager;
 
+    @Override
     public void updateCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype )
         throws ArchetypeDataSourceException
     {
@@ -100,6 +101,7 @@ public class LocalCatalogArchetypeDataSource
         writeLocalCatalog( catalog, catalogFile );
     }
 
+    @Override
     public ArchetypeCatalog getArchetypeCatalog( ProjectBuildingRequest buildingRequest )
         throws ArchetypeDataSourceException
     {
diff --git a/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java b/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
index c88dae9..6616eba 100644
--- a/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
+++ b/archetype-common/src/main/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSource.java
@@ -138,6 +138,7 @@ public class RemoteCatalogArchetypeDataSource extends CatalogArchetypeDataSource
         }
     }
 
+    @Override
     public void updateCatalog( ProjectBuildingRequest buildingRequest, Archetype archetype )
         throws ArchetypeDataSourceException
     {
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
index 191c449..ecfba5c 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/generator/DefaultArchetypeGeneratorTest.java
@@ -19,15 +19,20 @@ package org.apache.maven.archetype.generator;
  * under the License.
  */
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.Properties;
+
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
 import org.apache.maven.archetype.ArchetypeGenerationResult;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
-import org.apache.maven.model.Dependency;
 import org.apache.maven.model.Model;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.ReportPlugin;
 import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 import org.apache.maven.project.DefaultProjectBuildingRequest;
@@ -39,14 +44,6 @@ import org.codehaus.plexus.util.ReaderFactory;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.Properties;
-
 public class DefaultArchetypeGeneratorTest
     extends AbstractMojoTestCase
 {
@@ -239,11 +236,11 @@ public class DefaultArchetypeGeneratorTest
         assertEquals( "1.0-SNAPSHOT", model.getVersion() );
         assertTrue( model.getModules().isEmpty() );
         assertFalse( model.getDependencies().isEmpty() );
-        assertEquals( "1.0", ( (Dependency) model.getDependencies().get( 0 ) ).getVersion() );
+        assertEquals( "1.0", model.getDependencies().get( 0 ).getVersion() );
         assertFalse( model.getBuild().getPlugins().isEmpty() );
-        assertEquals( "1.0", ( (Plugin) model.getBuild().getPlugins().get( 0 ) ).getVersion() );
+        assertEquals( "1.0", model.getBuild().getPlugins().get( 0 ).getVersion() );
         assertFalse( model.getReporting().getPlugins().isEmpty() );
-        assertEquals( "1.0", ( (ReportPlugin) model.getReporting().getPlugins().get( 0 ) ).getVersion() );
+        assertEquals( "1.0", model.getReporting().getPlugins().get( 0 ).getVersion() );
     }
 
     public void testGenerateArchetypePartialOnParent()
@@ -516,6 +513,7 @@ public class DefaultArchetypeGeneratorTest
 
     }
 
+    @Override
     protected void tearDown()
         throws Exception
     {
@@ -524,6 +522,7 @@ public class DefaultArchetypeGeneratorTest
         outputDirectory = null;
     }
 
+    @Override
     protected void setUp()
         throws Exception
     {
@@ -640,16 +639,11 @@ public class DefaultArchetypeGeneratorTest
         throws IOException, FileNotFoundException
     {
         Properties properties = new Properties();
-        InputStream in = new FileInputStream( propertyFile );
-        try
+        try ( InputStream in = new FileInputStream( propertyFile ) )
         {
             properties.load( in );
             return properties;
         }
-        finally
-        {
-            IOUtil.close( in );
-        }
     }
 
     private Properties loadProperties( final String template )
@@ -675,32 +669,15 @@ public class DefaultArchetypeGeneratorTest
         return new File( outputDirectory, "/pom.xml.sample" );
     }
 
-    private File getPropertiesFile()
-    {
-        return new File( outputDirectory, "/archetype.properties" );
-    }
-
-    private File getPropertiesSampleFile()
-    {
-        return new File( outputDirectory, "/archetype.properties.sample" );
-    }
-
     private Model readPom( final File pomFile )
         throws IOException, XmlPullParserException
     {
-        Reader pomReader = null;
-        try
+        try ( Reader pomReader = ReaderFactory.newXmlReader( pomFile ) )
         {
-            pomReader = ReaderFactory.newXmlReader( pomFile );
-
             MavenXpp3Reader reader = new MavenXpp3Reader();
 
             return reader.read( pomReader );
         }
-        finally
-        {
-            IOUtil.close( pomReader );
-        }
     }
     
     private static class Archetype
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
index fd4cfdd..391cccb 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/old/ArchetypeTest.java
@@ -356,6 +356,7 @@ public class ArchetypeTest
         }
     }
 
+    @Override
     protected void setUp()
         throws Exception
     {
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeXsdTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeXsdTest.java
index c307f56..0e258f9 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeXsdTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/old/descriptor/ArchetypeXsdTest.java
@@ -26,7 +26,6 @@ import javax.xml.parsers.SAXParser;
 import javax.xml.parsers.SAXParserFactory;
 
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.util.IOUtil;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
@@ -51,26 +50,23 @@ public class ArchetypeXsdTest
                                "http://www.w3.org/2001/XMLSchema" );
         saxParser.setProperty( "http://java.sun.com/xml/jaxp/properties/schemaSource", archetypeXsd );
 
-        InputStream in = getClass().getResourceAsStream( "sample-archetype.xml" );
-        try
+        try ( InputStream in = getClass().getResourceAsStream( "sample-archetype.xml" ); )
         {
             saxParser.parse( new InputSource( in ), new Handler() );
         }
-        finally
-        {
-            IOUtil.close( in );
-        }
     }
 
     private static class Handler
         extends DefaultHandler
     {
+        @Override
         public void warning ( SAXParseException e )
             throws SAXException
         {
             throw e;
         }
 
+        @Override
         public void error ( SAXParseException e )
             throws SAXException
         {
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
index 406c076..219ba29 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/source/LocalCatalogArchetypeDataSourceTest.java
@@ -21,7 +21,6 @@ import java.io.File;
 import java.io.FileWriter;
 import java.io.Writer;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
@@ -35,6 +34,7 @@ import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
 public class LocalCatalogArchetypeDataSourceTest extends PlexusTestCase
 {
 
+    @Override
     protected void setUp()
                     throws Exception
     {
@@ -53,9 +53,10 @@ public class LocalCatalogArchetypeDataSourceTest extends PlexusTestCase
 
         File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" );
         ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
-        Writer writer = new FileWriter( catalogFile );
-        catalogWriter.write( writer, catalog );
-        IOUtils.closeQuietly( writer );
+        try ( Writer writer = new FileWriter( catalogFile ) )
+        {
+            catalogWriter.write( writer, catalog );
+        }
     }
     
     public void testLocalCatalog()
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSourceTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSourceTest.java
index 95201fc..300da23 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSourceTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/source/RemoteCatalogArchetypeDataSourceTest.java
@@ -17,11 +17,10 @@ package org.apache.maven.archetype.source;
  *  under the License.
  */
 
-import java.io.File;
 import java.io.FileWriter;
+import java.io.File;
 import java.io.Writer;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.catalog.Archetype;
 import org.apache.maven.archetype.catalog.ArchetypeCatalog;
@@ -42,6 +41,7 @@ public class RemoteCatalogArchetypeDataSourceTest extends AbstractMojoTestCase
 
     int port;
 
+    @Override
     protected void setUp()
         throws Exception
     {
@@ -77,11 +77,13 @@ public class RemoteCatalogArchetypeDataSourceTest extends AbstractMojoTestCase
 
         File catalogFile = new File( catalogDirectory, "archetype-catalog.xml" );
         ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
-        Writer writer = new FileWriter( catalogFile );
-        catalogWriter.write( writer, catalog );
-        IOUtils.closeQuietly( writer );
+        try ( Writer writer = new FileWriter( catalogFile ) )
+        {
+            catalogWriter.write( writer, catalog );
+        }
     }
 
+    @Override
     protected void tearDown()
         throws Exception
     {
diff --git a/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java b/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
index 3d7f0b1..e610dfa 100644
--- a/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
+++ b/archetype-common/src/test/java/org/apache/maven/archetype/test/ArchetypeGenerationTest.java
@@ -66,7 +66,7 @@ public class ArchetypeGenerationTest
         // Here I am just grabbing a OldArchetype but in a UI you would take the OldArchetype objects and present
         // them to the user.
 
-        Archetype selection = (Archetype) catalog.getArchetypes().get( catalog.getArchetypes().size() - 1 );
+        Archetype selection = catalog.getArchetypes().get( catalog.getArchetypes().size() - 1 );
 
         System.err.println( "Selected OldArchetype = " + selection );
         // Now you will present a dialog, or whatever, and grab the following values.
diff --git a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java
index 5009392..4ad9d2c 100644
--- a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java
+++ b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/creator/DefaultArchetypeCreatorIT.java
@@ -21,23 +21,19 @@ package org.apache.maven.archetype.creator;
 
 import org.apache.maven.archetype.ArchetypeCreationRequest;
 import org.apache.maven.archetype.ArchetypeCreationResult;
-import org.apache.maven.archetype.ArchetypeManager;
 import org.apache.maven.archetype.common.Constants;
 import org.apache.maven.artifact.repository.DefaultArtifactRepository;
 import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 import org.apache.maven.project.DefaultProjectBuildingRequest;
 import org.apache.maven.project.MavenProject;
-import org.apache.maven.project.MavenProjectBuilder;
 import org.apache.maven.project.ProjectBuilder;
 import org.apache.maven.project.ProjectBuildingRequest;
-import org.apache.maven.project.ProjectBuildingResult;
 //import org.apache.maven.project.MavenProjectBuildingResult;
 import org.apache.maven.repository.internal.MavenRepositorySystemSession;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.PropertyUtils;
 import org.codehaus.plexus.util.StringUtils;
-import org.junit.Ignore;
 import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
 
 import java.io.File;
@@ -448,12 +444,14 @@ public class DefaultArchetypeCreatorIT
         assertExists( getTemplateFile( project, "src/main/webapp/resources/__artifactId__/a.gif" ) );
     }
     
+    @Override
     protected void tearDown()
         throws Exception
     {
         super.tearDown();
     }
 
+    @Override
     protected void setUp()
         throws Exception
     {
diff --git a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java
index e46afaf..23f6523 100644
--- a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java
+++ b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripIT.java
@@ -1,10 +1,5 @@
 package org.apache.maven.archetype.test;
 
-import java.io.File;
-import java.io.FileWriter;
-import java.io.Writer;
-import java.util.Properties;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -24,7 +19,11 @@ import java.util.Properties;
  * under the License.
  */
 
-import org.apache.commons.io.IOUtils;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.Writer;
+import java.util.Properties;
+
 import org.apache.maven.archetype.ArchetypeCreationRequest;
 import org.apache.maven.archetype.ArchetypeCreationResult;
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
@@ -171,9 +170,10 @@ public class ArchetyperRoundtripIT
         catalog.addArchetype( generatedArchetype );
 
         ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
-        Writer writer = new FileWriter( catalogFile );
-        catalogWriter.write( writer, catalog );
-        IOUtils.closeQuietly( writer );
+        try ( Writer writer = new FileWriter( catalogFile ) )
+        {
+            catalogWriter.write( writer, catalog );
+        }
 
         // (6) create a project form the archetype we just created
         String outputDirectory = new File( getBasedir(),
@@ -226,6 +226,7 @@ public class ArchetyperRoundtripIT
 
     int port;
 
+    @Override
     public void setUp()
         throws Exception
     {
@@ -248,6 +249,7 @@ public class ArchetyperRoundtripIT
 
     }
 
+    @Override
     public void tearDown()
         throws Exception
     {
diff --git a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyIT.java b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyIT.java
index 73ee616..33d9d1b 100644
--- a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyIT.java
+++ b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/ArchetyperRoundtripWithProxyIT.java
@@ -26,7 +26,6 @@ import java.util.Properties;
  * under the License.
  */
 
-import org.apache.commons.io.IOUtils;
 import org.apache.maven.archetype.ArchetypeCreationRequest;
 import org.apache.maven.archetype.ArchetypeCreationResult;
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
@@ -182,9 +181,10 @@ public class ArchetyperRoundtripWithProxyIT
         catalog.addArchetype( generatedArchetype );
 
         ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
-        Writer writer = new FileWriter( catalogFile );
-        catalogWriter.write( writer, catalog );
-        IOUtils.closeQuietly( writer );
+        try ( Writer writer = new FileWriter( catalogFile ) )
+        {
+            catalogWriter.write( writer, catalog );
+        }
 
         // (6) create a project form the archetype we just created
         String outputDirectory = new File( getBasedir(),
@@ -212,6 +212,7 @@ public class ArchetyperRoundtripWithProxyIT
 
     }
 
+    @Override
     public void setUp()
         throws Exception
     {
@@ -245,6 +246,7 @@ public class ArchetyperRoundtripWithProxyIT
 
     }
 
+    @Override
     public void tearDown()
         throws Exception
     {
diff --git a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleIT.java b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleIT.java
index d777518..8b5e416 100644
--- a/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleIT.java
+++ b/archetype-testing/archetype-final/src/test/java/org/apache/maven/archetype/test/RoundtripMultiModuleIT.java
@@ -1,13 +1,5 @@
 package org.apache.maven.archetype.test;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-import java.io.OutputStream;
-import java.io.Writer;
-import java.util.Iterator;
-import java.util.Properties;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -27,7 +19,14 @@ import java.util.Properties;
  * under the License.
  */
 
-import org.apache.commons.io.IOUtils;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.OutputStream;
+import java.io.Writer;
+import java.util.Iterator;
+import java.util.Properties;
+
 import org.apache.maven.archetype.ArchetypeCreationRequest;
 import org.apache.maven.archetype.ArchetypeCreationResult;
 import org.apache.maven.archetype.ArchetypeGenerationRequest;
@@ -184,9 +183,10 @@ public class RoundtripMultiModuleIT
         catalog.addArchetype( generatedArchetype );
 
         ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
-        Writer writer = new FileWriter( catalogFile );
-        catalogWriter.write( writer, catalog );
-        IOUtils.closeQuietly( writer );
+        try ( Writer writer = new FileWriter( catalogFile ) )
+        {
+            catalogWriter.write( writer, catalog );
+        }
 
         // (6) create a project form the archetype we just created
         String outputDirectory = new File( getBasedir(),
@@ -233,6 +233,7 @@ public class RoundtripMultiModuleIT
 
     int port;
 
+    @Override
     public void setUp()
         throws Exception
     {
@@ -256,6 +257,7 @@ public class RoundtripMultiModuleIT
 
     }
 
+    @Override
     public void tearDown()
         throws Exception
     {
diff --git a/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/ProxyServlet.java b/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/ProxyServlet.java
index 8388221..f50c3e9 100644
--- a/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/ProxyServlet.java
+++ b/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/ProxyServlet.java
@@ -72,6 +72,7 @@ public class ProxyServlet
     /* (non-Javadoc)
      * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
      */
+    @Override
     public void init( ServletConfig config )
         throws ServletException
     {
@@ -82,6 +83,7 @@ public class ProxyServlet
     /* (non-Javadoc)
      * @see javax.servlet.Servlet#getServletConfig()
      */
+    @Override
     public ServletConfig getServletConfig()
     {
         return config;
@@ -90,6 +92,7 @@ public class ProxyServlet
     /* (non-Javadoc)
      * @see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
      */
+    @Override
     @SuppressWarnings( "checkstyle:methodlength" )
     public void service( ServletRequest req, ServletResponse res )
         throws ServletException,
@@ -312,6 +315,7 @@ public class ProxyServlet
     /* (non-Javadoc)
      * @see javax.servlet.Servlet#getServletInfo()
      */
+    @Override
     public String getServletInfo()
     {
         return "Proxy Servlet";
@@ -320,6 +324,7 @@ public class ProxyServlet
     /* (non-Javadoc)
      * @see javax.servlet.Servlet#destroy()
      */
+    @Override
     public void destroy()
     {
     }
@@ -334,8 +339,7 @@ public class ProxyServlet
         throws ServletException, IOException
     {
         response.setContentType( "text/html;charset=UTF-8" );
-        PrintWriter out = response.getWriter();
-        try
+        try ( PrintWriter out = response.getWriter()  )
         {
         /* TODO output your page here
         out.println("<html>");
@@ -348,9 +352,5 @@ public class ProxyServlet
         out.println("</html>");
          */
         }
-        finally
-        {
-            out.close();
-        }
     }
 }
diff --git a/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java b/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java
index a612d63..747bdd0 100644
--- a/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java
+++ b/archetype-testing/archetype-proxy/src/main/java/org/apache/maven/archetype/proxy/RepositoryServlet.java
@@ -53,6 +53,7 @@ public class RepositoryServlet
      * (non-Javadoc)
      * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
      */
+    @Override
     public void init( ServletConfig config )
         throws ServletException
     {
@@ -64,6 +65,7 @@ public class RepositoryServlet
      * (non-Javadoc)
      * @see javax.servlet.Servlet#getServletConfig()
      */
+    @Override
     public ServletConfig getServletConfig()
     {
         return config;
@@ -73,6 +75,7 @@ public class RepositoryServlet
      * (non-Javadoc)
      * @see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
      */
+    @Override
     public void service( ServletRequest req, ServletResponse res )
         throws ServletException
     {
@@ -217,6 +220,7 @@ public class RepositoryServlet
      * (non-Javadoc)
      * @see javax.servlet.Servlet#getServletInfo()
      */
+    @Override
     public String getServletInfo()
     {
         return "Repository Servlet";
@@ -226,6 +230,7 @@ public class RepositoryServlet
      * (non-Javadoc)
      * @see javax.servlet.Servlet#destroy()
      */
+    @Override
     public void destroy()
     {
     }
@@ -240,8 +245,7 @@ public class RepositoryServlet
         throws ServletException, IOException
     {
         response.setContentType( "text/html;charset=UTF-8" );
-        PrintWriter out = response.getWriter();
-        try
+        try ( PrintWriter out = response.getWriter() )
         {
             /*
              * TODO output your page here out.println("<html>"); out.println("<head>");
@@ -250,12 +254,9 @@ public class RepositoryServlet
              * out.println("</body>"); out.println("</html>");
              */
         }
-        finally
-        {
-            out.close();
-        }
     }
 
+    @Override
     public String getServletName()
     {
         return "Repository Servlet";
diff --git a/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java b/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java
index 79c9f4f..a8c742c 100644
--- a/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java
+++ b/archetype-testing/archetype-repository/src/main/java/org/apache/maven/archetype/repository/RepositoryServlet.java
@@ -58,15 +58,14 @@ public class RepositoryServlet
         return new File( filePath );
     }
 
+    @Override
     public void doGet( HttpServletRequest request, HttpServletResponse response )
         throws ServletException
     {
         log( "Getting file" );
-        InputStream is = null;
-        try
+        
+        try ( InputStream is = new FileInputStream( getFile( request ) ) )
         {
-            is = new FileInputStream( getFile( request ) );
-
             IO.copy( is, response.getOutputStream() );
             response.setStatus( HttpServletResponse.SC_OK );
             log( "File sent" );
@@ -81,9 +80,5 @@ public class RepositoryServlet
             response.setStatus( HttpServletResponse.SC_INTERNAL_SERVER_ERROR );
             log( "Cannot send file", iOException );
         }
-        finally
-        {
-            IO.close( is );
-        }
     }
 }
\ No newline at end of file
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java
index 958c0cd..0ce77d5 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CrawlRepositoryMojo.java
@@ -54,6 +54,7 @@ public class CrawlRepositoryMojo
     @Parameter( property = "repository", defaultValue = "${settings.localRepository}" )
     private File repository;
 
+    @Override
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
index e3e6cf0..2b0f21a 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateArchetypeFromProjectMojo.java
@@ -228,6 +228,7 @@ public class CreateArchetypeFromProjectMojo
 //    @Parameter( defaultValue = "${session.settings}", readonly = true, required = true )
 //    private File settingsXml;
 
+    @Override
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
index a00911f..14007c8 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/CreateProjectFromArchetypeMojo.java
@@ -163,6 +163,7 @@ public class CreateProjectFromArchetypeMojo
     @Parameter( property = "filter" )
     private String filter;
 
+    @Override
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
index 32e9815..4d5e2ab 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/IntegrationTestMojo.java
@@ -22,7 +22,6 @@ package org.apache.maven.archetype.mojos;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
@@ -278,6 +277,7 @@ public class IntegrationTestMojo
     @Parameter
     private Map<String, String> properties = new HashMap<String, String>();
 
+    @Override
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
@@ -432,13 +432,10 @@ public class IntegrationTestMojo
         }
 
         getLog().debug( "Comparing files with EOL style ignored." );
-        BufferedReader referenceFileReader = null;
-        BufferedReader actualFileReader = null;
-        try
+        
+        try ( BufferedReader referenceFileReader = new BufferedReader( new FileReader( referenceFile ) ); 
+              BufferedReader actualFileReader = new BufferedReader( new FileReader( actualFile ) ) )
         {
-            referenceFileReader = new BufferedReader( new FileReader( referenceFile ) );
-            actualFileReader = new BufferedReader( new FileReader( actualFile ) );
-
             String refLine = null;
             String actualLine = null;
 
@@ -455,29 +452,17 @@ public class IntegrationTestMojo
 
             return true;
         }
-        finally
-        {
-            IOUtil.close( referenceFileReader );
-            IOUtil.close( actualFileReader );
-        }
     }
 
     private Properties loadProperties( final File propertiesFile )
-        throws IOException, FileNotFoundException
+        throws IOException
     {
         Properties properties = new Properties();
 
-        InputStream in = null;
-        try
+        try ( InputStream in = new FileInputStream( propertiesFile ) )
         {
-            in = new FileInputStream( propertiesFile );
-
             properties.load( in );
         }
-        finally
-        {
-            IOUtil.close( in );
-        }
 
         return properties;
     }
@@ -819,32 +804,23 @@ public class IntegrationTestMojo
         {
             String xml;
 
-            Reader reader = null;
-            try
+            // interpolation with token @...@
+            Map<String, Object> composite = getInterpolationValueSource();
+
+            try ( Reader xmlStreamReader = ReaderFactory.newXmlReader( originalFile );
+                  Reader reader = new InterpolationFilterReader( xmlStreamReader, composite, "@", "@" ) )
             {
-                // interpolation with token @...@
-                Map<String, Object> composite = getInterpolationValueSource();
-                reader = ReaderFactory.newXmlReader( originalFile );
-                reader = new InterpolationFilterReader( reader, composite, "@", "@" );
                 xml = IOUtil.toString( reader );
             }
-            finally
-            {
-                IOUtil.close( reader );
-            }
 
-            Writer writer = null;
-            try
+            
+            try ( Writer writer = WriterFactory.newXmlWriter( interpolatedFile ) )
             {
                 interpolatedFile.getParentFile().mkdirs();
-                writer = WriterFactory.newXmlWriter( interpolatedFile );
+                
                 writer.write( xml );
                 writer.flush();
             }
-            finally
-            {
-                IOUtil.close( writer );
-            }
         }
         catch ( IOException e )
         {
@@ -889,6 +865,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#clear()
          */
+        @Override
         public void clear()
         {
             // nothing here
@@ -899,6 +876,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#containsKey(java.lang.Object)
          */
+        @Override
         public boolean containsKey( Object key )
         {
             if ( !( key instanceof String ) )
@@ -931,6 +909,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#containsValue(java.lang.Object)
          */
+        @Override
         public boolean containsValue( Object value )
         {
             throw new UnsupportedOperationException();
@@ -941,6 +920,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#entrySet()
          */
+        @Override
         public Set<Entry<String, Object>> entrySet()
         {
             throw new UnsupportedOperationException();
@@ -951,6 +931,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#get(java.lang.Object)
          */
+        @Override
         public Object get( Object key )
         {
             if ( !( key instanceof String ) )
@@ -986,6 +967,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#isEmpty()
          */
+        @Override
         public boolean isEmpty()
         {
             return this.mavenProject == null && this.mavenProject.getProperties().isEmpty()
@@ -997,6 +979,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#keySet()
          */
+        @Override
         public Set<String> keySet()
         {
             throw new UnsupportedOperationException();
@@ -1007,6 +990,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#put(java.lang.Object, java.lang.Object)
          */
+        @Override
         public Object put( String key, Object value )
         {
             throw new UnsupportedOperationException();
@@ -1017,6 +1001,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#putAll(java.util.Map)
          */
+        @Override
         public void putAll( Map<? extends String, ? extends Object> t )
         {
             throw new UnsupportedOperationException();
@@ -1027,6 +1012,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#remove(java.lang.Object)
          */
+        @Override
         public Object remove( Object key )
         {
             throw new UnsupportedOperationException();
@@ -1037,6 +1023,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#size()
          */
+        @Override
         public int size()
         {
             throw new UnsupportedOperationException();
@@ -1047,6 +1034,7 @@ public class IntegrationTestMojo
          *
          * @see java.util.Map#values()
          */
+        @Override
         public Collection<Object> values()
         {
             throw new UnsupportedOperationException();
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java
index 82429ae..c40e93a 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/JarMojo.java
@@ -82,6 +82,7 @@ public class JarMojo
     @Component
     private ArchetypeArtifactManager archetypeArtifactManager;
 
+    @Override
     public void execute()
         throws MojoExecutionException, MojoFailureException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
index 014f108..767d30d 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/mojos/UpdateLocalCatalogMojo.java
@@ -52,6 +52,7 @@ public class UpdateLocalCatalogMojo
     @Parameter( defaultValue = "${project}", readonly = true, required = true )
     private MavenProject project;
 
+    @Override
     public void execute()
         throws MojoExecutionException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypePrompter.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypePrompter.java
index 368453c..b014fb6 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypePrompter.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/ArchetypePrompter.java
@@ -44,6 +44,7 @@ public class ArchetypePrompter
     @Requirement
     private InputHandler inputHandler;
 
+    @Override
     public String prompt( String message )
         throws PrompterException
     {
@@ -52,6 +53,7 @@ public class ArchetypePrompter
         return readLine();
     }
 
+    @Override
     public String prompt( String message, String defaultReply )
         throws PrompterException
     {
@@ -67,6 +69,7 @@ public class ArchetypePrompter
         return line;
     }
 
+    @Override
     @SuppressWarnings( { "rawtypes", "unchecked" } )
     public String prompt( String message, List possibleValues, String defaultReply )
         throws PrompterException
@@ -103,6 +106,7 @@ public class ArchetypePrompter
         return line;
     }
 
+    @Override
     @SuppressWarnings( "rawtypes" )
     public String prompt( String message, List possibleValues )
         throws PrompterException
@@ -110,6 +114,7 @@ public class ArchetypePrompter
         return prompt( message, possibleValues, null );
     }
 
+    @Override
     public String promptForPassword( String message )
         throws PrompterException
     {
@@ -163,6 +168,7 @@ public class ArchetypePrompter
         }
     }
 
+    @Override
     public void showMessage( String message )
         throws PrompterException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
index 98f6bb9..4d5629b 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/DefaultArchetypeFactory.java
@@ -33,6 +33,7 @@ public class DefaultArchetypeFactory
     extends AbstractLogEnabled
     implements ArchetypeFactory
 {
+    @Override
     public ArchetypeDefinition createArchetypeDefinition( Properties properties )
     {
         ArchetypeDefinition definition = new ArchetypeDefinition();
@@ -78,6 +79,7 @@ public class DefaultArchetypeFactory
         getLogger().debug( "Setting property " + key + "=" + configuration.getProperty( key ) );
     }
 
+    @Override
     @SuppressWarnings( "checkstyle:linelength" )
     public ArchetypeConfiguration createArchetypeConfiguration( org.apache.maven.archetype.old.descriptor.ArchetypeDescriptor archetypeDescriptor,
                                                                 Properties properties )
@@ -109,6 +111,7 @@ public class DefaultArchetypeFactory
         }
     }
 
+    @Override
     @SuppressWarnings( "checkstyle:linelength" )
     public ArchetypeConfiguration createArchetypeConfiguration( org.apache.maven.archetype.metadata.ArchetypeDescriptor archetypeDescriptor,
                                                                 Properties properties )
@@ -204,6 +207,7 @@ public class DefaultArchetypeFactory
         }
     }
 
+    @Override
     public ArchetypeConfiguration createArchetypeConfiguration( MavenProject project,
                                                                 ArchetypeDefinition archetypeDefinition,
                                                                 Properties properties )
@@ -265,6 +269,7 @@ public class DefaultArchetypeFactory
         return configuration;
     }
 
+    @Override
     public void updateArchetypeConfiguration( ArchetypeConfiguration archetypeConfiguration,
                                               ArchetypeDefinition archetypeDefinition )
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
index 9926b7e..745e7a5 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationConfigurator.java
@@ -43,7 +43,6 @@ import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 
 @Component( role = ArchetypeCreationConfigurator.class, hint = "default" )
@@ -60,6 +59,7 @@ public class DefaultArchetypeCreationConfigurator
     @Requirement
     private ArchetypeFilesResolver archetypeFilesResolver;
 
+    @Override
     public Properties configureArchetypeCreation( MavenProject project, Boolean interactiveMode,
                                                   Properties commandLineProperties, File propertyFile,
                                                   List<String> languages )
@@ -279,18 +279,12 @@ public class DefaultArchetypeCreationConfigurator
     {
         getLogger().debug( "Reading property file " + propertyFile );
 
-        InputStream is = new FileInputStream( propertyFile );
-
-        try
+        try ( InputStream is = new FileInputStream( propertyFile ) ) 
         {
             properties.load( is );
 
             getLogger().debug( "Read " + properties.size() + " properties" );
         }
-        finally
-        {
-            IOUtil.close( is );
-        }
     }
 
     public void writeProperties( Properties properties, File propertyFile )
@@ -315,18 +309,12 @@ public class DefaultArchetypeCreationConfigurator
             storedProperties.setProperty( propertyKey, properties.getProperty( propertyKey ) );
         }
 
-        OutputStream os = new FileOutputStream( propertyFile );
-
-        try
+        try ( OutputStream os = new FileOutputStream( propertyFile ) )
         {
             storedProperties.store( os, "" );
 
             getLogger().debug( "Stored " + storedProperties.size() + " properties" );
         }
-        finally
-        {
-            IOUtil.close( os );
-        }
     }
 
     private Properties initialiseArchetypeProperties( Properties commandLineProperties, File propertyFile )
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationQueryer.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationQueryer.java
index e765fbb..3bdcfc0 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationQueryer.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/creation/DefaultArchetypeCreationQueryer.java
@@ -37,30 +37,35 @@ public class DefaultArchetypeCreationQueryer
     @Requirement
     private Prompter prompter;
 
+    @Override
     public String getArchetypeArtifactId( String defaultValue )
         throws PrompterException
     {
         return getValue( Constants.ARCHETYPE_ARTIFACT_ID, defaultValue );
     }
 
+    @Override
     public String getArchetypeGroupId( String defaultValue )
         throws PrompterException
     {
         return getValue( Constants.ARCHETYPE_GROUP_ID, defaultValue );
     }
 
+    @Override
     public String getArchetypeVersion( String defaultValue )
         throws PrompterException
     {
         return getValue( Constants.ARCHETYPE_VERSION, defaultValue );
     }
 
+    @Override
     public String getArtifactId( String defaultValue )
         throws PrompterException
     {
         return getValue( Constants.ARTIFACT_ID, defaultValue );
     }
 
+    @Override
     public boolean askAddAnotherProperty()
         throws PrompterException
     {
@@ -71,6 +76,7 @@ public class DefaultArchetypeCreationQueryer
         return "Y".equalsIgnoreCase( answer );
     }
 
+    @Override
     public String askNewPropertyKey()
         throws PrompterException
     {
@@ -81,12 +87,14 @@ public class DefaultArchetypeCreationQueryer
         return answer;
     }
 
+    @Override
     public String askReplacementValue( String propertyKey, String defaultValue )
         throws PrompterException
     {
         return getValue( propertyKey, defaultValue );
     }
 
+    @Override
     public boolean confirmConfiguration( ArchetypeConfiguration archetypeConfiguration )
         throws PrompterException
     {
@@ -108,18 +116,21 @@ public class DefaultArchetypeCreationQueryer
         return "Y".equalsIgnoreCase( answer );
     }
 
+    @Override
     public String getGroupId( String defaultValue )
         throws PrompterException
     {
         return getValue( Constants.GROUP_ID, defaultValue );
     }
 
+    @Override
     public String getPackage( String defaultValue )
         throws PrompterException
     {
         return getValue( Constants.PACKAGE, defaultValue );
     }
 
+    @Override
     public String getVersion( String defaultValue )
         throws PrompterException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
index 7abd59f..2de9bb1 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator.java
@@ -41,7 +41,6 @@ import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.component.annotations.Requirement;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
-import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 
 import java.io.IOException;
@@ -81,6 +80,7 @@ public class DefaultArchetypeGenerationConfigurator
         this.archetypeArtifactManager = archetypeArtifactManager;
     }
 
+    @Override
     public void configureArchetype( ArchetypeGenerationRequest request, Boolean interactiveMode,
                                     Properties executionProperties )
         throws ArchetypeNotDefined, UnknownArchetype, ArchetypeNotConfigured, IOException, PrompterException,
@@ -340,8 +340,8 @@ public class DefaultArchetypeGenerationConfigurator
 
     private String evaluateProperty( Context context, String property, String value )
     {
-        StringWriter stringWriter = new StringWriter();
-        try
+        
+        try ( StringWriter stringWriter = new StringWriter() )
         {
             Velocity.evaluate( context, stringWriter, property, value );
             return stringWriter.toString();
@@ -350,10 +350,6 @@ public class DefaultArchetypeGenerationConfigurator
         {
             return value;
         }
-        finally
-        {
-            IOUtil.close( stringWriter );
-        }
     }
 
 
@@ -382,6 +378,7 @@ public class DefaultArchetypeGenerationConfigurator
             this.archetypeConfiguration = archetypeConfiguration;
         }
 
+        @Override
         public int compare( String left, String right )
         {
             String leftDefault = archetypeConfiguration.getDefaultValue( left );
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryer.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryer.java
index 5b8f5ae..ddc57dc 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryer.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryer.java
@@ -36,6 +36,7 @@ public class DefaultArchetypeGenerationQueryer
     @Requirement
     private Prompter prompter;
 
+    @Override
     public boolean confirmConfiguration( ArchetypeConfiguration archetypeConfiguration )
         throws PrompterException
     {
@@ -51,6 +52,7 @@ public class DefaultArchetypeGenerationQueryer
         return "Y".equalsIgnoreCase( answer );
     }
 
+    @Override
     public String getPropertyValue( String requiredProperty, String defaultValue, Pattern validationRegex )
         throws PrompterException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryer.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryer.java
index 90e33cf..d4c8b42 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryer.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryer.java
@@ -48,6 +48,7 @@ public class DefaultArchetypeSelectionQueryer
     @Requirement( hint = "archetype" )
     private Prompter prompter;
 
+    @Override
     public boolean confirmSelection( ArchetypeDefinition archetypeDefinition )
         throws PrompterException
     {
@@ -60,12 +61,14 @@ public class DefaultArchetypeSelectionQueryer
         return "Y".equalsIgnoreCase( answer );
     }
 
+    @Override
     public Archetype selectArchetype( Map<String, List<Archetype>> catalogs )
         throws PrompterException
     {
         return selectArchetype( catalogs, null );
     }
 
+    @Override
     public Archetype selectArchetype( Map<String, List<Archetype>> catalogs, ArchetypeDefinition defaultDefinition )
         throws PrompterException
     {
diff --git a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelector.java b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelector.java
index c4ac66c..a6e35eb 100644
--- a/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelector.java
+++ b/maven-archetype-plugin/src/main/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelector.java
@@ -57,6 +57,7 @@ public class DefaultArchetypeSelector
     @Requirement
     private ArchetypeManager archetypeManager;
 
+    @Override
     public void selectArchetype( ArchetypeGenerationRequest request, Boolean interactiveMode, String catalogs )
         throws ArchetypeNotDefined, UnknownArchetype, UnknownGroup, IOException, PrompterException,
         ArchetypeSelectionFailure
diff --git a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
index d9fe47b..14e64a4 100644
--- a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
+++ b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfigurator2Test.java
@@ -37,6 +37,7 @@ public class DefaultArchetypeGenerationConfigurator2Test
 {
     private DefaultArchetypeGenerationConfigurator configurator;
 
+    @Override
     public void setUp()
         throws Exception
     {
diff --git a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfiguratorTest.java b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfiguratorTest.java
index 5abbd0c..57bd985 100644
--- a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfiguratorTest.java
+++ b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationConfiguratorTest.java
@@ -44,6 +44,7 @@ public class DefaultArchetypeGenerationConfiguratorTest
 {
     private DefaultArchetypeGenerationConfigurator configurator;
 
+    @Override
     public void setUp()
         throws Exception
     {
diff --git a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryerTest.java b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryerTest.java
index 13adad9..19f358e 100644
--- a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryerTest.java
+++ b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeGenerationQueryerTest.java
@@ -34,6 +34,7 @@ public class DefaultArchetypeGenerationQueryerTest
 
     private DefaultArchetypeGenerationQueryer queryer;
 
+    @Override
     public void setUp()
         throws Exception
     {
@@ -68,11 +69,13 @@ public class DefaultArchetypeGenerationQueryerTest
     {
         return new AbstractMatcher()
         {
+            @Override
             protected boolean argumentMatches( Object o, Object o1 )
             {
                 return true;
             }
 
+            @Override
             protected String argumentToString( Object o )
             {
                 return "...";
diff --git a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryerTest.java b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryerTest.java
index afab277..2856b06 100644
--- a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryerTest.java
+++ b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectionQueryerTest.java
@@ -38,6 +38,7 @@ public class DefaultArchetypeSelectionQueryerTest
 {
     private DefaultArchetypeSelectionQueryer queryer;
 
+    @Override
     public void setUp()
         throws Exception
     {
@@ -211,11 +212,13 @@ public class DefaultArchetypeSelectionQueryerTest
                 return value;
             }
 
+            @Override
             protected boolean argumentMatches( Object o, Object o1 )
             {
                 return isPromptString( o1 ) || super.argumentMatches( o, o1 );
             }
 
+            @Override
             protected String argumentToString( Object o )
             {
                 return isPromptString( o ) ? "..." : super.argumentToString( o );
diff --git a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectorTest.java b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectorTest.java
index 0ae96c7..98cf0e2 100644
--- a/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectorTest.java
+++ b/maven-archetype-plugin/src/test/java/org/apache/maven/archetype/ui/generation/DefaultArchetypeSelectorTest.java
@@ -42,6 +42,7 @@ public class DefaultArchetypeSelectorTest
 {
     private DefaultArchetypeSelector selector;
 
+    @Override
     public void setUp()
         throws Exception
     {
@@ -199,6 +200,7 @@ public class DefaultArchetypeSelectorTest
     {
         return new AbstractMatcher()
         {
+            @Override
             protected boolean argumentMatches( Object o, Object o1 )
             {
                 return !( o instanceof ArchetypeDefinition ) ||
@@ -248,6 +250,7 @@ public class DefaultArchetypeSelectorTest
                 return true;
             }
 
+            @Override
             protected String argumentToString( Object o )
             {
                 return o instanceof Map ? "..." : toString( (ArchetypeDefinition) o );


[maven-archetype] 01/02: [ARCHETYPE-560] Require Java 7

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

rfscholte pushed a commit to branch ARCHETYPE-560
in repository https://gitbox.apache.org/repos/asf/maven-archetype.git

commit 9f548e8fa656a776ee6ecb5a8ce2ad4e6b1baba1
Author: rfscholte <rf...@apache.org>
AuthorDate: Fri Mar 15 23:21:55 2019 +0100

    [ARCHETYPE-560] Require Java 7
---
 maven-archetype-plugin/pom.xml                                   | 2 ++
 maven-archetype-plugin/src/it/projects/build-and-run-its/pom.xml | 4 +++-
 maven-archetype-plugin/src/it/projects/build-archetype/pom.xml   | 4 +++-
 maven-archetype-plugin/src/it/projects/build-ignore-eol/pom.xml  | 4 +++-
 pom.xml                                                          | 3 ++-
 5 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/maven-archetype-plugin/pom.xml b/maven-archetype-plugin/pom.xml
index d3435ba..98cbaaf 100644
--- a/maven-archetype-plugin/pom.xml
+++ b/maven-archetype-plugin/pom.xml
@@ -233,6 +233,8 @@
                 <archetype-repo.proxy.url>${archetype-repo.proxy.url}</archetype-repo.proxy.url>
               </filterProperties>
               <properties>
+                <maven.compiler.source>${maven.compiler.source}</maven.compiler.source>
+                <maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
                 <!-- e.g. ensure that Java7 picks up TLSv1.2 when connecting with Central -->
                 <https.protocols>${https.protocols}</https.protocols>
               </properties>
diff --git a/maven-archetype-plugin/src/it/projects/build-and-run-its/pom.xml b/maven-archetype-plugin/src/it/projects/build-and-run-its/pom.xml
index 4261595..c1c3b67 100644
--- a/maven-archetype-plugin/src/it/projects/build-and-run-its/pom.xml
+++ b/maven-archetype-plugin/src/it/projects/build-and-run-its/pom.xml
@@ -54,7 +54,9 @@ under the License.
             <localRepositoryPath>${project.build.directory}/local-repo</localRepositoryPath>
             <ignoreEOLStyle>true</ignoreEOLStyle>
             <properties>
-               <!-- e.g. ensure that Java7 picks up TLSv1.2 when connecting with Central -->
+              <maven.compiler.source>${maven.compiler.source}</maven.compiler.source>
+              <maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
+              <!-- e.g. ensure that Java7 picks up TLSv1.2 when connecting with Central -->
               <https.protocols>${https.protocols}</https.protocols>
             </properties>
           </configuration>
diff --git a/maven-archetype-plugin/src/it/projects/build-archetype/pom.xml b/maven-archetype-plugin/src/it/projects/build-archetype/pom.xml
index 37f7aef..10970b9 100644
--- a/maven-archetype-plugin/src/it/projects/build-archetype/pom.xml
+++ b/maven-archetype-plugin/src/it/projects/build-archetype/pom.xml
@@ -55,7 +55,9 @@ under the License.
             <localRepositoryPath>${basedir}/target/local-repo</localRepositoryPath>
             <ignoreEOLStyle>true</ignoreEOLStyle>
             <properties>
-               <!-- e.g. ensure that Java7 picks up TLSv1.2 when connecting with Central -->
+              <maven.compiler.source>${maven.compiler.source}</maven.compiler.source>
+              <maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
+              <!-- e.g. ensure that Java7 picks up TLSv1.2 when connecting with Central -->
               <https.protocols>${https.protocols}</https.protocols>
             </properties>
           </configuration>
diff --git a/maven-archetype-plugin/src/it/projects/build-ignore-eol/pom.xml b/maven-archetype-plugin/src/it/projects/build-ignore-eol/pom.xml
index ae35464..004fb4d 100644
--- a/maven-archetype-plugin/src/it/projects/build-ignore-eol/pom.xml
+++ b/maven-archetype-plugin/src/it/projects/build-ignore-eol/pom.xml
@@ -57,7 +57,9 @@ under the License.
             <settingsFile>${basedir}/test-settings.xml</settingsFile>
             <localRepositoryPath>${basedir}/target/local-repo</localRepositoryPath>
             <properties>
-               <!-- e.g. ensure that Java7 picks up TLSv1.2 when connecting with Central -->
+              <maven.compiler.source>${maven.compiler.source}</maven.compiler.source>
+              <maven.compiler.target>${maven.compiler.target}</maven.compiler.target>
+              <!-- e.g. ensure that Java7 picks up TLSv1.2 when connecting with Central -->
               <https.protocols>${https.protocols}</https.protocols>
             </properties>
           </configuration>
diff --git a/pom.xml b/pom.xml
index d74ecce..80c54ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -75,9 +75,10 @@
   <properties>
     <maven.archetype.scm.devConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-archetype.git</maven.archetype.scm.devConnection>
     <mavenVersion>3.0</mavenVersion>
+    <javaVersion>7</javaVersion>
     <netbeans.hint.useExternalMaven>true</netbeans.hint.useExternalMaven>
     <wagonVersion>2.8</wagonVersion>
-    <surefire.version>2.22.1</surefire.version>
+    <surefire.version>2.21.0</surefire.version>
     <maven.site.path>archetype-archives/archetype-LATEST</maven.site.path>
   </properties>