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 2020/12/23 10:08:59 UTC

[maven-resolver] 01/01: First shot

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

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

commit 9295e3b60c7f970e129c8f76714424447e0882fb
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Wed Dec 23 11:08:46 2020 +0100

    First shot
---
 .../basic/BasicRepositoryConnectorFactory.java      |  9 ++++++---
 .../internal/impl/DefaultTransporterProvider.java   |  3 ++-
 .../impl/EnhancedLocalRepositoryManagerFactory.java | 11 ++++++++---
 .../impl/SimpleLocalRepositoryManagerFactory.java   | 11 ++++++++---
 .../connector/transport/AbstractTransporter.java    | 21 ++++++++++++++-------
 .../classpath/ClasspathTransporterFactory.java      | 11 ++++++++---
 .../transport/file/FileTransporterFactory.java      | 11 ++++++++---
 .../transport/http/HttpTransporterFactory.java      | 11 ++++++++---
 .../transport/wagon/PlexusWagonConfigurator.java    | 11 +++++------
 .../aether/transport/wagon/WagonTransporter.java    |  7 +++++--
 .../transport/wagon/WagonTransporterFactory.java    | 15 ++++++++++-----
 11 files changed, 82 insertions(+), 39 deletions(-)

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 540b301..aa747a9 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
@@ -8,9 +8,9 @@ package org.eclipse.aether.connector.basic;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -139,7 +139,7 @@ public final class BasicRepositoryConnectorFactory
 
     /**
      * Sets the priority of this component.
-     * 
+     *
      * @param priority The priority.
      * @return This component for chaining, never {@code null}.
      */
@@ -152,6 +152,9 @@ public final class BasicRepositoryConnectorFactory
     public RepositoryConnector newInstance( RepositorySystemSession session, RemoteRepository repository )
         throws NoRepositoryConnectorException
     {
+        requireNonNull( "session", "session cannot be null" );
+        requireNonNull( "repository", "repository cannot be null" );
+
         return new BasicRepositoryConnector( session, repository, transporterProvider, layoutProvider,
                                              checksumPolicyProvider, fileProcessor );
     }
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 550191d..fed7c1b 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
@@ -88,7 +88,8 @@ public final class DefaultTransporterProvider
     public Transporter newTransporter( RepositorySystemSession session, RemoteRepository repository )
         throws NoTransporterException
     {
-        requireNonNull( repository, "remote repository cannot be null" );
+        requireNonNull( "session", "session cannot be null" );
+        requireNonNull( "repository", "repository cannot be null" );
 
         PrioritizedComponents<TransporterFactory> factories = new PrioritizedComponents<>( session );
         for ( TransporterFactory factory : this.factories )
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
index fdf6b38..5058cab 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/EnhancedLocalRepositoryManagerFactory.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.internal.impl;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,6 +21,8 @@ package org.eclipse.aether.internal.impl;
 
 import javax.inject.Named;
 
+import java.util.Objects;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.LocalRepositoryManager;
@@ -48,6 +50,9 @@ public class EnhancedLocalRepositoryManagerFactory
     public LocalRepositoryManager newInstance( RepositorySystemSession session, LocalRepository repository )
         throws NoLocalRepositoryManagerException
     {
+        Objects.requireNonNull( "session", "session cannot be null" );
+        Objects.requireNonNull( "repository", "repository cannot be null" );
+
         if ( "".equals( repository.getContentType() ) || "default".equals( repository.getContentType() ) )
         {
             return new EnhancedLocalRepositoryManager( repository.getBasedir(), session );
@@ -65,7 +70,7 @@ public class EnhancedLocalRepositoryManagerFactory
 
     /**
      * Sets the priority of this component.
-     * 
+     *
      * @param priority The priority.
      * @return This component for chaining, never {@code null}.
      */
diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java
index c0426e8..23f9f89 100644
--- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java
+++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/SimpleLocalRepositoryManagerFactory.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.internal.impl;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,6 +21,8 @@ package org.eclipse.aether.internal.impl;
 
 import javax.inject.Named;
 
+import java.util.Objects;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.LocalRepository;
 import org.eclipse.aether.repository.LocalRepositoryManager;
@@ -44,6 +46,9 @@ public class SimpleLocalRepositoryManagerFactory
     public LocalRepositoryManager newInstance( RepositorySystemSession session, LocalRepository repository )
         throws NoLocalRepositoryManagerException
     {
+        Objects.requireNonNull( "session", "session cannot be null" );
+        Objects.requireNonNull( "repository", "repository cannot be null" );
+
         if ( "".equals( repository.getContentType() ) || "simple".equals( repository.getContentType() ) )
         {
             return new SimpleLocalRepositoryManager( repository.getBasedir() );
@@ -61,7 +66,7 @@ public class SimpleLocalRepositoryManagerFactory
 
     /**
      * Sets the priority of this component.
-     * 
+     *
      * @param priority The priority.
      * @return This component for chaining, never {@code null}.
      */
diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
index 21a0da3..63d9817 100644
--- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
+++ b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/connector/transport/AbstractTransporter.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.spi.connector.transport;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.ByteBuffer;
+import java.util.Objects;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.eclipse.aether.transfer.TransferCancelledException;
@@ -47,13 +48,15 @@ public abstract class AbstractTransporter
     public void peek( PeekTask task )
         throws Exception
     {
+        Objects.requireNonNull( "task", "task cannot be null" );
+
         failIfClosed( task );
         implPeek( task );
     }
 
     /**
      * Implements {@link #peek(PeekTask)}, gets only called if the transporter has not been closed.
-     * 
+     *
      * @param task The existence check to perform, must not be {@code null}.
      * @throws Exception If the existence of the specified resource could not be confirmed.
      */
@@ -63,13 +66,15 @@ public abstract class AbstractTransporter
     public void get( GetTask task )
         throws Exception
     {
+        Objects.requireNonNull( "task", "task cannot be null" );
+
         failIfClosed( task );
         implGet( task );
     }
 
     /**
      * Implements {@link #get(GetTask)}, gets only called if the transporter has not been closed.
-     * 
+     *
      * @param task The download to perform, must not be {@code null}.
      * @throws Exception If the transfer failed.
      */
@@ -80,7 +85,7 @@ public abstract class AbstractTransporter
      * Performs stream-based I/O for the specified download task and notifies the configured transport listener.
      * Subclasses might want to invoke this utility method from within their {@link #implGet(GetTask)} to avoid
      * boilerplate I/O code.
-     * 
+     *
      * @param task The download to perform, must not be {@code null}.
      * @param is The input stream to download the data from, must not be {@code null}.
      * @param close {@code true} if the supplied input stream should be automatically closed, {@code false} to leave the
@@ -143,13 +148,15 @@ public abstract class AbstractTransporter
     public void put( PutTask task )
         throws Exception
     {
+        Objects.requireNonNull( "task", "task cannot be null" );
+
         failIfClosed( task );
         implPut( task );
     }
 
     /**
      * Implements {@link #put(PutTask)}, gets only called if the transporter has not been closed.
-     * 
+     *
      * @param task The upload to perform, must not be {@code null}.
      * @throws Exception If the transfer failed.
      */
@@ -160,7 +167,7 @@ public abstract class AbstractTransporter
      * Performs stream-based I/O for the specified upload task and notifies the configured transport listener.
      * Subclasses might want to invoke this utility method from within their {@link #implPut(PutTask)} to avoid
      * boilerplate I/O code.
-     * 
+     *
      * @param task The upload to perform, must not be {@code null}.
      * @param os The output stream to upload the data to, must not be {@code null}.
      * @param close {@code true} if the supplied output stream should be automatically closed, {@code false} to leave
diff --git a/maven-resolver-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java b/maven-resolver-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java
index a1004be..5f5b48d 100644
--- a/maven-resolver-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java
+++ b/maven-resolver-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporterFactory.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.transport.classpath;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,6 +21,8 @@ package org.eclipse.aether.transport.classpath;
 
 import javax.inject.Named;
 
+import java.util.Objects;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.spi.connector.transport.Transporter;
@@ -67,7 +69,7 @@ public final class ClasspathTransporterFactory
 
     /**
      * Sets the priority of this component.
-     * 
+     *
      * @param priority The priority.
      * @return This component for chaining, never {@code null}.
      */
@@ -80,6 +82,9 @@ public final class ClasspathTransporterFactory
     public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository )
         throws NoTransporterException
     {
+        Objects.requireNonNull( "session", "session cannot be null" );
+        Objects.requireNonNull( "repository", "repository cannot be null" );
+
         return new ClasspathTransporter( session, repository );
     }
 
diff --git a/maven-resolver-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java b/maven-resolver-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java
index bf78a6b..42e651f 100644
--- a/maven-resolver-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java
+++ b/maven-resolver-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporterFactory.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.transport.file;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,6 +21,8 @@ package org.eclipse.aether.transport.file;
 
 import javax.inject.Named;
 
+import java.util.Objects;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.spi.connector.transport.Transporter;
@@ -54,7 +56,7 @@ public final class FileTransporterFactory
 
     /**
      * Sets the priority of this component.
-     * 
+     *
      * @param priority The priority.
      * @return This component for chaining, never {@code null}.
      */
@@ -67,6 +69,9 @@ public final class FileTransporterFactory
     public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository )
         throws NoTransporterException
     {
+        Objects.requireNonNull( "session", "session cannot be null" );
+        Objects.requireNonNull( "repository", "repository cannot be null" );
+
         return new FileTransporter( repository );
     }
 
diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
index 5e329ca..1747891 100644
--- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
+++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporterFactory.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.transport.http;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -21,6 +21,8 @@ package org.eclipse.aether.transport.http;
 
 import javax.inject.Named;
 
+import java.util.Objects;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.spi.connector.transport.Transporter;
@@ -55,7 +57,7 @@ public final class HttpTransporterFactory
 
     /**
      * Sets the priority of this component.
-     * 
+     *
      * @param priority The priority.
      * @return This component for chaining, never {@code null}.
      */
@@ -68,6 +70,9 @@ public final class HttpTransporterFactory
     public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository )
         throws NoTransporterException
     {
+        Objects.requireNonNull( "session", "session cannot be null" );
+        Objects.requireNonNull( "repository", "repository cannot be null" );
+
         return new HttpTransporter( repository, session );
     }
 
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 a6d150c..7f8d7dc 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
@@ -8,9 +8,9 @@ package org.eclipse.aether.internal.transport.wagon;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -62,6 +62,9 @@ public class PlexusWagonConfigurator
     public void configure( Wagon wagon, Object configuration )
         throws Exception
     {
+        requireNonNull( wagon, "wagon cannot be null" );
+        requireNonNull( configuration, "configuration cannot be null" );
+
         PlexusConfiguration config;
         if ( configuration instanceof PlexusConfiguration )
         {
@@ -71,10 +74,6 @@ public class PlexusWagonConfigurator
         {
             config = new XmlPlexusConfiguration( (Xpp3Dom) configuration );
         }
-        else if ( configuration == null )
-        {
-            return;
-        }
         else
         {
             throw new IllegalArgumentException( "unexpected configuration type: "
diff --git a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
index c1eb637..6441d0c 100644
--- a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
+++ b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporter.java
@@ -29,6 +29,7 @@ import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Properties;
 import java.util.Queue;
 import java.util.UUID;
@@ -415,6 +416,8 @@ final class WagonTransporter
     private void execute( TransportTask task, TaskRunner runner )
         throws Exception
     {
+        Objects.requireNonNull( "task", "task cannot be null" );
+
         if ( closed.get() )
         {
             throw new IllegalStateException( "transporter closed, cannot execute task " + task );
@@ -625,9 +628,9 @@ final class WagonTransporter
             throws IOException
         {
             File tmp = newTempFile();
-            
+
             try ( InputStream in = task.newInputStream();
-                    OutputStream out = new FileOutputStream( tmp ) ) 
+                    OutputStream out = new FileOutputStream( tmp ) )
             {
                 copy( out, in );
             }
diff --git a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java
index 75329e6..a8487d6 100644
--- a/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java
+++ b/maven-resolver-transport-wagon/src/main/java/org/eclipse/aether/transport/wagon/WagonTransporterFactory.java
@@ -8,9 +8,9 @@ package org.eclipse.aether.transport.wagon;
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *  http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -22,6 +22,8 @@ package org.eclipse.aether.transport.wagon;
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import java.util.Objects;
+
 import org.eclipse.aether.RepositorySystemSession;
 import org.eclipse.aether.repository.RemoteRepository;
 import org.eclipse.aether.spi.connector.transport.Transporter;
@@ -71,7 +73,7 @@ public final class WagonTransporterFactory
 
     /**
      * Sets the wagon provider to use to acquire and release wagon instances.
-     * 
+     *
      * @param wagonProvider The wagon provider to use, may be {@code null}.
      * @return This factory for chaining, never {@code null}.
      */
@@ -83,7 +85,7 @@ public final class WagonTransporterFactory
 
     /**
      * Sets the wagon configurator to use to apply provider-specific configuration to wagon instances.
-     * 
+     *
      * @param wagonConfigurator The wagon configurator to use, may be {@code null}.
      * @return This factory for chaining, never {@code null}.
      */
@@ -100,7 +102,7 @@ public final class WagonTransporterFactory
 
     /**
      * Sets the priority of this component.
-     * 
+     *
      * @param priority The priority.
      * @return This component for chaining, never {@code null}.
      */
@@ -113,6 +115,9 @@ public final class WagonTransporterFactory
     public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository )
         throws NoTransporterException
     {
+        Objects.requireNonNull( "session", "session cannot be null" );
+        Objects.requireNonNull( "repository", "repository cannot be null" );
+
         return new WagonTransporter( wagonProvider, wagonConfigurator, repository, session );
     }