You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2021/12/18 09:46:15 UTC

[maven-dependency-tree] 01/01: Java 8 cleanup

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

slachiewicz pushed a commit to branch next
in repository https://gitbox.apache.org/repos/asf/maven-dependency-tree.git

commit 9e718d28587cd6b5154fd251c52f324039bcaeb3
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sat Dec 18 10:46:08 2021 +0100

    Java 8 cleanup
---
 .../graph/filter/AndDependencyNodeFilter.java      |  2 +-
 .../graph/internal/DefaultDependencyNode.java      |  6 +---
 .../Maven31DependencyCollectorBuilder.java         | 21 ++++--------
 .../internal/Maven31DependencyGraphBuilder.java    | 23 +++----------
 .../internal/Maven3DependencyCollectorBuilder.java | 21 ++++--------
 .../internal/Maven3DependencyGraphBuilder.java     | 12 ++-----
 .../graph/internal/maven30/ConflictIdSorter.java   | 16 ++++-----
 .../graph/internal/maven30/ConflictResolver.java   | 40 ++++++++++------------
 .../maven30/ExclusionDependencySelector.java       |  4 +--
 .../graph/internal/maven30/JavaScopeSelector.java  |  2 +-
 .../internal/maven30/NearestVersionSelector.java   | 13 ++-----
 .../traversal/BuildingDependencyNodeVisitor.java   |  4 +--
 .../traversal/CollectingDependencyNodeVisitor.java |  2 +-
 13 files changed, 55 insertions(+), 111 deletions(-)

diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/filter/AndDependencyNodeFilter.java b/src/main/java/org/apache/maven/shared/dependency/graph/filter/AndDependencyNodeFilter.java
index 3e2392c..84c0829 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/filter/AndDependencyNodeFilter.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/filter/AndDependencyNodeFilter.java
@@ -52,7 +52,7 @@ public class AndDependencyNodeFilter
      */
     public AndDependencyNodeFilter( DependencyNodeFilter filter1, DependencyNodeFilter filter2 )
     {
-        this( Arrays.asList( new DependencyNodeFilter[] { filter1, filter2 } ) );
+        this( Arrays.asList( filter1, filter2 ) );
     }
 
     /**
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java
index a171484..218bea1 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyNode.java
@@ -185,10 +185,6 @@ public class DefaultDependencyNode implements DependencyNode
     @Override
     public String toNodeString()
     {
-        StringBuilder buffer = new StringBuilder();
-
-        buffer.append( artifact );
-
-        return buffer.toString();
+        return String.valueOf( artifact );
     }
 }
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyCollectorBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyCollectorBuilder.java
index 87f9334..73d06de 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyCollectorBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyCollectorBuilder.java
@@ -78,14 +78,7 @@ public class Maven31DependencyCollectorBuilder
     
     public Maven31DependencyCollectorBuilder()
     {
-        this.exceptionHandler = new ExceptionHandler<DependencyCollectorBuilderException>()
-        {
-            @Override
-            public DependencyCollectorBuilderException create( String message, Exception exception )
-            {
-                return new DependencyCollectorBuilderException( message, exception );
-            }
-        };
+        this.exceptionHandler = DependencyCollectorBuilderException::new;
     }
 
     @Override
@@ -219,12 +212,10 @@ public class Maven31DependencyCollectorBuilder
                                                                     Dependency dependency )
         throws DependencyCollectorBuilderException
     {
-        org.eclipse.aether.graph.Dependency aetherDep =
-            (org.eclipse.aether.graph.Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency",
-                                                                  Dependency.class,
-                                                                  org.eclipse.aether.artifact.ArtifactTypeRegistry.class,
-                                                                  dependency, stereotypes, exceptionHandler );
-        return aetherDep;
+        return (org.eclipse.aether.graph.Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency",
+                                                              Dependency.class,
+                                                              ArtifactTypeRegistry.class,
+                                                              dependency, stereotypes, exceptionHandler );
     }
     // CHECKSTYLE_ON: LineLength
 
@@ -295,7 +286,7 @@ public class Maven31DependencyCollectorBuilder
                                        getVersionSelectedFromRange( node.getVersionConstraint() ), optional,
                                        exclusions, data );
 
-        List<DependencyNode> nodes = new ArrayList<DependencyNode>( node.getChildren().size() );
+        List<DependencyNode> nodes = new ArrayList<>( node.getChildren().size() );
         for ( org.eclipse.aether.graph.DependencyNode child : node.getChildren() )
         {
             Artifact childArtifact = getDependencyArtifact( child.getDependency() );
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
index 0b89e02..bdecb91 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven31DependencyGraphBuilder.java
@@ -68,14 +68,7 @@ public class Maven31DependencyGraphBuilder
     
     public Maven31DependencyGraphBuilder()
     {
-        this.exceptionHandler = new ExceptionHandler<DependencyGraphBuilderException>()
-        {
-            @Override
-            public DependencyGraphBuilderException create( String message, Exception exception )
-            {
-                return new DependencyGraphBuilderException( message, exception );
-            }
-        };
+        this.exceptionHandler = DependencyGraphBuilderException::new;
     }
 
     /**
@@ -96,7 +89,7 @@ public class Maven31DependencyGraphBuilder
             (RepositorySystemSession) Invoker.invoke( buildingRequest, "getRepositorySession", exceptionHandler );
 
         
-        if ( Boolean.TRUE != ( (Boolean) session.getConfigProperties().get( NODE_DATA_PREMANAGED_VERSION ) ) )
+        if ( Boolean.TRUE != session.getConfigProperties().get( NODE_DATA_PREMANAGED_VERSION ) )
         {
             DefaultRepositorySystemSession newSession = new DefaultRepositorySystemSession( session );
             newSession.setConfigProperty( NODE_DATA_PREMANAGED_VERSION, true );
@@ -107,15 +100,7 @@ public class Maven31DependencyGraphBuilder
         request.setMavenProject( project );
         Invoker.invoke( request, "setRepositorySession", RepositorySystemSession.class, session );
         // only download the poms, not the artifacts
-        DependencyFilter collectFilter = new DependencyFilter()
-        {
-            @Override
-            public boolean accept( org.eclipse.aether.graph.DependencyNode node,
-                                   List<org.eclipse.aether.graph.DependencyNode> parents )
-            {
-                return false;
-            }
-        };
+        DependencyFilter collectFilter = ( node, parents ) -> false;
         Invoker.invoke( request, "setResolutionFilter", DependencyFilter.class, collectFilter );
 
         final DependencyResolutionResult result = resolveDependencies( request );
@@ -186,7 +171,7 @@ public class Maven31DependencyGraphBuilder
                                        getVersionSelectedFromRange( node.getVersionConstraint() ),
                                        optional, exclusions );
 
-        List<DependencyNode> nodes = new ArrayList<DependencyNode>( node.getChildren().size() );
+        List<DependencyNode> nodes = new ArrayList<>( node.getChildren().size() );
         for ( org.eclipse.aether.graph.DependencyNode child : node.getChildren() )
         {
             Artifact childArtifact = getDependencyArtifact( child.getDependency() );
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyCollectorBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyCollectorBuilder.java
index 8984ba0..2a3a555 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyCollectorBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyCollectorBuilder.java
@@ -78,14 +78,7 @@ public class Maven3DependencyCollectorBuilder
     
     public Maven3DependencyCollectorBuilder()
     {
-        this.exceptionHandler = new ExceptionHandler<DependencyCollectorBuilderException>()
-        {
-            @Override
-            public DependencyCollectorBuilderException create( String message, Exception exception )
-            {
-                return new DependencyCollectorBuilderException( message, exception );
-            }
-        };
+        this.exceptionHandler = DependencyCollectorBuilderException::new;
     }
 
     @Override
@@ -225,12 +218,10 @@ public class Maven3DependencyCollectorBuilder
                                                                     Dependency dependency )
         throws DependencyCollectorBuilderException
     {
-        org.sonatype.aether.graph.Dependency aetherDep =
-            (org.sonatype.aether.graph.Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency",
-                                                                  Dependency.class,
-                                                                   org.sonatype.aether.artifact.ArtifactTypeRegistry.class,
-                                                                  dependency, stereotypes, exceptionHandler );
-        return aetherDep;
+        return (org.sonatype.aether.graph.Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency",
+                                                              Dependency.class,
+                                                               ArtifactTypeRegistry.class,
+                                                              dependency, stereotypes, exceptionHandler );
     }
     // CHECKSTYLE_ON: LineLength
 
@@ -301,7 +292,7 @@ public class Maven3DependencyCollectorBuilder
                                        getVersionSelectedFromRange( node.getVersionConstraint() ), optional, exclusions,
                                        data );
 
-        List<DependencyNode> nodes = new ArrayList<DependencyNode>( node.getChildren().size() );
+        List<DependencyNode> nodes = new ArrayList<>( node.getChildren().size() );
         for ( org.sonatype.aether.graph.DependencyNode child : node.getChildren() )
         {
             Artifact childArtifact = getDependencyArtifact( child.getDependency() );
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
index b22ec44..2ec8f94 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/Maven3DependencyGraphBuilder.java
@@ -76,15 +76,7 @@ public class Maven3DependencyGraphBuilder
             new DefaultDependencyResolutionRequest( project, buildingRequest.getRepositorySession() );
 
         // only download the poms, not the artifacts
-        DependencyFilter collectFilter = new DependencyFilter()
-        {
-            @Override
-            public boolean accept( org.sonatype.aether.graph.DependencyNode node,
-                                   List<org.sonatype.aether.graph.DependencyNode> parents )
-            {
-                return false;
-            }
-        };
+        DependencyFilter collectFilter = ( node, parents ) -> false;
         request.setResolutionFilter( collectFilter );
 
         DependencyResolutionResult result = resolveDependencies( request );
@@ -125,7 +117,7 @@ public class Maven3DependencyGraphBuilder
                                        null /* node.getPremanagedScope() */,
                                        getVersionSelectedFromRange( node.getVersionConstraint() ) );
 
-        List<DependencyNode> nodes = new ArrayList<DependencyNode>( node.getChildren().size() );
+        List<DependencyNode> nodes = new ArrayList<>( node.getChildren().size() );
         for ( org.sonatype.aether.graph.DependencyNode child : node.getChildren() )
         {
             Artifact childArtifact = getDependencyArtifact( child.getDependency() );
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ConflictIdSorter.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ConflictIdSorter.java
index d686842..35cb5a8 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ConflictIdSorter.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ConflictIdSorter.java
@@ -62,7 +62,7 @@ public final class ConflictIdSorter
 //        Map<String, Object> stats = (Map<String, Object>) context.get( TransformationContextKeys.STATS );
 //        long time1 = System.currentTimeMillis();
 
-        Map<Object, ConflictId> ids = new LinkedHashMap<Object, ConflictId>( 256 );
+        Map<Object, ConflictId> ids = new LinkedHashMap<>( 256 );
 
         // CHECKSTYLE_OFF: AvoidNestedBlocks
         {
@@ -74,7 +74,7 @@ public final class ConflictIdSorter
                 ids.put( key, id );
             }
 
-            Map<DependencyNode, Object> visited = new IdentityHashMap<DependencyNode, Object>( conflictIds.size() );
+            Map<DependencyNode, Object> visited = new IdentityHashMap<>( conflictIds.size() );
 
             buildConflitIdDAG( ids, node, id, 0, visited, conflictIds );
         }
@@ -132,7 +132,7 @@ public final class ConflictIdSorter
 
     private int topsortConflictIds( Collection<ConflictId> conflictIds, DependencyGraphTransformationContext context )
     {
-        List<Object> sorted = new ArrayList<Object>( conflictIds.size() );
+        List<Object> sorted = new ArrayList<>( conflictIds.size() );
 
         RootQueue roots = new RootQueue( conflictIds.size() / 2 );
         for ( ConflictId id : conflictIds )
@@ -204,10 +204,10 @@ public final class ConflictIdSorter
 
     private Collection<Collection<Object>> findCycles( Collection<ConflictId> conflictIds )
     {
-        Collection<Collection<Object>> cycles = new HashSet<Collection<Object>>();
+        Collection<Collection<Object>> cycles = new HashSet<>();
 
-        Map<Object, Integer> stack = new HashMap<Object, Integer>( 128 );
-        Map<ConflictId, Object> visited = new IdentityHashMap<ConflictId, Object>( conflictIds.size() );
+        Map<Object, Integer> stack = new HashMap<>( 128 );
+        Map<ConflictId, Object> visited = new IdentityHashMap<>( conflictIds.size() );
         for ( ConflictId id : conflictIds )
         {
             findCycles( id, visited, stack, cycles );
@@ -223,7 +223,7 @@ public final class ConflictIdSorter
         if ( depth != null )
         {
             stack.put( id.key, depth );
-            Collection<Object> cycle = new HashSet<Object>();
+            Collection<Object> cycle = new HashSet<>();
             for ( Map.Entry<Object, Integer> entry : stack.entrySet() )
             {
                 if ( entry.getValue() >= depth )
@@ -267,7 +267,7 @@ public final class ConflictIdSorter
         {
             if ( children.isEmpty() )
             {
-                children = new HashSet<ConflictId>();
+                children = new HashSet<>();
             }
             if ( children.add( child ) )
             {
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ConflictResolver.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ConflictResolver.java
index 9136883..5770d63 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ConflictResolver.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ConflictResolver.java
@@ -146,17 +146,13 @@ public final class ConflictResolver
             throw new RepositoryException( "conflict groups have not been identified" );
         }
 
-        Map<Object, Collection<Object>> cyclicPredecessors = new HashMap<Object, Collection<Object>>();
+        Map<Object, Collection<Object>> cyclicPredecessors = new HashMap<>();
         for ( Collection<?> cycle : conflictIdCycles )
         {
             for ( Object conflictId : cycle )
             {
-                Collection<Object> predecessors = cyclicPredecessors.get( conflictId );
-                if ( predecessors == null )
-                {
-                    predecessors = new HashSet<Object>();
-                    cyclicPredecessors.put( conflictId, predecessors );
-                }
+                Collection<Object> predecessors =
+                        cyclicPredecessors.computeIfAbsent( conflictId, k -> new HashSet<>() );
                 predecessors.addAll( cycle );
             }
         }
@@ -303,7 +299,7 @@ public final class ConflictResolver
         // those will be nuked during future graph walks when we include the winner in the recursion
     }
 
-    final class NodeInfo
+    static final class NodeInfo
     {
 
         /**
@@ -364,7 +360,7 @@ public final class ConflictResolver
             }
             else
             {
-                Collection<String> scopes = new HashSet<String>();
+                Collection<String> scopes = new HashSet<>();
                 scopes.add( (String) derivedScopes );
                 scopes.add( derivedScope );
                 derivedScopes = scopes;
@@ -383,7 +379,7 @@ public final class ConflictResolver
         {
             if ( children == null )
             {
-                children = new ArrayList<ConflictItem>( 1 );
+                children = new ArrayList<>( 1 );
             }
             children.add( item );
         }
@@ -502,15 +498,15 @@ public final class ConflictResolver
         {
             this.conflictIds = conflictIds;
             verbose = ConfigUtils.getBoolean( context.getSession(), false, CONFIG_PROP_VERBOSE );
-            potentialAncestorIds = new HashSet<Object>( conflictIdCount * 2 );
-            resolvedIds = new HashMap<Object, DependencyNode>( conflictIdCount * 2 );
-            items = new ArrayList<ConflictItem>( 256 );
-            infos = new IdentityHashMap<List<DependencyNode>, NodeInfo>( 64 );
-            stack = new IdentityHashMap<List<DependencyNode>, Object>( 64 );
-            parentNodes = new ArrayList<DependencyNode>( 64 );
-            parentScopes = new ArrayList<String>( 64 );
-            parentOptionals = new ArrayList<Boolean>( 64 );
-            parentInfos = new ArrayList<NodeInfo>( 64 );
+            potentialAncestorIds = new HashSet<>( conflictIdCount * 2 );
+            resolvedIds = new HashMap<>( conflictIdCount * 2 );
+            items = new ArrayList<>( 256 );
+            infos = new IdentityHashMap<>( 64 );
+            stack = new IdentityHashMap<>( 64 );
+            parentNodes = new ArrayList<>( 64 );
+            parentScopes = new ArrayList<>( 64 );
+            parentOptionals = new ArrayList<>( 64 );
+            parentInfos = new ArrayList<>( 64 );
             conflictCtx = new ConflictContext( root, conflictIds, items );
             scopeCtx = new ScopeContext( null, null );
             versionSelector = ConflictResolver.this.versionSelector.getInstance( root, context );
@@ -727,10 +723,10 @@ public final class ConflictResolver
         private boolean deriveOptional( DependencyNode node, Object conflictId )
         {
             Dependency dep = node.getDependency();
-            boolean optional = ( dep != null ) ? dep.isOptional() : false;
+            boolean optional = dep != null && dep.isOptional();
             if ( optional
                 || ( node.getData().get( NODE_DATA_ORIGINAL_OPTIONALITY ) != null
-                    && ( (Boolean) node.getData().get( NODE_DATA_ORIGINAL_OPTIONALITY ) ).booleanValue() )
+                    && (Boolean) node.getData().get( NODE_DATA_ORIGINAL_OPTIONALITY ) )
                 || ( conflictId != null && resolvedIds.containsKey( conflictId ) ) )
 //            if ( optional || ( node.getManagedBits() & DependencyNode.MANAGED_OPTIONAL ) != 0
 //                || ( conflictId != null && resolvedIds.containsKey( conflictId ) ) )
@@ -966,7 +962,7 @@ public final class ConflictResolver
             }
             else if ( !scopes.equals( scope ) )
             {
-                Collection<Object> set = new HashSet<Object>();
+                Collection<Object> set = new HashSet<>();
                 set.add( scopes );
                 set.add( scope );
                 scopes = set;
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ExclusionDependencySelector.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ExclusionDependencySelector.java
index e9555f9..2808595 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ExclusionDependencySelector.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/ExclusionDependencySelector.java
@@ -62,9 +62,9 @@ public class ExclusionDependencySelector
     {
         if ( exclusions != null && !exclusions.isEmpty() )
         {
-            TreeSet<Exclusion> sorted = new TreeSet<Exclusion>( ExclusionComparator.INSTANCE );
+            TreeSet<Exclusion> sorted = new TreeSet<>( ExclusionComparator.INSTANCE );
             sorted.addAll( exclusions );
-            this.exclusions = sorted.toArray( new Exclusion[sorted.size()] );
+            this.exclusions = sorted.toArray( new Exclusion[0] );
         }
         else
         {
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/JavaScopeSelector.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/JavaScopeSelector.java
index 9a810e7..1950a92 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/JavaScopeSelector.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/JavaScopeSelector.java
@@ -53,7 +53,7 @@ public final class JavaScopeSelector
 
     private String chooseEffectiveScope( Collection<ConflictItem> items )
     {
-        Set<String> scopes = new HashSet<String>();
+        Set<String> scopes = new HashSet<>();
         for ( ConflictItem item : items )
         {
             if ( item.getDepth() <= 1 )
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/NearestVersionSelector.java b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/NearestVersionSelector.java
index c793b96..31af5b8 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/NearestVersionSelector.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/internal/maven30/NearestVersionSelector.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
-import java.util.List;
 
 import org.apache.maven.shared.dependency.graph.internal.maven30.ConflictResolver.ConflictContext;
 import org.apache.maven.shared.dependency.graph.internal.maven30.ConflictResolver.ConflictItem;
@@ -143,13 +142,7 @@ public final class NearestVersionSelector
 
     private UnsolvableVersionConflictException newFailure( final ConflictContext context )
     {
-        DependencyFilter filter = new DependencyFilter()
-        {
-            public boolean accept( DependencyNode node, List<DependencyNode> parents )
-            {
-                return context.isIncluded( node );
-            }
-        };
+        DependencyFilter filter = ( node, parents ) -> context.isIncluded( node );
         PathRecordingDependencyVisitor visitor = new PathRecordingDependencyVisitor( filter );
         context.getRoot().accept( visitor );
         return new UnsolvableVersionConflictException( visitor.getPaths(), context.conflictId );
@@ -167,8 +160,8 @@ public final class NearestVersionSelector
 
         ConflictGroup()
         {
-            constraints = new HashSet<VersionConstraint>();
-            candidates = new ArrayList<ConflictItem>( 64 );
+            constraints = new HashSet<>();
+            candidates = new ArrayList<>( 64 );
         }
 
         @Override
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java b/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java
index fb05fbe..159e9e9 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/traversal/BuildingDependencyNodeVisitor.java
@@ -72,7 +72,7 @@ public class BuildingDependencyNodeVisitor
     {
         this.visitor = visitor;
 
-        parentNodes = new Stack<DependencyNode>();
+        parentNodes = new Stack<>();
     }
 
     // DependencyNodeVisitor methods ------------------------------------------
@@ -89,7 +89,7 @@ public class BuildingDependencyNodeVisitor
                                        node.getPremanagedVersion(), node.getPremanagedScope(),
                                        node.getVersionConstraint(),
                                        node.getOptional(), node.getExclusions() );
-        newNode.setChildren( new ArrayList<DependencyNode>() );
+        newNode.setChildren( new ArrayList<>() );
 
         if ( parentNodes.empty() )
         {
diff --git a/src/main/java/org/apache/maven/shared/dependency/graph/traversal/CollectingDependencyNodeVisitor.java b/src/main/java/org/apache/maven/shared/dependency/graph/traversal/CollectingDependencyNodeVisitor.java
index 3c4d217..129e2d5 100644
--- a/src/main/java/org/apache/maven/shared/dependency/graph/traversal/CollectingDependencyNodeVisitor.java
+++ b/src/main/java/org/apache/maven/shared/dependency/graph/traversal/CollectingDependencyNodeVisitor.java
@@ -49,7 +49,7 @@ public class CollectingDependencyNodeVisitor
      */
     public CollectingDependencyNodeVisitor()
     {
-        nodes = new ArrayList<DependencyNode>();
+        nodes = new ArrayList<>();
     }
 
     // DependencyNodeVisitor methods ------------------------------------------