diff --git a/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystem.java b/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystem.java index e6c30f30b..3ad639189 100644 --- a/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystem.java +++ b/maven-resolver-api/src/main/java/org/eclipse/aether/RepositorySystem.java @@ -8,9 +8,9 @@ * 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 @@ -56,9 +56,9 @@ /** * The main entry point to the repository system and its functionality. Note that obtaining a concrete implementation of - * this interface (e.g. via dependency injection, service locator, etc.) is dependent on the application and its + * this interface (e.g. via dependency injection, etc.) is dependent on the application and its * specific needs, please consult the online documentation for examples and directions on booting the system. - * + * * @noimplement This interface is not intended to be implemented by clients. * @noextend This interface is not intended to be extended by clients. */ @@ -73,7 +73,7 @@ public interface RepositorySystem *

* The supplied request may also refer to a single concrete version rather than a version range. In this case * though, the result contains simply the (parsed) input version, regardless of the repositories and their contents. - * + * * @param session The repository session, must not be {@code null}. * @param request The version range request, must not be {@code null}. * @return The version range result, never {@code null}. @@ -87,7 +87,7 @@ VersionRangeResult resolveVersionRange( RepositorySystemSession session, Version /** * Resolves an artifact's meta version (if any) to a concrete version. For example, resolves "1.0-SNAPSHOT" to * "1.0-20090208.132618-23". - * + * * @param session The repository session, must not be {@code null}. * @param request The version request, must not be {@code null}. * @return The version result, never {@code null}. @@ -99,7 +99,7 @@ VersionResult resolveVersion( RepositorySystemSession session, VersionRequest re /** * Gets information about an artifact like its direct dependencies and potential relocations. - * + * * @param session The repository session, must not be {@code null}. * @param request The descriptor request, must not be {@code null}. * @return The descriptor result, never {@code null}. @@ -115,7 +115,7 @@ ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session * Collects the transitive dependencies of an artifact and builds a dependency graph. Note that this operation is * only concerned about determining the coordinates of the transitive dependencies. To also resolve the actual * artifact files, use {@link #resolveDependencies(RepositorySystemSession, DependencyRequest)}. - * + * * @param session The repository session, must not be {@code null}. * @param request The collection request, must not be {@code null}. * @return The collection result, never {@code null}. @@ -134,7 +134,7 @@ CollectResult collectDependencies( RepositorySystemSession session, CollectReque * Collects and resolves the transitive dependencies of an artifact. This operation is essentially a combination of * {@link #collectDependencies(RepositorySystemSession, CollectRequest)} and * {@link #resolveArtifacts(RepositorySystemSession, Collection)}. - * + * * @param session The repository session, must not be {@code null}. * @param request The dependency request, must not be {@code null}. * @return The dependency result, never {@code null}. @@ -150,7 +150,7 @@ DependencyResult resolveDependencies( RepositorySystemSession session, Dependenc * artifact that is already resolved will be skipped and is not re-resolved. In general, callers must not assume any * relationship between an artifact's resolved filename and its coordinates. Note that this method assumes that any * relocations have already been processed. - * + * * @param session The repository session, must not be {@code null}. * @param request The resolution request, must not be {@code null}. * @return The resolution result, never {@code null}. @@ -166,7 +166,7 @@ ArtifactResult resolveArtifact( RepositorySystemSession session, ArtifactRequest * necessary. Artifacts that are already resolved will be skipped and are not re-resolved. In general, callers must * not assume any relationship between an artifact's filename and its coordinates. Note that this method assumes * that any relocations have already been processed. - * + * * @param session The repository session, must not be {@code null}. * @param requests The resolution requests, must not be {@code null}. * @return The resolution results (in request order), never {@code null}. @@ -181,7 +181,7 @@ List resolveArtifacts( RepositorySystemSession session, /** * Resolves the paths for a collection of metadata. Metadata will be downloaded to the local repository if * necessary, e.g. because it hasn't been cached yet or the cache is deemed outdated. - * + * * @param session The repository session, must not be {@code null}. * @param requests The resolution requests, must not be {@code null}. * @return The resolution results (in request order), never {@code null}. @@ -193,7 +193,7 @@ List resolveMetadata( RepositorySystemSession session, /** * Installs a collection of artifacts and their accompanying metadata to the local repository. - * + * * @param session The repository session, must not be {@code null}. * @param request The installation request, must not be {@code null}. * @return The installation result, never {@code null}. @@ -204,7 +204,7 @@ InstallResult install( RepositorySystemSession session, InstallRequest request ) /** * Uploads a collection of artifacts and their accompanying metadata to a remote repository. - * + * * @param session The repository session, must not be {@code null}. * @param request The deployment request, must not be {@code null}. * @return The deployment result, never {@code null}. @@ -219,7 +219,7 @@ DeployResult deploy( RepositorySystemSession session, DeployRequest request ) * default local repository type of the system will be used. Note: It is expected that this method * invocation is one of the last steps of setting up a new session, in particular any configuration properties * should have been set already. - * + * * @param session The repository system session from which to configure the manager, must not be {@code null}. * @param localRepository The local repository to create a manager for, must not be {@code null}. * @return The local repository manager, never {@code null}. @@ -231,7 +231,7 @@ LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession sessio /** * Creates a new synchronization context. - * + * * @param session The repository session during which the context will be used, must not be {@code null}. * @param shared A flag indicating whether access to the artifacts/metadata associated with the new context can be * shared among concurrent readers or whether access needs to be exclusive to the calling thread. @@ -247,7 +247,7 @@ LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession sessio * to already carry any required authentication or proxy configuration. This method can be used to apply the * authentication/proxy configuration from a session to a bare repository definition to obtain the complete * repository definition for use in the resolution request. - * + * * @param session The repository system session from which to configure the repositories, must not be {@code null}. * @param repositories The repository prototypes from which to derive the resolution repositories, must not be * {@code null} or contain {@code null} elements. @@ -267,7 +267,7 @@ List newResolutionRepositories( RepositorySystemSession sessio * required authentication or proxy configuration. This method can be used to apply the authentication/proxy * configuration from a session to a bare repository definition to obtain the complete repository definition for use * in the deploy request. - * + * * @param session The repository system session from which to configure the repository, must not be {@code null}. * @param repository The repository prototype from which to derive the deployment repository, must not be * {@code null}. 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 540b301c5..1d2bf8725 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 @@ -32,8 +32,6 @@ import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider; import org.eclipse.aether.spi.connector.transport.TransporterProvider; import org.eclipse.aether.spi.io.FileProcessor; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.NoRepositoryConnectorException; /** @@ -43,95 +41,35 @@ */ @Named( "basic" ) public final class BasicRepositoryConnectorFactory - implements RepositoryConnectorFactory, Service + implements RepositoryConnectorFactory { - private TransporterProvider transporterProvider; + private final TransporterProvider transporterProvider; - private RepositoryLayoutProvider layoutProvider; + private final RepositoryLayoutProvider layoutProvider; - private ChecksumPolicyProvider checksumPolicyProvider; + private final ChecksumPolicyProvider checksumPolicyProvider; - private FileProcessor fileProcessor; + private final FileProcessor fileProcessor; private float priority; - /** - * Creates an (uninitialized) instance of this connector factory. Note: In case of manual instantiation by - * clients, the new factory needs to be configured via its various mutators before first use or runtime errors will - * occur. - */ - public BasicRepositoryConnectorFactory() - { - // enables default constructor - } - @Inject - BasicRepositoryConnectorFactory( TransporterProvider transporterProvider, RepositoryLayoutProvider layoutProvider, - ChecksumPolicyProvider checksumPolicyProvider, FileProcessor fileProcessor ) - { - setTransporterProvider( transporterProvider ); - setRepositoryLayoutProvider( layoutProvider ); - setChecksumPolicyProvider( checksumPolicyProvider ); - setFileProcessor( fileProcessor ); - } - - public void initService( ServiceLocator locator ) - { - setTransporterProvider( locator.getService( TransporterProvider.class ) ); - setRepositoryLayoutProvider( locator.getService( RepositoryLayoutProvider.class ) ); - setChecksumPolicyProvider( locator.getService( ChecksumPolicyProvider.class ) ); - setFileProcessor( locator.getService( FileProcessor.class ) ); - } - - /** - * 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 ) - { - 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 ) - { - 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 ) + public BasicRepositoryConnectorFactory( TransporterProvider transporterProvider, + RepositoryLayoutProvider layoutProvider, + ChecksumPolicyProvider checksumPolicyProvider, + FileProcessor fileProcessor ) { + this.transporterProvider = requireNonNull( + transporterProvider, "transporter provider cannot be null" ); + this.layoutProvider = requireNonNull( + layoutProvider, "repository layout provider cannot be null" ); 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 ) - { - this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" ); - return this; + checksumPolicyProvider, "checksum policy provider cannot be null" ); + this.fileProcessor = requireNonNull( + fileProcessor, "file processor cannot be null" ); } + @Override public float getPriority() { return priority; @@ -149,6 +87,7 @@ public BasicRepositoryConnectorFactory setPriority( float priority ) return this; } + @Override public RepositoryConnector newInstance( RepositorySystemSession session, RemoteRepository repository ) throws NoRepositoryConnectorException { diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/manual/ManualRepositorySystemFactory.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/manual/ManualRepositorySystemFactory.java deleted file mode 100644 index 77c37fb35..000000000 --- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/manual/ManualRepositorySystemFactory.java +++ /dev/null @@ -1,66 +0,0 @@ -package org.apache.maven.resolver.examples.manual; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import org.apache.maven.repository.internal.MavenRepositorySystemUtils; -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.connector.basic.BasicRepositoryConnectorFactory; -import org.eclipse.aether.impl.DefaultServiceLocator; -import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; -import org.eclipse.aether.spi.connector.transport.TransporterFactory; -import org.eclipse.aether.transport.file.FileTransporterFactory; -import org.eclipse.aether.transport.http.HttpTransporterFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * A factory for repository system instances that employs Maven Artifact Resolver's built-in service locator - * infrastructure to wire up the system's components. - */ -public class ManualRepositorySystemFactory -{ - private static final Logger LOGGER = LoggerFactory.getLogger( ManualRepositorySystemFactory.class ); - - public static RepositorySystem newRepositorySystem() - { - /* - * Aether's components implement org.eclipse.aether.spi.locator.Service to ease manual wiring and using the - * prepopulated DefaultServiceLocator, we only need to register the repository connector and transporter - * factories. - */ - DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator(); - locator.addService( RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class ); - locator.addService( TransporterFactory.class, FileTransporterFactory.class ); - locator.addService( TransporterFactory.class, HttpTransporterFactory.class ); - - locator.setErrorHandler( new DefaultServiceLocator.ErrorHandler() - { - @Override - public void serviceCreationFailed( Class type, Class impl, Throwable exception ) - { - LOGGER.error( "Service creation failed for {} with implementation {}", - type, impl, exception ); - } - } ); - - return locator.getService( RepositorySystem.class ); - } - -} diff --git a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java index 01ace9ac7..915c16e84 100644 --- a/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java +++ b/maven-resolver-demos/maven-resolver-demo-snippets/src/main/java/org/apache/maven/resolver/examples/util/Booter.java @@ -38,9 +38,8 @@ public class Booter public static RepositorySystem newRepositorySystem() { - return org.apache.maven.resolver.examples.manual.ManualRepositorySystemFactory.newRepositorySystem(); // return org.apache.maven.resolver.examples.guice.GuiceRepositorySystemFactory.newRepositorySystem(); - // return org.apache.maven.resolver.examples.sisu.SisuRepositorySystemFactory.newRepositorySystem(); + return org.apache.maven.resolver.examples.sisu.SisuRepositorySystemFactory.newRepositorySystem(); } public static DefaultRepositorySystemSession newRepositorySystemSession( RepositorySystem system ) diff --git a/maven-resolver-impl/pom.xml b/maven-resolver-impl/pom.xml index 7528884cc..b4bfd0615 100644 --- a/maven-resolver-impl/pom.xml +++ b/maven-resolver-impl/pom.xml @@ -113,6 +113,11 @@ maven-resolver-test-util test + + org.mockito + mockito-core + test + diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/AetherModule.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/AetherModule.java deleted file mode 100644 index 4e05ec24d..000000000 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/AetherModule.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.eclipse.aether.impl; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * A ready-made Guice module that sets up bindings for all components from this library. To acquire a complete - * repository system, clients need to bind an artifact descriptor reader, a version resolver, a version range resolver, - * zero or more metadata generator factories, some repository connector and transporter factories to access remote - * repositories. - * - * @deprecated Use {@link org.eclipse.aether.impl.guice.AetherModule} instead. - */ -@Deprecated -public final class AetherModule - extends org.eclipse.aether.impl.guice.AetherModule -{ - -} 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 deleted file mode 100644 index 1f296160c..000000000 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/impl/DefaultServiceLocator.java +++ /dev/null @@ -1,330 +0,0 @@ -package org.eclipse.aether.impl; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.lang.reflect.Constructor; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -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; -import org.eclipse.aether.internal.impl.DefaultChecksumPolicyProvider; -import org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector; -import org.eclipse.aether.internal.impl.DefaultDeployer; -import org.eclipse.aether.internal.impl.DefaultFileProcessor; -import org.eclipse.aether.internal.impl.DefaultInstaller; -import org.eclipse.aether.internal.impl.DefaultLocalRepositoryProvider; -import org.eclipse.aether.internal.impl.DefaultMetadataResolver; -import org.eclipse.aether.internal.impl.DefaultOfflineController; -import org.eclipse.aether.internal.impl.DefaultRemoteRepositoryManager; -import org.eclipse.aether.internal.impl.DefaultRepositoryConnectorProvider; -import org.eclipse.aether.internal.impl.DefaultRepositoryEventDispatcher; -import org.eclipse.aether.internal.impl.DefaultRepositoryLayoutProvider; -import org.eclipse.aether.internal.impl.DefaultRepositorySystem; -import org.eclipse.aether.internal.impl.DefaultSyncContextFactory; -import org.eclipse.aether.internal.impl.DefaultTransporterProvider; -import org.eclipse.aether.internal.impl.DefaultUpdateCheckManager; -import org.eclipse.aether.internal.impl.DefaultUpdatePolicyAnalyzer; -import org.eclipse.aether.internal.impl.EnhancedLocalRepositoryManagerFactory; -import org.eclipse.aether.internal.impl.Maven2RepositoryLayoutFactory; -import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory; -import org.eclipse.aether.internal.impl.slf4j.Slf4jLoggerFactory; -import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider; -import org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory; -import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider; -import org.eclipse.aether.spi.connector.transport.TransporterProvider; -import org.eclipse.aether.spi.io.FileProcessor; -import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; -import org.eclipse.aether.spi.log.LoggerFactory; -import org.eclipse.aether.spi.synccontext.SyncContextFactory; - -/** - * A simple service locator that is already setup with all components from this library. To acquire a complete - * repository system, clients need to add an artifact descriptor reader, a version resolver, a version range resolver - * and optionally some repository connector and transporter factories to access remote repositories. Once the locator is - * fully populated, the repository system can be created like this: - * - *

- * RepositorySystem repoSystem = serviceLocator.getService( RepositorySystem.class );
- * 
- * - * Note: This class is not thread-safe. Clients are expected to create the service locator and the repository - * system on a single thread. - * - * @deprecated Use some out-of-the-box DI implementation instead. - */ -@Deprecated -public final class DefaultServiceLocator - implements ServiceLocator -{ - - private class Entry - { - - private final Class type; - - private final Collection providers; - - private List instances; - - Entry( Class type ) - { - this.type = requireNonNull( type, "service type cannot be null" ); - providers = new LinkedHashSet<>( 8 ); - } - - public synchronized void setServices( T... services ) - { - providers.clear(); - if ( services != null ) - { - for ( T service : services ) - { - providers.add( requireNonNull( service, "service instance cannot be null" ) ); - } - } - instances = null; - } - - public synchronized void setService( Class impl ) - { - providers.clear(); - addService( impl ); - } - - public synchronized void addService( Class impl ) - { - providers.add( requireNonNull( impl, "implementation class cannot be null" ) ); - instances = null; - } - - public T getInstance() - { - List instances = getInstances(); - return instances.isEmpty() ? null : instances.get( 0 ); - } - - public synchronized List getInstances() - { - if ( instances == null ) - { - instances = new ArrayList<>( providers.size() ); - for ( Object provider : providers ) - { - T instance; - if ( provider instanceof Class ) - { - instance = newInstance( (Class) provider ); - } - else - { - instance = type.cast( provider ); - } - if ( instance != null ) - { - instances.add( instance ); - } - } - instances = Collections.unmodifiableList( instances ); - } - return instances; - } - - private T newInstance( Class impl ) - { - try - { - Constructor constr = impl.getDeclaredConstructor(); - if ( !Modifier.isPublic( constr.getModifiers() ) ) - { - constr.setAccessible( true ); - } - Object obj = constr.newInstance(); - - T instance = type.cast( obj ); - if ( instance instanceof Service ) - { - ( (Service) instance ).initService( DefaultServiceLocator.this ); - } - return instance; - } - catch ( Exception | LinkageError e ) - { - serviceCreationFailed( type, impl, e ); - } - return null; - } - - } - - private final Map, Entry> entries; - - private ErrorHandler errorHandler; - - /** - * Creates a new service locator that already knows about all service implementations included this library. - */ - public DefaultServiceLocator() - { - entries = new HashMap<>(); - - addService( RepositorySystem.class, DefaultRepositorySystem.class ); - addService( ArtifactResolver.class, DefaultArtifactResolver.class ); - addService( DependencyCollector.class, DefaultDependencyCollector.class ); - addService( Deployer.class, DefaultDeployer.class ); - addService( Installer.class, DefaultInstaller.class ); - addService( MetadataResolver.class, DefaultMetadataResolver.class ); - addService( RepositoryLayoutProvider.class, DefaultRepositoryLayoutProvider.class ); - addService( RepositoryLayoutFactory.class, Maven2RepositoryLayoutFactory.class ); - addService( TransporterProvider.class, DefaultTransporterProvider.class ); - addService( ChecksumPolicyProvider.class, DefaultChecksumPolicyProvider.class ); - addService( RepositoryConnectorProvider.class, DefaultRepositoryConnectorProvider.class ); - addService( RemoteRepositoryManager.class, DefaultRemoteRepositoryManager.class ); - addService( UpdateCheckManager.class, DefaultUpdateCheckManager.class ); - addService( UpdatePolicyAnalyzer.class, DefaultUpdatePolicyAnalyzer.class ); - addService( FileProcessor.class, DefaultFileProcessor.class ); - addService( org.eclipse.aether.impl.SyncContextFactory.class, DefaultSyncContextFactory.class ); - addService( SyncContextFactory.class, DefaultSyncContextFactory.class ); - addService( RepositoryEventDispatcher.class, DefaultRepositoryEventDispatcher.class ); - addService( OfflineController.class, DefaultOfflineController.class ); - addService( LocalRepositoryProvider.class, DefaultLocalRepositoryProvider.class ); - addService( LocalRepositoryManagerFactory.class, SimpleLocalRepositoryManagerFactory.class ); - addService( LocalRepositoryManagerFactory.class, EnhancedLocalRepositoryManagerFactory.class ); - addService( LoggerFactory.class, Slf4jLoggerFactory.class ); - } - - private Entry getEntry( Class type, boolean create ) - { - @SuppressWarnings( "unchecked" ) - Entry entry = (Entry) entries.get( requireNonNull( type, "service type cannot be null" ) ); - if ( entry == null && create ) - { - entry = new Entry<>( type ); - entries.put( type, entry ); - } - return entry; - } - - /** - * Sets the implementation class for a service. The specified class must have a no-arg constructor (of any - * visibility). If the service implementation itself requires other services for its operation, it should implement - * {@link Service} to gain access to this service locator. - * - * @param The service type. - * @param type The interface describing the service, must not be {@code null}. - * @param impl The implementation class of the service, must not be {@code null}. - * @return This locator for chaining, never {@code null}. - */ - public DefaultServiceLocator setService( Class type, Class impl ) - { - getEntry( type, true ).setService( impl ); - return this; - } - - /** - * Adds an implementation class for a service. The specified class must have a no-arg constructor (of any - * visibility). If the service implementation itself requires other services for its operation, it should implement - * {@link Service} to gain access to this service locator. - * - * @param The service type. - * @param type The interface describing the service, must not be {@code null}. - * @param impl The implementation class of the service, must not be {@code null}. - * @return This locator for chaining, never {@code null}. - */ - public DefaultServiceLocator addService( Class type, Class impl ) - { - getEntry( type, true ).addService( impl ); - return this; - } - - /** - * Sets the instances for a service. - * - * @param The service type. - * @param type The interface describing the service, must not be {@code null}. - * @param services The instances of the service, may be {@code null} but must not contain {@code null} elements. - * @return This locator for chaining, never {@code null}. - */ - public DefaultServiceLocator setServices( Class type, T... services ) - { - getEntry( type, true ).setServices( services ); - return this; - } - - public T getService( Class type ) - { - Entry entry = getEntry( type, false ); - return ( entry != null ) ? entry.getInstance() : null; - } - - public List getServices( Class type ) - { - Entry entry = getEntry( type, false ); - return ( entry != null ) ? entry.getInstances() : null; - } - - private void serviceCreationFailed( Class type, Class impl, Throwable exception ) - { - if ( errorHandler != null ) - { - errorHandler.serviceCreationFailed( type, impl, exception ); - } - } - - /** - * Sets the error handler to use. - * - * @param errorHandler The error handler to use, may be {@code null} to ignore/swallow errors. - */ - public void setErrorHandler( ErrorHandler errorHandler ) - { - this.errorHandler = errorHandler; - } - - /** - * A hook to customize the handling of errors encountered while locating a service implementation. - */ - public abstract static class ErrorHandler - { - - /** - * Handles errors during creation of a service. The default implemention does nothing. - * - * @param type The interface describing the service, must not be {@code null}. - * @param impl The implementation class of the service, must not be {@code null}. - * @param exception The error that occurred while trying to instantiate the implementation class, must not be - * {@code null}. - */ - public void serviceCreationFailed( Class type, Class impl, Throwable exception ) - { - } - - } - -} 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 fde3575d3..865a1a38d 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 @@ -68,8 +68,6 @@ import org.eclipse.aether.spi.connector.ArtifactDownload; import org.eclipse.aether.spi.connector.RepositoryConnector; import org.eclipse.aether.spi.io.FileProcessor; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.ArtifactNotFoundException; import org.eclipse.aether.transfer.ArtifactTransferException; import org.eclipse.aether.transfer.NoRepositoryConnectorException; @@ -83,132 +81,58 @@ @Singleton @Named public class DefaultArtifactResolver - implements ArtifactResolver, Service + implements ArtifactResolver { private static final String CONFIG_PROP_SNAPSHOT_NORMALIZATION = "aether.artifactResolver.snapshotNormalization"; private static final Logger LOGGER = LoggerFactory.getLogger( DefaultArtifactResolver.class ); - private FileProcessor fileProcessor; + private final FileProcessor fileProcessor; - private RepositoryEventDispatcher repositoryEventDispatcher; + private final RepositoryEventDispatcher repositoryEventDispatcher; - private VersionResolver versionResolver; + private final VersionResolver versionResolver; - private UpdateCheckManager updateCheckManager; + private final UpdateCheckManager updateCheckManager; - private RepositoryConnectorProvider repositoryConnectorProvider; + private final RepositoryConnectorProvider repositoryConnectorProvider; - private RemoteRepositoryManager remoteRepositoryManager; + private final RemoteRepositoryManager remoteRepositoryManager; - private SyncContextFactory syncContextFactory; + private final SyncContextFactory syncContextFactory; - private OfflineController offlineController; - - public DefaultArtifactResolver() - { - // enables default constructor - } + private final OfflineController offlineController; @SuppressWarnings( "checkstyle:parameternumber" ) @Inject - DefaultArtifactResolver( FileProcessor fileProcessor, RepositoryEventDispatcher repositoryEventDispatcher, + public DefaultArtifactResolver( FileProcessor fileProcessor, RepositoryEventDispatcher repositoryEventDispatcher, VersionResolver versionResolver, UpdateCheckManager updateCheckManager, RepositoryConnectorProvider repositoryConnectorProvider, RemoteRepositoryManager remoteRepositoryManager, SyncContextFactory syncContextFactory, OfflineController offlineController ) - { - setFileProcessor( fileProcessor ); - setRepositoryEventDispatcher( repositoryEventDispatcher ); - setVersionResolver( versionResolver ); - setUpdateCheckManager( updateCheckManager ); - setRepositoryConnectorProvider( repositoryConnectorProvider ); - setRemoteRepositoryManager( remoteRepositoryManager ); - setSyncContextFactory( syncContextFactory ); - setOfflineController( offlineController ); - } - - public void initService( ServiceLocator locator ) - { - setFileProcessor( locator.getService( FileProcessor.class ) ); - setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) ); - setVersionResolver( locator.getService( VersionResolver.class ) ); - setUpdateCheckManager( locator.getService( UpdateCheckManager.class ) ); - setRepositoryConnectorProvider( locator.getService( RepositoryConnectorProvider.class ) ); - setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) ); - setSyncContextFactory( locator.getService( SyncContextFactory.class ) ); - setOfflineController( locator.getService( OfflineController.class ) ); - } - - /** - * @deprecated not used any more since MRESOLVER-36 move to slf4j, added back in MRESOLVER-64 for compatibility - */ - @Deprecated - public DefaultArtifactResolver setLoggerFactory( org.eclipse.aether.spi.log.LoggerFactory loggerFactory ) - { - // this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() ); - return this; - } - - public DefaultArtifactResolver setFileProcessor( FileProcessor fileProcessor ) { this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" ); - return this; - } - - public DefaultArtifactResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher ) - { this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, - "repository event dispatcher cannot be null" ); - return this; - } - - public DefaultArtifactResolver setVersionResolver( VersionResolver versionResolver ) - { + "repository event dispatcher cannot be null" ); this.versionResolver = requireNonNull( versionResolver, "version resolver cannot be null" ); - return this; - } - - public DefaultArtifactResolver setUpdateCheckManager( UpdateCheckManager updateCheckManager ) - { this.updateCheckManager = requireNonNull( updateCheckManager, "update check manager cannot be null" ); - return this; - } - - public DefaultArtifactResolver setRepositoryConnectorProvider( - RepositoryConnectorProvider repositoryConnectorProvider ) - { this.repositoryConnectorProvider = requireNonNull( repositoryConnectorProvider, - "repository connector provider cannot be null" ); - return this; - } - - public DefaultArtifactResolver setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager ) - { + "repository connector provider cannot be null" ); this.remoteRepositoryManager = requireNonNull( remoteRepositoryManager, - "remote repository provider cannot be null" ); - return this; - } - - public DefaultArtifactResolver setSyncContextFactory( SyncContextFactory syncContextFactory ) - { + "remote repository provider cannot be null" ); this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" ); - return this; - } - - public DefaultArtifactResolver setOfflineController( OfflineController offlineController ) - { this.offlineController = requireNonNull( offlineController, "offline controller cannot be null" ); - return this; } + @Override public ArtifactResult resolveArtifact( RepositorySystemSession session, ArtifactRequest request ) throws ArtifactResolutionException { return resolveArtifacts( session, Collections.singleton( request ) ).get( 0 ); } + @Override public List resolveArtifacts( RepositorySystemSession session, Collection requests ) throws ArtifactResolutionException diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java index 270ac86af..b122197b7 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultChecksumPolicyProvider.java @@ -45,11 +45,7 @@ public final class DefaultChecksumPolicyProvider private static final int ORDINAL_FAIL = 2; - public DefaultChecksumPolicyProvider() - { - // enables default constructor - } - + @Override public ChecksumPolicy newChecksumPolicy( RepositorySystemSession session, RemoteRepository repository, TransferResource resource, String policy ) { @@ -71,6 +67,7 @@ public ChecksumPolicy newChecksumPolicy( RepositorySystemSession session, Remote } } + @Override public String getEffectiveChecksumPolicy( RepositorySystemSession session, String policy1, String policy2 ) { Objects.requireNonNull( session, "session cannot be null" ); 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 51a210ee1..09517c172 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 @@ -65,8 +65,6 @@ import org.eclipse.aether.spi.connector.MetadataUpload; import org.eclipse.aether.spi.connector.RepositoryConnector; import org.eclipse.aether.spi.io.FileProcessor; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.ArtifactTransferException; import org.eclipse.aether.transfer.MetadataNotFoundException; import org.eclipse.aether.transfer.MetadataTransferException; @@ -82,123 +80,50 @@ @Singleton @Named public class DefaultDeployer - implements Deployer, Service + implements Deployer { - private FileProcessor fileProcessor; + private final FileProcessor fileProcessor; - private RepositoryEventDispatcher repositoryEventDispatcher; + private final RepositoryEventDispatcher repositoryEventDispatcher; - private RepositoryConnectorProvider repositoryConnectorProvider; + private final RepositoryConnectorProvider repositoryConnectorProvider; - private RemoteRepositoryManager remoteRepositoryManager; + private final RemoteRepositoryManager remoteRepositoryManager; - private UpdateCheckManager updateCheckManager; + private final UpdateCheckManager updateCheckManager; - private Collection metadataFactories = new ArrayList<>(); + private final Collection metadataFactories; - private SyncContextFactory syncContextFactory; + private final SyncContextFactory syncContextFactory; - private OfflineController offlineController; - - public DefaultDeployer() - { - // enables default constructor - } + private final OfflineController offlineController; @SuppressWarnings( "checkstyle:parameternumber" ) @Inject - DefaultDeployer( FileProcessor fileProcessor, RepositoryEventDispatcher repositoryEventDispatcher, + public DefaultDeployer( FileProcessor fileProcessor, RepositoryEventDispatcher repositoryEventDispatcher, RepositoryConnectorProvider repositoryConnectorProvider, RemoteRepositoryManager remoteRepositoryManager, UpdateCheckManager updateCheckManager, Set metadataFactories, SyncContextFactory syncContextFactory, OfflineController offlineController ) - { - setFileProcessor( fileProcessor ); - setRepositoryEventDispatcher( repositoryEventDispatcher ); - setRepositoryConnectorProvider( repositoryConnectorProvider ); - setRemoteRepositoryManager( remoteRepositoryManager ); - setUpdateCheckManager( updateCheckManager ); - setMetadataGeneratorFactories( metadataFactories ); - setSyncContextFactory( syncContextFactory ); - setOfflineController( offlineController ); - } - - public void initService( ServiceLocator locator ) - { - setFileProcessor( locator.getService( FileProcessor.class ) ); - setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) ); - setRepositoryConnectorProvider( locator.getService( RepositoryConnectorProvider.class ) ); - setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) ); - setUpdateCheckManager( locator.getService( UpdateCheckManager.class ) ); - setMetadataGeneratorFactories( locator.getServices( MetadataGeneratorFactory.class ) ); - setSyncContextFactory( locator.getService( SyncContextFactory.class ) ); - setOfflineController( locator.getService( OfflineController.class ) ); - } - - public DefaultDeployer setFileProcessor( FileProcessor fileProcessor ) { this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" ); - return this; - } - - public DefaultDeployer setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher ) - { this.repositoryEventDispatcher = requireNonNull( - repositoryEventDispatcher, "repository event dispatcher cannot be null" ); - return this; - } - - public DefaultDeployer setRepositoryConnectorProvider( RepositoryConnectorProvider repositoryConnectorProvider ) - { + repositoryEventDispatcher, "repository event dispatcher cannot be null" ); this.repositoryConnectorProvider = requireNonNull( - repositoryConnectorProvider, "repository connector provider cannot be null" ); - return this; - } - - public DefaultDeployer setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager ) - { + repositoryConnectorProvider, "repository connector provider cannot be null" ); this.remoteRepositoryManager = requireNonNull( - remoteRepositoryManager, "remote repository provider cannot be null" ); - return this; - } - - public DefaultDeployer setUpdateCheckManager( UpdateCheckManager updateCheckManager ) - { + remoteRepositoryManager, "remote repository provider cannot be null" ); this.updateCheckManager = requireNonNull( updateCheckManager, "update check manager cannot be null" ); - return this; - } - - public DefaultDeployer addMetadataGeneratorFactory( MetadataGeneratorFactory factory ) - { - metadataFactories.add( requireNonNull( factory, "metadata generator factory cannot be null" ) ); - return this; - } - - public DefaultDeployer setMetadataGeneratorFactories( Collection metadataFactories ) - { - if ( metadataFactories == null ) + this.metadataFactories = new ArrayList<>(); + if ( metadataFactories != null ) { - this.metadataFactories = new ArrayList<>(); + this.metadataFactories.addAll( metadataFactories ); } - else - { - this.metadataFactories = metadataFactories; - } - return this; - } - - public DefaultDeployer setSyncContextFactory( SyncContextFactory syncContextFactory ) - { this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" ); - return this; - } - - public DefaultDeployer setOfflineController( OfflineController offlineController ) - { this.offlineController = requireNonNull( offlineController, "offline controller cannot be null" ); - return this; } + @Override public DeployResult deploy( RepositorySystemSession session, DeployRequest request ) throws DeploymentException { 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 20a13c404..c89f11f79 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 @@ -51,6 +51,7 @@ public class DefaultFileProcessor * @return {@code true} if and only if the directory was created, along with all necessary parent directories; * {@code false} otherwise */ + @Override public boolean mkdirs( File directory ) { if ( directory == null ) @@ -81,6 +82,7 @@ public boolean mkdirs( File directory ) return ( parentDir != null && ( mkdirs( parentDir ) || parentDir.exists() ) && canonDir.mkdir() ); } + @Override public void write( File target, String data ) throws IOException { @@ -115,6 +117,7 @@ public void write( File target, String data ) } } + @Override public void write( File target, InputStream source ) throws IOException { @@ -146,12 +149,14 @@ public void write( File target, InputStream source ) } } + @Override public void copy( File source, File target ) throws IOException { copy( source, target, null ); } + @Override public long copy( File source, File target, ProgressListener listener ) throws IOException { @@ -245,6 +250,7 @@ private long copy( OutputStream os, InputStream is, ProgressListener listener ) return total; } + @Override public void move( File source, File target ) throws IOException { 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 16f2145f7..f46366b52 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 @@ -54,8 +54,6 @@ import org.eclipse.aether.repository.LocalMetadataRegistration; import org.eclipse.aether.repository.LocalRepositoryManager; import org.eclipse.aether.spi.io.FileProcessor; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transform.FileTransformer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -65,80 +63,35 @@ @Singleton @Named public class DefaultInstaller - implements Installer, Service + implements Installer { private static final Logger LOGGER = LoggerFactory.getLogger( DefaultInstaller.class ); - private FileProcessor fileProcessor; + private final FileProcessor fileProcessor; - private RepositoryEventDispatcher repositoryEventDispatcher; + private final RepositoryEventDispatcher repositoryEventDispatcher; - private Collection metadataFactories = new ArrayList<>(); + private final Collection metadataFactories; - private SyncContextFactory syncContextFactory; - - public DefaultInstaller() - { - // enables default constructor - } + private final SyncContextFactory syncContextFactory; @Inject - DefaultInstaller( FileProcessor fileProcessor, RepositoryEventDispatcher repositoryEventDispatcher, + public DefaultInstaller( FileProcessor fileProcessor, RepositoryEventDispatcher repositoryEventDispatcher, Set metadataFactories, SyncContextFactory syncContextFactory ) - { - setFileProcessor( fileProcessor ); - setRepositoryEventDispatcher( repositoryEventDispatcher ); - setMetadataGeneratorFactories( metadataFactories ); - setSyncContextFactory( syncContextFactory ); - } - - public void initService( ServiceLocator locator ) - { - setFileProcessor( locator.getService( FileProcessor.class ) ); - setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) ); - setMetadataGeneratorFactories( locator.getServices( MetadataGeneratorFactory.class ) ); - setSyncContextFactory( locator.getService( SyncContextFactory.class ) ); - } - - public DefaultInstaller setFileProcessor( FileProcessor fileProcessor ) { this.fileProcessor = requireNonNull( fileProcessor, "file processor cannot be null" ); - return this; - } - - public DefaultInstaller setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher ) - { this.repositoryEventDispatcher = requireNonNull( repositoryEventDispatcher, - "repository event dispatcher cannot be null" ); - return this; - } - - public DefaultInstaller addMetadataGeneratorFactory( MetadataGeneratorFactory factory ) - { - metadataFactories.add( requireNonNull( factory, "metadata generator factory cannot be null" ) ); - return this; - } - - public DefaultInstaller setMetadataGeneratorFactories( Collection metadataFactories ) - { - if ( metadataFactories == null ) + "repository event dispatcher cannot be null" ); + this.metadataFactories = new ArrayList<>(); + if ( metadataFactories != null ) { - this.metadataFactories = new ArrayList<>(); + this.metadataFactories.addAll( metadataFactories ); } - else - { - this.metadataFactories = metadataFactories; - } - return this; - } - - public DefaultInstaller setSyncContextFactory( SyncContextFactory syncContextFactory ) - { this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" ); - return this; } + @Override public InstallResult install( RepositorySystemSession session, InstallRequest request ) throws InstallationException { 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 da0d59ca9..a3d102335 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 @@ -35,8 +35,6 @@ import org.eclipse.aether.repository.LocalRepositoryManager; import org.eclipse.aether.repository.NoLocalRepositoryManagerException; import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,27 +43,21 @@ @Singleton @Named public class DefaultLocalRepositoryProvider - implements LocalRepositoryProvider, Service + implements LocalRepositoryProvider { private static final Logger LOGGER = LoggerFactory.getLogger( DefaultLocalRepositoryProvider.class ); - private Collection managerFactories = new ArrayList<>(); - - public DefaultLocalRepositoryProvider() - { - // enables default constructor - } + private final Collection managerFactories; @Inject - DefaultLocalRepositoryProvider( Set factories ) + public DefaultLocalRepositoryProvider( Set factories ) { - setLocalRepositoryManagerFactories( factories ); - } - - public void initService( ServiceLocator locator ) - { - setLocalRepositoryManagerFactories( locator.getServices( LocalRepositoryManagerFactory.class ) ); + this.managerFactories = new ArrayList<>(); + if ( factories != null ) + { + this.managerFactories.addAll( factories ); + } } public DefaultLocalRepositoryProvider addLocalRepositoryManagerFactory( LocalRepositoryManagerFactory factory ) @@ -74,20 +66,7 @@ public DefaultLocalRepositoryProvider addLocalRepositoryManagerFactory( LocalRep return this; } - public DefaultLocalRepositoryProvider setLocalRepositoryManagerFactories( - Collection factories ) - { - if ( factories == null ) - { - managerFactories = new ArrayList<>( 2 ); - } - else - { - managerFactories = factories; - } - return this; - } - + @Override public LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession session, LocalRepository repository ) throws NoLocalRepositoryManagerException 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 cd217b512..707bd8d2c 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 @@ -64,8 +64,6 @@ import org.eclipse.aether.resolution.MetadataResult; import org.eclipse.aether.spi.connector.MetadataDownload; import org.eclipse.aether.spi.connector.RepositoryConnector; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.MetadataNotFoundException; import org.eclipse.aether.transfer.MetadataTransferException; import org.eclipse.aether.transfer.NoRepositoryConnectorException; @@ -79,93 +77,42 @@ @Singleton @Named public class DefaultMetadataResolver - implements MetadataResolver, Service + implements MetadataResolver { private static final String CONFIG_PROP_THREADS = "aether.metadataResolver.threads"; - private RepositoryEventDispatcher repositoryEventDispatcher; + private final RepositoryEventDispatcher repositoryEventDispatcher; - private UpdateCheckManager updateCheckManager; + private final UpdateCheckManager updateCheckManager; - private RepositoryConnectorProvider repositoryConnectorProvider; + private final RepositoryConnectorProvider repositoryConnectorProvider; - private RemoteRepositoryManager remoteRepositoryManager; + private final RemoteRepositoryManager remoteRepositoryManager; - private SyncContextFactory syncContextFactory; + private final SyncContextFactory syncContextFactory; - private OfflineController offlineController; - - public DefaultMetadataResolver() - { - // enables default constructor - } + private final OfflineController offlineController; @Inject - DefaultMetadataResolver( RepositoryEventDispatcher repositoryEventDispatcher, + public DefaultMetadataResolver( RepositoryEventDispatcher repositoryEventDispatcher, UpdateCheckManager updateCheckManager, RepositoryConnectorProvider repositoryConnectorProvider, RemoteRepositoryManager remoteRepositoryManager, SyncContextFactory syncContextFactory, OfflineController offlineController ) - { - setRepositoryEventDispatcher( repositoryEventDispatcher ); - setUpdateCheckManager( updateCheckManager ); - setRepositoryConnectorProvider( repositoryConnectorProvider ); - setRemoteRepositoryManager( remoteRepositoryManager ); - setSyncContextFactory( syncContextFactory ); - setOfflineController( offlineController ); - } - - public void initService( ServiceLocator locator ) - { - setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) ); - setUpdateCheckManager( locator.getService( UpdateCheckManager.class ) ); - setRepositoryConnectorProvider( locator.getService( RepositoryConnectorProvider.class ) ); - setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) ); - setSyncContextFactory( locator.getService( SyncContextFactory.class ) ); - setOfflineController( locator.getService( OfflineController.class ) ); - } - - public DefaultMetadataResolver setRepositoryEventDispatcher( RepositoryEventDispatcher repositoryEventDispatcher ) { this.repositoryEventDispatcher = requireNonNull( - repositoryEventDispatcher, "repository event dispatcher cannot be null" ); - return this; - } - - public DefaultMetadataResolver setUpdateCheckManager( UpdateCheckManager updateCheckManager ) - { + repositoryEventDispatcher, "repository event dispatcher cannot be null" ); this.updateCheckManager = requireNonNull( updateCheckManager, "update check manager cannot be null" ); - return this; - } - - public DefaultMetadataResolver setRepositoryConnectorProvider( - RepositoryConnectorProvider repositoryConnectorProvider ) - { this.repositoryConnectorProvider = requireNonNull( - repositoryConnectorProvider, "repository connector provider cannot be null" ); - return this; - } - - public DefaultMetadataResolver setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager ) - { + repositoryConnectorProvider, "repository connector provider cannot be null" ); this.remoteRepositoryManager = requireNonNull( - remoteRepositoryManager, "remote repository provider cannot be null" ); - return this; - } - - public DefaultMetadataResolver setSyncContextFactory( SyncContextFactory syncContextFactory ) - { + remoteRepositoryManager, "remote repository provider cannot be null" ); this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" ); - return this; - } - - public DefaultMetadataResolver setOfflineController( OfflineController offlineController ) - { this.offlineController = requireNonNull( offlineController, "offline controller cannot be null" ); - return this; } + @Override public List resolveMetadata( RepositorySystemSession session, Collection requests ) { diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java index 63764eb50..44261b4b6 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultOfflineController.java @@ -45,11 +45,7 @@ public class DefaultOfflineController private static final Pattern SEP = Pattern.compile( "\\s*,\\s*" ); - public DefaultOfflineController() - { - // enables default constructor - } - + @Override public void checkOffline( RepositorySystemSession session, RemoteRepository repository ) throws RepositoryOfflineException { 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 393f87626..20fcf6f7f 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 @@ -42,8 +42,6 @@ import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.repository.RepositoryPolicy; import org.eclipse.aether.spi.connector.checksum.ChecksumPolicyProvider; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,7 +50,7 @@ @Singleton @Named public class DefaultRemoteRepositoryManager - implements RemoteRepositoryManager, Service + implements RemoteRepositoryManager { private static final class LoggedMirror @@ -90,42 +88,21 @@ public int hashCode() private static final Logger LOGGER = LoggerFactory.getLogger( DefaultRemoteRepositoryManager.class ); - private UpdatePolicyAnalyzer updatePolicyAnalyzer; + private final UpdatePolicyAnalyzer updatePolicyAnalyzer; - private ChecksumPolicyProvider checksumPolicyProvider; - - public DefaultRemoteRepositoryManager() - { - // enables default constructor - } + private final ChecksumPolicyProvider checksumPolicyProvider; @Inject - DefaultRemoteRepositoryManager( UpdatePolicyAnalyzer updatePolicyAnalyzer, + public DefaultRemoteRepositoryManager( UpdatePolicyAnalyzer updatePolicyAnalyzer, ChecksumPolicyProvider checksumPolicyProvider ) { - setUpdatePolicyAnalyzer( updatePolicyAnalyzer ); - setChecksumPolicyProvider( checksumPolicyProvider ); - } - - public void initService( ServiceLocator locator ) - { - setUpdatePolicyAnalyzer( locator.getService( UpdatePolicyAnalyzer.class ) ); - setChecksumPolicyProvider( locator.getService( ChecksumPolicyProvider.class ) ); - } - - public DefaultRemoteRepositoryManager setUpdatePolicyAnalyzer( UpdatePolicyAnalyzer updatePolicyAnalyzer ) - { - this.updatePolicyAnalyzer = requireNonNull( updatePolicyAnalyzer, "update policy analyzer cannot be null" ); - return this; - } - - public DefaultRemoteRepositoryManager setChecksumPolicyProvider( ChecksumPolicyProvider checksumPolicyProvider ) - { + this.updatePolicyAnalyzer = requireNonNull( + updatePolicyAnalyzer, "update policy analyzer cannot be null" ); this.checksumPolicyProvider = requireNonNull( - checksumPolicyProvider, "checksum policy provider cannot be null" ); - return this; + checksumPolicyProvider, "checksum policy provider cannot be null" ); } + @Override public List aggregateRepositories( RepositorySystemSession session, List dominantRepositories, List recessiveRepositories, @@ -272,6 +249,7 @@ private RemoteRepository mergeMirrors( RepositorySystemSession session, RemoteRe return merged.setReleasePolicy( releases ).setSnapshotPolicy( snapshots ).build(); } + @Override public RepositoryPolicy getPolicy( RepositorySystemSession session, RemoteRepository repository, boolean releases, boolean snapshots ) { 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 e1f0b319b..010444a77 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 @@ -36,8 +36,6 @@ import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.spi.connector.RepositoryConnector; import org.eclipse.aether.spi.connector.RepositoryConnectorFactory; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.NoRepositoryConnectorException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,27 +45,21 @@ @Singleton @Named public class DefaultRepositoryConnectorProvider - implements RepositoryConnectorProvider, Service + implements RepositoryConnectorProvider { private static final Logger LOGGER = LoggerFactory.getLogger( DefaultRepositoryConnectorProvider.class ); - private Collection connectorFactories = new ArrayList<>(); - - public DefaultRepositoryConnectorProvider() - { - // enables default constructor - } + private final Collection connectorFactories; @Inject - DefaultRepositoryConnectorProvider( Set connectorFactories ) + public DefaultRepositoryConnectorProvider( Set connectorFactories ) { - setRepositoryConnectorFactories( connectorFactories ); - } - - public void initService( ServiceLocator locator ) - { - connectorFactories = locator.getServices( RepositoryConnectorFactory.class ); + this.connectorFactories = new ArrayList<>(); + if ( connectorFactories != null ) + { + this.connectorFactories.addAll( connectorFactories ); + } } public DefaultRepositoryConnectorProvider addRepositoryConnectorFactory( RepositoryConnectorFactory factory ) @@ -76,20 +68,7 @@ public DefaultRepositoryConnectorProvider addRepositoryConnectorFactory( Reposit return this; } - public DefaultRepositoryConnectorProvider setRepositoryConnectorFactories( - Collection factories ) - { - if ( factories == null ) - { - this.connectorFactories = new ArrayList<>(); - } - else - { - this.connectorFactories = factories; - } - return this; - } - + @Override public RepositoryConnector newRepositoryConnector( RepositorySystemSession session, RemoteRepository repository ) throws NoRepositoryConnectorException { 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 e6ea7d359..0f0e370e1 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 @@ -31,8 +31,6 @@ import org.eclipse.aether.RepositoryEvent; import org.eclipse.aether.RepositoryListener; import org.eclipse.aether.impl.RepositoryEventDispatcher; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,22 +39,21 @@ @Singleton @Named public class DefaultRepositoryEventDispatcher - implements RepositoryEventDispatcher, Service + implements RepositoryEventDispatcher { private static final Logger LOGGER = LoggerFactory.getLogger( DefaultRepositoryEventDispatcher.class ); - private Collection listeners = new ArrayList<>(); - - public DefaultRepositoryEventDispatcher() - { - // enables no-arg constructor - } + private final Collection listeners; @Inject - DefaultRepositoryEventDispatcher( Set listeners ) + public DefaultRepositoryEventDispatcher( Set listeners ) { - setRepositoryListeners( listeners ); + this.listeners = new ArrayList<>(); + if ( listeners != null ) + { + this.listeners.addAll( listeners ); + } } public DefaultRepositoryEventDispatcher addRepositoryListener( RepositoryListener listener ) @@ -65,24 +62,7 @@ public DefaultRepositoryEventDispatcher addRepositoryListener( RepositoryListene return this; } - public DefaultRepositoryEventDispatcher setRepositoryListeners( Collection listeners ) - { - if ( listeners == null ) - { - this.listeners = new ArrayList<>(); - } - else - { - this.listeners = listeners; - } - return this; - } - - public void initService( ServiceLocator locator ) - { - setRepositoryListeners( locator.getServices( RepositoryListener.class ) ); - } - + @Override public void dispatch( RepositoryEvent event ) { if ( !listeners.isEmpty() ) 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 8b1c3f203..c8f60b151 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 @@ -34,8 +34,6 @@ import org.eclipse.aether.spi.connector.layout.RepositoryLayout; import org.eclipse.aether.spi.connector.layout.RepositoryLayoutFactory; import org.eclipse.aether.spi.connector.layout.RepositoryLayoutProvider; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.NoRepositoryLayoutException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,27 +43,21 @@ @Singleton @Named public final class DefaultRepositoryLayoutProvider - implements RepositoryLayoutProvider, Service + implements RepositoryLayoutProvider { private static final Logger LOGGER = LoggerFactory.getLogger( DefaultRepositoryLayoutProvider.class ); - private Collection factories = new ArrayList<>(); - - public DefaultRepositoryLayoutProvider() - { - // enables default constructor - } + private final Collection factories; @Inject - DefaultRepositoryLayoutProvider( Set layoutFactories ) + public DefaultRepositoryLayoutProvider( Set factories ) { - setRepositoryLayoutFactories( layoutFactories ); - } - - public void initService( ServiceLocator locator ) - { - setRepositoryLayoutFactories( locator.getServices( RepositoryLayoutFactory.class ) ); + this.factories = new ArrayList<>(); + if ( factories != null ) + { + this.factories.addAll( factories ); + } } public DefaultRepositoryLayoutProvider addRepositoryLayoutFactory( RepositoryLayoutFactory factory ) @@ -74,19 +66,7 @@ public DefaultRepositoryLayoutProvider addRepositoryLayoutFactory( RepositoryLay return this; } - public DefaultRepositoryLayoutProvider setRepositoryLayoutFactories( Collection factories ) - { - if ( factories == null ) - { - this.factories = new ArrayList<>(); - } - else - { - this.factories = factories; - } - return this; - } - + @Override public RepositoryLayout newRepositoryLayout( RepositorySystemSession session, RemoteRepository repository ) throws NoRepositoryLayoutException { 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 eb0f79d07..7ab0ac917 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 @@ -78,8 +78,6 @@ import org.eclipse.aether.resolution.VersionRequest; import org.eclipse.aether.resolution.VersionResolutionException; import org.eclipse.aether.resolution.VersionResult; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.util.graph.visitor.FilteringDependencyVisitor; import org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor; @@ -88,153 +86,65 @@ @Singleton @Named public class DefaultRepositorySystem - implements RepositorySystem, Service + implements RepositorySystem { - private VersionResolver versionResolver; + private final VersionResolver versionResolver; - private VersionRangeResolver versionRangeResolver; + private final VersionRangeResolver versionRangeResolver; - private ArtifactResolver artifactResolver; + private final ArtifactResolver artifactResolver; - private MetadataResolver metadataResolver; + private final MetadataResolver metadataResolver; - private ArtifactDescriptorReader artifactDescriptorReader; + private final ArtifactDescriptorReader artifactDescriptorReader; - private DependencyCollector dependencyCollector; + private final DependencyCollector dependencyCollector; - private Installer installer; + private final Installer installer; - private Deployer deployer; + private final Deployer deployer; - private LocalRepositoryProvider localRepositoryProvider; + private final LocalRepositoryProvider localRepositoryProvider; - private SyncContextFactory syncContextFactory; + private final SyncContextFactory syncContextFactory; - private RemoteRepositoryManager remoteRepositoryManager; - - public DefaultRepositorySystem() - { - // enables default constructor - } + private final RemoteRepositoryManager remoteRepositoryManager; @SuppressWarnings( "checkstyle:parameternumber" ) @Inject - DefaultRepositorySystem( VersionResolver versionResolver, VersionRangeResolver versionRangeResolver, + public DefaultRepositorySystem( VersionResolver versionResolver, VersionRangeResolver versionRangeResolver, ArtifactResolver artifactResolver, MetadataResolver metadataResolver, ArtifactDescriptorReader artifactDescriptorReader, DependencyCollector dependencyCollector, Installer installer, Deployer deployer, LocalRepositoryProvider localRepositoryProvider, SyncContextFactory syncContextFactory, RemoteRepositoryManager remoteRepositoryManager ) { - setVersionResolver( versionResolver ); - setVersionRangeResolver( versionRangeResolver ); - setArtifactResolver( artifactResolver ); - setMetadataResolver( metadataResolver ); - setArtifactDescriptorReader( artifactDescriptorReader ); - setDependencyCollector( dependencyCollector ); - setInstaller( installer ); - setDeployer( deployer ); - setLocalRepositoryProvider( localRepositoryProvider ); - setSyncContextFactory( syncContextFactory ); - setRemoteRepositoryManager( remoteRepositoryManager ); - } - - public void initService( ServiceLocator locator ) - { - setVersionResolver( locator.getService( VersionResolver.class ) ); - setVersionRangeResolver( locator.getService( VersionRangeResolver.class ) ); - setArtifactResolver( locator.getService( ArtifactResolver.class ) ); - setMetadataResolver( locator.getService( MetadataResolver.class ) ); - setArtifactDescriptorReader( locator.getService( ArtifactDescriptorReader.class ) ); - setDependencyCollector( locator.getService( DependencyCollector.class ) ); - setInstaller( locator.getService( Installer.class ) ); - setDeployer( locator.getService( Deployer.class ) ); - setLocalRepositoryProvider( locator.getService( LocalRepositoryProvider.class ) ); - setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) ); - setSyncContextFactory( locator.getService( SyncContextFactory.class ) ); - } - - /** - * @deprecated not used any more since MRESOLVER-36 move to slf4j, added back in MRESOLVER-64 for compatibility - */ - @Deprecated - public DefaultRepositorySystem setLoggerFactory( org.eclipse.aether.spi.log.LoggerFactory loggerFactory ) - { - // this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() ); - return this; - } - - public DefaultRepositorySystem setVersionResolver( VersionResolver versionResolver ) - { - this.versionResolver = requireNonNull( versionResolver, "version resolver cannot be null" ); - return this; - } - - public DefaultRepositorySystem setVersionRangeResolver( VersionRangeResolver versionRangeResolver ) - { + this.versionResolver = requireNonNull( + versionResolver, "version resolver cannot be null" ); this.versionRangeResolver = requireNonNull( - versionRangeResolver, "version range resolver cannot be null" ); - return this; - } - - public DefaultRepositorySystem setArtifactResolver( ArtifactResolver artifactResolver ) - { - this.artifactResolver = requireNonNull( artifactResolver, "artifact resolver cannot be null" ); - return this; - } - - public DefaultRepositorySystem setMetadataResolver( MetadataResolver metadataResolver ) - { - this.metadataResolver = requireNonNull( metadataResolver, "metadata resolver cannot be null" ); - return this; - } - - public DefaultRepositorySystem setArtifactDescriptorReader( ArtifactDescriptorReader artifactDescriptorReader ) - { + versionRangeResolver, "version range resolver cannot be null" ); + this.artifactResolver = requireNonNull( + artifactResolver, "artifact resolver cannot be null" ); + this.metadataResolver = requireNonNull( + metadataResolver, "metadata resolver cannot be null" ); this.artifactDescriptorReader = requireNonNull( - artifactDescriptorReader, "artifact descriptor reader cannot be null" ); - return this; - } - - public DefaultRepositorySystem setDependencyCollector( DependencyCollector dependencyCollector ) - { - this.dependencyCollector = requireNonNull( dependencyCollector, "dependency collector cannot be null" ); - return this; - } - - public DefaultRepositorySystem setInstaller( Installer installer ) - { - this.installer = requireNonNull( installer, "installer cannot be null" ); - return this; - } - - public DefaultRepositorySystem setDeployer( Deployer deployer ) - { - this.deployer = requireNonNull( deployer, "deployer cannot be null" ); - return this; - } - - public DefaultRepositorySystem setLocalRepositoryProvider( LocalRepositoryProvider localRepositoryProvider ) - { + artifactDescriptorReader, "artifact descriptor reader cannot be null" ); + this.dependencyCollector = requireNonNull( + dependencyCollector, "dependency collector cannot be null" ); + this.installer = requireNonNull( + installer, "installer cannot be null" ); + this.deployer = requireNonNull( + deployer, "deployer cannot be null" ); this.localRepositoryProvider = requireNonNull( - localRepositoryProvider, "local repository provider cannot be null" ); - return this; - } - - public DefaultRepositorySystem setSyncContextFactory( SyncContextFactory syncContextFactory ) - { - this.syncContextFactory = requireNonNull( syncContextFactory, "sync context factory cannot be null" ); - return this; - } - - public DefaultRepositorySystem setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager ) - { + localRepositoryProvider, "local repository provider cannot be null" ); + this.syncContextFactory = requireNonNull( + syncContextFactory, "sync context factory cannot be null" ); this.remoteRepositoryManager = requireNonNull( - remoteRepositoryManager, "remote repository provider cannot be null" ); - return this; + remoteRepositoryManager, "remote repository provider cannot be null" ); } + @Override public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) throws VersionResolutionException { @@ -242,6 +152,7 @@ public VersionResult resolveVersion( RepositorySystemSession session, VersionReq return versionResolver.resolveVersion( session, request ); } + @Override public VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request ) throws VersionRangeResolutionException { @@ -249,6 +160,7 @@ public VersionRangeResult resolveVersionRange( RepositorySystemSession session, return versionRangeResolver.resolveVersionRange( session, request ); } + @Override public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session, ArtifactDescriptorRequest request ) throws ArtifactDescriptorException @@ -257,6 +169,7 @@ public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession return artifactDescriptorReader.readArtifactDescriptor( session, request ); } + @Override public ArtifactResult resolveArtifact( RepositorySystemSession session, ArtifactRequest request ) throws ArtifactResolutionException { @@ -264,6 +177,7 @@ public ArtifactResult resolveArtifact( RepositorySystemSession session, Artifact return artifactResolver.resolveArtifact( session, request ); } + @Override public List resolveArtifacts( RepositorySystemSession session, Collection requests ) throws ArtifactResolutionException @@ -272,6 +186,7 @@ public List resolveArtifacts( RepositorySystemSession session, return artifactResolver.resolveArtifacts( session, requests ); } + @Override public List resolveMetadata( RepositorySystemSession session, Collection requests ) { @@ -279,6 +194,7 @@ public List resolveMetadata( RepositorySystemSession session, return metadataResolver.resolveMetadata( session, requests ); } + @Override public CollectResult collectDependencies( RepositorySystemSession session, CollectRequest request ) throws DependencyCollectionException { @@ -286,6 +202,7 @@ public CollectResult collectDependencies( RepositorySystemSession session, Colle return dependencyCollector.collectDependencies( session, request ); } + @Override public DependencyResult resolveDependencies( RepositorySystemSession session, DependencyRequest request ) throws DependencyResolutionException { @@ -374,6 +291,7 @@ private void updateNodesWithResolvedArtifacts( List results ) } } + @Override public InstallResult install( RepositorySystemSession session, InstallRequest request ) throws InstallationException { @@ -381,6 +299,7 @@ public InstallResult install( RepositorySystemSession session, InstallRequest re return installer.install( session, request ); } + @Override public DeployResult deploy( RepositorySystemSession session, DeployRequest request ) throws DeploymentException { @@ -388,6 +307,7 @@ public DeployResult deploy( RepositorySystemSession session, DeployRequest reque return deployer.deploy( session, request ); } + @Override public LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession session, LocalRepository localRepository ) { @@ -401,12 +321,14 @@ public LocalRepositoryManager newLocalRepositoryManager( RepositorySystemSession } } + @Override public SyncContext newSyncContext( RepositorySystemSession session, boolean shared ) { validateSession( session ); return syncContextFactory.newInstance( session, shared ); } + @Override public List newResolutionRepositories( RepositorySystemSession session, List repositories ) { @@ -417,6 +339,7 @@ public List newResolutionRepositories( RepositorySystemSession return repositories; } + @Override public RemoteRepository newDeploymentRepository( RepositorySystemSession session, RemoteRepository repository ) { validateSession( session ); 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 43357e87b..6db860ecf 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 @@ -34,8 +34,6 @@ import org.eclipse.aether.spi.connector.transport.Transporter; import org.eclipse.aether.spi.connector.transport.TransporterFactory; import org.eclipse.aether.spi.connector.transport.TransporterProvider; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.NoTransporterException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -45,27 +43,21 @@ @Singleton @Named public final class DefaultTransporterProvider - implements TransporterProvider, Service + implements TransporterProvider { private static final Logger LOGGER = LoggerFactory.getLogger( DefaultTransporterProvider.class ); - private Collection factories = new ArrayList<>(); - - public DefaultTransporterProvider() - { - // enables default constructor - } + private final Collection factories; @Inject - DefaultTransporterProvider( Set transporterFactories ) + public DefaultTransporterProvider( Set transporterFactories ) { - setTransporterFactories( transporterFactories ); - } - - public void initService( ServiceLocator locator ) - { - setTransporterFactories( locator.getServices( TransporterFactory.class ) ); + this.factories = new ArrayList<>(); + if ( transporterFactories != null ) + { + this.factories.addAll( transporterFactories ); + } } public DefaultTransporterProvider addTransporterFactory( TransporterFactory factory ) @@ -74,19 +66,7 @@ public DefaultTransporterProvider addTransporterFactory( TransporterFactory fact return this; } - public DefaultTransporterProvider setTransporterFactories( Collection factories ) - { - if ( factories == null ) - { - this.factories = new ArrayList<>(); - } - else - { - this.factories = factories; - } - return this; - } - + @Override public Transporter newTransporter( RepositorySystemSession session, RemoteRepository repository ) throws NoTransporterException { 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 df6f3c487..374c0f35a 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 @@ -44,8 +44,6 @@ import org.eclipse.aether.repository.Proxy; import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.resolution.ResolutionErrorPolicy; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.ArtifactNotFoundException; import org.eclipse.aether.transfer.ArtifactTransferException; import org.eclipse.aether.transfer.MetadataNotFoundException; @@ -59,14 +57,14 @@ @Singleton @Named public class DefaultUpdateCheckManager - implements UpdateCheckManager, Service + implements UpdateCheckManager { private static final Logger LOGGER = LoggerFactory.getLogger( DefaultUpdatePolicyAnalyzer.class ); private final TrackingFileManager trackingFileManager; - private UpdatePolicyAnalyzer updatePolicyAnalyzer; + private final UpdatePolicyAnalyzer updatePolicyAnalyzer; private static final String UPDATED_KEY_SUFFIX = ".lastUpdated"; @@ -84,29 +82,14 @@ public class DefaultUpdateCheckManager private static final int STATE_DISABLED = 2; - public DefaultUpdateCheckManager() - { - trackingFileManager = new TrackingFileManager(); - } - @Inject - DefaultUpdateCheckManager( UpdatePolicyAnalyzer updatePolicyAnalyzer ) - { - this(); - setUpdatePolicyAnalyzer( updatePolicyAnalyzer ); - } - - public void initService( ServiceLocator locator ) - { - setUpdatePolicyAnalyzer( locator.getService( UpdatePolicyAnalyzer.class ) ); - } - - public DefaultUpdateCheckManager setUpdatePolicyAnalyzer( UpdatePolicyAnalyzer updatePolicyAnalyzer ) + public DefaultUpdateCheckManager( UpdatePolicyAnalyzer updatePolicyAnalyzer ) { + trackingFileManager = new TrackingFileManager(); this.updatePolicyAnalyzer = requireNonNull( updatePolicyAnalyzer, "update policy analyzer cannot be null" ); - return this; } + @Override public void checkArtifact( RepositorySystemSession session, UpdateCheck check ) { if ( check.getLocalLastUpdated() != 0 @@ -232,6 +215,7 @@ private ArtifactTransferException newException( String error, Artifact artifact, } } + @Override public void checkMetadata( RepositorySystemSession session, UpdateCheck check ) { if ( check.getLocalLastUpdated() != 0 @@ -516,6 +500,7 @@ private Properties read( File touchFile ) return ( props != null ) ? props : new Properties(); } + @Override public void touchArtifact( RepositorySystemSession session, UpdateCheck check ) { File artifactFile = check.getFile(); @@ -546,6 +531,7 @@ private boolean hasErrors( Properties props ) return false; } + @Override public void touchMetadata( RepositorySystemSession session, UpdateCheck check ) { File metadataFile = check.getFile(); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java index 5730c768d..90f783a21 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/DefaultUpdatePolicyAnalyzer.java @@ -40,11 +40,7 @@ public class DefaultUpdatePolicyAnalyzer private static final Logger LOGGER = LoggerFactory.getLogger( DefaultUpdatePolicyAnalyzer.class ); - public DefaultUpdatePolicyAnalyzer() - { - // enables default constructor - } - + @Override public String getEffectiveUpdatePolicy( RepositorySystemSession session, String policy1, String policy2 ) { return ordinalOfUpdatePolicy( policy1 ) < ordinalOfUpdatePolicy( policy2 ) ? policy1 : policy2; @@ -72,6 +68,7 @@ else if ( policy != null && policy.startsWith( RepositoryPolicy.UPDATE_POLICY_IN } } + @Override public boolean isUpdatedRequired( RepositorySystemSession session, long lastModified, String policy ) { boolean checkForUpdates; 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 622331507..3fdb6d782 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 @@ -42,11 +42,7 @@ public class EnhancedLocalRepositoryManagerFactory { private float priority = 10.0f; - public EnhancedLocalRepositoryManagerFactory() - { - // enable no-arg constructor - } - + @Override public LocalRepositoryManager newInstance( RepositorySystemSession session, LocalRepository repository ) throws NoLocalRepositoryManagerException { @@ -60,6 +56,7 @@ public LocalRepositoryManager newInstance( RepositorySystemSession session, Loca } } + @Override public float getPriority() { return priority; diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/FailChecksumPolicy.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/FailChecksumPolicy.java index c19c00607..70d36c6ca 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/FailChecksumPolicy.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/FailChecksumPolicy.java @@ -34,6 +34,7 @@ final class FailChecksumPolicy super( resource ); } + @Override public boolean onTransferChecksumFailure( ChecksumFailureException error ) { return false; diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/LoggerFactoryProvider.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/LoggerFactoryProvider.java index 4a532e26c..603c1d771 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/LoggerFactoryProvider.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/LoggerFactoryProvider.java @@ -39,6 +39,7 @@ public class LoggerFactoryProvider @Named( "slf4j" ) private Provider slf4j; + @Override public LoggerFactory get() { return slf4j.get(); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java index ddf3df72b..53ead5f74 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/Maven2RepositoryLayoutFactory.java @@ -54,6 +54,7 @@ public final class Maven2RepositoryLayoutFactory private float priority; + @Override public float getPriority() { return priority; @@ -71,6 +72,7 @@ public Maven2RepositoryLayoutFactory setPriority( float priority ) return this; } + @Override public RepositoryLayout newInstance( RepositorySystemSession session, RemoteRepository repository ) throws NoRepositoryLayoutException { @@ -110,6 +112,7 @@ private URI toUri( String path ) } } + @Override public URI getLocation( Artifact artifact, boolean upload ) { StringBuilder path = new StringBuilder( 128 ); @@ -135,6 +138,7 @@ public URI getLocation( Artifact artifact, boolean upload ) return toUri( path.toString() ); } + @Override public URI getLocation( Metadata metadata, boolean upload ) { StringBuilder path = new StringBuilder( 128 ); @@ -159,11 +163,13 @@ public URI getLocation( Metadata metadata, boolean upload ) return toUri( path.toString() ); } + @Override public List getChecksums( Artifact artifact, boolean upload, URI location ) { return getChecksums( location ); } + @Override public List getChecksums( Metadata metadata, boolean upload, URI location ) { return getChecksums( location ); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java index 5bbf9fe23..36f5ac0ee 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/PrioritizedComponent.java @@ -59,6 +59,7 @@ public boolean isDisabled() return Float.isNaN( priority ); } + @Override public int compareTo( PrioritizedComponent o ) { int rel = ( isDisabled() ? 1 : 0 ) - ( o.isDisabled() ? 1 : 0 ); 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 55f114bed..50c01f7ff 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 @@ -62,6 +62,7 @@ class SimpleLocalRepositoryManager repository = new LocalRepository( basedir.getAbsoluteFile(), type ); } + @Override public LocalRepository getRepository() { return repository; @@ -100,21 +101,25 @@ String getPathForArtifact( Artifact artifact, boolean local ) return path.toString(); } + @Override public String getPathForLocalArtifact( Artifact artifact ) { return getPathForArtifact( artifact, true ); } + @Override public String getPathForRemoteArtifact( Artifact artifact, RemoteRepository repository, String context ) { return getPathForArtifact( artifact, false ); } + @Override public String getPathForLocalMetadata( Metadata metadata ) { return getPath( metadata, "local" ); } + @Override public String getPathForRemoteMetadata( Metadata metadata, RemoteRepository repository, String context ) { return getPath( metadata, getRepositoryKey( repository, context ) ); @@ -199,6 +204,7 @@ private String insertRepositoryKey( String filename, String repositoryKey ) return result; } + @Override public LocalArtifactResult find( RepositorySystemSession session, LocalArtifactRequest request ) { String path = getPathForArtifact( request.getArtifact(), false ); @@ -214,6 +220,7 @@ public LocalArtifactResult find( RepositorySystemSession session, LocalArtifactR return result; } + @Override public void add( RepositorySystemSession session, LocalArtifactRegistration request ) { // noop @@ -225,6 +232,7 @@ public String toString() return String.valueOf( getRepository() ); } + @Override public LocalMetadataResult find( RepositorySystemSession session, LocalMetadataRequest request ) { LocalMetadataResult result = new LocalMetadataResult( request ); @@ -253,6 +261,7 @@ public LocalMetadataResult find( RepositorySystemSession session, LocalMetadataR return result; } + @Override public void add( RepositorySystemSession session, LocalMetadataRegistration request ) { // noop 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 7ef6d8898..99d371607 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 @@ -38,11 +38,7 @@ public class SimpleLocalRepositoryManagerFactory { private float priority; - public SimpleLocalRepositoryManagerFactory() - { - // enable no-arg constructor - } - + @Override public LocalRepositoryManager newInstance( RepositorySystemSession session, LocalRepository repository ) throws NoLocalRepositoryManagerException { @@ -56,6 +52,7 @@ public LocalRepositoryManager newInstance( RepositorySystemSession session, Loca } } + @Override public float getPriority() { return priority; diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/CachingArtifactTypeRegistry.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/CachingArtifactTypeRegistry.java index a26023440..d521dac7e 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/CachingArtifactTypeRegistry.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/CachingArtifactTypeRegistry.java @@ -53,6 +53,7 @@ private CachingArtifactTypeRegistry( ArtifactTypeRegistry delegate ) types = new HashMap<>(); } + @Override public ArtifactType get( String typeId ) { ArtifactType type = types.get( typeId ); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectionContext.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectionContext.java index 3bf4fe1a0..032805aec 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectionContext.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectionContext.java @@ -50,21 +50,25 @@ final class DefaultDependencyCollectionContext this.managedDependencies = managedDependencies; } + @Override public RepositorySystemSession getSession() { return session; } + @Override public Artifact getArtifact() { return artifact; } + @Override public Dependency getDependency() { return dependency; } + @Override public List getManagedDependencies() { return managedDependencies; diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java index 612745158..3d2e6dd74 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollector.java @@ -64,8 +64,6 @@ import org.eclipse.aether.resolution.VersionRangeRequest; import org.eclipse.aether.resolution.VersionRangeResolutionException; import org.eclipse.aether.resolution.VersionRangeResult; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.util.ConfigUtils; import org.eclipse.aether.util.graph.manager.DependencyManagerUtils; import org.eclipse.aether.util.graph.transformer.TransformationContextKeys; @@ -78,7 +76,7 @@ @Singleton @Named public class DefaultDependencyCollector - implements DependencyCollector, Service + implements DependencyCollector { private static final String CONFIG_PROP_MAX_EXCEPTIONS = "aether.dependencyCollector.maxExceptions"; @@ -91,55 +89,27 @@ public class DefaultDependencyCollector private static final Logger LOGGER = LoggerFactory.getLogger( DefaultDependencyCollector.class ); - private RemoteRepositoryManager remoteRepositoryManager; + private final RemoteRepositoryManager remoteRepositoryManager; - private ArtifactDescriptorReader descriptorReader; + private final ArtifactDescriptorReader descriptorReader; - private VersionRangeResolver versionRangeResolver; - - public DefaultDependencyCollector() - { - // enables default constructor - } + private final VersionRangeResolver versionRangeResolver; @Inject - DefaultDependencyCollector( RemoteRepositoryManager remoteRepositoryManager, + public DefaultDependencyCollector( RemoteRepositoryManager remoteRepositoryManager, ArtifactDescriptorReader artifactDescriptorReader, VersionRangeResolver versionRangeResolver ) - { - setRemoteRepositoryManager( remoteRepositoryManager ); - setArtifactDescriptorReader( artifactDescriptorReader ); - setVersionRangeResolver( versionRangeResolver ); - } - - public void initService( ServiceLocator locator ) - { - setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) ); - setArtifactDescriptorReader( locator.getService( ArtifactDescriptorReader.class ) ); - setVersionRangeResolver( locator.getService( VersionRangeResolver.class ) ); - } - - public DefaultDependencyCollector setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager ) { this.remoteRepositoryManager = - requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" ); - return this; - } - - public DefaultDependencyCollector setArtifactDescriptorReader( ArtifactDescriptorReader artifactDescriptorReader ) - { - descriptorReader = requireNonNull( artifactDescriptorReader, "artifact descriptor reader cannot be null" ); - return this; - } - - public DefaultDependencyCollector setVersionRangeResolver( VersionRangeResolver versionRangeResolver ) - { + requireNonNull( remoteRepositoryManager, "remote repository provider cannot be null" ); + this.descriptorReader = + requireNonNull( artifactDescriptorReader, "artifact descriptor reader cannot be null" ); this.versionRangeResolver = - requireNonNull( versionRangeResolver, "version range resolver cannot be null" ); - return this; + requireNonNull( versionRangeResolver, "version range resolver cannot be null" ); } @SuppressWarnings( "checkstyle:methodlength" ) + @Override public CollectResult collectDependencies( RepositorySystemSession session, CollectRequest request ) throws DependencyCollectionException { diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCycle.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCycle.java index 42a56c288..efa4df614 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCycle.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCycle.java @@ -59,11 +59,13 @@ final class DefaultDependencyCycle this.cycleEntry = cycleEntry; } + @Override public List getPrecedingDependencies() { return dependencies.subList( 0, cycleEntry ); } + @Override public List getCyclicDependencies() { return dependencies.subList( cycleEntry, dependencies.size() ); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyGraphTransformationContext.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyGraphTransformationContext.java index 41c012699..b66c88ef8 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyGraphTransformationContext.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyGraphTransformationContext.java @@ -42,16 +42,19 @@ class DefaultDependencyGraphTransformationContext this.map = new HashMap<>(); } + @Override public RepositorySystemSession getSession() { return session; } + @Override public Object get( Object key ) { return map.get( requireNonNull( key, "key cannot be null" ) ); } + @Override public Object put( Object key, Object value ) { requireNonNull( key, "key cannot be null" ); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultVersionFilterContext.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultVersionFilterContext.java index bfea0626e..a21408073 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultVersionFilterContext.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/collect/DefaultVersionFilterContext.java @@ -64,36 +64,43 @@ public List get() return new ArrayList<>( versions ); } + @Override public RepositorySystemSession getSession() { return session; } + @Override public Dependency getDependency() { return dependency; } + @Override public VersionConstraint getVersionConstraint() { return result.getVersionConstraint(); } + @Override public int getCount() { return versions.size(); } + @Override public ArtifactRepository getRepository( Version version ) { return result.getRepository( version ); } + @Override public List getRepositories() { return Collections.unmodifiableList( result.getRequest().getRepositories() ); } + @Override public Iterator iterator() { return versions.iterator(); diff --git a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/slf4j/Slf4jLoggerFactory.java b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/slf4j/Slf4jLoggerFactory.java index d9ffccc43..2f6b305ff 100644 --- a/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/slf4j/Slf4jLoggerFactory.java +++ b/maven-resolver-impl/src/main/java/org/eclipse/aether/internal/impl/slf4j/Slf4jLoggerFactory.java @@ -23,8 +23,6 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.spi.log.Logger; import org.eclipse.aether.spi.log.LoggerFactory; import org.eclipse.sisu.Nullable; @@ -37,7 +35,7 @@ @Singleton @Named( "slf4j" ) public class Slf4jLoggerFactory - implements LoggerFactory, Service + implements LoggerFactory { private static final boolean AVAILABLE; @@ -64,31 +62,19 @@ public static boolean isSlf4jAvailable() private ILoggerFactory factory; - /** - * Creates an instance of this logger factory. - */ - public Slf4jLoggerFactory() - { - // enables no-arg constructor - } - @Inject - Slf4jLoggerFactory( @Nullable ILoggerFactory factory ) + public Slf4jLoggerFactory( @Nullable ILoggerFactory factory ) { setLoggerFactory( factory ); } - public void initService( ServiceLocator locator ) - { - setLoggerFactory( locator.getService( ILoggerFactory.class ) ); - } - public Slf4jLoggerFactory setLoggerFactory( ILoggerFactory factory ) { this.factory = factory; return this; } + @Override public Logger getLogger( String name ) { org.slf4j.Logger logger = getFactory().getLogger( name ); @@ -119,31 +105,37 @@ private static final class Slf4jLogger this.logger = logger; } + @Override public boolean isDebugEnabled() { return logger.isDebugEnabled(); } + @Override public void debug( String msg ) { logger.debug( msg ); } + @Override public void debug( String msg, Throwable error ) { logger.debug( msg, error ); } + @Override public boolean isWarnEnabled() { return logger.isWarnEnabled(); } + @Override public void warn( String msg ) { logger.warn( msg ); } + @Override public void warn( String msg, Throwable error ) { logger.warn( msg, error ); @@ -164,31 +156,37 @@ private static final class Slf4jLoggerEx this.logger = logger; } + @Override public boolean isDebugEnabled() { return logger.isDebugEnabled(); } + @Override public void debug( String msg ) { logger.log( null, FQCN, LocationAwareLogger.DEBUG_INT, msg, null, null ); } + @Override public void debug( String msg, Throwable error ) { logger.log( null, FQCN, LocationAwareLogger.DEBUG_INT, msg, null, error ); } + @Override public boolean isWarnEnabled() { return logger.isWarnEnabled(); } + @Override public void warn( String msg ) { logger.log( null, FQCN, LocationAwareLogger.WARN_INT, msg, null, null ); } + @Override public void warn( String msg, Throwable error ) { logger.log( null, FQCN, LocationAwareLogger.WARN_INT, msg, null, error ); diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/DefaultServiceLocatorTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/DefaultServiceLocatorTest.java deleted file mode 100644 index 72317d798..000000000 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/impl/DefaultServiceLocatorTest.java +++ /dev/null @@ -1,99 +0,0 @@ -package org.eclipse.aether.impl; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import static org.junit.Assert.*; - -import java.util.Arrays; -import java.util.List; - -import org.eclipse.aether.RepositorySystem; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; -import org.junit.Test; - -/** - */ -public class DefaultServiceLocatorTest -{ - - @Test - public void testGetRepositorySystem() - { - DefaultServiceLocator locator = new DefaultServiceLocator(); - locator.addService( ArtifactDescriptorReader.class, StubArtifactDescriptorReader.class ); - locator.addService( VersionResolver.class, StubVersionResolver.class ); - locator.addService( VersionRangeResolver.class, StubVersionRangeResolver.class ); - - RepositorySystem repoSys = locator.getService( RepositorySystem.class ); - assertNotNull( repoSys ); - } - - @Test - public void testGetServicesUnmodifiable() - { - DefaultServiceLocator locator = new DefaultServiceLocator(); - locator.setServices( String.class, "one", "two" ); - List services = locator.getServices( String.class ); - assertNotNull( services ); - try - { - services.set( 0, "fail" ); - fail( "service list is modifable" ); - } - catch ( UnsupportedOperationException e ) - { - // expected - } - } - - @Test - public void testSetInstancesAddClass() - { - DefaultServiceLocator locator = new DefaultServiceLocator(); - locator.setServices( String.class, "one", "two" ); - locator.addService( String.class, String.class ); - assertEquals( Arrays.asList( "one", "two", "" ), locator.getServices( String.class ) ); - } - - @Test - public void testInitService() - { - DefaultServiceLocator locator = new DefaultServiceLocator(); - locator.setService( DummyService.class, DummyService.class ); - DummyService service = locator.getService( DummyService.class ); - assertNotNull( service ); - assertNotNull( service.locator ); - } - - private static class DummyService - implements Service - { - - public ServiceLocator locator; - - public void initService( ServiceLocator locator ) - { - this.locator = locator; - } - - } - -} diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java index 3710a6912..9144f49d0 100644 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java +++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultArtifactResolverTest.java @@ -38,8 +38,6 @@ import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.impl.UpdateCheckManager; import org.eclipse.aether.impl.VersionResolver; -import org.eclipse.aether.internal.impl.DefaultArtifactResolver; -import org.eclipse.aether.internal.impl.DefaultUpdateCheckManager; import org.eclipse.aether.internal.test.util.TestFileProcessor; import org.eclipse.aether.internal.test.util.TestFileUtils; import org.eclipse.aether.internal.test.util.TestLocalRepositoryManager; @@ -91,25 +89,14 @@ public class DefaultArtifactResolverTest @Before public void setup() { - UpdateCheckManager updateCheckManager = new StaticUpdateCheckManager( true ); repositoryConnectorProvider = new StubRepositoryConnectorProvider(); - VersionResolver versionResolver = new StubVersionResolver(); + connector = new RecordingRepositoryConnector(); + repositoryConnectorProvider.setConnector( connector ); session = TestUtils.newSession(); lrm = (TestLocalRepositoryManager) session.getLocalRepositoryManager(); - resolver = new DefaultArtifactResolver(); - resolver.setFileProcessor( new TestFileProcessor() ); - resolver.setRepositoryEventDispatcher( new StubRepositoryEventDispatcher() ); - resolver.setVersionResolver( versionResolver ); - resolver.setUpdateCheckManager( updateCheckManager ); - resolver.setRepositoryConnectorProvider( repositoryConnectorProvider ); - resolver.setRemoteRepositoryManager( new StubRemoteRepositoryManager() ); - resolver.setSyncContextFactory( new StubSyncContextFactory() ); - resolver.setOfflineController( new DefaultOfflineController() ); + resolver = resolverWith( new StubVersionResolver(), new StaticUpdateCheckManager( true ) ); artifact = new DefaultArtifact( "gid", "aid", "", "ext", "ver" ); - - connector = new RecordingRepositoryConnector(); - repositoryConnectorProvider.setConnector( connector ); } @After @@ -122,6 +109,21 @@ public void teardown() } } + private DefaultArtifactResolver resolverWith( VersionResolver versionResolver, + UpdateCheckManager updateCheckManager) + { + return new DefaultArtifactResolver( + new TestFileProcessor(), + new StubRepositoryEventDispatcher(), + versionResolver, + updateCheckManager, + repositoryConnectorProvider, + new StubRemoteRepositoryManager(), + new StubSyncContextFactory(), + new DefaultOfflineController() + ); + } + @Test public void testResolveLocalArtifactSuccessful() throws IOException, ArtifactResolutionException @@ -272,7 +274,8 @@ public void get( Collection artifactDownloads, }; repositoryConnectorProvider.setConnector( connector ); - resolver.setUpdateCheckManager( new DefaultUpdateCheckManager().setUpdatePolicyAnalyzer( new DefaultUpdatePolicyAnalyzer() ) ); + resolver = resolverWith( new StubVersionResolver(), + new DefaultUpdateCheckManager( new DefaultUpdatePolicyAnalyzer() ) ); session.setResolutionErrorPolicy( new SimpleResolutionErrorPolicy( true, false ) ); session.setUpdatePolicy( RepositoryPolicy.UPDATE_POLICY_NEVER ); @@ -572,15 +575,18 @@ public void get( Collection artifactDownloads, @Test public void testVersionResolverFails() { - resolver.setVersionResolver( new VersionResolver() - { - - public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) - throws VersionResolutionException + resolver = resolverWith( + new VersionResolver() { - throw new VersionResolutionException( new VersionResult( request ) ); - } - } ); + + public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) + throws VersionResolutionException + { + throw new VersionResolutionException( new VersionResult( request ) ); + } + }, + new StaticUpdateCheckManager( true ) + ); ArtifactRequest request = new ArtifactRequest( artifact, null, "" ); try @@ -609,15 +615,17 @@ public VersionResult resolveVersion( RepositorySystemSession session, VersionReq @Test public void testRepositoryEventsOnVersionResolverFail() { - resolver.setVersionResolver( new VersionResolver() - { - - public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) - throws VersionResolutionException + resolver = resolverWith( + new VersionResolver() { - throw new VersionResolutionException( new VersionResult( request ) ); - } - } ); + public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) + throws VersionResolutionException + { + throw new VersionResolutionException( new VersionResult( request ) ); + } + }, + new StaticUpdateCheckManager( true ) + ); RecordingRepositoryListener listener = new RecordingRepositoryListener(); session.setRepositoryListener( listener ); @@ -796,14 +804,18 @@ public void add( RepositorySystemSession session, LocalMetadataRegistration requ ArtifactRequest request = new ArtifactRequest( artifact, null, "" ); request.addRepository( new RemoteRepository.Builder( "id", "default", "file:///" ).build() ); - resolver.setVersionResolver( new VersionResolver() - { - - public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) + resolver = resolverWith( + new VersionResolver() { - return new VersionResult( request ).setRepository( new LocalRepository( "id" ) ).setVersion( request.getArtifact().getVersion() ); - } - } ); + public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) + throws VersionResolutionException + { + return new VersionResult( request ).setRepository( new LocalRepository( "id" ) ).setVersion( request.getArtifact().getVersion() ); + } + }, + new StaticUpdateCheckManager( true ) + ); + ArtifactResult result = resolver.resolveArtifact( session, request ); assertTrue( result.getExceptions().isEmpty() ); @@ -879,14 +891,18 @@ public void add( RepositorySystemSession session, LocalMetadataRegistration requ } ); ArtifactRequest request = new ArtifactRequest( artifact, null, "" ); - resolver.setVersionResolver( new VersionResolver() - { - - public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) + resolver = resolverWith( + new VersionResolver() { - return new VersionResult( request ).setVersion( request.getArtifact().getVersion() ); - } - } ); + public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request ) + throws VersionResolutionException + { + return new VersionResult( request ).setVersion( request.getArtifact().getVersion() ); + } + }, + new StaticUpdateCheckManager( true ) + ); + ArtifactResult result = resolver.resolveArtifact( session, request ); assertTrue( result.getExceptions().isEmpty() ); diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDeployerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDeployerTest.java index fa7dc42ed..f1eed89be 100644 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDeployerTest.java +++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultDeployerTest.java @@ -95,14 +95,16 @@ public void setup() session = TestUtils.newSession(); connectorProvider = new StubRepositoryConnectorProvider(); - deployer = new DefaultDeployer(); - deployer.setRepositoryConnectorProvider( connectorProvider ); - deployer.setRemoteRepositoryManager( new StubRemoteRepositoryManager() ); - deployer.setRepositoryEventDispatcher( new StubRepositoryEventDispatcher() ); - deployer.setUpdateCheckManager( new StaticUpdateCheckManager( true ) ); - deployer.setFileProcessor( new TestFileProcessor() ); - deployer.setSyncContextFactory( new StubSyncContextFactory() ); - deployer.setOfflineController( new DefaultOfflineController() ); + deployer = new DefaultDeployer( + new TestFileProcessor(), + new StubRepositoryEventDispatcher(), + connectorProvider, + new StubRemoteRepositoryManager(), + new StaticUpdateCheckManager( true ), + null, + new StubSyncContextFactory(), + new DefaultOfflineController() + ); request = new DeployRequest(); request.setRepository( new RemoteRepository.Builder( "id", "default", "file:///" ).build() ); 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 0fb0e567d..276eb140b 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 @@ -95,10 +95,12 @@ public void setup() localArtifactFile = new File( session.getLocalRepository().getBasedir(), localArtifactPath ); - installer = new DefaultInstaller(); - installer.setFileProcessor( new TestFileProcessor() ); - installer.setRepositoryEventDispatcher( new StubRepositoryEventDispatcher() ); - installer.setSyncContextFactory( new StubSyncContextFactory() ); + installer = new DefaultInstaller( + new TestFileProcessor(), + new StubRepositoryEventDispatcher(), + null, + new StubSyncContextFactory() + ); request = new InstallRequest(); listener = new RecordingRepositoryListener(); session.setRepositoryListener( listener ); @@ -381,15 +383,20 @@ public void testDoNotUpdateUnchangedArtifact() request.addArtifact( artifact ); installer.install( session, request ); - installer.setFileProcessor( new DefaultFileProcessor() - { - @Override - public long copy( File src, File target, ProgressListener listener ) - throws IOException + installer = new DefaultInstaller( + new DefaultFileProcessor() { - throw new IOException( "copy called" ); - } - } ); + @Override + public long copy( File src, File target, ProgressListener listener ) + throws IOException + { + throw new IOException( "copy called" ); + } + }, + new StubRepositoryEventDispatcher(), + null, + new StubSyncContextFactory() + ); request = new InstallRequest(); request.addArtifact( artifact ); diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultMetadataResolverTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultMetadataResolverTest.java index d977a7848..3f6754336 100644 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultMetadataResolverTest.java +++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultMetadataResolverTest.java @@ -30,7 +30,6 @@ import java.util.Set; import org.eclipse.aether.DefaultRepositorySystemSession; -import org.eclipse.aether.internal.impl.DefaultMetadataResolver; import org.eclipse.aether.internal.test.util.TestFileUtils; import org.eclipse.aether.internal.test.util.TestLocalRepositoryManager; import org.eclipse.aether.internal.test.util.TestUtils; @@ -73,13 +72,14 @@ public void setup() session = TestUtils.newSession(); lrm = (TestLocalRepositoryManager) session.getLocalRepositoryManager(); connectorProvider = new StubRepositoryConnectorProvider(); - resolver = new DefaultMetadataResolver(); - resolver.setUpdateCheckManager( new StaticUpdateCheckManager( true ) ); - resolver.setRepositoryEventDispatcher( new StubRepositoryEventDispatcher() ); - resolver.setRepositoryConnectorProvider( connectorProvider ); - resolver.setRemoteRepositoryManager( new StubRemoteRepositoryManager() ); - resolver.setSyncContextFactory( new StubSyncContextFactory() ); - resolver.setOfflineController( new DefaultOfflineController() ); + resolver = new DefaultMetadataResolver( + new StubRepositoryEventDispatcher(), + new StaticUpdateCheckManager( true ), + connectorProvider, + new StubRemoteRepositoryManager(), + new StubSyncContextFactory(), + new DefaultOfflineController() + ); repository = new RemoteRepository.Builder( "test-DMRT", "default", TestFileUtils.createTempDir().toURI().toURL().toString() ).build(); @@ -235,6 +235,15 @@ public void testOfflineSessionResolveMetadata() public void testFavorLocal() throws IOException { + resolver = new DefaultMetadataResolver( + new StubRepositoryEventDispatcher(), + new StaticUpdateCheckManager( true, true ), + connectorProvider, + new StubRemoteRepositoryManager(), + new StubSyncContextFactory(), + new DefaultOfflineController() + ); + lrm.add( session, new LocalMetadataRegistration( metadata ) ); String path = session.getLocalRepositoryManager().getPathForLocalMetadata( metadata ); File file = new File( session.getLocalRepository().getBasedir(), path ); @@ -242,7 +251,6 @@ public void testFavorLocal() MetadataRequest request = new MetadataRequest( metadata, repository, "" ); request.setFavorLocalRepository( true ); - resolver.setUpdateCheckManager( new StaticUpdateCheckManager( true, true ) ); List results = resolver.resolveMetadata( session, Arrays.asList( request ) ); diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManagerTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManagerTest.java index ecf1ba1ce..58f010a2a 100644 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManagerTest.java +++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRemoteRepositoryManagerTest.java @@ -55,9 +55,10 @@ public void setup() session = TestUtils.newSession(); session.setChecksumPolicy( null ); session.setUpdatePolicy( null ); - manager = new DefaultRemoteRepositoryManager(); - manager.setUpdatePolicyAnalyzer( new StubUpdatePolicyAnalyzer() ); - manager.setChecksumPolicyProvider( new DefaultChecksumPolicyProvider() ); + manager = new DefaultRemoteRepositoryManager( + new StubUpdatePolicyAnalyzer(), + new DefaultChecksumPolicyProvider() + ); } @After diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcherTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcherTest.java index 14b165804..67fc74412 100644 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcherTest.java +++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositoryEventDispatcherTest.java @@ -41,7 +41,9 @@ public class DefaultRepositoryEventDispatcherTest @Test public void testDispatchHandlesAllEventTypes() { - DefaultRepositoryEventDispatcher dispatcher = new DefaultRepositoryEventDispatcher(); + DefaultRepositoryEventDispatcher dispatcher = new DefaultRepositoryEventDispatcher( + null + ); ListenerHandler handler = new ListenerHandler(); diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositorySystemTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositorySystemTest.java index 65acfdb6f..b870a33f2 100644 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositorySystemTest.java +++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/DefaultRepositorySystemTest.java @@ -20,15 +20,26 @@ */ import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; import java.util.Arrays; import java.util.List; import org.eclipse.aether.DefaultRepositorySystemSession; +import org.eclipse.aether.impl.ArtifactDescriptorReader; +import org.eclipse.aether.impl.ArtifactResolver; +import org.eclipse.aether.impl.DependencyCollector; +import org.eclipse.aether.impl.Deployer; +import org.eclipse.aether.impl.Installer; +import org.eclipse.aether.impl.LocalRepositoryProvider; +import org.eclipse.aether.impl.MetadataResolver; +import org.eclipse.aether.impl.VersionRangeResolver; +import org.eclipse.aether.impl.VersionResolver; import org.eclipse.aether.internal.test.util.TestUtils; import org.eclipse.aether.repository.Authentication; import org.eclipse.aether.repository.Proxy; import org.eclipse.aether.repository.RemoteRepository; +import org.eclipse.aether.spi.synccontext.SyncContextFactory; import org.eclipse.aether.util.repository.AuthenticationBuilder; import org.eclipse.aether.util.repository.DefaultAuthenticationSelector; import org.eclipse.aether.util.repository.DefaultMirrorSelector; @@ -46,9 +57,23 @@ public class DefaultRepositorySystemTest @Before public void init() { - DefaultRemoteRepositoryManager remoteRepoManager = new DefaultRemoteRepositoryManager(); - system = new DefaultRepositorySystem(); - system.setRemoteRepositoryManager( remoteRepoManager ); + DefaultRemoteRepositoryManager remoteRepoManager = new DefaultRemoteRepositoryManager( + new DefaultUpdatePolicyAnalyzer(), + new DefaultChecksumPolicyProvider() + ); + system = new DefaultRepositorySystem( + mock(VersionResolver.class), + mock(VersionRangeResolver.class), + mock(ArtifactResolver.class), + mock(MetadataResolver.class), + mock(ArtifactDescriptorReader.class), + mock(DependencyCollector.class), + mock(Installer.class), + mock(Deployer.class), + mock(LocalRepositoryProvider.class), + mock(SyncContextFactory.class), + remoteRepoManager + ); session = TestUtils.newSession(); } 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 3b38e8b81..0fec3f5aa 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 @@ -32,7 +32,6 @@ import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; import org.eclipse.aether.impl.UpdateCheck; -import org.eclipse.aether.internal.impl.DefaultUpdateCheckManager; import org.eclipse.aether.internal.test.util.TestFileUtils; import org.eclipse.aether.internal.test.util.TestUtils; import org.eclipse.aether.metadata.DefaultMetadata; @@ -80,7 +79,7 @@ public void setup() session = TestUtils.newSession(); repository = new RemoteRepository.Builder( "id", "default", TestFileUtils.createTempDir().toURI().toURL().toString() ).build(); - manager = new DefaultUpdateCheckManager().setUpdatePolicyAnalyzer( new DefaultUpdatePolicyAnalyzer() ); + manager = new DefaultUpdateCheckManager( new DefaultUpdatePolicyAnalyzer() ); metadata = new DefaultMetadata( "gid", "aid", "ver", "maven-metadata.xml", Metadata.Nature.RELEASE_OR_SNAPSHOT, metadataFile ); diff --git a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java index 3232040dd..9e87a5fee 100644 --- a/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java +++ b/maven-resolver-impl/src/test/java/org/eclipse/aether/internal/impl/collect/DefaultDependencyCollectorTest.java @@ -105,10 +105,8 @@ public void setup() { session = TestUtils.newSession(); - collector = new DefaultDependencyCollector(); - collector.setArtifactDescriptorReader( newReader( "" ) ); - collector.setVersionRangeResolver( new StubVersionRangeResolver() ); - collector.setRemoteRepositoryManager( new StubRemoteRepositoryManager() ); + collector = new DefaultDependencyCollector( + new StubRemoteRepositoryManager(), newReader( "" ), new StubVersionRangeResolver()); parser = new DependencyGraphParser( "artifact-descriptions/" ); @@ -275,8 +273,10 @@ public void testCyclicDependencies() public void testCyclicDependenciesBig() throws Exception { + collector = new DefaultDependencyCollector( + new StubRemoteRepositoryManager(), newReader( "cycle-big/" ), new StubVersionRangeResolver()); + CollectRequest request = new CollectRequest( newDep( "1:2:pom:5.50-SNAPSHOT" ), Arrays.asList( repository ) ); - collector.setArtifactDescriptorReader( newReader( "cycle-big/" ) ); CollectResult result = collector.collectDependencies( session, request ); assertNotNull( result.getRoot() ); // we only care about the performance here, this test must not hang or run out of mem @@ -286,8 +286,10 @@ public void testCyclicDependenciesBig() public void testCyclicProjects() throws Exception { + collector = new DefaultDependencyCollector( + new StubRemoteRepositoryManager(), newReader( "versionless-cycle/" ), new StubVersionRangeResolver()); + CollectRequest request = new CollectRequest( newDep( "test:a:2" ), Arrays.asList( repository ) ); - collector.setArtifactDescriptorReader( newReader( "versionless-cycle/" ) ); CollectResult result = collector.collectDependencies( session, request ); DependencyNode root = result.getRoot(); DependencyNode a1 = path( root, 0, 0 ); @@ -386,15 +388,19 @@ public void testArtifactDescriptorResolutionNotRestrictedToRepoHostingSelectedVe final List repos = new ArrayList<>(); - collector.setArtifactDescriptorReader( new ArtifactDescriptorReader() - { - public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session, - ArtifactDescriptorRequest request ) + collector = new DefaultDependencyCollector( + new StubRemoteRepositoryManager(), + new ArtifactDescriptorReader() { - repos.addAll( request.getRepositories() ); - return new ArtifactDescriptorResult( request ); - } - } ); + public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession session, + ArtifactDescriptorRequest request ) + { + repos.addAll( request.getRepositories() ); + return new ArtifactDescriptorResult( request ); + } + }, + new StubVersionRangeResolver() + ); List dependencies = Arrays.asList( newDep( "verrange:parent:jar:1[1,)", "compile" ) ); CollectRequest request = new CollectRequest( dependencies, null, Arrays.asList( repository, repo2 ) ); @@ -437,7 +443,8 @@ public void testManagedVersionScope() public void testDependencyManagement() throws IOException, DependencyCollectionException { - collector.setArtifactDescriptorReader( newReader( "managed/" ) ); + collector = new DefaultDependencyCollector( + new StubRemoteRepositoryManager(), newReader( "managed/" ), new StubVersionRangeResolver()); DependencyNode root = parser.parseResource( "expectedSubtreeComparisonResult.txt" ); TestDependencyManager depMgmt = new TestDependencyManager(); @@ -487,7 +494,9 @@ public void testDependencyManagement_VerboseMode() public void testDependencyManagement_TransitiveDependencyManager() throws DependencyCollectionException, IOException { - collector.setArtifactDescriptorReader( newReader( "managed/" ) ); + collector = new DefaultDependencyCollector( + new StubRemoteRepositoryManager(), newReader( "managed/" ), new StubVersionRangeResolver()); + parser = new DependencyGraphParser( "artifact-descriptions/managed/" ); session.setDependencyManager( new TransitiveDependencyManager() ); final Dependency root = newDep( "gid:root:ext:ver", "compile" ); @@ -515,7 +524,9 @@ public void testDependencyManagement_TransitiveDependencyManager() public void testDependencyManagement_DefaultDependencyManager() throws DependencyCollectionException, IOException { - collector.setArtifactDescriptorReader( newReader( "managed/" ) ); + collector = new DefaultDependencyCollector( + new StubRemoteRepositoryManager(), newReader( "managed/" ), new StubVersionRangeResolver()); + parser = new DependencyGraphParser( "artifact-descriptions/managed/" ); session.setDependencyManager( new DefaultDependencyManager() ); final Dependency root = newDep( "gid:root:ext:ver", "compile" ); diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/Service.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/Service.java deleted file mode 100644 index bbd6713fb..000000000 --- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/Service.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.eclipse.aether.spi.locator; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/** - * A stateless component of the repository system. The primary purpose of this interface is to provide a convenient - * means to programmatically wire the several components of the repository system together when it is used outside of an - * IoC container. - * - * @deprecated Use some out-of-the-box DI implementation instead. - */ -@Deprecated -public interface Service -{ - - /** - * Provides the opportunity to initialize this service and to acquire other services for its operation from the - * locator. A service must not save the reference to the provided service locator. - * - * @param locator The service locator, must not be {@code null}. - */ - void initService( ServiceLocator locator ); - -} diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/ServiceLocator.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/ServiceLocator.java deleted file mode 100644 index bb376b6d6..000000000 --- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/ServiceLocator.java +++ /dev/null @@ -1,60 +0,0 @@ -package org.eclipse.aether.spi.locator; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.List; - -/** - * A simple infrastructure to programmatically wire the various components of the repository system together when it is - * used outside of an IoC container. Once a concrete implementation of a service locator has been setup, clients could - * use - * - *
- * RepositorySystem repoSystem = serviceLocator.getService( RepositorySystem.class );
- * 
- * - * to acquire the repository system. Components that implement {@link Service} will be given an opportunity to acquire - * further components from the locator, thereby allowing to create the complete object graph of the repository system. - * - * @deprecated Use some out-of-the-box DI implementation instead. - */ -@Deprecated -public interface ServiceLocator -{ - - /** - * Gets an instance of the specified service. - * - * @param The service type. - * @param type The interface describing the service, must not be {@code null}. - * @return The service instance or {@code null} if the service could not be located/initialized. - */ - T getService( Class type ); - - /** - * Gets all available instances of the specified service. - * - * @param The service type. - * @param type The interface describing the service, must not be {@code null}. - * @return The (read-only) list of available service instances, never {@code null}. - */ - List getServices( Class type ); - -} diff --git a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/package-info.java b/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/package-info.java deleted file mode 100644 index 32e48874d..000000000 --- a/maven-resolver-spi/src/main/java/org/eclipse/aether/spi/locator/package-info.java +++ /dev/null @@ -1,33 +0,0 @@ -// CHECKSTYLE_OFF: RegexpHeader -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -/** - * A lightweight service locator infrastructure to help components acquire dependent components. The implementation of - * the repository system is decomposed into many sub components that interact with each other via interfaces, allowing - * an application to customize the system by swapping in different implementation classes for these interfaces. The - * service locator defined by this package is one means for components to get hold of the proper implementation for its - * dependencies. While not the most popular approach to component wiring, this service locator enables applications - * that do not wish to pull in more sophisticated solutions like dependency injection containers to have a small - * footprint. Therefore, all components should implement {@link org.eclipse.aether.spi.locator.Service} to support this - * goal. - * - * @deprecated Use some out-of-the-box DI implementation instead. - */ -package org.eclipse.aether.spi.locator; - diff --git a/maven-resolver-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporter.java b/maven-resolver-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporter.java index 968c231a4..149134406 100644 --- a/maven-resolver-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporter.java +++ b/maven-resolver-transport-classpath/src/main/java/org/eclipse/aether/transport/classpath/ClasspathTransporter.java @@ -108,6 +108,7 @@ private URL getResource( TransportTask task ) return url; } + @Override public int classify( Throwable error ) { if ( error instanceof ResourceNotFoundException ) 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 a1004be51..383515924 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 @@ -59,7 +59,7 @@ public ClasspathTransporterFactory() // enables default constructor } - + @Override public float getPriority() { return priority; @@ -77,6 +77,7 @@ public ClasspathTransporterFactory setPriority( float priority ) return this; } + @Override public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository ) throws NoTransporterException { diff --git a/maven-resolver-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporter.java b/maven-resolver-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporter.java index 7da42f2da..1ecf3ec71 100644 --- a/maven-resolver-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporter.java +++ b/maven-resolver-transport-file/src/main/java/org/eclipse/aether/transport/file/FileTransporter.java @@ -59,6 +59,7 @@ File getBasedir() return basedir; } + @Override public int classify( Throwable error ) { if ( error instanceof ResourceNotFoundException ) 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 bf78a6b8f..43f68eb94 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 @@ -47,6 +47,7 @@ public FileTransporterFactory() // enables default constructor } + @Override public float getPriority() { return priority; @@ -64,6 +65,7 @@ public FileTransporterFactory setPriority( float priority ) return this; } + @Override public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository ) throws NoTransporterException { diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java index 124a8c051..233eb426a 100644 --- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java +++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DeferredCredentialsProvider.java @@ -55,11 +55,13 @@ public void setCredentials( AuthScope authScope, Factory factory ) factories.put( authScope, factory ); } + @Override public void setCredentials( AuthScope authScope, Credentials credentials ) { delegate.setCredentials( authScope, credentials ); } + @Override public Credentials getCredentials( AuthScope authScope ) { synchronized ( factories ) @@ -77,6 +79,7 @@ public Credentials getCredentials( AuthScope authScope ) return delegate.getCredentials( authScope ); } + @Override public void clear() { delegate.clear(); @@ -100,6 +103,7 @@ static class BasicFactory this.authContext = authContext; } + @Override public Credentials newCredentials() { String username = authContext.get( AuthenticationContext.USERNAME ); @@ -124,6 +128,7 @@ static class NtlmFactory this.authContext = authContext; } + @Override public Credentials newCredentials() { String username = authContext.get( AuthenticationContext.USERNAME ); diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DemuxCredentialsProvider.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DemuxCredentialsProvider.java index 999a224e8..a0d565368 100644 --- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DemuxCredentialsProvider.java +++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/DemuxCredentialsProvider.java @@ -57,16 +57,19 @@ private CredentialsProvider getDelegate( AuthScope authScope ) return serverCredentialsProvider; } + @Override public Credentials getCredentials( AuthScope authScope ) { return getDelegate( authScope ).getCredentials( authScope ); } + @Override public void setCredentials( AuthScope authScope, Credentials credentials ) { getDelegate( authScope ).setCredentials( authScope, credentials ); } + @Override public void clear() { serverCredentialsProvider.clear(); diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java index 29ef5552b..f6944ae43 100644 --- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java +++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/GlobalState.java @@ -139,6 +139,7 @@ private GlobalState() expectContinues = new ConcurrentHashMap<>(); } + @Override public void close() { for ( Iterator> it = connectionManagers.entrySet().iterator(); diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java index 15fa36a0a..7d3fb4afc 100644 --- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java +++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/HttpTransporter.java @@ -216,6 +216,7 @@ private URI resolve( TransportTask task ) return UriUtils.resolve( baseUri, task.getLocation() ); } + @Override public int classify( Throwable error ) { if ( error instanceof HttpResponseException @@ -556,27 +557,32 @@ private class PutTaskEntity this.task = task; } + @Override public boolean isRepeatable() { return true; } + @Override public boolean isStreaming() { return false; } + @Override public long getContentLength() { return task.getDataLength(); } + @Override public InputStream getContent() throws IOException { return task.newInputStream(); } + @Override public void writeTo( OutputStream os ) throws IOException { 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 5e329ca06..efeb2098d 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 @@ -48,6 +48,7 @@ public HttpTransporterFactory() // enables default constructor } + @Override public float getPriority() { return priority; @@ -65,6 +66,7 @@ public HttpTransporterFactory setPriority( float priority ) return this; } + @Override public Transporter newInstance( RepositorySystemSession session, RemoteRepository repository ) throws NoTransporterException { diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java index ebc5bd5b3..eb9fa8dc9 100644 --- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java +++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/LocalState.java @@ -151,6 +151,7 @@ public void setAuthScheme( HttpHost host, AuthScheme authScheme ) pool.put( authScheme ); } + @Override public void close() { if ( global == null ) diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java index fcea8ae68..70dca44e4 100644 --- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java +++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingAuthCache.java @@ -55,6 +55,7 @@ private static HttpHost toKey( HttpHost host ) return host; } + @Override public AuthScheme get( HttpHost host ) { host = toKey( host ); @@ -67,6 +68,7 @@ public AuthScheme get( HttpHost host ) return authScheme; } + @Override public void put( HttpHost host, AuthScheme authScheme ) { if ( authScheme != null ) @@ -79,11 +81,13 @@ public void put( HttpHost host, AuthScheme authScheme ) } } + @Override public void remove( HttpHost host ) { authSchemes.remove( toKey( host ) ); } + @Override public void clear() { share(); diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingHttpContext.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingHttpContext.java index 33b8b2fd3..80363589f 100644 --- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingHttpContext.java +++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/SharingHttpContext.java @@ -80,6 +80,7 @@ public Object removeAttribute( String id ) return super.removeAttribute( id ); } + @Override public void close() { authCache.clear(); diff --git a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/X509HostnameVerifierAdapter.java b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/X509HostnameVerifierAdapter.java index ac0825b0e..8c2960659 100644 --- a/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/X509HostnameVerifierAdapter.java +++ b/maven-resolver-transport-http/src/main/java/org/eclipse/aether/transport/http/X509HostnameVerifierAdapter.java @@ -52,11 +52,13 @@ private X509HostnameVerifierAdapter( HostnameVerifier verifier ) this.verifier = verifier; } + @Override public boolean verify( String hostname, SSLSession session ) { return verifier.verify( hostname, session ); } + @Override public void verify( String host, SSLSocket socket ) throws IOException { @@ -66,11 +68,13 @@ public void verify( String host, SSLSocket socket ) } } + @Override public void verify( String host, X509Certificate cert ) { throw new UnsupportedOperationException(); } + @Override public void verify( String host, String[] cns, String[] subjectAlts ) { throw new UnsupportedOperationException(); 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 a6d150c61..da70dee28 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 @@ -59,6 +59,7 @@ public PlexusWagonConfigurator( final PlexusContainer container ) this.container = requireNonNull( container, "plexus container cannot be null" ); } + @Override public void configure( Wagon wagon, Object configuration ) throws Exception { 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 6b46f6798..4a587a6d7 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 @@ -50,12 +50,14 @@ public PlexusWagonProvider( final PlexusContainer container ) this.container = requireNonNull( container, "plexus container cannot be null" ); } + @Override public Wagon lookup( String roleHint ) throws Exception { return container.lookup( Wagon.class, roleHint ); } + @Override public void release( Wagon wagon ) { try 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 c1eb6373e..811c8f9e5 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 @@ -385,6 +385,7 @@ else if ( wagon.getRepository() == null ) return wagon; } + @Override public int classify( Throwable error ) { if ( error instanceof ResourceDoesNotExistException ) @@ -394,18 +395,21 @@ public int classify( Throwable error ) return ERROR_OTHER; } + @Override public void peek( PeekTask task ) throws Exception { execute( task, new PeekTaskRunner( task ) ); } + @Override public void get( GetTask task ) throws Exception { execute( task, new GetTaskRunner( task ) ); } + @Override public void put( PutTask task ) throws Exception { @@ -465,6 +469,7 @@ private static void copy( OutputStream os, InputStream is ) } } + @Override public void close() { if ( closed.compareAndSet( false, true ) ) 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 75329e6ef..5a0803f7f 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 @@ -26,8 +26,6 @@ import org.eclipse.aether.repository.RemoteRepository; import org.eclipse.aether.spi.connector.transport.Transporter; import org.eclipse.aether.spi.connector.transport.TransporterFactory; -import org.eclipse.aether.spi.locator.Service; -import org.eclipse.aether.spi.locator.ServiceLocator; import org.eclipse.aether.transfer.NoTransporterException; /** @@ -37,60 +35,20 @@ */ @Named( "wagon" ) public final class WagonTransporterFactory - implements TransporterFactory, Service + implements TransporterFactory { - private WagonProvider wagonProvider; + private final WagonProvider wagonProvider; - private WagonConfigurator wagonConfigurator; + private final WagonConfigurator wagonConfigurator; private float priority = -1.0f; - /** - * Creates an (uninitialized) instance of this transporter factory. Note: In case of manual instantiation - * by clients, the new factory needs to be configured via its various mutators before first use or runtime errors - * will occur. - */ - public WagonTransporterFactory() - { - // enables default constructor - } - @Inject - WagonTransporterFactory( WagonProvider wagonProvider, WagonConfigurator wagonConfigurator ) - { - setWagonProvider( wagonProvider ); - setWagonConfigurator( wagonConfigurator ); - } - - public void initService( ServiceLocator locator ) - { - setWagonProvider( locator.getService( WagonProvider.class ) ); - setWagonConfigurator( locator.getService( WagonConfigurator.class ) ); - } - - /** - * 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}. - */ - public WagonTransporterFactory setWagonProvider( WagonProvider wagonProvider ) + public WagonTransporterFactory( WagonProvider wagonProvider, WagonConfigurator wagonConfigurator ) { this.wagonProvider = wagonProvider; - return this; - } - - /** - * 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}. - */ - public WagonTransporterFactory setWagonConfigurator( WagonConfigurator wagonConfigurator ) - { this.wagonConfigurator = wagonConfigurator; - return this; } public float getPriority()