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 2017/05/15 13:10:45 UTC

[1/4] maven-resolver git commit: [MRESOLVER-5] Update minimum Java version to 1.7

Repository: maven-resolver
Updated Branches:
  refs/heads/master 5fae685d7 -> e83567652


[MRESOLVER-5] Update minimum Java version to 1.7

Project: http://git-wip-us.apache.org/repos/asf/maven-resolver/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-resolver/commit/e8356765
Tree: http://git-wip-us.apache.org/repos/asf/maven-resolver/tree/e8356765
Diff: http://git-wip-us.apache.org/repos/asf/maven-resolver/diff/e8356765

Branch: refs/heads/master
Commit: e83567652fea414751f30dd2b9d8834fa3b97230
Parents: 6b9d07b
Author: Michael Osipov <mi...@apache.org>
Authored: Mon Oct 31 21:53:12 2016 +0100
Committer: Michael Osipov <mi...@apache.org>
Committed: Mon May 15 15:07:19 2017 +0200

----------------------------------------------------------------------
 pom.xml | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/e8356765/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 46ae39e..14c0b8f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,6 +62,7 @@
   </distributionManagement>
 
   <properties>
+    <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>


[2/4] maven-resolver git commit: [MRESOLVER-4] Use java.util.Objects#requireNonNull to intercept invalid input

Posted by mi...@apache.org.
http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositorySystem.java
----------------------------------------------------------------------
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 fbcf7c9..4269494 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.internal.impl;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -166,111 +167,67 @@ public class DefaultRepositorySystem
 
     public DefaultRepositorySystem setVersionResolver( VersionResolver versionResolver )
     {
-        if ( versionResolver == null )
-        {
-            throw new IllegalArgumentException( "version resolver has not been specified" );
-        }
-        this.versionResolver = versionResolver;
+        this.versionResolver = requireNonNull( versionResolver, "version resolver cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setVersionRangeResolver( VersionRangeResolver versionRangeResolver )
     {
-        if ( versionRangeResolver == null )
-        {
-            throw new IllegalArgumentException( "version range resolver has not been specified" );
-        }
-        this.versionRangeResolver = versionRangeResolver;
+        this.versionRangeResolver = requireNonNull( versionRangeResolver, "version range resolver cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setArtifactResolver( ArtifactResolver artifactResolver )
     {
-        if ( artifactResolver == null )
-        {
-            throw new IllegalArgumentException( "artifact resolver has not been specified" );
-        }
-        this.artifactResolver = artifactResolver;
+        this.artifactResolver = requireNonNull( artifactResolver, "artifact resolver cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setMetadataResolver( MetadataResolver metadataResolver )
     {
-        if ( metadataResolver == null )
-        {
-            throw new IllegalArgumentException( "metadata resolver has not been specified" );
-        }
-        this.metadataResolver = metadataResolver;
+        this.metadataResolver = requireNonNull( metadataResolver, "metadata resolver cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setArtifactDescriptorReader( ArtifactDescriptorReader artifactDescriptorReader )
     {
-        if ( artifactDescriptorReader == null )
-        {
-            throw new IllegalArgumentException( "artifact descriptor reader has not been specified" );
-        }
-        this.artifactDescriptorReader = artifactDescriptorReader;
+        this.artifactDescriptorReader = requireNonNull( artifactDescriptorReader, "artifact descriptor reader cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setDependencyCollector( DependencyCollector dependencyCollector )
     {
-        if ( dependencyCollector == null )
-        {
-            throw new IllegalArgumentException( "dependency collector has not been specified" );
-        }
-        this.dependencyCollector = dependencyCollector;
+        this.dependencyCollector = requireNonNull( dependencyCollector, "dependency collector cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setInstaller( Installer installer )
     {
-        if ( installer == null )
-        {
-            throw new IllegalArgumentException( "installer has not been specified" );
-        }
-        this.installer = installer;
+        this.installer = requireNonNull( installer, "installer cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setDeployer( Deployer deployer )
     {
-        if ( deployer == null )
-        {
-            throw new IllegalArgumentException( "deployer has not been specified" );
-        }
-        this.deployer = deployer;
+        this.deployer = requireNonNull( deployer, "deployer cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setLocalRepositoryProvider( LocalRepositoryProvider localRepositoryProvider )
     {
-        if ( localRepositoryProvider == null )
-        {
-            throw new IllegalArgumentException( "local repository provider has not been specified" );
-        }
-        this.localRepositoryProvider = localRepositoryProvider;
+        this.localRepositoryProvider = requireNonNull( localRepositoryProvider, "local repository provider cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setSyncContextFactory( SyncContextFactory syncContextFactory )
     {
-        if ( syncContextFactory == null )
-        {
-            throw new IllegalArgumentException( "sync context factory has not been specified" );
-        }
-        this.syncContextFactory = syncContextFactory;
+        this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" );
         return this;
     }
 
     public DefaultRepositorySystem setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        if ( remoteRepositoryManager == null )
-        {
-            throw new IllegalArgumentException( "remote repository manager has not been specified" );
-        }
-        this.remoteRepositoryManager = remoteRepositoryManager;
+        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
@@ -360,7 +317,7 @@ public class DefaultRepositorySystem
         }
         else
         {
-            throw new IllegalArgumentException( "dependency node or collect request missing" );
+            throw new NullPointerException( "dependency node and collect request cannot be null" );
         }
 
         ArtifactRequestBuilder builder = new ArtifactRequestBuilder( trace );
@@ -469,51 +426,21 @@ public class DefaultRepositorySystem
 
     private void validateSession( RepositorySystemSession session )
     {
-        if ( session == null )
-        {
-            throw new IllegalArgumentException( "Invalid repository system session: the session may not be null." );
-        }
-        if ( session.getLocalRepositoryManager() == null )
-        {
-            invalidSession( "LocalRepositoryManager" );
-        }
-        if ( session.getSystemProperties() == null )
-        {
-            invalidSession( "SystemProperties" );
-        }
-        if ( session.getUserProperties() == null )
-        {
-            invalidSession( "UserProperties" );
-        }
-        if ( session.getConfigProperties() == null )
-        {
-            invalidSession( "ConfigProperties" );
-        }
-        if ( session.getMirrorSelector() == null )
-        {
-            invalidSession( "MirrorSelector" );
-        }
-        if ( session.getProxySelector() == null )
-        {
-            invalidSession( "ProxySelector" );
-        }
-        if ( session.getAuthenticationSelector() == null )
-        {
-            invalidSession( "AuthenticationSelector" );
-        }
-        if ( session.getArtifactTypeRegistry() == null )
-        {
-            invalidSession( "ArtifactTypeRegistry" );
-        }
-        if ( session.getData() == null )
-        {
-            invalidSession( "Data" );
-        }
+        requireNonNull( session, "repository system session cannot be null" );
+        invalidSession( session.getLocalRepositoryManager(), "local repository manager" );
+        invalidSession( session.getSystemProperties(), "system properties" );
+        invalidSession( session.getUserProperties(), "user properties" );
+        invalidSession( session.getConfigProperties(), "config properties" );
+        invalidSession( session.getMirrorSelector(), "mirror selector" );
+        invalidSession( session.getProxySelector(), "proxy selector" );
+        invalidSession( session.getAuthenticationSelector(), "authentication selector" );
+        invalidSession( session.getArtifactTypeRegistry(), "artifact type registry" );
+        invalidSession( session.getData(), "data" );
     }
 
-    private void invalidSession( String name )
+    private void invalidSession( Object obj, String name )
     {
-        throw new IllegalArgumentException( "Invalid repository system session: " + name + " is not set." );
+        requireNonNull( obj, "repository system session's " + name + " cannot be null" );
     }
 
 }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultTransporterProvider.java
----------------------------------------------------------------------
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 133fd81..7779a6f 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.internal.impl;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -76,11 +77,7 @@ public final class DefaultTransporterProvider
 
     public DefaultTransporterProvider addTransporterFactory( TransporterFactory factory )
     {
-        if ( factory == null )
-        {
-            throw new IllegalArgumentException( "transporter factory has not been specified" );
-        }
-        factories.add( factory );
+        factories.add( requireNonNull( factory, "transporter factory cannot be null" ) );
         return this;
     }
 
@@ -100,10 +97,7 @@ public final class DefaultTransporterProvider
     public Transporter newTransporter( RepositorySystemSession session, RemoteRepository repository )
         throws NoTransporterException
     {
-        if ( repository == null )
-        {
-            throw new IllegalArgumentException( "remote repository has not been specified" );
-        }
+        requireNonNull( repository, "remote repository cannot be null" );
 
         PrioritizedComponents<TransporterFactory> factories = new PrioritizedComponents<TransporterFactory>( session );
         for ( TransporterFactory factory : this.factories )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManager.java
----------------------------------------------------------------------
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 eb4eff9..07dfb9e 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
@@ -23,6 +23,7 @@ import java.io.File;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 import java.util.Properties;
 import java.util.Set;
 import java.util.TreeSet;
@@ -106,11 +107,7 @@ public class DefaultUpdateCheckManager
 
     public DefaultUpdateCheckManager setUpdatePolicyAnalyzer( UpdatePolicyAnalyzer updatePolicyAnalyzer )
     {
-        if ( updatePolicyAnalyzer == null )
-        {
-            throw new IllegalArgumentException( "update policy analyzer has not been specified" );
-        }
-        this.updatePolicyAnalyzer = updatePolicyAnalyzer;
+        this.updatePolicyAnalyzer = requireNonNull( updatePolicyAnalyzer, "update policy analyzer cannot be null" );
         return this;
     }
 
@@ -132,11 +129,7 @@ public class DefaultUpdateCheckManager
         Artifact artifact = check.getItem();
         RemoteRepository repository = check.getRepository();
 
-        File artifactFile = check.getFile();
-        if ( artifactFile == null )
-        {
-            throw new IllegalArgumentException( 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();
 
@@ -269,11 +262,7 @@ public class DefaultUpdateCheckManager
         Metadata metadata = check.getItem();
         RemoteRepository repository = check.getRepository();
 
-        File metadataFile = check.getFile();
-        if ( metadataFile == null )
-        {
-            throw new IllegalArgumentException( 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();
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManager.java
----------------------------------------------------------------------
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 11ba9a1..327ec3d 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
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 import java.util.Properties;
 
 import org.eclipse.aether.RepositorySystemSession;
@@ -165,11 +166,7 @@ class EnhancedLocalRepositoryManager
 
     private void addArtifact( Artifact artifact, Collection<String> repositories, boolean local )
     {
-        if ( artifact == null )
-        {
-            throw new IllegalArgumentException( "artifact to register not specified" );
-        }
-        String path = getPathForArtifact( artifact, local );
+        String path = getPathForArtifact( requireNonNull( artifact, "artifact cannot be null" ), local );
         File file = new File( getRepository().getBasedir(), path );
         addRepo( file, repositories );
     }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManager.java
----------------------------------------------------------------------
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 97c7bba..7d97233 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
@@ -20,6 +20,7 @@ package org.eclipse.aether.internal.impl;
  */
 
 import java.io.File;
+import static java.util.Objects.requireNonNull;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
@@ -58,10 +59,7 @@ class SimpleLocalRepositoryManager
 
     SimpleLocalRepositoryManager( File basedir, String type )
     {
-        if ( basedir == null )
-        {
-            throw new IllegalArgumentException( "base directory has not been specified" );
-        }
+        requireNonNull( basedir, "base directory cannot be null" );
         repository = new LocalRepository( basedir.getAbsoluteFile(), type );
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDependencyCollectorTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDependencyCollectorTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDependencyCollectorTest.java
index b78838a..72c4602 100644
--- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDependencyCollectorTest.java
+++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDependencyCollectorTest.java
@@ -164,11 +164,11 @@ public class DefaultDependencyCollectorTest
         }
         catch ( IndexOutOfBoundsException e )
         {
-            throw new IllegalArgumentException( "Illegal coordinates for child", e );
+            throw new IllegalArgumentException( "illegal coordinates for child", e );
         }
         catch ( NullPointerException e )
         {
-            throw new IllegalArgumentException( "Illegal coordinates for child", e );
+            throw new IllegalArgumentException( "illegal coordinates for child", e );
         }
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultUpdateCheckManagerTest.java
----------------------------------------------------------------------
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 43ccd54..8686ee8 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
@@ -467,7 +467,7 @@ public class DefaultUpdateCheckManagerTest
         assertEquals( false, check.isRequired() );
     }
 
-    @Test( expected = IllegalArgumentException.class )
+    @Test( expected = NullPointerException.class )
     public void testCheckArtifactFailOnNoFile()
         throws Exception
     {

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java
----------------------------------------------------------------------
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java
index 7ae69ac..a36c542 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/layout/RepositoryLayout.java
@@ -22,6 +22,7 @@ package org.eclipse.aether.spi.connector.layout;
 import java.net.URI;
 import java.util.List;
 import java.util.Locale;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.metadata.Metadata;
@@ -88,14 +89,12 @@ public interface RepositoryLayout
 
         private static void verify( String algorithm, URI location )
         {
-            if ( algorithm == null || algorithm.length() <= 0 )
+            requireNonNull( algorithm, "checksum algorithm cannot be null" );
+            if ( algorithm.length() == 0 )
             {
-                throw new IllegalArgumentException( "checksum algorithm has not been specified" );
-            }
-            if ( location == null )
-            {
-                throw new IllegalArgumentException( "checksum location has not been specified" );
+                throw new IllegalArgumentException( "checksum algorithm cannot be empty" );
             }
+            requireNonNull( location, "checksum location cannot be null" );
             if ( location.isAbsolute() )
             {
                 throw new IllegalArgumentException( "checksum location must be relative" );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/TransportTask.java
----------------------------------------------------------------------
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/TransportTask.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/TransportTask.java
index f74b301..05525b1 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/TransportTask.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/TransportTask.java
@@ -20,10 +20,11 @@ package org.eclipse.aether.spi.connector.transport;
  */
 
 import java.net.URI;
+import static java.util.Objects.requireNonNull;
 
 /**
  * A transport task.
- * 
+ *
  * @noextend This class is not intended to be extended by clients.
  */
 public abstract class TransportTask
@@ -56,17 +57,13 @@ public abstract class TransportTask
 
     TransportTask setLocation( URI location )
     {
-        if ( location == null )
-        {
-            throw new IllegalArgumentException( "resource location has not been specified" );
-        }
-        this.location = location;
+        this.location = requireNonNull( location, "location type cannot be null" );
         return this;
     }
 
     /**
      * Gets the listener that is to be notified during the transfer.
-     * 
+     *
      * @return The listener to notify of progress, never {@code null}.
      */
     public TransportListener getListener()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/DependencyGraphParser.java
----------------------------------------------------------------------
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 d3d3d02..82c6ac3 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
@@ -246,7 +246,7 @@ public class DependencyGraphParser
             {
                 if ( !substitutionIterator.hasNext() )
                 {
-                    throw new IllegalArgumentException( "not enough substitutions to fill placeholders" );
+                    throw new IllegalStateException( "not enough substitutions to fill placeholders" );
                 }
                 line = line.replaceFirst( "%s", substitutionIterator.next() );
             }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestDependencyGraphTransformationContext.java
----------------------------------------------------------------------
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 c3da4d9..d1fcdbc 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
@@ -21,6 +21,7 @@ package org.eclipse.aether.internal.test.util;
 
 import java.util.HashMap;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.collection.DependencyGraphTransformationContext;
@@ -48,19 +49,12 @@ class TestDependencyGraphTransformationContext
 
     public Object get( Object key )
     {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
-        return map.get( key );
+        return map.get( requireNonNull( key, "key cannot be null" ) );
     }
 
     public Object put( Object key, Object value )
     {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
+        requireNonNull( key, "key cannot be null" );
         if ( value != null )
         {
             return map.put( key, value );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestVersionConstraint.java
----------------------------------------------------------------------
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 bd84687..51228ee 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
@@ -19,6 +19,8 @@ package org.eclipse.aether.internal.test.util;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionConstraint;
 import org.eclipse.aether.version.VersionRange;
@@ -36,31 +38,23 @@ final class TestVersionConstraint
 
     /**
      * Creates a version constraint from the specified version range.
-     * 
+     *
      * @param range The version range, must not be {@code null}.
      */
     public TestVersionConstraint( VersionRange range )
     {
-        if ( range == null )
-        {
-            throw new IllegalArgumentException( "version range missing" );
-        }
-        this.range = range;
+        this.range = requireNonNull( range, "version range cannot be null" );
         this.version = null;
     }
 
     /**
      * Creates a version constraint from the specified version.
-     * 
+     *
      * @param version The version, must not be {@code null}.
      */
     public TestVersionConstraint( Version version )
     {
-        if ( version == null )
-        {
-            throw new IllegalArgumentException( "version missing" );
-        }
-        this.version = version;
+        this.version = requireNonNull( version, "version cannot be null" );
         this.range = null;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonConfigurator.java
----------------------------------------------------------------------
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 808d2b7..df2b2c3 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
@@ -19,6 +19,8 @@ package org.eclipse.aether.internal.transport.wagon;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import org.apache.maven.wagon.Wagon;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.classworlds.realm.ClassRealm;
@@ -58,16 +60,12 @@ public class PlexusWagonConfigurator
 
     /**
      * Creates a wagon configurator using the specified Plexus container.
-     * 
+     *
      * @param container The Plexus container instance to use, must not be {@code null}.
      */
     public PlexusWagonConfigurator( PlexusContainer container )
     {
-        if ( container == null )
-        {
-            throw new IllegalArgumentException( "plexus container has not been specified" );
-        }
-        this.container = container;
+        this.container = requireNonNull( container, "plexus container cannot be null" );
     }
 
     public void configure( Wagon wagon, Object configuration )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonProvider.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonProvider.java b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonProvider.java
index 6f40f0d..d534695 100644
--- a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonProvider.java
+++ b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/internal/transport/wagon/PlexusWagonProvider.java
@@ -19,6 +19,8 @@ package org.eclipse.aether.internal.transport.wagon;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import org.apache.maven.wagon.Wagon;
 import org.codehaus.plexus.PlexusContainer;
 import org.codehaus.plexus.component.annotations.Component;
@@ -49,16 +51,12 @@ public class PlexusWagonProvider
 
     /**
      * Creates a wagon provider using the specified Plexus container.
-     * 
+     *
      * @param container The Plexus container instance to use, must not be {@code null}.
      */
     public PlexusWagonProvider( PlexusContainer container )
     {
-        if ( container == null )
-        {
-            throw new IllegalArgumentException( "plexus container has not been specified" );
-        }
-        this.container = container;
+        this.container = requireNonNull( container, "plexus container cannot be null" );
     }
 
     public Wagon lookup( String roleHint )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/DelegatingArtifact.java
----------------------------------------------------------------------
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/DelegatingArtifact.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/DelegatingArtifact.java
index 8816ae5..00fbcd4 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/DelegatingArtifact.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/DelegatingArtifact.java
@@ -21,6 +21,7 @@ package org.eclipse.aether.util.artifact;
 
 import java.io.File;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.artifact.AbstractArtifact;
 import org.eclipse.aether.artifact.Artifact;
@@ -37,22 +38,18 @@ public abstract class DelegatingArtifact
 
     /**
      * Creates a new artifact instance that delegates to the specified artifact.
-     * 
+     *
      * @param delegate The artifact to delegate to, must not be {@code null}.
      */
     protected DelegatingArtifact( Artifact delegate )
     {
-        if ( delegate == null )
-        {
-            throw new IllegalArgumentException( "delegate artifact not specified" );
-        }
-        this.delegate = delegate;
+        this.delegate = requireNonNull( delegate, "delegate artifact cannot be null" );
     }
 
     /**
      * Creates a new artifact instance that delegates to the specified artifact. Subclasses should use this hook to
      * instantiate themselves, taking along any data from the current instance that was added.
-     * 
+     *
      * @param delegate The artifact to delegate to, must not be {@code null}.
      * @return The new delegating artifact, never {@code null}.
      */

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/artifact/SubArtifact.java
----------------------------------------------------------------------
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 ed4d55b..e0beb21 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,7 @@ package org.eclipse.aether.util.artifact;
 
 import java.io.File;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.artifact.AbstractArtifact;
 import org.eclipse.aether.artifact.Artifact;
@@ -105,11 +106,7 @@ public final class SubArtifact
     public SubArtifact( Artifact mainArtifact, String classifier, String extension, Map<String, String> properties,
                         File file )
     {
-        if ( mainArtifact == null )
-        {
-            throw new IllegalArgumentException( "no artifact specified" );
-        }
-        this.mainArtifact = mainArtifact;
+        this.mainArtifact = requireNonNull( mainArtifact, "main artifact cannot be null" );
         this.classifier = classifier;
         this.extension = extension;
         this.file = file;

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/concurrency/RunnableErrorForwarder.java
----------------------------------------------------------------------
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 270ea82..6bb2f9d 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
@@ -19,6 +19,8 @@ package org.eclipse.aether.util.concurrency;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.locks.LockSupport;
@@ -54,16 +56,13 @@ public final class RunnableErrorForwarder
 
     /**
      * Wraps the specified runnable into an equivalent runnable that will allow forwarding of uncaught errors.
-     * 
+     *
      * @param runnable The runnable from which to forward errors, must not be {@code null}.
      * @return The error-forwarding runnable to eventually execute, never {@code null}.
      */
     public Runnable wrap( final Runnable runnable )
     {
-        if ( runnable == null )
-        {
-            throw new IllegalArgumentException( "runnable missing" );
-        }
+        requireNonNull( runnable, "runnable cannot be null" );
 
         counter.incrementAndGet();
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/NotDependencyFilter.java
----------------------------------------------------------------------
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/NotDependencyFilter.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/NotDependencyFilter.java
index d5fdb24..dcb419a 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/NotDependencyFilter.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/filter/NotDependencyFilter.java
@@ -20,6 +20,7 @@ package org.eclipse.aether.util.filter;
  */
 
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.graph.DependencyFilter;
 import org.eclipse.aether.graph.DependencyNode;
@@ -35,16 +36,12 @@ public final class NotDependencyFilter
 
     /**
      * Creates a new filter negatint the specified filter.
-     * 
+     *
      * @param filter The filter to negate, must not be {@code null}.
      */
     public NotDependencyFilter( DependencyFilter filter )
     {
-        if ( filter == null )
-        {
-            throw new IllegalArgumentException( "no filter specified" );
-        }
-        this.filter = filter;
+        this.filter = requireNonNull( filter, "dependency filter cannot be null" );
     }
 
     public boolean accept( DependencyNode node, List<DependencyNode> parents )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/transformer/ConflictResolver.java
----------------------------------------------------------------------
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 6ccc508..7da2e48 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
@@ -30,6 +30,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositoryException;
 import org.eclipse.aether.RepositorySystemSession;
@@ -108,26 +109,10 @@ public final class ConflictResolver
     public ConflictResolver( VersionSelector versionSelector, ScopeSelector scopeSelector,
                              OptionalitySelector optionalitySelector, ScopeDeriver scopeDeriver )
     {
-        if ( versionSelector == null )
-        {
-            throw new IllegalArgumentException( "version selector not specified" );
-        }
-        this.versionSelector = versionSelector;
-        if ( scopeSelector == null )
-        {
-            throw new IllegalArgumentException( "scope selector not specified" );
-        }
-        this.scopeSelector = scopeSelector;
-        if ( scopeDeriver == null )
-        {
-            throw new IllegalArgumentException( "scope deriver not specified" );
-        }
-        this.scopeDeriver = scopeDeriver;
-        if ( optionalitySelector == null )
-        {
-            throw new IllegalArgumentException( "optionality selector not specified" );
-        }
-        this.optionalitySelector = optionalitySelector;
+        this.versionSelector = requireNonNull( versionSelector, "version selector cannot be null" );
+        this.scopeSelector = requireNonNull( scopeSelector, "scope selector cannot be null" );
+        this.optionalitySelector = requireNonNull( optionalitySelector, "optionality selector cannot be null" );
+        this.scopeDeriver = requireNonNull( scopeDeriver, "scope deriver cannot be null" );
     }
 
     public DependencyNode transformGraph( DependencyNode node, DependencyGraphTransformationContext context )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/FilteringDependencyVisitor.java
----------------------------------------------------------------------
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 49f779c..a126bb7 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
@@ -19,6 +19,8 @@ package org.eclipse.aether.util.graph.visitor;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import org.eclipse.aether.graph.DependencyFilter;
 import org.eclipse.aether.graph.DependencyNode;
 import org.eclipse.aether.graph.DependencyVisitor;
@@ -41,17 +43,13 @@ public final class FilteringDependencyVisitor
 
     /**
      * Creates a new visitor that delegates traversal of nodes matching the given filter to the specified visitor.
-     * 
+     *
      * @param visitor The visitor to delegate to, must not be {@code null}.
      * @param filter The filter to apply, may be {@code null} to not filter.
      */
     public FilteringDependencyVisitor( DependencyVisitor visitor, DependencyFilter filter )
     {
-        if ( visitor == null )
-        {
-            throw new IllegalArgumentException( "dependency visitor not specified" );
-        }
-        this.visitor = visitor;
+        this.visitor = requireNonNull( visitor, "dependency visitor delegate cannot be null" );
         this.filter = filter;
         this.accepts = new Stack<Boolean>();
         this.parents = new Stack<DependencyNode>();

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/visitor/TreeDependencyVisitor.java
----------------------------------------------------------------------
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 f1658a8..2f9012d 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
@@ -21,6 +21,7 @@ package org.eclipse.aether.util.graph.visitor;
 
 import java.util.IdentityHashMap;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.graph.DependencyNode;
 import org.eclipse.aether.graph.DependencyVisitor;
@@ -42,16 +43,12 @@ public final class TreeDependencyVisitor
 
     /**
      * Creates a new visitor that delegates to the specified visitor.
-     * 
+     *
      * @param visitor The visitor to delegate to, must not be {@code null}.
      */
     public TreeDependencyVisitor( DependencyVisitor visitor )
     {
-        if ( visitor == null )
-        {
-            throw new IllegalArgumentException( "no visitor delegate specified" );
-        }
-        this.visitor = visitor;
+        this.visitor = requireNonNull( visitor, "dependency visitor delegate cannot be null" );
         visitedNodes = new IdentityHashMap<DependencyNode, Object>( 512 );
         visits = new Stack<Boolean>();
     }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ComponentAuthentication.java
----------------------------------------------------------------------
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ComponentAuthentication.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ComponentAuthentication.java
index af83c9d..c9c206a 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ComponentAuthentication.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ComponentAuthentication.java
@@ -20,6 +20,7 @@ package org.eclipse.aether.util.repository;
  */
 
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.repository.Authentication;
 import org.eclipse.aether.repository.AuthenticationContext;
@@ -39,11 +40,11 @@ final class ComponentAuthentication
 
     public ComponentAuthentication( String key, Object value )
     {
-        if ( key == null )
+        this.key = requireNonNull( key, "authentication key cannot be null" );
+        if ( key.length() == 0 )
         {
-            throw new IllegalArgumentException( "authentication key missing" );
+            throw new IllegalArgumentException( "authentication key cannot be empty" );
         }
-        this.key = key;
         this.value = value;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeAuthenticationSelector.java
----------------------------------------------------------------------
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeAuthenticationSelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeAuthenticationSelector.java
index 6e727e5..f1e22f2 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeAuthenticationSelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeAuthenticationSelector.java
@@ -19,6 +19,8 @@ package org.eclipse.aether.util.repository;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import org.eclipse.aether.repository.Authentication;
 import org.eclipse.aether.repository.AuthenticationSelector;
 import org.eclipse.aether.repository.RemoteRepository;
@@ -35,17 +37,13 @@ public final class ConservativeAuthenticationSelector
 
     /**
      * Creates a new selector that delegates to the specified selector.
-     * 
+     *
      * @param selector The selector to delegate to in case a repository has no authentication yet, must not be
      *            {@code null}.
      */
     public ConservativeAuthenticationSelector( AuthenticationSelector selector )
     {
-        if ( selector == null )
-        {
-            throw new IllegalArgumentException( "no authentication selector specified" );
-        }
-        this.selector = selector;
+        this.selector = requireNonNull( selector, "authentication selector cannot be null" );
     }
 
     public Authentication getAuthentication( RemoteRepository repository )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeProxySelector.java
----------------------------------------------------------------------
diff --git a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeProxySelector.java b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeProxySelector.java
index 437c719..c71fe13 100644
--- a/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeProxySelector.java
+++ b/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/ConservativeProxySelector.java
@@ -19,6 +19,8 @@ package org.eclipse.aether.util.repository;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import org.eclipse.aether.repository.Proxy;
 import org.eclipse.aether.repository.ProxySelector;
 import org.eclipse.aether.repository.RemoteRepository;
@@ -35,16 +37,12 @@ public final class ConservativeProxySelector
 
     /**
      * Creates a new selector that delegates to the specified selector.
-     * 
+     *
      * @param selector The selector to delegate to in case a repository has no proxy yet, must not be {@code null}.
      */
     public ConservativeProxySelector( ProxySelector selector )
     {
-        if ( selector == null )
-        {
-            throw new IllegalArgumentException( "no proxy selector specified" );
-        }
-        this.selector = selector;
+        this.selector = requireNonNull( selector, "proxy selector cannot be null" );
     }
 
     public Proxy getProxy( RemoteRepository repository )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/DefaultProxySelector.java
----------------------------------------------------------------------
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 3977c6c..429fd34 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
@@ -20,10 +20,12 @@ package org.eclipse.aether.util.repository;
  */
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 import java.util.StringTokenizer;
 import java.util.regex.Pattern;
 
@@ -50,10 +52,7 @@ public final class DefaultProxySelector
      */
     public DefaultProxySelector add( Proxy proxy, String nonProxyHosts )
     {
-        if ( proxy == null )
-        {
-            throw new IllegalArgumentException( "proxy not specified" );
-        }
+        requireNonNull( proxy, "proxy cannot be null" );
         proxies.add( new ProxyDef( proxy, nonProxyHosts ) );
 
         return this;

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/SecretAuthentication.java
----------------------------------------------------------------------
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 8b3b095..445d76c 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,7 @@ package org.eclipse.aether.util.repository;
 
 import java.util.Arrays;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.repository.Authentication;
 import org.eclipse.aether.repository.AuthenticationContext;
@@ -64,11 +65,11 @@ final class SecretAuthentication
 
     private SecretAuthentication( char[] value, String key )
     {
-        if ( key == null )
+        this.key = requireNonNull( key, "authentication key cannot be null" );
+        if ( key.length() == 0 )
         {
-            throw new IllegalArgumentException( "authentication key missing" );
+            throw new IllegalArgumentException( "authentication key cannot be empty" );
         }
-        this.key = key;
         this.secretHash = Arrays.hashCode( value ) ^ KEYS[0].hashCode();
         this.value = xor( value );
     }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/repository/StringAuthentication.java
----------------------------------------------------------------------
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 8438082..606d8f2 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,7 @@ package org.eclipse.aether.util.repository;
  */
 
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.repository.Authentication;
 import org.eclipse.aether.repository.AuthenticationContext;
@@ -38,11 +39,11 @@ final class StringAuthentication
 
     public StringAuthentication( String key, String value )
     {
-        if ( key == null )
+        this.key = requireNonNull( key, "authentication key cannot be null" );
+        if ( key.length() == 0 )
         {
-            throw new IllegalArgumentException( "authentication key missing" );
+            throw new IllegalArgumentException( "authentication key cannot be empty" );
         }
-        this.key = key;
         this.value = value;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/main/java/org/eclipse/aether/util/version/GenericVersionConstraint.java
----------------------------------------------------------------------
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 bfcd455..27c52fa 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
@@ -19,6 +19,8 @@ package org.eclipse.aether.util.version;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import org.eclipse.aether.version.Version;
 import org.eclipse.aether.version.VersionConstraint;
 import org.eclipse.aether.version.VersionRange;
@@ -36,31 +38,23 @@ final class GenericVersionConstraint
 
     /**
      * Creates a version constraint from the specified version range.
-     * 
+     *
      * @param range The version range, must not be {@code null}.
      */
     public GenericVersionConstraint( VersionRange range )
     {
-        if ( range == null )
-        {
-            throw new IllegalArgumentException( "version range missing" );
-        }
-        this.range = range;
+        this.range = requireNonNull( range, "version range cannot be null" );
         this.version = null;
     }
 
     /**
      * Creates a version constraint from the specified version.
-     * 
+     *
      * @param version The version, must not be {@code null}.
      */
     public GenericVersionConstraint( Version version )
     {
-        if ( version == null )
-        {
-            throw new IllegalArgumentException( "version missing" );
-        }
-        this.version = version;
+        this.version = requireNonNull( version, "version cannot be null" );
         this.range = null;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/test/java/org/eclipse/aether/util/artifact/SubArtifactTest.java
----------------------------------------------------------------------
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 dc0e472..0ae333e 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
@@ -60,7 +60,7 @@ public class SubArtifactTest
         assertSame( null, a.getProperty( "key", null ) );
     }
 
-    @Test( expected = IllegalArgumentException.class )
+    @Test( expected = NullPointerException.class )
     public void testMainArtifactMissing()
     {
         new SubArtifact( null, "", "pom" );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-util/src/test/java/org/eclipse/aether/util/graph/transformer/JavaScopeSelectorTest.java
----------------------------------------------------------------------
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 2737803..09f9c33 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
@@ -76,11 +76,11 @@ public class JavaScopeSelectorTest
         }
         catch ( IndexOutOfBoundsException e )
         {
-            throw new IllegalArgumentException( "Illegal coordinates for child", e );
+            throw new IllegalArgumentException( "illegal coordinates for child", e );
         }
         catch ( NullPointerException e )
         {
-            throw new IllegalArgumentException( "Illegal coordinates for child", e );
+            throw new IllegalArgumentException( "illegal coordinates for child", e );
         }
     }
 


[4/4] maven-resolver git commit: [MRESOLVER-6] Use java.nio.charset.StandardCharsets wherever possible

Posted by mi...@apache.org.
[MRESOLVER-6] Use java.nio.charset.StandardCharsets wherever possible


Project: http://git-wip-us.apache.org/repos/asf/maven-resolver/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-resolver/commit/0d01ff75
Tree: http://git-wip-us.apache.org/repos/asf/maven-resolver/tree/0d01ff75
Diff: http://git-wip-us.apache.org/repos/asf/maven-resolver/diff/0d01ff75

Branch: refs/heads/master
Commit: 0d01ff75c18d51a6e30c0439c800a9c92f6bced9
Parents: 5fae685
Author: Michael Osipov <mi...@apache.org>
Authored: Mon Oct 31 23:10:27 2016 +0100
Committer: Michael Osipov <mi...@apache.org>
Committed: Mon May 15 15:07:19 2017 +0200

----------------------------------------------------------------------
 .../aether/repository/AuthenticationDigest.java | 11 ++--------
 .../connector/basic/ChecksumCalculatorTest.java | 10 ++-------
 .../internal/impl/DefaultFileProcessor.java     |  3 ++-
 .../aether/internal/impl/SimpleDigest.java      | 10 ++-------
 .../internal/impl/DefaultInstallerTest.java     |  3 +--
 .../internal/impl/TrackingFileManagerTest.java  |  3 ++-
 .../aether/spi/connector/transport/GetTask.java | 14 ++++--------
 .../aether/spi/connector/transport/PutTask.java | 16 +++++---------
 .../test/util/DependencyGraphParser.java        |  8 +++----
 .../test/util/IniArtifactDataReader.java        |  3 ++-
 .../internal/test/util/TestFileProcessor.java   |  3 ++-
 .../internal/test/util/TestFileUtils.java       |  7 +++---
 .../test/util/DependencyGraphParserTest.java    |  5 ++---
 .../classpath/ClasspathTransporterTest.java     |  7 +++---
 .../transport/file/FileTransporterTest.java     |  7 +++---
 .../aether/transport/http/HttpServer.java       |  1 +
 .../transport/http/HttpTransporterTest.java     | 23 ++++++++++----------
 .../wagon/AbstractWagonTransporterTest.java     |  7 +++---
 .../aether/transport/wagon/MemStreamWagon.java  | 22 +++----------------
 .../aether/transport/wagon/MemWagon.java        | 22 +++----------------
 .../org/eclipse/aether/util/ChecksumUtils.java  |  7 +++---
 .../eclipse/aether/util/ChecksumUtilTest.java   |  3 ++-
 22 files changed, 70 insertions(+), 125 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationDigest.java
----------------------------------------------------------------------
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 03725b6..e186060 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
@@ -19,7 +19,7 @@ package org.eclipse.aether.repository;
  * under the License.
  */
 
-import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
@@ -157,14 +157,7 @@ public final class AuthenticationDigest
             {
                 if ( string != null )
                 {
-                    try
-                    {
-                        digest.update( string.getBytes( "UTF-8" ) );
-                    }
-                    catch ( UnsupportedEncodingException e )
-                    {
-                        throw new IllegalStateException( e );
-                    }
+                    digest.update( string.getBytes( StandardCharsets.UTF_8 ) );
                 }
             }
         }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-connector-basic/src/test/java/org/eclipse/aether/connector/basic/ChecksumCalculatorTest.java
----------------------------------------------------------------------
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 0dc43af..616eb1d 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
@@ -26,6 +26,7 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.List;
@@ -57,14 +58,7 @@ public class ChecksumCalculatorTest
 
     private ByteBuffer toBuffer( String data )
     {
-        try
-        {
-            return ByteBuffer.wrap( data.getBytes( "UTF-8" ) );
-        }
-        catch ( UnsupportedEncodingException e )
-        {
-            throw new IllegalStateException( e );
-        }
+        return ByteBuffer.wrap( data.getBytes( StandardCharsets.UTF_8 ) );
     }
 
     @Before

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
index a77e353..eb2226d 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultFileProcessor.java
@@ -26,6 +26,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 
 import javax.inject.Named;
 
@@ -90,7 +91,7 @@ public class DefaultFileProcessor
 
             if ( data != null )
             {
-                out.write( data.getBytes( "UTF-8" ) );
+                out.write( data.getBytes( StandardCharsets.UTF_8 ) );
             }
 
             out.close();

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleDigest.java
----------------------------------------------------------------------
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 9b51e98..d948ac3 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
@@ -20,6 +20,7 @@ package org.eclipse.aether.internal.impl;
  */
 
 import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
@@ -61,14 +62,7 @@ class SimpleDigest
         }
         if ( digest != null )
         {
-            try
-            {
-                digest.update( data.getBytes( "UTF-8" ) );
-            }
-            catch ( UnsupportedEncodingException e )
-            {
-                // broken JVM
-            }
+            digest.update( data.getBytes( StandardCharsets.UTF_8 ) );
         }
         else
         {

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultInstallerTest.java
----------------------------------------------------------------------
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 99d57bc..efabedd 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
@@ -23,7 +23,6 @@ import static org.junit.Assert.*;
 
 import java.io.File;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.util.List;
 
 import org.eclipse.aether.DefaultRepositorySystemSession;
@@ -108,7 +107,7 @@ public class DefaultInstallerTest
 
     @Test
     public void testSuccessfulInstall()
-        throws InstallationException, UnsupportedEncodingException, IOException
+        throws InstallationException, IOException
     {
         File artifactFile =
             new File( session.getLocalRepositoryManager().getRepository().getBasedir(), localArtifactPath );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/TrackingFileManagerTest.java
----------------------------------------------------------------------
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 d730d7e..a3f4bb8 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.internal.impl;
 import static org.junit.Assert.*;
 
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -79,7 +80,7 @@ public class TrackingFileManagerTest
         TrackingFileManager tfm = new TrackingFileManager();
 
         // NOTE: The excessive repetitions are to check the update properly truncates the file
-        File propFile = TestFileUtils.createTempFile( "key1=value1\nkey2 : value2\n".getBytes( "UTF-8" ), 1000 );
+        File propFile = TestFileUtils.createTempFile( "key1=value1\nkey2 : value2\n".getBytes( StandardCharsets.UTF_8 ), 1000 );
 
         Map<String, String> updates = new HashMap<String, String>();
         updates.put( "key1", "v" );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/GetTask.java
----------------------------------------------------------------------
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 e77de77..cef6712 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
@@ -26,13 +26,14 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
 
 /**
  * A task to download a resource from the remote repository.
- * 
+ *
  * @see Transporter#get(GetTask)
  */
 public final class GetTask
@@ -192,19 +193,12 @@ public final class GetTask
         {
             return "";
         }
-        try
-        {
-            return dataBytes.toString( "UTF-8" );
-        }
-        catch ( UnsupportedEncodingException e )
-        {
-            throw new IllegalStateException( e );
-        }
+        return new String( dataBytes.toByteArray(), StandardCharsets.UTF_8 );
     }
 
     /**
      * Sets the listener that is to be notified during the transfer.
-     * 
+     *
      * @param listener The listener to notify of progress, may be {@code null}.
      * @return This task for chaining, never {@code null}.
      */

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/PutTask.java
----------------------------------------------------------------------
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/PutTask.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/PutTask.java
index 1208a64..a8416fa 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/PutTask.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/PutTask.java
@@ -26,10 +26,11 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 
 /**
  * A task to upload a resource to the remote repository.
- * 
+ *
  * @see Transporter#put(PutTask)
  */
 public final class PutTask
@@ -120,25 +121,18 @@ public final class PutTask
 
     /**
      * Sets the textual data to be uploaded. The text is encoded using UTF-8 before transmission.
-     * 
+     *
      * @param str The textual data, may be {@code null}.
      * @return This task for chaining, never {@code null}.
      */
     public PutTask setDataString( String str )
     {
-        try
-        {
-            return setDataBytes( ( str != null ) ? str.getBytes( "UTF-8" ) : null );
-        }
-        catch ( UnsupportedEncodingException e )
-        {
-            throw new IllegalStateException( e );
-        }
+        return setDataBytes( ( str != null ) ? str.getBytes( StandardCharsets.UTF_8 ) : null );
     }
 
     /**
      * Sets the listener that is to be notified during the transfer.
-     * 
+     *
      * @param listener The listener to notify of progress, may be {@code null}.
      * @return This task for chaining, never {@code null}.
      */

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/DependencyGraphParser.java
----------------------------------------------------------------------
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 d6f7a17..d3d3d02 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
@@ -24,6 +24,7 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.StringReader;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -169,7 +170,7 @@ public class DependencyGraphParser
             throw new IOException( "Could not find classpath resource " + prefix + resource );
         }
 
-        BufferedReader reader = new BufferedReader( new InputStreamReader( res.openStream(), "UTF-8" ) );
+        BufferedReader reader = new BufferedReader( new InputStreamReader( res.openStream(), StandardCharsets.UTF_8 ) );
 
         List<DependencyNode> ret = new ArrayList<DependencyNode>();
         DependencyNode root = null;
@@ -189,10 +190,8 @@ public class DependencyGraphParser
         BufferedReader reader = null;
         try
         {
-            reader = new BufferedReader( new InputStreamReader( resource.openStream(), "UTF-8" ) );
+            reader = new BufferedReader( new InputStreamReader( resource.openStream(), StandardCharsets.UTF_8 ) );
             final DependencyNode node = parse( reader );
-            reader.close();
-            reader = null;
             return node;
         }
         finally
@@ -202,6 +201,7 @@ public class DependencyGraphParser
                 if ( reader != null )
                 {
                     reader.close();
+                    reader = null;
                 }
             }
             catch ( final IOException e )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/IniArtifactDataReader.java
----------------------------------------------------------------------
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 0b5d08b..063a135 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
@@ -25,6 +25,7 @@ import java.io.InputStreamReader;
 import java.io.Reader;
 import java.io.StringReader;
 import java.net.URL;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -86,7 +87,7 @@ class IniArtifactDataReader
     public ArtifactDescription parse( URL res )
         throws IOException
     {
-        return parse( new InputStreamReader( res.openStream(), "UTF-8" ) );
+        return parse( new InputStreamReader( res.openStream(), StandardCharsets.UTF_8 ) );
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
----------------------------------------------------------------------
diff --git a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
index 5ec38e0..0277442 100644
--- a/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
+++ b/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileProcessor.java
@@ -27,6 +27,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 
 import org.eclipse.aether.spi.io.FileProcessor;
 
@@ -79,7 +80,7 @@ public class TestFileProcessor
 
             if ( data != null )
             {
-                fos.write( data.getBytes( "UTF-8" ) );
+                fos.write( data.getBytes( StandardCharsets.UTF_8 ) );
             }
 
             fos.close();

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-test-util/src/main/java/org/eclipse/aether/internal/test/util/TestFileUtils.java
----------------------------------------------------------------------
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 a948c01..f59199f 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
@@ -26,6 +26,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.RandomAccessFile;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Properties;
@@ -150,7 +151,7 @@ public class TestFileUtils
     public static File createTempFile( String contents )
         throws IOException
     {
-        return createTempFile( contents.getBytes( "UTF-8" ), 1 );
+        return createTempFile( contents.getBytes( StandardCharsets.UTF_8 ), 1 );
     }
 
     public static File createTempFile( byte[] pattern, int repeat )
@@ -309,13 +310,13 @@ public class TestFileUtils
         throws IOException
     {
         byte[] content = readBytes( file );
-        return new String( content, "UTF-8" );
+        return new String( content, StandardCharsets.UTF_8 );
     }
 
     public static void writeString( File file, String content )
         throws IOException
     {
-        writeBytes( file, content.getBytes( "UTF-8" ), 1 );
+        writeBytes( file, content.getBytes( StandardCharsets.UTF_8 ), 1 );
     }
 
     public static void readProps( File file, Properties props )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/DependencyGraphParserTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/DependencyGraphParserTest.java b/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/DependencyGraphParserTest.java
index 86e8a77..ac0a368 100644
--- a/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/DependencyGraphParserTest.java
+++ b/maven-resolver-test-util/src/test/java/org/eclipse/aether/internal/test/util/DependencyGraphParserTest.java
@@ -22,7 +22,6 @@ package org.eclipse.aether.internal.test.util;
 import static org.junit.Assert.*;
 
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
@@ -182,7 +181,7 @@ public class DependencyGraphParserTest
 
     @Test
     public void testResourceLoading()
-        throws UnsupportedEncodingException, IOException
+        throws IOException
     {
         String prefix = "org/eclipse/aether/internal/test/util/";
         String name = "testResourceLoading.txt";
@@ -194,7 +193,7 @@ public class DependencyGraphParserTest
 
     @Test
     public void testResourceLoadingWithPrefix()
-        throws UnsupportedEncodingException, IOException
+        throws IOException
     {
         String prefix = "org/eclipse/aether/internal/test/util/";
         parser = new DependencyGraphParser( prefix );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-transport-classpath/src/test/java/org/eclipse/aether/transport/classpath/ClasspathTransporterTest.java
----------------------------------------------------------------------
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 0c91685..6022cb2 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
@@ -24,6 +24,7 @@ import static org.junit.Assert.*;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.internal.test.util.TestFileUtils;
@@ -147,7 +148,7 @@ public class ClasspathTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -163,7 +164,7 @@ public class ClasspathTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( "test", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -179,7 +180,7 @@ public class ClasspathTransporterTest
         assertEquals( 0, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
-        assertEquals( "", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-transport-file/src/test/java/org/eclipse/aether/transport/file/FileTransporterTest.java
----------------------------------------------------------------------
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 6c4e361..b4bf066 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
@@ -24,6 +24,7 @@ import static org.junit.Assert.*;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 
 import org.eclipse.aether.DefaultRepositorySystemSession;
 import org.eclipse.aether.internal.test.util.TestFileUtils;
@@ -153,7 +154,7 @@ public class FileTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -169,7 +170,7 @@ public class FileTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( "test", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -185,7 +186,7 @@ public class FileTransporterTest
         assertEquals( 0, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
-        assertEquals( "", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpServer.java
----------------------------------------------------------------------
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 44e32ed..0a7349f 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
@@ -24,6 +24,7 @@ import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Enumeration;

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-transport-http/src/test/java/org/eclipse/aether/transport/http/HttpTransporterTest.java
----------------------------------------------------------------------
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 b1ba731..6af7b16 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
@@ -27,6 +27,7 @@ import java.net.ConnectException;
 import java.net.ServerSocket;
 import java.net.SocketTimeoutException;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicReference;
@@ -277,7 +278,7 @@ public class HttpTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -293,7 +294,7 @@ public class HttpTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( "test", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -309,7 +310,7 @@ public class HttpTransporterTest
         assertEquals( 0, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
-        assertEquals( "", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -336,7 +337,7 @@ public class HttpTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -372,7 +373,7 @@ public class HttpTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -408,7 +409,7 @@ public class HttpTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -425,7 +426,7 @@ public class HttpTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
         assertEquals( httpServer.getLogEntries().toString(), 1, httpServer.getLogEntries().size() );
     }
 
@@ -442,7 +443,7 @@ public class HttpTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -458,7 +459,7 @@ public class HttpTransporterTest
         assertEquals( 2, listener.dataOffset );
         assertEquals( 9, listener.dataLength );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( "sumable", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "sumable", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -475,7 +476,7 @@ public class HttpTransporterTest
         assertEquals( 0, listener.dataOffset );
         assertEquals( 9, listener.dataLength );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( "resumable", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "resumable", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -492,7 +493,7 @@ public class HttpTransporterTest
         assertEquals( 0, listener.dataOffset );
         assertEquals( 9, listener.dataLength );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( "resumable", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "resumable", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java
index 61f8a8e..5a168d1 100644
--- a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java
+++ b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/AbstractWagonTransporterTest.java
@@ -25,6 +25,7 @@ import static org.junit.Assert.fail;
 
 import java.io.File;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.UUID;
 
@@ -195,7 +196,7 @@ public abstract class AbstractWagonTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( task.getDataString(), listener.baos.toString( "UTF-8" ) );
+        assertEquals( task.getDataString(), new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -211,7 +212,7 @@ public abstract class AbstractWagonTransporterTest
         assertEquals( 4, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertTrue( "Count: " + listener.progressedCount, listener.progressedCount > 0 );
-        assertEquals( "test", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "test", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test
@@ -228,7 +229,7 @@ public abstract class AbstractWagonTransporterTest
         assertEquals( 0, listener.dataLength );
         assertEquals( 1, listener.startedCount );
         assertEquals( 0, listener.progressedCount );
-        assertEquals( "", listener.baos.toString( "UTF-8" ) );
+        assertEquals( "", new String( listener.baos.toByteArray(), StandardCharsets.UTF_8 ) );
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemStreamWagon.java
----------------------------------------------------------------------
diff --git a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemStreamWagon.java b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemStreamWagon.java
index 35efca1..6b4be8f 100644
--- a/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemStreamWagon.java
+++ b/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemStreamWagon.java
@@ -23,8 +23,8 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.Properties;
 
@@ -104,15 +104,7 @@ public class MemStreamWagon
         {
             throw new ResourceDoesNotExistException( "Missing resource: " + inputData.getResource().getName() );
         }
-        byte[] bytes;
-        try
-        {
-            bytes = data.getBytes( "UTF-8" );
-        }
-        catch ( UnsupportedEncodingException e )
-        {
-            throw new TransferFailedException( e.getMessage(), e );
-        }
+        byte[] bytes = data.getBytes( StandardCharsets.UTF_8 );
         inputData.getResource().setContentLength( bytes.length );
         inputData.setInputStream( new ByteArrayInputStream( bytes ) );
     }
@@ -128,15 +120,7 @@ public class MemStreamWagon
     protected void finishPutTransfer( Resource resource, InputStream input, OutputStream output )
         throws TransferFailedException, AuthorizationException, ResourceDoesNotExistException
     {
-        String data;
-        try
-        {
-            data = ( (ByteArrayOutputStream) output ).toString( "UTF-8" );
-        }
-        catch ( UnsupportedEncodingException e )
-        {
-            throw new TransferFailedException( e.getMessage(), e );
-        }
+        String data = new String( ( (ByteArrayOutputStream) output ).toByteArray(), StandardCharsets.UTF_8 );
         fs.put( URI.create( resource.getName() ).getSchemeSpecificPart(), data );
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-transport-wagon/src/test/java/org/eclipse/aether/transport/wagon/MemWagon.java
----------------------------------------------------------------------
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 ec3d7d6..17c82f2 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
@@ -24,8 +24,8 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
 import java.net.URI;
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.Properties;
 
@@ -158,15 +158,7 @@ public class MemWagon
         {
             throw new ResourceDoesNotExistException( "Missing resource: " + inputData.getResource().getName() );
         }
-        byte[] bytes;
-        try
-        {
-            bytes = data.getBytes( "UTF-8" );
-        }
-        catch ( UnsupportedEncodingException e )
-        {
-            throw new TransferFailedException( e.getMessage(), e );
-        }
+        byte[] bytes = data.getBytes( StandardCharsets.UTF_8 );
         inputData.getResource().setContentLength( bytes.length );
         inputData.setInputStream( new ByteArrayInputStream( bytes ) );
     }
@@ -217,15 +209,7 @@ public class MemWagon
     protected void finishPutTransfer( Resource resource, InputStream input, OutputStream output )
         throws TransferFailedException, AuthorizationException, ResourceDoesNotExistException
     {
-        String data;
-        try
-        {
-            data = ( (ByteArrayOutputStream) output ).toString( "UTF-8" );
-        }
-        catch ( UnsupportedEncodingException e )
-        {
-            throw new TransferFailedException( e.getMessage(), e );
-        }
+        String data = new String( ( (ByteArrayOutputStream) output ).toByteArray(), StandardCharsets.UTF_8 );
         fs.put( URI.create( resource.getName() ).getSchemeSpecificPart(), data );
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-util/src/main/java/org/eclipse/aether/util/ChecksumUtils.java
----------------------------------------------------------------------
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 3134c80..415e712 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
@@ -25,6 +25,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.util.Collection;
@@ -56,7 +57,7 @@ public final class ChecksumUtils
         BufferedReader br = null;
         try
         {
-            br = new BufferedReader( new InputStreamReader( new FileInputStream( checksumFile ), "UTF-8" ), 512 );
+            br = new BufferedReader( new InputStreamReader( new FileInputStream( checksumFile ), StandardCharsets.UTF_8 ), 512 );
             while ( true )
             {
                 String line = br.readLine();
@@ -71,9 +72,6 @@ public final class ChecksumUtils
                     break;
                 }
             }
-
-            br.close();
-            br = null;
         }
         finally
         {
@@ -82,6 +80,7 @@ public final class ChecksumUtils
                 if ( br != null )
                 {
                     br.close();
+                    br = null;
                 }
             }
             catch ( IOException e )

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/0d01ff75/maven-resolver-util/src/test/java/org/eclipse/aether/util/ChecksumUtilTest.java
----------------------------------------------------------------------
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 05da6f4..b249e82 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
@@ -24,6 +24,7 @@ import static org.junit.Assert.*;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
@@ -75,7 +76,7 @@ public class ChecksumUtilTest
             createTempFile( new byte[] { 0, 1, 2, 4, 8, 16, 32, 64, 127, -1, -2, -4, -8, -16, -32, -64, -127 }, 1000 );
         sums.put( patternFile, patternFileChecksums );
 
-        textFile = createTempFile( "the quick brown fox jumps over the lazy dog\n".getBytes( "UTF-8" ), 500 );
+        textFile = createTempFile( "the quick brown fox jumps over the lazy dog\n".getBytes( StandardCharsets.UTF_8 ), 500 );
         sums.put( textFile, textFileChecksums );
 
     }


[3/4] maven-resolver git commit: [MRESOLVER-4] Use java.util.Objects#requireNonNull to intercept invalid input

Posted by mi...@apache.org.
[MRESOLVER-4] Use java.util.Objects#requireNonNull to intercept invalid input


Project: http://git-wip-us.apache.org/repos/asf/maven-resolver/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-resolver/commit/6b9d07b8
Tree: http://git-wip-us.apache.org/repos/asf/maven-resolver/tree/6b9d07b8
Diff: http://git-wip-us.apache.org/repos/asf/maven-resolver/diff/6b9d07b8

Branch: refs/heads/master
Commit: 6b9d07b8193090cdc22871d2ff8abd854d0bd570
Parents: 0d01ff7
Author: Michael Osipov <mi...@apache.org>
Authored: Mon Nov 7 22:06:19 2016 +0100
Committer: Michael Osipov <mi...@apache.org>
Committed: Mon May 15 15:07:19 2017 +0200

----------------------------------------------------------------------
 .../aether/DefaultRepositorySystemSession.java  |   8 +-
 .../org/eclipse/aether/DefaultSessionData.java  |  17 +--
 .../org/eclipse/aether/RepositoryEvent.java     |  17 +--
 .../aether/artifact/DefaultArtifactType.java    |  13 +-
 .../aether/collection/CollectResult.java        |  11 +-
 .../eclipse/aether/deployment/DeployResult.java |  11 +-
 .../aether/graph/DefaultDependencyNode.java     |   6 +-
 .../org/eclipse/aether/graph/Dependency.java    |   7 +-
 .../aether/installation/InstallResult.java      |  11 +-
 .../aether/metadata/DefaultMetadata.java        |   7 +-
 .../repository/AuthenticationContext.java       |  21 ++--
 .../aether/repository/LocalArtifactResult.java  |  13 +-
 .../aether/repository/LocalMetadataResult.java  |  13 +-
 .../aether/repository/RemoteRepository.java     |  11 +-
 .../resolution/ArtifactDescriptorResult.java    |   9 +-
 .../aether/resolution/ArtifactResult.java       |  11 +-
 .../aether/resolution/DependencyResult.java     |   9 +-
 .../aether/resolution/MetadataResult.java       |  12 +-
 .../aether/resolution/VersionRangeResult.java   |   9 +-
 .../aether/resolution/VersionResult.java        |  11 +-
 .../eclipse/aether/transfer/TransferEvent.java  |  41 ++-----
 .../eclipse/aether/version/VersionRange.java    |  12 +-
 .../repository/RemoteRepositoryBuilderTest.java |   2 +-
 .../basic/BasicRepositoryConnector.java         |  13 +-
 .../basic/BasicRepositoryConnectorFactory.java  |  34 ++---
 .../aether/impl/DefaultServiceLocator.java      |  25 +---
 .../internal/impl/DefaultArtifactResolver.java  |  49 ++------
 .../impl/DefaultDependencyCollector.java        |  19 +--
 ...ultDependencyGraphTransformationContext.java |  12 +-
 .../aether/internal/impl/DefaultDeployer.java   |  49 ++------
 .../aether/internal/impl/DefaultInstaller.java  |  25 +---
 .../impl/DefaultLocalRepositoryProvider.java    |   7 +-
 .../internal/impl/DefaultMetadataResolver.java  |  37 ++----
 .../impl/DefaultRemoteRepositoryManager.java    |  13 +-
 .../DefaultRepositoryConnectorProvider.java     |  12 +-
 .../impl/DefaultRepositoryEventDispatcher.java  |   7 +-
 .../impl/DefaultRepositoryLayoutProvider.java   |  12 +-
 .../internal/impl/DefaultRepositorySystem.java  | 123 ++++---------------
 .../impl/DefaultTransporterProvider.java        |  12 +-
 .../impl/DefaultUpdateCheckManager.java         |  19 +--
 .../impl/EnhancedLocalRepositoryManager.java    |   7 +-
 .../impl/SimpleLocalRepositoryManager.java      |   6 +-
 .../impl/DefaultDependencyCollectorTest.java    |   4 +-
 .../impl/DefaultUpdateCheckManagerTest.java     |   2 +-
 .../spi/connector/layout/RepositoryLayout.java  |  11 +-
 .../spi/connector/transport/TransportTask.java  |  11 +-
 .../test/util/DependencyGraphParser.java        |   2 +-
 ...estDependencyGraphTransformationContext.java |  12 +-
 .../test/util/TestVersionConstraint.java        |  18 +--
 .../wagon/PlexusWagonConfigurator.java          |  10 +-
 .../transport/wagon/PlexusWagonProvider.java    |  10 +-
 .../util/artifact/DelegatingArtifact.java       |  11 +-
 .../aether/util/artifact/SubArtifact.java       |   7 +-
 .../concurrency/RunnableErrorForwarder.java     |   9 +-
 .../aether/util/filter/NotDependencyFilter.java |   9 +-
 .../graph/transformer/ConflictResolver.java     |  25 +---
 .../visitor/FilteringDependencyVisitor.java     |  10 +-
 .../graph/visitor/TreeDependencyVisitor.java    |   9 +-
 .../repository/ComponentAuthentication.java     |   7 +-
 .../ConservativeAuthenticationSelector.java     |  10 +-
 .../repository/ConservativeProxySelector.java   |  10 +-
 .../util/repository/DefaultProxySelector.java   |   7 +-
 .../util/repository/SecretAuthentication.java   |   7 +-
 .../util/repository/StringAuthentication.java   |   7 +-
 .../util/version/GenericVersionConstraint.java  |  18 +--
 .../aether/util/artifact/SubArtifactTest.java   |   2 +-
 .../transformer/JavaScopeSelectorTest.java      |   4 +-
 67 files changed, 293 insertions(+), 702 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultRepositorySystemSession.java
----------------------------------------------------------------------
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 93ebaca..13773df 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
@@ -22,6 +22,7 @@ package org.eclipse.aether;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.artifact.ArtifactType;
 import org.eclipse.aether.artifact.ArtifactTypeRegistry;
@@ -137,15 +138,12 @@ public final class DefaultRepositorySystemSession
      * system/user/config properties are copied as well. In other words, invoking any mutator on the new session itself
      * has no effect on the original session. Other mutable objects like the session data and cache (if any) are not
      * copied and will be shared with the original session unless reconfigured.
-     * 
+     *
      * @param session The session to copy, must not be {@code null}.
      */
     public DefaultRepositorySystemSession( RepositorySystemSession session )
     {
-        if ( session == null )
-        {
-            throw new IllegalArgumentException( "repository system session not specified" );
-        }
+        requireNonNull( session, "repository system session cannot be null" );
 
         setOffline( session.isOffline() );
         setIgnoreArtifactDescriptorRepositories( session.isIgnoreArtifactDescriptorRepositories() );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/DefaultSessionData.java
----------------------------------------------------------------------
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 e78df3a..3c2a76e 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
@@ -19,6 +19,8 @@ package org.eclipse.aether;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -38,10 +40,7 @@ public final class DefaultSessionData
 
     public void set( Object key, Object value )
     {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
+        requireNonNull( key, "key cannot be null" );
 
         if ( value != null )
         {
@@ -55,10 +54,7 @@ public final class DefaultSessionData
 
     public boolean set( Object key, Object oldValue, Object newValue )
     {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
+        requireNonNull( key, "key cannot be null" );
 
         if ( newValue != null )
         {
@@ -80,10 +76,7 @@ public final class DefaultSessionData
 
     public Object get( Object key )
     {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
+        requireNonNull( key, "key cannot be null" );
 
         return data.get( key );
     }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/RepositoryEvent.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/RepositoryEvent.java b/maven-resolver-api/src/main/java/org/eclipse/aether/RepositoryEvent.java
index 33816ba..812ef7d 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/RepositoryEvent.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/RepositoryEvent.java
@@ -22,6 +22,7 @@ package org.eclipse.aether;
 import java.io.File;
 import java.util.Collections;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.metadata.Metadata;
@@ -310,27 +311,19 @@ public final class RepositoryEvent
 
         /**
          * Creates a new event builder for the specified session and event type.
-         * 
+         *
          * @param session The repository system session, must not be {@code null}.
          * @param type The type of the event, must not be {@code null}.
          */
         public Builder( RepositorySystemSession session, EventType type )
         {
-            if ( session == null )
-            {
-                throw new IllegalArgumentException( "session not specified" );
-            }
-            this.session = session;
-            if ( type == null )
-            {
-                throw new IllegalArgumentException( "event type not specified" );
-            }
-            this.type = type;
+            this.session = requireNonNull( session, "session cannot be null" );
+            this.type = requireNonNull( type, "event type cannot be null" );
         }
 
         /**
          * Sets the artifact involved in the event.
-         * 
+         *
          * @param artifact The involved artifact, may be {@code null}.
          * @return This event builder for chaining, never {@code null}.
          */

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/artifact/DefaultArtifactType.java
----------------------------------------------------------------------
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 c0d2ad8..5ae6daa 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.artifact;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 /**
  * A simple artifact type.
@@ -83,11 +84,11 @@ public final class DefaultArtifactType
     public DefaultArtifactType( String id, String extension, String classifier, String language,
                                 boolean constitutesBuildPath, boolean includesDependencies )
     {
-        if ( id == null || id.length() < 0 )
+        this.id = requireNonNull( id, "type id cannot be null" );
+        if ( id.length() == 0 )
         {
-            throw new IllegalArgumentException( "no type id specified" );
+            throw new IllegalArgumentException( "type id cannot be empty" );
         }
-        this.id = id;
         this.extension = emptify( extension );
         this.classifier = emptify( classifier );
         Map<String, String> props = new HashMap<String, String>();
@@ -108,11 +109,11 @@ public final class DefaultArtifactType
      */
     public DefaultArtifactType( String id, String extension, String classifier, Map<String, String> properties )
     {
-        if ( id == null || id.length() < 0 )
+        this.id = requireNonNull( id, "type id cannot be null" );
+        if ( id.length() == 0 )
         {
-            throw new IllegalArgumentException( "no type id specified" );
+            throw new IllegalArgumentException( "type id cannot be empty" );
         }
-        this.id = id;
         this.extension = emptify( extension );
         this.classifier = emptify( classifier );
         this.properties = AbstractArtifact.copyProperties( properties );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/collection/CollectResult.java
----------------------------------------------------------------------
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 dd9f02e..53ebae4 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.collection;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -46,23 +47,19 @@ public final class CollectResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The resolution request, must not be {@code null}.
      */
     public CollectResult( CollectRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "dependency collection request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "dependency collection request cannot be null" );
         exceptions = Collections.emptyList();
         cycles = Collections.emptyList();
     }
 
     /**
      * Gets the collection request that was made.
-     * 
+     *
      * @return The collection request, never {@code null}.
      */
     public CollectRequest getRequest()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/deployment/DeployResult.java
----------------------------------------------------------------------
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 f75705e..823f671 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.deployment;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -44,23 +45,19 @@ public final class DeployResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The deployment request, must not be {@code null}.
      */
     public DeployResult( DeployRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "deploy request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "deploy request cannot be null" );
         artifacts = Collections.emptyList();
         metadata = Collections.emptyList();
     }
 
     /**
      * Gets the deploy request that was made.
-     * 
+     *
      * @return The deploy request, never {@code null}.
      */
     public DeployRequest getRequest()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/graph/DefaultDependencyNode.java
----------------------------------------------------------------------
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 66a60c6..db29fb7 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
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.artifact.Artifact;
 import org.eclipse.aether.repository.RemoteRepository;
@@ -311,10 +312,7 @@ public final class DefaultDependencyNode
 
     public void setData( Object key, Object value )
     {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
+        requireNonNull( key, "key cannot be null" );
 
         if ( value == null )
         {

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/graph/Dependency.java
----------------------------------------------------------------------
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 b9e7cb4..2e1a78b 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
@@ -25,6 +25,7 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.NoSuchElementException;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 
 import org.eclipse.aether.artifact.Artifact;
@@ -83,11 +84,7 @@ public final class Dependency
     private Dependency( Artifact artifact, String scope, Set<Exclusion> exclusions, Boolean optional )
     {
         // NOTE: This constructor assumes immutability of the provided exclusion collection, for internal use only
-        if ( artifact == null )
-        {
-            throw new IllegalArgumentException( "no artifact specified for dependency" );
-        }
-        this.artifact = artifact;
+        this.artifact = requireNonNull( artifact, "artifact cannot be null" );
         this.scope = ( scope != null ) ? scope : "";
         this.optional = optional;
         this.exclusions = exclusions;

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/installation/InstallResult.java
----------------------------------------------------------------------
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 6624585..2f79023 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.installation;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -44,23 +45,19 @@ public final class InstallResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The installation request, must not be {@code null}.
      */
     public InstallResult( InstallRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "install request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "install request cannot be null" );
         artifacts = Collections.emptyList();
         metadata = Collections.emptyList();
     }
 
     /**
      * Gets the install request that was made.
-     * 
+     *
      * @return The install request, never {@code null}.
      */
     public InstallRequest getRequest()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/DefaultMetadata.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/DefaultMetadata.java b/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/DefaultMetadata.java
index 1efbb72..16bcd61 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/DefaultMetadata.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/metadata/DefaultMetadata.java
@@ -21,6 +21,7 @@ package org.eclipse.aether.metadata;
 
 import java.io.File;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 /**
  * A basic metadata instance. <em>Note:</em> Instances of this class are immutable and the exposed mutators return new
@@ -127,11 +128,7 @@ public final class DefaultMetadata
         this.artifactId = emptify( artifactId );
         this.version = emptify( version );
         this.type = emptify( type );
-        if ( nature == null )
-        {
-            throw new IllegalArgumentException( "metadata nature was not specified" );
-        }
-        this.nature = nature;
+        this.nature = requireNonNull( nature, "metadata nature cannot be null" );
         this.file = file;
         this.properties = copyProperties( properties );
     }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/repository/AuthenticationContext.java
----------------------------------------------------------------------
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 bd248a0..93bcdce 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
@@ -24,6 +24,7 @@ import java.io.File;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystemSession;
 
@@ -179,11 +180,7 @@ public final class AuthenticationContext
     private AuthenticationContext( RepositorySystemSession session, RemoteRepository repository, Proxy proxy,
                                    Authentication auth )
     {
-        if ( session == null )
-        {
-            throw new IllegalArgumentException( "repository system session missing" );
-        }
-        this.session = session;
+        this.session = requireNonNull( session, "repository system session cannot be null" );
         this.repository = repository;
         this.proxy = proxy;
         this.auth = auth;
@@ -257,10 +254,12 @@ public final class AuthenticationContext
      */
     public <T> T get( String key, Map<String, String> data, Class<T> type )
     {
-        if ( key == null )
+        requireNonNull( key, "authentication key cannot be null" );
+        if ( key.length() == 0 )
         {
-            throw new IllegalArgumentException( "authentication data key missing" );
+            throw new IllegalArgumentException( "authentication key cannot be empty" );
         }
+
         Object value;
         synchronized ( authData )
         {
@@ -333,16 +332,18 @@ public final class AuthenticationContext
      * Puts the specified authentication data into this context. This method should only be called from implementors of
      * {@link Authentication#fill(AuthenticationContext, String, Map)}. Passed in character arrays are not cloned and
      * become owned by this context, i.e. get erased when the context gets closed.
-     * 
+     *
      * @param key The key to associate the authentication data with, must not be {@code null}.
      * @param value The (cleartext) authentication data to store, may be {@code null}.
      */
     public void put( String key, Object value )
     {
-        if ( key == null )
+        requireNonNull( key, "authentication key cannot be null" );
+        if ( key.length() == 0 )
         {
-            throw new IllegalArgumentException( "authentication data key missing" );
+            throw new IllegalArgumentException( "authentication key cannot be empty" );
         }
+
         synchronized ( authData )
         {
             Object oldValue = authData.put( key, value );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalArtifactResult.java
----------------------------------------------------------------------
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 e611b27..34dbe0a 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
@@ -20,12 +20,13 @@ 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)
  */
 public final class LocalArtifactResult
@@ -41,21 +42,17 @@ public final class LocalArtifactResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The local artifact request, must not be {@code null}.
      */
     public LocalArtifactResult( LocalArtifactRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "local artifact request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "local artifact request cannot be null" );
     }
 
     /**
      * Gets the request corresponding to this result.
-     * 
+     *
      * @return The corresponding request, never {@code null}.
      */
     public LocalArtifactRequest getRequest()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/repository/LocalMetadataResult.java
----------------------------------------------------------------------
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 29bd045..12f3a35 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
@@ -20,12 +20,13 @@ 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)
  */
 public final class LocalMetadataResult
@@ -39,21 +40,17 @@ public final class LocalMetadataResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The local metadata request, must not be {@code null}.
      */
     public LocalMetadataResult( LocalMetadataRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "local metadata request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "local metadata request cannot be null" );
     }
 
     /**
      * Gets the request corresponding to this result.
-     * 
+     *
      * @return The corresponding request, never {@code null}.
      */
     public LocalMetadataRequest getRequest()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/repository/RemoteRepository.java
----------------------------------------------------------------------
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 31259ca..f854051 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
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -335,22 +336,18 @@ public final class RemoteRepository
          * Creates a new repository builder which uses the specified remote repository as a prototype for the new one.
          * All properties which have not been set on the builder will be copied from the prototype when building the
          * repository.
-         * 
+         *
          * @param prototype The remote repository to use as prototype, must not be {@code null}.
          */
         public Builder( RemoteRepository prototype )
         {
-            if ( prototype == null )
-            {
-                throw new IllegalArgumentException( "repository prototype missing" );
-            }
-            this.prototype = prototype;
+            this.prototype = requireNonNull( prototype, "remote repository prototype cannot be null" );
         }
 
         /**
          * Builds a new remote repository from the current values of this builder. The state of the builder itself
          * remains unchanged.
-         * 
+         *
          * @return The remote repository, never {@code null}.
          */
         public RemoteRepository build()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactDescriptorResult.java
----------------------------------------------------------------------
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 4c53b6e..3d0edd2 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
@@ -24,6 +24,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -62,16 +63,12 @@ public final class ArtifactDescriptorResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The descriptor request, must not be {@code null}.
      */
     public ArtifactDescriptorResult( ArtifactDescriptorRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "artifact descriptor request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "artifact descriptor request cannot be null" );
         artifact = request.getArtifact();
         exceptions = Collections.emptyList();
         relocations = Collections.emptyList();

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/ArtifactResult.java
----------------------------------------------------------------------
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 5ae820b..5057855 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.resolution;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -48,22 +49,18 @@ public final class ArtifactResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The resolution request, must not be {@code null}.
      */
     public ArtifactResult( ArtifactRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "resolution request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "artifact request cannot be null" );
         exceptions = Collections.emptyList();
     }
 
     /**
      * Gets the resolution request that was made.
-     * 
+     *
      * @return The resolution request, never {@code null}.
      */
     public ArtifactRequest getRequest()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/DependencyResult.java
----------------------------------------------------------------------
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 030e923..8ba8646 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
@@ -21,6 +21,7 @@ package org.eclipse.aether.resolution;
 
 import java.util.Collections;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -47,16 +48,12 @@ public final class DependencyResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The resolution request, must not be {@code null}.
      */
     public DependencyResult( DependencyRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "dependency request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "dependency request cannot be null" );
         root = request.getRoot();
         cycles = Collections.emptyList();
         collectExceptions = Collections.emptyList();

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/MetadataResult.java
----------------------------------------------------------------------
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 2bba499..cedd395 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
@@ -19,6 +19,8 @@ package org.eclipse.aether.resolution;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.metadata.Metadata;
@@ -42,21 +44,17 @@ public final class MetadataResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The resolution request, must not be {@code null}.
      */
     public MetadataResult( MetadataRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "metadata request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "metadata request cannot be null" );
     }
 
     /**
      * Gets the resolution request that was made.
-     * 
+     *
      * @return The resolution request, never {@code null}.
      */
     public MetadataRequest getRequest()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionRangeResult.java
----------------------------------------------------------------------
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 4749f7c..8af78ea 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
@@ -24,6 +24,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -51,16 +52,12 @@ public final class VersionRangeResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The resolution request, must not be {@code null}.
      */
     public VersionRangeResult( VersionRangeRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "version range request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "version range request cannot be null" );
         exceptions = Collections.emptyList();
         versions = Collections.emptyList();
         repositories = Collections.emptyMap();

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/resolution/VersionResult.java
----------------------------------------------------------------------
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 5125773..486a287 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.resolution;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.RepositorySystemSession;
@@ -45,22 +46,18 @@ public final class VersionResult
 
     /**
      * Creates a new result for the specified request.
-     * 
+     *
      * @param request The resolution request, must not be {@code null}.
      */
     public VersionResult( VersionRequest request )
     {
-        if ( request == null )
-        {
-            throw new IllegalArgumentException( "version request has not been specified" );
-        }
-        this.request = request;
+        this.request = requireNonNull( request, "version request cannot be null" );
         exceptions = Collections.emptyList();
     }
 
     /**
      * Gets the resolution request that was made.
-     * 
+     *
      * @return The resolution request, never {@code null}.
      */
     public VersionRequest getRequest()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
index 1599a82..901f317 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/transfer/TransferEvent.java
@@ -20,12 +20,13 @@ package org.eclipse.aether.transfer;
  */
 
 import java.nio.ByteBuffer;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystemSession;
 
 /**
  * An event fired to a transfer listener during an artifact/metadata transfer.
- * 
+ *
  * @see TransferListener
  * @see TransferEvent.Builder
  */
@@ -237,22 +238,14 @@ public final class TransferEvent
 
         /**
          * Creates a new transfer event builder for the specified session and the given resource.
-         * 
+         *
          * @param session The repository system session, must not be {@code null}.
          * @param resource The resource being transferred, must not be {@code null}.
          */
         public Builder( RepositorySystemSession session, TransferResource resource )
         {
-            if ( session == null )
-            {
-                throw new IllegalArgumentException( "session not specified" );
-            }
-            if ( resource == null )
-            {
-                throw new IllegalArgumentException( "transfer resource not specified" );
-            }
-            this.session = session;
-            this.resource = resource;
+            this.session = requireNonNull( session, "repository system session cannot be null" );
+            this.resource = requireNonNull( resource, "transfer resource cannot be null" );
             type = EventType.INITIATED;
             requestType = RequestType.GET;
         }
@@ -283,17 +276,13 @@ public final class TransferEvent
          * Sets the type of the event and resets event-specific fields. In more detail, the data buffer and the
          * exception fields are set to {@code null}. Furthermore, the total number of transferred bytes is set to
          * {@code 0} if the event type is {@link EventType#STARTED}.
-         * 
+         *
          * @param type The type of the event, must not be {@code null}.
          * @return This event builder for chaining, never {@code null}.
          */
         public Builder resetType( EventType type )
         {
-            if ( type == null )
-            {
-                throw new IllegalArgumentException( "event type not specified" );
-            }
-            this.type = type;
+            this.type = requireNonNull( type, "event type cannot be null" );
             dataBuffer = null;
             exception = null;
             switch ( type )
@@ -309,33 +298,25 @@ public final class TransferEvent
         /**
          * Sets the type of the event. When re-using the same builder to generate a sequence of events for one transfer,
          * {@link #resetType(TransferEvent.EventType)} might be more handy.
-         * 
+         *
          * @param type The type of the event, must not be {@code null}.
          * @return This event builder for chaining, never {@code null}.
          */
         public Builder setType( EventType type )
         {
-            if ( type == null )
-            {
-                throw new IllegalArgumentException( "event type not specified" );
-            }
-            this.type = type;
+            this.type = requireNonNull( type, "event type cannot be null" );
             return this;
         }
 
         /**
          * Sets the type of the request/transfer.
-         * 
+         *
          * @param requestType The request/transfer type, must not be {@code null}.
          * @return This event builder for chaining, never {@code null}.
          */
         public Builder setRequestType( RequestType requestType )
         {
-            if ( requestType == null )
-            {
-                throw new IllegalArgumentException( "request type not specified" );
-            }
-            this.requestType = requestType;
+            this.requestType = requireNonNull( requestType, "request type cannot be null" );
             return this;
         }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/main/java/org/eclipse/aether/version/VersionRange.java
----------------------------------------------------------------------
diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/version/VersionRange.java b/maven-resolver-api/src/main/java/org/eclipse/aether/version/VersionRange.java
index e355cf5..fbbb808 100644
--- a/maven-resolver-api/src/main/java/org/eclipse/aether/version/VersionRange.java
+++ b/maven-resolver-api/src/main/java/org/eclipse/aether/version/VersionRange.java
@@ -19,6 +19,8 @@ package org.eclipse.aether.version;
  * under the License.
  */
 
+import static java.util.Objects.requireNonNull;
+
 /**
  * A range of versions.
  */
@@ -61,23 +63,19 @@ public interface VersionRange
 
         /**
          * Creates a new bound with the specified properties.
-         * 
+         *
          * @param version The bounding version, must not be {@code null}.
          * @param inclusive A flag whether the specified version is included in the range or not.
          */
         public Bound( Version version, boolean inclusive )
         {
-            if ( version == null )
-            {
-                throw new IllegalArgumentException( "version missing" );
-            }
-            this.version = version;
+            this.version = requireNonNull( version, "version cannot be null" );
             this.inclusive = inclusive;
         }
 
         /**
          * Gets the bounding version.
-         * 
+         *
          * @return The bounding version, never {@code null}.
          */
         public Version getVersion()

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-api/src/test/java/org/eclipse/aether/repository/RemoteRepositoryBuilderTest.java
----------------------------------------------------------------------
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 a384705..e2c15e3 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
@@ -48,7 +48,7 @@ public class RemoteRepositoryBuilderTest
         assertSame( prototype, builder.build() );
     }
 
-    @Test( expected = IllegalArgumentException.class )
+    @Test( expected = NullPointerException.class )
     public void testPrototypeMandatory()
     {
         new Builder( null );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnector.java
----------------------------------------------------------------------
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 4d8a8cf..d96b5ad 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
@@ -27,6 +27,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
@@ -400,7 +401,7 @@ final class BasicRepositoryConnector
                               List<RepositoryLayout.Checksum> checksums, TransferTransportListener<?> listener )
         {
             super( path, listener );
-            this.file = file;
+            this.file = requireNonNull( file, "destination file cannot be null" );
             checksumValidator =
                 new ChecksumValidator( logger, file, fileProcessor, this, checksumPolicy, safe( checksums ) );
         }
@@ -432,10 +433,6 @@ final class BasicRepositoryConnector
         protected void runTask()
             throws Exception
         {
-            if ( file == null )
-            {
-                throw new IllegalArgumentException( "destination file has not been specified" );
-            }
             fileProcessor.mkdirs( file.getParentFile() );
 
             PartialFile partFile = partialFileFactory.newInstance( file, this );
@@ -505,17 +502,13 @@ final class BasicRepositoryConnector
                               TransferTransportListener<?> listener )
         {
             super( path, listener );
-            this.file = file;
+            this.file = requireNonNull( file, "source file cannot be null" );
             this.checksums = safe( checksums );
         }
 
         protected void runTask()
             throws Exception
         {
-            if ( file == null )
-            {
-                throw new IllegalArgumentException( "source file has not been specified" );
-            }
             transporter.put( new PutTask( path ).setDataFile( file ).setListener( listener ) );
             uploadChecksums( file, path );
         }

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-connector-basic/src/main/java/org/eclipse/aether/connector/basic/BasicRepositoryConnectorFactory.java
----------------------------------------------------------------------
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 8338daf..c218744 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
@@ -22,6 +22,8 @@ package org.eclipse.aether.connector.basic;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import static java.util.Objects.requireNonNull;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.spi.connector.RepositoryConnector;
@@ -104,65 +106,49 @@ public final class BasicRepositoryConnectorFactory
 
     /**
      * Sets the transporter provider to use for this component.
-     * 
+     *
      * @param transporterProvider The transporter provider to use, must not be {@code null}.
      * @return This component for chaining, never {@code null}.
      */
     public BasicRepositoryConnectorFactory setTransporterProvider( TransporterProvider transporterProvider )
     {
-        if ( transporterProvider == null )
-        {
-            throw new IllegalArgumentException( "transporter provider has not been specified" );
-        }
-        this.transporterProvider = transporterProvider;
+        this.transporterProvider = requireNonNull( transporterProvider, "transporter provider cannot be null" );
         return this;
     }
 
     /**
      * Sets the repository layout provider to use for this component.
-     * 
+     *
      * @param layoutProvider The repository layout provider to use, must not be {@code null}.
      * @return This component for chaining, never {@code null}.
      */
     public BasicRepositoryConnectorFactory setRepositoryLayoutProvider( RepositoryLayoutProvider layoutProvider )
     {
-        if ( layoutProvider == null )
-        {
-            throw new IllegalArgumentException( "repository layout provider has not been specified" );
-        }
-        this.layoutProvider = layoutProvider;
+        this.layoutProvider =  requireNonNull( layoutProvider, "repository layout provider cannot be null" );
         return this;
     }
 
     /**
      * Sets the checksum policy provider to use for this component.
-     * 
+     *
      * @param checksumPolicyProvider The checksum policy provider to use, must not be {@code null}.
      * @return This component for chaining, never {@code null}.
      */
     public BasicRepositoryConnectorFactory setChecksumPolicyProvider( ChecksumPolicyProvider checksumPolicyProvider )
     {
-        if ( checksumPolicyProvider == null )
-        {
-            throw new IllegalArgumentException( "checksum policy provider has not been specified" );
-        }
-        this.checksumPolicyProvider = checksumPolicyProvider;
+        this.checksumPolicyProvider = requireNonNull( checksumPolicyProvider, "checksum policy provider cannot be null" );
         return this;
     }
 
     /**
      * Sets the file processor to use for this component.
-     * 
+     *
      * @param fileProcessor The file processor to use, must not be {@code null}.
      * @return This component for chaining, never {@code null}.
      */
     public BasicRepositoryConnectorFactory setFileProcessor( FileProcessor fileProcessor )
     {
-        if ( fileProcessor == null )
-        {
-            throw new IllegalArgumentException( "file processor has not been specified" );
-        }
-        this.fileProcessor = fileProcessor;
+        this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/DefaultServiceLocator.java
----------------------------------------------------------------------
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 4d71b88..52ae3c2 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
@@ -28,6 +28,7 @@ import java.util.HashMap;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystem;
 import org.eclipse.aether.internal.impl.DefaultArtifactResolver;
@@ -90,11 +91,7 @@ public final class DefaultServiceLocator
 
         public Entry( Class<T> type )
         {
-            if ( type == null )
-            {
-                throw new IllegalArgumentException( "service type not specified" );
-            }
-            this.type = type;
+            this.type = requireNonNull( type, "service type cannot be null" );
             providers = new LinkedHashSet<Object>( 8 );
         }
 
@@ -105,11 +102,7 @@ public final class DefaultServiceLocator
             {
                 for ( T service : services )
                 {
-                    if ( service == null )
-                    {
-                        throw new IllegalArgumentException( "service instance not specified" );
-                    }
-                    providers.add( service );
+                    providers.add( requireNonNull( service, "service instance cannot be null" ) );
                 }
             }
             instances = null;
@@ -123,11 +116,7 @@ public final class DefaultServiceLocator
 
         public synchronized void addService( Class<? extends T> impl )
         {
-            if ( impl == null )
-            {
-                throw new IllegalArgumentException( "implementation class not specified" );
-            }
-            providers.add( impl );
+            providers.add( requireNonNull( impl, "implementation class cannot be null" ) );
             instances = null;
         }
 
@@ -234,12 +223,8 @@ public final class DefaultServiceLocator
 
     private <T> Entry<T> getEntry( Class<T> type, boolean create )
     {
-        if ( type == null )
-        {
-            throw new IllegalArgumentException( "service type not specified" );
-        }
         @SuppressWarnings( "unchecked" )
-        Entry<T> entry = (Entry<T>) entries.get( type );
+        Entry<T> entry = (Entry<T>) entries.get( requireNonNull( type, "service type cannot be null" ) );
         if ( entry == null && create )
         {
             entry = new Entry<T>( type );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultArtifactResolver.java
----------------------------------------------------------------------
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 37d296e..9ccffc8 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
@@ -26,6 +26,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.inject.Inject;
@@ -148,81 +149,49 @@ public class DefaultArtifactResolver
 
     public DefaultArtifactResolver setFileProcessor( FileProcessor fileProcessor )
     {
-        if ( fileProcessor == null )
-        {
-            throw new IllegalArgumentException( "file processor has not been specified" );
-        }
-        this.fileProcessor = fileProcessor;
+        this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" );
         return this;
     }
 
     public DefaultArtifactResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
     {
-        if ( repositoryEventDispatcher == null )
-        {
-            throw new IllegalArgumentException( "repository event dispatcher has not been specified" );
-        }
-        this.repositoryEventDispatcher = repositoryEventDispatcher;
+        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, "repository event dispatcher cannot be null" );
         return this;
     }
 
     public DefaultArtifactResolver setVersionResolver( VersionResolver versionResolver )
     {
-        if ( versionResolver == null )
-        {
-            throw new IllegalArgumentException( "version resolver has not been specified" );
-        }
-        this.versionResolver = versionResolver;
+        this.versionResolver = requireNonNull( versionResolver, "version resolver cannot be null" );
         return this;
     }
 
     public DefaultArtifactResolver setUpdateCheckManager( UpdateCheckManager updateCheckManager )
     {
-        if ( updateCheckManager == null )
-        {
-            throw new IllegalArgumentException( "update check manager has not been specified" );
-        }
-        this.updateCheckManager = updateCheckManager;
+        this.updateCheckManager = requireNonNull( updateCheckManager, "update check manager cannot be null" );
         return this;
     }
 
     public DefaultArtifactResolver setRepositoryConnectorProvider( RepositoryConnectorProvider repositoryConnectorProvider )
     {
-        if ( repositoryConnectorProvider == null )
-        {
-            throw new IllegalArgumentException( "repository connector provider has not been specified" );
-        }
-        this.repositoryConnectorProvider = repositoryConnectorProvider;
+        this.repositoryConnectorProvider = requireNonNull( repositoryConnectorProvider, "repository connector provider cannot be null" );
         return this;
     }
 
     public DefaultArtifactResolver setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        if ( remoteRepositoryManager == null )
-        {
-            throw new IllegalArgumentException( "remote repository manager has not been specified" );
-        }
-        this.remoteRepositoryManager = remoteRepositoryManager;
+        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
     public DefaultArtifactResolver setSyncContextFactory( SyncContextFactory syncContextFactory )
     {
-        if ( syncContextFactory == null )
-        {
-            throw new IllegalArgumentException( "sync context factory has not been specified" );
-        }
-        this.syncContextFactory = syncContextFactory;
+        this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" );
         return this;
     }
 
     public DefaultArtifactResolver setOfflineController( OfflineController offlineController )
     {
-        if ( offlineController == null )
-        {
-            throw new IllegalArgumentException( "offline controller has not been specified" );
-        }
-        this.offlineController = offlineController;
+        this.offlineController = requireNonNull( offlineController, "offline controller cannot be null" );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
index 528200c..353f0c4 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyCollector.java
@@ -27,6 +27,7 @@ import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -123,31 +124,19 @@ public class DefaultDependencyCollector
 
     public DefaultDependencyCollector setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        if ( remoteRepositoryManager == null )
-        {
-            throw new IllegalArgumentException( "remote repository manager has not been specified" );
-        }
-        this.remoteRepositoryManager = remoteRepositoryManager;
+        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
     public DefaultDependencyCollector setArtifactDescriptorReader( ArtifactDescriptorReader artifactDescriptorReader )
     {
-        if ( artifactDescriptorReader == null )
-        {
-            throw new IllegalArgumentException( "artifact descriptor reader has not been specified" );
-        }
-        descriptorReader = artifactDescriptorReader;
+        descriptorReader = requireNonNull( artifactDescriptorReader, "artifact descriptor reader cannot be null" );
         return this;
     }
 
     public DefaultDependencyCollector setVersionRangeResolver( VersionRangeResolver versionRangeResolver )
     {
-        if ( versionRangeResolver == null )
-        {
-            throw new IllegalArgumentException( "version range resolver has not been specified" );
-        }
-        this.versionRangeResolver = versionRangeResolver;
+        this.versionRangeResolver = requireNonNull( versionRangeResolver, "version range resolver cannot be null" );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyGraphTransformationContext.java
----------------------------------------------------------------------
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyGraphTransformationContext.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyGraphTransformationContext.java
index d877ad6..9eb3e2f 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyGraphTransformationContext.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDependencyGraphTransformationContext.java
@@ -21,6 +21,7 @@ package org.eclipse.aether.internal.impl;
 
 import java.util.HashMap;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.collection.DependencyGraphTransformationContext;
@@ -48,19 +49,12 @@ class DefaultDependencyGraphTransformationContext
 
     public Object get( Object key )
     {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
-        return map.get( key );
+        return map.get( requireNonNull( key, "key cannot be null" ) );
     }
 
     public Object put( Object key, Object value )
     {
-        if ( key == null )
-        {
-            throw new IllegalArgumentException( "key must not be null" );
-        }
+        requireNonNull( key, "key cannot be null" );
         if ( value != null )
         {
             return map.put( key, value );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultDeployer.java
----------------------------------------------------------------------
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 56951fa..48240b2 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
@@ -26,6 +26,7 @@ import java.util.Arrays;
 import java.util.Collection;
 import java.util.IdentityHashMap;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -143,61 +144,37 @@ public class DefaultDeployer
 
     public DefaultDeployer setFileProcessor( FileProcessor fileProcessor )
     {
-        if ( fileProcessor == null )
-        {
-            throw new IllegalArgumentException( "file processor has not been specified" );
-        }
-        this.fileProcessor = fileProcessor;
+        this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" );
         return this;
     }
 
     public DefaultDeployer setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
     {
-        if ( repositoryEventDispatcher == null )
-        {
-            throw new IllegalArgumentException( "repository event dispatcher has not been specified" );
-        }
-        this.repositoryEventDispatcher = repositoryEventDispatcher;
+        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, "repository event dispatcher cannot be null" );
         return this;
     }
 
     public DefaultDeployer setRepositoryConnectorProvider( RepositoryConnectorProvider repositoryConnectorProvider )
     {
-        if ( repositoryConnectorProvider == null )
-        {
-            throw new IllegalArgumentException( "repository connector provider has not been specified" );
-        }
-        this.repositoryConnectorProvider = repositoryConnectorProvider;
+        this.repositoryConnectorProvider = requireNonNull( repositoryConnectorProvider, "repository connector provider cannot be null" );
         return this;
     }
 
     public DefaultDeployer setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        if ( remoteRepositoryManager == null )
-        {
-            throw new IllegalArgumentException( "remote repository manager has not been specified" );
-        }
-        this.remoteRepositoryManager = remoteRepositoryManager;
+        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
     public DefaultDeployer setUpdateCheckManager( UpdateCheckManager updateCheckManager )
     {
-        if ( updateCheckManager == null )
-        {
-            throw new IllegalArgumentException( "update check manager has not been specified" );
-        }
-        this.updateCheckManager = updateCheckManager;
+        this.updateCheckManager = requireNonNull( updateCheckManager, "update check manager cannot be null" );
         return this;
     }
 
     public DefaultDeployer addMetadataGeneratorFactory( MetadataGeneratorFactory factory )
     {
-        if ( factory == null )
-        {
-            throw new IllegalArgumentException( "metadata generator factory has not been specified" );
-        }
-        metadataFactories.add( factory );
+        metadataFactories.add( requireNonNull( factory, "metadata generator factory cannot be null" ) );
         return this;
     }
 
@@ -216,21 +193,13 @@ public class DefaultDeployer
 
     public DefaultDeployer setSyncContextFactory( SyncContextFactory syncContextFactory )
     {
-        if ( syncContextFactory == null )
-        {
-            throw new IllegalArgumentException( "sync context factory has not been specified" );
-        }
-        this.syncContextFactory = syncContextFactory;
+        this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" );
         return this;
     }
 
     public DefaultDeployer setOfflineController( OfflineController offlineController )
     {
-        if ( offlineController == null )
-        {
-            throw new IllegalArgumentException( "offline controller has not been specified" );
-        }
-        this.offlineController = offlineController;
+        this.offlineController = requireNonNull( offlineController, "offline controller cannot be null" );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultInstaller.java
----------------------------------------------------------------------
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 ea95371..008f4b3 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
@@ -24,6 +24,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.IdentityHashMap;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -106,31 +107,19 @@ public class DefaultInstaller
 
     public DefaultInstaller setFileProcessor( FileProcessor fileProcessor )
     {
-        if ( fileProcessor == null )
-        {
-            throw new IllegalArgumentException( "file processor has not been specified" );
-        }
-        this.fileProcessor = fileProcessor;
+        this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" );
         return this;
     }
 
     public DefaultInstaller setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
     {
-        if ( repositoryEventDispatcher == null )
-        {
-            throw new IllegalArgumentException( "repository event dispatcher has not been specified" );
-        }
-        this.repositoryEventDispatcher = repositoryEventDispatcher;
+        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, "repository event dispatcher cannot be null" );
         return this;
     }
 
     public DefaultInstaller addMetadataGeneratorFactory( MetadataGeneratorFactory factory )
     {
-        if ( factory == null )
-        {
-            throw new IllegalArgumentException( "metadata generator factory has not been specified" );
-        }
-        metadataFactories.add( factory );
+        metadataFactories.add( requireNonNull( factory, "metadata generator factory cannot be null" ) );
         return this;
     }
 
@@ -149,11 +138,7 @@ public class DefaultInstaller
 
     public DefaultInstaller setSyncContextFactory( SyncContextFactory syncContextFactory )
     {
-        if ( syncContextFactory == null )
-        {
-            throw new IllegalArgumentException( "sync context factory has not been specified" );
-        }
-        this.syncContextFactory = syncContextFactory;
+        this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultLocalRepositoryProvider.java
----------------------------------------------------------------------
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 1f0597a..ea89804 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.internal.impl;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -76,11 +77,7 @@ public class DefaultLocalRepositoryProvider
 
     public DefaultLocalRepositoryProvider addLocalRepositoryManagerFactory( LocalRepositoryManagerFactory factory )
     {
-        if ( factory == null )
-        {
-            throw new IllegalArgumentException( "Local repository manager factory has not been specified." );
-        }
-        managerFactories.add( factory );
+        managerFactories.add( requireNonNull( factory, "local repository manager factory cannot be null" ) );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultMetadataResolver.java
----------------------------------------------------------------------
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 c751112..f820ec9 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
@@ -27,6 +27,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import static java.util.Objects.requireNonNull;
 import java.util.concurrent.Executor;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -138,61 +139,37 @@ public class DefaultMetadataResolver
 
     public DefaultMetadataResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher )
     {
-        if ( repositoryEventDispatcher == null )
-        {
-            throw new IllegalArgumentException( "repository event dispatcher has not been specified" );
-        }
-        this.repositoryEventDispatcher = repositoryEventDispatcher;
+        this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, "repository event dispatcher cannot be null" );
         return this;
     }
 
     public DefaultMetadataResolver setUpdateCheckManager( UpdateCheckManager updateCheckManager )
     {
-        if ( updateCheckManager == null )
-        {
-            throw new IllegalArgumentException( "update check manager has not been specified" );
-        }
-        this.updateCheckManager = updateCheckManager;
+        this.updateCheckManager = requireNonNull( updateCheckManager, "update check manager cannot be null" );
         return this;
     }
 
     public DefaultMetadataResolver setRepositoryConnectorProvider( RepositoryConnectorProvider repositoryConnectorProvider )
     {
-        if ( repositoryConnectorProvider == null )
-        {
-            throw new IllegalArgumentException( "repository connector provider has not been specified" );
-        }
-        this.repositoryConnectorProvider = repositoryConnectorProvider;
+        this.repositoryConnectorProvider = requireNonNull( repositoryConnectorProvider, "repository connector provider cannot be null" );
         return this;
     }
 
     public DefaultMetadataResolver setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
     {
-        if ( remoteRepositoryManager == null )
-        {
-            throw new IllegalArgumentException( "remote repository manager has not been specified" );
-        }
-        this.remoteRepositoryManager = remoteRepositoryManager;
+        this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" );
         return this;
     }
 
     public DefaultMetadataResolver setSyncContextFactory( SyncContextFactory syncContextFactory )
     {
-        if ( syncContextFactory == null )
-        {
-            throw new IllegalArgumentException( "sync context factory has not been specified" );
-        }
-        this.syncContextFactory = syncContextFactory;
+        this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" );
         return this;
     }
 
     public DefaultMetadataResolver setOfflineController( OfflineController offlineController )
     {
-        if ( offlineController == null )
-        {
-            throw new IllegalArgumentException( "offline controller has not been specified" );
-        }
-        this.offlineController = offlineController;
+        this.offlineController = requireNonNull( offlineController, "offline controller cannot be null" );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManager.java
----------------------------------------------------------------------
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 148bf4d..a1110b4 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
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.ListIterator;
+import static java.util.Objects.requireNonNull;
 
 import javax.inject.Inject;
 import javax.inject.Named;
@@ -121,21 +122,13 @@ public class DefaultRemoteRepositoryManager
 
     public DefaultRemoteRepositoryManager setUpdatePolicyAnalyzer( UpdatePolicyAnalyzer updatePolicyAnalyzer )
     {
-        if ( updatePolicyAnalyzer == null )
-        {
-            throw new IllegalArgumentException( "update policy analyzer has not been specified" );
-        }
-        this.updatePolicyAnalyzer = updatePolicyAnalyzer;
+        this.updatePolicyAnalyzer = requireNonNull( updatePolicyAnalyzer, "update policy analyzer cannot be null" );
         return this;
     }
 
     public DefaultRemoteRepositoryManager setChecksumPolicyProvider( ChecksumPolicyProvider checksumPolicyProvider )
     {
-        if ( checksumPolicyProvider == null )
-        {
-            throw new IllegalArgumentException( "checksum policy provider has not been specified" );
-        }
-        this.checksumPolicyProvider = checksumPolicyProvider;
+        this.checksumPolicyProvider = requireNonNull( checksumPolicyProvider, "checksum policy provider cannot be null" );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryConnectorProvider.java
----------------------------------------------------------------------
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 10fdc23..68f3301 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.internal.impl;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -78,11 +79,7 @@ public class DefaultRepositoryConnectorProvider
 
     public DefaultRepositoryConnectorProvider addRepositoryConnectorFactory( RepositoryConnectorFactory factory )
     {
-        if ( factory == null )
-        {
-            throw new IllegalArgumentException( "repository connector factory has not been specified" );
-        }
-        connectorFactories.add( factory );
+        connectorFactories.add( requireNonNull( factory, "repository connector factory cannot be null" ) );
         return this;
     }
 
@@ -102,10 +99,7 @@ public class DefaultRepositoryConnectorProvider
     public RepositoryConnector newRepositoryConnector( RepositorySystemSession session, RemoteRepository repository )
         throws NoRepositoryConnectorException
     {
-        if ( repository == null )
-        {
-            throw new IllegalArgumentException( "remote repository has not been specified" );
-        }
+        requireNonNull( repository, "remote repository cannot be null" );
 
         PrioritizedComponents<RepositoryConnectorFactory> factories =
             new PrioritizedComponents<RepositoryConnectorFactory>( session );

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcher.java
----------------------------------------------------------------------
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 2e56c93..9970e62 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
@@ -21,6 +21,7 @@ package org.eclipse.aether.internal.impl;
 
 import java.util.ArrayList;
 import java.util.Collection;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -66,11 +67,7 @@ public class DefaultRepositoryEventDispatcher
 
     public DefaultRepositoryEventDispatcher addRepositoryListener( RepositoryListener listener )
     {
-        if ( listener == null )
-        {
-            throw new IllegalArgumentException( "repository listener has not been specified" );
-        }
-        this.listeners.add( listener );
+        this.listeners.add( requireNonNull( listener, "repository listener cannot be null" ) );
         return this;
     }
 

http://git-wip-us.apache.org/repos/asf/maven-resolver/blob/6b9d07b8/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultRepositoryLayoutProvider.java
----------------------------------------------------------------------
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 9cc6371..6f424e8 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
@@ -22,6 +22,7 @@ package org.eclipse.aether.internal.impl;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import static java.util.Objects.requireNonNull;
 import java.util.Set;
 
 import javax.inject.Inject;
@@ -76,11 +77,7 @@ public final class DefaultRepositoryLayoutProvider
 
     public DefaultRepositoryLayoutProvider addRepositoryLayoutFactory( RepositoryLayoutFactory factory )
     {
-        if ( factory == null )
-        {
-            throw new IllegalArgumentException( "layout factory has not been specified" );
-        }
-        factories.add( factory );
+        factories.add( requireNonNull( factory, "layout factory cannot be null" ) );
         return this;
     }
 
@@ -100,10 +97,7 @@ public final class DefaultRepositoryLayoutProvider
     public RepositoryLayout newRepositoryLayout( RepositorySystemSession session, RemoteRepository repository )
         throws NoRepositoryLayoutException
     {
-        if ( repository == null )
-        {
-            throw new IllegalArgumentException( "remote repository has not been specified" );
-        }
+        requireNonNull( repository, "remote repository cannot be null" );
 
         PrioritizedComponents<RepositoryLayoutFactory> factories =
             new PrioritizedComponents<RepositoryLayoutFactory>( session );