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:05:23 UTC

[maven-resolver] branch MRESOLVER-88 updated (1694e81 -> e1bdd66)

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

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


 discard 1694e81  [MRESOLVER-88] Changes after review
 discard 7db4e50  [MRESOLVER-88] Checkstyle cleanup - NestedBlocks
 discard 439f619  [MRESOLVER-88] Checkstyle cleanup - MagicNumber
 discard daf3484  [MRESOLVER-88] Checkstyle cleanup
 discard e21028f  [MRESOLVER-88] Code style fixes
 discard c26226e  [MRESOLVER-88] Misc fixes 3
 discard c63b99d  [MRESOLVER-88] Misc fixes 2
 discard fcd37de  [MRESOLVER-88] Misc code style fixes
 discard 36d13f0  [MRESOLVER-88] Try/catch with resource close
 discard ebbde06  [MRESOLVER-88] Collapse identical catch blocks
 discard b081fe3  [MRESOLVER-88] Replace equals with Object.equals
 discard c59a7a9  [MRESOLVER-88] Remove redundant boxing/unboxing (Java 5)
 discard ef3697e  [MRESOLVER-88] Convert to use diamond <> (Java 7)
     new e1bdd66  [MRESOLVER-88] Code style cleanup to use Java 7 features

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

 * -- * -- B -- O -- O -- O   (1694e81)
            \
             N -- N -- N   refs/heads/MRESOLVER-88 (e1bdd66)

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

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

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


Summary of changes:


[maven-resolver] 01/01: [MRESOLVER-88] Code style cleanup to use Java 7 features

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

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

commit e1bdd66978fff672fb057657841040f4c2982436
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 a363058..cecfeb5 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>