Merge pull request #6 from turbanoff/use-java7-features

Use java7 features
diff --git a/src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java b/src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java
index bcbd02a..a0230b2 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/AssemblerConfigurationSource.java
@@ -46,7 +46,7 @@
     String[] getDescriptorReferences();
 
     /**
-     * @return The descriptor source direcotoy.
+     * @return The descriptor source directory.
      */
     File getDescriptorSourceDirectory();
 
@@ -86,7 +86,7 @@
     File getOutputDirectory();
 
     /**
-     * @return The working direcotory.
+     * @return The working directory.
      */
     File getWorkingDirectory();
 
@@ -151,7 +151,7 @@
     MavenSession getMavenSession();
 
     /**
-     * @return The archiver configu.
+     * @return The archiver configuration.
      */
     String getArchiverConfig();
 
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java b/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
index e54fc01..f902928 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java
@@ -123,7 +123,7 @@
 
     private List<AssemblyArchiverPhase> sortedPhases()
     {
-        List<AssemblyArchiverPhase> sorted = new ArrayList<AssemblyArchiverPhase>( assemblyPhases );
+        List<AssemblyArchiverPhase> sorted = new ArrayList<>( assemblyPhases );
         Collections.sort( sorted, new AssemblyArchiverPhaseComparator() );
         return sorted;
     }
@@ -183,12 +183,7 @@
 
             archiver.createArchive();
         }
-        catch ( final ArchiverException e )
-        {
-            throw new ArchiveCreationException(
-                "Error creating assembly archive " + assembly.getId() + ": " + e.getMessage(), e );
-        }
-        catch ( final IOException e )
+        catch ( final ArchiverException | IOException e )
         {
             throw new ArchiveCreationException(
                 "Error creating assembly archive " + assembly.getId() + ": " + e.getMessage(), e );
@@ -230,11 +225,11 @@
 
         if ( requestedContainerDescriptorHandlers == null )
         {
-            requestedContainerDescriptorHandlers = new ArrayList<ContainerDescriptorHandlerConfig>();
+            requestedContainerDescriptorHandlers = new ArrayList<>();
         }
 
-        final List<ContainerDescriptorHandler> handlers = new ArrayList<ContainerDescriptorHandler>();
-        final List<String> hints = new ArrayList<String>();
+        final List<ContainerDescriptorHandler> handlers = new ArrayList<>();
+        final List<String> hints = new ArrayList<>();
 
         if ( !requestedContainerDescriptorHandlers.isEmpty() )
         {
@@ -311,8 +306,8 @@
             ( (AbstractZipArchiver) archiver ).setRecompressAddedZips( recompressZippedFiles );
         }
 
-        final List<FileSelector> extraSelectors = new ArrayList<FileSelector>();
-        final List<ArchiveFinalizer> extraFinalizers = new ArrayList<ArchiveFinalizer>();
+        final List<FileSelector> extraSelectors = new ArrayList<>();
+        final List<ArchiveFinalizer> extraFinalizers = new ArrayList<>();
         if ( archiver instanceof JarArchiver )
         {
             if ( mergeManifestMode != null )
@@ -385,12 +380,7 @@
         {
             config = Xpp3DomBuilder.build( new StringReader( configSource.getArchiverConfig() ) );
         }
-        catch ( final XmlPullParserException e )
-        {
-            throw new ArchiverException( "Failed to parse archiver configuration for: " + archiver.getClass().getName(),
-                                         e );
-        }
-        catch ( final IOException e )
+        catch ( final XmlPullParserException | IOException e )
         {
             throw new ArchiverException( "Failed to parse archiver configuration for: " + archiver.getClass().getName(),
                                          e );
@@ -443,11 +433,7 @@
             configureComponent.invoke( configurator, component, configuration, expressionEvaluator, containerRealm[0],
                                        listener );
         }
-        catch ( final NoSuchMethodException e )
-        {
-            throw new RuntimeException( e );
-        }
-        catch ( final IllegalAccessException e )
+        catch ( final NoSuchMethodException | IllegalAccessException e )
         {
             throw new RuntimeException( e );
         }
@@ -472,11 +458,7 @@
             final Method getContainerRealm = container.getClass().getMethod( "getContainerRealm" );
             return new Object[]{ getContainerRealm.invoke( container ), getContainerRealm.getReturnType() };
         }
-        catch ( final NoSuchMethodException e )
-        {
-            throw new RuntimeException( e );
-        }
-        catch ( final IllegalAccessException e )
+        catch ( final NoSuchMethodException | IllegalAccessException e )
         {
             throw new RuntimeException( e );
         }
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizer.java b/src/main/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizer.java
index 4ed1d3e..c886e4b 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizer.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/ManifestCreationFinalizer.java
@@ -38,6 +38,7 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.List;
 
@@ -84,7 +85,8 @@
                     Reader manifestFileReader = null;
                     try
                     {
-                        manifestFileReader = new InputStreamReader( new FileInputStream( manifestFile ), "UTF-8" );
+                        manifestFileReader = new InputStreamReader( new FileInputStream( manifestFile ),
+                            StandardCharsets.UTF_8 );
                         manifest = new Manifest( manifestFileReader );
                         manifestFileReader.close();
                         manifestFileReader = null;
@@ -136,11 +138,7 @@
                     return Collections.singletonList( "META-INF/MANIFEST.MF" );
                 }
             }
-            catch ( final ManifestException ignore )
-            {
-                // noop
-            }
-            catch ( final DependencyResolutionRequiredException ignore )
+            catch ( final ManifestException | DependencyResolutionRequiredException ignore )
             {
                 // noop
             }
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java b/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
index 329b7b4..5f63035 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiver.java
@@ -64,7 +64,7 @@
 
     private final Archiver delegate;
 
-    private final ThreadLocal<Boolean> inPublicApi = new ThreadLocal<Boolean>();
+    private final ThreadLocal<Boolean> inPublicApi = new ThreadLocal<>();
 
     private final Logger logger;
 
@@ -98,7 +98,7 @@
             this.rootPrefix += "/";
         }
 
-        final List<FileSelector> selectors = new ArrayList<FileSelector>();
+        final List<FileSelector> selectors = new ArrayList<>();
 
         FinalizerEnabled finalizer = ( delegate instanceof FinalizerEnabled ) ? (FinalizerEnabled) delegate : null;
 
@@ -117,10 +117,7 @@
 
         if ( extraSelectors != null )
         {
-            for ( final FileSelector selector : extraSelectors )
-            {
-                selectors.add( selector );
-            }
+            selectors.addAll( extraSelectors );
         }
 
         if ( ( extraFinalizers != null ) && finalizer != null )
@@ -734,7 +731,7 @@
         }
         else if ( assemblyWorkPath.startsWith( fsPath ) )
         {
-            final List<String> newEx = new ArrayList<String>();
+            final List<String> newEx = new ArrayList<>();
             if ( fs.getExcludes() != null )
             {
                 newEx.addAll( Arrays.asList( fs.getExcludes() ) );
@@ -748,7 +745,7 @@
 
             newEx.add( workDirExclude );
 
-            final List<String> newIn = new ArrayList<String>();
+            final List<String> newIn = new ArrayList<>();
             if ( fs.getIncludes() != null )
             {
                 for ( final String include : fs.getIncludes() )
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparator.java b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparator.java
index c67153a..f796ae4 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparator.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparator.java
@@ -44,6 +44,6 @@
         {
             return +1;
         }
-        return new Integer( ( (PhaseOrder) o1 ).order() ).compareTo( ( (PhaseOrder) o2 ).order() );
+        return Integer.compare( ( (PhaseOrder) o1 ).order(), ( (PhaseOrder) o2 ).order() );
     }
 }
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhase.java b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhase.java
index 799f39f..67701a4 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhase.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/FileItemAssemblyPhase.java
@@ -122,11 +122,7 @@
                 int mode = TypeConversionUtils.modeToInt( fileItem.getFileMode(), getLogger() );
                 archiver.addResource( restoUse, target, mode );
             }
-            catch ( final ArchiverException e )
-            {
-                throw new ArchiveCreationException( "Error adding file to archive: " + e.getMessage(), e );
-            }
-            catch ( IOException e )
+            catch ( final ArchiverException | IOException e )
             {
                 throw new ArchiveCreationException( "Error adding file to archive: " + e.getMessage(), e );
             }
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhase.java b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhase.java
index 92e7b81..ed778b3 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhase.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhase.java
@@ -149,7 +149,7 @@
         {
             if ( !moduleSet.isIncludeSubModules() )
             {
-                moduleProjects = new LinkedHashSet<MavenProject>( configSource.getReactorProjects() );
+                moduleProjects = new LinkedHashSet<>( configSource.getReactorProjects() );
             }
 
             project = configSource.getReactorProjects().get( 0 );
@@ -254,13 +254,13 @@
             return;
         }
 
-        final Set<MavenProject> moduleProjects = new LinkedHashSet<MavenProject>();
+        final Set<MavenProject> moduleProjects = new LinkedHashSet<>();
 
         MavenProjects.select( projects, "pom", log( getLogger() ), addTo( moduleProjects ) );
 
         final String classifier = binaries.getAttachmentClassifier();
 
-        final Map<MavenProject, Artifact> chosenModuleArtifacts = new HashMap<MavenProject, Artifact>();
+        final Map<MavenProject, Artifact> chosenModuleArtifacts = new HashMap<>();
 
         for ( final MavenProject project : moduleProjects )
         {
@@ -347,7 +347,7 @@
 
     private List<MavenProject> validateModuleVersions( Set<MavenProject> moduleProjects )
     {
-        List<MavenProject> result = new ArrayList<MavenProject>();
+        List<MavenProject> result = new ArrayList<>();
 
         if ( moduleProjects != null && !moduleProjects.isEmpty() )
         {
@@ -416,7 +416,7 @@
             return;
         }
 
-        final List<FileSet> fileSets = new ArrayList<FileSet>();
+        final List<FileSet> fileSets = new ArrayList<>();
 
         if ( isDeprecatedModuleSourcesConfigPresent( sources ) )
         {
@@ -445,7 +445,7 @@
         {
             getLogger().info( "Processing sources for module project: " + moduleProject.getId() );
 
-            final List<FileSet> moduleFileSets = new ArrayList<FileSet>();
+            final List<FileSet> moduleFileSets = new ArrayList<>();
 
             for ( final FileSet fileSet : fileSets )
             {
@@ -514,7 +514,7 @@
         fs.setDirectory( sourcePath );
         fs.setDirectoryMode( fileSet.getDirectoryMode() );
 
-        final List<String> excludes = new ArrayList<String>();
+        final List<String> excludes = new ArrayList<>();
 
         final List<String> originalExcludes = fileSet.getExcludes();
         if ( ( originalExcludes != null ) && !originalExcludes.isEmpty() )
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/wrappers/RepoInfoWrapper.java b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/wrappers/RepoInfoWrapper.java
index 9a0fa8e..f606f7b 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/phase/wrappers/RepoInfoWrapper.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/phase/wrappers/RepoInfoWrapper.java
@@ -65,7 +65,7 @@
 
         if ( convertedAlignments == null || alignments.size() != convertedAlignments.size() )
         {
-            final List<GroupVersionAlignment> l = new ArrayList<GroupVersionAlignment>( alignments.size() );
+            final List<GroupVersionAlignment> l = new ArrayList<>( alignments.size() );
 
             for ( final org.apache.maven.plugins.assembly.model.GroupVersionAlignment alignment : alignments )
             {
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java
index 959c1e1..f0330bc 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTask.java
@@ -64,7 +64,7 @@
 
     static
     {
-        final List<String> nonArch = new ArrayList<String>();
+        final List<String> nonArch = new ArrayList<>();
 
         nonArch.add( "pom" );
 
@@ -190,10 +190,10 @@
 
     private boolean unpackTransformsContent( DependencySet dependencySet )
     {
-        return isUnpackWithOptions( dependencySet ) && isConentModifyingOption( dependencySet.getUnpackOptions() );
+        return isUnpackWithOptions( dependencySet ) && isContentModifyingOption( dependencySet.getUnpackOptions() );
     }
 
-    private boolean isConentModifyingOption( UnpackOptions opts )
+    private boolean isContentModifyingOption( UnpackOptions opts )
     {
         return ( opts.isFiltered() || opts.getLineEnding() != null );
     }
@@ -283,7 +283,7 @@
     Set<Artifact> resolveDependencyArtifacts( final DependencySet dependencySet )
         throws InvalidAssemblerConfigurationException
     {
-        final Set<Artifact> dependencyArtifacts = new LinkedHashSet<Artifact>();
+        final Set<Artifact> dependencyArtifacts = new LinkedHashSet<>();
         if ( resolvedArtifacts != null )
         {
             dependencyArtifacts.addAll( resolvedArtifacts );
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDirectoryTask.java b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDirectoryTask.java
index 2664ae1..749fd42 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDirectoryTask.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddDirectoryTask.java
@@ -103,11 +103,11 @@
                 List<String> directoryExcludes;
                 if ( excludes != null && !excludes.isEmpty() )
                 {
-                    directoryExcludes = new ArrayList<String>( excludes );
+                    directoryExcludes = new ArrayList<>( excludes );
                 }
                 else
                 {
-                    directoryExcludes = new ArrayList<String>();
+                    directoryExcludes = new ArrayList<>();
                 }
 
                 try
diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTask.java b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTask.java
index 1b855fa..7ea776e 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTask.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/archive/task/AddFileSetsTask.java
@@ -58,7 +58,7 @@
 
     public AddFileSetsTask( final FileSet... fileSets )
     {
-        this.fileSets = new ArrayList<FileSet>( Arrays.asList( fileSets ) );
+        this.fileSets = new ArrayList<>( Arrays.asList( fileSets ) );
     }
 
     public void execute( final Archiver archiver, final AssemblerConfigurationSource configSource )
diff --git a/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java b/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
index 81a98cb..7d224dc 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/artifact/DefaultDependencyResolver.java
@@ -57,7 +57,7 @@
                                                                     List<DependencySet> dependencySets )
         throws DependencyResolutionException
     {
-        Map<DependencySet, Set<Artifact>> result = new LinkedHashMap<DependencySet, Set<Artifact>>();
+        Map<DependencySet, Set<Artifact>> result = new LinkedHashMap<>();
 
         for ( DependencySet dependencySet : dependencySets )
         {
@@ -80,7 +80,7 @@
                                                                     List<DependencySet> dependencySets )
         throws DependencyResolutionException
     {
-        Map<DependencySet, Set<Artifact>> result = new LinkedHashMap<DependencySet, Set<Artifact>>();
+        Map<DependencySet, Set<Artifact>> result = new LinkedHashMap<>();
 
         for ( DependencySet dependencySet : dependencySets )
         {
diff --git a/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java b/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java
index 59904a4..a66c4ac 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfo.java
@@ -32,7 +32,7 @@
  */
 class ResolutionManagementInfo
 {
-    private final LinkedHashSet<Artifact> artifacts = new LinkedHashSet<Artifact>();
+    private final LinkedHashSet<Artifact> artifacts = new LinkedHashSet<>();
 
     Set<Artifact> getArtifacts()
     {
diff --git a/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java b/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
index 20663ed..49a16b9 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/filter/AbstractLineAggregatingHandler.java
@@ -44,7 +44,7 @@
     implements ContainerDescriptorHandler
 {
 
-    private Map<String, List<String>> catalog = new HashMap<String, List<String>>();
+    private Map<String, List<String>> catalog = new HashMap<>();
 
     private boolean excludeOverride = false;
 
@@ -121,7 +121,7 @@
     @Override
     public List<String> getVirtualFiles()
     {
-        return new ArrayList<String>( catalog.keySet() );
+        return new ArrayList<>( catalog.keySet() );
     }
 
     @Override
@@ -142,7 +142,7 @@
             List<String> lines = catalog.get( name );
             if ( lines == null )
             {
-                lines = new ArrayList<String>();
+                lines = new ArrayList<>();
                 catalog.put( name, lines );
             }
 
diff --git a/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java b/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
index cc627c5..ba1345b 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilter.java
@@ -83,7 +83,7 @@
             {
                 if ( components == null )
                 {
-                    components = new LinkedHashMap<String, Xpp3Dom>();
+                    components = new LinkedHashMap<>();
                 }
 
                 final String role = component.getChild( "role" ).getValue();
@@ -203,8 +203,7 @@
                 catch ( final XmlPullParserException e )
                 {
                     final IOException error =
-                        new IOException( "Error finalizing component-set for archive. Reason: " + e.getMessage() );
-                    error.initCause( e );
+                        new IOException( "Error finalizing component-set for archive. Reason: " + e.getMessage(), e );
 
                     throw error;
                 }
diff --git a/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java b/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
index cf34995..a344c1a 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/filter/SimpleAggregatingDescriptorHandler.java
@@ -39,6 +39,7 @@
 import java.io.Reader;
 import java.io.StringWriter;
 import java.io.Writer;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
@@ -59,7 +60,7 @@
 
     private final StringWriter aggregateWriter = new StringWriter();
 
-    private final List<String> filenames = new ArrayList<String>();
+    private final List<String> filenames = new ArrayList<>();
 
     // calculated, temporary values.
 
@@ -110,7 +111,7 @@
             f.deleteOnExit();
 
             writer = AssemblyFileUtils.isPropertyFile( f )
-                         ? new OutputStreamWriter( new FileOutputStream( f ), "ISO-8859-1" )
+                         ? new OutputStreamWriter( new FileOutputStream( f ), StandardCharsets.ISO_8859_1 )
                          : new OutputStreamWriter( new FileOutputStream( f ) ); // Still platform encoding
 
             writer.write( commentChars + " Aggregated on " + new Date() + " from: " );
@@ -196,7 +197,7 @@
             writer = new StringWriter();
 
             reader = AssemblyFileUtils.isPropertyFile( fileInfo.getName() )
-                         ? new InputStreamReader( fileInfo.getContents(), "ISO-8859-1" )
+                         ? new InputStreamReader( fileInfo.getContents(), StandardCharsets.ISO_8859_1 )
                          : new InputStreamReader( fileInfo.getContents() ); // platform encoding
 
             IOUtil.copy( reader, writer );
diff --git a/src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java b/src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java
index 960cd69..6b50534 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java
@@ -59,7 +59,7 @@
             // if these are NOT set, just use the defaults, which are '${*}' and '@'.
             if ( delimiters != null && !delimiters.isEmpty() )
             {
-                LinkedHashSet<String> delims = new LinkedHashSet<String>();
+                LinkedHashSet<String> delims = new LinkedHashSet<>();
                 for ( String delim : delimiters )
                 {
                     if ( delim == null )
@@ -85,15 +85,13 @@
         }
         catch ( MavenFilteringException e )
         {
-            IOException ioe = new IOException( "Error filtering file '" + source + "': " + e.getMessage() );
-            ioe.initCause( e ); // plain old Java 5...
+            IOException ioe = new IOException( "Error filtering file '" + source + "': " + e.getMessage(), e );
             throw ioe;
         }
     }
 
 
     private static boolean isForbiddenFiletypes( PlexusIoResource plexusIoResource )
-        throws IOException
     {
         String fileName = plexusIoResource.getName().toLowerCase();
         return ( fileName.endsWith( ".zip" ) || fileName.endsWith( ".jar" ) );
diff --git a/src/main/java/org/apache/maven/plugins/assembly/interpolation/AssemblyInterpolator.java b/src/main/java/org/apache/maven/plugins/assembly/interpolation/AssemblyInterpolator.java
index fe55eaa..536cafb 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/interpolation/AssemblyInterpolator.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/interpolation/AssemblyInterpolator.java
@@ -47,7 +47,7 @@
 
     static
     {
-        final Set<String> blacklist = new HashSet<String>();
+        final Set<String> blacklist = new HashSet<>();
 
         blacklist.add( "outputFileNameMapping" );
         blacklist.add( "outputDirectoryMapping" );
@@ -65,7 +65,7 @@
         final FixedStringSearchInterpolator interpolator, final InterpolationState is, final Logger logger )
     {
         final Set<String> blacklistFields =
-            new HashSet<String>( FieldBasedObjectInterpolator.DEFAULT_BLACKLISTED_FIELD_NAMES );
+            new HashSet<>( FieldBasedObjectInterpolator.DEFAULT_BLACKLISTED_FIELD_NAMES );
         blacklistFields.addAll( INTERPOLATION_BLACKLIST );
 
         return new AssemblyXpp3Reader.ContentTransformer()
@@ -93,7 +93,7 @@
         final FixedStringSearchInterpolator interpolator, final InterpolationState is, final Logger logger )
     {
         final Set<String> blacklistFields =
-            new HashSet<String>( FieldBasedObjectInterpolator.DEFAULT_BLACKLISTED_FIELD_NAMES );
+            new HashSet<>( FieldBasedObjectInterpolator.DEFAULT_BLACKLISTED_FIELD_NAMES );
         blacklistFields.addAll( INTERPOLATION_BLACKLIST );
 
         return new ComponentXpp3Reader.ContentTransformer()
diff --git a/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java b/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
index 2dfd47a..ab20477 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReader.java
@@ -94,14 +94,14 @@
     {
         final Locator locator = new Locator();
 
-        final List<LocatorStrategy> strategies = new ArrayList<LocatorStrategy>();
+        final List<LocatorStrategy> strategies = new ArrayList<>();
         strategies.add( new RelativeFileLocatorStrategy( configSource.getBasedir() ) );
         strategies.add( new FileLocatorStrategy() );
 
-        final List<LocatorStrategy> refStrategies = new ArrayList<LocatorStrategy>();
+        final List<LocatorStrategy> refStrategies = new ArrayList<>();
         refStrategies.add( new PrefixedClasspathLocatorStrategy( "/assemblies/" ) );
 
-        final List<Assembly> assemblies = new ArrayList<Assembly>();
+        final List<Assembly> assemblies = new ArrayList<>();
 
         final String[] descriptors = configSource.getDescriptors();
         final String[] descriptorRefs = configSource.getDescriptorReferences();
@@ -161,7 +161,7 @@
         }
 
         // check unique IDs
-        final Set<String> ids = new HashSet<String>();
+        final Set<String> ids = new HashSet<>();
         for ( final Assembly assembly : assemblies )
         {
             if ( !ids.add( assembly.getId() ) )
@@ -360,12 +360,7 @@
             reader.close();
             reader = null;
         }
-        catch ( final IOException e )
-        {
-            throw new AssemblyReadException( "Error reading descriptor: " + locationDescription + ": " + e.getMessage(),
-                                             e );
-        }
-        catch ( final XmlPullParserException e )
+        catch ( final IOException | XmlPullParserException e )
         {
             throw new AssemblyReadException( "Error reading descriptor: " + locationDescription + ": " + e.getMessage(),
                                              e );
@@ -454,12 +449,7 @@
                 reader = new InputStreamReader( resolvedLocation.getInputStream() );
                 component = new ComponentXpp3Reader( transformer ).read( reader );
             }
-            catch ( final IOException e )
-            {
-                throw new AssemblyReadException( "Error reading component descriptor: " + location + " (resolved to: "
-                    + resolvedLocation.getSpecification() + ")", e );
-            }
-            catch ( final XmlPullParserException e )
+            catch ( final IOException | XmlPullParserException e )
             {
                 throw new AssemblyReadException( "Error reading component descriptor: " + location + " (resolved to: "
                     + resolvedLocation.getSpecification() + ")", e );
diff --git a/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java b/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java
index c6a00ff..0034e04 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/mojos/AbstractAssemblyMojo.java
@@ -63,7 +63,7 @@
     extends AbstractMojo
     implements AssemblerConfigurationSource
 {
-    protected FixedStringSearchInterpolator commanndLinePropertiesInterpolator;
+    protected FixedStringSearchInterpolator commandLinePropertiesInterpolator;
 
     protected FixedStringSearchInterpolator envInterpolator;
 
@@ -527,11 +527,7 @@
                     }
                 }
             }
-            catch ( final ArchiveCreationException e )
-            {
-                throw new MojoExecutionException( "Failed to create assembly: " + e.getMessage(), e );
-            }
-            catch ( final AssemblyFormattingException e )
+            catch ( final ArchiveCreationException | AssemblyFormattingException e )
             {
                 throw new MojoExecutionException( "Failed to create assembly: " + e.getMessage(), e );
             }
@@ -892,11 +888,11 @@
     @Nonnull
     public FixedStringSearchInterpolator getCommandLinePropsInterpolator()
     {
-        if ( commanndLinePropertiesInterpolator == null )
+        if ( commandLinePropertiesInterpolator == null )
         {
-            this.commanndLinePropertiesInterpolator = createCommandLinePropertiesInterpolator();
+            this.commandLinePropertiesInterpolator = createCommandLinePropertiesInterpolator();
         }
-        return commanndLinePropertiesInterpolator;
+        return commandLinePropertiesInterpolator;
     }
 
     @Override
diff --git a/src/main/java/org/apache/maven/plugins/assembly/repository/DefaultRepositoryAssembler.java b/src/main/java/org/apache/maven/plugins/assembly/repository/DefaultRepositoryAssembler.java
index 30f05c5..31318b0 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/repository/DefaultRepositoryAssembler.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/repository/DefaultRepositoryAssembler.java
@@ -1,272 +1,272 @@
-package org.apache.maven.plugins.assembly.repository;

-

-/*

- * Licensed to the Apache Software Foundation (ASF) under one

- * or more contributor license agreements.  See the NOTICE file

- * distributed with this work for additional information

- * regarding copyright ownership.  The ASF licenses this file

- * to you under the Apache License, Version 2.0 (the

- * "License"); you may not use this file except in compliance

- * with the License.  You may obtain a copy of the License at

- *

- *   http://www.apache.org/licenses/LICENSE-2.0

- *

- * Unless required by applicable law or agreed to in writing,

- * software distributed under the License is distributed on an

- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

- * KIND, either express or implied.  See the License for the

- * specific language governing permissions and limitations

- * under the License.

- */

-

-import java.io.File;

-import java.io.IOException;

-import java.util.ArrayList;

-import java.util.Collection;

-import java.util.HashMap;

-import java.util.List;

-import java.util.Map;

-import java.util.Set;

-

-import org.apache.maven.artifact.Artifact;

-import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;

-import org.apache.maven.artifact.resolver.filter.ArtifactFilter;

-import org.apache.maven.model.Dependency;

-import org.apache.maven.plugins.assembly.repository.model.GroupVersionAlignment;

-import org.apache.maven.plugins.assembly.repository.model.RepositoryInfo;

-import org.apache.maven.project.MavenProject;

-import org.apache.maven.project.ProjectBuildingRequest;

-import org.apache.maven.shared.artifact.TransferUtils;

-import org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilter;

-import org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter;

-import org.apache.maven.shared.artifact.filter.ScopeArtifactFilter;

-import org.apache.maven.shared.artifact.resolve.ArtifactResolver;

-import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;

-import org.apache.maven.shared.artifact.resolve.ArtifactResult;

-import org.apache.maven.shared.dependencies.resolve.DependencyResolver;

-import org.apache.maven.shared.dependencies.resolve.DependencyResolverException;

-import org.apache.maven.shared.repository.RepositoryManager;

-import org.apache.maven.shared.utils.io.FileUtils;

-import org.codehaus.plexus.component.annotations.Component;

-import org.codehaus.plexus.component.annotations.Requirement;

-import org.codehaus.plexus.logging.AbstractLogEnabled;

-import org.codehaus.plexus.logging.Logger;

-

-/**

- * @author Jason van Zyl

- */

-

-// todo will need to pop the processed project cache using reflection

-@Component( role = RepositoryAssembler.class )

-public class DefaultRepositoryAssembler

-    extends AbstractLogEnabled

-    implements RepositoryAssembler

-{

-    @Requirement

-    protected ArtifactResolver artifactResolver;

-

-    @Requirement

-    private DependencyResolver dependencyResolver;

-

-    @Requirement

-    private RepositoryManager repositoryManager;

-

-    public void buildRemoteRepository( File repositoryDirectory, RepositoryInfo repository,

-                                       RepositoryBuilderConfigSource configSource )

-                                           throws RepositoryAssemblyException

-    {

-        MavenProject project = configSource.getProject();

-        ProjectBuildingRequest buildingRequest = configSource.getProjectBuildingRequest();

-

-        Iterable<ArtifactResult> result = null;

-

-        Collection<Dependency> dependencies = project.getDependencies();

-

-        if ( dependencies == null )

-        {

-            Logger logger = getLogger();

-

-            if ( logger.isDebugEnabled() )

-            {

-                logger.debug( "dependency-artifact set for project: " + project.getId()

-                    + " is null. Skipping repository processing." );

-            }

-

-            return;

-        }

-

-        Collection<Dependency> managedDependencies = null;

-        if ( project.getDependencyManagement() != null )

-        {

-            managedDependencies = project.getDependencyManagement().getDependencies();

-        }

-

-        // Older Aether versions use an cache which can't be cleared. So can't delete repoDir and use it again.

-        // Instead create a temporary repository, delete it at end (should be in a finally-block)

-

-        File tempRepo = new File( repositoryDirectory.getParentFile(), repositoryDirectory.getName() + "_tmp" );

-

-        buildingRequest = repositoryManager.setLocalRepositoryBasedir( buildingRequest, tempRepo );

-

-        try

-        {

-            result = dependencyResolver.resolveDependencies( buildingRequest, dependencies, managedDependencies, null );

-        }

-        catch ( DependencyResolverException e )

-        {

-            throw new RepositoryAssemblyException( "Error resolving artifacts: " + e.getMessage(), e );

-        }

-

-        ArtifactFilter filter = buildRepositoryFilter( repository, project );

-

-        buildingRequest = repositoryManager.setLocalRepositoryBasedir( buildingRequest, repositoryDirectory );

-

-        Map<String, GroupVersionAlignment> groupVersionAlignments =

-            createGroupVersionAlignments( repository.getGroupVersionAlignments() );

-

-        assembleRepositoryArtifacts( buildingRequest, result, filter, groupVersionAlignments );

-

-        if ( repository.isIncludeMetadata() )

-        {

-//            assembleRepositoryMetadata( result, filter, centralRepository, targetRepository );

-        }

-

-        try

-        {

-            FileUtils.deleteDirectory( tempRepo );

-        }

-        catch ( IOException e )

-        {

-            // noop

-        }

-    }

-

-    private ArtifactFilter buildRepositoryFilter( RepositoryInfo repository, MavenProject project )

-    {

-        AndArtifactFilter filter = new AndArtifactFilter();

-

-        ArtifactFilter scopeFilter = new ScopeArtifactFilter( repository.getScope() );

-        filter.add( scopeFilter );

-

-        // ----------------------------------------------------------------------------

-        // Includes

-        //

-        // We'll take everything if no includes are specified to try and make

-        // this

-        // process more maintainable. Don't want to have to update the assembly

-        // descriptor everytime the POM is updated.

-        // ----------------------------------------------------------------------------

-

-        List<String> includes = repository.getIncludes();

-

-        if ( ( includes == null ) || includes.isEmpty() )

-        {

-            List<String> patterns = new ArrayList<String>();

-

-            Set<Artifact> projectArtifacts = project.getDependencyArtifacts();

-

-            if ( projectArtifacts != null )

-            {

-                for ( Artifact artifact : projectArtifacts )

-                {

-                    patterns.add( artifact.getDependencyConflictId() );

-                }

-            }

-

-            PatternIncludesArtifactFilter includeFilter = new PatternIncludesArtifactFilter( patterns, true );

-

-            filter.add( includeFilter );

-        }

-        else

-        {

-            filter.add( new PatternIncludesArtifactFilter( repository.getIncludes(), true ) );

-        }

-

-        // ----------------------------------------------------------------------------

-        // Excludes

-        //

-        // We still want to make it easy to exclude a few things even if we

-        // slurp

-        // up everything.

-        // ----------------------------------------------------------------------------

-

-        List<String> excludes = repository.getExcludes();

-

-        if ( ( excludes != null ) && !excludes.isEmpty() )

-        {

-            filter.add( new PatternExcludesArtifactFilter( repository.getExcludes(), true ) );

-        }

-

-        return filter;

-    }

-

-    private void assembleRepositoryArtifacts( ProjectBuildingRequest buildingRequest, Iterable<ArtifactResult> result,

-                                              ArtifactFilter filter,

-                                              Map<String, GroupVersionAlignment> groupVersionAlignments )

-                                                  throws RepositoryAssemblyException

-    {

-        try

-        {

-            for ( ArtifactResult ar : result )

-            {

-                Artifact a = ar.getArtifact();

-

-                if ( filter.include( a ) )

-                {

-                    getLogger().debug( "Re-resolving: " + a + " for repository assembly." );

-

-                    setAlignment( a, groupVersionAlignments );

-

-                    artifactResolver.resolveArtifact( buildingRequest, TransferUtils.toArtifactCoordinate( a ) );

-

-                    a.setVersion( a.getBaseVersion() );

-

-                    File targetFile = new File( repositoryManager.getLocalRepositoryBasedir( buildingRequest ),

-                                                repositoryManager.getPathForLocalArtifact( buildingRequest, a ) );

-                    

-                    FileUtils.copyFile( a.getFile(), targetFile );

-

-//                    writeChecksums( targetFile );

-                }

-            }

-        }

-        catch ( ArtifactResolverException e )

-        {

-            throw new RepositoryAssemblyException( "Error resolving artifacts: " + e.getMessage(), e );

-        }

-        catch ( IOException e )

-        {

-            throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );

-        }

-    }

-

-    // CHECKSTYLE_OFF: LineLength

-    protected Map<String, GroupVersionAlignment> createGroupVersionAlignments( List<GroupVersionAlignment> versionAlignments )

-    // CHECKSTYLE_ON: LineLength

-    {

-        Map<String, GroupVersionAlignment> groupVersionAlignments = new HashMap<String, GroupVersionAlignment>();

-

-        if ( versionAlignments != null )

-        {

-            for ( GroupVersionAlignment alignment : versionAlignments )

-            {

-                groupVersionAlignments.put( alignment.getId(), alignment );

-            }

-        }

-

-        return groupVersionAlignments;

-    }

-

-    private void setAlignment( Artifact artifact, Map<String, GroupVersionAlignment> groupVersionAlignments )

-    {

-        GroupVersionAlignment alignment = groupVersionAlignments.get( artifact.getGroupId() );

-

-        if ( alignment != null )

-        {

-            if ( !alignment.getExcludes().contains( artifact.getArtifactId() ) )

-            {

-                artifact.setVersion( alignment.getVersion() );

-            }

-        }

-    }

-}

+package org.apache.maven.plugins.assembly.repository;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.resolver.filter.AndArtifactFilter;
+import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.plugins.assembly.repository.model.GroupVersionAlignment;
+import org.apache.maven.plugins.assembly.repository.model.RepositoryInfo;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.artifact.TransferUtils;
+import org.apache.maven.shared.artifact.filter.PatternExcludesArtifactFilter;
+import org.apache.maven.shared.artifact.filter.PatternIncludesArtifactFilter;
+import org.apache.maven.shared.artifact.filter.ScopeArtifactFilter;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolver;
+import org.apache.maven.shared.artifact.resolve.ArtifactResolverException;
+import org.apache.maven.shared.artifact.resolve.ArtifactResult;
+import org.apache.maven.shared.dependencies.resolve.DependencyResolver;
+import org.apache.maven.shared.dependencies.resolve.DependencyResolverException;
+import org.apache.maven.shared.repository.RepositoryManager;
+import org.apache.maven.shared.utils.io.FileUtils;
+import org.codehaus.plexus.component.annotations.Component;
+import org.codehaus.plexus.component.annotations.Requirement;
+import org.codehaus.plexus.logging.AbstractLogEnabled;
+import org.codehaus.plexus.logging.Logger;
+
+/**
+ * @author Jason van Zyl
+ */
+
+// todo will need to pop the processed project cache using reflection
+@Component( role = RepositoryAssembler.class )
+public class DefaultRepositoryAssembler
+    extends AbstractLogEnabled
+    implements RepositoryAssembler
+{
+    @Requirement
+    protected ArtifactResolver artifactResolver;
+
+    @Requirement
+    private DependencyResolver dependencyResolver;
+
+    @Requirement
+    private RepositoryManager repositoryManager;
+
+    public void buildRemoteRepository( File repositoryDirectory, RepositoryInfo repository,
+                                       RepositoryBuilderConfigSource configSource )
+                                           throws RepositoryAssemblyException
+    {
+        MavenProject project = configSource.getProject();
+        ProjectBuildingRequest buildingRequest = configSource.getProjectBuildingRequest();
+
+        Iterable<ArtifactResult> result = null;
+
+        Collection<Dependency> dependencies = project.getDependencies();
+
+        if ( dependencies == null )
+        {
+            Logger logger = getLogger();
+
+            if ( logger.isDebugEnabled() )
+            {
+                logger.debug( "dependency-artifact set for project: " + project.getId()
+                    + " is null. Skipping repository processing." );
+            }
+
+            return;
+        }
+
+        Collection<Dependency> managedDependencies = null;
+        if ( project.getDependencyManagement() != null )
+        {
+            managedDependencies = project.getDependencyManagement().getDependencies();
+        }
+
+        // Older Aether versions use an cache which can't be cleared. So can't delete repoDir and use it again.
+        // Instead create a temporary repository, delete it at end (should be in a finally-block)
+
+        File tempRepo = new File( repositoryDirectory.getParentFile(), repositoryDirectory.getName() + "_tmp" );
+
+        buildingRequest = repositoryManager.setLocalRepositoryBasedir( buildingRequest, tempRepo );
+
+        try
+        {
+            result = dependencyResolver.resolveDependencies( buildingRequest, dependencies, managedDependencies, null );
+        }
+        catch ( DependencyResolverException e )
+        {
+            throw new RepositoryAssemblyException( "Error resolving artifacts: " + e.getMessage(), e );
+        }
+
+        ArtifactFilter filter = buildRepositoryFilter( repository, project );
+
+        buildingRequest = repositoryManager.setLocalRepositoryBasedir( buildingRequest, repositoryDirectory );
+
+        Map<String, GroupVersionAlignment> groupVersionAlignments =
+            createGroupVersionAlignments( repository.getGroupVersionAlignments() );
+
+        assembleRepositoryArtifacts( buildingRequest, result, filter, groupVersionAlignments );
+
+        if ( repository.isIncludeMetadata() )
+        {
+//            assembleRepositoryMetadata( result, filter, centralRepository, targetRepository );
+        }
+
+        try
+        {
+            FileUtils.deleteDirectory( tempRepo );
+        }
+        catch ( IOException e )
+        {
+            // noop
+        }
+    }
+
+    private ArtifactFilter buildRepositoryFilter( RepositoryInfo repository, MavenProject project )
+    {
+        AndArtifactFilter filter = new AndArtifactFilter();
+
+        ArtifactFilter scopeFilter = new ScopeArtifactFilter( repository.getScope() );
+        filter.add( scopeFilter );
+
+        // ----------------------------------------------------------------------------
+        // Includes
+        //
+        // We'll take everything if no includes are specified to try and make
+        // this
+        // process more maintainable. Don't want to have to update the assembly
+        // descriptor everytime the POM is updated.
+        // ----------------------------------------------------------------------------
+
+        List<String> includes = repository.getIncludes();
+
+        if ( ( includes == null ) || includes.isEmpty() )
+        {
+            List<String> patterns = new ArrayList<>();
+
+            Set<Artifact> projectArtifacts = project.getDependencyArtifacts();
+
+            if ( projectArtifacts != null )
+            {
+                for ( Artifact artifact : projectArtifacts )
+                {
+                    patterns.add( artifact.getDependencyConflictId() );
+                }
+            }
+
+            PatternIncludesArtifactFilter includeFilter = new PatternIncludesArtifactFilter( patterns, true );
+
+            filter.add( includeFilter );
+        }
+        else
+        {
+            filter.add( new PatternIncludesArtifactFilter( repository.getIncludes(), true ) );
+        }
+
+        // ----------------------------------------------------------------------------
+        // Excludes
+        //
+        // We still want to make it easy to exclude a few things even if we
+        // slurp
+        // up everything.
+        // ----------------------------------------------------------------------------
+
+        List<String> excludes = repository.getExcludes();
+
+        if ( ( excludes != null ) && !excludes.isEmpty() )
+        {
+            filter.add( new PatternExcludesArtifactFilter( repository.getExcludes(), true ) );
+        }
+
+        return filter;
+    }
+
+    private void assembleRepositoryArtifacts( ProjectBuildingRequest buildingRequest, Iterable<ArtifactResult> result,
+                                              ArtifactFilter filter,
+                                              Map<String, GroupVersionAlignment> groupVersionAlignments )
+                                                  throws RepositoryAssemblyException
+    {
+        try
+        {
+            for ( ArtifactResult ar : result )
+            {
+                Artifact a = ar.getArtifact();
+
+                if ( filter.include( a ) )
+                {
+                    getLogger().debug( "Re-resolving: " + a + " for repository assembly." );
+
+                    setAlignment( a, groupVersionAlignments );
+
+                    artifactResolver.resolveArtifact( buildingRequest, TransferUtils.toArtifactCoordinate( a ) );
+
+                    a.setVersion( a.getBaseVersion() );
+
+                    File targetFile = new File( repositoryManager.getLocalRepositoryBasedir( buildingRequest ),
+                                                repositoryManager.getPathForLocalArtifact( buildingRequest, a ) );
+                    
+                    FileUtils.copyFile( a.getFile(), targetFile );
+
+//                    writeChecksums( targetFile );
+                }
+            }
+        }
+        catch ( ArtifactResolverException e )
+        {
+            throw new RepositoryAssemblyException( "Error resolving artifacts: " + e.getMessage(), e );
+        }
+        catch ( IOException e )
+        {
+            throw new RepositoryAssemblyException( "Error writing artifact metdata.", e );
+        }
+    }
+
+    // CHECKSTYLE_OFF: LineLength
+    protected Map<String, GroupVersionAlignment> createGroupVersionAlignments( List<GroupVersionAlignment> versionAlignments )
+    // CHECKSTYLE_ON: LineLength
+    {
+        Map<String, GroupVersionAlignment> groupVersionAlignments = new HashMap<>();
+
+        if ( versionAlignments != null )
+        {
+            for ( GroupVersionAlignment alignment : versionAlignments )
+            {
+                groupVersionAlignments.put( alignment.getId(), alignment );
+            }
+        }
+
+        return groupVersionAlignments;
+    }
+
+    private void setAlignment( Artifact artifact, Map<String, GroupVersionAlignment> groupVersionAlignments )
+    {
+        GroupVersionAlignment alignment = groupVersionAlignments.get( artifact.getGroupId() );
+
+        if ( alignment != null )
+        {
+            if ( !alignment.getExcludes().contains( artifact.getArtifactId() ) )
+            {
+                artifact.setVersion( alignment.getVersion() );
+            }
+        }
+    }
+}
diff --git a/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java b/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
index 4697ae9..3777d78 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/utils/AssemblyFormatUtils.java
@@ -313,7 +313,7 @@
 
             if ( value.contains( "." + sep ) )
             {
-                List<String> parts = new ArrayList<String>();
+                List<String> parts = new ArrayList<>();
                 parts.addAll( Arrays.asList( value.split( sep.replace( "\\", "\\\\" ) ) ) );
 
                 for ( ListIterator<String> it = parts.listIterator(); it.hasNext(); )
diff --git a/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java b/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
index f3edf94..a99c4d2 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/utils/FilterUtils.java
@@ -54,7 +54,7 @@
                                                     final List<String> excludes, final boolean actTransitively,
                                                     final Logger logger )
     {
-        final List<PatternIncludesArtifactFilter> allFilters = new ArrayList<PatternIncludesArtifactFilter>();
+        final List<PatternIncludesArtifactFilter> allFilters = new ArrayList<>();
 
         final AndArtifactFilter filter = new AndArtifactFilter();
 
@@ -75,7 +75,7 @@
             allFilters.add( excludeFilter );
         }
 
-        Set<MavenProject> result = new LinkedHashSet<MavenProject>( projects.size() );
+        Set<MavenProject> result = new LinkedHashSet<>( projects.size() );
         for ( MavenProject project : projects )
         {
             final Artifact artifact = project.getArtifact();
@@ -102,7 +102,7 @@
                                         final ArtifactFilter... additionalFilters )
         throws InvalidAssemblerConfigurationException
     {
-        final List<ArtifactFilter> allFilters = new ArrayList<ArtifactFilter>();
+        final List<ArtifactFilter> allFilters = new ArrayList<>();
 
         final AndArtifactFilter filter = new AndArtifactFilter();
 
@@ -211,7 +211,7 @@
      */
     public static ScopeFilter newScopeFilter( final Collection<String> rootScopes )
     {
-        Set<String> scopes = new HashSet<String>();
+        Set<String> scopes = new HashSet<>();
         
         for ( String rootScope : rootScopes )
         {
diff --git a/src/main/java/org/apache/maven/plugins/assembly/utils/InterpolationConstants.java b/src/main/java/org/apache/maven/plugins/assembly/utils/InterpolationConstants.java
index e0fdf99..c990a9f 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/utils/InterpolationConstants.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/utils/InterpolationConstants.java
@@ -37,13 +37,13 @@
 
     static
     {
-        final List<String> projectPrefixes = new ArrayList<String>();
+        final List<String> projectPrefixes = new ArrayList<>();
         projectPrefixes.add( "pom." );
         projectPrefixes.add( "project." );
 
         PROJECT_PREFIXES = Collections.unmodifiableList( projectPrefixes );
 
-        final List<String> projectPropertiesPrefixes = new ArrayList<String>();
+        final List<String> projectPropertiesPrefixes = new ArrayList<>();
 
         projectPropertiesPrefixes.add( "pom.properties." );
         projectPropertiesPrefixes.add( "project.properties." );
diff --git a/src/main/java/org/apache/maven/plugins/assembly/utils/ProjectUtils.java b/src/main/java/org/apache/maven/plugins/assembly/utils/ProjectUtils.java
index 269b779..c9a6821 100644
--- a/src/main/java/org/apache/maven/plugins/assembly/utils/ProjectUtils.java
+++ b/src/main/java/org/apache/maven/plugins/assembly/utils/ProjectUtils.java
@@ -62,9 +62,9 @@
     {
         final Set<MavenProject> singleParentSet = Collections.singleton( project );
 
-        final Set<MavenProject> moduleCandidates = new LinkedHashSet<MavenProject>( reactorProjects );
+        final Set<MavenProject> moduleCandidates = new LinkedHashSet<>( reactorProjects );
 
-        final Set<MavenProject> modules = new LinkedHashSet<MavenProject>();
+        final Set<MavenProject> modules = new LinkedHashSet<>();
 
         // we temporarily add the master project to the modules set, since this
         // set is pulling double duty as a set of
@@ -96,7 +96,7 @@
                 Set<MavenProject> currentPotentialParents;
                 if ( includeSubModules )
                 {
-                    currentPotentialParents = new LinkedHashSet<MavenProject>( modules );
+                    currentPotentialParents = new LinkedHashSet<>( modules );
                 }
                 else
                 {
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
index b404ab3..dbb6cf4 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiverTest.java
@@ -166,11 +166,7 @@
         {
             macMgr.archiver.createArchive();
         }
-        catch ( final ArchiverException e )
-        {
-            fail( "Should never happen" );
-        }
-        catch ( final IOException e )
+        catch ( final ArchiverException | IOException e )
         {
             fail( "Should never happen" );
         }
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
index 7b1ac8f..b864997 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/archiver/AssemblyProxyArchiverTest.java
@@ -126,7 +126,7 @@
         EasyMock.expectLastCall().anyTimes();
 
         final CounterSelector counter = new CounterSelector( true );
-        final List<FileSelector> selectors = new ArrayList<FileSelector>();
+        final List<FileSelector> selectors = new ArrayList<>();
         selectors.add( counter );
 
         mm.replayAll();
@@ -157,7 +157,7 @@
         delegate.setDestFile( output );
 
         final CounterSelector counter = new CounterSelector( true );
-        final List<FileSelector> selectors = new ArrayList<FileSelector>();
+        final List<FileSelector> selectors = new ArrayList<>();
         selectors.add( counter );
 
         final AssemblyProxyArchiver archiver =
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparatorTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparatorTest.java
index abef5a2..d6815ac 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparatorTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/AssemblyArchiverPhaseComparatorTest.java
@@ -41,7 +41,7 @@
     public void comparatorSortsCorrectly()
         throws Exception
     {
-        List<AssemblyArchiverPhase> items = new ArrayList<AssemblyArchiverPhase>();
+        List<AssemblyArchiverPhase> items = new ArrayList<>();
         Unordered2 u2 = new Unordered2();
         items.add( u2 );
         Ordered2 o2 = new Ordered2();
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
index 86b9de0..20decc1 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/phase/ModuleSetAssemblyPhaseTest.java
@@ -277,7 +277,7 @@
         final File moduleArtifactFile = moduleArtifactMock.setNewFile();
         module.setArtifact( moduleArtifactMock.getArtifact() );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>();
+        final List<MavenProject> projects = new ArrayList<>();
 
         projects.add( module );
 
@@ -648,7 +648,7 @@
 
         final MavenProject project2 = createProject( "group", "artifact2", "version", null );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>();
+        final List<MavenProject> projects = new ArrayList<>();
         projects.add( project );
         projects.add( project2 );
 
@@ -679,7 +679,7 @@
 
         final MavenProject project2 = createProject( "group", "artifact2", "version", project );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>();
+        final List<MavenProject> projects = new ArrayList<>();
         projects.add( project );
         projects.add( project2 );
 
@@ -715,7 +715,7 @@
         final MavenProject project2 = createProject( "group", "artifact2", "version", project );
         final MavenProject project3 = createProject( "group", "artifact3", "version", project2 );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>();
+        final List<MavenProject> projects = new ArrayList<>();
         projects.add( project );
         projects.add( project2 );
         projects.add( project3 );
@@ -732,7 +732,7 @@
 
         assertEquals( 2, moduleProjects.size() );
 
-        final List<MavenProject> check = new ArrayList<MavenProject>();
+        final List<MavenProject> check = new ArrayList<>();
         check.add( project2 );
         check.add( project3 );
 
@@ -758,7 +758,7 @@
         final MavenProject project3 = createProject( "group", "artifact3", "version", project2 );
         addArtifact( project3, mm, true );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>();
+        final List<MavenProject> projects = new ArrayList<>();
         projects.add( project );
         projects.add( project2 );
         projects.add( project3 );
@@ -789,7 +789,7 @@
 
         if ( expectDepTrailCheck )
         {
-            final LinkedList<String> depTrail = new LinkedList<String>();
+            final LinkedList<String> depTrail = new LinkedList<>();
 
             MavenProject parent = project.getParent();
             while ( parent != null )
@@ -811,7 +811,7 @@
     {
         boolean failed = false;
 
-        final Set<MavenProject> checkTooMany = new HashSet<MavenProject>( moduleProjects );
+        final Set<MavenProject> checkTooMany = new HashSet<>( moduleProjects );
         checkTooMany.removeAll( check );
 
         if ( !checkTooMany.isEmpty() )
@@ -826,7 +826,7 @@
             }
         }
 
-        final Set<MavenProject> checkTooFew = new HashSet<MavenProject>( check );
+        final Set<MavenProject> checkTooFew = new HashSet<>( check );
         checkTooFew.removeAll( moduleProjects );
 
         if ( !checkTooFew.isEmpty() )
diff --git a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
index 8ab9625..b322df9 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/archive/task/AddDependencySetsTaskTest.java
@@ -299,7 +299,7 @@
     {
         final MavenProject project = new MavenProject( new Model() );
 
-        final Set<Artifact> artifacts = new HashSet<Artifact>();
+        final Set<Artifact> artifacts = new HashSet<>();
 
         final ArtifactMock am = new ArtifactMock( mockManager, "group", "artifact", "1.0", "jar", false );
         am.setDependencyTrail( Collections.singletonList( project.getId() ) );
@@ -335,7 +335,7 @@
     {
         final MavenProject project = new MavenProject( new Model() );
 
-        final Set<Artifact> artifacts = new HashSet<Artifact>();
+        final Set<Artifact> artifacts = new HashSet<>();
 
         final ArtifactMock am = new ArtifactMock( mockManager, "group", "artifact", "1.0", "jar", false );
         artifacts.add( am.getArtifact() );
diff --git a/src/test/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfoTest.java b/src/test/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfoTest.java
index 86c2b71..9f68211 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfoTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/artifact/ResolutionManagementInfoTest.java
@@ -68,14 +68,14 @@
         Artifact a3 =
             new DefaultArtifact( "groupid", "a3", VersionRange.createFromVersion( "1.0" ), "test", "jar", null,
                                  new DefaultArtifactHandler() );
-        rmi.addArtifacts( new HashSet<Artifact>( Arrays.asList( a1, a2, a3 ) ) );
+        rmi.addArtifacts( new HashSet<>( Arrays.asList( a1, a2, a3 ) ) );
         Artifact b2 =
             new DefaultArtifact( "groupid", "a2", VersionRange.createFromVersion( "1.0" ), "compile", "jar", null,
                                  new DefaultArtifactHandler() );
         Artifact b3 =
             new DefaultArtifact( "groupid", "a3", VersionRange.createFromVersion( "1.0" ), "compile", "jar", null,
                                  new DefaultArtifactHandler() );
-        rmi.addArtifacts( new HashSet<Artifact>( Arrays.asList( b2, b3 ) ) );
+        rmi.addArtifacts( new HashSet<>( Arrays.asList( b2, b3 ) ) );
         assertEquals( 3, rmi.getArtifacts().size() );
         int compile = 0;
         int test = 0;
diff --git a/src/test/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilterTest.java b/src/test/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
index f091631..df2718a 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/filter/ComponentsXmlArchiverFileFilterTest.java
@@ -117,7 +117,7 @@
     public void testAddComponentsXml_ShouldAddTwoComponentsWithRoleHints()
         throws IOException, XmlPullParserException
     {
-        final List<ComponentDef> defs = new ArrayList<ComponentDef>();
+        final List<ComponentDef> defs = new ArrayList<>();
 
         defs.add( new ComponentDef( "role", "hint", "org.apache.maven.Impl" ) );
         defs.add( new ComponentDef( "role", "hint2", "org.apache.maven.Impl2" ) );
@@ -146,7 +146,7 @@
     {
         final Xpp3Dom dom = createComponentDom( new ComponentDef( "role", null, "impl" ) );
 
-        filter.components = new LinkedHashMap<String, Xpp3Dom>();
+        filter.components = new LinkedHashMap<>();
         filter.components.put( "role", dom );
 
         final FileCatchingArchiver fca = new FileCatchingArchiver();
@@ -173,7 +173,7 @@
     {
         final Xpp3Dom dom = createComponentDom( new ComponentDef( "role", "hint", "impl" ) );
 
-        filter.components = new LinkedHashMap<String, Xpp3Dom>();
+        filter.components = new LinkedHashMap<>();
         filter.components.put( "rolehint", dom );
 
         final FileCatchingArchiver fca = new FileCatchingArchiver();
@@ -198,7 +198,7 @@
     public void testAddToArchive_ShouldWriteTwoComponentToFile()
         throws IOException, ArchiverException, JDOMException
     {
-        filter.components = new LinkedHashMap<String, Xpp3Dom>();
+        filter.components = new LinkedHashMap<>();
 
         final Xpp3Dom dom = createComponentDom( new ComponentDef( "role", "hint", "impl" ) );
 
@@ -239,7 +239,7 @@
     public void testAddToArchive_ShouldWriteTwoComponentToArchivedFile()
         throws IOException, ArchiverException, JDOMException
     {
-        filter.components = new LinkedHashMap<String, Xpp3Dom>();
+        filter.components = new LinkedHashMap<>();
 
         final Xpp3Dom dom = createComponentDom( new ComponentDef( "role", "hint", "impl" ) );
 
diff --git a/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java b/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
index 8acff00..9e4dda2 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/io/DefaultAssemblyReaderTest.java
@@ -883,7 +883,7 @@
         final Assembly assembly2 = new Assembly();
         assembly2.setId( "test2" );
 
-        final List<Assembly> assemblies = new ArrayList<Assembly>();
+        final List<Assembly> assemblies = new ArrayList<>();
         assemblies.add( assembly1 );
         assemblies.add( assembly2 );
 
@@ -935,7 +935,7 @@
         final Assembly assembly2 = new Assembly();
         assembly2.setId( "test2" );
 
-        final List<Assembly> assemblies = new ArrayList<Assembly>();
+        final List<Assembly> assemblies = new ArrayList<>();
         assemblies.add( assembly1 );
         assemblies.add( assembly2 );
 
@@ -966,7 +966,7 @@
         final Assembly assembly2 = new Assembly();
         assembly2.setId( "test2" );
 
-        final List<Assembly> assemblies = new ArrayList<Assembly>();
+        final List<Assembly> assemblies = new ArrayList<>();
         assemblies.add( assembly1 );
         assemblies.add( assembly2 );
 
@@ -993,7 +993,7 @@
     private List<String> writeAssembliesToFile( final List<Assembly> assemblies, final File dir )
         throws IOException
     {
-        final List<String> files = new ArrayList<String>();
+        final List<String> files = new ArrayList<>();
 
         for ( final Assembly assembly : assemblies )
         {
diff --git a/src/test/java/org/apache/maven/plugins/assembly/testutils/TestFileManager.java b/src/test/java/org/apache/maven/plugins/assembly/testutils/TestFileManager.java
index a5a57e0..ae5280c 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/testutils/TestFileManager.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/testutils/TestFileManager.java
@@ -35,7 +35,7 @@
 
     public static final String TEMP_DIR_PATH = System.getProperty( "java.io.tmpdir" );
 
-    private final List<File> filesToDelete = new ArrayList<File>();
+    private final List<File> filesToDelete = new ArrayList<>();
 
     private final String baseFilename;
 
diff --git a/src/test/java/org/apache/maven/plugins/assembly/utils/FilterUtilsTest.java b/src/test/java/org/apache/maven/plugins/assembly/utils/FilterUtilsTest.java
index 27be910..c1793b0 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/utils/FilterUtilsTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/utils/FilterUtilsTest.java
@@ -81,13 +81,13 @@
 
         expect( artifact.getDependencyConflictId() ).andReturn( "group:artifact:type" ).atLeastOnce();
 
-        final List<String> includes = new ArrayList<String>();
+        final List<String> includes = new ArrayList<>();
 
         includes.add( "other.group:other-artifact:type:version" );
 
         final List<String> excludes = Collections.emptyList();
 
-        final Set<Artifact> artifacts = new HashSet<Artifact>();
+        final Set<Artifact> artifacts = new HashSet<>();
         artifacts.add( artifact );
 
         mockManager.replayAll();
@@ -258,7 +258,7 @@
             exclusions = Collections.emptyList();
         }
 
-        final Set<Artifact> artifacts = new HashSet<Artifact>();
+        final Set<Artifact> artifacts = new HashSet<>();
         artifacts.add( mac.artifact );
 
         FilterUtils.filterArtifacts( artifacts, inclusions, exclusions, false, depTrail != null, logger,
@@ -307,7 +307,7 @@
         // make sure the mock is satisfied...you can't disable this expectation.
         pmac.mac.artifact.getDependencyConflictId();
 
-        final Set<MavenProject> projects = new HashSet<MavenProject>();
+        final Set<MavenProject> projects = new HashSet<>();
         projects.add( pmac );
 
         List<String> inclusions;
diff --git a/src/test/java/org/apache/maven/plugins/assembly/utils/ProjectUtilsTest.java b/src/test/java/org/apache/maven/plugins/assembly/utils/ProjectUtilsTest.java
index e007fa1..bd8aa33 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/utils/ProjectUtilsTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/utils/ProjectUtilsTest.java
@@ -60,7 +60,7 @@
 
         module.setFile( new File( "module/pom.xml" ) );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>( 2 );
+        final List<MavenProject> projects = new ArrayList<>( 2 );
 
         projects.add( master );
         projects.add( module );
@@ -105,7 +105,7 @@
 
         subModule.setFile( new File( "project/module/submodule/pom.xml" ) );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>( 3 );
+        final List<MavenProject> projects = new ArrayList<>( 3 );
 
         projects.add( master );
         projects.add( module );
@@ -117,7 +117,7 @@
         assertNotNull( result );
         assertEquals( 2, result.size() );
 
-        final List<MavenProject> verify = new ArrayList<MavenProject>( projects );
+        final List<MavenProject> verify = new ArrayList<>( projects );
         verify.remove( master );
 
         verifyProjectsPresent( verify, result );
@@ -142,7 +142,7 @@
 
         subModule.setFile( new File( "project/module/submodule/pom.xml" ) );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>( 3 );
+        final List<MavenProject> projects = new ArrayList<>( 3 );
 
         projects.add( master );
         projects.add( module );
@@ -154,7 +154,7 @@
         assertNotNull( result );
         assertEquals( 1, result.size() );
 
-        final List<MavenProject> verify = new ArrayList<MavenProject>( projects );
+        final List<MavenProject> verify = new ArrayList<>( projects );
         verify.remove( master );
         verify.remove( subModule );
 
@@ -172,7 +172,7 @@
 
         other.setFile( new File( "other/pom.xml" ) );
 
-        final List<MavenProject> projects = new ArrayList<MavenProject>( 3 );
+        final List<MavenProject> projects = new ArrayList<>( 3 );
 
         projects.add( master );
         projects.add( other );
@@ -186,9 +186,9 @@
 
     private void verifyProjectsPresent( final List<MavenProject> verify, final Set<MavenProject> result )
     {
-        final List<MavenProject> verifyCopy = new ArrayList<MavenProject>( verify );
+        final List<MavenProject> verifyCopy = new ArrayList<>( verify );
 
-        final List<MavenProject> unexpected = new ArrayList<MavenProject>();
+        final List<MavenProject> unexpected = new ArrayList<>();
 
         for ( final MavenProject project : result )
         {
diff --git a/src/test/java/org/apache/maven/plugins/assembly/utils/TypeConversionUtilsTest.java b/src/test/java/org/apache/maven/plugins/assembly/utils/TypeConversionUtilsTest.java
index ad695e5..8b4976d 100644
--- a/src/test/java/org/apache/maven/plugins/assembly/utils/TypeConversionUtilsTest.java
+++ b/src/test/java/org/apache/maven/plugins/assembly/utils/TypeConversionUtilsTest.java
@@ -67,7 +67,7 @@
 
     public void testVerifyModeSanity_WarnOnNonsensicalOctalValue_002()
     {
-        final List<String> messages = new ArrayList<String>( 2 );
+        final List<String> messages = new ArrayList<>( 2 );
         messages.add( "World has write access, but user does not." );
         messages.add( "World has write access, but group does not." );
 
@@ -76,7 +76,7 @@
 
     public void testVerifyModeSanity_WarnOnNonsensicalOctalValue_020()
     {
-        final List<String> messages = new ArrayList<String>( 1 );
+        final List<String> messages = new ArrayList<>( 1 );
         messages.add( "Group has write access, but user does not." );
 
         checkFileModeSanity( "020", false, messages );