diff --git a/apache-maven/pom.xml b/apache-maven/pom.xml
index e990866563..bc638397f8 100644
--- a/apache-maven/pom.xml
+++ b/apache-maven/pom.xml
@@ -80,7 +80,7 @@
wagon-file
- org.sonatype.aether
+ org.eclipse.aether
aether-connector-wagon
diff --git a/maven-aether-provider/pom.xml b/maven-aether-provider/pom.xml
index 249cd209ca..4e2e01cd4b 100644
--- a/maven-aether-provider/pom.xml
+++ b/maven-aether-provider/pom.xml
@@ -50,19 +50,19 @@ under the License.
maven-repository-metadata
- org.sonatype.aether
+ org.eclipse.aether
aether-api
- org.sonatype.aether
+ org.eclipse.aether
aether-spi
- org.sonatype.aether
+ org.eclipse.aether
aether-util
- org.sonatype.aether
+ org.eclipse.aether
aether-impl
@@ -73,6 +73,19 @@ under the License.
org.codehaus.plexus
plexus-utils
+
+ com.google.inject
+ guice
+ 3.0
+ no_aop
+ true
+
+
+ aopalliance
+ aopalliance
+
+
+
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
index b7da0d1a62..7f71dd913f 100644
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
+++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/ArtifactDescriptorUtils.java
@@ -20,10 +20,10 @@
*/
import org.apache.maven.model.Repository;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.repository.RemoteRepository;
-import org.sonatype.aether.repository.RepositoryPolicy;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.RepositoryPolicy;
+import org.eclipse.aether.util.artifact.DefaultArtifact;
/**
* Warning: This is an internal utility class that is only public for technical reasons, it is not part
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
index 1faee29754..21daabfb37 100644
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
+++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultArtifactDescriptorReader.java
@@ -21,6 +21,7 @@
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
@@ -28,6 +29,9 @@
import java.util.Properties;
import java.util.Set;
+import javax.inject.Inject;
+import javax.inject.Named;
+
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.DistributionManagement;
import org.apache.maven.model.License;
@@ -45,52 +49,54 @@
import org.apache.maven.model.resolution.UnresolvableModelException;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
-import org.sonatype.aether.RepositoryEvent.EventType;
-import org.sonatype.aether.RepositoryException;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.RequestTrace;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.artifact.ArtifactType;
-import org.sonatype.aether.artifact.ArtifactTypeRegistry;
-import org.sonatype.aether.graph.Dependency;
-import org.sonatype.aether.graph.Exclusion;
-import org.sonatype.aether.impl.ArtifactDescriptorReader;
-import org.sonatype.aether.impl.ArtifactResolver;
-import org.sonatype.aether.impl.RemoteRepositoryManager;
-import org.sonatype.aether.impl.RepositoryEventDispatcher;
-import org.sonatype.aether.impl.VersionResolver;
-import org.sonatype.aether.transfer.ArtifactNotFoundException;
-import org.sonatype.aether.util.DefaultRequestTrace;
-import org.sonatype.aether.util.artifact.ArtifactProperties;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
-import org.sonatype.aether.util.artifact.DefaultArtifactType;
-import org.sonatype.aether.util.listener.DefaultRepositoryEvent;
-import org.sonatype.aether.repository.WorkspaceRepository;
-import org.sonatype.aether.resolution.ArtifactDescriptorException;
-import org.sonatype.aether.resolution.ArtifactDescriptorRequest;
-import org.sonatype.aether.resolution.ArtifactDescriptorResult;
-import org.sonatype.aether.resolution.ArtifactRequest;
-import org.sonatype.aether.resolution.ArtifactResolutionException;
-import org.sonatype.aether.resolution.ArtifactResult;
-import org.sonatype.aether.resolution.VersionRequest;
-import org.sonatype.aether.resolution.VersionResolutionException;
-import org.sonatype.aether.resolution.VersionResult;
-import org.sonatype.aether.spi.locator.Service;
-import org.sonatype.aether.spi.locator.ServiceLocator;
-import org.sonatype.aether.spi.log.Logger;
-import org.sonatype.aether.spi.log.NullLogger;
+import org.eclipse.aether.RepositoryException;
+import org.eclipse.aether.RepositoryEvent.EventType;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.ArtifactProperties;
+import org.eclipse.aether.artifact.ArtifactType;
+import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.graph.Dependency;
+import org.eclipse.aether.graph.Exclusion;
+import org.eclipse.aether.impl.ArtifactDescriptorReader;
+import org.eclipse.aether.impl.ArtifactResolver;
+import org.eclipse.aether.impl.RemoteRepositoryManager;
+import org.eclipse.aether.impl.RepositoryEventDispatcher;
+import org.eclipse.aether.impl.VersionResolver;
+import org.eclipse.aether.repository.WorkspaceRepository;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
+import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
+import org.eclipse.aether.resolution.ArtifactDescriptorResult;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResolutionException;
+import org.eclipse.aether.resolution.ArtifactResult;
+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.spi.log.Logger;
+import org.eclipse.aether.spi.log.LoggerFactory;
+import org.eclipse.aether.spi.log.NullLoggerFactory;
+import org.eclipse.aether.transfer.ArtifactNotFoundException;
+import org.eclipse.aether.util.DefaultRequestTrace;
+import org.eclipse.aether.util.artifact.DefaultArtifact;
+import org.eclipse.aether.util.artifact.DefaultArtifactType;
+import org.eclipse.aether.util.listener.DefaultRepositoryEvent;
/**
* @author Benjamin Bentmann
*/
+@Named
@Component( role = ArtifactDescriptorReader.class )
public class DefaultArtifactDescriptorReader
implements ArtifactDescriptorReader, Service
{
@SuppressWarnings( "unused" )
- @Requirement
- private Logger logger = NullLogger.INSTANCE;
+ @Requirement( role = LoggerFactory.class )
+ private Logger logger = NullLoggerFactory.LOGGER;
@Requirement
private RemoteRepositoryManager remoteRepositoryManager;
@@ -107,9 +113,27 @@ public class DefaultArtifactDescriptorReader
@Requirement
private ModelBuilder modelBuilder;
+ public DefaultArtifactDescriptorReader()
+ {
+ // enable no-arg constructor
+ }
+
+ @Inject
+ DefaultArtifactDescriptorReader( RemoteRepositoryManager remoteRepositoryManager, VersionResolver versionResolver,
+ ArtifactResolver artifactResolver, ModelBuilder modelBuilder,
+ RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory )
+ {
+ setRemoteRepositoryManager( remoteRepositoryManager );
+ setVersionResolver( versionResolver );
+ setArtifactResolver( artifactResolver );
+ setModelBuilder( modelBuilder );
+ setLoggerFactory( loggerFactory );
+ setRepositoryEventDispatcher( repositoryEventDispatcher );
+ }
+
public void initService( ServiceLocator locator )
{
- setLogger( locator.getService( Logger.class ) );
+ setLoggerFactory( locator.getService( LoggerFactory.class ) );
setRemoteRepositoryManager( locator.getService( RemoteRepositoryManager.class ) );
setVersionResolver( locator.getService( VersionResolver.class ) );
setArtifactResolver( locator.getService( ArtifactResolver.class ) );
@@ -121,12 +145,18 @@ public void initService( ServiceLocator locator )
}
}
- public DefaultArtifactDescriptorReader setLogger( Logger logger )
+ public DefaultArtifactDescriptorReader setLoggerFactory( LoggerFactory loggerFactory )
{
- this.logger = ( logger != null ) ? logger : NullLogger.INSTANCE;
+ this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
return this;
}
+ void setLogger( LoggerFactory loggerFactory )
+ {
+ // plexus support
+ setLoggerFactory( loggerFactory );
+ }
+
public DefaultArtifactDescriptorReader setRemoteRepositoryManager( RemoteRepositoryManager remoteRepositoryManager )
{
if ( remoteRepositoryManager == null )
@@ -228,6 +258,8 @@ public ArtifactDescriptorResult readArtifactDescriptor( RepositorySystemSession
}
result.setProperties( properties );
+
+ setArtifactProperties( result, model );
}
return result;
@@ -382,6 +414,23 @@ private Relocation getRelocation( Model model )
return relocation;
}
+ private void setArtifactProperties( ArtifactDescriptorResult result, Model model )
+ {
+ String downloadUrl = null;
+ DistributionManagement distMngt = model.getDistributionManagement();
+ if ( distMngt != null )
+ {
+ downloadUrl = distMngt.getDownloadUrl();
+ }
+ if ( downloadUrl != null && downloadUrl.length() > 0 )
+ {
+ Artifact artifact = result.getArtifact();
+ Map props = new HashMap( artifact.getProperties() );
+ props.put( ArtifactProperties.DOWNLOAD_URL, downloadUrl );
+ result.setArtifact( artifact.setProperties( props ) );
+ }
+ }
+
private Dependency convert( org.apache.maven.model.Dependency dependency, ArtifactTypeRegistry stereotypes )
{
ArtifactType stereotype = stereotypes.get( dependency.getType() );
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
index 25b24c2c3f..2d4fa7d673 100644
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
+++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelCache.java
@@ -20,8 +20,8 @@
*/
import org.apache.maven.model.building.ModelCache;
-import org.sonatype.aether.RepositoryCache;
-import org.sonatype.aether.RepositorySystemSession;
+import org.eclipse.aether.RepositoryCache;
+import org.eclipse.aether.RepositorySystemSession;
/**
* A model builder cache backed by the repository system cache.
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
index 96b9fc3652..387340ca6b 100644
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
+++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultModelResolver.java
@@ -31,15 +31,15 @@
import org.apache.maven.model.resolution.InvalidRepositoryException;
import org.apache.maven.model.resolution.ModelResolver;
import org.apache.maven.model.resolution.UnresolvableModelException;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.RequestTrace;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.impl.ArtifactResolver;
-import org.sonatype.aether.impl.RemoteRepositoryManager;
-import org.sonatype.aether.repository.RemoteRepository;
-import org.sonatype.aether.resolution.ArtifactRequest;
-import org.sonatype.aether.resolution.ArtifactResolutionException;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.impl.ArtifactResolver;
+import org.eclipse.aether.impl.RemoteRepositoryManager;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactResolutionException;
+import org.eclipse.aether.util.artifact.DefaultArtifact;
/**
* A model resolver to assist building of dependency POMs. This resolver gives priority to those repositories that have
@@ -93,7 +93,7 @@ private DefaultModelResolver( DefaultModelResolver original )
public void addRepository( Repository repository )
throws InvalidRepositoryException
{
- if ( !repositoryIds.add( repository.getId() ) )
+ if ( session.isIgnoreArtifactDescriptorRepositories() || !repositoryIds.add( repository.getId() ) )
{
return;
}
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java
deleted file mode 100644
index 032f5461c9..0000000000
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultServiceLocator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.apache.maven.repository.internal;
-
-/*
- * 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.sonatype.aether.impl.ArtifactDescriptorReader;
-import org.sonatype.aether.impl.MetadataGeneratorFactory;
-import org.sonatype.aether.impl.VersionRangeResolver;
-import org.sonatype.aether.impl.VersionResolver;
-
-/**
- * A simple service locator that is already setup with all components from this library. To acquire a complete
- * repository system, clients need to add some repository connectors for remote transfers. Note: This component
- * is meant to assists those clients that employ the repository systems outside of an IoC container, Maven plugins
- * should instead always use regular dependency injection to acquire the repository system.
- *
- * @author Benjamin Bentmann
- * @deprecated use {@link MavenServiceLocator} instead, which is more explicit.
- */
-public class DefaultServiceLocator
- extends org.sonatype.aether.impl.internal.DefaultServiceLocator
-{
-
- /**
- * Creates a new service locator that already knows about all service implementations included this library.
- */
- public DefaultServiceLocator()
- {
- addService( ArtifactDescriptorReader.class, DefaultArtifactDescriptorReader.class );
- addService( VersionResolver.class, DefaultVersionResolver.class );
- addService( VersionRangeResolver.class, DefaultVersionRangeResolver.class );
- addService( MetadataGeneratorFactory.class, SnapshotMetadataGeneratorFactory.class );
- addService( MetadataGeneratorFactory.class, VersionsMetadataGeneratorFactory.class );
- }
-
-}
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
index c5b85f709a..1362557b36 100644
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
+++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionRangeResolver.java
@@ -26,44 +26,49 @@
import java.util.List;
import java.util.Map;
+import javax.inject.Inject;
+import javax.inject.Named;
+
import org.apache.maven.artifact.repository.metadata.Versioning;
import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
import org.codehaus.plexus.component.annotations.Component;
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.util.IOUtil;
-import org.sonatype.aether.RepositoryEvent.EventType;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.RequestTrace;
-import org.sonatype.aether.SyncContext;
-import org.sonatype.aether.util.DefaultRequestTrace;
-import org.sonatype.aether.util.listener.DefaultRepositoryEvent;
-import org.sonatype.aether.util.metadata.DefaultMetadata;
-import org.sonatype.aether.util.version.GenericVersionScheme;
-import org.sonatype.aether.version.InvalidVersionSpecificationException;
-import org.sonatype.aether.version.Version;
-import org.sonatype.aether.version.VersionConstraint;
-import org.sonatype.aether.version.VersionScheme;
-import org.sonatype.aether.impl.MetadataResolver;
-import org.sonatype.aether.impl.RepositoryEventDispatcher;
-import org.sonatype.aether.impl.SyncContextFactory;
-import org.sonatype.aether.impl.VersionRangeResolver;
-import org.sonatype.aether.metadata.Metadata;
-import org.sonatype.aether.repository.ArtifactRepository;
-import org.sonatype.aether.repository.RemoteRepository;
-import org.sonatype.aether.repository.WorkspaceReader;
-import org.sonatype.aether.resolution.MetadataRequest;
-import org.sonatype.aether.resolution.MetadataResult;
-import org.sonatype.aether.resolution.VersionRangeRequest;
-import org.sonatype.aether.resolution.VersionRangeResolutionException;
-import org.sonatype.aether.resolution.VersionRangeResult;
-import org.sonatype.aether.spi.locator.Service;
-import org.sonatype.aether.spi.locator.ServiceLocator;
-import org.sonatype.aether.spi.log.Logger;
-import org.sonatype.aether.spi.log.NullLogger;
+import org.eclipse.aether.RepositoryEvent.EventType;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.SyncContext;
+import org.eclipse.aether.impl.MetadataResolver;
+import org.eclipse.aether.impl.RepositoryEventDispatcher;
+import org.eclipse.aether.impl.SyncContextFactory;
+import org.eclipse.aether.impl.VersionRangeResolver;
+import org.eclipse.aether.metadata.Metadata;
+import org.eclipse.aether.repository.ArtifactRepository;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.WorkspaceReader;
+import org.eclipse.aether.resolution.MetadataRequest;
+import org.eclipse.aether.resolution.MetadataResult;
+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.spi.log.Logger;
+import org.eclipse.aether.spi.log.LoggerFactory;
+import org.eclipse.aether.spi.log.NullLoggerFactory;
+import org.eclipse.aether.util.DefaultRequestTrace;
+import org.eclipse.aether.util.listener.DefaultRepositoryEvent;
+import org.eclipse.aether.util.metadata.DefaultMetadata;
+import org.eclipse.aether.util.version.GenericVersionScheme;
+import org.eclipse.aether.version.InvalidVersionSpecificationException;
+import org.eclipse.aether.version.Version;
+import org.eclipse.aether.version.VersionConstraint;
+import org.eclipse.aether.version.VersionScheme;
/**
* @author Benjamin Bentmann
*/
+@Named
@Component( role = VersionRangeResolver.class )
public class DefaultVersionRangeResolver
implements VersionRangeResolver, Service
@@ -72,8 +77,8 @@ public class DefaultVersionRangeResolver
private static final String MAVEN_METADATA_XML = "maven-metadata.xml";
@SuppressWarnings( "unused" )
- @Requirement
- private Logger logger = NullLogger.INSTANCE;
+ @Requirement( role = LoggerFactory.class )
+ private Logger logger = NullLoggerFactory.LOGGER;
@Requirement
private MetadataResolver metadataResolver;
@@ -84,20 +89,41 @@ public class DefaultVersionRangeResolver
@Requirement
private RepositoryEventDispatcher repositoryEventDispatcher;
+ public DefaultVersionRangeResolver()
+ {
+ // enable default constructor
+ }
+
+ @Inject
+ DefaultVersionRangeResolver( MetadataResolver metadataResolver, SyncContextFactory syncContextFactory,
+ RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory )
+ {
+ setMetadataResolver( metadataResolver );
+ setSyncContextFactory( syncContextFactory );
+ setLoggerFactory( loggerFactory );
+ setRepositoryEventDispatcher( repositoryEventDispatcher );
+ }
+
public void initService( ServiceLocator locator )
{
- setLogger( locator.getService( Logger.class ) );
+ setLoggerFactory( locator.getService( LoggerFactory.class ) );
setMetadataResolver( locator.getService( MetadataResolver.class ) );
setSyncContextFactory( locator.getService( SyncContextFactory.class ) );
setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) );
}
- public DefaultVersionRangeResolver setLogger( Logger logger )
+ public DefaultVersionRangeResolver setLoggerFactory( LoggerFactory loggerFactory )
{
- this.logger = ( logger != null ) ? logger : NullLogger.INSTANCE;
+ this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
return this;
}
+ void setLogger( LoggerFactory loggerFactory )
+ {
+ // plexus support
+ setLoggerFactory( loggerFactory );
+ }
+
public DefaultVersionRangeResolver setMetadataResolver( MetadataResolver metadataResolver )
{
if ( metadataResolver == null )
@@ -148,7 +174,7 @@ public VersionRangeResult resolveVersionRange( RepositorySystemSession session,
result.setVersionConstraint( versionConstraint );
- if ( versionConstraint.getRanges().isEmpty() )
+ if ( versionConstraint.getRange() == null )
{
result.addVersion( versionConstraint.getVersion() );
}
@@ -265,7 +291,7 @@ private Versioning readVersions( RepositorySystemSession session, RequestTrace t
}
finally
{
- syncContext.release();
+ syncContext.close();
}
}
}
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
index 7c0f85f422..1e0e35365d 100644
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
+++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/DefaultVersionResolver.java
@@ -28,6 +28,9 @@
import java.util.List;
import java.util.Map;
+import javax.inject.Inject;
+import javax.inject.Named;
+
import org.apache.maven.artifact.repository.metadata.Snapshot;
import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
import org.apache.maven.artifact.repository.metadata.Versioning;
@@ -36,40 +39,42 @@
import org.codehaus.plexus.component.annotations.Requirement;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.StringUtils;
-import org.sonatype.aether.ConfigurationProperties;
-import org.sonatype.aether.RepositoryCache;
-import org.sonatype.aether.RequestTrace;
-import org.sonatype.aether.RepositoryEvent.EventType;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.SyncContext;
-import org.sonatype.aether.util.DefaultRequestTrace;
-import org.sonatype.aether.util.listener.DefaultRepositoryEvent;
-import org.sonatype.aether.util.metadata.DefaultMetadata;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.impl.MetadataResolver;
-import org.sonatype.aether.impl.RepositoryEventDispatcher;
-import org.sonatype.aether.impl.SyncContextFactory;
-import org.sonatype.aether.impl.VersionResolver;
-import org.sonatype.aether.impl.internal.CacheUtils;
-import org.sonatype.aether.metadata.Metadata;
-import org.sonatype.aether.repository.ArtifactRepository;
-import org.sonatype.aether.repository.LocalRepository;
-import org.sonatype.aether.repository.RemoteRepository;
-import org.sonatype.aether.repository.WorkspaceReader;
-import org.sonatype.aether.repository.WorkspaceRepository;
-import org.sonatype.aether.resolution.MetadataRequest;
-import org.sonatype.aether.resolution.MetadataResult;
-import org.sonatype.aether.resolution.VersionRequest;
-import org.sonatype.aether.resolution.VersionResolutionException;
-import org.sonatype.aether.resolution.VersionResult;
-import org.sonatype.aether.spi.locator.Service;
-import org.sonatype.aether.spi.locator.ServiceLocator;
-import org.sonatype.aether.spi.log.Logger;
-import org.sonatype.aether.spi.log.NullLogger;
+import org.eclipse.aether.RepositoryCache;
+import org.eclipse.aether.RepositoryEvent.EventType;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.RequestTrace;
+import org.eclipse.aether.SyncContext;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.impl.MetadataResolver;
+import org.eclipse.aether.impl.RepositoryEventDispatcher;
+import org.eclipse.aether.impl.SyncContextFactory;
+import org.eclipse.aether.impl.VersionResolver;
+import org.eclipse.aether.internal.impl.CacheUtils;
+import org.eclipse.aether.metadata.Metadata;
+import org.eclipse.aether.repository.ArtifactRepository;
+import org.eclipse.aether.repository.LocalRepository;
+import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.repository.WorkspaceReader;
+import org.eclipse.aether.repository.WorkspaceRepository;
+import org.eclipse.aether.resolution.MetadataRequest;
+import org.eclipse.aether.resolution.MetadataResult;
+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.spi.log.Logger;
+import org.eclipse.aether.spi.log.LoggerFactory;
+import org.eclipse.aether.spi.log.NullLoggerFactory;
+import org.eclipse.aether.util.ConfigUtils;
+import org.eclipse.aether.util.DefaultRequestTrace;
+import org.eclipse.aether.util.listener.DefaultRepositoryEvent;
+import org.eclipse.aether.util.metadata.DefaultMetadata;
/**
* @author Benjamin Bentmann
*/
+@Named
@Component( role = VersionResolver.class )
public class DefaultVersionResolver
implements VersionResolver, Service
@@ -84,8 +89,8 @@ public class DefaultVersionResolver
private static final String SNAPSHOT = "SNAPSHOT";
@SuppressWarnings( "unused" )
- @Requirement
- private Logger logger = NullLogger.INSTANCE;
+ @Requirement( role = LoggerFactory.class )
+ private Logger logger = NullLoggerFactory.LOGGER;
@Requirement
private MetadataResolver metadataResolver;
@@ -96,20 +101,41 @@ public class DefaultVersionResolver
@Requirement
private RepositoryEventDispatcher repositoryEventDispatcher;
+ public DefaultVersionResolver()
+ {
+ // enable no-arg constructor
+ }
+
+ @Inject
+ DefaultVersionResolver( MetadataResolver metadataResolver, SyncContextFactory syncContextFactory,
+ RepositoryEventDispatcher repositoryEventDispatcher, LoggerFactory loggerFactory )
+ {
+ setMetadataResolver( metadataResolver );
+ setSyncContextFactory( syncContextFactory );
+ setLoggerFactory( loggerFactory );
+ setRepositoryEventDispatcher( repositoryEventDispatcher );
+ }
+
public void initService( ServiceLocator locator )
{
- setLogger( locator.getService( Logger.class ) );
+ setLoggerFactory( locator.getService( LoggerFactory.class ) );
setMetadataResolver( locator.getService( MetadataResolver.class ) );
setSyncContextFactory( locator.getService( SyncContextFactory.class ) );
setRepositoryEventDispatcher( locator.getService( RepositoryEventDispatcher.class ) );
}
- public DefaultVersionResolver setLogger( Logger logger )
+ public DefaultVersionResolver setLoggerFactory( LoggerFactory loggerFactory )
{
- this.logger = ( logger != null ) ? logger : NullLogger.INSTANCE;
+ this.logger = NullLoggerFactory.getSafeLogger( loggerFactory, getClass() );
return this;
}
+ void setLogger( LoggerFactory loggerFactory )
+ {
+ // plexus support
+ setLoggerFactory( loggerFactory );
+ }
+
public DefaultVersionResolver setMetadataResolver( MetadataResolver metadataResolver )
{
if ( metadataResolver == null )
@@ -153,7 +179,7 @@ public VersionResult resolveVersion( RepositorySystemSession session, VersionReq
Key cacheKey = null;
RepositoryCache cache = session.getCache();
- if ( cache != null && !ConfigurationProperties.get( session, "aether.versionResolver.noCache", false ) )
+ if ( cache != null && !ConfigUtils.getBoolean( session, false, "aether.versionResolver.noCache" ) )
{
cacheKey = new Key( session, request );
@@ -355,7 +381,7 @@ private Versioning readVersions( RepositorySystemSession session, RequestTrace t
}
finally
{
- syncContext.release();
+ syncContext.close();
}
}
}
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java
index a084977abe..944f2ed5a4 100644
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java
+++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadata.java
@@ -29,7 +29,7 @@
import org.apache.maven.artifact.repository.metadata.Snapshot;
import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
import org.apache.maven.artifact.repository.metadata.Versioning;
-import org.sonatype.aether.artifact.Artifact;
+import org.eclipse.aether.artifact.Artifact;
/**
* @author Benjamin Bentmann
diff --git a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java
index 1d318cd4ff..ee7c10b0c4 100644
--- a/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java
+++ b/maven-aether-provider/src/main/java/org/apache/maven/repository/internal/LocalSnapshotMetadataGenerator.java
@@ -24,12 +24,12 @@
import java.util.LinkedHashMap;
import java.util.Map;
-import org.sonatype.aether.ConfigurationProperties;
-import org.sonatype.aether.RepositorySystemSession;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.impl.MetadataGenerator;
-import org.sonatype.aether.installation.InstallRequest;
-import org.sonatype.aether.metadata.Metadata;
+import org.eclipse.aether.RepositorySystemSession;
+import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.impl.MetadataGenerator;
+import org.eclipse.aether.installation.InstallRequest;
+import org.eclipse.aether.metadata.Metadata;
+import org.eclipse.aether.util.ConfigUtils;
/**
* @author Benjamin Bentmann
@@ -44,7 +44,7 @@ class LocalSnapshotMetadataGenerator
public LocalSnapshotMetadataGenerator( RepositorySystemSession session, InstallRequest request )
{
- legacyFormat = ConfigurationProperties.get( session.getConfigProperties(), "maven.metadata.legacy", false );
+ legacyFormat = ConfigUtils.getBoolean( session.getConfigProperties(), false, "maven.metadata.legacy" );
snapshots = new LinkedHashMap