You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2019/06/08 11:26:28 UTC

[maven-resolver] branch master updated: [MRESOLVER-88] Code style cleanup to use Java 7 features

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

michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-resolver.git


The following commit(s) were added to refs/heads/master by this push:
     new 47edcfe  [MRESOLVER-88] Code style cleanup to use Java 7 features
47edcfe is described below

commit 47edcfe69c4e52ced4cb93d65b7348b5645cdd68
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Fri Dec 28 20:40:13 2018 +0100

    [MRESOLVER-88] Code style cleanup to use Java 7 features
    
    This closes #34
---
 .../org/eclipse/aether/DefaultRepositoryCache.java |   2 +-
 .../aether/DefaultRepositorySystemSession.java     |  20 +--
 .../org/eclipse/aether/DefaultSessionData.java     |   2 +-
 .../java/org/eclipse/aether/RepositorySystem.java  |   6 +-
 .../eclipse/aether/artifact/AbstractArtifact.java  |  21 ++-
 .../eclipse/aether/artifact/DefaultArtifact.java   |   2 +-
 .../aether/artifact/DefaultArtifactType.java       |   2 +-
 .../eclipse/aether/collection/CollectRequest.java  |   9 +-
 .../eclipse/aether/collection/CollectResult.java   |   7 +-
 .../aether/collection/DependencyManagement.java    |   3 +-
 .../UnsolvableVersionConflictException.java        |   4 +-
 .../eclipse/aether/deployment/DeployRequest.java   |   8 +-
 .../eclipse/aether/deployment/DeployResult.java    |   7 +-
 .../aether/graph/DefaultDependencyNode.java        |  14 +-
 .../java/org/eclipse/aether/graph/Dependency.java  |  17 +--
 .../aether/installation/InstallRequest.java        |   5 +-
 .../eclipse/aether/installation/InstallResult.java |   8 +-
 .../eclipse/aether/metadata/AbstractMetadata.java  |  21 ++-
 .../aether/repository/AuthenticationContext.java   |   2 +-
 .../aether/repository/AuthenticationDigest.java    |   2 +
 .../repository/LocalArtifactRegistration.java      |   3 +-
 .../aether/repository/LocalArtifactRequest.java    |   3 +-
 .../aether/repository/LocalArtifactResult.java     |   4 +-
 .../repository/LocalMetadataRegistration.java      |   3 +-
 .../aether/repository/LocalMetadataRequest.java    |   3 +-
 .../aether/repository/LocalMetadataResult.java     |   4 +-
 .../eclipse/aether/repository/LocalRepository.java |   8 +-
 .../java/org/eclipse/aether/repository/Proxy.java  |  11 +-
 .../aether/repository/RemoteRepository.java        |  29 +++--
 .../resolution/ArtifactDescriptorRequest.java      |   5 +-
 .../resolution/ArtifactDescriptorResult.java       |  18 +--
 .../eclipse/aether/resolution/ArtifactRequest.java |   5 +-
 .../eclipse/aether/resolution/ArtifactResult.java  |   5 +-
 .../aether/resolution/DependencyRequest.java       |   3 +-
 .../aether/resolution/DependencyResult.java        |   3 +-
 .../eclipse/aether/resolution/MetadataRequest.java |   3 +-
 .../eclipse/aether/resolution/MetadataResult.java  |   3 +-
 .../aether/resolution/VersionRangeRequest.java     |   7 +-
 .../aether/resolution/VersionRangeResult.java      |  11 +-
 .../eclipse/aether/resolution/VersionRequest.java  |   5 +-
 .../eclipse/aether/resolution/VersionResult.java   |   5 +-
 .../aether/transfer/ArtifactNotFoundException.java |   3 +-
 .../aether/transfer/ArtifactTransferException.java |   3 +-
 .../aether/transfer/ChecksumFailureException.java  |   3 +-
 .../aether/transfer/MetadataNotFoundException.java |   3 +-
 .../aether/transfer/MetadataTransferException.java |   3 +-
 .../eclipse/aether/transfer/TransferResource.java  |   3 +-
 .../eclipse/aether/DefaultRepositoryCacheTest.java |   4 +-
 .../aether/DefaultRepositorySystemSessionTest.java |   1 -
 .../org/eclipse/aether/DefaultSessionDataTest.java |   4 +-
 .../aether/artifact/DefaultArtifactTest.java       |   6 +-
 .../repository/RemoteRepositoryBuilderTest.java    |   2 +-
 .../connector/basic/BasicRepositoryConnector.java  |   4 +-
 .../basic/BasicRepositoryConnectorFactory.java     |   3 +-
 .../aether/connector/basic/ChecksumCalculator.java |   6 +-
 .../aether/connector/basic/ChecksumValidator.java  |   4 +-
 .../aether/connector/basic/PartialFile.java        |  15 +--
 .../connector/basic/TransferTransportListener.java |   3 +-
 .../connector/basic/ChecksumCalculatorTest.java    |   2 +-
 .../connector/basic/ChecksumValidatorTest.java     |  20 +--
 .../aether/connector/basic/PartialFileTest.java    |   2 +-
 .../examples/guice/DemoResolverModule.java         |   6 +-
 .../util/ConsoleDependencyGraphDumper.java         |  19 ++-
 .../examples/util/ConsoleTransferListener.java     |   7 +-
 .../aether/impl/ArtifactDescriptorReader.java      |   9 +-
 .../eclipse/aether/impl/DefaultServiceLocator.java |  14 +-
 .../aether/impl/RemoteRepositoryManager.java       |   3 +-
 .../eclipse/aether/impl/guice/AetherModule.java    |   5 +-
 .../eclipse/aether/impl/guice/package-info.java    |   3 +-
 .../internal/impl/ArtifactRequestBuilder.java      |   2 +-
 .../eclipse/aether/internal/impl/CacheUtils.java   | 141 ---------------------
 .../internal/impl/DefaultArtifactResolver.java     |  47 +++----
 .../impl/DefaultChecksumPolicyProvider.java        |   3 -
 .../aether/internal/impl/DefaultDeployer.java      |  97 +++++++-------
 .../aether/internal/impl/DefaultInstaller.java     |  26 ++--
 .../impl/DefaultLocalRepositoryProvider.java       |  15 ++-
 .../internal/impl/DefaultMetadataResolver.java     |  73 +++++------
 .../impl/DefaultRemoteRepositoryManager.java       |  10 +-
 .../impl/DefaultRepositoryConnectorProvider.java   |  12 +-
 .../impl/DefaultRepositoryEventDispatcher.java     |  10 +-
 .../impl/DefaultRepositoryLayoutProvider.java      |  12 +-
 .../internal/impl/DefaultRepositorySystem.java     |  13 +-
 .../internal/impl/DefaultTransporterProvider.java  |   8 +-
 .../internal/impl/DefaultUpdateCheckManager.java   |  12 +-
 .../internal/impl/DefaultUpdatePolicyAnalyzer.java |   2 +
 .../impl/EnhancedLocalRepositoryManager.java       |   4 +-
 .../aether/internal/impl/PrioritizedComponent.java |   2 +-
 .../internal/impl/PrioritizedComponents.java       |   9 +-
 .../aether/internal/impl/SafeTransferListener.java |   3 +-
 .../eclipse/aether/internal/impl/SimpleDigest.java |   1 +
 .../impl/SimpleLocalRepositoryManager.java         |   2 +-
 .../aether/internal/impl/TrackingFileManager.java  |   3 +-
 .../org/eclipse/aether/internal/impl/Utils.java    |  17 ++-
 .../eclipse/aether/internal/impl/collect/Args.java |   1 +
 .../impl/collect/CachingArtifactTypeRegistry.java  |   2 +-
 .../aether/internal/impl/collect/DataPool.java     |  28 +---
 .../impl/collect/DefaultDependencyCollector.java   |  31 ++---
 ...efaultDependencyGraphTransformationContext.java |   2 +-
 .../impl/collect/DefaultVersionFilterContext.java  |   8 +-
 .../impl/collect/DependencyCollectionUtils.java    |   2 +
 .../aether/internal/impl/collect/NodeStack.java    |   3 +
 .../aether/internal/impl/collect/ObjectPool.java   |   4 +-
 .../impl/collect/PremanagedDependency.java         |   1 +
 .../aether/internal/impl/collect/Results.java      |   1 +
 .../internal/impl/slf4j/Slf4jLoggerFactory.java    |   6 +-
 .../aether/impl/StubArtifactDescriptorReader.java  |   4 +-
 .../aether/impl/StubVersionRangeResolver.java      |   6 +-
 .../eclipse/aether/impl/StubVersionResolver.java   |   4 +-
 .../internal/impl/DefaultArtifactResolverTest.java |  34 ++---
 .../impl/DefaultChecksumPolicyProviderTest.java    |   2 -
 .../internal/impl/DefaultFileProcessorTest.java    |   1 -
 .../aether/internal/impl/DefaultInstallerTest.java |   2 -
 .../impl/DefaultRemoteRepositoryManagerTest.java   |   2 -
 .../impl/DefaultRepositoryEventDispatcherTest.java |   2 -
 .../impl/DefaultUpdateCheckManagerTest.java        |  38 +-----
 .../impl/DefaultUpdatePolicyAnalyzerTest.java      |   7 +-
 .../internal/impl/DependencyGraphDumper.java       |   8 +-
 .../internal/impl/PrioritizedComponentTest.java    |  16 +--
 .../internal/impl/PrioritizedComponentsTest.java   |  12 +-
 .../impl/RecordingRepositoryConnector.java         |  19 ++-
 .../impl/SimpleLocalRepositoryManagerTest.java     |   2 -
 .../aether/internal/impl/StubVersionResolver.java  |   2 -
 .../internal/impl/TrackingFileManagerTest.java     |   4 +-
 .../collect/DefaultDependencyCollectorTest.java    |  31 ++---
 .../aether/spi/connector/ArtifactDownload.java     |   9 --
 .../aether/spi/connector/RepositoryConnector.java  |   3 +-
 .../aether/spi/connector/transport/GetTask.java    |   2 +-
 .../org/eclipse/aether/spi/io/FileProcessor.java   |   2 +-
 .../internal/test/util/DependencyGraphParser.java  |  19 +--
 .../internal/test/util/IniArtifactDataReader.java  |  14 +-
 .../aether/internal/test/util/NodeBuilder.java     |   4 +-
 .../aether/internal/test/util/NodeDefinition.java  |   4 +-
 .../TestDependencyGraphTransformationContext.java  |   2 +-
 .../aether/internal/test/util/TestFileUtils.java   |   2 +-
 .../test/util/TestLocalRepositoryManager.java      |  12 +-
 .../internal/test/util/TestVersionConstraint.java  |  10 +-
 .../test/util/TestVersionFilterContext.java        |   2 +-
 .../internal/test/util/TestVersionRange.java       |  13 +-
 .../internal/test/util/TestVersionScheme.java      |   3 +-
 .../test/util/IniArtifactDataReaderTest.java       |   1 -
 .../test/util/IniArtifactDescriptorReaderTest.java |   3 -
 .../classpath/ClasspathTransporterTest.java        |   1 -
 .../aether/transport/file/FileTransporterTest.java |   1 -
 .../aether/transport/http/AuthSchemePool.java      |   2 +-
 .../http/DeferredCredentialsProvider.java          |   2 +-
 .../eclipse/aether/transport/http/GlobalState.java |  12 +-
 .../aether/transport/http/HttpTransporter.java     |  39 +++---
 .../eclipse/aether/transport/http/LocalState.java  |   2 +-
 .../aether/transport/http/SharingAuthCache.java    |   3 +-
 .../eclipse/aether/transport/http/SslConfig.java   |  12 +-
 .../eclipse/aether/transport/http/UriUtils.java    |   2 +-
 .../http/X509HostnameVerifierAdapter.java          |   2 -
 .../eclipse/aether/transport/http/HttpServer.java  |  12 +-
 .../aether/transport/http/HttpTransporterTest.java |  14 +-
 .../aether/transport/http/UriUtilsTest.java        |   2 +-
 .../transport/wagon/PlexusWagonConfigurator.java   |   3 +-
 .../aether/transport/wagon/WagonTransporter.java   |   8 +-
 .../eclipse/aether/transport/wagon/MemWagon.java   |  14 +-
 .../aether/transport/wagon/MemWagonUtils.java      |   5 +-
 .../org/eclipse/aether/util/ChecksumUtils.java     |   8 +-
 .../java/org/eclipse/aether/util/ConfigUtils.java  |   2 +-
 .../aether/util/artifact/ArtifactIdUtils.java      |  36 +++---
 .../util/artifact/SimpleArtifactTypeRegistry.java  |   6 +-
 .../eclipse/aether/util/artifact/SubArtifact.java  |   4 +-
 .../util/concurrency/RunnableErrorForwarder.java   |   9 +-
 .../filter/AbstractPatternDependencyFilter.java    |  10 +-
 .../aether/util/filter/AndDependencyFilter.java    |   2 +-
 .../aether/util/filter/DependencyFilterUtils.java  |   6 +-
 .../util/filter/ExclusionsDependencyFilter.java    |   2 +-
 .../aether/util/filter/OrDependencyFilter.java     |   2 +-
 .../aether/util/filter/ScopeDependencyFilter.java  |   4 +-
 .../graph/manager/ClassicDependencyManager.java    |  20 +--
 .../util/graph/manager/DependencyManagerUtils.java |   9 +-
 .../util/graph/selector/AndDependencySelector.java |   6 +-
 .../selector/ExclusionDependencySelector.java      |   2 +-
 .../graph/selector/ScopeDependencySelector.java    |  16 +--
 .../util/graph/transformer/ConflictIdSorter.java   |  32 +++--
 .../util/graph/transformer/ConflictMarker.java     |  10 +-
 .../util/graph/transformer/ConflictResolver.java   |  47 +++----
 .../util/graph/transformer/JavaScopeSelector.java  |   2 +-
 .../graph/transformer/NearestVersionSelector.java  |   4 +-
 .../graph/traverser/AndDependencyTraverser.java    |   6 +-
 .../util/graph/version/HighestVersionFilter.java   |   3 +-
 .../AbstractDepthFirstNodeListGenerator.java       |  10 +-
 .../graph/visitor/CloningDependencyVisitor.java    |   7 +-
 .../graph/visitor/FilteringDependencyVisitor.java  |   4 +-
 .../visitor/PathRecordingDependencyVisitor.java    |   6 +-
 .../graph/visitor/PostorderNodeListGenerator.java  |   2 +-
 .../eclipse/aether/util/graph/visitor/Stack.java   |   2 +
 .../util/graph/visitor/TreeDependencyVisitor.java  |   4 +-
 .../util/listener/ChainedRepositoryListener.java   |   3 +-
 .../util/listener/ChainedTransferListener.java     |   3 +-
 .../util/repository/AuthenticationBuilder.java     |   2 +-
 .../util/repository/ChainedWorkspaceReader.java    |   8 +-
 .../repository/DefaultAuthenticationSelector.java  |   2 +-
 .../util/repository/DefaultMirrorSelector.java     |   2 +-
 .../util/repository/DefaultProxySelector.java      |   9 +-
 .../util/repository/SecretAuthentication.java      |  10 +-
 .../util/repository/StringAuthentication.java      |  10 +-
 .../aether/util/version/GenericVersion.java        |   4 +-
 .../util/version/GenericVersionConstraint.java     |   9 +-
 .../aether/util/version/GenericVersionRange.java   |  13 +-
 .../aether/util/version/GenericVersionScheme.java  |   2 +-
 .../aether/util/version/UnionVersionRange.java     |   9 +-
 .../org/eclipse/aether/util/ChecksumUtilTest.java  |   1 -
 .../org/eclipse/aether/util/ConfigUtilsTest.java   |   2 +-
 .../aether/util/artifact/SubArtifactTest.java      |   2 +-
 .../util/filter/AndDependencyFilterTest.java       |   8 +-
 .../util/filter/ExclusionDependencyFilterTest.java |   4 +-
 .../aether/util/filter/OrDependencyFilterTest.java |   6 +-
 .../PatternExclusionsDependencyFilterTest.java     |   2 +-
 .../PatternInclusionsDependencyFilterTest.java     |   2 +-
 .../util/filter/ScopeDependencyFilterTest.java     |   2 +-
 .../AbstractDependencyGraphTransformerTest.java    |   2 +-
 .../graph/transformer/ConflictIdSorterTest.java    |   2 +-
 .../graph/transformer/JavaScopeSelectorTest.java   |   6 +-
 .../graph/transformer/SimpleConflictMarker.java    |   3 +-
 .../graph/versions/ChainedVersionFilterTest.java   |   1 +
 .../ContextualSnapshotVersionFilterTest.java       |   1 +
 .../graph/versions/HighestVersionFilterTest.java   |   1 +
 .../graph/versions/SnapshotVersionFilterTest.java  |   1 +
 .../util/repository/JreProxySelectorTest.java      |   5 -
 .../util/version/GenericVersionRangeTest.java      |   5 +-
 .../util/version/GenericVersionSchemeTest.java     |   1 -
 pom.xml                                            |   2 +-
 225 files changed, 793 insertions(+), 1148 deletions(-)

diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositoryCache.java b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositoryCache.java
index b645f43..18e28f0 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositoryCache.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositoryCache.java
@@ -30,7 +30,7 @@ public final class DefaultRepositoryCache
     implements RepositoryCache
 {
 
-    private final Map<Object, Object> cache = new ConcurrentHashMap<Object, Object>( 256 );
+    private final Map<Object, Object> cache = new ConcurrentHashMap<>( 256 );
 
     public Object get( RepositorySystemSession session, Object key )
     {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
index 0335118..b2c05cd 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
@@ -127,11 +127,11 @@ public final class DefaultRepositorySystemSession
      */
     public DefaultRepositorySystemSession()
     {
-        systemProperties = new HashMap<String, String>();
+        systemProperties = new HashMap<>();
         systemPropertiesView = Collections.unmodifiableMap( systemProperties );
-        userProperties = new HashMap<String, String>();
+        userProperties = new HashMap<>();
         userPropertiesView = Collections.unmodifiableMap( userProperties );
-        configProperties = new HashMap<String, Object>();
+        configProperties = new HashMap<>();
         configPropertiesView = Collections.unmodifiableMap( configProperties );
         mirrorSelector = NullMirrorSelector.INSTANCE;
         proxySelector = NullProxySelector.INSTANCE;
@@ -212,7 +212,8 @@ public final class DefaultRepositorySystemSession
      *            descriptors, {@code false} to merge those with the originally specified repositories.
      * @return This session for chaining, never {@code null}.
      */
-    public DefaultRepositorySystemSession setIgnoreArtifactDescriptorRepositories( boolean ignoreArtifactDescriptorRepositories )
+    public DefaultRepositorySystemSession setIgnoreArtifactDescriptorRepositories(
+            boolean ignoreArtifactDescriptorRepositories )
     {
         failIfReadOnly();
         this.ignoreArtifactDescriptorRepositories = ignoreArtifactDescriptorRepositories;
@@ -250,7 +251,8 @@ public final class DefaultRepositorySystemSession
      *            errors should generally not be tolerated.
      * @return This session for chaining, never {@code null}.
      */
-    public DefaultRepositorySystemSession setArtifactDescriptorPolicy( ArtifactDescriptorPolicy artifactDescriptorPolicy )
+    public DefaultRepositorySystemSession setArtifactDescriptorPolicy(
+            ArtifactDescriptorPolicy artifactDescriptorPolicy )
     {
         failIfReadOnly();
         this.artifactDescriptorPolicy = artifactDescriptorPolicy;
@@ -398,16 +400,17 @@ public final class DefaultRepositorySystemSession
         return this;
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     private <T> Map<String, T> copySafe( Map<?, ?> table, Class<T> valueType )
     {
         Map<String, T> map;
         if ( table == null || table.isEmpty() )
         {
-            map = new HashMap<String, T>();
+            map = new HashMap<>();
         }
         else
         {
-            map = new HashMap<String, T>( (int) ( table.size() / 0.75f ) + 1 );
+            map = new HashMap<>( (int) ( table.size() / 0.75f ) + 1 );
             for ( Map.Entry<?, ?> entry : table.entrySet() )
             {
                 Object key = entry.getKey();
@@ -738,7 +741,8 @@ public final class DefaultRepositorySystemSession
      *            {@code null}.
      * @return This session for chaining, never {@code null}.
      */
-    public DefaultRepositorySystemSession setDependencyGraphTransformer( DependencyGraphTransformer dependencyGraphTransformer )
+    public DefaultRepositorySystemSession setDependencyGraphTransformer(
+            DependencyGraphTransformer dependencyGraphTransformer )
     {
         failIfReadOnly();
         this.dependencyGraphTransformer = dependencyGraphTransformer;
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultSessionData.java b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultSessionData.java
index 3c2a76e..c9e07fb 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultSessionData.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultSessionData.java
@@ -35,7 +35,7 @@ public final class DefaultSessionData
 
     public DefaultSessionData()
     {
-        data = new ConcurrentHashMap<Object, Object>();
+        data = new ConcurrentHashMap<>();
     }
 
     public void set( Object key, Object value )
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystem.java b/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystem.java
index 8706f89..e6c30f3 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystem.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystem.java
@@ -107,7 +107,8 @@ public interface RepositorySystem
      * @see RepositorySystemSession#getArtifactDescriptorPolicy()
      * @see #newResolutionRepositories(RepositorySystemSession, List)
      */
-    ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session, ArtifactDescriptorRequest request )
+    ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session,
+                                                     ArtifactDescriptorRequest request )
         throws ArtifactDescriptorException;
 
     /**
@@ -225,7 +226,8 @@ public interface RepositorySystem
      * @throws IllegalArgumentException If the specified repository type is not recognized or no base directory is
      *             given.
      */
-    LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession session, LocalRepository localRepository );
+    LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession session,
+                                                      LocalRepository localRepository );
 
     /**
      * Creates a new synchronization context.
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/AbstractArtifact.java b/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/AbstractArtifact.java
index d89260b..65b4b56 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/AbstractArtifact.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/AbstractArtifact.java
@@ -23,6 +23,7 @@ import java.io.File;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -115,7 +116,7 @@ public abstract class AbstractArtifact
     public Artifact setFile( File file )
     {
         File current = getFile();
-        if ( ( current == null ) ? file == null : current.equals( file ) )
+        if ( Objects.equals( current, file ) )
         {
             return this;
         }
@@ -149,7 +150,7 @@ public abstract class AbstractArtifact
     {
         if ( properties != null && !properties.isEmpty() )
         {
-            return Collections.unmodifiableMap( new HashMap<String, String>( properties ) );
+            return Collections.unmodifiableMap( new HashMap<>( properties ) );
         }
         else
         {
@@ -193,15 +194,13 @@ public abstract class AbstractArtifact
 
         Artifact that = (Artifact) obj;
 
-        return getArtifactId().equals( that.getArtifactId() ) && getGroupId().equals( that.getGroupId() )
-            && getVersion().equals( that.getVersion() ) && getExtension().equals( that.getExtension() )
-            && getClassifier().equals( that.getClassifier() ) && eq( getFile(), that.getFile() )
-            && getProperties().equals( that.getProperties() );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( getArtifactId(), that.getArtifactId() )
+                && Objects.equals( getGroupId(), that.getGroupId() )
+                && Objects.equals( getVersion(), that.getVersion() )
+                && Objects.equals( getExtension(), that.getExtension() )
+                && Objects.equals( getClassifier(), that.getClassifier() )
+                && Objects.equals( getFile(), that.getFile() )
+                && Objects.equals( getProperties(), that.getProperties() );
     }
 
     /**
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifact.java b/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifact.java
index 0fdb62c..bbaf157 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifact.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifact.java
@@ -197,7 +197,7 @@ public final class DefaultArtifact
         }
         else
         {
-            properties = new HashMap<String, String>();
+            properties = new HashMap<>();
             if ( recessive != null )
             {
                 properties.putAll( recessive );
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifactType.java b/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifactType.java
index 5ae6daa..5d23aa2 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifactType.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifactType.java
@@ -91,7 +91,7 @@ public final class DefaultArtifactType
         }
         this.extension = emptify( extension );
         this.classifier = emptify( classifier );
-        Map<String, String> props = new HashMap<String, String>();
+        Map<String, String> props = new HashMap<>();
         props.put( ArtifactProperties.TYPE, id );
         props.put( ArtifactProperties.LANGUAGE, ( language != null && language.length() > 0 ) ? language : "none" );
         props.put( ArtifactProperties.INCLUDES_DEPENDENCIES, Boolean.toString( includesDependencies ) );
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
index d9c2527..59bc620 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectRequest.java
@@ -24,7 +24,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.graph.Dependency;
@@ -37,7 +36,7 @@ import org.eclipse.aether.repository.RemoteRepository;
  * retrieved from the artifact descriptor of the root dependency. And last, only direct dependencies can be specified in
  * which case the root node of the resulting graph has no associated dependency.
  * 
- * @see RepositorySystem#collectDependencies(RepositorySystemSession, CollectRequest)
+ * @see RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession, CollectRequest)
  */
 public final class CollectRequest
 {
@@ -199,7 +198,7 @@ public final class CollectRequest
         {
             if ( this.dependencies.isEmpty() )
             {
-                this.dependencies = new ArrayList<Dependency>();
+                this.dependencies = new ArrayList<>();
             }
             this.dependencies.add( dependency );
         }
@@ -248,7 +247,7 @@ public final class CollectRequest
         {
             if ( this.managedDependencies.isEmpty() )
             {
-                this.managedDependencies = new ArrayList<Dependency>();
+                this.managedDependencies = new ArrayList<>();
             }
             this.managedDependencies.add( managedDependency );
         }
@@ -296,7 +295,7 @@ public final class CollectRequest
         {
             if ( this.repositories.isEmpty() )
             {
-                this.repositories = new ArrayList<RemoteRepository>();
+                this.repositories = new ArrayList<>();
             }
             this.repositories.add( repository );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectResult.java
index 53ebae4..7944ad5 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectResult.java
@@ -25,14 +25,13 @@ import java.util.List;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.graph.DependencyCycle;
 import org.eclipse.aether.graph.DependencyNode;
 
 /**
  * The result of a dependency collection request.
  * 
- * @see RepositorySystem#collectDependencies(RepositorySystemSession, CollectRequest)
+ * @see RepositorySystem#collectDependencies(org.eclipse.aether.RepositorySystemSession, CollectRequest)
  */
 public final class CollectResult
 {
@@ -89,7 +88,7 @@ public final class CollectResult
         {
             if ( exceptions.isEmpty() )
             {
-                exceptions = new ArrayList<Exception>();
+                exceptions = new ArrayList<>();
             }
             exceptions.add( exception );
         }
@@ -118,7 +117,7 @@ public final class CollectResult
         {
             if ( cycles.isEmpty() )
             {
-                cycles = new ArrayList<DependencyCycle>();
+                cycles = new ArrayList<>();
             }
             cycles.add( cycle );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/collection/DependencyManagement.java b/maven-resolver-api/src/main/java/org/eclipse/aether/collection/DependencyManagement.java
index 054bfe0..618f237 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/collection/DependencyManagement.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/collection/DependencyManagement.java
@@ -22,13 +22,12 @@ package org.eclipse.aether.collection;
 import java.util.Collection;
 import java.util.Map;
 
-import org.eclipse.aether.graph.Dependency;
 import org.eclipse.aether.graph.Exclusion;
 
 /**
  * The management updates to apply to a dependency.
  * 
- * @see DependencyManager#manageDependency(Dependency)
+ * @see DependencyManager#manageDependency(org.eclipse.aether.graph.Dependency)
  */
 public final class DependencyManagement
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/collection/UnsolvableVersionConflictException.java b/maven-resolver-api/src/main/java/org/eclipse/aether/collection/UnsolvableVersionConflictException.java
index 54a7004..81353ac 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/collection/UnsolvableVersionConflictException.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/collection/UnsolvableVersionConflictException.java
@@ -57,7 +57,7 @@ public class UnsolvableVersionConflictException
         else
         {
             this.paths = paths;
-            this.versions = new LinkedHashSet<String>();
+            this.versions = new LinkedHashSet<>();
             for ( List<? extends DependencyNode> path : paths )
             {
                 VersionConstraint constraint = path.get( path.size() - 1 ).getVersionConstraint();
@@ -75,7 +75,7 @@ public class UnsolvableVersionConflictException
 
         if ( paths != null )
         {
-            Collection<String> strings = new LinkedHashSet<String>();
+            Collection<String> strings = new LinkedHashSet<>();
 
             for ( List<? extends DependencyNode> path : paths )
             {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployRequest.java
index 637f47d..44bc721 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployRequest.java
@@ -23,8 +23,6 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.metadata.Metadata;
@@ -33,7 +31,7 @@ import org.eclipse.aether.repository.RemoteRepository;
 /**
  * A request to deploy artifacts and their accompanying metadata into the a remote repository.
  * 
- * @see RepositorySystem#deploy(RepositorySystemSession, DeployRequest)
+ * @see org.eclipse.aether.RepositorySystem#deploy(org.eclipse.aether.RepositorySystemSession, DeployRequest)
  */
 public final class DeployRequest
 {
@@ -94,7 +92,7 @@ public final class DeployRequest
         {
             if ( artifacts.isEmpty() )
             {
-                artifacts = new ArrayList<Artifact>();
+                artifacts = new ArrayList<>();
             }
             artifacts.add( artifact );
         }
@@ -142,7 +140,7 @@ public final class DeployRequest
         {
             if ( this.metadata.isEmpty() )
             {
-                this.metadata = new ArrayList<Metadata>();
+                this.metadata = new ArrayList<>();
             }
             this.metadata.add( metadata );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java
index 823f671..df37cb6 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java
@@ -25,14 +25,13 @@ import java.util.Collections;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.metadata.Metadata;
 
 /**
  * The result of deploying artifacts and their accompanying metadata into the a remote repository.
  * 
- * @see RepositorySystem#deploy(RepositorySystemSession, DeployRequest)
+ * @see RepositorySystem#deploy(org.eclipse.aether.RepositorySystemSession, DeployRequest)
  */
 public final class DeployResult
 {
@@ -106,7 +105,7 @@ public final class DeployResult
         {
             if ( artifacts.isEmpty() )
             {
-                artifacts = new ArrayList<Artifact>();
+                artifacts = new ArrayList<>();
             }
             artifacts.add( artifact );
         }
@@ -155,7 +154,7 @@ public final class DeployResult
         {
             if ( this.metadata.isEmpty() )
             {
-                this.metadata = new ArrayList<Metadata>();
+                this.metadata = new ArrayList<>();
             }
             this.metadata.add( metadata );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java b/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
index ca142fa..234f442 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
@@ -71,7 +71,8 @@ public final class DefaultDependencyNode
         this.dependency = dependency;
         artifact = ( dependency != null ) ? dependency.getArtifact() : null;
         children = new ArrayList<DependencyNode>( 0 );
-        aliases = relocations = Collections.emptyList();
+        aliases = Collections.emptyList();
+        relocations = Collections.emptyList();
         repositories = Collections.emptyList();
         context = "";
         data = Collections.emptyMap();
@@ -88,7 +89,8 @@ public final class DefaultDependencyNode
     {
         this.artifact = artifact;
         children = new ArrayList<DependencyNode>( 0 );
-        aliases = relocations = Collections.emptyList();
+        aliases = Collections.emptyList();
+        relocations = Collections.emptyList();
         repositories = Collections.emptyList();
         context = "";
         data = Collections.emptyMap();
@@ -104,7 +106,7 @@ public final class DefaultDependencyNode
     {
         dependency = node.getDependency();
         artifact = node.getArtifact();
-        children = new ArrayList<DependencyNode>( 0 );
+        children = new ArrayList<>( 0 );
         setAliases( node.getAliases() );
         setRequestContext( node.getRequestContext() );
         setManagedBits( node.getManagedBits() );
@@ -113,7 +115,7 @@ public final class DefaultDependencyNode
         setVersion( node.getVersion() );
         setVersionConstraint( node.getVersionConstraint() );
         Map<?, ?> data = node.getData();
-        setData( data.isEmpty() ? null : new HashMap<Object, Object>( data ) );
+        setData( data.isEmpty() ? null : new HashMap<>( data ) );
     }
 
     public List<DependencyNode> getChildren()
@@ -125,7 +127,7 @@ public final class DefaultDependencyNode
     {
         if ( children == null )
         {
-            this.children = new ArrayList<DependencyNode>( 0 );
+            this.children = new ArrayList<>( 0 );
         }
         else
         {
@@ -330,7 +332,7 @@ public final class DefaultDependencyNode
         {
             if ( data.isEmpty() )
             {
-                data = new HashMap<Object, Object>( 1, 2 ); // nodes can be numerous so let's be space conservative
+                data = new HashMap<>( 1, 2 ); // nodes can be numerous so let's be space conservative
             }
             data.put( key, value );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/graph/Dependency.java b/maven-resolver-api/src/main/java/org/eclipse/aether/graph/Dependency.java
index 2e1a78b..e7f430c 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/graph/Dependency.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/graph/Dependency.java
@@ -26,6 +26,8 @@ import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.NoSuchElementException;
 import static java.util.Objects.requireNonNull;
+
+import java.util.Objects;
 import java.util.Set;
 
 import org.eclipse.aether.artifact.Artifact;
@@ -170,7 +172,7 @@ public final class Dependency
      */
     public Dependency setOptional( Boolean optional )
     {
-        if ( eq( this.optional, optional ) )
+        if ( Objects.equals( this.optional, optional ) )
         {
             return this;
         }
@@ -220,7 +222,7 @@ public final class Dependency
     @Override
     public String toString()
     {
-        return String.valueOf( getArtifact() ) + " (" + getScope() + ( isOptional() ? "?" : "" ) + ")";
+        return getArtifact() + " (" + getScope() + ( isOptional() ? "?" : "" ) + ")";
     }
 
     @Override
@@ -237,13 +239,8 @@ public final class Dependency
 
         Dependency that = (Dependency) obj;
 
-        return artifact.equals( that.artifact ) && scope.equals( that.scope ) && eq( optional, that.optional )
-            && exclusions.equals( that.exclusions );
-    }
-
-    private static <T> boolean eq( T o1, T o2 )
-    {
-        return ( o1 != null ) ? o1.equals( o2 ) : o2 == null;
+        return Objects.equals( artifact, that.artifact ) && Objects.equals( scope, that.scope )
+                && Objects.equals( optional, that.optional ) && Objects.equals( exclusions, that.exclusions );
     }
 
     @Override
@@ -276,7 +273,7 @@ public final class Dependency
         {
             if ( exclusions.size() > 1 && !( exclusions instanceof Set ) )
             {
-                exclusions = new LinkedHashSet<Exclusion>( exclusions );
+                exclusions = new LinkedHashSet<>( exclusions );
             }
             this.exclusions = exclusions.toArray( new Exclusion[exclusions.size()] );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallRequest.java
index f9b3163..a7f00cf 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallRequest.java
@@ -24,7 +24,6 @@ import java.util.Collection;
 import java.util.Collections;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.metadata.Metadata;
@@ -91,7 +90,7 @@ public final class InstallRequest
         {
             if ( artifacts.isEmpty() )
             {
-                artifacts = new ArrayList<Artifact>();
+                artifacts = new ArrayList<>();
             }
             artifacts.add( artifact );
         }
@@ -139,7 +138,7 @@ public final class InstallRequest
         {
             if ( this.metadata.isEmpty() )
             {
-                this.metadata = new ArrayList<Metadata>();
+                this.metadata = new ArrayList<>();
             }
             this.metadata.add( metadata );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallResult.java
index 2f79023..cfb9b6f 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallResult.java
@@ -24,15 +24,13 @@ import java.util.Collection;
 import java.util.Collections;
 import static java.util.Objects.requireNonNull;
 
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.metadata.Metadata;
 
 /**
  * The result of installing artifacts and their accompanying metadata into the a remote repository.
  * 
- * @see RepositorySystem#install(RepositorySystemSession, InstallRequest)
+ * @see org.eclipse.aether.RepositorySystem#install(org.eclipse.aether.RepositorySystemSession, InstallRequest)
  */
 public final class InstallResult
 {
@@ -106,7 +104,7 @@ public final class InstallResult
         {
             if ( artifacts.isEmpty() )
             {
-                artifacts = new ArrayList<Artifact>();
+                artifacts = new ArrayList<>();
             }
             artifacts.add( artifact );
         }
@@ -155,7 +153,7 @@ public final class InstallResult
         {
             if ( this.metadata.isEmpty() )
             {
-                this.metadata = new ArrayList<Metadata>();
+                this.metadata = new ArrayList<>();
             }
             this.metadata.add( metadata );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/AbstractMetadata.java b/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/AbstractMetadata.java
index 49dab35..3c0706a 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/AbstractMetadata.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/AbstractMetadata.java
@@ -23,6 +23,7 @@ import java.io.File;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Objects;
 
 /**
  * A skeleton class for metadata.
@@ -40,7 +41,7 @@ public abstract class AbstractMetadata
     public Metadata setFile( File file )
     {
         File current = getFile();
-        if ( ( current == null ) ? file == null : current.equals( file ) )
+        if ( Objects.equals( current, file ) )
         {
             return this;
         }
@@ -74,7 +75,7 @@ public abstract class AbstractMetadata
     {
         if ( properties != null && !properties.isEmpty() )
         {
-            return Collections.unmodifiableMap( new HashMap<String, String>( properties ) );
+            return Collections.unmodifiableMap( new HashMap<>( properties ) );
         }
         else
         {
@@ -123,15 +124,13 @@ public abstract class AbstractMetadata
 
         Metadata that = (Metadata) obj;
 
-        return getArtifactId().equals( that.getArtifactId() ) && getGroupId().equals( that.getGroupId() )
-            && getVersion().equals( that.getVersion() ) && getType().equals( that.getType() )
-            && getNature().equals( that.getNature() ) && eq( getFile(), that.getFile() )
-            && eq( getProperties(), that.getProperties() );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( getArtifactId(), that.getArtifactId() )
+                && Objects.equals( getGroupId(), that.getGroupId() )
+                && Objects.equals( getVersion(), that.getVersion() )
+                && Objects.equals( getType(), that.getType() )
+                && Objects.equals( getNature(), that.getNature() )
+                && Objects.equals( getFile(), that.getFile() )
+                && Objects.equals( getProperties(), that.getProperties() );
     }
 
     /**
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java
index 93bcdce..98a1f9a 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java
@@ -184,7 +184,7 @@ public final class AuthenticationContext
         this.repository = repository;
         this.proxy = proxy;
         this.auth = auth;
-        authData = new HashMap<String, Object>();
+        authData = new HashMap<>();
     }
 
     /**
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java
index e186060..27b88c0 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java
@@ -168,6 +168,7 @@ public final class AuthenticationDigest
      * 
      * @param chars The characters to update the digest with, may be {@code null}.
      */
+    @SuppressWarnings( "checkstyle:magicnumber" )
     public void update( char... chars )
     {
         if ( chars != null )
@@ -193,6 +194,7 @@ public final class AuthenticationDigest
         }
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     private String digest()
     {
         byte[] bytes = digest.digest();
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRegistration.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRegistration.java
index 1065779..770cb11 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRegistration.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRegistration.java
@@ -22,14 +22,13 @@ package org.eclipse.aether.repository;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
 
 /**
  * A request to register an artifact within the local repository. Certain local repository implementations can refuse to
  * serve physically present artifacts if those haven't been previously registered to them.
  * 
- * @see LocalRepositoryManager#add(RepositorySystemSession, LocalArtifactRegistration)
+ * @see LocalRepositoryManager#add(org.eclipse.aether.RepositorySystemSession, LocalArtifactRegistration)
  */
 public final class LocalArtifactRegistration
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
index 8f6eabf..790dbfd 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactRequest.java
@@ -22,13 +22,12 @@ package org.eclipse.aether.repository;
 import java.util.Collections;
 import java.util.List;
 
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
 
 /**
  * A query to the local repository for the existence of an artifact.
  * 
- * @see LocalRepositoryManager#find(RepositorySystemSession, LocalArtifactRequest)
+ * @see LocalRepositoryManager#find(org.eclipse.aether.RepositorySystemSession, LocalArtifactRequest)
  */
 public final class LocalArtifactRequest
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java
index 34dbe0a..a18c1b2 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java
@@ -22,12 +22,10 @@ package org.eclipse.aether.repository;
 import java.io.File;
 import static java.util.Objects.requireNonNull;
 
-import org.eclipse.aether.RepositorySystemSession;
-
 /**
  * A result from the local repository about the existence of an artifact.
  *
- * @see LocalRepositoryManager#find(RepositorySystemSession, LocalArtifactRequest)
+ * @see LocalRepositoryManager#find(org.eclipse.aether.RepositorySystemSession, LocalArtifactRequest)
  */
 public final class LocalArtifactResult
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRegistration.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRegistration.java
index dd0d587..c2fe647 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRegistration.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRegistration.java
@@ -22,13 +22,12 @@ package org.eclipse.aether.repository;
 import java.util.Collection;
 import java.util.Collections;
 
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.metadata.Metadata;
 
 /**
  * A request to register metadata within the local repository.
  * 
- * @see LocalRepositoryManager#add(RepositorySystemSession, LocalMetadataRegistration)
+ * @see LocalRepositoryManager#add(org.eclipse.aether.RepositorySystemSession, LocalMetadataRegistration)
  */
 public final class LocalMetadataRegistration
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
index 4c8f270..deb34c6 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataRequest.java
@@ -19,13 +19,12 @@ package org.eclipse.aether.repository;
  * under the License.
  */
 
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.metadata.Metadata;
 
 /**
  * A query to the local repository for the existence of metadata.
  * 
- * @see LocalRepositoryManager#find(RepositorySystemSession, LocalMetadataRequest)
+ * @see LocalRepositoryManager#find(org.eclipse.aether.RepositorySystemSession, LocalMetadataRequest)
  */
 public final class LocalMetadataRequest
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java
index 12f3a35..5fcfdf4 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java
@@ -22,12 +22,10 @@ package org.eclipse.aether.repository;
 import java.io.File;
 import static java.util.Objects.requireNonNull;
 
-import org.eclipse.aether.RepositorySystemSession;
-
 /**
  * A result from the local repository about the existence of metadata.
  *
- * @see LocalRepositoryManager#find(RepositorySystemSession, LocalMetadataRequest)
+ * @see LocalRepositoryManager#find(org.eclipse.aether.RepositorySystemSession, LocalMetadataRequest)
  */
 public final class LocalMetadataResult
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalRepository.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalRepository.java
index 32dce73..0ef9ccd 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalRepository.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalRepository.java
@@ -20,6 +20,7 @@ package org.eclipse.aether.repository;
  */
 
 import java.io.File;
+import java.util.Objects;
 
 /**
  * A repository on the local file system used to cache contents of remote repositories and to store locally installed
@@ -107,12 +108,7 @@ public final class LocalRepository
 
         LocalRepository that = (LocalRepository) obj;
 
-        return eq( basedir, that.basedir ) && eq( type, that.type );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( basedir, that.basedir ) && Objects.equals( type, that.type );
     }
 
     @Override
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/Proxy.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/Proxy.java
index 8e8cba1..25807a8 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/Proxy.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/Proxy.java
@@ -19,6 +19,8 @@ package org.eclipse.aether.repository;
  * under the License.
  */
 
+import java.util.Objects;
+
 /**
  * A proxy to use for connections to a repository.
  */
@@ -131,12 +133,9 @@ public final class Proxy
 
         Proxy that = (Proxy) obj;
 
-        return eq( type, that.type ) && eq( host, that.host ) && port == that.port && eq( auth, that.auth );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( type, that.type )
+                && Objects.equals( host, that.host ) && port == that.port
+                && Objects.equals( auth, that.auth );
     }
 
     @Override
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java
index 5915312..eb57588 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java
@@ -24,6 +24,8 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import static java.util.Objects.requireNonNull;
+
+import java.util.Objects;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -102,7 +104,8 @@ public final class RemoteRepository
         }
         else
         {
-            protocol = host = "";
+            protocol = "";
+            host = "";
         }
     }
 
@@ -253,15 +256,12 @@ public final class RemoteRepository
 
         RemoteRepository that = (RemoteRepository) obj;
 
-        return eq( url, that.url ) && eq( type, that.type ) && eq( id, that.id )
-            && eq( releasePolicy, that.releasePolicy ) && eq( snapshotPolicy, that.snapshotPolicy )
-            && eq( proxy, that.proxy ) && eq( authentication, that.authentication )
-            && eq( mirroredRepositories, that.mirroredRepositories ) && repositoryManager == that.repositoryManager;
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( url, that.url ) && Objects.equals( type, that.type )
+                && Objects.equals( id, that.id ) && Objects.equals( releasePolicy, that.releasePolicy )
+                && Objects.equals( snapshotPolicy, that.snapshotPolicy ) && Objects.equals( proxy, that.proxy )
+                && Objects.equals( authentication, that.authentication )
+                && Objects.equals( mirroredRepositories, that.mirroredRepositories )
+                && repositoryManager == that.repositoryManager;
     }
 
     @Override
@@ -361,7 +361,7 @@ public final class RemoteRepository
 
         private <T> void delta( int flag, T builder, T prototype )
         {
-            boolean equal = ( builder != null ) ? builder.equals( prototype ) : prototype == null;
+            boolean equal = Objects.equals( builder, prototype );
             if ( equal )
             {
                 delta &= ~flag;
@@ -428,7 +428,8 @@ public final class RemoteRepository
          */
         public Builder setPolicy( RepositoryPolicy policy )
         {
-            this.releasePolicy = this.snapshotPolicy = ( policy != null ) ? policy : DEFAULT_POLICY;
+            this.releasePolicy = ( policy != null ) ? policy : DEFAULT_POLICY;
+            this.snapshotPolicy = ( policy != null ) ? policy : DEFAULT_POLICY;
             if ( prototype != null )
             {
                 delta( RELEASES, this.releasePolicy, prototype.getPolicy( false ) );
@@ -511,7 +512,7 @@ public final class RemoteRepository
         {
             if ( this.mirroredRepositories == null )
             {
-                this.mirroredRepositories = new ArrayList<RemoteRepository>();
+                this.mirroredRepositories = new ArrayList<>();
             }
             else
             {
@@ -542,7 +543,7 @@ public final class RemoteRepository
             {
                 if ( this.mirroredRepositories == null )
                 {
-                    this.mirroredRepositories = new ArrayList<RemoteRepository>();
+                    this.mirroredRepositories = new ArrayList<>();
                     if ( prototype != null )
                     {
                         mirroredRepositories.addAll( prototype.getMirroredRepositories() );
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java
index 387b1dc..193e274 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorRequest.java
@@ -24,7 +24,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.repository.RemoteRepository;
@@ -32,7 +31,7 @@ import org.eclipse.aether.repository.RemoteRepository;
 /**
  * A request to read an artifact descriptor.
  * 
- * @see RepositorySystem#readArtifactDescriptor(RepositorySystemSession, ArtifactDescriptorRequest)
+ * @see RepositorySystem#readArtifactDescriptor(org.eclipse.aether.RepositorySystemSession, ArtifactDescriptorRequest)
  */
 public final class ArtifactDescriptorRequest
 {
@@ -130,7 +129,7 @@ public final class ArtifactDescriptorRequest
         {
             if ( this.repositories.isEmpty() )
             {
-                this.repositories = new ArrayList<RemoteRepository>();
+                this.repositories = new ArrayList<>();
             }
             this.repositories.add( repository );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java
index 3d0edd2..4e97aab 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java
@@ -27,7 +27,6 @@ import java.util.Map;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.graph.Dependency;
 import org.eclipse.aether.repository.ArtifactRepository;
@@ -36,7 +35,7 @@ import org.eclipse.aether.repository.RemoteRepository;
 /**
  * The result from reading an artifact descriptor.
  * 
- * @see RepositorySystem#readArtifactDescriptor(RepositorySystemSession, ArtifactDescriptorRequest)
+ * @see RepositorySystem#readArtifactDescriptor(org.eclipse.aether.RepositorySystemSession, ArtifactDescriptorRequest)
  */
 public final class ArtifactDescriptorResult
 {
@@ -73,7 +72,8 @@ public final class ArtifactDescriptorResult
         exceptions = Collections.emptyList();
         relocations = Collections.emptyList();
         aliases = Collections.emptyList();
-        dependencies = managedDependencies = Collections.emptyList();
+        dependencies = Collections.emptyList();
+        managedDependencies = Collections.emptyList();
         repositories = Collections.emptyList();
         properties = Collections.emptyMap();
     }
@@ -129,7 +129,7 @@ public final class ArtifactDescriptorResult
         {
             if ( exceptions.isEmpty() )
             {
-                exceptions = new ArrayList<Exception>();
+                exceptions = new ArrayList<>();
             }
             exceptions.add( exception );
         }
@@ -178,7 +178,7 @@ public final class ArtifactDescriptorResult
         {
             if ( relocations.isEmpty() )
             {
-                relocations = new ArrayList<Artifact>();
+                relocations = new ArrayList<>();
             }
             relocations.add( artifact );
         }
@@ -228,7 +228,7 @@ public final class ArtifactDescriptorResult
         {
             if ( aliases.isEmpty() )
             {
-                aliases = new ArrayList<Artifact>();
+                aliases = new ArrayList<>();
             }
             aliases.add( alias );
         }
@@ -321,7 +321,7 @@ public final class ArtifactDescriptorResult
         {
             if ( dependencies.isEmpty() )
             {
-                dependencies = new ArrayList<Dependency>();
+                dependencies = new ArrayList<>();
             }
             dependencies.add( dependency );
         }
@@ -369,7 +369,7 @@ public final class ArtifactDescriptorResult
         {
             if ( managedDependencies.isEmpty() )
             {
-                managedDependencies = new ArrayList<Dependency>();
+                managedDependencies = new ArrayList<>();
             }
             managedDependencies.add( dependency );
         }
@@ -417,7 +417,7 @@ public final class ArtifactDescriptorResult
         {
             if ( repositories.isEmpty() )
             {
-                repositories = new ArrayList<RemoteRepository>();
+                repositories = new ArrayList<>();
             }
             repositories.add( repository );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java
index a220207..fec1aff 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactRequest.java
@@ -24,7 +24,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.graph.DependencyNode;
@@ -33,7 +32,7 @@ import org.eclipse.aether.repository.RemoteRepository;
 /**
  * A request to resolve an artifact.
  * 
- * @see RepositorySystem#resolveArtifacts(RepositorySystemSession, java.util.Collection)
+ * @see RepositorySystem#resolveArtifacts(org.eclipse.aether.RepositorySystemSession, java.util.Collection)
  * @see Artifact#getFile()
  */
 public final class ArtifactRequest
@@ -172,7 +171,7 @@ public final class ArtifactRequest
         {
             if ( this.repositories.isEmpty() )
             {
-                this.repositories = new ArrayList<RemoteRepository>();
+                this.repositories = new ArrayList<>();
             }
             this.repositories.add( repository );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java
index 5057855..0c98dac 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java
@@ -25,7 +25,6 @@ import java.util.List;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.repository.ArtifactRepository;
 import org.eclipse.aether.transfer.ArtifactNotFoundException;
@@ -33,7 +32,7 @@ import org.eclipse.aether.transfer.ArtifactNotFoundException;
 /**
  * The result of an artifact resolution request.
  * 
- * @see RepositorySystem#resolveArtifacts(RepositorySystemSession, java.util.Collection)
+ * @see RepositorySystem#resolveArtifacts(org.eclipse.aether.RepositorySystemSession, java.util.Collection)
  * @see Artifact#getFile()
  */
 public final class ArtifactResult
@@ -116,7 +115,7 @@ public final class ArtifactResult
         {
             if ( exceptions.isEmpty() )
             {
-                exceptions = new ArrayList<Exception>();
+                exceptions = new ArrayList<>();
             }
             exceptions.add( exception );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyRequest.java
index 138304a..426540e 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyRequest.java
@@ -20,7 +20,6 @@ package org.eclipse.aether.resolution;
  */
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.collection.CollectRequest;
@@ -31,7 +30,7 @@ import org.eclipse.aether.graph.DependencyNode;
  * A request to resolve transitive dependencies. This request can either be supplied with a {@link CollectRequest} to
  * calculate the transitive dependencies or with an already resolved dependency graph.
  * 
- * @see RepositorySystem#resolveDependencies(RepositorySystemSession, DependencyRequest)
+ * @see RepositorySystem#resolveDependencies(org.eclipse.aether.RepositorySystemSession, DependencyRequest)
  * @see Artifact#getFile()
  */
 public final class DependencyRequest
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyResult.java
index 8ba8646..6aea552 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyResult.java
@@ -24,14 +24,13 @@ import java.util.List;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.graph.DependencyCycle;
 import org.eclipse.aether.graph.DependencyNode;
 
 /**
  * The result of a dependency resolution request.
  * 
- * @see RepositorySystem#resolveDependencies(RepositorySystemSession, DependencyRequest)
+ * @see RepositorySystem#resolveDependencies(org.eclipse.aether.RepositorySystemSession, DependencyRequest)
  */
 public final class DependencyResult
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataRequest.java
index 86063ff..6b55d92 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataRequest.java
@@ -20,7 +20,6 @@ package org.eclipse.aether.resolution;
  */
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.metadata.Metadata;
 import org.eclipse.aether.repository.RemoteRepository;
@@ -28,7 +27,7 @@ import org.eclipse.aether.repository.RemoteRepository;
 /**
  * A request to resolve metadata from either a remote repository or the local repository.
  * 
- * @see RepositorySystem#resolveMetadata(RepositorySystemSession, java.util.Collection)
+ * @see RepositorySystem#resolveMetadata(org.eclipse.aether.RepositorySystemSession, java.util.Collection)
  * @see Metadata#getFile()
  */
 public final class MetadataRequest
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataResult.java
index cedd395..2bfd24d 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataResult.java
@@ -22,14 +22,13 @@ package org.eclipse.aether.resolution;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.metadata.Metadata;
 import org.eclipse.aether.transfer.MetadataNotFoundException;
 
 /**
  * The result of a metadata resolution request.
  * 
- * @see RepositorySystem#resolveMetadata(RepositorySystemSession, java.util.Collection)
+ * @see RepositorySystem#resolveMetadata(org.eclipse.aether.RepositorySystemSession, java.util.Collection)
  */
 public final class MetadataResult
 {
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeRequest.java
index d6aa16b..64803dc 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeRequest.java
@@ -23,8 +23,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.repository.RemoteRepository;
@@ -32,7 +30,8 @@ import org.eclipse.aether.repository.RemoteRepository;
 /**
  * A request to resolve a version range.
  * 
- * @see RepositorySystem#resolveVersionRange(RepositorySystemSession, VersionRangeRequest)
+ * @see org.eclipse.aether.RepositorySystem#resolveVersionRange(org.eclipse.aether.RepositorySystemSession,
+ *  VersionRangeRequest)
  */
 public final class VersionRangeRequest
 {
@@ -130,7 +129,7 @@ public final class VersionRangeRequest
         {
             if ( this.repositories.isEmpty() )
             {
-                this.repositories = new ArrayList<RemoteRepository>();
+                this.repositories = new ArrayList<>();
             }
             this.repositories.add( repository );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeResult.java
index 8af78ea..78a279a 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeResult.java
@@ -26,8 +26,6 @@ import java.util.List;
 import java.util.Map;
 import static java.util.Objects.requireNonNull;
 
-import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.ArtifactRepository;
 import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionConstraint;
@@ -35,7 +33,8 @@ import org.eclipse.aether.version.VersionConstraint;
 /**
  * The result of a version range resolution request.
  * 
- * @see RepositorySystem#resolveVersionRange(RepositorySystemSession, VersionRangeRequest)
+ * @see org.eclipse.aether.RepositorySystem#resolveVersionRange(org.eclipse.aether.RepositorySystemSession,
+ *   VersionRangeRequest)
  */
 public final class VersionRangeResult
 {
@@ -95,7 +94,7 @@ public final class VersionRangeResult
         {
             if ( exceptions.isEmpty() )
             {
-                exceptions = new ArrayList<Exception>();
+                exceptions = new ArrayList<>();
             }
             exceptions.add( exception );
         }
@@ -122,7 +121,7 @@ public final class VersionRangeResult
     {
         if ( versions.isEmpty() )
         {
-            versions = new ArrayList<Version>();
+            versions = new ArrayList<>();
         }
         versions.add( version );
         return this;
@@ -199,7 +198,7 @@ public final class VersionRangeResult
         {
             if ( repositories.isEmpty() )
             {
-                repositories = new HashMap<Version, ArtifactRepository>();
+                repositories = new HashMap<>();
             }
             repositories.put( version, repository );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRequest.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRequest.java
index 3dde7dd..c36b991 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRequest.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRequest.java
@@ -24,7 +24,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.RequestTrace;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.repository.RemoteRepository;
@@ -32,7 +31,7 @@ import org.eclipse.aether.repository.RemoteRepository;
 /**
  * A request to resolve a metaversion.
  * 
- * @see RepositorySystem#resolveVersion(RepositorySystemSession, VersionRequest)
+ * @see RepositorySystem#resolveVersion(org.eclipse.aether.RepositorySystemSession, VersionRequest)
  */
 public final class VersionRequest
 {
@@ -130,7 +129,7 @@ public final class VersionRequest
         {
             if ( this.repositories.isEmpty() )
             {
-                this.repositories = new ArrayList<RemoteRepository>();
+                this.repositories = new ArrayList<>();
             }
             this.repositories.add( repository );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionResult.java b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionResult.java
index 486a287..40797a2 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionResult.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionResult.java
@@ -25,13 +25,12 @@ import java.util.List;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.ArtifactRepository;
 
 /**
  * The result of a version resolution request.
  * 
- * @see RepositorySystem#resolveVersion(RepositorySystemSession, VersionRequest)
+ * @see RepositorySystem#resolveVersion(org.eclipse.aether.RepositorySystemSession, VersionRequest)
  */
 public final class VersionResult
 {
@@ -87,7 +86,7 @@ public final class VersionResult
         {
             if ( exceptions.isEmpty() )
             {
-                exceptions = new ArrayList<Exception>();
+                exceptions = new ArrayList<>();
             }
             exceptions.add( exception );
         }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ArtifactNotFoundException.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ArtifactNotFoundException.java
index 89a50d4..88f62aa 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ArtifactNotFoundException.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ArtifactNotFoundException.java
@@ -83,7 +83,8 @@ public class ArtifactNotFoundException
      * @param fromCache {@code true} if the exception was played back from the error cache, {@code false} if the
      *            exception actually just occurred.
      */
-    public ArtifactNotFoundException( Artifact artifact, RemoteRepository repository, String message, boolean fromCache )
+    public ArtifactNotFoundException( Artifact artifact, RemoteRepository repository, String message,
+                                      boolean fromCache )
     {
         super( artifact, repository, message, fromCache );
     }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ArtifactTransferException.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ArtifactTransferException.java
index 087040f..c79f125 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ArtifactTransferException.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ArtifactTransferException.java
@@ -69,7 +69,8 @@ public class ArtifactTransferException
      * @param fromCache {@code true} if the exception was played back from the error cache, {@code false} if the
      *            exception actually just occurred.
      */
-    public ArtifactTransferException( Artifact artifact, RemoteRepository repository, String message, boolean fromCache )
+    public ArtifactTransferException( Artifact artifact, RemoteRepository repository, String message,
+                                      boolean fromCache )
     {
         super( message );
         this.artifact = artifact;
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ChecksumFailureException.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ChecksumFailureException.java
index 1dbc6b0..43944b6 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ChecksumFailureException.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/ChecksumFailureException.java
@@ -93,7 +93,8 @@ public class ChecksumFailureException
     public ChecksumFailureException( boolean retryWorthy, String message, Throwable cause )
     {
         super( message, cause );
-        expected = actual = "";
+        expected = "";
+        actual = "";
         this.retryWorthy = retryWorthy;
     }
 
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/MetadataNotFoundException.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/MetadataNotFoundException.java
index 9642621..28d78bd 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/MetadataNotFoundException.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/MetadataNotFoundException.java
@@ -85,7 +85,8 @@ public class MetadataNotFoundException
      * @param fromCache {@code true} if the exception was played back from the error cache, {@code false} if the
      *            exception actually just occurred.
      */
-    public MetadataNotFoundException( Metadata metadata, RemoteRepository repository, String message, boolean fromCache )
+    public MetadataNotFoundException( Metadata metadata, RemoteRepository repository, String message,
+                                      boolean fromCache )
     {
         super( metadata, repository, message, fromCache );
     }
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/MetadataTransferException.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/MetadataTransferException.java
index df6374c..ff363a3 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/MetadataTransferException.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/MetadataTransferException.java
@@ -69,7 +69,8 @@ public class MetadataTransferException
      * @param fromCache {@code true} if the exception was played back from the error cache, {@code false} if the
      *            exception actually just occurred.
      */
-    public MetadataTransferException( Metadata metadata, RemoteRepository repository, String message, boolean fromCache )
+    public MetadataTransferException( Metadata metadata, RemoteRepository repository, String message,
+                                      boolean fromCache )
     {
         super( message );
         this.metadata = metadata;
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
index 26b6c77..e0d4bf8 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferResource.java
@@ -67,7 +67,8 @@ public final class TransferResource
     /**
      * Creates a new transfer resource with the specified properties.
      *
-     * @param repositoryId The ID of the repository used to transfer the resource, may be {@code null} or empty if unknown.
+     * @param repositoryId The ID of the repository used to transfer the resource, may be {@code null} or
+     *                     empty if unknown.
      * @param repositoryUrl The base URL of the repository, may be {@code null} or empty if unknown. If not empty, a
      *            trailing slash will automatically be added if missing.
      * @param resourceName The relative path to the resource within the repository, may be {@code null}. A leading slash
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
index 067320e..0586d8b 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositoryCacheTest.java
@@ -72,8 +72,8 @@ public class DefaultRepositoryCacheTest
     public void testConcurrency()
         throws Exception
     {
-        final AtomicReference<Throwable> error = new AtomicReference<Throwable>();
-        Thread threads[] = new Thread[20];
+        final AtomicReference<Throwable> error = new AtomicReference<>();
+        Thread[] threads = new Thread[20];
         for ( int i = 0; i < threads.length; i++ )
         {
             threads[i] = new Thread()
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositorySystemSessionTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositorySystemSessionTest.java
index 911fd8f..b75c01b 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositorySystemSessionTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultRepositorySystemSessionTest.java
@@ -24,7 +24,6 @@ import static org.junit.Assert.fail;
 
 import java.lang.reflect.Method;
 import java.util.Map;
-import java.util.Objects;
 
 import org.eclipse.aether.repository.Authentication;
 import org.eclipse.aether.repository.AuthenticationContext;
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
index 3b886e5..191b73b 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/DefaultSessionDataTest.java
@@ -98,8 +98,8 @@ public class DefaultSessionDataTest
     public void testConcurrency()
         throws Exception
     {
-        final AtomicReference<Throwable> error = new AtomicReference<Throwable>();
-        Thread threads[] = new Thread[20];
+        final AtomicReference<Throwable> error = new AtomicReference<>();
+        Thread[] threads = new Thread[20];
         for ( int i = 0; i < threads.length; i++ )
         {
             threads[i] = new Thread()
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/artifact/DefaultArtifactTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/artifact/DefaultArtifactTest.java
index 49773ab..7aec3e4 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/artifact/DefaultArtifactTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/artifact/DefaultArtifactTest.java
@@ -132,7 +132,7 @@ public class DefaultArtifactTest
         assertEquals( "true", a.getProperties().get( ArtifactProperties.INCLUDES_DEPENDENCIES ) );
         assertEquals( "true", a.getProperties().get( ArtifactProperties.CONSTITUTES_BUILD_PATH ) );
 
-        Map<String, String> props = new HashMap<String, String>();
+        Map<String, String> props = new HashMap<>();
         props.put( "someNonStandardProperty", "someNonStandardProperty" );
         a = new DefaultArtifact( "gid", "aid", "cls", "ext", "ver", props, type );
         assertEquals( "ext", a.getExtension() );
@@ -143,7 +143,7 @@ public class DefaultArtifactTest
         assertEquals( "true", a.getProperties().get( ArtifactProperties.CONSTITUTES_BUILD_PATH ) );
         assertEquals( "someNonStandardProperty", a.getProperties().get( "someNonStandardProperty" ) );
 
-        props = new HashMap<String, String>();
+        props = new HashMap<>();
         props.put( "someNonStandardProperty", "someNonStandardProperty" );
         props.put( ArtifactProperties.CONSTITUTES_BUILD_PATH, "rubbish" );
         props.put( ArtifactProperties.INCLUDES_DEPENDENCIES, "rubbish" );
@@ -160,7 +160,7 @@ public class DefaultArtifactTest
     @Test
     public void testPropertiesCopied()
     {
-        Map<String, String> props = new HashMap<String, String>();
+        Map<String, String> props = new HashMap<>();
         props.put( "key", "value1" );
 
         Artifact a = new DefaultArtifact( "gid:aid:1", props );
diff --git a/maven-resolver-api/src/test/java/org/eclipse/aether/repository/RemoteRepositoryBuilderTest.java b/maven-resolver-api/src/test/java/org/eclipse/aether/repository/RemoteRepositoryBuilderTest.java
index e2c15e3..0d6b190 100644
--- a/maven-resolver-api/src/test/java/org/eclipse/aether/repository/RemoteRepositoryBuilderTest.java
+++ b/maven-resolver-api/src/test/java/org/eclipse/aether/repository/RemoteRepositoryBuilderTest.java
@@ -157,7 +157,7 @@ public class RemoteRepositoryBuilderTest
         Builder builder = new Builder( prototype );
         RemoteRepository repo = builder.setMirroredRepositories( prototype.getMirroredRepositories() ).build();
         assertSame( prototype, repo );
-        List<RemoteRepository> mirrored = new ArrayList<RemoteRepository>( Arrays.asList( repo ) );
+        List<RemoteRepository> mirrored = new ArrayList<>( Arrays.asList( repo ) );
         repo = builder.setMirroredRepositories( mirrored ).build();
         assertEquals( mirrored, repo.getMirroredRepositories() );
     }
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
index d15f80c..ee9a267 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
@@ -283,7 +283,8 @@ final class BasicRepositoryConnector
 
             List<RepositoryLayout.Checksum> checksums = layout.getChecksums( transfer.getArtifact(), true, location );
 
-            Runnable task = new PutTaskRunner( location, transfer.getFile(), transfer.getFileTransformer(), checksums, listener );
+            Runnable task = new PutTaskRunner( location, transfer.getFile(), transfer.getFileTransformer(), checksums,
+                    listener );
             task.run();
         }
 
@@ -528,6 +529,7 @@ final class BasicRepositoryConnector
             this.checksums = safe( checksums );
         }
 
+        @SuppressWarnings( "checkstyle:innerassignment" )
         protected void runTask()
             throws Exception
         {
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java
index 16f547a..540b301 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java
@@ -115,7 +115,8 @@ public final class BasicRepositoryConnectorFactory
      */
     public BasicRepositoryConnectorFactory setChecksumPolicyProvider( ChecksumPolicyProvider checksumPolicyProvider )
     {
-        this.checksumPolicyProvider = requireNonNull( checksumPolicyProvider, "checksum policy provider cannot be null" );
+        this.checksumPolicyProvider = requireNonNull(
+                checksumPolicyProvider, "checksum policy provider cannot be null" );
         return this;
     }
 
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
index 8b907c0..e5a1780 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumCalculator.java
@@ -117,8 +117,8 @@ final class ChecksumCalculator
 
     private ChecksumCalculator( File targetFile, Collection<RepositoryLayout.Checksum> checksums )
     {
-        this.checksums = new ArrayList<Checksum>();
-        Set<String> algos = new HashSet<String>();
+        this.checksums = new ArrayList<>();
+        Set<String> algos = new HashSet<>();
         for ( RepositoryLayout.Checksum checksum : checksums )
         {
             String algo = checksum.getAlgorithm();
@@ -207,7 +207,7 @@ final class ChecksumCalculator
 
     public Map<String, Object> get()
     {
-        Map<String, Object> results = new HashMap<String, Object>();
+        Map<String, Object> results = new HashMap<>();
         for ( Checksum checksum : checksums )
         {
             results.put( checksum.algorithm, checksum.get() );
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumValidator.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumValidator.java
index d3db262..be0f9c0 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumValidator.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/ChecksumValidator.java
@@ -72,12 +72,12 @@ final class ChecksumValidator
                               Collection<Checksum> checksums )
     {
         this.dataFile = dataFile;
-        this.tempFiles = new HashSet<File>();
+        this.tempFiles = new HashSet<>();
         this.fileProcessor = fileProcessor;
         this.checksumFetcher = checksumFetcher;
         this.checksumPolicy = checksumPolicy;
         this.checksums = checksums;
-        checksumFiles = new HashMap<File, Object>();
+        checksumFiles = new HashMap<>();
     }
 
     public ChecksumCalculator newChecksumCalculator( File targetFile )
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
index 8b8dcfe..16ab98b 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/PartialFile.java
@@ -150,17 +150,7 @@ final class PartialFile
                 raf = null;
                 lock = null;
             }
-            catch ( RuntimeException e )
-            {
-                close( raf );
-                raf = null;
-                if ( !lockFile.delete() )
-                {
-                    lockFile.deleteOnExit();
-                }
-                throw e;
-            }
-            catch ( IOException e )
+            catch ( RuntimeException | IOException e )
             {
                 close( raf );
                 raf = null;
@@ -292,7 +282,8 @@ final class PartialFile
                 catch ( IOException e )
                 {
                     lockFile.close();
-                    LOGGER.debug( "Cannot create resumable file {}: {}", partFile.getAbsolutePath(), e.getMessage(), e );
+                    LOGGER.debug( "Cannot create resumable file {}: {}", partFile.getAbsolutePath(), e.getMessage(),
+                            e );
                     // fall through and try non-resumable/temporary file location
                 }
             }
diff --git a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/TransferTransportListener.java b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/TransferTransportListener.java
index bd95577..3440d89 100644
--- a/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/TransferTransportListener.java
+++ b/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/TransferTransportListener.java
@@ -91,7 +91,8 @@ class TransferTransportListener<T extends Transfer>
         }
         if ( listener != null )
         {
-            eventBuilder.resetType( EventType.PROGRESSED ).addTransferredBytes( data.remaining() ).setDataBuffer( data );
+            eventBuilder.resetType( EventType.PROGRESSED ).addTransferredBytes( data.remaining() )
+                    .setDataBuffer( data );
             listener.transferProgressed( eventBuilder.build() );
         }
     }
diff --git a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumCalculatorTest.java b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumCalculatorTest.java
index 993f94d..b0921e1 100644
--- a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumCalculatorTest.java
+++ b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumCalculatorTest.java
@@ -47,7 +47,7 @@ public class ChecksumCalculatorTest
 
     private ChecksumCalculator newCalculator( String... algos )
     {
-        List<RepositoryLayout.Checksum> checksums = new ArrayList<RepositoryLayout.Checksum>();
+        List<RepositoryLayout.Checksum> checksums = new ArrayList<>();
         for ( String algo : algos )
         {
             checksums.add( new RepositoryLayout.Checksum( algo, URI.create( "irrelevant" ) ) );
diff --git a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumValidatorTest.java b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumValidatorTest.java
index 6d36efa..0e860ce 100644
--- a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumValidatorTest.java
+++ b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumValidatorTest.java
@@ -50,7 +50,7 @@ public class ChecksumValidatorTest
 
         boolean tolerateFailure;
 
-        private List<String> callbacks = new ArrayList<String>();
+        private List<String> callbacks = new ArrayList<>();
 
         private Object conclusion;
 
@@ -81,7 +81,6 @@ public class ChecksumValidatorTest
         }
 
         public void onChecksumError( String algorithm, int kind, ChecksumFailureException exception )
-            throws ChecksumFailureException
         {
             callbacks.add( String.format( "error(%s, %04x, %s)", algorithm, kind, exception.getCause().getMessage() ) );
         }
@@ -122,11 +121,11 @@ public class ChecksumValidatorTest
         implements ChecksumValidator.ChecksumFetcher
     {
 
-        Map<URI, Object> checksums = new HashMap<URI, Object>();
+        Map<URI, Object> checksums = new HashMap<>();
 
-        List<File> checksumFiles = new ArrayList<File>();
+        List<File> checksumFiles = new ArrayList<>();
 
-        private List<URI> fetchedFiles = new ArrayList<URI>();
+        private List<URI> fetchedFiles = new ArrayList<>();
 
         public boolean fetchChecksum( URI remote, File local )
             throws Exception
@@ -153,7 +152,7 @@ public class ChecksumValidatorTest
 
         void assertFetchedFiles( String... algos )
         {
-            List<URI> expected = new ArrayList<URI>();
+            List<URI> expected = new ArrayList<>();
             for ( String algo : algos )
             {
                 expected.add( toUri( algo ) );
@@ -185,7 +184,7 @@ public class ChecksumValidatorTest
 
     private List<RepositoryLayout.Checksum> newChecksums( String... algos )
     {
-        List<RepositoryLayout.Checksum> checksums = new ArrayList<RepositoryLayout.Checksum>();
+        List<RepositoryLayout.Checksum> checksums = new ArrayList<>();
         for ( String algo : algos )
         {
             checksums.add( newChecksum( algo ) );
@@ -200,7 +199,7 @@ public class ChecksumValidatorTest
 
     private Map<String, ?> checksums( String... algoDigestPairs )
     {
-        Map<String, Object> checksums = new LinkedHashMap<String, Object>();
+        Map<String, Object> checksums = new LinkedHashMap<>();
         for ( int i = 0; i < algoDigestPairs.length; i += 2 )
         {
             String algo = algoDigestPairs[i];
@@ -250,7 +249,6 @@ public class ChecksumValidatorTest
 
     @Test
     public void testValidate_FailOnFirstMismatch()
-        throws Exception
     {
         ChecksumValidator validator = newValidator( SHA1 );
         fetcher.mock( SHA1, "foo" );
@@ -284,7 +282,6 @@ public class ChecksumValidatorTest
 
     @Test
     public void testValidate_FailOnEnd()
-        throws Exception
     {
         policy.inspectAll = true;
         ChecksumValidator validator = newValidator( SHA1, MD5 );
@@ -367,7 +364,6 @@ public class ChecksumValidatorTest
 
     @Test
     public void testHandle_Accept()
-        throws Exception
     {
         policy.tolerateFailure = true;
         ChecksumValidator validator = newValidator( SHA1 );
@@ -377,7 +373,6 @@ public class ChecksumValidatorTest
 
     @Test
     public void testHandle_Reject()
-        throws Exception
     {
         policy.tolerateFailure = false;
         ChecksumValidator validator = newValidator( SHA1 );
@@ -387,7 +382,6 @@ public class ChecksumValidatorTest
 
     @Test
     public void testRetry_ResetPolicy()
-        throws Exception
     {
         ChecksumValidator validator = newValidator( SHA1 );
         validator.retry();
diff --git a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
index b1e8e4d..bb6530e 100644
--- a/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
+++ b/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/PartialFileTest.java
@@ -224,7 +224,7 @@ public class PartialFileTest
     public void init()
         throws Exception
     {
-        closeables = new ArrayList<Closeable>();
+        closeables = new ArrayList<>();
         remoteAccessChecker = new StubRemoteAccessChecker();
         dstFile = TestFileUtils.createTempFile( "Hello World!" );
         partFile = new File( dstFile.getPath() + PartialFile.EXT_PART );
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/guice/DemoResolverModule.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/guice/DemoResolverModule.java
index 6b1691a..e3b52c8 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/guice/DemoResolverModule.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/guice/DemoResolverModule.java
@@ -46,14 +46,16 @@ class DemoResolverModule
     {
         install( new MavenResolverModule() );
         // alternatively, use the Guice Multibindings extensions
-        bind( RepositoryConnectorFactory.class ).annotatedWith( Names.named( "basic" ) ).to( BasicRepositoryConnectorFactory.class );
+        bind( RepositoryConnectorFactory.class ).annotatedWith( Names.named( "basic" ) )
+                .to( BasicRepositoryConnectorFactory.class );
         bind( TransporterFactory.class ).annotatedWith( Names.named( "file" ) ).to( FileTransporterFactory.class );
         bind( TransporterFactory.class ).annotatedWith( Names.named( "http" ) ).to( HttpTransporterFactory.class );
     }
 
     @Provides
     @Singleton
-    Set<RepositoryConnectorFactory> provideRepositoryConnectorFactories( @Named( "basic" ) RepositoryConnectorFactory basic )
+    Set<RepositoryConnectorFactory> provideRepositoryConnectorFactories(
+            @Named( "basic" ) RepositoryConnectorFactory basic )
     {
         Set<RepositoryConnectorFactory> factories = new HashSet<>();
         factories.add( basic );
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/ConsoleDependencyGraphDumper.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/ConsoleDependencyGraphDumper.java
index ef33ec2..d03aa46 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/ConsoleDependencyGraphDumper.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/ConsoleDependencyGraphDumper.java
@@ -41,7 +41,7 @@ public class ConsoleDependencyGraphDumper
 
     private PrintStream out;
 
-    private List<ChildInfo> childInfos = new ArrayList<ChildInfo>();
+    private List<ChildInfo> childInfos = new ArrayList<>();
 
     public ConsoleDependencyGraphDumper()
     {
@@ -85,19 +85,16 @@ public class ConsoleDependencyGraphDumper
             }
             buffer.append( "]" );
         }
+        String premanaged = DependencyManagerUtils.getPremanagedVersion( node );
+        if ( premanaged != null && !premanaged.equals( a.getBaseVersion() ) )
         {
-            String premanaged = DependencyManagerUtils.getPremanagedVersion( node );
-            if ( premanaged != null && !premanaged.equals( a.getBaseVersion() ) )
-            {
-                buffer.append( " (version managed from " ).append( premanaged ).append( ")" );
-            }
+            buffer.append( " (version managed from " ).append( premanaged ).append( ")" );
         }
+
+        premanaged = DependencyManagerUtils.getPremanagedScope( node );
+        if ( premanaged != null && !premanaged.equals( d.getScope() ) )
         {
-            String premanaged = DependencyManagerUtils.getPremanagedScope( node );
-            if ( premanaged != null && !premanaged.equals( d.getScope() ) )
-            {
-                buffer.append( " (scope managed from " ).append( premanaged ).append( ")" );
-            }
+            buffer.append( " (scope managed from " ).append( premanaged ).append( ")" );
         }
         DependencyNode winner = (DependencyNode) node.getData().get( ConflictResolver.NODE_DATA_WINNER );
         if ( winner != null && !ArtifactIdUtils.equalsId( a, winner.getArtifact() ) )
diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/ConsoleTransferListener.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/ConsoleTransferListener.java
index 3b3c959..bba92d8 100644
--- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/ConsoleTransferListener.java
+++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/ConsoleTransferListener.java
@@ -40,7 +40,7 @@ public class ConsoleTransferListener
 
     private PrintStream out;
 
-    private Map<TransferResource, Long> downloads = new ConcurrentHashMap<TransferResource, Long>();
+    private Map<TransferResource, Long> downloads = new ConcurrentHashMap<>();
 
     private int lastLength;
 
@@ -66,14 +66,14 @@ public class ConsoleTransferListener
     public void transferProgressed( TransferEvent event )
     {
         TransferResource resource = event.getResource();
-        downloads.put( resource, Long.valueOf( event.getTransferredBytes() ) );
+        downloads.put( resource, event.getTransferredBytes() );
 
         StringBuilder buffer = new StringBuilder( 64 );
 
         for ( Map.Entry<TransferResource, Long> entry : downloads.entrySet() )
         {
             long total = entry.getKey().getContentLength();
-            long complete = entry.getValue().longValue();
+            long complete = entry.getValue();
 
             buffer.append( getStatus( complete, total ) ).append( "  " );
         }
@@ -170,6 +170,7 @@ public class ConsoleTransferListener
         event.getException().printStackTrace( out );
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     protected long toKB( long bytes )
     {
         return ( bytes + 1023 ) / 1024;
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/ArtifactDescriptorReader.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/ArtifactDescriptorReader.java
index 66f3528..1d6787b 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/ArtifactDescriptorReader.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/ArtifactDescriptorReader.java
@@ -26,14 +26,14 @@ import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
 import org.eclipse.aether.resolution.ArtifactDescriptorResult;
 
 /**
- * Provides information about an artifact that is relevant to transitive dependency resolution. Each artifact is expected
- * to have an accompanying <em>artifact descriptor</em> that among others lists the direct dependencies of the artifact.
+ * Provides information about an artifact that is relevant to transitive dependency resolution.
+ * Each artifact is expected to have an accompanying <em>artifact descriptor</em> that among others lists
+ * the direct dependencies of the artifact.
  * 
  * @provisional This type is provisional and can be changed, moved or removed without prior notice.
  */
 public interface ArtifactDescriptorReader
 {
-
     /**
      * Gets information about an artifact like its direct dependencies and potential relocations. Implementations must
      * respect the {@link RepositorySystemSession#getArtifactDescriptorPolicy() artifact descriptor policy} of the
@@ -45,7 +45,8 @@ public interface ArtifactDescriptorReader
      * @throws ArtifactDescriptorException If the artifact descriptor could not be read.
      * @see RepositorySystem#readArtifactDescriptor(RepositorySystemSession, ArtifactDescriptorRequest)
      */
-    ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session, ArtifactDescriptorRequest request )
+    ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session,
+                                                     ArtifactDescriptorRequest request )
         throws ArtifactDescriptorException;
 
 }
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/DefaultServiceLocator.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/DefaultServiceLocator.java
index 37f73e8..5a75836 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/DefaultServiceLocator.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/DefaultServiceLocator.java
@@ -92,7 +92,7 @@ public final class DefaultServiceLocator
         Entry( Class<T> type )
         {
             this.type = requireNonNull( type, "service type cannot be null" );
-            providers = new LinkedHashSet<Object>( 8 );
+            providers = new LinkedHashSet<>( 8 );
         }
 
         public synchronized void setServices( T... services )
@@ -130,7 +130,7 @@ public final class DefaultServiceLocator
         {
             if ( instances == null )
             {
-                instances = new ArrayList<T>( providers.size() );
+                instances = new ArrayList<>( providers.size() );
                 for ( Object provider : providers )
                 {
                     T instance;
@@ -170,11 +170,7 @@ public final class DefaultServiceLocator
                 }
                 return instance;
             }
-            catch ( Exception e )
-            {
-                serviceCreationFailed( type, impl, e );
-            }
-            catch ( LinkageError e )
+            catch ( Exception | LinkageError e )
             {
                 serviceCreationFailed( type, impl, e );
             }
@@ -192,7 +188,7 @@ public final class DefaultServiceLocator
      */
     public DefaultServiceLocator()
     {
-        entries = new HashMap<Class<?>, Entry<?>>();
+        entries = new HashMap<>();
 
         addService( RepositorySystem.class, DefaultRepositorySystem.class );
         addService( ArtifactResolver.class, DefaultArtifactResolver.class );
@@ -224,7 +220,7 @@ public final class DefaultServiceLocator
         Entry<T> entry = (Entry<T>) entries.get( requireNonNull( type, "service type cannot be null" ) );
         if ( entry == null && create )
         {
-            entry = new Entry<T>( type );
+            entry = new Entry<>( type );
             entries.put( type, entry );
         }
         return entry;
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/RemoteRepositoryManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/RemoteRepositoryManager.java
index 23685e7..94dae52 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/RemoteRepositoryManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/RemoteRepositoryManager.java
@@ -52,7 +52,8 @@ public interface RemoteRepositoryManager
      */
     List<RemoteRepository> aggregateRepositories( RepositorySystemSession session,
                                                   List<RemoteRepository> dominantRepositories,
-                                                  List<RemoteRepository> recessiveRepositories, boolean recessiveIsRaw );
+                                                  List<RemoteRepository> recessiveRepositories,
+                                                  boolean recessiveIsRaw );
 
     /**
      * Gets the effective repository policy for the specified remote repository by merging the applicable
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/guice/AetherModule.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/guice/AetherModule.java
index 002e4b6..52859b0 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/guice/AetherModule.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/guice/AetherModule.java
@@ -152,8 +152,9 @@ public class AetherModule
 
     @Provides
     @Singleton
-    Set<LocalRepositoryManagerFactory> provideLocalRepositoryManagerFactories( @Named( "simple" ) LocalRepositoryManagerFactory simple,
-                                                                               @Named( "enhanced" ) LocalRepositoryManagerFactory enhanced )
+    Set<LocalRepositoryManagerFactory> provideLocalRepositoryManagerFactories(
+            @Named( "simple" ) LocalRepositoryManagerFactory simple,
+            @Named( "enhanced" ) LocalRepositoryManagerFactory enhanced )
     {
         Set<LocalRepositoryManagerFactory> factories = new HashSet<>();
         factories.add( simple );
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/guice/package-info.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/guice/package-info.java
index 735ae5a..fd14dd7 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/guice/package-info.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/guice/package-info.java
@@ -18,7 +18,8 @@
  * under the License.
  */
 /**
- * The integration with the dependency injection framework <a href="https://github.com/google/guice" target="_blank">Google Guice</a>. 
+ * The integration with the dependency injection framework
+ * <a href="https://github.com/google/guice" target="_blank">Google Guice</a>.
  */
 package org.eclipse.aether.impl.guice;
 
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/ArtifactRequestBuilder.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/ArtifactRequestBuilder.java
index 85102f4..9e04e82 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/ArtifactRequestBuilder.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/ArtifactRequestBuilder.java
@@ -40,7 +40,7 @@ class ArtifactRequestBuilder
     ArtifactRequestBuilder( RequestTrace trace )
     {
         this.trace = trace;
-        this.requests = new ArrayList<ArtifactRequest>();
+        this.requests = new ArrayList<>();
     }
 
     public List<ArtifactRequest> getRequests()
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/CacheUtils.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/CacheUtils.java
deleted file mode 100644
index d7e8f01..0000000
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/CacheUtils.java
+++ /dev/null
@@ -1,141 +0,0 @@
-package org.eclipse.aether.internal.impl;
-
-/*
- * 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.util.Iterator;
-import java.util.List;
-
-import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.repository.ArtifactRepository;
-import org.eclipse.aether.repository.LocalRepository;
-import org.eclipse.aether.repository.RemoteRepository;
-import org.eclipse.aether.repository.RepositoryPolicy;
-import org.eclipse.aether.repository.WorkspaceReader;
-import org.eclipse.aether.repository.WorkspaceRepository;
-
-/**
- * @deprecated To be deleted without replacement.
- */
-@Deprecated
-public final class CacheUtils
-{
-
-    public static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
-    }
-
-    public static int hash( Object obj )
-    {
-        return obj != null ? obj.hashCode() : 0;
-    }
-
-    public static int repositoriesHashCode( List<RemoteRepository> repositories )
-    {
-        int result = 17;
-        for ( RemoteRepository repository : repositories )
-        {
-            result = 31 * result + repositoryHashCode( repository );
-        }
-        return result;
-    }
-
-    private static int repositoryHashCode( RemoteRepository repository )
-    {
-        int result = 17;
-        result = 31 * result + hash( repository.getUrl() );
-        return result;
-    }
-
-    private static boolean repositoryEquals( RemoteRepository r1, RemoteRepository r2 )
-    {
-        if ( r1 == r2 )
-        {
-            return true;
-        }
-
-        return eq( r1.getId(), r2.getId() ) && eq( r1.getUrl(), r2.getUrl() )
-            && policyEquals( r1.getPolicy( false ), r2.getPolicy( false ) )
-            && policyEquals( r1.getPolicy( true ), r2.getPolicy( true ) );
-    }
-
-    private static boolean policyEquals( RepositoryPolicy p1, RepositoryPolicy p2 )
-    {
-        if ( p1 == p2 )
-        {
-            return true;
-        }
-        // update policy doesn't affect contents
-        return p1.isEnabled() == p2.isEnabled() && eq( p1.getChecksumPolicy(), p2.getChecksumPolicy() );
-    }
-
-    public static boolean repositoriesEquals( List<RemoteRepository> r1, List<RemoteRepository> r2 )
-    {
-        if ( r1.size() != r2.size() )
-        {
-            return false;
-        }
-
-        for ( Iterator<RemoteRepository> it1 = r1.iterator(), it2 = r2.iterator(); it1.hasNext(); )
-        {
-            if ( !repositoryEquals( it1.next(), it2.next() ) )
-            {
-                return false;
-            }
-        }
-
-        return true;
-    }
-
-    public static WorkspaceRepository getWorkspace( RepositorySystemSession session )
-    {
-        WorkspaceReader reader = session.getWorkspaceReader();
-        return ( reader != null ) ? reader.getRepository() : null;
-    }
-
-    public static ArtifactRepository getRepository( RepositorySystemSession session,
-                                                    List<RemoteRepository> repositories, Class<?> repoClass,
-                                                    String repoId )
-    {
-        if ( repoClass != null )
-        {
-            if ( WorkspaceRepository.class.isAssignableFrom( repoClass ) )
-            {
-                return session.getWorkspaceReader().getRepository();
-            }
-            else if ( LocalRepository.class.isAssignableFrom( repoClass ) )
-            {
-                return session.getLocalRepository();
-            }
-            else
-            {
-                for ( RemoteRepository repository : repositories )
-                {
-                    if ( repoId.equals( repository.getId() ) )
-                    {
-                        return repository;
-                    }
-                }
-            }
-        }
-        return null;
-    }
-
-}
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java
index bed0930..4f63fc2 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java
@@ -109,6 +109,7 @@ public class DefaultArtifactResolver
         // enables default constructor
     }
 
+    @SuppressWarnings( "checkstyle:parameternumber" )
     @Inject
     DefaultArtifactResolver( FileProcessor fileProcessor, RepositoryEventDispatcher repositoryEventDispatcher,
                              VersionResolver versionResolver, UpdateCheckManager updateCheckManager,
@@ -156,7 +157,8 @@ public class DefaultArtifactResolver
 
     public DefaultArtifactResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
     {
-        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, "repository event dispatcher cannot be null" );
+        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher,
+                "repository event dispatcher cannot be null" );
         return this;
     }
 
@@ -172,15 +174,18 @@ public class DefaultArtifactResolver
         return this;
     }
 
-    public DefaultArtifactResolver setRepositoryConnectorProvider( RepositoryConnectorProvider repositoryConnectorProvider )
+    public DefaultArtifactResolver setRepositoryConnectorProvider(
+            RepositoryConnectorProvider repositoryConnectorProvider )
     {
-        this.repositoryConnectorProvider = requireNonNull( repositoryConnectorProvider, "repository connector provider cannot be null" );
+        this.repositoryConnectorProvider = requireNonNull( repositoryConnectorProvider,
+                "repository connector provider cannot be null" );
         return this;
     }
 
     public DefaultArtifactResolver setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
+        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager,
+                "remote repository provider cannot be null" );
         return this;
     }
 
@@ -206,11 +211,10 @@ public class DefaultArtifactResolver
                                                   Collection<? extends ArtifactRequest> requests )
         throws ArtifactResolutionException
     {
-        SyncContext syncContext = syncContextFactory.newInstance( session, false );
 
-        try
+        try ( SyncContext syncContext = syncContextFactory.newInstance( session, false ) )
         {
-            Collection<Artifact> artifacts = new ArrayList<Artifact>( requests.size() );
+            Collection<Artifact> artifacts = new ArrayList<>( requests.size() );
             for ( ArtifactRequest request : requests )
             {
                 if ( request.getArtifact().getProperty( ArtifactProperties.LOCAL_PATH, null ) != null )
@@ -224,23 +228,20 @@ public class DefaultArtifactResolver
 
             return resolve( session, requests );
         }
-        finally
-        {
-            syncContext.close();
-        }
     }
 
+    @SuppressWarnings( "checkstyle:methodlength" )
     private List<ArtifactResult> resolve( RepositorySystemSession session,
                                           Collection<? extends ArtifactRequest> requests )
         throws ArtifactResolutionException
     {
-        List<ArtifactResult> results = new ArrayList<ArtifactResult>( requests.size() );
+        List<ArtifactResult> results = new ArrayList<>( requests.size() );
         boolean failures = false;
 
         LocalRepositoryManager lrm = session.getLocalRepositoryManager();
         WorkspaceReader workspace = session.getWorkspaceReader();
 
-        List<ResolutionGroup> groups = new ArrayList<ResolutionGroup>();
+        List<ResolutionGroup> groups = new ArrayList<>();
 
         for ( ArtifactRequest request : requests )
         {
@@ -492,16 +493,11 @@ public class DefaultArtifactResolver
 
         try
         {
-            RepositoryConnector connector =
-                repositoryConnectorProvider.newRepositoryConnector( session, group.repository );
-            try
+            try ( RepositoryConnector connector =
+                          repositoryConnectorProvider.newRepositoryConnector( session, group.repository ) )
             {
                 connector.get( downloads, null );
             }
-            finally
-            {
-                connector.close();
-            }
         }
         catch ( NoRepositoryConnectorException e )
         {
@@ -517,7 +513,7 @@ public class DefaultArtifactResolver
     private List<ArtifactDownload> gatherDownloads( RepositorySystemSession session, ResolutionGroup group )
     {
         LocalRepositoryManager lrm = session.getLocalRepositoryManager();
-        List<ArtifactDownload> downloads = new ArrayList<ArtifactDownload>();
+        List<ArtifactDownload> downloads = new ArrayList<>();
 
         for ( ResolutionItem item : group.items )
         {
@@ -553,8 +549,7 @@ public class DefaultArtifactResolver
             int errorPolicy = Utils.getPolicy( session, artifact, group.repository );
             if ( ( errorPolicy & ResolutionErrorPolicy.CACHE_ALL ) != 0 )
             {
-                UpdateCheck<Artifact, ArtifactTransferException> check =
-                    new UpdateCheck<Artifact, ArtifactTransferException>();
+                UpdateCheck<Artifact, ArtifactTransferException> check = new UpdateCheck<>();
                 check.setItem( artifact );
                 check.setFile( download.getFile() );
                 check.setFileValid( false );
@@ -600,8 +595,8 @@ public class DefaultArtifactResolver
                     artifact = artifact.setFile( getFile( session, artifact, download.getFile() ) );
                     item.result.setArtifact( artifact );
 
-                    lrm.add( session,
-                             new LocalArtifactRegistration( artifact, group.repository, download.getSupportedContexts() ) );
+                    lrm.add( session, new LocalArtifactRegistration(
+                            artifact, group.repository, download.getSupportedContexts() ) );
                 }
                 catch ( ArtifactTransferException e )
                 {
@@ -689,7 +684,7 @@ public class DefaultArtifactResolver
 
         final RemoteRepository repository;
 
-        final List<ResolutionItem> items = new ArrayList<ResolutionItem>();
+        final List<ResolutionItem> items = new ArrayList<>();
 
         ResolutionGroup( RemoteRepository repository )
         {
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java
index 2f96646..9385e9a 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java
@@ -19,7 +19,6 @@ package org.eclipse.aether.internal.impl;
  * under the License.
  */
 
-import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.eclipse.aether.RepositorySystemSession;
@@ -27,8 +26,6 @@ import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.repository.RepositoryPolicy;
 import org.eclipse.aether.spi.connector.checksum.ChecksumPolicy;
 import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider;
-import org.eclipse.aether.spi.locator.Service;
-import org.eclipse.aether.spi.locator.ServiceLocator;
 import org.eclipse.aether.transfer.TransferResource;
 
 /**
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java
index 31edb44..78c83ff 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java
@@ -90,7 +90,7 @@ public class DefaultDeployer
 
     private UpdateCheckManager updateCheckManager;
 
-    private Collection<MetadataGeneratorFactory> metadataFactories = new ArrayList<MetadataGeneratorFactory>();
+    private Collection<MetadataGeneratorFactory> metadataFactories = new ArrayList<>();
 
     private SyncContextFactory syncContextFactory;
 
@@ -101,6 +101,7 @@ public class DefaultDeployer
         // enables default constructor
     }
 
+    @SuppressWarnings( "checkstyle:parameternumber" )
     @Inject
     DefaultDeployer( FileProcessor fileProcessor, RepositoryEventDispatcher repositoryEventDispatcher,
                      RepositoryConnectorProvider repositoryConnectorProvider,
@@ -138,19 +139,22 @@ public class DefaultDeployer
 
     public DefaultDeployer setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
     {
-        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, "repository event dispatcher cannot be null" );
+        this.repositoryEventDispatcher = requireNonNull(
+                repositoryEventDispatcher, "repository event dispatcher cannot be null" );
         return this;
     }
 
     public DefaultDeployer setRepositoryConnectorProvider( RepositoryConnectorProvider repositoryConnectorProvider )
     {
-        this.repositoryConnectorProvider = requireNonNull( repositoryConnectorProvider, "repository connector provider cannot be null" );
+        this.repositoryConnectorProvider = requireNonNull(
+                repositoryConnectorProvider, "repository connector provider cannot be null" );
         return this;
     }
 
     public DefaultDeployer setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
+        this.remoteRepositoryManager = requireNonNull(
+                remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
@@ -170,7 +174,7 @@ public class DefaultDeployer
     {
         if ( metadataFactories == null )
         {
-            this.metadataFactories = new ArrayList<MetadataGeneratorFactory>();
+            this.metadataFactories = new ArrayList<>();
         }
         else
         {
@@ -204,16 +208,10 @@ public class DefaultDeployer
                 + request.getRepository().getUrl() + ") is in offline mode", e );
         }
 
-        SyncContext syncContext = syncContextFactory.newInstance( session, false );
-
-        try
+        try ( SyncContext syncContext = syncContextFactory.newInstance( session, false ) )
         {
             return deploy( syncContext, session, request );
         }
-        finally
-        {
-            syncContext.close();
-        }
     }
 
     private DeployResult deploy( SyncContext syncContext, RepositorySystemSession session, DeployRequest request )
@@ -241,13 +239,13 @@ public class DefaultDeployer
 
             FileTransformerManager fileTransformerManager = session.getFileTransformerManager();
 
-            List<ArtifactUpload> artifactUploads = new ArrayList<ArtifactUpload>();
-            List<MetadataUpload> metadataUploads = new ArrayList<MetadataUpload>();
-            IdentityHashMap<Metadata, Object> processedMetadata = new IdentityHashMap<Metadata, Object>();
+            List<ArtifactUpload> artifactUploads = new ArrayList<>();
+            List<MetadataUpload> metadataUploads = new ArrayList<>();
+            IdentityHashMap<Metadata, Object> processedMetadata = new IdentityHashMap<>();
 
             EventCatapult catapult = new EventCatapult( session, trace, repository, repositoryEventDispatcher );
 
-            List<Artifact> artifacts = new ArrayList<Artifact>( request.getArtifacts() );
+            List<Artifact> artifacts = new ArrayList<>( request.getArtifacts() );
 
             List<Metadata> metadatas = Utils.prepareMetadata( generators, artifacts );
 
@@ -270,14 +268,16 @@ public class DefaultDeployer
 
                 artifacts.set( i, artifact );
 
-                Collection<FileTransformer> fileTransformers = fileTransformerManager.getTransformersForArtifact( artifact );
+                Collection<FileTransformer> fileTransformers =
+                        fileTransformerManager.getTransformersForArtifact( artifact );
                 if ( !fileTransformers.isEmpty() )
                 {
                     for ( FileTransformer fileTransformer : fileTransformers )
                     {
                         Artifact targetArtifact = fileTransformer.transformArtifact( artifact );
 
-                        ArtifactUpload upload = new ArtifactUpload( targetArtifact, artifact.getFile(), fileTransformer );
+                        ArtifactUpload upload = new ArtifactUpload( targetArtifact, artifact.getFile(),
+                                fileTransformer );
                         upload.setTrace( trace );
                         upload.setListener( new ArtifactUploadListener( catapult, upload ) );
                         artifactUploads.add( upload );
@@ -349,7 +349,7 @@ public class DefaultDeployer
         PrioritizedComponents<MetadataGeneratorFactory> factories =
             Utils.sortMetadataGeneratorFactories( session, this.metadataFactories );
 
-        List<MetadataGenerator> generators = new ArrayList<MetadataGenerator>();
+        List<MetadataGenerator> generators = new ArrayList<>();
 
         for ( PrioritizedComponent<MetadataGeneratorFactory> factory : factories.getEnabled() )
         {
@@ -377,19 +377,17 @@ public class DefaultDeployer
         {
             if ( !( (MergeableMetadata) metadata ).isMerged() )
             {
-                {
-                    RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_RESOLVING );
-                    event.setTrace( catapult.getTrace() );
-                    event.setMetadata( metadata );
-                    event.setRepository( repository );
-                    repositoryEventDispatcher.dispatch( event.build() );
-
-                    event = new RepositoryEvent.Builder( session, EventType.METADATA_DOWNLOADING );
-                    event.setTrace( catapult.getTrace() );
-                    event.setMetadata( metadata );
-                    event.setRepository( repository );
-                    repositoryEventDispatcher.dispatch( event.build() );
-                }
+                RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_RESOLVING );
+                event.setTrace( catapult.getTrace() );
+                event.setMetadata( metadata );
+                event.setRepository( repository );
+                repositoryEventDispatcher.dispatch( event.build() );
+
+                event = new RepositoryEvent.Builder( session, EventType.METADATA_DOWNLOADING );
+                event.setTrace( catapult.getTrace() );
+                event.setMetadata( metadata );
+                event.setRepository( repository );
+                repositoryEventDispatcher.dispatch( event.build() );
 
                 RepositoryPolicy policy = getPolicy( session, repository, metadata.getNature() );
                 MetadataDownload download = new MetadataDownload();
@@ -407,24 +405,21 @@ public class DefaultDeployer
                     dstFile.delete();
                 }
 
-                {
-                    RepositoryEvent.Builder event =
-                        new RepositoryEvent.Builder( session, EventType.METADATA_DOWNLOADED );
-                    event.setTrace( catapult.getTrace() );
-                    event.setMetadata( metadata );
-                    event.setRepository( repository );
-                    event.setException( error );
-                    event.setFile( dstFile );
-                    repositoryEventDispatcher.dispatch( event.build() );
-
-                    event = new RepositoryEvent.Builder( session, EventType.METADATA_RESOLVED );
-                    event.setTrace( catapult.getTrace() );
-                    event.setMetadata( metadata );
-                    event.setRepository( repository );
-                    event.setException( error );
-                    event.setFile( dstFile );
-                    repositoryEventDispatcher.dispatch( event.build() );
-                }
+                event = new RepositoryEvent.Builder( session, EventType.METADATA_DOWNLOADED );
+                event.setTrace( catapult.getTrace() );
+                event.setMetadata( metadata );
+                event.setRepository( repository );
+                event.setException( error );
+                event.setFile( dstFile );
+                repositoryEventDispatcher.dispatch( event.build() );
+
+                event = new RepositoryEvent.Builder( session, EventType.METADATA_RESOLVED );
+                event.setTrace( catapult.getTrace() );
+                event.setMetadata( metadata );
+                event.setRepository( repository );
+                event.setException( error );
+                event.setFile( dstFile );
+                repositoryEventDispatcher.dispatch( event.build() );
 
                 if ( error != null && !( error instanceof MetadataNotFoundException ) )
                 {
@@ -458,7 +453,7 @@ public class DefaultDeployer
             }
         }
 
-        UpdateCheck<Metadata, MetadataTransferException> check = new UpdateCheck<Metadata, MetadataTransferException>();
+        UpdateCheck<Metadata, MetadataTransferException> check = new UpdateCheck<>();
         check.setItem( metadata );
         check.setFile( dstFile );
         check.setRepository( repository );
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java
index a517d74..38cb2a0 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java
@@ -71,7 +71,7 @@ public class DefaultInstaller
 
     private RepositoryEventDispatcher repositoryEventDispatcher;
 
-    private Collection<MetadataGeneratorFactory> metadataFactories = new ArrayList<MetadataGeneratorFactory>();
+    private Collection<MetadataGeneratorFactory> metadataFactories = new ArrayList<>();
 
     private SyncContextFactory syncContextFactory;
 
@@ -106,7 +106,8 @@ public class DefaultInstaller
 
     public DefaultInstaller setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
     {
-        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, "repository event dispatcher cannot be null" );
+        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher,
+                "repository event dispatcher cannot be null" );
         return this;
     }
 
@@ -120,7 +121,7 @@ public class DefaultInstaller
     {
         if ( metadataFactories == null )
         {
-            this.metadataFactories = new ArrayList<MetadataGeneratorFactory>();
+            this.metadataFactories = new ArrayList<>();
         }
         else
         {
@@ -138,16 +139,11 @@ public class DefaultInstaller
     public InstallResult install( RepositorySystemSession session, InstallRequest request )
         throws InstallationException
     {
-        SyncContext syncContext = syncContextFactory.newInstance( session, false );
 
-        try
+        try ( SyncContext syncContext = syncContextFactory.newInstance( session, false ) )
         {
             return install( syncContext, session, request );
         }
-        finally
-        {
-            syncContext.close();
-        }
     }
 
     private InstallResult install( SyncContext syncContext, RepositorySystemSession session, InstallRequest request )
@@ -159,9 +155,9 @@ public class DefaultInstaller
 
         List<? extends MetadataGenerator> generators = getMetadataGenerators( session, request );
 
-        List<Artifact> artifacts = new ArrayList<Artifact>( request.getArtifacts() );
+        List<Artifact> artifacts = new ArrayList<>( request.getArtifacts() );
 
-        IdentityHashMap<Metadata, Object> processedMetadata = new IdentityHashMap<Metadata, Object>();
+        IdentityHashMap<Metadata, Object> processedMetadata = new IdentityHashMap<>();
 
         List<Metadata> metadatas = Utils.prepareMetadata( generators, artifacts );
 
@@ -218,7 +214,7 @@ public class DefaultInstaller
         PrioritizedComponents<MetadataGeneratorFactory> factories =
             Utils.sortMetadataGeneratorFactories( session, this.metadataFactories );
 
-        List<MetadataGenerator> generators = new ArrayList<MetadataGenerator>();
+        List<MetadataGenerator> generators = new ArrayList<>();
 
         for ( PrioritizedComponent<MetadataGeneratorFactory> factory : factories.getEnabled() )
         {
@@ -239,7 +235,8 @@ public class DefaultInstaller
 
         File srcFile = artifact.getFile();
 
-        Collection<FileTransformer> fileTransformers = session.getFileTransformerManager().getTransformersForArtifact( artifact );
+        Collection<FileTransformer> fileTransformers = session.getFileTransformerManager()
+                .getTransformersForArtifact( artifact );
         if ( fileTransformers.isEmpty() )
         {
             install( session, trace, artifact, lrm, srcFile, null );
@@ -306,7 +303,8 @@ public class DefaultInstaller
         catch ( Exception e )
         {
             exception = e;
-            throw new InstallationException( "Failed to install artifact " + targetArtifact + ": " + e.getMessage(), e );
+            throw new InstallationException( "Failed to install artifact " + targetArtifact + ": " + e.getMessage(),
+                    e );
         }
         finally
         {
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java
index 6c80e4b..77e968e 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java
@@ -48,7 +48,7 @@ public class DefaultLocalRepositoryProvider
 
     private static final Logger LOGGER = LoggerFactory.getLogger( DefaultLocalRepositoryProvider.class );
 
-    private Collection<LocalRepositoryManagerFactory> managerFactories = new ArrayList<LocalRepositoryManagerFactory>();
+    private Collection<LocalRepositoryManagerFactory> managerFactories = new ArrayList<>();
 
     public DefaultLocalRepositoryProvider()
     {
@@ -72,11 +72,12 @@ public class DefaultLocalRepositoryProvider
         return this;
     }
 
-    public DefaultLocalRepositoryProvider setLocalRepositoryManagerFactories( Collection<LocalRepositoryManagerFactory> factories )
+    public DefaultLocalRepositoryProvider setLocalRepositoryManagerFactories(
+            Collection<LocalRepositoryManagerFactory> factories )
     {
         if ( factories == null )
         {
-            managerFactories = new ArrayList<LocalRepositoryManagerFactory>( 2 );
+            managerFactories = new ArrayList<>( 2 );
         }
         else
         {
@@ -85,17 +86,17 @@ public class DefaultLocalRepositoryProvider
         return this;
     }
 
-    public LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession session, LocalRepository repository )
+    public LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession session,
+                                                             LocalRepository repository )
         throws NoLocalRepositoryManagerException
     {
-        PrioritizedComponents<LocalRepositoryManagerFactory> factories =
-            new PrioritizedComponents<LocalRepositoryManagerFactory>( session );
+        PrioritizedComponents<LocalRepositoryManagerFactory> factories = new PrioritizedComponents<>( session );
         for ( LocalRepositoryManagerFactory factory : this.managerFactories )
         {
             factories.add( factory, factory.getPriority() );
         }
 
-        List<NoLocalRepositoryManagerException> errors = new ArrayList<NoLocalRepositoryManagerException>();
+        List<NoLocalRepositoryManagerException> errors = new ArrayList<>();
         for ( PrioritizedComponent<LocalRepositoryManagerFactory> factory : factories.getEnabled() )
         {
             try
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java
index 244fc5a..4fe065a 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java
@@ -126,7 +126,8 @@ public class DefaultMetadataResolver
 
     public DefaultMetadataResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
     {
-        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, "repository event dispatcher cannot be null" );
+        this.repositoryEventDispatcher = requireNonNull(
+                repositoryEventDispatcher, "repository event dispatcher cannot be null" );
         return this;
     }
 
@@ -136,15 +137,18 @@ public class DefaultMetadataResolver
         return this;
     }
 
-    public DefaultMetadataResolver setRepositoryConnectorProvider( RepositoryConnectorProvider repositoryConnectorProvider )
+    public DefaultMetadataResolver setRepositoryConnectorProvider(
+            RepositoryConnectorProvider repositoryConnectorProvider )
     {
-        this.repositoryConnectorProvider = requireNonNull( repositoryConnectorProvider, "repository connector provider cannot be null" );
+        this.repositoryConnectorProvider = requireNonNull(
+                repositoryConnectorProvider, "repository connector provider cannot be null" );
         return this;
     }
 
     public DefaultMetadataResolver setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
+        this.remoteRepositoryManager = requireNonNull(
+                remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
@@ -163,11 +167,10 @@ public class DefaultMetadataResolver
     public List<MetadataResult> resolveMetadata( RepositorySystemSession session,
                                                  Collection<? extends MetadataRequest> requests )
     {
-        SyncContext syncContext = syncContextFactory.newInstance( session, false );
 
-        try
+        try ( SyncContext syncContext = syncContextFactory.newInstance( session, false ) )
         {
-            Collection<Metadata> metadata = new ArrayList<Metadata>( requests.size() );
+            Collection<Metadata> metadata = new ArrayList<>( requests.size() );
             for ( MetadataRequest request : requests )
             {
                 metadata.add( request.getMetadata() );
@@ -177,20 +180,17 @@ public class DefaultMetadataResolver
 
             return resolve( session, requests );
         }
-        finally
-        {
-            syncContext.close();
-        }
     }
 
+    @SuppressWarnings( "checkstyle:methodlength" )
     private List<MetadataResult> resolve( RepositorySystemSession session,
                                           Collection<? extends MetadataRequest> requests )
     {
-        List<MetadataResult> results = new ArrayList<MetadataResult>( requests.size() );
+        List<MetadataResult> results = new ArrayList<>( requests.size() );
 
-        List<ResolveTask> tasks = new ArrayList<ResolveTask>( requests.size() );
+        List<ResolveTask> tasks = new ArrayList<>( requests.size() );
 
-        Map<File, Long> localLastUpdates = new HashMap<File, Long>();
+        Map<File, Long> localLastUpdates = new HashMap<>();
 
         for ( MetadataRequest request : requests )
         {
@@ -275,22 +275,19 @@ public class DefaultMetadataResolver
                 }
             }
 
-            List<UpdateCheck<Metadata, MetadataTransferException>> checks =
-                new ArrayList<UpdateCheck<Metadata, MetadataTransferException>>();
+            List<UpdateCheck<Metadata, MetadataTransferException>> checks = new ArrayList<>();
             Exception exception = null;
             for ( RemoteRepository repo : repositories )
             {
-                UpdateCheck<Metadata, MetadataTransferException> check =
-                    new UpdateCheck<Metadata, MetadataTransferException>();
+                UpdateCheck<Metadata, MetadataTransferException> check = new UpdateCheck<>();
                 check.setLocalLastUpdated( ( localLastUpdate != null ) ? localLastUpdate : 0 );
                 check.setItem( metadata );
 
                 // use 'main' installation file for the check (-> use requested repository)
-                File checkFile =
-                    new File(
-                              session.getLocalRepository().getBasedir(),
-                              session.getLocalRepositoryManager().getPathForRemoteMetadata( metadata, repository,
-                                                                                            request.getRequestContext() ) );
+                File checkFile = new File(
+                        session.getLocalRepository().getBasedir(),
+                        session.getLocalRepositoryManager()
+                                .getPathForRemoteMetadata( metadata, repository, request.getRequestContext() ) );
                 check.setFile( checkFile );
                 check.setRepository( repository );
                 check.setAuthoritativeRepository( repo );
@@ -319,12 +316,10 @@ public class DefaultMetadataResolver
                 RepositoryPolicy policy = getPolicy( session, repository, metadata.getNature() );
 
                 // install path may be different from lookup path
-                File installFile =
-                    new File(
-                              session.getLocalRepository().getBasedir(),
-                              session.getLocalRepositoryManager().getPathForRemoteMetadata( metadata,
-                                                                                            request.getRepository(),
-                                                                                            request.getRequestContext() ) );
+                File installFile = new File(
+                        session.getLocalRepository().getBasedir(),
+                        session.getLocalRepositoryManager().getPathForRemoteMetadata(
+                                metadata, request.getRepository(), request.getRequestContext() ) );
 
                 ResolveTask task =
                     new ResolveTask( session, trace, result, installFile, checks, policy.getChecksumPolicy() );
@@ -370,8 +365,8 @@ public class DefaultMetadataResolver
             {
                 Metadata metadata = task.request.getMetadata();
                 // re-lookup metadata for resolve
-                LocalMetadataRequest localRequest =
-                    new LocalMetadataRequest( metadata, task.request.getRepository(), task.request.getRequestContext() );
+                LocalMetadataRequest localRequest = new LocalMetadataRequest(
+                        metadata, task.request.getRepository(), task.request.getRequestContext() );
                 File metadataFile = session.getLocalRepositoryManager().find( session, localRequest ).getFile();
                 if ( metadataFile != null )
                 {
@@ -394,13 +389,12 @@ public class DefaultMetadataResolver
     {
         LocalRepositoryManager lrm = session.getLocalRepositoryManager();
         LocalMetadataResult localResult = lrm.find( session, new LocalMetadataRequest( metadata, null, null ) );
-        File localFile = localResult.getFile();
-        return localFile;
+        return localResult.getFile();
     }
 
     private List<RemoteRepository> getEnabledSourceRepositories( RemoteRepository repository, Metadata.Nature nature )
     {
-        List<RemoteRepository> repositories = new ArrayList<RemoteRepository>();
+        List<RemoteRepository> repositories = new ArrayList<>();
 
         if ( repository.isRepositoryManager() )
         {
@@ -558,7 +552,7 @@ public class DefaultMetadataResolver
 
             try
             {
-                List<RemoteRepository> repositories = new ArrayList<RemoteRepository>();
+                List<RemoteRepository> repositories = new ArrayList<>();
                 for ( UpdateCheck<Metadata, MetadataTransferException> check : checks )
                 {
                     repositories.add( check.getAuthoritativeRepository() );
@@ -573,16 +567,11 @@ public class DefaultMetadataResolver
                 download.setListener( SafeTransferListener.wrap( session ) );
                 download.setTrace( trace );
 
-                RepositoryConnector connector =
-                    repositoryConnectorProvider.newRepositoryConnector( session, requestRepository );
-                try
+                try ( RepositoryConnector connector =
+                              repositoryConnectorProvider.newRepositoryConnector( session, requestRepository ) )
                 {
                     connector.get( null, Arrays.asList( download ) );
                 }
-                finally
-                {
-                    connector.close();
-                }
 
                 exception = download.getException();
 
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java
index 2c17993..5156896 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java
@@ -119,7 +119,8 @@ public class DefaultRemoteRepositoryManager
 
     public DefaultRemoteRepositoryManager setChecksumPolicyProvider( ChecksumPolicyProvider checksumPolicyProvider )
     {
-        this.checksumPolicyProvider = requireNonNull( checksumPolicyProvider, "checksum policy provider cannot be null" );
+        this.checksumPolicyProvider = requireNonNull(
+                checksumPolicyProvider, "checksum policy provider cannot be null" );
         return this;
     }
 
@@ -137,7 +138,7 @@ public class DefaultRemoteRepositoryManager
         AuthenticationSelector authSelector = session.getAuthenticationSelector();
         ProxySelector proxySelector = session.getProxySelector();
 
-        List<RemoteRepository> result = new ArrayList<RemoteRepository>( dominantRepositories );
+        List<RemoteRepository> result = new ArrayList<>( dominantRepositories );
 
         next: for ( RemoteRepository recessiveRepository : recessiveRepositories )
         {
@@ -274,8 +275,7 @@ public class DefaultRemoteRepositoryManager
     {
         RepositoryPolicy policy1 = releases ? repository.getPolicy( false ) : null;
         RepositoryPolicy policy2 = snapshots ? repository.getPolicy( true ) : null;
-        RepositoryPolicy policy = merge( session, policy1, policy2, true );
-        return policy;
+        return merge( session, policy1, policy2, true );
     }
 
     private RepositoryPolicy merge( RepositorySystemSession session, RepositoryPolicy policy1,
@@ -330,6 +330,7 @@ public class DefaultRemoteRepositoryManager
         else
         {
             String checksums = session.getChecksumPolicy();
+            //noinspection StatementWithEmptyBody
             if ( globalPolicy && !StringUtils.isEmpty( checksums ) )
             {
                 // use global override
@@ -342,6 +343,7 @@ public class DefaultRemoteRepositoryManager
             }
 
             String updates = session.getUpdatePolicy();
+            //noinspection StatementWithEmptyBody
             if ( globalPolicy && !StringUtils.isEmpty( updates ) )
             {
                 // use global override
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java
index 3a828bc..6478d8a 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java
@@ -50,7 +50,7 @@ public class DefaultRepositoryConnectorProvider
 
     private static final Logger LOGGER = LoggerFactory.getLogger( DefaultRepositoryConnectorProvider.class );
 
-    private Collection<RepositoryConnectorFactory> connectorFactories = new ArrayList<RepositoryConnectorFactory>();
+    private Collection<RepositoryConnectorFactory> connectorFactories = new ArrayList<>();
 
     public DefaultRepositoryConnectorProvider()
     {
@@ -74,11 +74,12 @@ public class DefaultRepositoryConnectorProvider
         return this;
     }
 
-    public DefaultRepositoryConnectorProvider setRepositoryConnectorFactories( Collection<RepositoryConnectorFactory> factories )
+    public DefaultRepositoryConnectorProvider setRepositoryConnectorFactories(
+            Collection<RepositoryConnectorFactory> factories )
     {
         if ( factories == null )
         {
-            this.connectorFactories = new ArrayList<RepositoryConnectorFactory>();
+            this.connectorFactories = new ArrayList<>();
         }
         else
         {
@@ -92,14 +93,13 @@ public class DefaultRepositoryConnectorProvider
     {
         requireNonNull( repository, "remote repository cannot be null" );
 
-        PrioritizedComponents<RepositoryConnectorFactory> factories =
-            new PrioritizedComponents<RepositoryConnectorFactory>( session );
+        PrioritizedComponents<RepositoryConnectorFactory> factories = new PrioritizedComponents<>( session );
         for ( RepositoryConnectorFactory factory : this.connectorFactories )
         {
             factories.add( factory, factory.getPriority() );
         }
 
-        List<NoRepositoryConnectorException> errors = new ArrayList<NoRepositoryConnectorException>();
+        List<NoRepositoryConnectorException> errors = new ArrayList<>();
         for ( PrioritizedComponent<RepositoryConnectorFactory> factory : factories.getEnabled() )
         {
             try
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java
index 4b71f43..33210e7 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java
@@ -44,7 +44,7 @@ public class DefaultRepositoryEventDispatcher
 
     private static final Logger LOGGER = LoggerFactory.getLogger( DefaultRepositoryEventDispatcher.class );
 
-    private Collection<RepositoryListener> listeners = new ArrayList<RepositoryListener>();
+    private Collection<RepositoryListener> listeners = new ArrayList<>();
 
     public DefaultRepositoryEventDispatcher()
     {
@@ -67,7 +67,7 @@ public class DefaultRepositoryEventDispatcher
     {
         if ( listeners == null )
         {
-            this.listeners = new ArrayList<RepositoryListener>();
+            this.listeners = new ArrayList<>();
         }
         else
         {
@@ -166,11 +166,7 @@ public class DefaultRepositoryEventDispatcher
                     throw new IllegalStateException( "unknown repository event type " + event.getType() );
             }
         }
-        catch ( Exception e )
-        {
-            logError( e, listener );
-        }
-        catch ( LinkageError e )
+        catch ( Exception | LinkageError e )
         {
             logError( e, listener );
         }
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java
index 56bf1ec..dfd3801 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java
@@ -48,7 +48,7 @@ public final class DefaultRepositoryLayoutProvider
 
     private static final Logger LOGGER = LoggerFactory.getLogger( DefaultRepositoryLayoutProvider.class );
 
-    private Collection<RepositoryLayoutFactory> factories = new ArrayList<RepositoryLayoutFactory>();
+    private Collection<RepositoryLayoutFactory> factories = new ArrayList<>();
 
     public DefaultRepositoryLayoutProvider()
     {
@@ -76,7 +76,7 @@ public final class DefaultRepositoryLayoutProvider
     {
         if ( factories == null )
         {
-            this.factories = new ArrayList<RepositoryLayoutFactory>();
+            this.factories = new ArrayList<>();
         }
         else
         {
@@ -90,20 +90,18 @@ public final class DefaultRepositoryLayoutProvider
     {
         requireNonNull( repository, "remote repository cannot be null" );
 
-        PrioritizedComponents<RepositoryLayoutFactory> factories =
-            new PrioritizedComponents<RepositoryLayoutFactory>( session );
+        PrioritizedComponents<RepositoryLayoutFactory> factories = new PrioritizedComponents<>( session );
         for ( RepositoryLayoutFactory factory : this.factories )
         {
             factories.add( factory, factory.getPriority() );
         }
 
-        List<NoRepositoryLayoutException> errors = new ArrayList<NoRepositoryLayoutException>();
+        List<NoRepositoryLayoutException> errors = new ArrayList<>();
         for ( PrioritizedComponent<RepositoryLayoutFactory> factory : factories.getEnabled() )
         {
             try
             {
-                RepositoryLayout layout = factory.getComponent().newInstance( session, repository );
-                return layout;
+                return factory.getComponent().newInstance( session, repository );
             }
             catch ( NoRepositoryLayoutException e )
             {
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java
index e5636e8..891e5dc 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java
@@ -116,6 +116,7 @@ public class DefaultRepositorySystem
         // enables default constructor
     }
 
+    @SuppressWarnings( "checkstyle:parameternumber" )
     @Inject
     DefaultRepositorySystem( VersionResolver versionResolver, VersionRangeResolver versionRangeResolver,
                              ArtifactResolver artifactResolver, MetadataResolver metadataResolver,
@@ -170,7 +171,8 @@ public class DefaultRepositorySystem
 
     public DefaultRepositorySystem setVersionRangeResolver( VersionRangeResolver versionRangeResolver )
     {
-        this.versionRangeResolver = requireNonNull( versionRangeResolver, "version range resolver cannot be null" );
+        this.versionRangeResolver = requireNonNull(
+                versionRangeResolver, "version range resolver cannot be null" );
         return this;
     }
 
@@ -188,7 +190,8 @@ public class DefaultRepositorySystem
 
     public DefaultRepositorySystem setArtifactDescriptorReader( ArtifactDescriptorReader artifactDescriptorReader )
     {
-        this.artifactDescriptorReader = requireNonNull( artifactDescriptorReader, "artifact descriptor reader cannot be null" );
+        this.artifactDescriptorReader = requireNonNull(
+                artifactDescriptorReader, "artifact descriptor reader cannot be null" );
         return this;
     }
 
@@ -212,7 +215,8 @@ public class DefaultRepositorySystem
 
     public DefaultRepositorySystem setLocalRepositoryProvider( LocalRepositoryProvider localRepositoryProvider )
     {
-        this.localRepositoryProvider = requireNonNull( localRepositoryProvider, "local repository provider cannot be null" );
+        this.localRepositoryProvider = requireNonNull(
+                localRepositoryProvider, "local repository provider cannot be null" );
         return this;
     }
 
@@ -224,7 +228,8 @@ public class DefaultRepositorySystem
 
     public DefaultRepositorySystem setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
+        this.remoteRepositoryManager = requireNonNull(
+                remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java
index e7a1cb8..c5a175d 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java
@@ -48,7 +48,7 @@ public final class DefaultTransporterProvider
 
     private static final Logger LOGGER = LoggerFactory.getLogger( DefaultTransporterProvider.class );
 
-    private Collection<TransporterFactory> factories = new ArrayList<TransporterFactory>();
+    private Collection<TransporterFactory> factories = new ArrayList<>();
 
     public DefaultTransporterProvider()
     {
@@ -76,7 +76,7 @@ public final class DefaultTransporterProvider
     {
         if ( factories == null )
         {
-            this.factories = new ArrayList<TransporterFactory>();
+            this.factories = new ArrayList<>();
         }
         else
         {
@@ -90,13 +90,13 @@ public final class DefaultTransporterProvider
     {
         requireNonNull( repository, "remote repository cannot be null" );
 
-        PrioritizedComponents<TransporterFactory> factories = new PrioritizedComponents<TransporterFactory>( session );
+        PrioritizedComponents<TransporterFactory> factories = new PrioritizedComponents<>( session );
         for ( TransporterFactory factory : this.factories )
         {
             factories.add( factory, factory.getPriority() );
         }
 
-        List<NoTransporterException> errors = new ArrayList<NoTransporterException>();
+        List<NoTransporterException> errors = new ArrayList<>();
         for ( PrioritizedComponent<TransporterFactory> factory : factories.getEnabled() )
         {
             try
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
index 4c843be..b787ebd 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
@@ -116,7 +116,8 @@ public class DefaultUpdateCheckManager
         Artifact artifact = check.getItem();
         RemoteRepository repository = check.getRepository();
 
-        File artifactFile = requireNonNull( check.getFile(), String.format( "The artifact '%s' has no file attached", artifact ) );
+        File artifactFile = requireNonNull( check.getFile(), String.format( "The artifact '%s' has no file attached",
+                artifact ) );
 
         boolean fileExists = check.isFileValid() && artifactFile.exists();
 
@@ -242,7 +243,8 @@ public class DefaultUpdateCheckManager
         Metadata metadata = check.getItem();
         RemoteRepository repository = check.getRepository();
 
-        File metadataFile = requireNonNull( check.getFile(), String.format( "The metadata '%s' has no file attached", metadata ) );
+        File metadataFile = requireNonNull( check.getFile(), String.format( "The metadata '%s' has no file attached",
+                metadata ) );
 
         boolean fileExists = check.isFileValid() && metadataFile.exists();
 
@@ -372,7 +374,7 @@ public class DefaultUpdateCheckManager
         Set<String> mirroredUrls = Collections.emptySet();
         if ( repository.isRepositoryManager() )
         {
-            mirroredUrls = new TreeSet<String>();
+            mirroredUrls = new TreeSet<>();
             for ( RemoteRepository mirroredRepository : repository.getMirroredRepositories() )
             {
                 mirroredUrls.add( normalizeRepoUrl( mirroredRepository.getUrl() ) );
@@ -489,7 +491,7 @@ public class DefaultUpdateCheckManager
         while ( !( checkedFiles instanceof Map ) )
         {
             Object old = checkedFiles;
-            checkedFiles = new ConcurrentHashMap<Object, Object>( 256 );
+            checkedFiles = new ConcurrentHashMap<>( 256 );
             if ( data.set( SESSION_CHECKS, old, checkedFiles ) )
             {
                 break;
@@ -557,7 +559,7 @@ public class DefaultUpdateCheckManager
 
     private Properties write( File touchFile, String dataKey, String transferKey, Exception error )
     {
-        Map<String, String> updates = new HashMap<String, String>();
+        Map<String, String> updates = new HashMap<>();
 
         String timestamp = Long.toString( System.currentTimeMillis() );
 
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java
index 51981cc..3ef336c 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java
@@ -48,6 +48,7 @@ public class DefaultUpdatePolicyAnalyzer
         return ordinalOfUpdatePolicy( policy1 ) < ordinalOfUpdatePolicy( policy2 ) ? policy1 : policy2;
     }
 
+    @SuppressWarnings( { "checkstyle:magicnumber" } )
     private int ordinalOfUpdatePolicy( String policy )
     {
         if ( RepositoryPolicy.UPDATE_POLICY_DAILY.equals( policy ) )
@@ -116,6 +117,7 @@ public class DefaultUpdatePolicyAnalyzer
         return checkForUpdates;
     }
 
+    @SuppressWarnings( { "checkstyle:magicnumber" } )
     private int getMinutes( String policy )
     {
         int minutes;
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java
index 5ab8c40..9ba0890 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java
@@ -142,7 +142,7 @@ class EnhancedLocalRepositoryManager
 
     private Collection<String> getRepositoryKeys( RemoteRepository repository, Collection<String> contexts )
     {
-        Collection<String> keys = new HashSet<String>();
+        Collection<String> keys = new HashSet<>();
 
         if ( contexts != null )
         {
@@ -173,7 +173,7 @@ class EnhancedLocalRepositoryManager
 
     private void addRepo( File artifactFile, Collection<String> repositories )
     {
-        Map<String, String> updates = new HashMap<String, String>();
+        Map<String, String> updates = new HashMap<>();
         for ( String repository : repositories )
         {
             updates.put( getKey( artifactFile, repository ), "" );
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java
index 8bb7a1c..5bbf9fe 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java
@@ -76,7 +76,7 @@ final class PrioritizedComponent<T>
     @Override
     public String toString()
     {
-        return priority + " (#" + index + "): " + String.valueOf( component );
+        return priority + " (#" + index + "): " + component;
     }
 
 }
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponents.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponents.java
index 32ea054..fb17b8d 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponents.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponents.java
@@ -55,7 +55,7 @@ final class PrioritizedComponents<T>
         useInsertionOrder =
             ConfigUtils.getBoolean( configProps, ConfigurationProperties.DEFAULT_IMPLICIT_PRIORITIES,
                                     ConfigurationProperties.IMPLICIT_PRIORITIES );
-        components = new ArrayList<PrioritizedComponent<T>>();
+        components = new ArrayList<>();
         firstDisabled = 0;
     }
 
@@ -64,7 +64,7 @@ final class PrioritizedComponents<T>
         Class<?> type = getImplClass( component );
         int index = components.size();
         priority = useInsertionOrder ? -index : ConfigUtils.getFloat( configProps, priority, getConfigKeys( type ) );
-        PrioritizedComponent<T> pc = new PrioritizedComponent<T>( component, type, priority, index );
+        PrioritizedComponent<T> pc = new PrioritizedComponent<>( component, type, priority, index );
 
         if ( !useInsertionOrder )
         {
@@ -104,13 +104,14 @@ final class PrioritizedComponents<T>
 
     static String[] getConfigKeys( Class<?> type )
     {
-        List<String> keys = new ArrayList<String>();
+        List<String> keys = new ArrayList<>();
         keys.add( ConfigurationProperties.PREFIX_PRIORITY + type.getName() );
         String sn = type.getSimpleName();
         keys.add( ConfigurationProperties.PREFIX_PRIORITY + sn );
         if ( sn.endsWith( FACTORY_SUFFIX ) )
         {
-            keys.add( ConfigurationProperties.PREFIX_PRIORITY + sn.substring( 0, sn.length() - FACTORY_SUFFIX.length() ) );
+            keys.add(
+              ConfigurationProperties.PREFIX_PRIORITY + sn.substring( 0, sn.length() - FACTORY_SUFFIX.length() ) );
         }
         return keys.toArray( new String[keys.size()] );
     }
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SafeTransferListener.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SafeTransferListener.java
index 147a6a6..4a66a14 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SafeTransferListener.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SafeTransferListener.java
@@ -57,7 +57,8 @@ class SafeTransferListener
 
     private void logError( TransferEvent event, Throwable e )
     {
-        LOGGER.debug( "Failed to dispatch transfer event '{}' to {}", event,  listener.getClass().getCanonicalName(), e );
+        LOGGER.debug( "Failed to dispatch transfer event '{}' to {}", event,  listener.getClass().getCanonicalName(),
+                e );
     }
 
     @Override
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
index a5d55f5..479ae76 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
@@ -69,6 +69,7 @@ class SimpleDigest
         }
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     public String digest()
     {
         if ( digest != null )
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java
index a00cdaa..55f114b 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java
@@ -134,7 +134,7 @@ class SimpleLocalRepositoryManager
 
             buffer.append( '-' );
 
-            SortedSet<String> subKeys = new TreeSet<String>();
+            SortedSet<String> subKeys = new TreeSet<>();
             for ( RemoteRepository mirroredRepo : repository.getMirroredRepositories() )
             {
                 subKeys.add( mirroredRepo.getId() );
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
index 4e8a21f..031f218 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/TrackingFileManager.java
@@ -194,6 +194,7 @@ class TrackingFileManager
         }
     }
 
+    @SuppressWarnings( { "checkstyle:magicnumber" } )
     private FileLock lock( FileChannel channel, long size, boolean shared )
         throws IOException
     {
@@ -210,7 +211,7 @@ class TrackingFileManager
             {
                 if ( attempts <= 0 )
                 {
-                    throw (IOException) new IOException().initCause( e );
+                    throw new IOException( e );
                 }
                 try
                 {
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/Utils.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/Utils.java
index deb830d..480906f 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/Utils.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/Utils.java
@@ -40,11 +40,10 @@ import org.eclipse.aether.transfer.RepositoryOfflineException;
 final class Utils
 {
 
-    public static PrioritizedComponents<MetadataGeneratorFactory> sortMetadataGeneratorFactories( RepositorySystemSession session,
-                                                                                                  Collection<? extends MetadataGeneratorFactory> factories )
+    public static PrioritizedComponents<MetadataGeneratorFactory> sortMetadataGeneratorFactories(
+            RepositorySystemSession session, Collection<? extends MetadataGeneratorFactory> factories )
     {
-        PrioritizedComponents<MetadataGeneratorFactory> result =
-            new PrioritizedComponents<MetadataGeneratorFactory>( session );
+        PrioritizedComponents<MetadataGeneratorFactory> result = new PrioritizedComponents<>( session );
         for ( MetadataGeneratorFactory factory : factories )
         {
             result.add( factory, factory.getPriority() );
@@ -55,7 +54,7 @@ final class Utils
     public static List<Metadata> prepareMetadata( List<? extends MetadataGenerator> generators,
                                                   List<? extends Artifact> artifacts )
     {
-        List<Metadata> metadatas = new ArrayList<Metadata>();
+        List<Metadata> metadatas = new ArrayList<>();
 
         for ( MetadataGenerator generator : generators )
         {
@@ -68,7 +67,7 @@ final class Utils
     public static List<Metadata> finishMetadata( List<? extends MetadataGenerator> generators,
                                                  List<? extends Artifact> artifacts )
     {
-        List<Metadata> metadatas = new ArrayList<Metadata>();
+        List<Metadata> metadatas = new ArrayList<>();
 
         for ( MetadataGenerator generator : generators )
         {
@@ -80,7 +79,7 @@ final class Utils
 
     public static <T> List<T> combine( Collection<? extends T> first, Collection<? extends T> second )
     {
-        List<T> result = new ArrayList<T>( first.size() + second.size() );
+        List<T> result = new ArrayList<>( first.size() + second.size() );
         result.addAll( first );
         result.addAll( second );
         return result;
@@ -93,7 +92,7 @@ final class Utils
         {
             return ResolutionErrorPolicy.CACHE_DISABLED;
         }
-        return rep.getArtifactPolicy( session, new ResolutionErrorPolicyRequest<Artifact>( artifact, repository ) );
+        return rep.getArtifactPolicy( session, new ResolutionErrorPolicyRequest<>( artifact, repository ) );
     }
 
     public static int getPolicy( RepositorySystemSession session, Metadata metadata, RemoteRepository repository )
@@ -103,7 +102,7 @@ final class Utils
         {
             return ResolutionErrorPolicy.CACHE_DISABLED;
         }
-        return rep.getMetadataPolicy( session, new ResolutionErrorPolicyRequest<Metadata>( metadata, repository ) );
+        return rep.getMetadataPolicy( session, new ResolutionErrorPolicyRequest<>( metadata, repository ) );
     }
 
     public static void appendClassLoader( StringBuilder buffer, Object component )
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/Args.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/Args.java
index 7d5e96f..e2c1229 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/Args.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/Args.java
@@ -50,6 +50,7 @@ class Args
 
     final ExecutorService executor;
 
+    @SuppressWarnings( "checkstyle:parameternumber" )
     Args( RepositorySystemSession session, RequestTrace trace, DataPool pool, NodeStack nodes,
           DefaultDependencyCollectionContext collectionContext, DefaultVersionFilterContext versionContext,
           CollectRequest request, ExecutorService executor )
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/CachingArtifactTypeRegistry.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/CachingArtifactTypeRegistry.java
index cbd023e..a260234 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/CachingArtifactTypeRegistry.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/CachingArtifactTypeRegistry.java
@@ -50,7 +50,7 @@ class CachingArtifactTypeRegistry
     private CachingArtifactTypeRegistry( ArtifactTypeRegistry delegate )
     {
         this.delegate = delegate;
-        types = new HashMap<String, ArtifactType>();
+        types = new HashMap<>();
     }
 
     public ArtifactType get( String typeId )
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DataPool.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DataPool.java
index b2390bb..10e9ab6 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DataPool.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DataPool.java
@@ -23,6 +23,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.WeakHashMap;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
@@ -401,14 +402,7 @@ final class DataPool
             this.traverser = traverser;
             this.filter = filter;
 
-            int hash = 17;
-            hash = hash * 31 + artifact.hashCode();
-            hash = hash * 31 + repositories.hashCode();
-            hash = hash * 31 + hash( selector );
-            hash = hash * 31 + hash( manager );
-            hash = hash * 31 + hash( traverser );
-            hash = hash * 31 + hash( filter );
-            hashCode = hash;
+            hashCode = Objects.hash( artifact, repositories, selector, manager, traverser, filter );
         }
 
         @Override
@@ -423,9 +417,9 @@ final class DataPool
                 return false;
             }
             GraphKey that = (GraphKey) obj;
-            return artifact.equals( that.artifact ) && repositories.equals( that.repositories )
-                && eq( selector, that.selector ) && eq( manager, that.manager ) && eq( traverser, that.traverser )
-                && eq( filter, that.filter );
+            return Objects.equals( artifact, that.artifact ) && Objects.equals( repositories, that.repositories )
+                && Objects.equals( selector, that.selector ) && Objects.equals( manager, that.manager )
+                && Objects.equals( traverser, that.traverser ) && Objects.equals( filter, that.filter );
         }
 
         @Override
@@ -433,17 +427,5 @@ final class DataPool
         {
             return hashCode;
         }
-
-        private static <T> boolean eq( T o1, T o2 )
-        {
-            return ( o1 != null ) ? o1.equals( o2 ) : o2 == null;
-        }
-
-        private static int hash( Object o )
-        {
-            return ( o != null ) ? o.hashCode() : 0;
-        }
-
     }
-
 }
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
index e4fb051..9d37435 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java
@@ -125,7 +125,8 @@ public class DefaultDependencyCollector
 
     public DefaultDependencyCollector setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
+        this.remoteRepositoryManager = requireNonNull(
+                remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
@@ -146,9 +147,9 @@ public class DefaultDependencyCollector
     {
         int numThreads = ConfigUtils.getInteger( session, DEFAULT_THREADS, CONFIG_PROP_THREADS );
         LOGGER.debug( "{} = {} ", CONFIG_PROP_THREADS, numThreads );
-        ThreadPoolExecutor executor = new ThreadPoolExecutor( numThreads, numThreads, 3L, TimeUnit.SECONDS,
-                                                              new LinkedBlockingQueue<Runnable>(),
-                                                              new WorkerThreadFactory( "artifact-descriptor-resolver" ) );
+        ThreadPoolExecutor executor = new ThreadPoolExecutor(
+                numThreads, numThreads, 3L, TimeUnit.SECONDS,
+                new LinkedBlockingQueue<Runnable>(), new WorkerThreadFactory( "artifact-descriptor-resolver" ) );
         try
         {
             return collectDependenciesWithExecutor( session, request, executor );
@@ -159,7 +160,8 @@ public class DefaultDependencyCollector
         }
     }
 
-    private CollectResult collectDependenciesWithExecutor( RepositorySystemSession session, CollectRequest request, ExecutorService executor )
+    private CollectResult collectDependenciesWithExecutor( RepositorySystemSession session, CollectRequest request,
+                                                           ExecutorService executor )
         throws DependencyCollectionException
     {
         session = DependencyCollectionUtils.optimizeSession( session );
@@ -199,7 +201,8 @@ public class DefaultDependencyCollector
                                                                               true );
             }
             context.setDependencies( mergeDeps( context.getDependencies(), descriptorResult.getDependencies() ) );
-            context.setManagedDependencies( mergeDeps( managedDependencies, descriptorResult.getManagedDependencies() ) );
+            context.setManagedDependencies( mergeDeps( managedDependencies,
+                    descriptorResult.getManagedDependencies() ) );
 
             node = new DefaultDependencyNode( root );
             node.setRequestContext( request.getRequestContext() );
@@ -417,9 +420,7 @@ public class DefaultDependencyCollector
     {
         return dc.args.executor.submit( new Callable<DependencyContext>()
         {
-
             public DependencyContext call()
-                throws Exception
             {
                 return processDependency( dc );
             }
@@ -496,7 +497,7 @@ public class DefaultDependencyCollector
             if ( noResult )
             {
                 List<RemoteRepository> repos =
-                        getRemoteRepositories( dc.rangeResult.getRepository( dc.version ), dc.context.getRepositories() );
+                      getRemoteRepositories( dc.rangeResult.getRepository( dc.version ), dc.context.getRepositories() );
                 addDependencyNode( dc.args.nodes.top(), dc.relocations, dc.preManaged, dc.rangeResult, dc.version,
                                    dc.managedDependency, null, repos, dc.args.request.getRequestContext() );
             }
@@ -614,16 +615,14 @@ public class DefaultDependencyCollector
                                                                           ArtifactDescriptorRequest descriptorRequest )
     {
         return noDescriptor
-                ? new FutureResult<ArtifactDescriptorResult>( new ArtifactDescriptorResult( descriptorRequest ) )
+                ? new FutureResult<>( new ArtifactDescriptorResult( descriptorRequest ) )
                 : resolveCachedArtifactDescriptor( args.pool, descriptorRequest, args.session, d, results,
                 args );
     }
 
-    private Future<ArtifactDescriptorResult> resolveCachedArtifactDescriptor( final DataPool pool,
-                                                                              final ArtifactDescriptorRequest descriptorRequest,
-                                                                              final RepositorySystemSession session,
-                                                                              final Dependency d, final Results results,
-                                                                              final Args args )
+    private Future<ArtifactDescriptorResult> resolveCachedArtifactDescriptor(
+            final DataPool pool, final ArtifactDescriptorRequest descriptorRequest,
+            final RepositorySystemSession session, final Dependency d, final Results results, final Args args )
     {
         final Object key = pool.toKey( descriptorRequest );
         Future<ArtifactDescriptorResult> descriptorResult = pool.getDescriptor( key, descriptorRequest );
@@ -631,9 +630,7 @@ public class DefaultDependencyCollector
         {
             descriptorResult = args.executor.submit( new Callable<ArtifactDescriptorResult>()
             {
-
                 public ArtifactDescriptorResult call()
-                        throws Exception
                 {
                     try
                     {
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyGraphTransformationContext.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyGraphTransformationContext.java
index c2b3585..41c0126 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyGraphTransformationContext.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyGraphTransformationContext.java
@@ -39,7 +39,7 @@ class DefaultDependencyGraphTransformationContext
     DefaultDependencyGraphTransformationContext( RepositorySystemSession session )
     {
         this.session = session;
-        this.map = new HashMap<Object, Object>();
+        this.map = new HashMap<>();
     }
 
     public RepositorySystemSession getSession()
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultVersionFilterContext.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultVersionFilterContext.java
index 684b7da..4488492 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultVersionFilterContext.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultVersionFilterContext.java
@@ -41,9 +41,6 @@ import org.eclipse.aether.version.VersionConstraint;
 final class DefaultVersionFilterContext
     implements VersionFilter.VersionFilterContext
 {
-
-    private final Iterator<Version> EMPTY = Collections.<Version>emptySet().iterator();
-
     private final RepositorySystemSession session;
 
     private Dependency dependency;
@@ -91,7 +88,7 @@ final class DefaultVersionFilterContext
             }
             return Collections.singletonList( iterator().next() );
         }
-        List<Version> versions = new ArrayList<Version>( count );
+        List<Version> versions = new ArrayList<>( count );
         for ( Version version : this )
         {
             versions.add( version );
@@ -131,7 +128,7 @@ final class DefaultVersionFilterContext
 
     public Iterator<Version> iterator()
     {
-        return ( count > 0 ) ? new VersionIterator() : EMPTY;
+        return ( count > 0 ) ? new VersionIterator() : Collections.<Version>emptySet().iterator();
     }
 
     @Override
@@ -164,6 +161,7 @@ final class DefaultVersionFilterContext
             advance();
         }
 
+        @SuppressWarnings( "StatementWithEmptyBody" )
         private void advance()
         {
             for ( next = index + 1; next < size && deleted[next] != (byte) 0; next++ )
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectionUtils.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectionUtils.java
index e5d777d..876301b 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectionUtils.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DependencyCollectionUtils.java
@@ -48,6 +48,7 @@ import org.eclipse.aether.version.Version;
 public class DependencyCollectionUtils
 {
 
+    @SuppressWarnings( "checkstyle:parameternumber" )
     static DefaultDependencyNode addDependencyNode( DependencyNode parent, List<Artifact> relocations,
                                                     PremanagedDependency preManaged, VersionRangeResult rangeResult,
                                                     Version version, Dependency d, Collection<Artifact> aliases,
@@ -65,6 +66,7 @@ public class DependencyCollectionUtils
         return child;
     }
 
+    @SuppressWarnings( "checkstyle:parameternumber" )
     static DefaultDependencyNode createDependencyNode( DependencyNode parent, List<Artifact> relocations,
                                                        PremanagedDependency preManaged, VersionRangeResult rangeResult,
                                                        Version version, Dependency d,
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/NodeStack.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/NodeStack.java
index a7cbc78..668dbc4 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/NodeStack.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/NodeStack.java
@@ -30,7 +30,10 @@ import org.eclipse.aether.graph.DependencyNode;
 final class NodeStack
 {
 
+    @SuppressWarnings( {"unchecked", "checkstyle:magicnumber" } )
+    // CHECKSTYLE_OFF: MagicNumber
     private DependencyNode[] nodes = new DependencyNode[96];
+    // CHECKSTYLE_ON: MagicNumber
 
     private int size;
 
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/ObjectPool.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/ObjectPool.java
index acb62c5..c4117eb 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/ObjectPool.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/ObjectPool.java
@@ -31,7 +31,7 @@ import java.util.WeakHashMap;
 class ObjectPool<T>
 {
 
-    private final Map<Object, Reference<T>> objects = new WeakHashMap<Object, Reference<T>>( 256 );
+    private final Map<Object, Reference<T>> objects = new WeakHashMap<>( 256 );
 
     public synchronized T intern( T object )
     {
@@ -45,7 +45,7 @@ class ObjectPool<T>
             }
         }
 
-        objects.put( object, new WeakReference<T>( object ) );
+        objects.put( object, new WeakReference<>( object ) );
         return object;
     }
 
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/PremanagedDependency.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/PremanagedDependency.java
index 222cfe3..361213e 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/PremanagedDependency.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/PremanagedDependency.java
@@ -58,6 +58,7 @@ class PremanagedDependency
 
     final boolean premanagedState;
 
+    @SuppressWarnings( "checkstyle:parameternumber" )
     PremanagedDependency( String premanagedVersion, String premanagedScope, Boolean premanagedOptional,
                           Collection<Exclusion> premanagedExclusions, Map<String, String> premanagedProperties,
                           int managedBits, Dependency managedDependency, boolean premanagedState )
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/Results.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/Results.java
index 2d27c9d..27d6121 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/Results.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/Results.java
@@ -35,6 +35,7 @@ class Results
 
     String errorPath;
 
+    @SuppressWarnings( { "checkstyle:magicnumber" } )
     Results( CollectResult result, RepositorySystemSession session )
     {
         this.result = result;
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/slf4j/Slf4jLoggerFactory.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/slf4j/Slf4jLoggerFactory.java
index c4b1a95..6d2d92d 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/slf4j/Slf4jLoggerFactory.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/slf4j/Slf4jLoggerFactory.java
@@ -48,11 +48,7 @@ public class Slf4jLoggerFactory
             Slf4jLoggerFactory.class.getClassLoader().loadClass( "org.slf4j.ILoggerFactory" );
             available = true;
         }
-        catch ( Exception e )
-        {
-            available = false;
-        }
-        catch ( LinkageError e )
+        catch ( Exception | LinkageError e )
         {
             available = false;
         }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubArtifactDescriptorReader.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubArtifactDescriptorReader.java
index a5e650f..2882dc2 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubArtifactDescriptorReader.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubArtifactDescriptorReader.java
@@ -20,7 +20,6 @@ package org.eclipse.aether.impl;
  */
 
 import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.impl.ArtifactDescriptorReader;
 import org.eclipse.aether.resolution.ArtifactDescriptorException;
 import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
 import org.eclipse.aether.resolution.ArtifactDescriptorResult;
@@ -33,8 +32,7 @@ public class StubArtifactDescriptorReader
                                                             ArtifactDescriptorRequest request )
         throws ArtifactDescriptorException
     {
-        ArtifactDescriptorResult result = new ArtifactDescriptorResult( request );
-        return result;
+        return new ArtifactDescriptorResult( request );
     }
 
 }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubVersionRangeResolver.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubVersionRangeResolver.java
index 81e000e..924ff5a 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubVersionRangeResolver.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubVersionRangeResolver.java
@@ -20,9 +20,7 @@ package org.eclipse.aether.impl;
  */
 
 import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.impl.VersionRangeResolver;
 import org.eclipse.aether.resolution.VersionRangeRequest;
-import org.eclipse.aether.resolution.VersionRangeResolutionException;
 import org.eclipse.aether.resolution.VersionRangeResult;
 
 public class StubVersionRangeResolver
@@ -30,10 +28,8 @@ public class StubVersionRangeResolver
 {
 
     public VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request )
-        throws VersionRangeResolutionException
     {
-        VersionRangeResult result = new VersionRangeResult( request );
-        return result;
+        return new VersionRangeResult( request );
     }
 
 }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubVersionResolver.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubVersionResolver.java
index f59fa11..4baa461 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubVersionResolver.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/StubVersionResolver.java
@@ -20,7 +20,6 @@ package org.eclipse.aether.impl;
  */
 
 import org.eclipse.aether.RepositorySystemSession;
-import org.eclipse.aether.impl.VersionResolver;
 import org.eclipse.aether.resolution.VersionRequest;
 import org.eclipse.aether.resolution.VersionResolutionException;
 import org.eclipse.aether.resolution.VersionResult;
@@ -32,8 +31,7 @@ public class StubVersionResolver
     public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
         throws VersionResolutionException
     {
-        VersionResult result = new VersionResult( request );
-        return result;
+        return new VersionResult( request );
     }
 
 }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java
index f776e9c..3710a69 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java
@@ -90,7 +90,6 @@ public class DefaultArtifactResolverTest
 
     @Before
     public void setup()
-        throws IOException
     {
         UpdateCheckManager updateCheckManager = new StaticUpdateCheckManager( true );
         repositoryConnectorProvider = new StubRepositoryConnectorProvider();
@@ -128,7 +127,7 @@ public class DefaultArtifactResolverTest
         throws IOException, ArtifactResolutionException
     {
         File tmpFile = TestFileUtils.createTempFile( "tmp" );
-        Map<String, String> properties = new HashMap<String, String>();
+        Map<String, String> properties = new HashMap<>();
         properties.put( ArtifactProperties.LOCAL_PATH, tmpFile.getAbsolutePath() );
         artifact = artifact.setProperties( properties );
 
@@ -146,10 +145,10 @@ public class DefaultArtifactResolverTest
 
     @Test
     public void testResolveLocalArtifactUnsuccessful()
-        throws IOException, ArtifactResolutionException
+        throws IOException
     {
         File tmpFile = TestFileUtils.createTempFile( "tmp" );
-        Map<String, String> properties = new HashMap<String, String>();
+        Map<String, String> properties = new HashMap<>();
         properties.put( ArtifactProperties.LOCAL_PATH, tmpFile.getAbsolutePath() );
         artifact = artifact.setProperties( properties );
 
@@ -182,7 +181,7 @@ public class DefaultArtifactResolverTest
 
     @Test
     public void testResolveRemoteArtifact()
-        throws IOException, ArtifactResolutionException
+        throws ArtifactResolutionException
     {
         connector.setExpectGet( artifact );
 
@@ -204,7 +203,6 @@ public class DefaultArtifactResolverTest
 
     @Test
     public void testResolveRemoteArtifactUnsuccessful()
-        throws IOException, ArtifactResolutionException
     {
         RecordingRepositoryConnector connector = new RecordingRepositoryConnector()
         {
@@ -287,7 +285,7 @@ public class DefaultArtifactResolverTest
         ArtifactRequest request1 = new ArtifactRequest( artifact1, Arrays.asList( remoteRepo ), "" );
         ArtifactRequest request2 = new ArtifactRequest( artifact2, Arrays.asList( remoteRepo ), "" );
 
-        connector.setExpectGet( new Artifact[] { artifact1, artifact2 } );
+        connector.setExpectGet( artifact1, artifact2 );
         try
         {
             resolver.resolveArtifacts( session, Arrays.asList( request1, request2 ) );
@@ -373,7 +371,7 @@ public class DefaultArtifactResolverTest
 
     @Test
     public void testResolveFromWorkspaceFallbackToRepository()
-        throws IOException, ArtifactResolutionException
+        throws ArtifactResolutionException
     {
         WorkspaceReader workspace = new WorkspaceReader()
         {
@@ -422,7 +420,7 @@ public class DefaultArtifactResolverTest
         session.setRepositoryListener( listener );
 
         File tmpFile = TestFileUtils.createTempFile( "tmp" );
-        Map<String, String> properties = new HashMap<String, String>();
+        Map<String, String> properties = new HashMap<>();
         properties.put( ArtifactProperties.LOCAL_PATH, tmpFile.getAbsolutePath() );
         artifact = artifact.setProperties( properties );
 
@@ -444,12 +442,11 @@ public class DefaultArtifactResolverTest
 
     @Test
     public void testRepositoryEventsUnsuccessfulLocal()
-        throws IOException
     {
         RecordingRepositoryListener listener = new RecordingRepositoryListener();
         session.setRepositoryListener( listener );
 
-        Map<String, String> properties = new HashMap<String, String>();
+        Map<String, String> properties = new HashMap<>();
         properties.put( ArtifactProperties.LOCAL_PATH, "doesnotexist" );
         artifact = artifact.setProperties( properties );
 
@@ -459,7 +456,7 @@ public class DefaultArtifactResolverTest
             resolver.resolveArtifact( session, request );
             fail( "expected exception" );
         }
-        catch ( ArtifactResolutionException e )
+        catch ( ArtifactResolutionException ignored )
         {
         }
 
@@ -515,7 +512,6 @@ public class DefaultArtifactResolverTest
 
     @Test
     public void testRepositoryEventsUnsuccessfulRemote()
-        throws IOException, ArtifactResolutionException
     {
         RecordingRepositoryConnector connector = new RecordingRepositoryConnector()
         {
@@ -545,7 +541,7 @@ public class DefaultArtifactResolverTest
             resolver.resolveArtifact( session, request );
             fail( "expected exception" );
         }
-        catch ( ArtifactResolutionException e )
+        catch ( ArtifactResolutionException ignored )
         {
         }
 
@@ -632,7 +628,7 @@ public class DefaultArtifactResolverTest
             resolver.resolveArtifact( session, request );
             fail( "expected exception" );
         }
-        catch ( ArtifactResolutionException e )
+        catch ( ArtifactResolutionException ignored )
         {
         }
 
@@ -790,8 +786,7 @@ public class DefaultArtifactResolverTest
 
             public LocalMetadataResult find( RepositorySystemSession session, LocalMetadataRequest request )
             {
-                LocalMetadataResult result = new LocalMetadataResult( request );
-                return result;
+                return new LocalMetadataResult( request );
             }
 
             public void add( RepositorySystemSession session, LocalMetadataRegistration request )
@@ -805,7 +800,6 @@ public class DefaultArtifactResolverTest
         {
 
             public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
-                throws VersionResolutionException
             {
                 return new VersionResult( request ).setRepository( new LocalRepository( "id" ) ).setVersion( request.getArtifact().getVersion() );
             }
@@ -875,8 +869,7 @@ public class DefaultArtifactResolverTest
 
             public LocalMetadataResult find( RepositorySystemSession session, LocalMetadataRequest request )
             {
-                LocalMetadataResult result = new LocalMetadataResult( request );
-                return result;
+                return new LocalMetadataResult( request );
             }
 
             public void add( RepositorySystemSession session, LocalMetadataRegistration request )
@@ -890,7 +883,6 @@ public class DefaultArtifactResolverTest
         {
 
             public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
-                throws VersionResolutionException
             {
                 return new VersionResult( request ).setVersion( request.getArtifact().getVersion() );
             }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProviderTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProviderTest.java
index 542e3ea..4f508ec 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProviderTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProviderTest.java
@@ -46,7 +46,6 @@ public class DefaultChecksumPolicyProviderTest
 
     @Before
     public void setup()
-        throws Exception
     {
         session = TestUtils.newSession();
         provider = new DefaultChecksumPolicyProvider();
@@ -56,7 +55,6 @@ public class DefaultChecksumPolicyProviderTest
 
     @After
     public void teardown()
-        throws Exception
     {
         provider = null;
         session = null;
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
index 7b48230..6793977 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultFileProcessorTest.java
@@ -113,7 +113,6 @@ public class DefaultFileProcessorTest
         ProgressListener listener = new ProgressListener()
         {
             public void progressed( ByteBuffer buffer )
-                throws IOException
             {
                 progressed.addAndGet( buffer.remaining() );
             }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java
index 39f76e6..0fb0e56 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java
@@ -50,7 +50,6 @@ import org.eclipse.aether.internal.test.util.TestUtils;
 import org.eclipse.aether.metadata.DefaultMetadata;
 import org.eclipse.aether.metadata.Metadata;
 import org.eclipse.aether.metadata.Metadata.Nature;
-import org.eclipse.aether.transform.TransformException;
 import org.eclipse.aether.transform.FileTransformer;
 import org.eclipse.aether.util.artifact.SubArtifact;
 import org.junit.After;
@@ -430,7 +429,6 @@ public class DefaultInstallerTest
         {
             @Override
             public InputStream transformData( File file )
-                throws IOException, TransformException
             {
                 return new ByteArrayInputStream( "transformed data".getBytes( StandardCharsets.UTF_8 ) );
             }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManagerTest.java
index f00c480..b654f9b 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManagerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManagerTest.java
@@ -51,7 +51,6 @@ public class DefaultRemoteRepositoryManagerTest
 
     @Before
     public void setup()
-        throws Exception
     {
         session = TestUtils.newSession();
         session.setChecksumPolicy( null );
@@ -63,7 +62,6 @@ public class DefaultRemoteRepositoryManagerTest
 
     @After
     public void teardown()
-        throws Exception
     {
         manager = null;
         session = null;
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcherTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcherTest.java
index 25e8a87..14b1658 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcherTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcherTest.java
@@ -40,7 +40,6 @@ public class DefaultRepositoryEventDispatcherTest
 
     @Test
     public void testDispatchHandlesAllEventTypes()
-        throws Exception
     {
         DefaultRepositoryEventDispatcher dispatcher = new DefaultRepositoryEventDispatcher();
 
@@ -75,7 +74,6 @@ public class DefaultRepositoryEventDispatcherTest
         public String methodName;
 
         public Object invoke( Object proxy, Method method, Object[] args )
-            throws Throwable
         {
             if ( args.length == 1 && args[0] instanceof RepositoryEvent )
             {
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
index 9cb299c..8ca42c0 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
@@ -105,7 +105,7 @@ public class DefaultUpdateCheckManagerTest
 
     private UpdateCheck<Metadata, MetadataTransferException> newMetadataCheck()
     {
-        UpdateCheck<Metadata, MetadataTransferException> check = new UpdateCheck<Metadata, MetadataTransferException>();
+        UpdateCheck<Metadata, MetadataTransferException> check = new UpdateCheck<>();
         check.setItem( metadata );
         check.setFile( metadata.getFile() );
         check.setRepository( repository );
@@ -116,7 +116,7 @@ public class DefaultUpdateCheckManagerTest
 
     private UpdateCheck<Artifact, ArtifactTransferException> newArtifactCheck()
     {
-        UpdateCheck<Artifact, ArtifactTransferException> check = new UpdateCheck<Artifact, ArtifactTransferException>();
+        UpdateCheck<Artifact, ArtifactTransferException> check = new UpdateCheck<>();
         check.setItem( artifact );
         check.setFile( artifact.getFile() );
         check.setRepository( repository );
@@ -126,7 +126,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test( expected = Exception.class )
     public void testCheckMetadataFailOnNoFile()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setItem( metadata.setFile( null ) );
@@ -137,7 +136,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataUpdatePolicyRequired()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
 
@@ -163,7 +161,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataUpdatePolicyNotRequired()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
 
@@ -188,7 +185,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadata()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_DAILY );
@@ -216,7 +212,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataNoLocalFile()
-        throws Exception
     {
         metadata.getFile().delete();
 
@@ -233,7 +228,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataNotFoundInRepoCachingEnabled()
-        throws Exception
     {
         metadata.getFile().delete();
         session.setResolutionErrorPolicy( new SimpleResolutionErrorPolicy( true, false ) );
@@ -254,7 +248,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataNotFoundInRepoCachingDisabled()
-        throws Exception
     {
         metadata.getFile().delete();
         session.setResolutionErrorPolicy( new SimpleResolutionErrorPolicy( false, false ) );
@@ -274,7 +267,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataErrorFromRepoCachingEnabled()
-        throws Exception
     {
         metadata.getFile().delete();
 
@@ -297,7 +289,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataErrorFromRepoCachingDisabled()
-        throws Exception
     {
         metadata.getFile().delete();
 
@@ -318,7 +309,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataAtMostOnceDuringSessionEvenIfUpdatePolicyAlways()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_ALWAYS );
@@ -336,7 +326,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataSessionStateModes()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_ALWAYS );
@@ -360,7 +349,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataAtMostOnceDuringSessionEvenIfUpdatePolicyAlways_InvalidFile()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_ALWAYS );
@@ -388,7 +376,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataAtMostOnceDuringSessionEvenIfUpdatePolicyAlways_DifferentRepoIdSameUrl()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_ALWAYS );
@@ -408,7 +395,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataWhenLocallyMissingEvenIfUpdatePolicyIsNever()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_NEVER );
@@ -423,7 +409,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataWhenLocallyPresentButInvalidEvenIfUpdatePolicyIsNever()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_NEVER );
@@ -440,7 +425,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataWhenLocallyDeletedEvenIfTimestampUpToDate()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         session.setResolutionErrorPolicy( new SimpleResolutionErrorPolicy( true, false ) );
@@ -457,7 +441,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckMetadataNotWhenUpdatePolicyIsNeverAndTimestampIsUnavailable()
-        throws Exception
     {
         UpdateCheck<Metadata, MetadataTransferException> check = newMetadataCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_NEVER );
@@ -469,7 +452,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test( expected = NullPointerException.class )
     public void testCheckArtifactFailOnNoFile()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setItem( artifact.setFile( null ) );
@@ -481,7 +463,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactUpdatePolicyRequired()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setItem( artifact );
@@ -511,7 +492,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactUpdatePolicyNotRequired()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setItem( artifact );
@@ -540,7 +520,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifact()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         long fifteenMinutes = new Date().getTime() - ( 15L * 60L * 1000L );
@@ -570,7 +549,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactNoLocalFile()
-        throws Exception
     {
         artifact.getFile().delete();
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
@@ -585,7 +563,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactNotFoundInRepoCachingEnabled()
-        throws Exception
     {
         artifact.getFile().delete();
         session.setResolutionErrorPolicy( new SimpleResolutionErrorPolicy( true, false ) );
@@ -605,7 +582,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactNotFoundInRepoCachingDisabled()
-        throws Exception
     {
         artifact.getFile().delete();
         session.setResolutionErrorPolicy( new SimpleResolutionErrorPolicy( false, false ) );
@@ -624,7 +600,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactErrorFromRepoCachingEnabled()
-        throws Exception
     {
         artifact.getFile().delete();
 
@@ -645,7 +620,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactErrorFromRepoCachingDisabled()
-        throws Exception
     {
         artifact.getFile().delete();
 
@@ -665,7 +639,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactAtMostOnceDuringSessionEvenIfUpdatePolicyAlways()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_ALWAYS );
@@ -683,7 +656,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactSessionStateModes()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_ALWAYS );
@@ -707,7 +679,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactAtMostOnceDuringSessionEvenIfUpdatePolicyAlways_InvalidFile()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_ALWAYS );
@@ -735,7 +706,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactAtMostOnceDuringSessionEvenIfUpdatePolicyAlways_DifferentRepoIdSameUrl()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_ALWAYS );
@@ -754,7 +724,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactWhenLocallyMissingEvenIfUpdatePolicyIsNever()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_NEVER );
@@ -769,7 +738,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactWhenLocallyPresentButInvalidEvenIfUpdatePolicyIsNever()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_NEVER );
@@ -786,7 +754,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactWhenLocallyDeletedEvenIfTimestampUpToDate()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         session.setResolutionErrorPolicy( new SimpleResolutionErrorPolicy( true, false ) );
@@ -803,7 +770,6 @@ public class DefaultUpdateCheckManagerTest
 
     @Test
     public void testCheckArtifactNotWhenUpdatePolicyIsNeverAndTimestampIsUnavailable()
-        throws Exception
     {
         UpdateCheck<Artifact, ArtifactTransferException> check = newArtifactCheck();
         check.setPolicy( RepositoryPolicy.UPDATE_POLICY_NEVER );
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzerTest.java
index 31bcbaa..58c3e8c 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzerTest.java
@@ -41,7 +41,6 @@ public class DefaultUpdatePolicyAnalyzerTest
 
     @Before
     public void setup()
-        throws Exception
     {
         analyzer = new DefaultUpdatePolicyAnalyzer();
         session = TestUtils.newSession();
@@ -54,7 +53,6 @@ public class DefaultUpdatePolicyAnalyzerTest
 
     @Test
     public void testIsUpdateRequired_PolicyNever()
-        throws Exception
     {
         String policy = RepositoryPolicy.UPDATE_POLICY_NEVER;
         assertEquals( false, analyzer.isUpdatedRequired( session, Long.MIN_VALUE, policy ) );
@@ -66,7 +64,6 @@ public class DefaultUpdatePolicyAnalyzerTest
 
     @Test
     public void testIsUpdateRequired_PolicyAlways()
-        throws Exception
     {
         String policy = RepositoryPolicy.UPDATE_POLICY_ALWAYS;
         assertEquals( true, analyzer.isUpdatedRequired( session, Long.MIN_VALUE, policy ) );
@@ -78,7 +75,6 @@ public class DefaultUpdatePolicyAnalyzerTest
 
     @Test
     public void testIsUpdateRequired_PolicyDaily()
-        throws Exception
     {
         Calendar cal = Calendar.getInstance();
         cal.set( Calendar.HOUR_OF_DAY, 0 );
@@ -90,14 +86,13 @@ public class DefaultUpdatePolicyAnalyzerTest
         String policy = RepositoryPolicy.UPDATE_POLICY_DAILY;
         assertEquals( true, analyzer.isUpdatedRequired( session, Long.MIN_VALUE, policy ) );
         assertEquals( false, analyzer.isUpdatedRequired( session, Long.MAX_VALUE, policy ) );
-        assertEquals( false, analyzer.isUpdatedRequired( session, localMidnight + 0, policy ) );
+        assertEquals( false, analyzer.isUpdatedRequired( session, localMidnight, policy ) );
         assertEquals( false, analyzer.isUpdatedRequired( session, localMidnight + 1, policy ) );
         assertEquals( true, analyzer.isUpdatedRequired( session, localMidnight - 1, policy ) );
     }
 
     @Test
     public void testIsUpdateRequired_PolicyInterval()
-        throws Exception
     {
         String policy = RepositoryPolicy.UPDATE_POLICY_INTERVAL + ":5";
         assertEquals( true, analyzer.isUpdatedRequired( session, Long.MIN_VALUE, policy ) );
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DependencyGraphDumper.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DependencyGraphDumper.java
index 39bc1ed..8c8b1a6 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DependencyGraphDumper.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DependencyGraphDumper.java
@@ -41,7 +41,7 @@ public class DependencyGraphDumper
         Context context = new Context();
         dump( context, node, 0, true );
 
-        LinkedList<Indent> indents = new LinkedList<Indent>();
+        LinkedList<Indent> indents = new LinkedList<>();
         for ( Line line : context.lines )
         {
             if ( line.depth > indents.size() )
@@ -123,7 +123,7 @@ public class DependencyGraphDumper
         }
     }
 
-    static enum Indent
+    enum Indent
     {
 
         NO_CHILDREN( "   " ),
@@ -160,8 +160,8 @@ public class DependencyGraphDumper
 
         Context()
         {
-            this.lines = new ArrayList<Line>();
-            this.nodes = new IdentityHashMap<DependencyNode, Line>( 1024 );
+            this.lines = new ArrayList<>();
+            this.nodes = new IdentityHashMap<>( 1024 );
         }
 
     }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/PrioritizedComponentTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/PrioritizedComponentTest.java
index 989c1ad..1644f72 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/PrioritizedComponentTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/PrioritizedComponentTest.java
@@ -29,10 +29,10 @@ public class PrioritizedComponentTest
     @Test
     public void testIsDisabled()
     {
-        assertTrue( new PrioritizedComponent<String>( "", String.class, Float.NaN, 0 ).isDisabled() );
-        assertFalse( new PrioritizedComponent<String>( "", String.class, 0, 0 ).isDisabled() );
-        assertFalse( new PrioritizedComponent<String>( "", String.class, 1, 0 ).isDisabled() );
-        assertFalse( new PrioritizedComponent<String>( "", String.class, -1, 0 ).isDisabled() );
+        assertTrue(new PrioritizedComponent<>( "", String.class, Float.NaN, 0 ).isDisabled() );
+        assertFalse(new PrioritizedComponent<>( "", String.class, 0, 0 ).isDisabled() );
+        assertFalse(new PrioritizedComponent<>( "", String.class, 1, 0 ).isDisabled() );
+        assertFalse(new PrioritizedComponent<>( "", String.class, -1, 0 ).isDisabled() );
     }
 
     @Test
@@ -56,16 +56,16 @@ public class PrioritizedComponentTest
 
     private void assertCompare( int expected, float priority1, float priority2 )
     {
-        PrioritizedComponent<?> one = new PrioritizedComponent<String>( "", String.class, priority1, 0 );
-        PrioritizedComponent<?> two = new PrioritizedComponent<String>( "", String.class, priority2, 0 );
+        PrioritizedComponent<?> one = new PrioritizedComponent<>( "", String.class, priority1, 0 );
+        PrioritizedComponent<?> two = new PrioritizedComponent<>( "", String.class, priority2, 0 );
         assertEquals( expected, one.compareTo( two ) );
         assertEquals( -expected, two.compareTo( one ) );
     }
 
     private void assertCompare( int expected, float priority, int index1, int index2 )
     {
-        PrioritizedComponent<?> one = new PrioritizedComponent<String>( "", String.class, priority, index1 );
-        PrioritizedComponent<?> two = new PrioritizedComponent<String>( "", String.class, priority, index2 );
+        PrioritizedComponent<?> one = new PrioritizedComponent<>( "", String.class, priority, index1 );
+        PrioritizedComponent<?> two = new PrioritizedComponent<>( "", String.class, priority, index2 );
         assertEquals( expected, one.compareTo( two ) );
         assertEquals( -expected, two.compareTo( one ) );
     }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/PrioritizedComponentsTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/PrioritizedComponentsTest.java
index 3f5a093..764a130 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/PrioritizedComponentsTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/PrioritizedComponentsTest.java
@@ -54,10 +54,10 @@ public class PrioritizedComponentsTest
     {
         Exception comp1 = new IllegalArgumentException();
         Exception comp2 = new NullPointerException();
-        Map<Object, Object> config = new HashMap<Object, Object>();
+        Map<Object, Object> config = new HashMap<>();
         config.put( ConfigurationProperties.PREFIX_PRIORITY + comp1.getClass().getName(), 6 );
         config.put( ConfigurationProperties.PREFIX_PRIORITY + comp2.getClass().getName(), 7 );
-        PrioritizedComponents<Exception> components = new PrioritizedComponents<Exception>( config );
+        PrioritizedComponents<Exception> components = new PrioritizedComponents<>( config );
         components.add( comp1, 1 );
         components.add( comp2, 0 );
         List<PrioritizedComponent<Exception>> sorted = components.getEnabled();
@@ -73,9 +73,9 @@ public class PrioritizedComponentsTest
     {
         Exception comp1 = new IllegalArgumentException();
         Exception comp2 = new NullPointerException();
-        Map<Object, Object> config = new HashMap<Object, Object>();
+        Map<Object, Object> config = new HashMap<>();
         config.put( ConfigurationProperties.IMPLICIT_PRIORITIES, true );
-        PrioritizedComponents<Exception> components = new PrioritizedComponents<Exception>( config );
+        PrioritizedComponents<Exception> components = new PrioritizedComponents<>( config );
         components.add( comp1, 1 );
         components.add( comp2, 2 );
         List<PrioritizedComponent<Exception>> sorted = components.getEnabled();
@@ -89,8 +89,8 @@ public class PrioritizedComponentsTest
     {
         Exception comp1 = new IllegalArgumentException();
         Exception comp2 = new NullPointerException();
-        Map<Object, Object> config = new HashMap<Object, Object>();
-        PrioritizedComponents<Exception> components = new PrioritizedComponents<Exception>( config );
+        Map<Object, Object> config = new HashMap<>();
+        PrioritizedComponents<Exception> components = new PrioritizedComponents<>( config );
 
         components.add( new UnsupportedOperationException(), Float.NaN );
         List<PrioritizedComponent<Exception>> sorted = components.getEnabled();
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/RecordingRepositoryConnector.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/RecordingRepositoryConnector.java
index 80a347a..05d0890 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/RecordingRepositoryConnector.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/RecordingRepositoryConnector.java
@@ -60,13 +60,13 @@ class RecordingRepositoryConnector
 
     private Metadata[] expectPutMD;
 
-    private List<Artifact> actualGet = new ArrayList<Artifact>();
+    private List<Artifact> actualGet = new ArrayList<>();
 
-    private List<Metadata> actualGetMD = new ArrayList<Metadata>();
+    private List<Metadata> actualGetMD = new ArrayList<>();
 
-    private List<Artifact> actualPut = new ArrayList<Artifact>();
+    private List<Artifact> actualPut = new ArrayList<>();
 
-    private List<Metadata> actualPutMD = new ArrayList<Metadata>();
+    private List<Metadata> actualPutMD = new ArrayList<>();
 
     public RecordingRepositoryConnector( RepositorySystemSession session, Artifact[] expectGet, Artifact[] expectPut,
                                          Metadata[] expectGetMD, Metadata[] expectPutMD )
@@ -200,7 +200,6 @@ class RecordingRepositoryConnector
     }
 
     private void fireDone( Transfer transfer )
-        throws Exception
     {
         TransferListener listener = transfer.getListener();
         if ( listener == null )
@@ -232,7 +231,7 @@ class RecordingRepositoryConnector
         assertSeenExpected( actualPutMD, expectPutMD );
     }
 
-    private void assertSeenExpected( List<? extends Object> actual, Object[] expected )
+    private void assertSeenExpected( List<?> actual, Object[] expected )
     {
         if ( expected == null )
         {
@@ -289,10 +288,10 @@ class RecordingRepositoryConnector
 
     public void resetActual()
     {
-        this.actualGet = new ArrayList<Artifact>();
-        this.actualGetMD = new ArrayList<Metadata>();
-        this.actualPut = new ArrayList<Artifact>();
-        this.actualPutMD = new ArrayList<Metadata>();
+        this.actualGet = new ArrayList<>();
+        this.actualGetMD = new ArrayList<>();
+        this.actualPut = new ArrayList<>();
+        this.actualPutMD = new ArrayList<>();
     }
 
 }
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerTest.java
index a301bd4..9a98526 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerTest.java
@@ -68,7 +68,6 @@ public class SimpleLocalRepositoryManagerTest
 
     @Test
     public void testGetPathForLocalArtifact()
-        throws Exception
     {
         Artifact artifact = new DefaultArtifact( "g.i.d:a.i.d:1.0-SNAPSHOT" );
         assertEquals( "1.0-SNAPSHOT", artifact.getBaseVersion() );
@@ -84,7 +83,6 @@ public class SimpleLocalRepositoryManagerTest
 
     @Test
     public void testGetPathForRemoteArtifact()
-        throws Exception
     {
         RemoteRepository remoteRepo = new RemoteRepository.Builder( "repo", "default", "ram:/void" ).build();
 
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubVersionResolver.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubVersionResolver.java
index 719e5bc..10a54f1 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubVersionResolver.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/StubVersionResolver.java
@@ -22,7 +22,6 @@ package org.eclipse.aether.internal.impl;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.impl.VersionResolver;
 import org.eclipse.aether.resolution.VersionRequest;
-import org.eclipse.aether.resolution.VersionResolutionException;
 import org.eclipse.aether.resolution.VersionResult;
 
 /* *
@@ -32,7 +31,6 @@ class StubVersionResolver
 {
 
     public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
-        throws VersionResolutionException
     {
         VersionResult result = new VersionResult( request ).setVersion( request.getArtifact().getVersion() );
         if ( request.getRepositories().size() > 0 )
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/TrackingFileManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/TrackingFileManagerTest.java
index a3f4bb8..6dbd21b 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/TrackingFileManagerTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/TrackingFileManagerTest.java
@@ -82,7 +82,7 @@ public class TrackingFileManagerTest
         // NOTE: The excessive repetitions are to check the update properly truncates the file
         File propFile = TestFileUtils.createTempFile( "key1=value1\nkey2 : value2\n".getBytes( StandardCharsets.UTF_8 ), 1000 );
 
-        Map<String, String> updates = new HashMap<String, String>();
+        Map<String, String> updates = new HashMap<>();
         updates.put( "key1", "v" );
         updates.put( "key2", null );
 
@@ -102,7 +102,7 @@ public class TrackingFileManagerTest
     {
         TrackingFileManager tfm = new TrackingFileManager();
 
-        Map<String, String> updates = new HashMap<String, String>();
+        Map<String, String> updates = new HashMap<>();
         updates.put( "k", "v" );
 
         for ( int i = 0; i < 1000; i++ )
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java
index 94c504e..0c10469 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java
@@ -99,7 +99,6 @@ public class DefaultDependencyCollectorTest
 
     @Before
     public void setup()
-        throws IOException
     {
         session = TestUtils.newSession();
 
@@ -168,11 +167,7 @@ public class DefaultDependencyCollectorTest
 
             return node;
         }
-        catch ( IndexOutOfBoundsException e )
-        {
-            throw new IllegalArgumentException( "illegal coordinates for child", e );
-        }
-        catch ( NullPointerException e )
+        catch ( IndexOutOfBoundsException | NullPointerException e )
         {
             throw new IllegalArgumentException( "illegal coordinates for child", e );
         }
@@ -180,7 +175,7 @@ public class DefaultDependencyCollectorTest
 
     @Test
     public void testSimpleCollection()
-        throws IOException, DependencyCollectionException
+        throws DependencyCollectionException
     {
         Dependency dependency = newDep( "gid:aid:ext:ver", "compile" );
         CollectRequest request = new CollectRequest( dependency, Arrays.asList( repository ) );
@@ -202,7 +197,6 @@ public class DefaultDependencyCollectorTest
 
     @Test
     public void testMissingDependencyDescription()
-        throws IOException
     {
         CollectRequest request =
             new CollectRequest( newDep( "missing:description:ext:ver" ), Arrays.asList( repository ) );
@@ -226,7 +220,7 @@ public class DefaultDependencyCollectorTest
 
     @Test
     public void testDuplicates()
-        throws IOException, DependencyCollectionException
+        throws DependencyCollectionException
     {
         Dependency dependency = newDep( "duplicate:transitive:ext:dependency" );
         CollectRequest request = new CollectRequest( dependency, Arrays.asList( repository ) );
@@ -362,7 +356,7 @@ public class DefaultDependencyCollectorTest
 
     @Test
     public void testCollectMultipleDependencies()
-        throws IOException, DependencyCollectionException
+        throws DependencyCollectionException
     {
         Dependency root1 = newDep( "gid:aid:ext:ver", "compile" );
         Dependency root2 = newDep( "gid:aid2:ext:ver", "compile" );
@@ -387,13 +381,12 @@ public class DefaultDependencyCollectorTest
     {
         RemoteRepository repo2 = new RemoteRepository.Builder( "test", "default", "file:///" ).build();
 
-        final List<RemoteRepository> repos = new ArrayList<RemoteRepository>();
+        final List<RemoteRepository> repos = new ArrayList<>();
 
         collector.setArtifactDescriptorReader( new ArtifactDescriptorReader()
         {
             public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session,
                                                                     ArtifactDescriptorRequest request )
-                throws ArtifactDescriptorException
             {
                 repos.addAll( request.getRepositories() );
                 return new ArtifactDescriptorResult( request );
@@ -412,7 +405,7 @@ public class DefaultDependencyCollectorTest
 
     @Test
     public void testManagedVersionScope()
-        throws IOException, DependencyCollectionException
+        throws DependencyCollectionException
     {
         Dependency dependency = newDep( "managed:aid:ext:ver" );
         CollectRequest request = new CollectRequest( dependency, Arrays.asList( repository ) );
@@ -506,7 +499,7 @@ public class DefaultDependencyCollectorTest
      */
     @Test
     public void testSelectionBeforeManagement()
-        throws IOException, DependencyCollectionException
+        throws DependencyCollectionException
     {
         session.setDependencySelector( new ScopeDependencySelector( "provided", "test" ) );
         session.setDependencyManager( new ClassicDependencyManager() );
@@ -539,15 +532,15 @@ public class DefaultDependencyCollectorTest
         implements DependencyManager
     {
 
-        private Map<String, String> versions = new HashMap<String, String>();
+        private Map<String, String> versions = new HashMap<>();
 
-        private Map<String, String> scopes = new HashMap<String, String>();
+        private Map<String, String> scopes = new HashMap<>();
 
-        private Map<String, Boolean> optionals = new HashMap<String, Boolean>();
+        private Map<String, Boolean> optionals = new HashMap<>();
 
-        private Map<String, String> paths = new HashMap<String, String>();
+        private Map<String, String> paths = new HashMap<>();
 
-        private Map<String, Collection<Exclusion>> exclusions = new HashMap<String, Collection<Exclusion>>();
+        private Map<String, Collection<Exclusion>> exclusions = new HashMap<>();
 
         public void add( Dependency d, String version, String scope, String localPath )
         {
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactDownload.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactDownload.java
index 3d82ac1..5c1fe7f 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactDownload.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/ArtifactDownload.java
@@ -80,15 +80,6 @@ public final class ArtifactDownload
         return this;
     }
 
-    /**
-     * {@inheritDoc} <em>Note:</em> In case of {@link #isExistenceCheck()}, this method may return {@code null}.
-     */
-    @Override
-    public File getFile()
-    {
-        return super.getFile();
-    }
-
     @Override
     public ArtifactDownload setFile( File file )
     {
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/RepositoryConnector.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/RepositoryConnector.java
index 51e0627..0592623 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/RepositoryConnector.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/RepositoryConnector.java
@@ -65,7 +65,8 @@ public interface RepositoryConnector
      * @param artifactUploads The artifact uploads to perform, may be {@code null} or empty.
      * @param metadataUploads The metadata uploads to perform, may be {@code null} or empty.
      */
-    void put( Collection<? extends ArtifactUpload> artifactUploads, Collection<? extends MetadataUpload> metadataUploads );
+    void put( Collection<? extends ArtifactUpload> artifactUploads,
+              Collection<? extends MetadataUpload> metadataUploads );
 
     /**
      * Closes this connector and frees any network resources associated with it. Once closed, a connector must not be
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/GetTask.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/GetTask.java
index dd9c867..3d30694 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/GetTask.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/GetTask.java
@@ -236,7 +236,7 @@ public final class GetTask
         {
             if ( checksums.isEmpty() )
             {
-                checksums = new HashMap<String, String>();
+                checksums = new HashMap<>();
             }
             if ( value != null && value.length() > 0 )
             {
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/io/FileProcessor.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/io/FileProcessor.java
index 1de21a0..9e0f098 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/io/FileProcessor.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/io/FileProcessor.java
@@ -104,7 +104,7 @@ public interface FileProcessor
      * 
      * @see FileProcessor#copy(File, File, ProgressListener)
      */
-    public interface ProgressListener
+    interface ProgressListener
     {
 
         void progressed( ByteBuffer buffer )
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/DependencyGraphParser.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/DependencyGraphParser.java
index 3bdeaa6..09b0489 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/DependencyGraphParser.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/DependencyGraphParser.java
@@ -52,7 +52,8 @@ import org.eclipse.aether.version.VersionScheme;
  * comment   ::= "#" rest-of-line
  * indent    ::= "|  "*  ("+" | "\\") "- "
  * reference ::= "^" id
- * node      ::= coords (range)? space (scope("&lt;" premanagedScope)?)? space "optional"? space ("relocations=" coords ("," coords)*)? ("(" id ")")?
+ * node      ::= coords (range)? space (scope("&lt;" premanagedScope)?)? space "optional"? space
+ *                  ("relocations=" coords ("," coords)*)? ("(" id ")")?
  * coords    ::= groupId ":" artifactId (":" extension (":" classifier)?)? ":" version
  * </pre>
  * 
@@ -172,7 +173,7 @@ public class DependencyGraphParser
 
         BufferedReader reader = new BufferedReader( new InputStreamReader( res.openStream(), StandardCharsets.UTF_8 ) );
 
-        List<DependencyNode> ret = new ArrayList<DependencyNode>();
+        List<DependencyNode> ret = new ArrayList<>();
         DependencyNode root = null;
         while ( ( root = parse( reader ) ) != null )
         {
@@ -191,8 +192,7 @@ public class DependencyGraphParser
         try
         {
             reader = new BufferedReader( new InputStreamReader( resource.openStream(), StandardCharsets.UTF_8 ) );
-            final DependencyNode node = parse( reader );
-            return node;
+            return parse( reader );
         }
         finally
         {
@@ -222,8 +222,8 @@ public class DependencyGraphParser
         DependencyNode node = null;
         int prevLevel = 0;
 
-        Map<String, DependencyNode> nodes = new HashMap<String, DependencyNode>();
-        LinkedList<DependencyNode> stack = new LinkedList<DependencyNode>();
+        Map<String, DependencyNode> nodes = new HashMap<>();
+        LinkedList<DependencyNode> stack = new LinkedList<>();
         boolean isRootNode = true;
 
         while ( ( line = in.readLine() ) != null )
@@ -352,7 +352,7 @@ public class DependencyGraphParser
             node.setManagedBits( managedBits );
             if ( def.relocations != null )
             {
-                List<Artifact> relocations = new ArrayList<Artifact>();
+                List<Artifact> relocations = new ArrayList<>();
                 for ( String relocation : def.relocations )
                 {
                     relocations.add( new DefaultArtifact( relocation ) );
@@ -387,7 +387,7 @@ public class DependencyGraphParser
     {
         StringBuilder ret = new StringBuilder();
 
-        List<NodeEntry> entries = new ArrayList<NodeEntry>();
+        List<NodeEntry> entries = new ArrayList<>();
 
         addNode( root, 0, entries );
 
@@ -425,7 +425,8 @@ public class DependencyGraphParser
         {
             Artifact artifact = dependency.getArtifact();
 
-            defBuilder.append( artifact.getGroupId() ).append( ":" ).append( artifact.getArtifactId() ).append( ":" ).append( artifact.getExtension() ).append( ":" ).append( artifact.getVersion() );
+            defBuilder.append( artifact.getGroupId() ).append( ":" ).append( artifact.getArtifactId() ).append( ":" )
+                    .append( artifact.getExtension() ).append( ":" ).append( artifact.getVersion() );
             if ( dependency.getScope() != null && ( !"".equals( dependency.getScope() ) ) )
             {
                 defBuilder.append( ":" ).append( dependency.getScope() );
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/IniArtifactDataReader.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/IniArtifactDataReader.java
index 1dc8005..08a693b 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/IniArtifactDataReader.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/IniArtifactDataReader.java
@@ -112,7 +112,7 @@ class IniArtifactDataReader
 
         State state = State.NONE;
 
-        Map<State, List<String>> sections = new HashMap<State, List<String>>();
+        Map<State, List<String>> sections = new HashMap<>();
 
         BufferedReader in = null;
         try
@@ -175,14 +175,12 @@ class IniArtifactDataReader
         List<Dependency> managedDependencies = dependencies( sections.get( State.MANAGEDDEPENDENCIES ), true );
         List<RemoteRepository> repositories = repositories( sections.get( State.REPOSITORIES ) );
 
-        ArtifactDescription description =
-            new ArtifactDescription( relocation, dependencies, managedDependencies, repositories );
-        return description;
+        return new ArtifactDescription( relocation, dependencies, managedDependencies, repositories );
     }
 
     private List<RemoteRepository> repositories( List<String> list )
     {
-        ArrayList<RemoteRepository> ret = new ArrayList<RemoteRepository>();
+        ArrayList<RemoteRepository> ret = new ArrayList<>();
         if ( list == null )
         {
             return ret;
@@ -201,13 +199,13 @@ class IniArtifactDataReader
 
     private List<Dependency> dependencies( List<String> list, boolean managed )
     {
-        List<Dependency> ret = new ArrayList<Dependency>();
+        List<Dependency> ret = new ArrayList<>();
         if ( list == null )
         {
             return ret;
         }
 
-        Collection<Exclusion> exclusions = new ArrayList<Exclusion>();
+        Collection<Exclusion> exclusions = new ArrayList<>();
 
         Boolean optional = null;
         Artifact artifact = null;
@@ -229,7 +227,7 @@ class IniArtifactDataReader
                     Dependency dep = new Dependency( artifact, scope, optional, exclusions );
                     ret.add( dep );
 
-                    exclusions = new ArrayList<Exclusion>();
+                    exclusions = new ArrayList<>();
                 }
 
                 ArtifactDefinition def = new ArtifactDefinition( coords );
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/NodeBuilder.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/NodeBuilder.java
index fdd988a..a327b5b 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/NodeBuilder.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/NodeBuilder.java
@@ -58,11 +58,11 @@ public class NodeBuilder
 
     private String context;
 
-    private List<Artifact> relocations = new ArrayList<Artifact>();
+    private List<Artifact> relocations = new ArrayList<>();
 
     private VersionScheme versionScheme = new TestVersionScheme();
 
-    private Map<String, String> properties = new HashMap<String, String>( 0 );
+    private Map<String, String> properties = new HashMap<>( 0 );
 
     public NodeBuilder artifactId( String artifactId )
     {
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/NodeDefinition.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/NodeDefinition.java
index 023a383..5d21455 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/NodeDefinition.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/NodeDefinition.java
@@ -111,7 +111,7 @@ class NodeDefinition
         String props = m.group( 5 );
         if ( props != null )
         {
-            properties = new LinkedHashMap<String, String>();
+            properties = new LinkedHashMap<>();
             for ( String prop : props.split( "\\s*,\\s*" ) )
             {
                 int sep = prop.indexOf( ':' );
@@ -128,7 +128,7 @@ class NodeDefinition
         String relocs = m.group( 9 );
         if ( relocs != null )
         {
-            relocations = new ArrayList<String>();
+            relocations = new ArrayList<>();
             Collections.addAll( relocations, relocs.split( "\\s*,\\s*" ) );
         }
 
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestDependencyGraphTransformationContext.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestDependencyGraphTransformationContext.java
index 762c9f8..ee6fe60 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestDependencyGraphTransformationContext.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestDependencyGraphTransformationContext.java
@@ -39,7 +39,7 @@ class TestDependencyGraphTransformationContext
     TestDependencyGraphTransformationContext( RepositorySystemSession session )
     {
         this.session = session;
-        this.map = new HashMap<Object, Object>();
+        this.map = new HashMap<>();
     }
 
     public RepositorySystemSession getSession()
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
index f59199f..afe28e7 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
@@ -79,7 +79,7 @@ public class TestFileUtils
             return;
         }
 
-        Collection<File> undeletables = new ArrayList<File>();
+        Collection<File> undeletables = new ArrayList<>();
 
         delete( file, undeletables );
 
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestLocalRepositoryManager.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestLocalRepositoryManager.java
index f97fb78..19828e9 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestLocalRepositoryManager.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestLocalRepositoryManager.java
@@ -46,11 +46,11 @@ public class TestLocalRepositoryManager
 
     private LocalRepository localRepository;
 
-    private Set<Artifact> unavailableArtifacts = new HashSet<Artifact>();
+    private Set<Artifact> unavailableArtifacts = new HashSet<>();
 
-    private Set<Artifact> artifactRegistrations = new HashSet<Artifact>();
+    private Set<Artifact> artifactRegistrations = new HashSet<>();
 
-    private Set<Metadata> metadataRegistrations = new HashSet<Metadata>();
+    private Set<Metadata> metadataRegistrations = new HashSet<>();
 
     public TestLocalRepositoryManager()
     {
@@ -77,10 +77,8 @@ public class TestLocalRepositoryManager
         String version = artifact.getVersion();
         String classifier = artifact.getClassifier();
 
-        String path =
-            String.format( "%s/%s/%s/%s-%s-%s%s.%s", groupId, artifactId, version, groupId, artifactId, version,
-                           classifier, extension );
-        return path;
+        return String.format( "%s/%s/%s/%s-%s-%s%s.%s", groupId, artifactId, version, groupId, artifactId, version,
+                       classifier, extension );
     }
 
     public String getPathForRemoteArtifact( Artifact artifact, RemoteRepository repository, String context )
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionConstraint.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionConstraint.java
index 04ede73..0f93a59 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionConstraint.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionConstraint.java
@@ -25,6 +25,8 @@ import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionConstraint;
 import org.eclipse.aether.version.VersionRange;
 
+import java.util.Objects;
+
 /**
  * A constraint on versions for a dependency.
  */
@@ -100,12 +102,8 @@ final class TestVersionConstraint
 
         TestVersionConstraint that = (TestVersionConstraint) obj;
 
-        return eq( range, that.range ) && eq( version, that.getVersion() );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( range, that.range )
+                && Objects.equals( version, that.getVersion() );
     }
 
     @Override
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionFilterContext.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionFilterContext.java
index 1e1b230..44f4f56 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionFilterContext.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionFilterContext.java
@@ -52,7 +52,7 @@ class TestVersionFilterContext
         this.session = session;
         this.result = result;
         dependency = new Dependency( result.getRequest().getArtifact(), "" );
-        versions = new ArrayList<Version>( result.getVersions() );
+        versions = new ArrayList<>( result.getVersions() );
     }
 
     public RepositorySystemSession getSession()
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionRange.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionRange.java
index dfff78a..750a63f 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionRange.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionRange.java
@@ -23,6 +23,8 @@ import org.eclipse.aether.version.InvalidVersionSpecificationException;
 import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionRange;
 
+import java.util.Objects;
+
 /**
  * A version range inspired by mathematical range syntax. For example, "[1.0,2.0)", "[1.0,)" or "[1.0]".
  */
@@ -89,7 +91,8 @@ final class TestVersionRange
                     + ", single version must be surrounded by []" );
             }
 
-            lowerBound = upperBound = new TestVersion( process.trim() );
+            lowerBound = new TestVersion( process.trim() );
+            upperBound = new TestVersion( process.trim() );
         }
         else
         {
@@ -202,12 +205,8 @@ final class TestVersionRange
         TestVersionRange that = (TestVersionRange) obj;
 
         return upperBoundInclusive == that.upperBoundInclusive && lowerBoundInclusive == that.lowerBoundInclusive
-            && eq( upperBound, that.upperBound ) && eq( lowerBound, that.lowerBound );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+            && Objects.equals( upperBound, that.upperBound )
+            && Objects.equals( lowerBound, that.lowerBound );
     }
 
     @Override
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionScheme.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionScheme.java
index 5865f6c..e6aa2ed 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionScheme.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionScheme.java
@@ -36,7 +36,6 @@ final class TestVersionScheme
 {
 
     public Version parseVersion( final String version )
-        throws InvalidVersionSpecificationException
     {
         return new TestVersion( version );
     }
@@ -50,7 +49,7 @@ final class TestVersionScheme
     public VersionConstraint parseVersionConstraint( final String constraint )
         throws InvalidVersionSpecificationException
     {
-        Collection<VersionRange> ranges = new ArrayList<VersionRange>();
+        Collection<VersionRange> ranges = new ArrayList<>();
 
         String process = constraint;
 
diff --git a/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/IniArtifactDataReaderTest.java b/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/IniArtifactDataReaderTest.java
index 4864b32..7afd8bc 100644
--- a/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/IniArtifactDataReaderTest.java
+++ b/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/IniArtifactDataReaderTest.java
@@ -44,7 +44,6 @@ public class IniArtifactDataReaderTest
 
     @Before
     public void setup()
-        throws Exception
     {
         this.parser = new IniArtifactDataReader( "org/eclipse/aether/internal/test/util/" );
     }
diff --git a/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/IniArtifactDescriptorReaderTest.java b/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/IniArtifactDescriptorReaderTest.java
index 8b6bfa4..41ed12a 100644
--- a/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/IniArtifactDescriptorReaderTest.java
+++ b/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/IniArtifactDescriptorReaderTest.java
@@ -21,7 +21,6 @@ package org.eclipse.aether.internal.test.util;
 
 import static org.junit.Assert.*;
 
-import java.io.IOException;
 import java.util.Iterator;
 import java.util.List;
 
@@ -30,7 +29,6 @@ import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.artifact.DefaultArtifact;
 import org.eclipse.aether.graph.Dependency;
 import org.eclipse.aether.graph.Exclusion;
-import org.eclipse.aether.internal.test.util.IniArtifactDescriptorReader;
 import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.resolution.ArtifactDescriptorException;
 import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
@@ -49,7 +47,6 @@ public class IniArtifactDescriptorReaderTest
 
     @Before
     public void setup()
-        throws IOException
     {
         reader = new IniArtifactDescriptorReader( "org/eclipse/aether/internal/test/util/" );
         session = TestUtils.newSession();
diff --git a/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java b/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
index 6d7fa32..d61dec9 100644
--- a/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
+++ b/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
@@ -91,7 +91,6 @@ public class ClasspathTransporterTest
 
     @Test
     public void testClassify()
-        throws Exception
     {
         assertEquals( Transporter.ERROR_OTHER, transporter.classify( new FileNotFoundException() ) );
         assertEquals( Transporter.ERROR_NOT_FOUND, transporter.classify( new ResourceNotFoundException( "test" ) ) );
diff --git a/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java b/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
index f636644..e075dfd 100644
--- a/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
+++ b/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
@@ -97,7 +97,6 @@ public class FileTransporterTest
 
     @Test
     public void testClassify()
-        throws Exception
     {
         assertEquals( Transporter.ERROR_OTHER, transporter.classify( new FileNotFoundException() ) );
         assertEquals( Transporter.ERROR_NOT_FOUND, transporter.classify( new ResourceNotFoundException( "test" ) ) );
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/AuthSchemePool.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/AuthSchemePool.java
index 5c22963..1957688 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/AuthSchemePool.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/AuthSchemePool.java
@@ -37,7 +37,7 @@ final class AuthSchemePool
 
     AuthSchemePool()
     {
-        authSchemes = new LinkedList<AuthScheme>();
+        authSchemes = new LinkedList<>();
     }
 
     public synchronized AuthScheme get()
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java
index 7d93d5a..124a8c0 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java
@@ -47,7 +47,7 @@ final class DeferredCredentialsProvider
     DeferredCredentialsProvider()
     {
         delegate = new BasicCredentialsProvider();
-        factories = new HashMap<AuthScope, Factory>();
+        factories = new HashMap<>();
     }
 
     public void setCredentials( AuthScope authScope, Factory factory )
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java
index 3ad75b5..29ef555 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java
@@ -133,15 +133,16 @@ final class GlobalState
 
     private GlobalState()
     {
-        connectionManagers = new ConcurrentHashMap<SslConfig, ClientConnectionManager>();
-        userTokens = new ConcurrentHashMap<CompoundKey, Object>();
-        authSchemePools = new ConcurrentHashMap<HttpHost, AuthSchemePool>();
-        expectContinues = new ConcurrentHashMap<CompoundKey, Boolean>();
+        connectionManagers = new ConcurrentHashMap<>();
+        userTokens = new ConcurrentHashMap<>();
+        authSchemePools = new ConcurrentHashMap<>();
+        expectContinues = new ConcurrentHashMap<>();
     }
 
     public void close()
     {
-        for ( Iterator<Map.Entry<SslConfig, ClientConnectionManager>> it = connectionManagers.entrySet().iterator(); it.hasNext(); )
+        for ( Iterator<Map.Entry<SslConfig, ClientConnectionManager>> it = connectionManagers.entrySet().iterator();
+              it.hasNext(); )
         {
             ClientConnectionManager connMgr = it.next().getValue();
             it.remove();
@@ -168,6 +169,7 @@ final class GlobalState
         return manager;
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     public static ClientConnectionManager newConnectionManager( SslConfig sslConfig )
     {
         SchemeRegistry schemeReg = new SchemeRegistry();
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
index 53b3dd0..15fa36a 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java
@@ -162,28 +162,22 @@ final class HttpTransporter
     private static void configureClient( HttpParams params, RepositorySystemSession session,
                                          RemoteRepository repository, HttpHost proxy )
     {
-        AuthParams.setCredentialCharset( params,
-                                         ConfigUtils.getString( session,
-                                                                ConfigurationProperties.DEFAULT_HTTP_CREDENTIAL_ENCODING,
-                                                                ConfigurationProperties.HTTP_CREDENTIAL_ENCODING + "."
-                                                                    + repository.getId(),
-                                                                ConfigurationProperties.HTTP_CREDENTIAL_ENCODING ) );
+        AuthParams.setCredentialCharset( params, ConfigUtils.getString( session,
+                ConfigurationProperties.DEFAULT_HTTP_CREDENTIAL_ENCODING,
+                ConfigurationProperties.HTTP_CREDENTIAL_ENCODING + "." + repository.getId(),
+                ConfigurationProperties.HTTP_CREDENTIAL_ENCODING ) );
         ConnRouteParams.setDefaultProxy( params, proxy );
-        HttpConnectionParams.setConnectionTimeout( params,
-                                                   ConfigUtils.getInteger( session,
-                                                                           ConfigurationProperties.DEFAULT_CONNECT_TIMEOUT,
-                                                                           ConfigurationProperties.CONNECT_TIMEOUT
-                                                                               + "." + repository.getId(),
-                                                                           ConfigurationProperties.CONNECT_TIMEOUT ) );
-        HttpConnectionParams.setSoTimeout( params,
-                                           ConfigUtils.getInteger( session,
-                                                                   ConfigurationProperties.DEFAULT_REQUEST_TIMEOUT,
-                                                                   ConfigurationProperties.REQUEST_TIMEOUT + "."
-                                                                       + repository.getId(),
-                                                                   ConfigurationProperties.REQUEST_TIMEOUT ) );
+        HttpConnectionParams.setConnectionTimeout( params, ConfigUtils.getInteger( session,
+                ConfigurationProperties.DEFAULT_CONNECT_TIMEOUT,
+                ConfigurationProperties.CONNECT_TIMEOUT + "." + repository.getId(),
+                ConfigurationProperties.CONNECT_TIMEOUT ) );
+        HttpConnectionParams.setSoTimeout( params, ConfigUtils.getInteger( session,
+                ConfigurationProperties.DEFAULT_REQUEST_TIMEOUT,
+                ConfigurationProperties.REQUEST_TIMEOUT + "." + repository.getId(),
+                ConfigurationProperties.REQUEST_TIMEOUT ) );
         HttpProtocolParams.setUserAgent( params, ConfigUtils.getString( session,
-                                                                        ConfigurationProperties.DEFAULT_USER_AGENT,
-                                                                        ConfigurationProperties.USER_AGENT ) );
+                ConfigurationProperties.DEFAULT_USER_AGENT,
+                ConfigurationProperties.USER_AGENT ) );
     }
 
     private static CredentialsProvider toCredentialsProvider( HttpHost server, AuthenticationContext serverAuthCtx,
@@ -346,6 +340,7 @@ final class HttpTransporter
         return response.containsHeader( HttpHeaders.DAV );
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     private void mkdirs( URI uri, SharingHttpContext context )
     {
         List<URI> dirs = UriUtils.getDirectories( baseUri, uri );
@@ -453,12 +448,13 @@ final class HttpTransporter
         return request;
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     private <T extends HttpUriRequest> T resume( T request, GetTask task )
     {
         long resumeOffset = task.getResumeOffset();
         if ( resumeOffset > 0L && task.getDataFile() != null )
         {
-            request.setHeader( HttpHeaders.RANGE, "bytes=" + Long.toString( resumeOffset ) + '-' );
+            request.setHeader( HttpHeaders.RANGE, "bytes=" + resumeOffset + '-' );
             request.setHeader( HttpHeaders.IF_UNMODIFIED_SINCE,
                                DateUtils.formatDate( new Date( task.getDataFile().lastModified() - 60L * 1000L ) ) );
             request.setHeader( HttpHeaders.ACCEPT_ENCODING, "identity" );
@@ -466,6 +462,7 @@ final class HttpTransporter
         return request;
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     private void handleStatus( HttpResponse response )
         throws HttpResponseException
     {
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java
index 44f7b60..ebc5bd5 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java
@@ -63,7 +63,7 @@ final class LocalState
             connMgr = GlobalState.newConnectionManager( sslConfig );
             userTokenKey = null;
             expectContinueKey = null;
-            authSchemePools = new ConcurrentHashMap<HttpHost, AuthSchemePool>();
+            authSchemePools = new ConcurrentHashMap<>();
         }
         else
         {
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java
index 77affc2..fcea8ae 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java
@@ -41,9 +41,10 @@ final class SharingAuthCache
     SharingAuthCache( LocalState state )
     {
         this.state = state;
-        authSchemes = new HashMap<HttpHost, AuthScheme>();
+        authSchemes = new HashMap<>();
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     private static HttpHost toKey( HttpHost host )
     {
         if ( host.getPort() <= 0 )
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SslConfig.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SslConfig.java
index 4c252a2..5655b75 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SslConfig.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SslConfig.java
@@ -20,6 +20,7 @@ package org.eclipse.aether.transport.http;
  */
 
 import java.util.Arrays;
+import java.util.Objects;
 
 import javax.net.ssl.HostnameVerifier;
 import javax.net.ssl.SSLContext;
@@ -89,13 +90,10 @@ final class SslConfig
             return false;
         }
         SslConfig that = (SslConfig) obj;
-        return eq( context, that.context ) && eq( verifier, that.verifier )
-            && Arrays.equals( cipherSuites, that.cipherSuites ) && Arrays.equals( protocols, that.protocols );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( context, that.context )
+                && Objects.equals( verifier, that.verifier )
+                && Arrays.equals( cipherSuites, that.cipherSuites )
+                && Arrays.equals( protocols, that.protocols );
     }
 
     @Override
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/UriUtils.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/UriUtils.java
index 7bc19da..6381cfb 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/UriUtils.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/UriUtils.java
@@ -55,7 +55,7 @@ final class UriUtils
 
     public static List<URI> getDirectories( URI base, URI uri )
     {
-        List<URI> dirs = new ArrayList<URI>();
+        List<URI> dirs = new ArrayList<>();
         for ( URI dir = uri.resolve( "." ); !isBase( base, dir ); dir = dir.resolve( ".." ) )
         {
             dirs.add( dir );
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/X509HostnameVerifierAdapter.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/X509HostnameVerifierAdapter.java
index 007f660..ac0825b 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/X509HostnameVerifierAdapter.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/X509HostnameVerifierAdapter.java
@@ -67,13 +67,11 @@ final class X509HostnameVerifierAdapter
     }
 
     public void verify( String host, X509Certificate cert )
-        throws SSLException
     {
         throw new UnsupportedOperationException();
     }
 
     public void verify( String host, String[] cns, String[] subjectAlts )
-        throws SSLException
     {
         throw new UnsupportedOperationException();
     }
diff --git a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
index 5a863e7..ee5dbed 100644
--- a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
+++ b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
@@ -254,14 +254,12 @@ public class HttpServer
         extends AbstractHandler
     {
 
-        @SuppressWarnings( "unchecked" )
         public void handle( String target, Request req, HttpServletRequest request, HttpServletResponse response )
-            throws IOException
         {
             LOGGER.info( "{} {}{}", req.getMethod(), req.getRequestURL(),
                     req.getQueryString() != null ? "?" + req.getQueryString() : "");
 
-            Map<String, String> headers = new TreeMap<String, String>( String.CASE_INSENSITIVE_ORDER );
+            Map<String, String> headers = new TreeMap<>( String.CASE_INSENSITIVE_ORDER );
             for ( Enumeration<String> en = req.getHeaderNames(); en.hasMoreElements(); )
             {
                 String name = en.nextElement();
@@ -350,11 +348,9 @@ public class HttpServer
                 if ( checksumHeader != null )
                 {
                     Map<String, Object> checksums = ChecksumUtils.calc( file, Collections.singleton( "SHA-1" ) );
-                    switch ( checksumHeader )
+                    if ( checksumHeader == ChecksumHeader.NEXUS )
                     {
-                        case NEXUS:
-                            response.setHeader( HttpHeader.ETAG.asString(), "{SHA1{" + checksums.get( "SHA-1" ) + "}}" );
-                            break;
+                        response.setHeader( HttpHeader.ETAG.asString(), "{SHA1{" + checksums.get( "SHA-1" ) + "}}" );
                     }
                 }
                 if ( HttpMethod.HEAD.is( req.getMethod() ) )
@@ -474,7 +470,6 @@ public class HttpServer
     {
 
         public void handle( String target, Request req, HttpServletRequest request, HttpServletResponse response )
-            throws IOException
         {
             String path = req.getPathInfo();
             if ( !path.startsWith( "/redirect/" ) )
@@ -539,7 +534,6 @@ public class HttpServer
     {
 
         public void handle( String target, Request req, HttpServletRequest request, HttpServletResponse response )
-            throws IOException
         {
             if ( proxyUsername != null && proxyPassword != null )
             {
diff --git a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
index 384827f..6bec999 100644
--- a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
+++ b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
@@ -709,7 +709,7 @@ public class HttpTransporterTest
     public void testPut_Authenticated_ExpectContinueRejected_ExplicitlyConfiguredHeader()
         throws Exception
     {
-        Map<String, String> headers = new HashMap<String, String>();
+        Map<String, String> headers = new HashMap<>();
         headers.put( "Expect", "100-continue" );
         session.setConfigProperty( ConfigurationProperties.HTTP_HEADERS + ".test", headers );
         httpServer.setAuthentication( "testuser", "testpass" );
@@ -928,8 +928,8 @@ public class HttpTransporterTest
         httpServer.setAuthentication( "testuser", "testpass" );
         auth = new AuthenticationBuilder().addUsername( "testuser" ).addPassword( "testpass" ).build();
         newTransporter( httpServer.getHttpUrl() );
-        final AtomicReference<Throwable> error = new AtomicReference<Throwable>();
-        Thread threads[] = new Thread[20];
+        final AtomicReference<Throwable> error = new AtomicReference<>();
+        Thread[] threads = new Thread[20];
         for ( int i = 0; i < threads.length; i++ )
         {
             final String path = "repo/file.txt?i=" + i;
@@ -980,11 +980,7 @@ public class HttpTransporterTest
             transporter.get( new GetTask( URI.create( "repo/file.txt" ) ) );
             fail( "Expected error" );
         }
-        catch ( ConnectTimeoutException e )
-        {
-            assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
-        }
-        catch ( ConnectException e )
+        catch ( ConnectTimeoutException | ConnectException e )
         {
             assertEquals( Transporter.ERROR_OTHER, transporter.classify( e ) );
         }
@@ -1033,7 +1029,7 @@ public class HttpTransporterTest
     public void testCustomHeaders()
         throws Exception
     {
-        Map<String, String> headers = new HashMap<String, String>();
+        Map<String, String> headers = new HashMap<>();
         headers.put( "User-Agent", "Custom/1.0" );
         headers.put( "X-CustomHeader", "Custom-Value" );
         session.setConfigProperty( ConfigurationProperties.USER_AGENT, "SomeTest/1.0" );
diff --git a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/UriUtilsTest.java b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/UriUtilsTest.java
index e3ea9fa..70fd34d 100644
--- a/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/UriUtilsTest.java
+++ b/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/UriUtilsTest.java
@@ -87,7 +87,7 @@ public class UriUtilsTest
 
     private void assertUris( List<URI> actual, String... expected )
     {
-        List<String> uris = new ArrayList<String>( actual.size() );
+        List<String> uris = new ArrayList<>( actual.size() );
         for ( URI uri : actual )
         {
             uris.add( uri.toString() );
diff --git a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonConfigurator.java b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonConfigurator.java
index b4bf957..a6d150c 100644
--- a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonConfigurator.java
+++ b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonConfigurator.java
@@ -77,7 +77,8 @@ public class PlexusWagonConfigurator
         }
         else
         {
-            throw new IllegalArgumentException( "unexpected configuration type: " + configuration.getClass().getName() );
+            throw new IllegalArgumentException( "unexpected configuration type: "
+                    + configuration.getClass().getName() );
         }
 
         WagonComponentConfigurator configurator = new WagonComponentConfigurator();
diff --git a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
index 14a01d1..92f3064 100644
--- a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
+++ b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
@@ -96,7 +96,7 @@ final class WagonTransporter
 
     private final Properties headers;
 
-    private final Queue<Wagon> wagons = new ConcurrentLinkedQueue<Wagon>();
+    private final Queue<Wagon> wagons = new ConcurrentLinkedQueue<>();
 
     private final AtomicBoolean closed = new AtomicBoolean();
 
@@ -154,21 +154,21 @@ final class WagonTransporter
 
         String suffix = '.' + repoId;
 
-        String fileMode = ConfigUtils.getString( session, (String) null, CONFIG_PROP_FILE_MODE + suffix );
+        String fileMode = ConfigUtils.getString( session, null, CONFIG_PROP_FILE_MODE + suffix );
         if ( fileMode != null )
         {
             perms.setFileMode( fileMode );
             result = perms;
         }
 
-        String dirMode = ConfigUtils.getString( session, (String) null, CONFIG_PROP_DIR_MODE + suffix );
+        String dirMode = ConfigUtils.getString( session, null, CONFIG_PROP_DIR_MODE + suffix );
         if ( dirMode != null )
         {
             perms.setDirectoryMode( dirMode );
             result = perms;
         }
 
-        String group = ConfigUtils.getString( session, (String) null, CONFIG_PROP_GROUP + suffix );
+        String group = ConfigUtils.getString( session, null, CONFIG_PROP_GROUP + suffix );
         if ( group != null )
         {
             perms.setGroup( group );
diff --git a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagon.java b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagon.java
index 17c82f2..bc62d37 100644
--- a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagon.java
+++ b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagon.java
@@ -122,19 +122,7 @@ public class MemWagon
         {
             fillInputData( inputData );
         }
-        catch ( TransferFailedException e )
-        {
-            fireTransferError( resource, e, TransferEvent.REQUEST_GET );
-            cleanupGetTransfer( resource );
-            throw e;
-        }
-        catch ( ResourceDoesNotExistException e )
-        {
-            fireTransferError( resource, e, TransferEvent.REQUEST_GET );
-            cleanupGetTransfer( resource );
-            throw e;
-        }
-        catch ( AuthorizationException e )
+        catch ( TransferFailedException | AuthorizationException | ResourceDoesNotExistException e )
         {
             fireTransferError( resource, e, TransferEvent.REQUEST_GET );
             cleanupGetTransfer( resource );
diff --git a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagonUtils.java b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagonUtils.java
index 86d2cc7..993a26a 100644
--- a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagonUtils.java
+++ b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagonUtils.java
@@ -36,15 +36,14 @@ import org.apache.maven.wagon.proxy.ProxyInfo;
 class MemWagonUtils
 {
 
-    private static final ConcurrentMap<String, Map<String, String>> mounts =
-        new ConcurrentHashMap<String, Map<String, String>>();
+    private static final ConcurrentMap<String, Map<String, String>> mounts = new ConcurrentHashMap<>();
 
     public static Map<String, String> getFilesystem( String id )
     {
         Map<String, String> fs = mounts.get( id );
         if ( fs == null )
         {
-            fs = new ConcurrentHashMap<String, String>();
+            fs = new ConcurrentHashMap<>();
             Map<String, String> prev = mounts.putIfAbsent( id, fs );
             if ( prev != null )
             {
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/ChecksumUtils.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/ChecksumUtils.java
index 9b4714c..0ac354f 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/ChecksumUtils.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/ChecksumUtils.java
@@ -55,7 +55,8 @@ public final class ChecksumUtils
         throws IOException
     {
         String checksum = "";
-        try ( BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream( checksumFile ), StandardCharsets.UTF_8 ), 512 ) )
+        try ( BufferedReader br = new BufferedReader( new InputStreamReader(
+                new FileInputStream( checksumFile ), StandardCharsets.UTF_8 ), 512 ) )
         {
             while ( true )
             {
@@ -118,9 +119,9 @@ public final class ChecksumUtils
     private static Map<String, Object> calc( InputStream data, Collection<String> algos )
         throws IOException
     {
-        Map<String, Object> results = new LinkedHashMap<String, Object>();
+        Map<String, Object> results = new LinkedHashMap<>();
 
-        Map<String, MessageDigest> digests = new LinkedHashMap<String, MessageDigest>();
+        Map<String, MessageDigest> digests = new LinkedHashMap<>();
         for ( String algo : algos )
         {
             try
@@ -167,6 +168,7 @@ public final class ChecksumUtils
      * @param bytes The bytes to represent in hex notation, may be be {@code null}.
      * @return The hexadecimal representation of the input or {@code null} if the input was {@code null}.
      */
+    @SuppressWarnings( "checkstyle:magicnumber" )
     public static String toHexString( byte[] bytes )
     {
         if ( bytes == null )
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/ConfigUtils.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/ConfigUtils.java
index 2f53856..4023916 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/ConfigUtils.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/ConfigUtils.java
@@ -328,7 +328,7 @@ public final class ConfigUtils
             }
             else if ( value instanceof Collection )
             {
-                return Collections.unmodifiableList( new ArrayList<Object>( (Collection<?>) value ) );
+                return Collections.unmodifiableList( new ArrayList<>( (Collection<?>) value ) );
             }
         }
 
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/ArtifactIdUtils.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/ArtifactIdUtils.java
index 54ffc64..27a1f0d 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/ArtifactIdUtils.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/ArtifactIdUtils.java
@@ -21,6 +21,8 @@ package org.eclipse.aether.util.artifact;
 
 import org.eclipse.aether.artifact.Artifact;
 
+import java.util.Objects;
+
 /**
  * A utility class for artifact identifiers.
  */
@@ -165,23 +167,23 @@ public final class ArtifactIdUtils
         {
             return false;
         }
-        if ( !eq( artifact1.getArtifactId(), artifact2.getArtifactId() ) )
+        if ( !Objects.equals( artifact1.getArtifactId(), artifact2.getArtifactId() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getGroupId(), artifact2.getGroupId() ) )
+        if ( !Objects.equals( artifact1.getGroupId(), artifact2.getGroupId() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getExtension(), artifact2.getExtension() ) )
+        if ( !Objects.equals( artifact1.getExtension(), artifact2.getExtension() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getClassifier(), artifact2.getClassifier() ) )
+        if ( !Objects.equals( artifact1.getClassifier(), artifact2.getClassifier() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getVersion(), artifact2.getVersion() ) )
+        if ( !Objects.equals( artifact1.getVersion(), artifact2.getVersion() ) )
         {
             return false;
         }
@@ -203,23 +205,23 @@ public final class ArtifactIdUtils
         {
             return false;
         }
-        if ( !eq( artifact1.getArtifactId(), artifact2.getArtifactId() ) )
+        if ( !Objects.equals( artifact1.getArtifactId(), artifact2.getArtifactId() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getGroupId(), artifact2.getGroupId() ) )
+        if ( !Objects.equals( artifact1.getGroupId(), artifact2.getGroupId() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getExtension(), artifact2.getExtension() ) )
+        if ( !Objects.equals( artifact1.getExtension(), artifact2.getExtension() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getClassifier(), artifact2.getClassifier() ) )
+        if ( !Objects.equals( artifact1.getClassifier(), artifact2.getClassifier() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getBaseVersion(), artifact2.getBaseVersion() ) )
+        if ( !Objects.equals( artifact1.getBaseVersion(), artifact2.getBaseVersion() ) )
         {
             return false;
         }
@@ -242,28 +244,22 @@ public final class ArtifactIdUtils
         {
             return false;
         }
-        if ( !eq( artifact1.getArtifactId(), artifact2.getArtifactId() ) )
+        if ( !Objects.equals( artifact1.getArtifactId(), artifact2.getArtifactId() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getGroupId(), artifact2.getGroupId() ) )
+        if ( !Objects.equals( artifact1.getGroupId(), artifact2.getGroupId() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getExtension(), artifact2.getExtension() ) )
+        if ( !Objects.equals( artifact1.getExtension(), artifact2.getExtension() ) )
         {
             return false;
         }
-        if ( !eq( artifact1.getClassifier(), artifact2.getClassifier() ) )
+        if ( !Objects.equals( artifact1.getClassifier(), artifact2.getClassifier() ) )
         {
             return false;
         }
         return true;
     }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
-    }
-
 }
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SimpleArtifactTypeRegistry.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SimpleArtifactTypeRegistry.java
index 0980d06..269e42b 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SimpleArtifactTypeRegistry.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SimpleArtifactTypeRegistry.java
@@ -40,7 +40,7 @@ class SimpleArtifactTypeRegistry
      */
     SimpleArtifactTypeRegistry()
     {
-        types = new HashMap<String, ArtifactType>();
+        types = new HashMap<>();
     }
 
     /**
@@ -57,9 +57,7 @@ class SimpleArtifactTypeRegistry
 
     public ArtifactType get( String typeId )
     {
-        ArtifactType type = types.get( typeId );
-
-        return type;
+        return types.get( typeId );
     }
 
     @Override
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SubArtifact.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SubArtifact.java
index e0beb21..83dd3a5 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SubArtifact.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SubArtifact.java
@@ -21,6 +21,8 @@ package org.eclipse.aether.util.artifact;
 
 import java.io.File;
 import java.util.Map;
+import java.util.Objects;
+
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.artifact.AbstractArtifact;
@@ -166,7 +168,7 @@ public final class SubArtifact
 
     public Artifact setFile( File file )
     {
-        if ( ( this.file == null ) ? file == null : this.file.equals( file ) )
+        if ( Objects.equals( this.file, file ) )
         {
             return this;
         }
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/concurrency/RunnableErrorForwarder.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/concurrency/RunnableErrorForwarder.java
index 6bb2f9d..4f9fba4 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/concurrency/RunnableErrorForwarder.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/concurrency/RunnableErrorForwarder.java
@@ -45,7 +45,7 @@ public final class RunnableErrorForwarder
 
     private final AtomicInteger counter = new AtomicInteger();
 
-    private final AtomicReference<Throwable> error = new AtomicReference<Throwable>();
+    private final AtomicReference<Throwable> error = new AtomicReference<>();
 
     /**
      * Creates a new error forwarder for worker threads spawned by the current thread.
@@ -74,12 +74,7 @@ public final class RunnableErrorForwarder
                 {
                     runnable.run();
                 }
-                catch ( RuntimeException e )
-                {
-                    error.compareAndSet( null, e );
-                    throw e;
-                }
-                catch ( Error e )
+                catch ( RuntimeException | Error e )
                 {
                     error.compareAndSet( null, e );
                     throw e;
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/AbstractPatternDependencyFilter.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/AbstractPatternDependencyFilter.java
index b874c4f..87d22ee 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/AbstractPatternDependencyFilter.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/AbstractPatternDependencyFilter.java
@@ -23,6 +23,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 
 import org.eclipse.aether.artifact.Artifact;
@@ -40,7 +41,7 @@ class AbstractPatternDependencyFilter
     implements DependencyFilter
 {
 
-    private final Set<String> patterns = new HashSet<String>();
+    private final Set<String> patterns = new HashSet<>();
 
     private final VersionScheme versionScheme;
 
@@ -153,7 +154,7 @@ class AbstractPatternDependencyFilter
         // support leading wildcard
         else if ( pattern.startsWith( "*" ) )
         {
-            final String suffix = pattern.substring( 1, pattern.length() );
+            final String suffix = pattern.substring( 1 );
 
             matches = token.endsWith( suffix );
         }
@@ -215,9 +216,8 @@ class AbstractPatternDependencyFilter
 
         final AbstractPatternDependencyFilter that = (AbstractPatternDependencyFilter) obj;
 
-        return this.patterns.equals( that.patterns )
-            && ( this.versionScheme == null ? that.versionScheme == null
-                            : this.versionScheme.equals( that.versionScheme ) );
+        return Objects.equals( this.patterns, that.patterns )
+            && Objects.equals( this.versionScheme, that.versionScheme );
     }
 
     @Override
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/AndDependencyFilter.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/AndDependencyFilter.java
index 9997c94..6a45d78 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/AndDependencyFilter.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/AndDependencyFilter.java
@@ -36,7 +36,7 @@ public final class AndDependencyFilter
     implements DependencyFilter
 {
 
-    private final Set<DependencyFilter> filters = new LinkedHashSet<DependencyFilter>();
+    private final Set<DependencyFilter> filters = new LinkedHashSet<>();
 
     /**
      * Creates a new filter from the specified filters. Prefer {@link #newInstance(DependencyFilter, DependencyFilter)}
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/DependencyFilterUtils.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/DependencyFilterUtils.java
index 887c4b1..f178d0b 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/DependencyFilterUtils.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/DependencyFilterUtils.java
@@ -148,7 +148,7 @@ public final class DependencyFilterUtils
      */
     public static DependencyFilter classpathFilter( Collection<String> classpathTypes )
     {
-        Collection<String> types = new HashSet<String>();
+        Collection<String> types = new HashSet<>();
 
         if ( classpathTypes != null )
         {
@@ -166,7 +166,7 @@ public final class DependencyFilterUtils
             }
         }
 
-        Collection<String> included = new HashSet<String>();
+        Collection<String> included = new HashSet<>();
         for ( String type : types )
         {
             if ( JavaScopes.COMPILE.equals( type ) )
@@ -188,7 +188,7 @@ public final class DependencyFilterUtils
             }
         }
 
-        Collection<String> excluded = new HashSet<String>();
+        Collection<String> excluded = new HashSet<>();
         Collections.addAll( excluded, JavaScopes.COMPILE, JavaScopes.PROVIDED, JavaScopes.SYSTEM, JavaScopes.RUNTIME,
                             JavaScopes.TEST );
         excluded.removeAll( included );
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/ExclusionsDependencyFilter.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/ExclusionsDependencyFilter.java
index 2de4ae8..ca76539 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/ExclusionsDependencyFilter.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/ExclusionsDependencyFilter.java
@@ -35,7 +35,7 @@ public final class ExclusionsDependencyFilter
     implements DependencyFilter
 {
 
-    private final Set<String> excludes = new HashSet<String>();
+    private final Set<String> excludes = new HashSet<>();
 
     /**
      * Creates a new filter using the specified exclude patterns. A pattern can either be of the form
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/OrDependencyFilter.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/OrDependencyFilter.java
index 665f6e7..2c408e7 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/OrDependencyFilter.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/OrDependencyFilter.java
@@ -35,7 +35,7 @@ public final class OrDependencyFilter
     implements DependencyFilter
 {
 
-    private final Set<DependencyFilter> filters = new LinkedHashSet<DependencyFilter>();
+    private final Set<DependencyFilter> filters = new LinkedHashSet<>();
 
     /**
      * Creates a new filter from the specified filters.
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/ScopeDependencyFilter.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/ScopeDependencyFilter.java
index bc60c41..d2657d3 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/ScopeDependencyFilter.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/ScopeDependencyFilter.java
@@ -39,9 +39,9 @@ public final class ScopeDependencyFilter
     implements DependencyFilter
 {
 
-    private final Set<String> included = new HashSet<String>();
+    private final Set<String> included = new HashSet<>();
 
-    private final Set<String> excluded = new HashSet<String>();
+    private final Set<String> excluded = new HashSet<>();
 
     /**
      * Creates a new filter using the specified includes and excludes.
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/manager/ClassicDependencyManager.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/manager/ClassicDependencyManager.java
index 88c5d62..25db443 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/manager/ClassicDependencyManager.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/manager/ClassicDependencyManager.java
@@ -106,7 +106,7 @@ public final class ClassicDependencyManager
             {
                 if ( managedVersions == this.managedVersions )
                 {
-                    managedVersions = new HashMap<Object, String>( this.managedVersions );
+                    managedVersions = new HashMap<>( this.managedVersions );
                 }
                 managedVersions.put( key, version );
             }
@@ -116,7 +116,7 @@ public final class ClassicDependencyManager
             {
                 if ( managedScopes == this.managedScopes )
                 {
-                    managedScopes = new HashMap<Object, String>( this.managedScopes );
+                    managedScopes = new HashMap<>( this.managedScopes );
                 }
                 managedScopes.put( key, scope );
             }
@@ -126,7 +126,7 @@ public final class ClassicDependencyManager
             {
                 if ( managedOptionals == this.managedOptionals )
                 {
-                    managedOptionals = new HashMap<Object, Boolean>( this.managedOptionals );
+                    managedOptionals = new HashMap<>( this.managedOptionals );
                 }
                 managedOptionals.put( key, optional );
             }
@@ -136,7 +136,7 @@ public final class ClassicDependencyManager
             {
                 if ( managedLocalPaths == this.managedLocalPaths )
                 {
-                    managedLocalPaths = new HashMap<Object, String>( this.managedLocalPaths );
+                    managedLocalPaths = new HashMap<>( this.managedLocalPaths );
                 }
                 managedLocalPaths.put( key, localPath );
             }
@@ -146,12 +146,12 @@ public final class ClassicDependencyManager
             {
                 if ( managedExclusions == this.managedExclusions )
                 {
-                    managedExclusions = new HashMap<Object, Collection<Exclusion>>( this.managedExclusions );
+                    managedExclusions = new HashMap<>( this.managedExclusions );
                 }
                 Collection<Exclusion> managed = managedExclusions.get( key );
                 if ( managed == null )
                 {
-                    managed = new LinkedHashSet<Exclusion>();
+                    managed = new LinkedHashSet<>();
                     managedExclusions.put( key, managed );
                 }
                 managed.addAll( exclusions );
@@ -193,13 +193,13 @@ public final class ClassicDependencyManager
                     && dependency.getArtifact().getProperty( ArtifactProperties.LOCAL_PATH, null ) != null )
                 {
                     Map<String, String> properties =
-                        new HashMap<String, String>( dependency.getArtifact().getProperties() );
+                        new HashMap<>( dependency.getArtifact().getProperties() );
                     properties.remove( ArtifactProperties.LOCAL_PATH );
                     management.setProperties( properties );
                 }
             }
 
-            if ( ( scope != null && JavaScopes.SYSTEM.equals( scope ) )
+            if ( ( JavaScopes.SYSTEM.equals( scope ) )
                 || ( scope == null && JavaScopes.SYSTEM.equals( dependency.getScope() ) ) )
             {
                 String localPath = managedLocalPaths.get( key );
@@ -210,7 +210,7 @@ public final class ClassicDependencyManager
                         management = new DependencyManagement();
                     }
                     Map<String, String> properties =
-                        new HashMap<String, String>( dependency.getArtifact().getProperties() );
+                        new HashMap<>( dependency.getArtifact().getProperties() );
                     properties.put( ArtifactProperties.LOCAL_PATH, localPath );
                     management.setProperties( properties );
                 }
@@ -234,7 +234,7 @@ public final class ClassicDependencyManager
             {
                 management = new DependencyManagement();
             }
-            Collection<Exclusion> result = new LinkedHashSet<Exclusion>( dependency.getExclusions() );
+            Collection<Exclusion> result = new LinkedHashSet<>( dependency.getExclusions() );
             result.addAll( exclusions );
             management.setExclusions( result );
         }
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/manager/DependencyManagerUtils.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/manager/DependencyManagerUtils.java
index f549367..3afcacc 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/manager/DependencyManagerUtils.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/manager/DependencyManagerUtils.java
@@ -22,7 +22,6 @@ package org.eclipse.aether.util.graph.manager;
 import java.util.Collection;
 import java.util.Map;
 
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.graph.DependencyNode;
 import org.eclipse.aether.graph.Exclusion;
 
@@ -33,10 +32,10 @@ public final class DependencyManagerUtils
 {
 
     /**
-     * The key in the repository session's {@link RepositorySystemSession#getConfigProperties() configuration
-     * properties} used to store a {@link Boolean} flag controlling the verbose mode for dependency management. If
-     * enabled, the original attributes of a dependency before its update due to dependency managemnent will be recorded
-     * in the node's {@link DependencyNode#getData() custom data} when building a dependency graph.
+     * The key in the repository session's {@link org.eclipse.aether.RepositorySystemSession#getConfigProperties()
+     * configuration properties} used to store a {@link Boolean} flag controlling the verbose mode for dependency
+     * management. If enabled, the original attributes of a dependency before its update due to dependency managemnent
+     * will be recorded * in the node's {@link DependencyNode#getData() custom data} when building a dependency graph.
      */
     public static final String CONFIG_PROP_VERBOSE = "aether.dependencyManager.verbose";
 
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java
index f2a7e38..a99bb99 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java
@@ -51,7 +51,7 @@ public final class AndDependencySelector
     {
         if ( selectors != null && selectors.length > 0 )
         {
-            this.selectors = new LinkedHashSet<DependencySelector>( Arrays.asList( selectors ) );
+            this.selectors = new LinkedHashSet<>( Arrays.asList( selectors ) );
         }
         else
         {
@@ -68,7 +68,7 @@ public final class AndDependencySelector
     {
         if ( selectors != null && !selectors.isEmpty() )
         {
-            this.selectors = new LinkedHashSet<DependencySelector>( selectors );
+            this.selectors = new LinkedHashSet<>( selectors );
         }
         else
         {
@@ -137,7 +137,7 @@ public final class AndDependencySelector
             }
             else if ( selector != childSelector )
             {
-                childSelectors = new LinkedHashSet<DependencySelector>();
+                childSelectors = new LinkedHashSet<>();
                 if ( seen > 0 )
                 {
                     for ( DependencySelector s : selectors )
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelector.java
index 221cf4f..746313a 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ExclusionDependencySelector.java
@@ -61,7 +61,7 @@ public final 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()] );
         }
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelector.java
index 552fc09..127fdf3 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/ScopeDependencySelector.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashSet;
+import java.util.Objects;
 import java.util.TreeSet;
 
 import org.eclipse.aether.collection.DependencyCollectionContext;
@@ -69,11 +70,11 @@ public final class ScopeDependencySelector
         }
         else
         {
-            copy = new HashSet<String>( scopes );
+            copy = new HashSet<>( scopes );
             if ( copy.size() <= 2 )
             {
                 // contains() is faster for smallish array (sorted for equals()!)
-                copy = new ArrayList<String>( new TreeSet<String>( copy ) );
+                copy = new ArrayList<>( new TreeSet<>( copy ) );
             }
         }
         return copy;
@@ -104,7 +105,8 @@ public final class ScopeDependencySelector
         }
 
         String scope = dependency.getScope();
-        return ( included == null || included.contains( scope ) ) && ( excluded == null || !excluded.contains( scope ) );
+        return ( included == null || included.contains( scope ) )
+                && ( excluded == null || !excluded.contains( scope ) );
     }
 
     public DependencySelector deriveChildSelector( DependencyCollectionContext context )
@@ -130,12 +132,8 @@ public final class ScopeDependencySelector
         }
 
         ScopeDependencySelector that = (ScopeDependencySelector) obj;
-        return transitive == that.transitive && eq( included, that.included ) && eq( excluded, that.excluded );
-    }
-
-    private static <T> boolean eq( T o1, T o2 )
-    {
-        return ( o1 != null ) ? o1.equals( o2 ) : o2 == null;
+        return transitive == that.transitive && Objects.equals( included, that.included )
+                && Objects.equals( excluded, that.excluded );
     }
 
     @Override
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictIdSorter.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictIdSorter.java
index c88569f..7a07385 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictIdSorter.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictIdSorter.java
@@ -65,21 +65,19 @@ public final class ConflictIdSorter
         Map<String, Object> stats = (Map<String, Object>) context.get( TransformationContextKeys.STATS );
         long time1 = System.nanoTime();
 
-        Map<Object, ConflictId> ids = new LinkedHashMap<Object, ConflictId>( 256 );
+        Map<Object, ConflictId> ids = new LinkedHashMap<>( 256 );
 
+        ConflictId id = null;
+        Object key = conflictIds.get( node );
+        if ( key != null )
         {
-            ConflictId id = null;
-            Object key = conflictIds.get( node );
-            if ( key != null )
-            {
-                id = new ConflictId( key, 0 );
-                ids.put( key, id );
-            }
+            id = new ConflictId( key, 0 );
+            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 );
-        }
+        buildConflitIdDAG( ids, node, id, 0, visited, conflictIds );
 
         long time2 = System.nanoTime();
 
@@ -132,7 +130,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 +202,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 +221,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 +265,7 @@ public final class ConflictIdSorter
         {
             if ( children.isEmpty() )
             {
-                children = new HashSet<ConflictId>();
+                children = new HashSet<>();
             }
             if ( children.add( child ) )
             {
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictMarker.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictMarker.java
index f1f798e..85df74a 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictMarker.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictMarker.java
@@ -57,8 +57,8 @@ public final class ConflictMarker
         Map<String, Object> stats = (Map<String, Object>) context.get( TransformationContextKeys.STATS );
         long time1 = System.nanoTime();
 
-        Map<DependencyNode, Object> nodes = new IdentityHashMap<DependencyNode, Object>( 1024 );
-        Map<Object, ConflictGroup> groups = new HashMap<Object, ConflictGroup>( 1024 );
+        Map<DependencyNode, Object> nodes = new IdentityHashMap<>( 1024 );
+        Map<Object, ConflictGroup> groups = new HashMap<>( 1024 );
 
         analyze( node, nodes, groups, new int[] { 0 } );
 
@@ -175,7 +175,7 @@ public final class ConflictMarker
             }
         }
 
-        Set<Object> keys = new HashSet<Object>();
+        Set<Object> keys = new HashSet<>();
         keys.addAll( keys1 );
         keys.addAll( keys2 );
         return keys;
@@ -201,7 +201,7 @@ public final class ConflictMarker
             }
             else
             {
-                keys = new HashSet<Object>();
+                keys = new HashSet<>();
                 keys.add( key );
 
                 for ( Artifact relocation : node.getRelocations() )
@@ -223,7 +223,7 @@ public final class ConflictMarker
 
     private Map<DependencyNode, Object> mark( Collection<DependencyNode> nodes, Map<Object, ConflictGroup> groups )
     {
-        Map<DependencyNode, Object> conflictIds = new IdentityHashMap<DependencyNode, Object>( nodes.size() + 1 );
+        Map<DependencyNode, Object> conflictIds = new IdentityHashMap<>( nodes.size() + 1 );
 
         for ( DependencyNode node : nodes )
         {
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java
index 7da2e48..149dc2e 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java
@@ -33,7 +33,6 @@ import java.util.Map;
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositoryException;
-import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.collection.DependencyGraphTransformationContext;
 import org.eclipse.aether.collection.DependencyGraphTransformer;
@@ -67,8 +66,8 @@ public final class ConflictResolver
 {
 
     /**
-     * The key in the repository session's {@link RepositorySystemSession#getConfigProperties() configuration
-     * properties} used to store a {@link Boolean} flag controlling the transformer's verbose mode.
+     * The key in the repository session's {@link org.eclipse.aether.RepositorySystemSession#getConfigProperties()
+     * configuration properties} used to store a {@link Boolean} flag controlling the transformer's verbose mode.
      */
     public static final String CONFIG_PROP_VERBOSE = "aether.conflictResolver.verbose";
 
@@ -145,7 +144,7 @@ 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 )
@@ -153,7 +152,7 @@ public final class ConflictResolver
                 Collection<Object> predecessors = cyclicPredecessors.get( conflictId );
                 if ( predecessors == null )
                 {
-                    predecessors = new HashSet<Object>();
+                    predecessors = new HashSet<>();
                     cyclicPredecessors.put( conflictId, predecessors );
                 }
                 predecessors.addAll( cycle );
@@ -362,7 +361,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;
@@ -381,7 +380,7 @@ public final class ConflictResolver
         {
             if ( children == null )
             {
-                children = new ArrayList<ConflictItem>( 1 );
+                children = new ArrayList<>( 1 );
             }
             children.add( item );
         }
@@ -500,15 +499,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 );
@@ -519,7 +518,8 @@ public final class ConflictResolver
 
         void prepare( Object conflictId, Collection<Object> cyclicPredecessors )
         {
-            currentId = conflictCtx.conflictId = conflictId;
+            currentId = conflictId;
+            conflictCtx.conflictId = conflictId;
             conflictCtx.winner = null;
             conflictCtx.scope = null;
             conflictCtx.optional = null;
@@ -710,7 +710,8 @@ public final class ConflictResolver
         private void scopes( int parent, Dependency child )
         {
             scopeCtx.parentScope = ( parent > 0 ) ? parentScopes.get( parent - 1 ) : null;
-            scopeCtx.derivedScope = scopeCtx.childScope = scope( child );
+            scopeCtx.derivedScope = scope( child );
+            scopeCtx.childScope = scope( child );
         }
 
         private String scope( Dependency dependency )
@@ -721,7 +722,7 @@ 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.getManagedBits() & DependencyNode.MANAGED_OPTIONAL ) != 0
                 || ( conflictId != null && resolvedIds.containsKey( conflictId ) ) )
             {
@@ -760,7 +761,8 @@ public final class ConflictResolver
         public ScopeContext( String parentScope, String childScope )
         {
             this.parentScope = ( parentScope != null ) ? parentScope : "";
-            derivedScope = this.childScope = ( childScope != null ) ? childScope : "";
+            derivedScope = ( childScope != null ) ? childScope : "";
+            this.childScope = ( childScope != null ) ? childScope : "";
         }
 
         /**
@@ -873,7 +875,8 @@ public final class ConflictResolver
          * @noreference This class is not intended to be instantiated by clients in production code, the constructor may
          *              change without notice and only exists to enable unit testing.
          */
-        public ConflictItem( DependencyNode parent, DependencyNode node, int depth, int optionalities, String... scopes )
+        public ConflictItem( DependencyNode parent, DependencyNode node, int depth, int optionalities,
+                             String... scopes )
         {
             this.parent = ( parent != null ) ? parent.getChildren() : null;
             this.artifact = ( parent != null ) ? parent.getArtifact() : null;
@@ -952,7 +955,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/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelector.java
index 93edf05..0f923a7 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelector.java
@@ -59,7 +59,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/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/NearestVersionSelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/NearestVersionSelector.java
index d821b3e..2e0c34f 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/NearestVersionSelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/NearestVersionSelector.java
@@ -170,8 +170,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/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/traverser/AndDependencyTraverser.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/traverser/AndDependencyTraverser.java
index fb08b3b..0823483 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/traverser/AndDependencyTraverser.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/traverser/AndDependencyTraverser.java
@@ -52,7 +52,7 @@ public final class AndDependencyTraverser
     {
         if ( traversers != null && traversers.length > 0 )
         {
-            this.traversers = new LinkedHashSet<DependencyTraverser>( Arrays.asList( traversers ) );
+            this.traversers = new LinkedHashSet<>( Arrays.asList( traversers ) );
         }
         else
         {
@@ -69,7 +69,7 @@ public final class AndDependencyTraverser
     {
         if ( traversers != null && !traversers.isEmpty() )
         {
-            this.traversers = new LinkedHashSet<DependencyTraverser>( traversers );
+            this.traversers = new LinkedHashSet<>( traversers );
         }
         else
         {
@@ -138,7 +138,7 @@ public final class AndDependencyTraverser
             }
             else if ( traverser != childTraverser )
             {
-                childTraversers = new LinkedHashSet<DependencyTraverser>();
+                childTraversers = new LinkedHashSet<>();
                 if ( seen > 0 )
                 {
                     for ( DependencyTraverser s : traversers )
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/version/HighestVersionFilter.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/version/HighestVersionFilter.java
index 902e08d..0731c46 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/version/HighestVersionFilter.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/version/HighestVersionFilter.java
@@ -45,7 +45,8 @@ public final class HighestVersionFilter
         for ( boolean hasNext = it.hasNext(); hasNext; )
         {
             it.next();
-            if ( hasNext = it.hasNext() )
+            hasNext = it.hasNext();
+            if ( hasNext )
             {
                 it.remove();
             }
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGenerator.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGenerator.java
index 32d4339..cf51962 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGenerator.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/AbstractDepthFirstNodeListGenerator.java
@@ -50,8 +50,8 @@ abstract class AbstractDepthFirstNodeListGenerator
 
     AbstractDepthFirstNodeListGenerator()
     {
-        nodes = new ArrayList<DependencyNode>( 128 );
-        visitedNodes = new IdentityHashMap<DependencyNode, Object>( 512 );
+        nodes = new ArrayList<>( 128 );
+        visitedNodes = new IdentityHashMap<>( 512 );
     }
 
     /**
@@ -72,7 +72,7 @@ abstract class AbstractDepthFirstNodeListGenerator
      */
     public List<Dependency> getDependencies( boolean includeUnresolved )
     {
-        List<Dependency> dependencies = new ArrayList<Dependency>( getNodes().size() );
+        List<Dependency> dependencies = new ArrayList<>( getNodes().size() );
 
         for ( DependencyNode node : getNodes() )
         {
@@ -97,7 +97,7 @@ abstract class AbstractDepthFirstNodeListGenerator
      */
     public List<Artifact> getArtifacts( boolean includeUnresolved )
     {
-        List<Artifact> artifacts = new ArrayList<Artifact>( getNodes().size() );
+        List<Artifact> artifacts = new ArrayList<>( getNodes().size() );
 
         for ( DependencyNode node : getNodes() )
         {
@@ -121,7 +121,7 @@ abstract class AbstractDepthFirstNodeListGenerator
      */
     public List<File> getFiles()
     {
-        List<File> files = new ArrayList<File>( getNodes().size() );
+        List<File> files = new ArrayList<>( getNodes().size() );
 
         for ( DependencyNode node : getNodes() )
         {
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/CloningDependencyVisitor.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/CloningDependencyVisitor.java
index a39fc84..7c57db1 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/CloningDependencyVisitor.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/CloningDependencyVisitor.java
@@ -47,8 +47,8 @@ public class CloningDependencyVisitor
      */
     public CloningDependencyVisitor()
     {
-        parents = new Stack<DependencyNode>();
-        clones = new IdentityHashMap<DependencyNode, DependencyNode>( 256 );
+        parents = new Stack<>();
+        clones = new IdentityHashMap<>( 256 );
     }
 
     /**
@@ -69,8 +69,7 @@ public class CloningDependencyVisitor
      */
     protected DependencyNode clone( DependencyNode node )
     {
-        DefaultDependencyNode clone = new DefaultDependencyNode( node );
-        return clone;
+        return new DefaultDependencyNode( node );
     }
 
     public final boolean visitEnter( DependencyNode node )
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/FilteringDependencyVisitor.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/FilteringDependencyVisitor.java
index a126bb7..130fc57 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/FilteringDependencyVisitor.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/FilteringDependencyVisitor.java
@@ -51,8 +51,8 @@ public final class FilteringDependencyVisitor
     {
         this.visitor = requireNonNull( visitor, "dependency visitor delegate cannot be null" );
         this.filter = filter;
-        this.accepts = new Stack<Boolean>();
-        this.parents = new Stack<DependencyNode>();
+        this.accepts = new Stack<>();
+        this.parents = new Stack<>();
     }
 
     /**
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
index d1814ed..463668c 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/PathRecordingDependencyVisitor.java
@@ -70,9 +70,9 @@ public final class PathRecordingDependencyVisitor
     {
         this.filter = filter;
         this.excludeChildrenOfMatches = excludeChildrenOfMatches;
-        paths = new ArrayList<List<DependencyNode>>();
-        parents = new Stack<DependencyNode>();
-        visited = new IdentityHashMap<DependencyNode, Object>( 128 );
+        paths = new ArrayList<>();
+        parents = new Stack<>();
+        visited = new IdentityHashMap<>( 128 );
     }
 
     /**
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/PostorderNodeListGenerator.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/PostorderNodeListGenerator.java
index 47897a7..b9ed7ad 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/PostorderNodeListGenerator.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/PostorderNodeListGenerator.java
@@ -37,7 +37,7 @@ public final class PostorderNodeListGenerator
      */
     public PostorderNodeListGenerator()
     {
-        visits = new Stack<Boolean>();
+        visits = new Stack<>();
     }
 
     @Override
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/Stack.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/Stack.java
index 27fbb4b..5abdc5a 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/Stack.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/Stack.java
@@ -33,7 +33,9 @@ class Stack<E>
 {
 
     @SuppressWarnings( "unchecked" )
+    // CHECKSTYLE_OFF: MagicNumber
     private E[] elements = (E[]) new Object[96];
+    // CHECKSTYLE_ON: MagicNumber
 
     private int size;
 
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/TreeDependencyVisitor.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/TreeDependencyVisitor.java
index 2f9012d..70a2664 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/TreeDependencyVisitor.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/TreeDependencyVisitor.java
@@ -49,8 +49,8 @@ public final class TreeDependencyVisitor
     public TreeDependencyVisitor( DependencyVisitor visitor )
     {
         this.visitor = requireNonNull( visitor, "dependency visitor delegate cannot be null" );
-        visitedNodes = new IdentityHashMap<DependencyNode, Object>( 512 );
-        visits = new Stack<Boolean>();
+        visitedNodes = new IdentityHashMap<>( 512 );
+        visits = new Stack<>();
     }
 
     public boolean visitEnter( DependencyNode node )
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/listener/ChainedRepositoryListener.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/listener/ChainedRepositoryListener.java
index c654510..c268a9d 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/listener/ChainedRepositoryListener.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/listener/ChainedRepositoryListener.java
@@ -36,7 +36,7 @@ public final class ChainedRepositoryListener
     extends AbstractRepositoryListener
 {
 
-    private final List<RepositoryListener> listeners = new CopyOnWriteArrayList<RepositoryListener>();
+    private final List<RepositoryListener> listeners = new CopyOnWriteArrayList<>();
 
     /**
      * Creates a new multicast listener that delegates to the specified listeners. In contrast to the constructor, this
@@ -125,6 +125,7 @@ public final class ChainedRepositoryListener
         }
     }
 
+    @SuppressWarnings( "EmptyMethod" )
     protected void handleError( RepositoryEvent event, RepositoryListener listener, RuntimeException error )
     {
         // default just swallows errors
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/listener/ChainedTransferListener.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/listener/ChainedTransferListener.java
index d943105..42e23b5 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/listener/ChainedTransferListener.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/listener/ChainedTransferListener.java
@@ -37,7 +37,7 @@ public final class ChainedTransferListener
     extends AbstractTransferListener
 {
 
-    private final List<TransferListener> listeners = new CopyOnWriteArrayList<TransferListener>();
+    private final List<TransferListener> listeners = new CopyOnWriteArrayList<>();
 
     /**
      * Creates a new multicast listener that delegates to the specified listeners. In contrast to the constructor, this
@@ -126,6 +126,7 @@ public final class ChainedTransferListener
         }
     }
 
+    @SuppressWarnings( "EmptyMethod" )
     protected void handleError( TransferEvent event, TransferListener listener, RuntimeException error )
     {
         // default just swallows errors
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/AuthenticationBuilder.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/AuthenticationBuilder.java
index bc69e85..9988d77 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/AuthenticationBuilder.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/AuthenticationBuilder.java
@@ -40,7 +40,7 @@ public final class AuthenticationBuilder
      */
     public AuthenticationBuilder()
     {
-        authentications = new ArrayList<Authentication>();
+        authentications = new ArrayList<>();
     }
 
     /**
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ChainedWorkspaceReader.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ChainedWorkspaceReader.java
index 890ea76..02740da 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ChainedWorkspaceReader.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ChainedWorkspaceReader.java
@@ -37,7 +37,7 @@ public final class ChainedWorkspaceReader
     implements WorkspaceReader
 {
 
-    private List<WorkspaceReader> readers = new ArrayList<WorkspaceReader>();
+    private List<WorkspaceReader> readers = new ArrayList<>();
 
     private WorkspaceRepository repository;
 
@@ -106,14 +106,14 @@ public final class ChainedWorkspaceReader
 
     public List<String> findVersions( Artifact artifact )
     {
-        Collection<String> versions = new LinkedHashSet<String>();
+        Collection<String> versions = new LinkedHashSet<>();
 
         for ( WorkspaceReader reader : readers )
         {
             versions.addAll( reader.findVersions( artifact ) );
         }
 
-        return Collections.unmodifiableList( new ArrayList<String>( versions ) );
+        return Collections.unmodifiableList( new ArrayList<>( versions ) );
     }
 
     public WorkspaceRepository getRepository()
@@ -129,7 +129,7 @@ public final class ChainedWorkspaceReader
     private static class Key
     {
 
-        private final List<Object> keys = new ArrayList<Object>();
+        private final List<Object> keys = new ArrayList<>();
 
         Key( List<WorkspaceReader> readers )
         {
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultAuthenticationSelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultAuthenticationSelector.java
index a5d4ce3..c104be3 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultAuthenticationSelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultAuthenticationSelector.java
@@ -33,7 +33,7 @@ public final class DefaultAuthenticationSelector
     implements AuthenticationSelector
 {
 
-    private final Map<String, Authentication> repos = new HashMap<String, Authentication>();
+    private final Map<String, Authentication> repos = new HashMap<>();
 
     /**
      * Adds the specified authentication info for the given repository identifier.
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java
index e07abdd..1d6a197 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultMirrorSelector.java
@@ -37,7 +37,7 @@ public final class DefaultMirrorSelector
 
     private static final String EXTERNAL_WILDCARD = "external:*";
 
-    private final List<MirrorDef> mirrors = new ArrayList<MirrorDef>();
+    private final List<MirrorDef> mirrors = new ArrayList<>();
 
     /**
      * Adds the specified mirror to this selector.
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultProxySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultProxySelector.java
index cf14f93..b94b3d2 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultProxySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultProxySelector.java
@@ -39,7 +39,7 @@ public final class DefaultProxySelector
     implements ProxySelector
 {
 
-    private List<ProxyDef> proxies = new ArrayList<ProxyDef>();
+    private List<ProxyDef> proxies = new ArrayList<>();
 
     /**
      * Adds the specified proxy definition to the selector. Proxy definitions are ordered, the first matching proxy for
@@ -59,7 +59,7 @@ public final class DefaultProxySelector
 
     public Proxy getProxy( RemoteRepository repository )
     {
-        Map<String, ProxyDef> candidates = new HashMap<String, ProxyDef>();
+        Map<String, ProxyDef> candidates = new HashMap<>();
 
         String host = repository.getHost();
         for ( ProxyDef proxy : proxies )
@@ -105,10 +105,11 @@ public final class DefaultProxySelector
 
         NonProxyHosts( String nonProxyHosts )
         {
-            List<Pattern> patterns = new ArrayList<Pattern>();
+            List<Pattern> patterns = new ArrayList<>();
             if ( nonProxyHosts != null )
             {
-                for ( StringTokenizer tokenizer = new StringTokenizer( nonProxyHosts, "|" ); tokenizer.hasMoreTokens(); )
+                for ( StringTokenizer tokenizer = new StringTokenizer( nonProxyHosts, "|" );
+                      tokenizer.hasMoreTokens(); )
                 {
                     String pattern = tokenizer.nextToken();
                     pattern = pattern.replace( ".", "\\." ).replace( "*", ".*" );
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/SecretAuthentication.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/SecretAuthentication.java
index 819f82f..57df653 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/SecretAuthentication.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/SecretAuthentication.java
@@ -21,6 +21,8 @@ package org.eclipse.aether.util.repository;
 
 import java.util.Arrays;
 import java.util.Map;
+import java.util.Objects;
+
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.repository.Authentication;
@@ -79,6 +81,7 @@ final class SecretAuthentication
         return ( chars != null ) ? chars.clone() : null;
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     private char[] xor( char[] chars )
     {
         if ( chars != null )
@@ -140,7 +143,7 @@ final class SecretAuthentication
             return false;
         }
         SecretAuthentication that = (SecretAuthentication) obj;
-        if ( !eq( key, that.key ) || secretHash != that.secretHash )
+        if ( !Objects.equals( key, that.key ) || secretHash != that.secretHash )
         {
             return false;
         }
@@ -159,11 +162,6 @@ final class SecretAuthentication
         }
     }
 
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
-    }
-
     @Override
     public int hashCode()
     {
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/StringAuthentication.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/StringAuthentication.java
index bb87b02..5012744 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/StringAuthentication.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/StringAuthentication.java
@@ -20,6 +20,8 @@ package org.eclipse.aether.util.repository;
  */
 
 import java.util.Map;
+import java.util.Objects;
+
 import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.repository.Authentication;
@@ -69,12 +71,8 @@ final class StringAuthentication
             return false;
         }
         StringAuthentication that = (StringAuthentication) obj;
-        return eq( key, that.key ) && eq( value, that.value );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( key, that.key )
+                && Objects.equals( value, that.value );
     }
 
     @Override
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersion.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersion.java
index d1d1fbf..7016939 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersion.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersion.java
@@ -57,7 +57,7 @@ final class GenericVersion
 
     private static Item[] parse( String version )
     {
-        List<Item> items = new ArrayList<Item>();
+        List<Item> items = new ArrayList<>();
 
         for ( Tokenizer tokenizer = new Tokenizer( version ); tokenizer.next(); )
         {
@@ -189,7 +189,7 @@ final class GenericVersion
 
         static
         {
-            QUALIFIERS = new TreeMap<String, Integer>( String.CASE_INSENSITIVE_ORDER );
+            QUALIFIERS = new TreeMap<>( String.CASE_INSENSITIVE_ORDER );
             QUALIFIERS.put( "alpha", QUALIFIER_ALPHA );
             QUALIFIERS.put( "beta", QUALIFIER_BETA );
             QUALIFIERS.put( "milestone", QUALIFIER_MILESTONE );
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionConstraint.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionConstraint.java
index 8cf66b0..8186941 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionConstraint.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionConstraint.java
@@ -25,6 +25,8 @@ import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionConstraint;
 import org.eclipse.aether.version.VersionRange;
 
+import java.util.Objects;
+
 /**
  * A constraint on versions for a dependency.
  */
@@ -100,12 +102,7 @@ final class GenericVersionConstraint
 
         GenericVersionConstraint that = (GenericVersionConstraint) obj;
 
-        return eq( range, that.range ) && eq( version, that.getVersion() );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( range, that.range ) && Objects.equals( version, that.getVersion() );
     }
 
     @Override
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionRange.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionRange.java
index ef1f012..7346dcf 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionRange.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionRange.java
@@ -23,6 +23,8 @@ import org.eclipse.aether.version.InvalidVersionSpecificationException;
 import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionRange;
 
+import java.util.Objects;
+
 /**
  * A version range inspired by mathematical range syntax. For example, "[1.0,2.0)", "[1.0,)" or "[1.0]".
  */
@@ -97,7 +99,8 @@ final class GenericVersionRange
             }
             else
             {
-                lowerBound = upperBound = parse( version );
+                lowerBound = parse( version );
+                upperBound = lowerBound;
             }
         }
         else
@@ -191,12 +194,8 @@ final class GenericVersionRange
 
         GenericVersionRange that = (GenericVersionRange) obj;
 
-        return eq( upperBound, that.upperBound ) && eq( lowerBound, that.lowerBound );
-    }
-
-    private static <T> boolean eq( T s1, T s2 )
-    {
-        return s1 != null ? s1.equals( s2 ) : s2 == null;
+        return Objects.equals( upperBound, that.upperBound )
+                && Objects.equals( lowerBound, that.lowerBound );
     }
 
     @Override
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionScheme.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionScheme.java
index 8fc0488..c191a90 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionScheme.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionScheme.java
@@ -79,7 +79,7 @@ public final class GenericVersionScheme
     public VersionConstraint parseVersionConstraint( final String constraint )
         throws InvalidVersionSpecificationException
     {
-        Collection<VersionRange> ranges = new ArrayList<VersionRange>();
+        Collection<VersionRange> ranges = new ArrayList<>();
 
         String process = constraint;
 
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/UnionVersionRange.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/UnionVersionRange.java
index c54a4b4..87ec190 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/UnionVersionRange.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/UnionVersionRange.java
@@ -64,11 +64,12 @@ final class UnionVersionRange
         if ( ranges == null || ranges.isEmpty() )
         {
             this.ranges = Collections.emptySet();
-            lowerBound = upperBound = null;
+            lowerBound = null;
+            upperBound = null;
         }
         else
         {
-            this.ranges = new HashSet<VersionRange>( ranges );
+            this.ranges = new HashSet<>( ranges );
             Bound lowerBound = null, upperBound = null;
             for ( VersionRange range : this.ranges )
             {
@@ -156,11 +157,11 @@ final class UnionVersionRange
         return ranges.equals( that.ranges );
     }
 
+    @SuppressWarnings( "checkstyle:magicnumber" )
     @Override
     public int hashCode()
     {
-        int hash = 97 * ranges.hashCode();
-        return hash;
+        return 97 * ranges.hashCode();
     }
 
     @Override
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/ChecksumUtilTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/ChecksumUtilTest.java
index 08d1c64..6082386 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/ChecksumUtilTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/ChecksumUtilTest.java
@@ -55,7 +55,6 @@ public class ChecksumUtilTest
 
     @BeforeClass
     public static void beforeClass()
-        throws IOException
     {
         emptyChecksums.put( "MD5", "d41d8cd98f00b204e9800998ecf8427e" );
         emptyChecksums.put( "SHA-1", "da39a3ee5e6b4b0d3255bfef95601890afd80709" );
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java
index 683c8e0..440a7c1 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/ConfigUtilsTest.java
@@ -34,7 +34,7 @@ import org.junit.Test;
 public class ConfigUtilsTest
 {
 
-    Map<Object, Object> config = new HashMap<Object, Object>();
+    Map<Object, Object> config = new HashMap<>();
 
     @Test
     public void testGetObject_Default()
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/artifact/SubArtifactTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/artifact/SubArtifactTest.java
index 0ae333e..b03194f 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/artifact/SubArtifactTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/artifact/SubArtifactTest.java
@@ -140,7 +140,7 @@ public class SubArtifactTest
     @Test
     public void testPropertiesCopied()
     {
-        Map<String, String> props = new HashMap<String, String>();
+        Map<String, String> props = new HashMap<>();
         props.put( "key", "value1" );
 
         Artifact a = new SubArtifact( newMainArtifact( "gid:aid:ver" ), "", "pom", props, null );
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/AndDependencyFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/AndDependencyFilterTest.java
index 45a7f3d..7ddc666 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/AndDependencyFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/AndDependencyFilterTest.java
@@ -39,7 +39,7 @@ public class AndDependencyFilterTest
     {
         NodeBuilder builder = new NodeBuilder();
         builder.artifactId( "test" );
-        List<DependencyNode> parents = new LinkedList<DependencyNode>();
+        List<DependencyNode> parents = new LinkedList<>();
 
         // Empty AND
         assertTrue( new AndDependencyFilter().accept( builder.build(), parents ) );
@@ -63,17 +63,17 @@ public class AndDependencyFilterTest
                                                                                                                parents ) );
 
         // User another constructor
-        Collection<DependencyFilter> filters = new LinkedList<DependencyFilter>();
+        Collection<DependencyFilter> filters = new LinkedList<>();
         filters.add( getDenyFilter() );
         filters.add( getAcceptFilter() );
         assertFalse( new AndDependencyFilter( filters ).accept( builder.build(), parents ) );
 
-        filters = new LinkedList<DependencyFilter>();
+        filters = new LinkedList<>();
         filters.add( getDenyFilter() );
         filters.add( getDenyFilter() );
         assertFalse( new AndDependencyFilter( filters ).accept( builder.build(), parents ) );
 
-        filters = new LinkedList<DependencyFilter>();
+        filters = new LinkedList<>();
         filters.add( getAcceptFilter() );
         filters.add( getAcceptFilter() );
         assertTrue( new AndDependencyFilter( filters ).accept( builder.build(), parents ) );
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/ExclusionDependencyFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/ExclusionDependencyFilterTest.java
index a0be592..1da95bb 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/ExclusionDependencyFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/ExclusionDependencyFilterTest.java
@@ -40,7 +40,7 @@ public class ExclusionDependencyFilterTest
 
         NodeBuilder builder = new NodeBuilder();
         builder.groupId( "com.example.test" ).artifactId( "testArtifact" );
-        List<DependencyNode> parents = new LinkedList<DependencyNode>();
+        List<DependencyNode> parents = new LinkedList<>();
         String[] excludes;
 
         excludes = new String[] { "com.example.test:testArtifact" };
@@ -55,6 +55,6 @@ public class ExclusionDependencyFilterTest
         excludes = new String[] { "otherArtifact" };
         assertTrue( new ExclusionsDependencyFilter( Arrays.asList( excludes ) ).accept( builder.build(), parents ) );
 
-        assertTrue( new ExclusionsDependencyFilter( (Collection<String>) null ).accept( builder.build(), parents ) );
+        assertTrue( new ExclusionsDependencyFilter( null ).accept( builder.build(), parents ) );
     }
 }
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/OrDependencyFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/OrDependencyFilterTest.java
index 03b80ea..a9f0774 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/OrDependencyFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/OrDependencyFilterTest.java
@@ -41,7 +41,7 @@ public class OrDependencyFilterTest
     {
         NodeBuilder builder = new NodeBuilder();
         builder.artifactId( "test" );
-        List<DependencyNode> parents = new LinkedList<DependencyNode>();
+        List<DependencyNode> parents = new LinkedList<>();
         // Empty OR
         assertFalse( new OrDependencyFilter().accept( builder.build(), parents ) );
 
@@ -64,12 +64,12 @@ public class OrDependencyFilterTest
                                                                                                               parents ) );
 
         // User another constructor
-        Collection<DependencyFilter> filters = new LinkedList<DependencyFilter>();
+        Collection<DependencyFilter> filters = new LinkedList<>();
         filters.add( getDenyFilter() );
         filters.add( getAcceptFilter() );
         assertTrue( new OrDependencyFilter( filters ).accept( builder.build(), parents ) );
 
-        filters = new LinkedList<DependencyFilter>();
+        filters = new LinkedList<>();
         filters.add( getDenyFilter() );
         filters.add( getDenyFilter() );
         assertFalse( new OrDependencyFilter( filters ).accept( builder.build(), parents ) );
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/PatternExclusionsDependencyFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/PatternExclusionsDependencyFilterTest.java
index b5b307e..1513847 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/PatternExclusionsDependencyFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/PatternExclusionsDependencyFilterTest.java
@@ -40,7 +40,7 @@ public class PatternExclusionsDependencyFilterTest
         NodeBuilder builder = new NodeBuilder();
         builder.artifactId( "testArtifact" );
         DependencyNode node = builder.build();
-        List<DependencyNode> parents = new LinkedList<DependencyNode>();
+        List<DependencyNode> parents = new LinkedList<>();
 
         // Empty String, Empty List
         assertTrue( dontAccept( node, "" ) );
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/PatternInclusionsDependencyFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/PatternInclusionsDependencyFilterTest.java
index cb85431..0055cc2 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/PatternInclusionsDependencyFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/PatternInclusionsDependencyFilterTest.java
@@ -41,7 +41,7 @@ public class PatternInclusionsDependencyFilterTest
         NodeBuilder builder = new NodeBuilder();
         builder.artifactId( "testArtifact" );
         DependencyNode node = builder.build();
-        List<DependencyNode> parents = new LinkedList<DependencyNode>();
+        List<DependencyNode> parents = new LinkedList<>();
 
         // Empty String, Empty List
         assertTrue( accept( node, "" ) );
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/ScopeDependencyFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/ScopeDependencyFilterTest.java
index e943df9..50b2c54 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/ScopeDependencyFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/filter/ScopeDependencyFilterTest.java
@@ -40,7 +40,7 @@ public class ScopeDependencyFilterTest
 
         NodeBuilder builder = new NodeBuilder();
         builder.scope( "compile" ).artifactId( "test" );
-        List<DependencyNode> parents = new LinkedList<DependencyNode>();
+        List<DependencyNode> parents = new LinkedList<>();
 
         // null or empty
         assertTrue( new ScopeDependencyFilter( null, null ).accept( builder.build(), parents ) );
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/AbstractDependencyGraphTransformerTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/AbstractDependencyGraphTransformerTest.java
index b5947ed..372be11 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/AbstractDependencyGraphTransformerTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/AbstractDependencyGraphTransformerTest.java
@@ -75,7 +75,7 @@ public abstract class AbstractDependencyGraphTransformerTest
 
     protected List<DependencyNode> find( DependencyNode node, String id )
     {
-        LinkedList<DependencyNode> trail = new LinkedList<DependencyNode>();
+        LinkedList<DependencyNode> trail = new LinkedList<>();
         find( trail, node, id );
         return trail;
     }
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/ConflictIdSorterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/ConflictIdSorterTest.java
index b24a920..4f4e031 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/ConflictIdSorterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/ConflictIdSorterTest.java
@@ -53,7 +53,7 @@ public class ConflictIdSorterTest
 
     private void expectOrder( List<String> sorted, String... ids )
     {
-        Queue<String> queue = new LinkedList<String>( sorted );
+        Queue<String> queue = new LinkedList<>( sorted );
 
         for ( String id : ids )
         {
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelectorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelectorTest.java
index 09f9c33..3098910 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelectorTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelectorTest.java
@@ -74,11 +74,7 @@ public class JavaScopeSelectorTest
 
             assertEquals( msg + "\nculprit: " + node.toString() + "\n", expected, node.getDependency().getScope() );
         }
-        catch ( IndexOutOfBoundsException e )
-        {
-            throw new IllegalArgumentException( "illegal coordinates for child", e );
-        }
-        catch ( NullPointerException e )
+        catch ( IndexOutOfBoundsException | NullPointerException e )
         {
             throw new IllegalArgumentException( "illegal coordinates for child", e );
         }
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/SimpleConflictMarker.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/SimpleConflictMarker.java
index df30368..2c596e0 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/SimpleConflictMarker.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/SimpleConflictMarker.java
@@ -28,7 +28,6 @@ import org.eclipse.aether.collection.DependencyGraphTransformationContext;
 import org.eclipse.aether.collection.DependencyGraphTransformer;
 import org.eclipse.aether.graph.Dependency;
 import org.eclipse.aether.graph.DependencyNode;
-import org.eclipse.aether.util.graph.transformer.TransformationContextKeys;
 
 /**
  * Set "groupId:artId:classifier:extension" as conflict marker for every node.
@@ -45,7 +44,7 @@ class SimpleConflictMarker
             (Map<DependencyNode, Object>) context.get( TransformationContextKeys.CONFLICT_IDS );
         if ( conflictIds == null )
         {
-            conflictIds = new IdentityHashMap<DependencyNode, Object>();
+            conflictIds = new IdentityHashMap<>();
             context.put( TransformationContextKeys.CONFLICT_IDS, conflictIds );
         }
 
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/ChainedVersionFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/ChainedVersionFilterTest.java
index 1e8a5bd..9f8a2aa 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/ChainedVersionFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/ChainedVersionFilterTest.java
@@ -73,6 +73,7 @@ public class ChainedVersionFilterTest
         assertSame( filter1, derive( filter, "g:a:1" ) );
     }
 
+    @SuppressWarnings( "EqualsWithItself" )
     @Test
     public void testEquals()
     {
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/ContextualSnapshotVersionFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/ContextualSnapshotVersionFilterTest.java
index dd88a66..08b5a58 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/ContextualSnapshotVersionFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/ContextualSnapshotVersionFilterTest.java
@@ -60,6 +60,7 @@ public class ContextualSnapshotVersionFilterTest
         assertTrue( derive( filter, "g:a:1-SNAPSHOT" ) instanceof SnapshotVersionFilter );
     }
 
+    @SuppressWarnings( "EqualsWithItself" )
     @Test
     public void testEquals()
     {
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/HighestVersionFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/HighestVersionFilterTest.java
index 3926c66..49cbc9c 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/HighestVersionFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/HighestVersionFilterTest.java
@@ -45,6 +45,7 @@ public class HighestVersionFilterTest
         assertSame( filter, derive( filter, "g:a:1" ) );
     }
 
+    @SuppressWarnings( "EqualsWithItself" )
     @Test
     public void testEquals()
     {
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/SnapshotVersionFilterTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/SnapshotVersionFilterTest.java
index 70c26f9..add2037 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/SnapshotVersionFilterTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/versions/SnapshotVersionFilterTest.java
@@ -45,6 +45,7 @@ public class SnapshotVersionFilterTest
         assertSame( filter, derive( filter, "g:a:1" ) );
     }
 
+    @SuppressWarnings( "EqualsWithItself" )
     @Test
     public void testEquals()
     {
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/repository/JreProxySelectorTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/repository/JreProxySelectorTest.java
index 8eac55b..5e8d274 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/repository/JreProxySelectorTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/repository/JreProxySelectorTest.java
@@ -73,7 +73,6 @@ public class JreProxySelectorTest
 
     @Test
     public void testGetProxy_InvalidUrl()
-        throws Exception
     {
         RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "http://host:invalid" ).build();
         assertNull( selector.getProxy( repo ) );
@@ -81,7 +80,6 @@ public class JreProxySelectorTest
 
     @Test
     public void testGetProxy_OpaqueUrl()
-        throws Exception
     {
         RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "classpath:base" ).build();
         assertNull( selector.getProxy( repo ) );
@@ -89,7 +87,6 @@ public class JreProxySelectorTest
 
     @Test
     public void testGetProxy_NullSelector()
-        throws Exception
     {
         RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "http://repo.eclipse.org/" ).build();
         java.net.ProxySelector.setDefault( null );
@@ -98,7 +95,6 @@ public class JreProxySelectorTest
 
     @Test
     public void testGetProxy_NoProxies()
-        throws Exception
     {
         RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "http://repo.eclipse.org/" ).build();
         java.net.ProxySelector.setDefault( new AbstractProxySelector()
@@ -115,7 +111,6 @@ public class JreProxySelectorTest
 
     @Test
     public void testGetProxy_DirectProxy()
-        throws Exception
     {
         RemoteRepository repo = new RemoteRepository.Builder( "test", "default", "http://repo.eclipse.org/" ).build();
         final InetSocketAddress addr = InetSocketAddress.createUnresolved( "proxy", 8080 );
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/version/GenericVersionRangeTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/version/GenericVersionRangeTest.java
index 85d007f..08e9bce 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/version/GenericVersionRangeTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/version/GenericVersionRangeTest.java
@@ -44,10 +44,7 @@ public class GenericVersionRangeTest
         }
         catch ( InvalidVersionSpecificationException e )
         {
-            AssertionError error =
-                new AssertionError( range + " should be valid but failed to parse due to: " + e.getMessage() );
-            error.initCause( e );
-            throw error;
+            throw new AssertionError( range + " should be valid but failed to parse due to: " + e.getMessage(), e );
         }
     }
 
diff --git a/maven-resolver-util/src/test/java/org/eclipse/aether/util/version/GenericVersionSchemeTest.java b/maven-resolver-util/src/test/java/org/eclipse/aether/util/version/GenericVersionSchemeTest.java
index f52f73d..e5465be 100644
--- a/maven-resolver-util/src/test/java/org/eclipse/aether/util/version/GenericVersionSchemeTest.java
+++ b/maven-resolver-util/src/test/java/org/eclipse/aether/util/version/GenericVersionSchemeTest.java
@@ -37,7 +37,6 @@ public class GenericVersionSchemeTest
 
     @Before
     public void setUp()
-        throws Exception
     {
         scheme = new GenericVersionScheme();
     }
diff --git a/pom.xml b/pom.xml
index ef5149a..ac3b6fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -71,7 +71,7 @@
     <javaVersion>7</javaVersion>
     <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
     <maven.site.path>resolver-archives/resolver-LATEST</maven.site.path>
-    <checkstyle.violation.ignore>UnusedImports,LineLength,InnerAssignment,MagicNumber,AvoidNestedBlocks,ParameterNumber,MethodLength,MemberName</checkstyle.violation.ignore>
+    <checkstyle.violation.ignore>None</checkstyle.violation.ignore>
     <sisuVersion>0.3.3</sisuVersion>
     <slf4jVersion>1.7.25</slf4jVersion>
   </properties>