mirror of https://github.com/apache/maven.git
Merge branch 'eclipse-aether' of github.com:tesla/tesla-build into eclipse-aether
Conflicts: .gitignore pom.xml
This commit is contained in:
commit
ebf2e4ddea
|
@ -9,7 +9,6 @@ bin/
|
|||
*.iml
|
||||
.idea
|
||||
out/
|
||||
|
||||
.DS_Store
|
||||
/bootstrap
|
||||
/dependencies.xml
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
<artifactId>wagon-file</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-connector-wagon</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
cd .git;wget http://git.apache.org/authors.txt; cd ..
|
||||
git config svn.authorsfile ".git/authors.txt"
|
||||
git svn init --prefix=origin/ --tags=tags --trunk=trunk --branches=branches https://svn.apache.org/repos/asf/maven/maven-3
|
||||
git svn rebase
|
|
@ -50,23 +50,23 @@ under the License.
|
|||
<artifactId>maven-repository-metadata</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-spi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-util</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-impl</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-connector-wagon</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
@ -87,6 +87,19 @@ under the License.
|
|||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-utils</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.inject</groupId>
|
||||
<artifactId>guice</artifactId>
|
||||
<version>3.0</version>
|
||||
<classifier>no_aop</classifier>
|
||||
<optional>true</optional>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>aopalliance</groupId>
|
||||
<artifactId>aopalliance</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -20,10 +20,10 @@ package org.apache.maven.repository.internal;
|
|||
*/
|
||||
|
||||
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.artifact.DefaultArtifact;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.RepositoryPolicy;
|
||||
|
||||
/**
|
||||
* <strong>Warning:</strong> This is an internal utility class that is only public for technical reasons, it is not part
|
||||
|
@ -49,11 +49,11 @@ public class ArtifactDescriptorUtils
|
|||
|
||||
public static RemoteRepository toRemoteRepository( Repository repository )
|
||||
{
|
||||
RemoteRepository result =
|
||||
new RemoteRepository( repository.getId(), repository.getLayout(), repository.getUrl() );
|
||||
result.setPolicy( true, toRepositoryPolicy( repository.getSnapshots() ) );
|
||||
result.setPolicy( false, toRepositoryPolicy( repository.getReleases() ) );
|
||||
return result;
|
||||
RemoteRepository.Builder builder =
|
||||
new RemoteRepository.Builder( repository.getId(), repository.getLayout(), repository.getUrl() );
|
||||
builder.setSnapshotPolicy( toRepositoryPolicy( repository.getSnapshots() ) );
|
||||
builder.setReleasePolicy( toRepositoryPolicy( repository.getReleases() ) );
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
public static RepositoryPolicy toRepositoryPolicy( org.apache.maven.model.RepositoryPolicy policy )
|
||||
|
|
|
@ -21,6 +21,7 @@ package org.apache.maven.repository.internal;
|
|||
|
||||
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.Map;
|
|||
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,51 +49,55 @@ import org.apache.maven.model.building.ModelProblem;
|
|||
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.RepositoryEvent;
|
||||
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.artifact.DefaultArtifact;
|
||||
import org.eclipse.aether.artifact.DefaultArtifactType;
|
||||
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.ArtifactDescriptorPolicy;
|
||||
import org.eclipse.aether.resolution.ArtifactDescriptorPolicyRequest;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
*/
|
||||
@Named
|
||||
@Component( role = ArtifactDescriptorReader.class )
|
||||
public class DefaultArtifactDescriptorReader
|
||||
implements ArtifactDescriptorReader, Service
|
||||
{
|
||||
|
||||
@Requirement
|
||||
private Logger logger = NullLogger.INSTANCE;
|
||||
@SuppressWarnings( "unused" )
|
||||
@Requirement( role = LoggerFactory.class )
|
||||
private Logger logger = NullLoggerFactory.LOGGER;
|
||||
|
||||
@Requirement
|
||||
private RemoteRepositoryManager remoteRepositoryManager;
|
||||
|
@ -106,9 +114,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 ) );
|
||||
|
@ -120,12 +146,18 @@ public class DefaultArtifactDescriptorReader
|
|||
}
|
||||
}
|
||||
|
||||
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 )
|
||||
|
@ -227,6 +259,8 @@ public class DefaultArtifactDescriptorReader
|
|||
}
|
||||
|
||||
result.setProperties( properties );
|
||||
|
||||
setArtifactProperties( result, model );
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@ -236,7 +270,7 @@ public class DefaultArtifactDescriptorReader
|
|||
ArtifactDescriptorResult result )
|
||||
throws ArtifactDescriptorException
|
||||
{
|
||||
RequestTrace trace = DefaultRequestTrace.newChild( request.getTrace(), request );
|
||||
RequestTrace trace = RequestTrace.newChild( request.getTrace(), request );
|
||||
|
||||
Set<String> visited = new LinkedHashSet<String>();
|
||||
for ( Artifact artifact = request.getArtifact();; )
|
||||
|
@ -261,7 +295,7 @@ public class DefaultArtifactDescriptorReader
|
|||
RepositoryException exception =
|
||||
new RepositoryException( "Artifact relocations form a cycle: " + visited );
|
||||
invalidDescriptor( session, trace, artifact, exception );
|
||||
if ( session.isIgnoreInvalidArtifactDescriptor() )
|
||||
if ( ( getPolicy( session, artifact, request ) & ArtifactDescriptorPolicy.IGNORE_INVALID ) != 0 )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
@ -286,7 +320,7 @@ public class DefaultArtifactDescriptorReader
|
|||
if ( e.getCause() instanceof ArtifactNotFoundException )
|
||||
{
|
||||
missingDescriptor( session, trace, artifact, (Exception) e.getCause() );
|
||||
if ( session.isIgnoreMissingArtifactDescriptor() )
|
||||
if ( ( getPolicy( session, artifact, request ) & ArtifactDescriptorPolicy.IGNORE_MISSING ) != 0 )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
@ -331,7 +365,7 @@ public class DefaultArtifactDescriptorReader
|
|||
}
|
||||
}
|
||||
invalidDescriptor( session, trace, artifact, e );
|
||||
if ( session.isIgnoreInvalidArtifactDescriptor() )
|
||||
if ( ( getPolicy( session, artifact, request ) & ArtifactDescriptorPolicy.IGNORE_INVALID ) != 0 )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
@ -381,6 +415,23 @@ public class DefaultArtifactDescriptorReader
|
|||
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<String, String> props = new HashMap<String, String>( 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() );
|
||||
|
@ -420,23 +471,33 @@ public class DefaultArtifactDescriptorReader
|
|||
private void missingDescriptor( RepositorySystemSession session, RequestTrace trace, Artifact artifact,
|
||||
Exception exception )
|
||||
{
|
||||
DefaultRepositoryEvent event =
|
||||
new DefaultRepositoryEvent( EventType.ARTIFACT_DESCRIPTOR_MISSING, session, trace );
|
||||
RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.ARTIFACT_DESCRIPTOR_MISSING );
|
||||
event.setTrace( trace );
|
||||
event.setArtifact( artifact );
|
||||
event.setException( exception );
|
||||
|
||||
repositoryEventDispatcher.dispatch( event );
|
||||
repositoryEventDispatcher.dispatch( event.build() );
|
||||
}
|
||||
|
||||
private void invalidDescriptor( RepositorySystemSession session, RequestTrace trace, Artifact artifact,
|
||||
Exception exception )
|
||||
{
|
||||
DefaultRepositoryEvent event =
|
||||
new DefaultRepositoryEvent( EventType.ARTIFACT_DESCRIPTOR_INVALID, session, trace );
|
||||
RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.ARTIFACT_DESCRIPTOR_INVALID );
|
||||
event.setTrace( trace );
|
||||
event.setArtifact( artifact );
|
||||
event.setException( exception );
|
||||
|
||||
repositoryEventDispatcher.dispatch( event );
|
||||
repositoryEventDispatcher.dispatch( event.build() );
|
||||
}
|
||||
|
||||
private int getPolicy( RepositorySystemSession session, Artifact artifact, ArtifactDescriptorRequest request )
|
||||
{
|
||||
ArtifactDescriptorPolicy policy = session.getArtifactDescriptorPolicy();
|
||||
if ( policy == null )
|
||||
{
|
||||
return ArtifactDescriptorPolicy.STRICT;
|
||||
}
|
||||
return policy.getPolicy( session, new ArtifactDescriptorPolicyRequest( artifact, request.getRequestContext() ) );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -20,8 +20,8 @@ package org.apache.maven.repository.internal;
|
|||
*/
|
||||
|
||||
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.
|
||||
|
|
|
@ -31,15 +31,15 @@ import org.apache.maven.model.building.ModelSource;
|
|||
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.artifact.DefaultArtifact;
|
||||
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;
|
||||
|
||||
/**
|
||||
* A model resolver to assist building of dependency POMs. This resolver gives priority to those repositories that have
|
||||
|
@ -93,7 +93,7 @@ class DefaultModelResolver
|
|||
public void addRepository( Repository repository )
|
||||
throws InvalidRepositoryException
|
||||
{
|
||||
if ( !repositoryIds.add( repository.getId() ) )
|
||||
if ( session.isIgnoreArtifactDescriptorRepositories() || !repositoryIds.add( repository.getId() ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -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. <em>Note:</em> 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 );
|
||||
}
|
||||
|
||||
}
|
|
@ -19,55 +19,65 @@ package org.apache.maven.repository.internal;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
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.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.codehaus.plexus.util.IOUtil;
|
||||
import org.eclipse.aether.RepositoryEvent.EventType;
|
||||
import org.eclipse.aether.RepositoryEvent;
|
||||
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.DefaultMetadata;
|
||||
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.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
|
||||
{
|
||||
|
||||
@Requirement
|
||||
private Logger logger = NullLogger.INSTANCE;
|
||||
private static final String MAVEN_METADATA_XML = "maven-metadata.xml";
|
||||
|
||||
@SuppressWarnings( "unused" )
|
||||
@Requirement( role = LoggerFactory.class )
|
||||
private Logger logger = NullLoggerFactory.LOGGER;
|
||||
|
||||
@Requirement
|
||||
private MetadataResolver metadataResolver;
|
||||
|
@ -78,20 +88,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 )
|
||||
|
@ -142,7 +173,7 @@ public class DefaultVersionRangeResolver
|
|||
|
||||
result.setVersionConstraint( versionConstraint );
|
||||
|
||||
if ( versionConstraint.getRanges().isEmpty() )
|
||||
if ( versionConstraint.getRange() == null )
|
||||
{
|
||||
result.addVersion( versionConstraint.getVersion() );
|
||||
}
|
||||
|
@ -178,13 +209,13 @@ public class DefaultVersionRangeResolver
|
|||
private Map<String, ArtifactRepository> getVersions( RepositorySystemSession session, VersionRangeResult result,
|
||||
VersionRangeRequest request )
|
||||
{
|
||||
RequestTrace trace = DefaultRequestTrace.newChild( request.getTrace(), request );
|
||||
RequestTrace trace = RequestTrace.newChild( request.getTrace(), request );
|
||||
|
||||
Map<String, ArtifactRepository> versionIndex = new HashMap<String, ArtifactRepository>();
|
||||
|
||||
Metadata metadata =
|
||||
new DefaultMetadata( request.getArtifact().getGroupId(), request.getArtifact().getArtifactId(),
|
||||
MavenMetadata.MAVEN_METADATA_XML, Metadata.Nature.RELEASE_OR_SNAPSHOT );
|
||||
MAVEN_METADATA_XML, Metadata.Nature.RELEASE_OR_SNAPSHOT );
|
||||
|
||||
List<MetadataRequest> metadataRequests = new ArrayList<MetadataRequest>( request.getRepositories().size() );
|
||||
|
||||
|
@ -238,6 +269,9 @@ public class DefaultVersionRangeResolver
|
|||
{
|
||||
Versioning versioning = null;
|
||||
|
||||
FileInputStream fis = null;
|
||||
try
|
||||
{
|
||||
if ( metadata != null )
|
||||
{
|
||||
SyncContext syncContext = syncContextFactory.newInstance( session, true );
|
||||
|
@ -246,7 +280,19 @@ public class DefaultVersionRangeResolver
|
|||
{
|
||||
syncContext.acquire( null, Collections.singleton( metadata ) );
|
||||
|
||||
versioning = MavenMetadata.read( metadata.getFile() ).getVersioning();
|
||||
if ( metadata.getFile() != null && metadata.getFile().exists() )
|
||||
{
|
||||
fis = new FileInputStream( metadata.getFile() );
|
||||
org.apache.maven.artifact.repository.metadata.Metadata m =
|
||||
new MetadataXpp3Reader().read( fis, false );
|
||||
versioning = m.getVersioning();
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
syncContext.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
|
@ -255,8 +301,7 @@ public class DefaultVersionRangeResolver
|
|||
}
|
||||
finally
|
||||
{
|
||||
syncContext.release();
|
||||
}
|
||||
IOUtil.close( fis );
|
||||
}
|
||||
|
||||
return ( versioning != null ) ? versioning : new Versioning();
|
||||
|
@ -265,12 +310,13 @@ public class DefaultVersionRangeResolver
|
|||
private void invalidMetadata( RepositorySystemSession session, RequestTrace trace, Metadata metadata,
|
||||
ArtifactRepository repository, Exception exception )
|
||||
{
|
||||
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.METADATA_INVALID, session, trace );
|
||||
RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_INVALID );
|
||||
event.setTrace( trace );
|
||||
event.setMetadata( metadata );
|
||||
event.setException( exception );
|
||||
event.setRepository( repository );
|
||||
|
||||
repositoryEventDispatcher.dispatch( event );
|
||||
repositoryEventDispatcher.dispatch( event.build() );
|
||||
}
|
||||
|
||||
}
|
|
@ -20,6 +20,7 @@ package org.apache.maven.repository.internal;
|
|||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
|
@ -27,65 +28,68 @@ import java.util.HashMap;
|
|||
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;
|
||||
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.codehaus.plexus.util.StringUtils;
|
||||
import org.sonatype.aether.RepositoryCache;
|
||||
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.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.sonatype.aether.util.ConfigUtils;
|
||||
import org.sonatype.aether.util.DefaultRequestTrace;
|
||||
import org.sonatype.aether.util.listener.DefaultRepositoryEvent;
|
||||
import org.sonatype.aether.util.metadata.DefaultMetadata;
|
||||
import org.eclipse.aether.RepositoryCache;
|
||||
import org.eclipse.aether.RepositoryEvent.EventType;
|
||||
import org.eclipse.aether.RepositoryEvent;
|
||||
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.DefaultMetadata;
|
||||
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;
|
||||
|
||||
/**
|
||||
* Maven meta-version resolver: supports <code>*-SNAPSHOT</code>, <code>RELEASE</code> and <code>LATEST</code>
|
||||
* meta-version resolution from
|
||||
* <a href="../maven-repository-metadata/repository-metadata.html#class_versioning"><code>versioning</code>
|
||||
* element in repositories' <code>maven-metadata.xml</code></a>.
|
||||
*
|
||||
* @author Benjamin Bentmann
|
||||
* @see Versioning
|
||||
*/
|
||||
@Named
|
||||
@Component( role = VersionResolver.class )
|
||||
public class DefaultVersionResolver
|
||||
implements VersionResolver, Service
|
||||
{
|
||||
|
||||
private static final String MAVEN_METADATA_XML = "maven-metadata.xml";
|
||||
|
||||
private static final String RELEASE = "RELEASE";
|
||||
|
||||
private static final String LATEST = "LATEST";
|
||||
|
||||
private static final String SNAPSHOT = "SNAPSHOT";
|
||||
|
||||
@Requirement
|
||||
private Logger logger = NullLogger.INSTANCE;
|
||||
@SuppressWarnings( "unused" )
|
||||
@Requirement( role = LoggerFactory.class )
|
||||
private Logger logger = NullLoggerFactory.LOGGER;
|
||||
|
||||
@Requirement
|
||||
private MetadataResolver metadataResolver;
|
||||
|
@ -96,20 +100,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 )
|
||||
|
@ -143,6 +168,8 @@ public class DefaultVersionResolver
|
|||
public VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
|
||||
throws VersionResolutionException
|
||||
{
|
||||
RequestTrace trace = RequestTrace.newChild( request.getTrace(), request );
|
||||
|
||||
Artifact artifact = request.getArtifact();
|
||||
|
||||
String version = artifact.getVersion();
|
||||
|
@ -151,7 +178,6 @@ public class DefaultVersionResolver
|
|||
|
||||
Key cacheKey = null;
|
||||
RepositoryCache cache = session.getCache();
|
||||
|
||||
if ( cache != null && !ConfigUtils.getBoolean( session, false, "aether.versionResolver.noCache" ) )
|
||||
{
|
||||
cacheKey = new Key( session, request );
|
||||
|
@ -167,17 +193,84 @@ public class DefaultVersionResolver
|
|||
}
|
||||
}
|
||||
|
||||
Metadata metadata;
|
||||
|
||||
if ( RELEASE.equals( version ) )
|
||||
{
|
||||
Map<String, VersionInfo> infos = readVersionInfoMap( session, result, Metadata.Nature.RELEASE, null );
|
||||
metadata =
|
||||
new DefaultMetadata( artifact.getGroupId(), artifact.getArtifactId(), MAVEN_METADATA_XML,
|
||||
Metadata.Nature.RELEASE );
|
||||
}
|
||||
else if ( LATEST.equals( version ) )
|
||||
{
|
||||
metadata =
|
||||
new DefaultMetadata( artifact.getGroupId(), artifact.getArtifactId(), MAVEN_METADATA_XML,
|
||||
Metadata.Nature.RELEASE_OR_SNAPSHOT );
|
||||
}
|
||||
else if ( version.endsWith( SNAPSHOT ) )
|
||||
{
|
||||
WorkspaceReader workspace = session.getWorkspaceReader();
|
||||
if ( workspace != null && workspace.findVersions( artifact ).contains( version ) )
|
||||
{
|
||||
metadata = null;
|
||||
result.setRepository( workspace.getRepository() );
|
||||
}
|
||||
else
|
||||
{
|
||||
metadata =
|
||||
new DefaultMetadata( artifact.getGroupId(), artifact.getArtifactId(), version, MAVEN_METADATA_XML,
|
||||
Metadata.Nature.SNAPSHOT );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
metadata = null;
|
||||
}
|
||||
|
||||
if ( metadata == null )
|
||||
{
|
||||
result.setVersion( version );
|
||||
}
|
||||
else
|
||||
{
|
||||
List<MetadataRequest> metadataRequests = new ArrayList<MetadataRequest>( request.getRepositories().size() );
|
||||
|
||||
metadataRequests.add( new MetadataRequest( metadata, null, request.getRequestContext() ) );
|
||||
|
||||
for ( RemoteRepository repository : request.getRepositories() )
|
||||
{
|
||||
MetadataRequest metadataRequest =
|
||||
new MetadataRequest( metadata, repository, request.getRequestContext() );
|
||||
metadataRequest.setDeleteLocalCopyIfMissing( true );
|
||||
metadataRequest.setFavorLocalRepository( true );
|
||||
metadataRequest.setTrace( trace );
|
||||
metadataRequests.add( metadataRequest );
|
||||
}
|
||||
|
||||
List<MetadataResult> metadataResults = metadataResolver.resolveMetadata( session, metadataRequests );
|
||||
|
||||
Map<String, VersionInfo> infos = new HashMap<String, VersionInfo>();
|
||||
|
||||
for ( MetadataResult metadataResult : metadataResults )
|
||||
{
|
||||
result.addException( metadataResult.getException() );
|
||||
|
||||
ArtifactRepository repository = metadataResult.getRequest().getRepository();
|
||||
if ( repository == null )
|
||||
{
|
||||
repository = session.getLocalRepository();
|
||||
}
|
||||
|
||||
Versioning versioning = readVersions( session, trace, metadataResult.getMetadata(), repository, result );
|
||||
merge( artifact, infos, versioning, repository );
|
||||
}
|
||||
|
||||
if ( RELEASE.equals( version ) )
|
||||
{
|
||||
resolve( result, infos, RELEASE );
|
||||
}
|
||||
else if ( LATEST.equals( version ) )
|
||||
{
|
||||
Map<String, VersionInfo> infos =
|
||||
readVersionInfoMap( session, result, Metadata.Nature.RELEASE_OR_SNAPSHOT, null );
|
||||
|
||||
if ( !resolve( result, infos, LATEST ) )
|
||||
{
|
||||
resolve( result, infos, RELEASE );
|
||||
|
@ -204,44 +297,23 @@ public class DefaultVersionResolver
|
|||
}
|
||||
}
|
||||
}
|
||||
else if ( version.endsWith( SNAPSHOT ) )
|
||||
{
|
||||
WorkspaceReader workspace = session.getWorkspaceReader();
|
||||
if ( workspace != null && workspace.findVersions( artifact ).contains( version ) )
|
||||
{
|
||||
result.setVersion( version );
|
||||
result.setRepository( workspace.getRepository() );
|
||||
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
Map<String, VersionInfo> infos =
|
||||
readVersionInfoMap( session, result, Metadata.Nature.SNAPSHOT, version );
|
||||
|
||||
String key = SNAPSHOT + getKey( artifact.getClassifier(), artifact.getExtension() );
|
||||
|
||||
merge( infos, SNAPSHOT, key );
|
||||
|
||||
if ( !resolve( result, infos, key ) )
|
||||
{
|
||||
result.setVersion( version );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result.setVersion( version );
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
if ( StringUtils.isEmpty( result.getVersion() ) )
|
||||
{
|
||||
throw new VersionResolutionException( result );
|
||||
}
|
||||
}
|
||||
|
||||
if ( cacheKey != null && isSafelyCacheable( session, artifact ) )
|
||||
if ( cacheKey != null && metadata != null && isSafelyCacheable( session, artifact ) )
|
||||
{
|
||||
cache.put( session, cacheKey, new Record( result.getVersion(), result.getRepository() ) );
|
||||
}
|
||||
|
@ -249,54 +321,6 @@ public class DefaultVersionResolver
|
|||
return result;
|
||||
}
|
||||
|
||||
private Map<String, VersionInfo> readVersionInfoMap( RepositorySystemSession session, VersionResult result,
|
||||
Metadata.Nature nature, String version )
|
||||
{
|
||||
VersionRequest request = result.getRequest();
|
||||
Artifact artifact = request.getArtifact();
|
||||
|
||||
Metadata metadata =
|
||||
new DefaultMetadata( artifact.getGroupId(), artifact.getArtifactId(), version,
|
||||
MavenMetadata.MAVEN_METADATA_XML, nature );
|
||||
|
||||
RequestTrace trace = DefaultRequestTrace.newChild( request.getTrace(), request );
|
||||
|
||||
List<MetadataRequest> metadataRequests = new ArrayList<MetadataRequest>( request.getRepositories().size() + 1 );
|
||||
|
||||
metadataRequests.add( new MetadataRequest( metadata, null, request.getRequestContext() ) );
|
||||
|
||||
for ( RemoteRepository repository : request.getRepositories() )
|
||||
{
|
||||
MetadataRequest metadataRequest = new MetadataRequest( metadata, repository, request.getRequestContext() );
|
||||
metadataRequest.setDeleteLocalCopyIfMissing( true );
|
||||
metadataRequest.setFavorLocalRepository( true );
|
||||
metadataRequest.setTrace( trace );
|
||||
|
||||
metadataRequests.add( metadataRequest );
|
||||
}
|
||||
|
||||
List<MetadataResult> metadataResults = metadataResolver.resolveMetadata( session, metadataRequests );
|
||||
|
||||
Map<String, VersionInfo> infos = new HashMap<String, VersionInfo>();
|
||||
|
||||
for ( MetadataResult metadataResult : metadataResults )
|
||||
{
|
||||
result.addException( metadataResult.getException() );
|
||||
|
||||
ArtifactRepository repository = metadataResult.getRequest().getRepository();
|
||||
if ( repository == null )
|
||||
{
|
||||
repository = session.getLocalRepository();
|
||||
}
|
||||
|
||||
Versioning versioning = readVersions( session, trace, metadataResult.getMetadata(), repository, result );
|
||||
|
||||
merge( request.getArtifact(), infos, versioning, repository );
|
||||
}
|
||||
|
||||
return infos;
|
||||
}
|
||||
|
||||
private boolean resolve( VersionResult result, Map<String, VersionInfo> infos, String key )
|
||||
{
|
||||
VersionInfo info = infos.get( key );
|
||||
|
@ -313,19 +337,23 @@ public class DefaultVersionResolver
|
|||
{
|
||||
Versioning versioning = null;
|
||||
|
||||
|
||||
if ( metadata == null )
|
||||
FileInputStream fis = null;
|
||||
try
|
||||
{
|
||||
if ( metadata != null )
|
||||
{
|
||||
return new Versioning();
|
||||
}
|
||||
|
||||
SyncContext syncContext = syncContextFactory.newInstance( session, true );
|
||||
|
||||
try
|
||||
{
|
||||
syncContext.acquire( null, Collections.singleton( metadata ) );
|
||||
|
||||
versioning = MavenMetadata.read( metadata.getFile() ).getVersioning();
|
||||
if ( metadata.getFile() != null && metadata.getFile().exists() )
|
||||
{
|
||||
fis = new FileInputStream( metadata.getFile() );
|
||||
org.apache.maven.artifact.repository.metadata.Metadata m =
|
||||
new MetadataXpp3Reader().read( fis, false );
|
||||
versioning = m.getVersioning();
|
||||
|
||||
/*
|
||||
* NOTE: Users occasionally misuse the id "local" for remote repos which screws up the metadata
|
||||
|
@ -334,15 +362,13 @@ public class DefaultVersionResolver
|
|||
*/
|
||||
if ( versioning != null && repository instanceof LocalRepository )
|
||||
{
|
||||
Snapshot snapshot = versioning.getSnapshot();
|
||||
if ( snapshot != null && snapshot.getBuildNumber() > 0 )
|
||||
if ( versioning.getSnapshot() != null && versioning.getSnapshot().getBuildNumber() > 0 )
|
||||
{
|
||||
Versioning repaired = new Versioning();
|
||||
repaired.setLastUpdated( versioning.getLastUpdated() );
|
||||
snapshot = new Snapshot();
|
||||
Snapshot snapshot = new Snapshot();
|
||||
snapshot.setLocalCopy( true );
|
||||
repaired.setSnapshot( snapshot );
|
||||
|
||||
versioning = repaired;
|
||||
|
||||
throw new IOException( "Snapshot information corrupted with remote repository data"
|
||||
|
@ -351,6 +377,13 @@ public class DefaultVersionResolver
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
syncContext.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
invalidMetadata( session, trace, metadata, repository, e );
|
||||
|
@ -358,7 +391,7 @@ public class DefaultVersionResolver
|
|||
}
|
||||
finally
|
||||
{
|
||||
syncContext.release();
|
||||
IOUtil.close( fis );
|
||||
}
|
||||
|
||||
return ( versioning != null ) ? versioning : new Versioning();
|
||||
|
@ -367,12 +400,13 @@ public class DefaultVersionResolver
|
|||
private void invalidMetadata( RepositorySystemSession session, RequestTrace trace, Metadata metadata,
|
||||
ArtifactRepository repository, Exception exception )
|
||||
{
|
||||
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.METADATA_INVALID, session, trace );
|
||||
RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_INVALID );
|
||||
event.setTrace( trace );
|
||||
event.setMetadata( metadata );
|
||||
event.setException( exception );
|
||||
event.setRepository( repository );
|
||||
|
||||
repositoryEventDispatcher.dispatch( event );
|
||||
repositoryEventDispatcher.dispatch( event.build() );
|
||||
}
|
||||
|
||||
private void merge( Artifact artifact, Map<String, VersionInfo> infos, Versioning versioning,
|
||||
|
|
|
@ -21,6 +21,7 @@ package org.apache.maven.repository.internal;
|
|||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -28,44 +29,72 @@ import org.apache.maven.artifact.repository.metadata.Metadata;
|
|||
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
|
||||
*/
|
||||
final class LocalSnapshotMetadata
|
||||
extends MavenSnapshotMetadata
|
||||
extends MavenMetadata
|
||||
{
|
||||
|
||||
private final Collection<Artifact> artifacts = new ArrayList<Artifact>();
|
||||
|
||||
private final boolean legacyFormat;
|
||||
|
||||
public LocalSnapshotMetadata( Artifact artifact, boolean legacyFormat )
|
||||
{
|
||||
super( createLocalMetadata( artifact, legacyFormat ), null, legacyFormat );
|
||||
super( createMetadata( artifact, legacyFormat ), null );
|
||||
this.legacyFormat = legacyFormat;
|
||||
}
|
||||
|
||||
public LocalSnapshotMetadata( Metadata metadata, File file, boolean legacyFormat )
|
||||
{
|
||||
super( metadata, file, legacyFormat );
|
||||
super( metadata, file );
|
||||
this.legacyFormat = legacyFormat;
|
||||
}
|
||||
|
||||
private static Metadata createLocalMetadata( Artifact artifact, boolean legacyFormat )
|
||||
private static Metadata createMetadata( Artifact artifact, boolean legacyFormat )
|
||||
{
|
||||
Metadata metadata = createRepositoryMetadata( artifact, legacyFormat );
|
||||
|
||||
Snapshot snapshot = new Snapshot();
|
||||
snapshot.setLocalCopy( true );
|
||||
Versioning versioning = new Versioning();
|
||||
versioning.setSnapshot( snapshot );
|
||||
|
||||
Metadata metadata = new Metadata();
|
||||
metadata.setVersioning( versioning );
|
||||
metadata.setGroupId( artifact.getGroupId() );
|
||||
metadata.setArtifactId( artifact.getArtifactId() );
|
||||
metadata.setVersion( artifact.getBaseVersion() );
|
||||
|
||||
if ( !legacyFormat )
|
||||
{
|
||||
metadata.setModelVersion( "1.1.0" );
|
||||
}
|
||||
|
||||
return metadata;
|
||||
}
|
||||
|
||||
public void bind( Artifact artifact )
|
||||
{
|
||||
artifacts.add( artifact );
|
||||
}
|
||||
|
||||
public MavenMetadata setFile( File file )
|
||||
{
|
||||
return new LocalSnapshotMetadata( metadata, file, legacyFormat );
|
||||
}
|
||||
|
||||
public Object getKey()
|
||||
{
|
||||
return getGroupId() + ':' + getArtifactId() + ':' + getVersion();
|
||||
}
|
||||
|
||||
public static Object getKey( Artifact artifact )
|
||||
{
|
||||
return artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' + artifact.getBaseVersion();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void merge( Metadata recessive )
|
||||
{
|
||||
|
@ -106,4 +135,29 @@ final class LocalSnapshotMetadata
|
|||
artifacts.clear();
|
||||
}
|
||||
|
||||
private String getKey( String classifier, String extension )
|
||||
{
|
||||
return classifier + ':' + extension;
|
||||
}
|
||||
|
||||
public String getGroupId()
|
||||
{
|
||||
return metadata.getGroupId();
|
||||
}
|
||||
|
||||
public String getArtifactId()
|
||||
{
|
||||
return metadata.getArtifactId();
|
||||
}
|
||||
|
||||
public String getVersion()
|
||||
{
|
||||
return metadata.getVersion();
|
||||
}
|
||||
|
||||
public Nature getNature()
|
||||
{
|
||||
return Nature.SNAPSHOT;
|
||||
}
|
||||
|
||||
}
|
|
@ -24,12 +24,12 @@ import java.util.Collections;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
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.sonatype.aether.util.ConfigUtils;
|
||||
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
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
package org.apache.maven.repository.internal;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.apache.maven.model.building.DefaultModelBuilderFactory;
|
||||
import org.apache.maven.model.building.ModelBuilder;
|
||||
import org.eclipse.aether.impl.AetherModule;
|
||||
import org.eclipse.aether.impl.ArtifactDescriptorReader;
|
||||
import org.eclipse.aether.impl.MetadataGeneratorFactory;
|
||||
import org.eclipse.aether.impl.VersionRangeResolver;
|
||||
import org.eclipse.aether.impl.VersionResolver;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
import com.google.inject.Provides;
|
||||
import com.google.inject.name.Names;
|
||||
|
||||
public final class MavenAetherModule
|
||||
extends AbstractModule
|
||||
{
|
||||
|
||||
@Override
|
||||
protected void configure()
|
||||
{
|
||||
install( new AetherModule() );
|
||||
bind( ArtifactDescriptorReader.class ) //
|
||||
.to( DefaultArtifactDescriptorReader.class ).in( Singleton.class );
|
||||
bind( VersionResolver.class ) //
|
||||
.to( DefaultVersionResolver.class ).in( Singleton.class );
|
||||
bind( VersionRangeResolver.class ) //
|
||||
.to( DefaultVersionRangeResolver.class ).in( Singleton.class );
|
||||
bind( MetadataGeneratorFactory.class ).annotatedWith( Names.named( "snapshot" ) ) //
|
||||
.to( SnapshotMetadataGeneratorFactory.class ).in( Singleton.class );
|
||||
bind( MetadataGeneratorFactory.class ).annotatedWith( Names.named( "versions" ) ) //
|
||||
.to( VersionsMetadataGeneratorFactory.class ).in( Singleton.class );
|
||||
bind( ModelBuilder.class ) //
|
||||
.toInstance( new DefaultModelBuilderFactory().newInstance() );
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Set<MetadataGeneratorFactory> provideMetadataGeneratorFactories( @Named( "snapshot" ) MetadataGeneratorFactory snapshot,
|
||||
@Named( "versions" ) MetadataGeneratorFactory versions )
|
||||
{
|
||||
Set<MetadataGeneratorFactory> factories = new HashSet<MetadataGeneratorFactory>();
|
||||
factories.add( snapshot );
|
||||
factories.add( versions );
|
||||
return Collections.unmodifiableSet( factories );
|
||||
}
|
||||
|
||||
}
|
|
@ -23,6 +23,8 @@ import java.io.File;
|
|||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.Writer;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.maven.artifact.repository.metadata.Metadata;
|
||||
import org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
|
||||
|
@ -31,13 +33,15 @@ import org.codehaus.plexus.util.IOUtil;
|
|||
import org.codehaus.plexus.util.ReaderFactory;
|
||||
import org.codehaus.plexus.util.WriterFactory;
|
||||
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
|
||||
import org.sonatype.aether.RepositoryException;
|
||||
import org.sonatype.aether.metadata.MergeableMetadata;
|
||||
import org.eclipse.aether.RepositoryException;
|
||||
import org.eclipse.aether.metadata.AbstractMetadata;
|
||||
import org.eclipse.aether.metadata.MergeableMetadata;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
*/
|
||||
abstract class MavenMetadata
|
||||
extends AbstractMetadata
|
||||
implements MergeableMetadata
|
||||
{
|
||||
|
||||
|
@ -132,24 +136,15 @@ abstract class MavenMetadata
|
|||
}
|
||||
}
|
||||
|
||||
public Map<String, String> getProperties()
|
||||
{
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
public org.eclipse.aether.metadata.Metadata setProperties( Map<String, String> properties )
|
||||
{
|
||||
StringBuilder buffer = new StringBuilder( 128 );
|
||||
if ( getGroupId().length() > 0 )
|
||||
{
|
||||
buffer.append( getGroupId() );
|
||||
}
|
||||
if ( getArtifactId().length() > 0 )
|
||||
{
|
||||
buffer.append( ':' ).append( getArtifactId() );
|
||||
}
|
||||
if ( getVersion().length() > 0 )
|
||||
{
|
||||
buffer.append( ':' ).append( getVersion() );
|
||||
}
|
||||
buffer.append( '/' ).append( getType() );
|
||||
return buffer.toString();
|
||||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,119 +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.collection.DependencyGraphTransformer;
|
||||
import org.sonatype.aether.collection.DependencyManager;
|
||||
import org.sonatype.aether.collection.DependencySelector;
|
||||
import org.sonatype.aether.collection.DependencyTraverser;
|
||||
import org.sonatype.aether.util.DefaultRepositorySystemSession;
|
||||
import org.sonatype.aether.util.artifact.DefaultArtifactType;
|
||||
import org.sonatype.aether.util.artifact.DefaultArtifactTypeRegistry;
|
||||
import org.sonatype.aether.util.graph.manager.ClassicDependencyManager;
|
||||
import org.sonatype.aether.util.graph.selector.AndDependencySelector;
|
||||
import org.sonatype.aether.util.graph.selector.ExclusionDependencySelector;
|
||||
import org.sonatype.aether.util.graph.selector.OptionalDependencySelector;
|
||||
import org.sonatype.aether.util.graph.selector.ScopeDependencySelector;
|
||||
import org.sonatype.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
|
||||
import org.sonatype.aether.util.graph.transformer.ConflictMarker;
|
||||
import org.sonatype.aether.util.graph.transformer.JavaDependencyContextRefiner;
|
||||
import org.sonatype.aether.util.graph.transformer.JavaEffectiveScopeCalculator;
|
||||
import org.sonatype.aether.util.graph.transformer.NearestVersionConflictResolver;
|
||||
import org.sonatype.aether.util.graph.traverser.FatArtifactTraverser;
|
||||
import org.sonatype.aether.util.repository.DefaultAuthenticationSelector;
|
||||
import org.sonatype.aether.util.repository.DefaultMirrorSelector;
|
||||
import org.sonatype.aether.util.repository.DefaultProxySelector;
|
||||
|
||||
/**
|
||||
* The base Maven repository system session, without environment configuration (authentication, mirror,
|
||||
* proxy, ...).
|
||||
*
|
||||
* <p><strong>Warning:</strong> This class is not intended for
|
||||
* usage by Maven plugins, those should always acquire the current repository system session via
|
||||
* <a href="/ref/current/maven-core/apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html">plugin
|
||||
* parameter injection</a>, since the current repository system session is created by Maven in
|
||||
* <a href="/ref/current/maven-core/apidocs/org/apache/maven/DefaultMaven.html">
|
||||
* <code>DefaultMaven.newRepositorySession(MavenExecutionRequest request)</code></a>.</p>
|
||||
*
|
||||
* @author Benjamin Bentmann
|
||||
*/
|
||||
public class MavenRepositorySystemSession
|
||||
extends DefaultRepositorySystemSession
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new Maven repository system session by initializing the session with values typical for
|
||||
* Maven-based resolution. In more detail, this constructor configures settings relevant for the processing of
|
||||
* dependency graphs, most other settings remain at their generic default value. Use the various setters to further
|
||||
* configure the session with authentication, mirror, proxy and other information required for your environment.
|
||||
*
|
||||
* @param standalone is this instance expected to be used inside Maven, with Plexus and Maven core components, or
|
||||
* standalone? If standalone, System properties are used and classical Maven artifact handlers are pre-configured
|
||||
* to mimic complete Maven repository system session.
|
||||
*/
|
||||
public MavenRepositorySystemSession( boolean standalone )
|
||||
{
|
||||
DependencyTraverser depTraverser = new FatArtifactTraverser();
|
||||
setDependencyTraverser( depTraverser );
|
||||
|
||||
DependencyManager depManager = new ClassicDependencyManager();
|
||||
setDependencyManager( depManager );
|
||||
|
||||
DependencySelector depFilter =
|
||||
new AndDependencySelector( new ScopeDependencySelector( "test", "provided" ),
|
||||
new OptionalDependencySelector(), new ExclusionDependencySelector() );
|
||||
setDependencySelector( depFilter );
|
||||
|
||||
DependencyGraphTransformer transformer =
|
||||
new ChainedDependencyGraphTransformer( new ConflictMarker(), new JavaEffectiveScopeCalculator(),
|
||||
new NearestVersionConflictResolver(),
|
||||
new JavaDependencyContextRefiner() );
|
||||
setDependencyGraphTransformer( transformer );
|
||||
|
||||
setIgnoreInvalidArtifactDescriptor( true );
|
||||
setIgnoreMissingArtifactDescriptor( true );
|
||||
|
||||
if ( standalone )
|
||||
{
|
||||
setMirrorSelector( new DefaultMirrorSelector() );
|
||||
setAuthenticationSelector( new DefaultAuthenticationSelector() );
|
||||
setProxySelector( new DefaultProxySelector() );
|
||||
|
||||
DefaultArtifactTypeRegistry stereotypes = new DefaultArtifactTypeRegistry();
|
||||
stereotypes.add( new DefaultArtifactType( "pom" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "maven-plugin", "jar", "", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "jar", "jar", "", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "ejb", "jar", "", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "ejb-client", "jar", "client", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "test-jar", "jar", "tests", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "javadoc", "jar", "javadoc", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "java-source", "jar", "sources", "java", false, false ) );
|
||||
stereotypes.add( new DefaultArtifactType( "war", "war", "", "java", false, true ) );
|
||||
stereotypes.add( new DefaultArtifactType( "ear", "ear", "", "java", false, true ) );
|
||||
stereotypes.add( new DefaultArtifactType( "rar", "rar", "", "java", false, true ) );
|
||||
stereotypes.add( new DefaultArtifactType( "par", "par", "", "java", false, true ) );
|
||||
setArtifactTypeRegistry( stereotypes );
|
||||
|
||||
setSystemProps( System.getProperties() );
|
||||
setConfigProps( System.getProperties() );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,136 @@
|
|||
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 java.util.Properties;
|
||||
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.artifact.DefaultArtifactType;
|
||||
import org.eclipse.aether.collection.DependencyGraphTransformer;
|
||||
import org.eclipse.aether.collection.DependencyManager;
|
||||
import org.eclipse.aether.collection.DependencySelector;
|
||||
import org.eclipse.aether.collection.DependencyTraverser;
|
||||
import org.eclipse.aether.impl.ArtifactDescriptorReader;
|
||||
import org.eclipse.aether.impl.DefaultServiceLocator;
|
||||
import org.eclipse.aether.impl.MetadataGeneratorFactory;
|
||||
import org.eclipse.aether.impl.VersionRangeResolver;
|
||||
import org.eclipse.aether.impl.VersionResolver;
|
||||
import org.eclipse.aether.util.artifact.DefaultArtifactTypeRegistry;
|
||||
import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
|
||||
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.OptionalDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.ScopeDependencySelector;
|
||||
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
|
||||
import org.eclipse.aether.util.graph.transformer.ConflictResolver;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaScopeDeriver;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaScopeSelector;
|
||||
import org.eclipse.aether.util.graph.transformer.NearestVersionSelector;
|
||||
import org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector;
|
||||
import org.eclipse.aether.util.graph.traverser.FatArtifactTraverser;
|
||||
import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
|
||||
|
||||
/**
|
||||
* A utility class to assist in setting up a Maven-like repository system. <em>Note:</em> This component is meant to
|
||||
* assist those clients that employ the repository system outside of an IoC container, Maven plugins should instead
|
||||
* always use regular dependency injection to acquire the repository system.
|
||||
*
|
||||
* @author Benjamin Bentmann
|
||||
*/
|
||||
public final class MavenRepositorySystemUtils
|
||||
{
|
||||
|
||||
private MavenRepositorySystemUtils()
|
||||
{
|
||||
// hide constructor
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new service locator that already knows about all service implementations included in this library. To
|
||||
* acquire a complete repository system, clients need to add some repository connectors for remote transfers.
|
||||
*
|
||||
* @return The new service locator, never {@code null}.
|
||||
*/
|
||||
public static DefaultServiceLocator newServiceLocator()
|
||||
{
|
||||
DefaultServiceLocator locator = new DefaultServiceLocator();
|
||||
locator.addService( ArtifactDescriptorReader.class, DefaultArtifactDescriptorReader.class );
|
||||
locator.addService( VersionResolver.class, DefaultVersionResolver.class );
|
||||
locator.addService( VersionRangeResolver.class, DefaultVersionRangeResolver.class );
|
||||
locator.addService( MetadataGeneratorFactory.class, SnapshotMetadataGeneratorFactory.class );
|
||||
locator.addService( MetadataGeneratorFactory.class, VersionsMetadataGeneratorFactory.class );
|
||||
return locator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new Maven-like repository system session by initializing the session with values typical for
|
||||
* Maven-based resolution. In more detail, this method configures settings relevant for the processing of dependency
|
||||
* graphs, most other settings remain at their generic default value. Use the various setters to further configure
|
||||
* the session with authentication, mirror, proxy and other information required for your environment.
|
||||
*
|
||||
* @return The new repository system session, never {@code null}.
|
||||
*/
|
||||
public static DefaultRepositorySystemSession newSession()
|
||||
{
|
||||
DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
|
||||
|
||||
DependencyTraverser depTraverser = new FatArtifactTraverser();
|
||||
session.setDependencyTraverser( depTraverser );
|
||||
|
||||
DependencyManager depManager = new ClassicDependencyManager();
|
||||
session.setDependencyManager( depManager );
|
||||
|
||||
DependencySelector depFilter =
|
||||
new AndDependencySelector( new ScopeDependencySelector( "test", "provided" ),
|
||||
new OptionalDependencySelector(), new ExclusionDependencySelector() );
|
||||
session.setDependencySelector( depFilter );
|
||||
|
||||
DependencyGraphTransformer transformer =
|
||||
new ConflictResolver( new NearestVersionSelector(), new JavaScopeSelector(),
|
||||
new SimpleOptionalitySelector(), new JavaScopeDeriver() );
|
||||
new ChainedDependencyGraphTransformer( transformer, new JavaDependencyContextRefiner() );
|
||||
session.setDependencyGraphTransformer( transformer );
|
||||
|
||||
DefaultArtifactTypeRegistry stereotypes = new DefaultArtifactTypeRegistry();
|
||||
stereotypes.add( new DefaultArtifactType( "pom" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "maven-plugin", "jar", "", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "jar", "jar", "", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "ejb", "jar", "", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "ejb-client", "jar", "client", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "test-jar", "jar", "tests", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "javadoc", "jar", "javadoc", "java" ) );
|
||||
stereotypes.add( new DefaultArtifactType( "java-source", "jar", "sources", "java", false, false ) );
|
||||
stereotypes.add( new DefaultArtifactType( "war", "war", "", "java", false, true ) );
|
||||
stereotypes.add( new DefaultArtifactType( "ear", "ear", "", "java", false, true ) );
|
||||
stereotypes.add( new DefaultArtifactType( "rar", "rar", "", "java", false, true ) );
|
||||
stereotypes.add( new DefaultArtifactType( "par", "par", "", "java", false, true ) );
|
||||
session.setArtifactTypeRegistry( stereotypes );
|
||||
|
||||
session.setArtifactDescriptorPolicy( new SimpleArtifactDescriptorPolicy( true, true ) );
|
||||
|
||||
Properties sysProps = System.getProperties();
|
||||
session.setSystemProperties( sysProps );
|
||||
session.setConfigProperties( sysProps );
|
||||
|
||||
return session;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,54 +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.internal.DefaultServiceLocator;
|
||||
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.
|
||||
*
|
||||
* <p><em>Note:</em> This component is meant to assist 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:
|
||||
* it is defined as Plexus component in aether-impl with its dependencies.</p>
|
||||
*
|
||||
* @author Benjamin Bentmann
|
||||
*/
|
||||
public class MavenServiceLocator
|
||||
extends DefaultServiceLocator
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a new service locator that already knows about all service implementations included in this library.
|
||||
*/
|
||||
public MavenServiceLocator()
|
||||
{
|
||||
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 );
|
||||
}
|
||||
|
||||
}
|
|
@ -24,7 +24,7 @@ import java.util.ArrayList;
|
|||
import java.util.Collection;
|
||||
|
||||
import org.apache.maven.artifact.repository.metadata.Metadata;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* @author Hervé Boutemy
|
||||
|
|
|
@ -22,8 +22,8 @@ package org.apache.maven.repository.internal;
|
|||
import java.io.File;
|
||||
import java.util.Map;
|
||||
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.util.artifact.AbstractArtifact;
|
||||
import org.eclipse.aether.artifact.AbstractArtifact;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
@ -88,16 +88,6 @@ final class RelocatedArtifact
|
|||
}
|
||||
}
|
||||
|
||||
public String getBaseVersion()
|
||||
{
|
||||
return toBaseVersion( getVersion() );
|
||||
}
|
||||
|
||||
public boolean isSnapshot()
|
||||
{
|
||||
return isSnapshot( getVersion() );
|
||||
}
|
||||
|
||||
public String getClassifier()
|
||||
{
|
||||
return artifact.getClassifier();
|
||||
|
|
|
@ -32,7 +32,7 @@ import org.apache.maven.artifact.repository.metadata.Metadata;
|
|||
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
|
||||
|
|
|
@ -24,12 +24,12 @@ import java.util.Collections;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.deployment.DeployRequest;
|
||||
import org.sonatype.aether.impl.MetadataGenerator;
|
||||
import org.sonatype.aether.metadata.Metadata;
|
||||
import org.sonatype.aether.util.ConfigUtils;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.deployment.DeployRequest;
|
||||
import org.eclipse.aether.impl.MetadataGenerator;
|
||||
import org.eclipse.aether.metadata.Metadata;
|
||||
import org.eclipse.aether.util.ConfigUtils;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -20,11 +20,11 @@ package org.apache.maven.repository.internal;
|
|||
*/
|
||||
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.deployment.DeployRequest;
|
||||
import org.sonatype.aether.impl.MetadataGenerator;
|
||||
import org.sonatype.aether.impl.MetadataGeneratorFactory;
|
||||
import org.sonatype.aether.installation.InstallRequest;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.deployment.DeployRequest;
|
||||
import org.eclipse.aether.impl.MetadataGenerator;
|
||||
import org.eclipse.aether.impl.MetadataGeneratorFactory;
|
||||
import org.eclipse.aether.installation.InstallRequest;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
@ -44,7 +44,7 @@ public class SnapshotMetadataGeneratorFactory
|
|||
return new RemoteSnapshotMetadataGenerator( session, request );
|
||||
}
|
||||
|
||||
public int getPriority()
|
||||
public float getPriority()
|
||||
{
|
||||
return 10;
|
||||
}
|
||||
|
|
|
@ -26,8 +26,8 @@ import java.util.LinkedHashSet;
|
|||
|
||||
import org.apache.maven.artifact.repository.metadata.Metadata;
|
||||
import org.apache.maven.artifact.repository.metadata.Versioning;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.util.artifact.ArtifactProperties;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.ArtifactProperties;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -25,12 +25,12 @@ import java.util.Iterator;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.deployment.DeployRequest;
|
||||
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.deployment.DeployRequest;
|
||||
import org.eclipse.aether.impl.MetadataGenerator;
|
||||
import org.eclipse.aether.installation.InstallRequest;
|
||||
import org.eclipse.aether.metadata.Metadata;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -20,11 +20,11 @@ package org.apache.maven.repository.internal;
|
|||
*/
|
||||
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.deployment.DeployRequest;
|
||||
import org.sonatype.aether.impl.MetadataGenerator;
|
||||
import org.sonatype.aether.impl.MetadataGeneratorFactory;
|
||||
import org.sonatype.aether.installation.InstallRequest;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.deployment.DeployRequest;
|
||||
import org.eclipse.aether.impl.MetadataGenerator;
|
||||
import org.eclipse.aether.impl.MetadataGeneratorFactory;
|
||||
import org.eclipse.aether.installation.InstallRequest;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
@ -44,7 +44,7 @@ public class VersionsMetadataGeneratorFactory
|
|||
return new VersionsMetadataGenerator( session, request );
|
||||
}
|
||||
|
||||
public int getPriority()
|
||||
public float getPriority()
|
||||
{
|
||||
return 5;
|
||||
}
|
||||
|
|
|
@ -1,76 +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 java.net.MalformedURLException;
|
||||
|
||||
import org.apache.maven.repository.internal.util.ConsoleRepositoryListener;
|
||||
import org.apache.maven.repository.internal.util.ConsoleTransferListener;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
|
||||
public abstract class AbstractRepositoryTestCase
|
||||
extends PlexusTestCase
|
||||
{
|
||||
protected RepositorySystem system;
|
||||
|
||||
protected RepositorySystemSession session;
|
||||
|
||||
@Override
|
||||
protected void setUp()
|
||||
throws Exception
|
||||
{
|
||||
super.setUp();
|
||||
system = lookup( RepositorySystem.class );
|
||||
session = newMavenRepositorySystemSession( system );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown()
|
||||
throws Exception
|
||||
{
|
||||
session = null;
|
||||
system = null;
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
public static RepositorySystemSession newMavenRepositorySystemSession( RepositorySystem system )
|
||||
{
|
||||
MavenRepositorySystemSession session = new MavenRepositorySystemSession( true );
|
||||
|
||||
LocalRepository localRepo = new LocalRepository( "target/local-repo" );
|
||||
session.setLocalRepositoryManager( system.newLocalRepositoryManager( localRepo ) );
|
||||
|
||||
session.setTransferListener( new ConsoleTransferListener() );
|
||||
session.setRepositoryListener( new ConsoleRepositoryListener() );
|
||||
|
||||
return session;
|
||||
}
|
||||
|
||||
public static RemoteRepository newTestRepository()
|
||||
throws MalformedURLException
|
||||
{
|
||||
return new RemoteRepository( "repo", "default",
|
||||
getTestFile( "target/test-classes/repo" ).toURI().toURL().toString() );
|
||||
}
|
||||
}
|
|
@ -1,96 +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.artifact.Artifact;
|
||||
import org.sonatype.aether.impl.VersionResolver;
|
||||
import org.sonatype.aether.resolution.VersionRequest;
|
||||
import org.sonatype.aether.resolution.VersionResult;
|
||||
import org.sonatype.aether.util.artifact.DefaultArtifact;
|
||||
|
||||
public class DefaultVersionResolverTest
|
||||
extends AbstractRepositoryTestCase
|
||||
{
|
||||
private DefaultVersionResolver versionResolver;
|
||||
|
||||
@Override
|
||||
protected void setUp()
|
||||
throws Exception
|
||||
{
|
||||
super.setUp();
|
||||
// be sure we're testing the right class, i.e. DefaultVersionResolver.class
|
||||
versionResolver = (DefaultVersionResolver) lookup( VersionResolver.class, "default" );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void tearDown()
|
||||
throws Exception
|
||||
{
|
||||
versionResolver = null;
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
public void testResolveSeparateInstalledClassifiedNonUniqueVersionedArtifacts()
|
||||
throws Exception
|
||||
{
|
||||
VersionRequest requestB = new VersionRequest();
|
||||
requestB.addRepository( newTestRepository() );
|
||||
Artifact artifactB =
|
||||
new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierB", "jar", "07.20.3-SNAPSHOT" );
|
||||
requestB.setArtifact( artifactB );
|
||||
|
||||
VersionResult resultB = versionResolver.resolveVersion( session, requestB );
|
||||
assertEquals( "07.20.3-20120809.112920-97", resultB.getVersion() );
|
||||
|
||||
VersionRequest requestA = new VersionRequest();
|
||||
requestA.addRepository( newTestRepository() );
|
||||
|
||||
Artifact artifactA =
|
||||
new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierA", "jar", "07.20.3-SNAPSHOT" );
|
||||
requestA.setArtifact( artifactA );
|
||||
|
||||
VersionResult resultA = versionResolver.resolveVersion( session, requestA );
|
||||
assertEquals( "07.20.3-20120809.112124-88", resultA.getVersion() );
|
||||
}
|
||||
|
||||
public void testResolveSeparateInstalledClassifiedNonVersionedArtifacts()
|
||||
throws Exception
|
||||
{
|
||||
VersionRequest requestA = new VersionRequest();
|
||||
requestA.addRepository( newTestRepository() );
|
||||
String versionA = "07.20.3-20120809.112124-88";
|
||||
Artifact artifactA =
|
||||
new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierA", "jar", versionA );
|
||||
requestA.setArtifact( artifactA );
|
||||
|
||||
VersionResult resultA = versionResolver.resolveVersion( session, requestA );
|
||||
assertEquals( versionA, resultA.getVersion() );
|
||||
|
||||
VersionRequest requestB = new VersionRequest();
|
||||
requestB.addRepository( newTestRepository() );
|
||||
String versionB = "07.20.3-20120809.112920-97";
|
||||
Artifact artifactB =
|
||||
new DefaultArtifact( "org.apache.maven.its", "dep-mng5324", "classifierB", "jar", versionB );
|
||||
requestB.setArtifact( artifactB );
|
||||
|
||||
VersionResult resultB = versionResolver.resolveVersion( session, requestB );
|
||||
assertEquals( versionB, resultB.getVersion() );
|
||||
}
|
||||
}
|
|
@ -19,26 +19,26 @@ package org.apache.maven.repository.internal;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.impl.MetadataGeneratorFactory;
|
||||
import org.sonatype.aether.spi.locator.ServiceLocator;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.impl.MetadataGeneratorFactory;
|
||||
import org.eclipse.aether.spi.locator.ServiceLocator;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
public class DefaultServiceLocatorTest
|
||||
public class MavenRepositorySystemUtilsTest
|
||||
extends TestCase
|
||||
{
|
||||
|
||||
public void testGetRepositorySystem()
|
||||
{
|
||||
ServiceLocator locator = new MavenServiceLocator();
|
||||
ServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
|
||||
RepositorySystem repoSys = locator.getService( RepositorySystem.class );
|
||||
assertNotNull( repoSys );
|
||||
}
|
||||
|
||||
public void testGetMetadataGeneratorFactories()
|
||||
{
|
||||
ServiceLocator locator = new MavenServiceLocator();
|
||||
ServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
|
||||
assertEquals( 2, locator.getServices( MetadataGeneratorFactory.class ).size() );
|
||||
}
|
||||
|
|
@ -1,220 +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 java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.collection.CollectRequest;
|
||||
import org.sonatype.aether.collection.CollectResult;
|
||||
import org.sonatype.aether.graph.Dependency;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.sonatype.aether.resolution.ArtifactDescriptorRequest;
|
||||
import org.sonatype.aether.resolution.ArtifactDescriptorResult;
|
||||
import org.sonatype.aether.resolution.ArtifactRequest;
|
||||
import org.sonatype.aether.resolution.ArtifactResult;
|
||||
import org.sonatype.aether.util.artifact.DefaultArtifact;
|
||||
|
||||
public class RepositorySystemTest
|
||||
extends AbstractRepositoryTestCase
|
||||
{
|
||||
public void testResolveVersionRange()
|
||||
throws Exception
|
||||
{
|
||||
//VersionRangeResult resolveVersionRange( RepositorySystemSession session, VersionRangeRequest request )
|
||||
// throws VersionRangeResolutionException;
|
||||
|
||||
}
|
||||
|
||||
public void testResolveVersion()
|
||||
throws Exception
|
||||
{
|
||||
//VersionResult resolveVersion( RepositorySystemSession session, VersionRequest request )
|
||||
// throws VersionResolutionException;
|
||||
}
|
||||
|
||||
public void testReadArtifactDescriptor()
|
||||
throws Exception
|
||||
{
|
||||
Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" );
|
||||
|
||||
ArtifactDescriptorRequest request = new ArtifactDescriptorRequest();
|
||||
request.setArtifact( artifact );
|
||||
request.addRepository( newTestRepository() );
|
||||
|
||||
ArtifactDescriptorResult result = system.readArtifactDescriptor( session, request );
|
||||
|
||||
List<Dependency> deps = result.getDependencies();
|
||||
assertEquals( 2, deps.size() );
|
||||
checkUtSimpleArtifactDependencies( deps.get( 0 ), deps.get( 1 ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* check ut.simple:artifact:1.0 dependencies
|
||||
*/
|
||||
private void checkUtSimpleArtifactDependencies( Dependency dep1, Dependency dep2 )
|
||||
{
|
||||
assertEquals( "compile", dep1.getScope() );
|
||||
assertFalse( dep1.isOptional() );
|
||||
assertEquals( 0, dep1.getExclusions().size() );
|
||||
Artifact depArtifact = dep1.getArtifact();
|
||||
assertEquals( "ut.simple", depArtifact.getGroupId() );
|
||||
assertEquals( "dependency", depArtifact.getArtifactId() );
|
||||
assertEquals( "1.0", depArtifact.getVersion() );
|
||||
assertEquals( "1.0", depArtifact.getBaseVersion() );
|
||||
assertNull( depArtifact.getFile() );
|
||||
assertFalse( depArtifact.isSnapshot() );
|
||||
assertEquals( "", depArtifact.getClassifier() );
|
||||
assertEquals( "jar", depArtifact.getExtension() );
|
||||
assertEquals( "java", depArtifact.getProperty( "language", null ) );
|
||||
assertEquals( "jar", depArtifact.getProperty( "type", null ) );
|
||||
assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) );
|
||||
assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) );
|
||||
assertEquals( 4, depArtifact.getProperties().size() );
|
||||
|
||||
assertEquals( "compile", dep2.getScope() );
|
||||
assertFalse( dep2.isOptional() );
|
||||
assertEquals( 0, dep2.getExclusions().size() );
|
||||
depArtifact = dep2.getArtifact();
|
||||
assertEquals( "ut.simple", depArtifact.getGroupId() );
|
||||
assertEquals( "dependency", depArtifact.getArtifactId() );
|
||||
assertEquals( "1.0", depArtifact.getVersion() );
|
||||
assertEquals( "1.0", depArtifact.getBaseVersion() );
|
||||
assertNull( depArtifact.getFile() );
|
||||
assertFalse( depArtifact.isSnapshot() );
|
||||
assertEquals( "sources", depArtifact.getClassifier() );
|
||||
assertEquals( "jar", depArtifact.getExtension() );
|
||||
assertEquals( "java", depArtifact.getProperty( "language", null ) );
|
||||
assertEquals( "jar", depArtifact.getProperty( "type", null ) ); // shouldn't it be java-sources given the classifier?
|
||||
assertEquals( "true", depArtifact.getProperty( "constitutesBuildPath", null ) ); // shouldn't it be false given the classifier?
|
||||
assertEquals( "false", depArtifact.getProperty( "includesDependencies", null ) );
|
||||
assertEquals( 4, depArtifact.getProperties().size() );
|
||||
}
|
||||
|
||||
public void testCollectDependencies()
|
||||
throws Exception
|
||||
{
|
||||
Artifact artifact = new DefaultArtifact( "ut.simple:artifact:extension:classifier:1.0" );
|
||||
// notice: extension and classifier not really used in this test...
|
||||
|
||||
CollectRequest collectRequest = new CollectRequest();
|
||||
collectRequest.setRoot( new Dependency( artifact, null ) );
|
||||
collectRequest.addRepository( newTestRepository() );
|
||||
|
||||
CollectResult collectResult = system.collectDependencies( session, collectRequest );
|
||||
|
||||
List<DependencyNode> nodes = collectResult.getRoot().getChildren();
|
||||
assertEquals( 2, nodes.size() );
|
||||
checkUtSimpleArtifactDependencies( nodes.get( 0 ).getDependency(), nodes.get( 1 ).getDependency() );
|
||||
}
|
||||
|
||||
public void testResolveArtifact()
|
||||
throws Exception
|
||||
{
|
||||
Artifact artifact = new DefaultArtifact( "ut.simple:artifact:1.0" );
|
||||
|
||||
ArtifactRequest artifactRequest = new ArtifactRequest();
|
||||
artifactRequest.setArtifact( artifact );
|
||||
artifactRequest.addRepository( newTestRepository() );
|
||||
|
||||
ArtifactResult artifactResult = system.resolveArtifact( session, artifactRequest );
|
||||
checkArtifactResult( artifactResult, "artifact-1.0.jar" );
|
||||
|
||||
artifact = new DefaultArtifact( "ut.simple:artifact:zip:1.0" );
|
||||
artifactRequest.setArtifact( artifact );
|
||||
artifactResult = system.resolveArtifact( session, artifactRequest );
|
||||
checkArtifactResult( artifactResult, "artifact-1.0.zip" );
|
||||
|
||||
artifact = new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" );
|
||||
artifactRequest.setArtifact( artifact );
|
||||
artifactResult = system.resolveArtifact( session, artifactRequest );
|
||||
checkArtifactResult( artifactResult, "artifact-1.0-classifier.zip" );
|
||||
}
|
||||
|
||||
private void checkArtifactResult( ArtifactResult result, String filename )
|
||||
{
|
||||
assertFalse( result.isMissing() );
|
||||
assertTrue( result.isResolved() );
|
||||
Artifact artifact = result.getArtifact();
|
||||
assertNotNull( artifact.getFile() );
|
||||
assertEquals( filename, artifact.getFile().getName() );
|
||||
}
|
||||
|
||||
public void testResolveArtifacts()
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRequest req1 = new ArtifactRequest();
|
||||
req1.setArtifact( new DefaultArtifact( "ut.simple:artifact:1.0" ) );
|
||||
req1.addRepository( newTestRepository() );
|
||||
|
||||
ArtifactRequest req2 = new ArtifactRequest();
|
||||
req2.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:1.0" ) );
|
||||
req2.addRepository( newTestRepository() );
|
||||
|
||||
ArtifactRequest req3 = new ArtifactRequest();
|
||||
req3.setArtifact( new DefaultArtifact( "ut.simple:artifact:zip:classifier:1.0" ) );
|
||||
req3.addRepository( newTestRepository() );
|
||||
|
||||
List<ArtifactRequest> requests = Arrays.asList( new ArtifactRequest[] { req1, req2, req3 } );
|
||||
|
||||
List<ArtifactResult> results = system.resolveArtifacts( session, requests );
|
||||
|
||||
assertEquals( 3, results.size() );
|
||||
checkArtifactResult( results.get( 0 ), "artifact-1.0.jar" );
|
||||
checkArtifactResult( results.get( 1 ), "artifact-1.0.zip" );
|
||||
checkArtifactResult( results.get( 2 ), "artifact-1.0-classifier.zip" );
|
||||
}
|
||||
|
||||
public void testResolveMetadata()
|
||||
throws Exception
|
||||
{
|
||||
//List<MetadataResult> resolveMetadata( RepositorySystemSession session,
|
||||
// Collection<? extends MetadataRequest> requests );
|
||||
}
|
||||
|
||||
public void testInstall()
|
||||
throws Exception
|
||||
{
|
||||
//InstallResult install( RepositorySystemSession session, InstallRequest request )
|
||||
// throws InstallationException;
|
||||
// release, snapshot unique ou non unique, attachement
|
||||
}
|
||||
|
||||
public void testDeploy()
|
||||
throws Exception
|
||||
{
|
||||
//DeployResult deploy( RepositorySystemSession session, DeployRequest request )
|
||||
// throws DeploymentException;
|
||||
}
|
||||
|
||||
public void testNewLocalRepositoryManager()
|
||||
throws Exception
|
||||
{
|
||||
//LocalRepositoryManager newLocalRepositoryManager( LocalRepository localRepository );
|
||||
}
|
||||
|
||||
public void testNewSyncContext()
|
||||
throws Exception
|
||||
{
|
||||
//SyncContext newSyncContext( RepositorySystemSession session, boolean shared );
|
||||
}
|
||||
|
||||
}
|
|
@ -1,132 +0,0 @@
|
|||
package org.apache.maven.repository.internal.util;
|
||||
|
||||
/*
|
||||
* 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.io.PrintStream;
|
||||
|
||||
import org.sonatype.aether.AbstractRepositoryListener;
|
||||
import org.sonatype.aether.RepositoryEvent;
|
||||
|
||||
public class ConsoleRepositoryListener
|
||||
extends AbstractRepositoryListener
|
||||
{
|
||||
|
||||
private PrintStream out;
|
||||
|
||||
public ConsoleRepositoryListener()
|
||||
{
|
||||
this( null );
|
||||
}
|
||||
|
||||
public ConsoleRepositoryListener( PrintStream out )
|
||||
{
|
||||
this.out = ( out != null ) ? out : System.out;
|
||||
}
|
||||
|
||||
public void artifactDeployed( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactDeployed", event.getArtifact() + " to " + event.getRepository() );
|
||||
}
|
||||
|
||||
public void artifactDeploying( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactDeploying", event.getArtifact() + " to " + event.getRepository() );
|
||||
}
|
||||
|
||||
public void artifactDescriptorInvalid( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactDescriptorInvalid", "for " + event.getArtifact() + ": " + event.getException().getMessage() );
|
||||
}
|
||||
|
||||
public void artifactDescriptorMissing( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactDescriptorMissing", "for " + event.getArtifact() );
|
||||
}
|
||||
|
||||
public void artifactInstalled( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactInstalled", event.getArtifact() + " to " + event.getFile() );
|
||||
}
|
||||
|
||||
public void artifactInstalling( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactInstalling", event.getArtifact() + " to " + event.getFile() );
|
||||
}
|
||||
|
||||
public void artifactResolved( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactResolved", event.getArtifact() + " from " + event.getRepository() );
|
||||
}
|
||||
|
||||
public void artifactDownloading( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactDownloading", event.getArtifact() + " from " + event.getRepository() );
|
||||
}
|
||||
|
||||
public void artifactDownloaded( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactDownloaded", event.getArtifact() + " from " + event.getRepository() );
|
||||
}
|
||||
|
||||
public void artifactResolving( RepositoryEvent event )
|
||||
{
|
||||
println( "artifactResolving", event.getArtifact().toString() );
|
||||
}
|
||||
|
||||
public void metadataDeployed( RepositoryEvent event )
|
||||
{
|
||||
println( "metadataDeployed", event.getMetadata() + " to " + event.getRepository() );
|
||||
}
|
||||
|
||||
public void metadataDeploying( RepositoryEvent event )
|
||||
{
|
||||
println( "metadataDeploying", event.getMetadata() + " to " + event.getRepository() );
|
||||
}
|
||||
|
||||
public void metadataInstalled( RepositoryEvent event )
|
||||
{
|
||||
println( "metadataInstalled", event.getMetadata() + " to " + event.getFile() );
|
||||
}
|
||||
|
||||
public void metadataInstalling( RepositoryEvent event )
|
||||
{
|
||||
println( "metadataInstalling", event.getMetadata() + " to " + event.getFile() );
|
||||
}
|
||||
|
||||
public void metadataInvalid( RepositoryEvent event )
|
||||
{
|
||||
println( "metadataInvalid", event.getMetadata().toString() );
|
||||
}
|
||||
|
||||
public void metadataResolved( RepositoryEvent event )
|
||||
{
|
||||
println( "metadataResolved", event.getMetadata() + " from " + event.getRepository() );
|
||||
}
|
||||
|
||||
public void metadataResolving( RepositoryEvent event )
|
||||
{
|
||||
println( "metadataResolving", event.getMetadata() + " from " + event.getRepository() );
|
||||
}
|
||||
|
||||
private void println( String event, String message )
|
||||
{
|
||||
out.println( "Aether Repository - " + event + ": " + message );
|
||||
}
|
||||
}
|
|
@ -1,186 +0,0 @@
|
|||
package org.apache.maven.repository.internal.util;
|
||||
|
||||
/*
|
||||
* 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.io.PrintStream;
|
||||
import java.text.DecimalFormat;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.sonatype.aether.transfer.AbstractTransferListener;
|
||||
import org.sonatype.aether.transfer.TransferEvent;
|
||||
import org.sonatype.aether.transfer.TransferResource;
|
||||
|
||||
public class ConsoleTransferListener
|
||||
extends AbstractTransferListener
|
||||
{
|
||||
|
||||
private PrintStream out;
|
||||
|
||||
private Map<TransferResource, Long> downloads = new ConcurrentHashMap<TransferResource, Long>();
|
||||
|
||||
private int lastLength;
|
||||
|
||||
public ConsoleTransferListener()
|
||||
{
|
||||
this( null );
|
||||
}
|
||||
|
||||
public ConsoleTransferListener( PrintStream out )
|
||||
{
|
||||
this.out = ( out != null ) ? out : System.out;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferInitiated( TransferEvent event )
|
||||
{
|
||||
String message = event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploading" : "Downloading";
|
||||
|
||||
println( "transferInitiated", message + ": " + event.getResource().getRepositoryUrl() + event.getResource().getResourceName() );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferProgressed( TransferEvent event )
|
||||
{
|
||||
TransferResource resource = event.getResource();
|
||||
downloads.put( resource, Long.valueOf( event.getTransferredBytes() ) );
|
||||
|
||||
StringBuilder buffer = new StringBuilder( 64 );
|
||||
|
||||
for ( Map.Entry<TransferResource, Long> entry : downloads.entrySet() )
|
||||
{
|
||||
long total = entry.getKey().getContentLength();
|
||||
long complete = entry.getValue().longValue();
|
||||
|
||||
buffer.append( getStatus( complete, total ) ).append( " " );
|
||||
}
|
||||
|
||||
int pad = lastLength - buffer.length();
|
||||
lastLength = buffer.length();
|
||||
pad( buffer, pad );
|
||||
buffer.append( '\r' );
|
||||
|
||||
print( "transferProgressed", buffer.toString() );
|
||||
}
|
||||
|
||||
private String getStatus( long complete, long total )
|
||||
{
|
||||
if ( total >= 1024 )
|
||||
{
|
||||
return toKB( complete ) + "/" + toKB( total ) + " KB ";
|
||||
}
|
||||
else if ( total >= 0 )
|
||||
{
|
||||
return complete + "/" + total + " B ";
|
||||
}
|
||||
else if ( complete >= 1024 )
|
||||
{
|
||||
return toKB( complete ) + " KB ";
|
||||
}
|
||||
else
|
||||
{
|
||||
return complete + " B ";
|
||||
}
|
||||
}
|
||||
|
||||
private void pad( StringBuilder buffer, int spaces )
|
||||
{
|
||||
String block = " ";
|
||||
while ( spaces > 0 )
|
||||
{
|
||||
int n = Math.min( spaces, block.length() );
|
||||
buffer.append( block, 0, n );
|
||||
spaces -= n;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferSucceeded( TransferEvent event )
|
||||
{
|
||||
transferCompleted( event );
|
||||
|
||||
TransferResource resource = event.getResource();
|
||||
long contentLength = event.getTransferredBytes();
|
||||
if ( contentLength >= 0 )
|
||||
{
|
||||
String type = ( event.getRequestType() == TransferEvent.RequestType.PUT ? "Uploaded" : "Downloaded" );
|
||||
String len = contentLength >= 1024 ? toKB( contentLength ) + " KB" : contentLength + " B";
|
||||
|
||||
String throughput = "";
|
||||
long duration = System.currentTimeMillis() - resource.getTransferStartTime();
|
||||
if ( duration > 0 )
|
||||
{
|
||||
DecimalFormat format = new DecimalFormat( "0.0", new DecimalFormatSymbols( Locale.ENGLISH ) );
|
||||
double kbPerSec = ( contentLength / 1024.0 ) / ( duration / 1000.0 );
|
||||
throughput = " at " + format.format( kbPerSec ) + " KB/sec";
|
||||
}
|
||||
|
||||
println( "transferSucceeded", type + ": " + resource.getRepositoryUrl() + resource.getResourceName() + " ("
|
||||
+ len + throughput + ")" );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferFailed( TransferEvent event )
|
||||
{
|
||||
transferCompleted( event );
|
||||
|
||||
println( "transferFailed", event.getException().getClass() + ": " + event.getException().getMessage() );
|
||||
}
|
||||
|
||||
private void transferCompleted( TransferEvent event )
|
||||
{
|
||||
downloads.remove( event.getResource() );
|
||||
|
||||
StringBuilder buffer = new StringBuilder( 64 );
|
||||
pad( buffer, lastLength );
|
||||
buffer.append( '\r' );
|
||||
out.println( buffer );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void transferCorrupted( TransferEvent event )
|
||||
{
|
||||
println( "transferCorrupted", event.getException().getClass() + ": " + event.getException().getMessage() );
|
||||
}
|
||||
|
||||
protected long toKB( long bytes )
|
||||
{
|
||||
return ( bytes + 1023 ) / 1024;
|
||||
}
|
||||
|
||||
private void println( String event, String message )
|
||||
{
|
||||
print( event, message );
|
||||
out.println();
|
||||
}
|
||||
|
||||
private void print( String event, String message )
|
||||
{
|
||||
out.print( "Aether Transfer - " + event );
|
||||
if ( message != null )
|
||||
{
|
||||
out.print( ": " );
|
||||
out.print( message );
|
||||
}
|
||||
}
|
||||
}
|
|
@ -72,7 +72,7 @@
|
|||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-connector-wagon</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
|
|
@ -37,15 +37,15 @@ import org.apache.maven.project.artifact.ProjectArtifactMetadata;
|
|||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.deployment.DeployRequest;
|
||||
import org.sonatype.aether.deployment.DeployResult;
|
||||
import org.sonatype.aether.deployment.DeploymentException;
|
||||
import org.sonatype.aether.metadata.MergeableMetadata;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.util.DefaultRequestTrace;
|
||||
import org.sonatype.aether.util.artifact.SubArtifact;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RequestTrace;
|
||||
import org.eclipse.aether.deployment.DeployRequest;
|
||||
import org.eclipse.aether.deployment.DeployResult;
|
||||
import org.eclipse.aether.deployment.DeploymentException;
|
||||
import org.eclipse.aether.metadata.MergeableMetadata;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.util.artifact.SubArtifact;
|
||||
|
||||
@Component( role = ArtifactDeployer.class, instantiationStrategy = "per-lookup" )
|
||||
public class DefaultArtifactDeployer
|
||||
|
@ -84,9 +84,9 @@ public class DefaultArtifactDeployer
|
|||
|
||||
DeployRequest request = new DeployRequest();
|
||||
|
||||
request.setTrace( DefaultRequestTrace.newChild( null, legacySupport.getSession().getCurrentProject() ) );
|
||||
request.setTrace( RequestTrace.newChild( null, legacySupport.getSession().getCurrentProject() ) );
|
||||
|
||||
org.sonatype.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact( artifact );
|
||||
org.eclipse.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact( artifact );
|
||||
mainArtifact = mainArtifact.setFile( source );
|
||||
request.addArtifact( mainArtifact );
|
||||
|
||||
|
@ -103,7 +103,7 @@ public class DefaultArtifactDeployer
|
|||
{
|
||||
if ( metadata instanceof ProjectArtifactMetadata )
|
||||
{
|
||||
org.sonatype.aether.artifact.Artifact pomArtifact = new SubArtifact( mainArtifact, "", "pom" );
|
||||
org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact( mainArtifact, "", "pom" );
|
||||
pomArtifact = pomArtifact.setFile( ( (ProjectArtifactMetadata) metadata ).getFile() );
|
||||
request.addArtifact( pomArtifact );
|
||||
}
|
||||
|
@ -126,8 +126,10 @@ public class DefaultArtifactDeployer
|
|||
if ( deploymentRepository instanceof DefaultArtifactRepository
|
||||
&& deploymentRepository.getAuthentication() == null )
|
||||
{
|
||||
remoteRepo.setAuthentication( session.getAuthenticationSelector().getAuthentication( remoteRepo ) );
|
||||
remoteRepo.setProxy( session.getProxySelector().getProxy( remoteRepo ) );
|
||||
RemoteRepository.Builder builder = new RemoteRepository.Builder( remoteRepo );
|
||||
builder.setAuthentication( session.getAuthenticationSelector().getAuthentication( remoteRepo ) );
|
||||
builder.setProxy( session.getProxySelector().getProxy( remoteRepo ) );
|
||||
remoteRepo = builder.build();
|
||||
}
|
||||
request.setRepository( remoteRepo );
|
||||
|
||||
|
|
|
@ -36,12 +36,12 @@ import org.apache.maven.project.artifact.ProjectArtifactMetadata;
|
|||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.installation.InstallRequest;
|
||||
import org.sonatype.aether.installation.InstallationException;
|
||||
import org.sonatype.aether.util.DefaultRequestTrace;
|
||||
import org.sonatype.aether.util.artifact.SubArtifact;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RequestTrace;
|
||||
import org.eclipse.aether.installation.InstallRequest;
|
||||
import org.eclipse.aether.installation.InstallationException;
|
||||
import org.eclipse.aether.util.artifact.SubArtifact;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
@ -77,9 +77,9 @@ public class DefaultArtifactInstaller
|
|||
|
||||
InstallRequest request = new InstallRequest();
|
||||
|
||||
request.setTrace( DefaultRequestTrace.newChild( null, legacySupport.getSession().getCurrentProject() ) );
|
||||
request.setTrace( RequestTrace.newChild( null, legacySupport.getSession().getCurrentProject() ) );
|
||||
|
||||
org.sonatype.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact( artifact );
|
||||
org.eclipse.aether.artifact.Artifact mainArtifact = RepositoryUtils.toArtifact( artifact );
|
||||
mainArtifact = mainArtifact.setFile( source );
|
||||
request.addArtifact( mainArtifact );
|
||||
|
||||
|
@ -87,7 +87,7 @@ public class DefaultArtifactInstaller
|
|||
{
|
||||
if ( metadata instanceof ProjectArtifactMetadata )
|
||||
{
|
||||
org.sonatype.aether.artifact.Artifact pomArtifact = new SubArtifact( mainArtifact, "", "pom" );
|
||||
org.eclipse.aether.artifact.Artifact pomArtifact = new SubArtifact( mainArtifact, "", "pom" );
|
||||
pomArtifact = pomArtifact.setFile( ( (ProjectArtifactMetadata) metadata ).getFile() );
|
||||
request.addArtifact( pomArtifact );
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ import org.apache.maven.plugin.LegacySupport;
|
|||
import org.apache.maven.repository.RepositorySystem;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
|
||||
/**
|
||||
* @author jdcasey
|
||||
|
|
|
@ -20,13 +20,17 @@ package org.apache.maven.artifact.repository.metadata;
|
|||
*/
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.maven.artifact.metadata.ArtifactMetadata;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.DefaultArtifactRepository;
|
||||
import org.codehaus.plexus.util.FileUtils;
|
||||
import org.sonatype.aether.RepositoryException;
|
||||
import org.sonatype.aether.metadata.MergeableMetadata;
|
||||
import org.eclipse.aether.RepositoryException;
|
||||
import org.eclipse.aether.metadata.AbstractMetadata;
|
||||
import org.eclipse.aether.metadata.MergeableMetadata;
|
||||
import org.eclipse.aether.metadata.Metadata;
|
||||
|
||||
/**
|
||||
* <strong>Warning:</strong> This is an internal utility class that is only public for technical reasons, it is not part
|
||||
|
@ -35,6 +39,7 @@ import org.sonatype.aether.metadata.MergeableMetadata;
|
|||
* @author Benjamin Bentmann
|
||||
*/
|
||||
public final class MetadataBridge
|
||||
extends AbstractMetadata
|
||||
implements MergeableMetadata
|
||||
{
|
||||
|
||||
|
@ -126,6 +131,17 @@ public final class MetadataBridge
|
|||
}
|
||||
}
|
||||
|
||||
public Map<String, String> getProperties()
|
||||
{
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Metadata setProperties( Map<String, String> properties )
|
||||
{
|
||||
return this;
|
||||
}
|
||||
|
||||
@SuppressWarnings( "deprecation" )
|
||||
static class MetadataRepository
|
||||
extends DefaultArtifactRepository
|
||||
|
|
|
@ -60,11 +60,11 @@ import org.codehaus.plexus.component.annotations.Component;
|
|||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.LocalRepositoryManager;
|
||||
import org.sonatype.aether.resolution.ArtifactRequest;
|
||||
import org.sonatype.aether.resolution.ArtifactResult;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.LocalRepositoryManager;
|
||||
import org.eclipse.aether.resolution.ArtifactRequest;
|
||||
import org.eclipse.aether.resolution.ArtifactResult;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
@ -220,9 +220,9 @@ public class DefaultArtifactResolver
|
|||
|
||||
result = repoSystem.resolveArtifact( session, artifactRequest );
|
||||
}
|
||||
catch ( org.sonatype.aether.resolution.ArtifactResolutionException e )
|
||||
catch ( org.eclipse.aether.resolution.ArtifactResolutionException e )
|
||||
{
|
||||
if ( e.getCause() instanceof org.sonatype.aether.transfer.ArtifactNotFoundException )
|
||||
if ( e.getCause() instanceof org.eclipse.aether.transfer.ArtifactNotFoundException )
|
||||
{
|
||||
throw new ArtifactNotFoundException( e.getMessage(), artifact, remoteRepositories, e );
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ import org.apache.maven.plugin.LegacySupport;
|
|||
import org.apache.maven.repository.RepositorySystem;
|
||||
import org.codehaus.plexus.PlexusContainer;
|
||||
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
|
||||
// This class needs to stick around because it was exposed the the remote resources plugin started using it instead of
|
||||
// getting the repositories from the project.
|
||||
|
|
|
@ -73,10 +73,11 @@ import org.codehaus.plexus.component.annotations.Requirement;
|
|||
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.AuthenticationSelector;
|
||||
import org.sonatype.aether.repository.ProxySelector;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.AuthenticationContext;
|
||||
import org.eclipse.aether.repository.AuthenticationSelector;
|
||||
import org.eclipse.aether.repository.ProxySelector;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
@ -478,7 +479,7 @@ public class LegacyRepositorySystem
|
|||
{
|
||||
if ( session != null )
|
||||
{
|
||||
org.sonatype.aether.repository.MirrorSelector selector = session.getMirrorSelector();
|
||||
org.eclipse.aether.repository.MirrorSelector selector = session.getMirrorSelector();
|
||||
if ( selector != null )
|
||||
{
|
||||
RemoteRepository repo = selector.getMirror( RepositoryUtils.toRepo( repository ) );
|
||||
|
@ -583,13 +584,18 @@ public class LegacyRepositorySystem
|
|||
AuthenticationSelector selector = session.getAuthenticationSelector();
|
||||
if ( selector != null )
|
||||
{
|
||||
org.sonatype.aether.repository.Authentication auth =
|
||||
selector.getAuthentication( RepositoryUtils.toRepo( repository ) );
|
||||
RemoteRepository repo = RepositoryUtils.toRepo( repository );
|
||||
org.eclipse.aether.repository.Authentication auth = selector.getAuthentication( repo );
|
||||
if ( auth != null )
|
||||
{
|
||||
Authentication result = new Authentication( auth.getUsername(), auth.getPassword() );
|
||||
result.setPrivateKey( auth.getPrivateKeyFile() );
|
||||
result.setPassphrase( auth.getPassphrase() );
|
||||
repo = new RemoteRepository.Builder( repo ).setAuthentication( auth ).build();
|
||||
AuthenticationContext authCtx = AuthenticationContext.forRepository( session, repo );
|
||||
Authentication result =
|
||||
new Authentication( authCtx.get( AuthenticationContext.USERNAME ),
|
||||
authCtx.get( AuthenticationContext.PASSWORD ) );
|
||||
result.setPrivateKey( authCtx.get( AuthenticationContext.PRIVATE_KEY_PATH ) );
|
||||
result.setPassphrase( authCtx.get( AuthenticationContext.PRIVATE_KEY_PASSPHRASE ) );
|
||||
authCtx.close();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@ -688,7 +694,8 @@ public class LegacyRepositorySystem
|
|||
ProxySelector selector = session.getProxySelector();
|
||||
if ( selector != null )
|
||||
{
|
||||
org.sonatype.aether.repository.Proxy proxy = selector.getProxy( RepositoryUtils.toRepo( repository ) );
|
||||
RemoteRepository repo = RepositoryUtils.toRepo( repository );
|
||||
org.eclipse.aether.repository.Proxy proxy = selector.getProxy( repo );
|
||||
if ( proxy != null )
|
||||
{
|
||||
Proxy p = new Proxy();
|
||||
|
@ -697,8 +704,13 @@ public class LegacyRepositorySystem
|
|||
p.setPort( proxy.getPort() );
|
||||
if ( proxy.getAuthentication() != null )
|
||||
{
|
||||
p.setUserName( proxy.getAuthentication().getUsername() );
|
||||
p.setPassword( proxy.getAuthentication().getPassword() );
|
||||
repo = new RemoteRepository.Builder( repo ).setProxy( proxy ).build();
|
||||
AuthenticationContext authCtx = AuthenticationContext.forProxy( session, repo );
|
||||
p.setUserName( authCtx.get( AuthenticationContext.USERNAME ) );
|
||||
p.setPassword( authCtx.get( AuthenticationContext.PASSWORD ) );
|
||||
p.setNtlmDomain( authCtx.get( AuthenticationContext.NTLM_DOMAIN ) );
|
||||
p.setNtlmHost( authCtx.get( AuthenticationContext.NTLM_WORKSTATION ) );
|
||||
authCtx.close();
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
|
|
@ -36,26 +36,30 @@ import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
|||
import org.apache.maven.execution.DefaultMavenExecutionRequest;
|
||||
import org.apache.maven.execution.DefaultMavenExecutionResult;
|
||||
import org.apache.maven.execution.MavenSession;
|
||||
import org.codehaus.plexus.ContainerConfiguration;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.collection.DependencyGraphTransformer;
|
||||
import org.sonatype.aether.collection.DependencyManager;
|
||||
import org.sonatype.aether.collection.DependencySelector;
|
||||
import org.sonatype.aether.collection.DependencyTraverser;
|
||||
import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.util.DefaultRepositorySystemSession;
|
||||
import org.sonatype.aether.util.graph.manager.ClassicDependencyManager;
|
||||
import org.sonatype.aether.util.graph.selector.AndDependencySelector;
|
||||
import org.sonatype.aether.util.graph.selector.ExclusionDependencySelector;
|
||||
import org.sonatype.aether.util.graph.selector.OptionalDependencySelector;
|
||||
import org.sonatype.aether.util.graph.selector.ScopeDependencySelector;
|
||||
import org.sonatype.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
|
||||
import org.sonatype.aether.util.graph.transformer.NearestVersionConflictResolver;
|
||||
import org.sonatype.aether.util.graph.transformer.ConflictMarker;
|
||||
import org.sonatype.aether.util.graph.transformer.JavaDependencyContextRefiner;
|
||||
import org.sonatype.aether.util.graph.transformer.JavaEffectiveScopeCalculator;
|
||||
import org.sonatype.aether.util.graph.traverser.FatArtifactTraverser;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.collection.DependencyGraphTransformer;
|
||||
import org.eclipse.aether.collection.DependencyManager;
|
||||
import org.eclipse.aether.collection.DependencySelector;
|
||||
import org.eclipse.aether.collection.DependencyTraverser;
|
||||
import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
|
||||
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.OptionalDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.ScopeDependencySelector;
|
||||
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
|
||||
import org.eclipse.aether.util.graph.transformer.ConflictResolver;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaScopeDeriver;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaScopeSelector;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner;
|
||||
import org.eclipse.aether.util.graph.transformer.NearestVersionSelector;
|
||||
import org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector;
|
||||
import org.eclipse.aether.util.graph.traverser.FatArtifactTraverser;
|
||||
import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:jason@maven.org">Jason van Zyl </a>
|
||||
|
@ -67,6 +71,13 @@ public abstract class AbstractArtifactComponentTestCase
|
|||
|
||||
protected ArtifactRepositoryFactory artifactRepositoryFactory;
|
||||
|
||||
@Override
|
||||
protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration )
|
||||
{
|
||||
super.customizeContainerConfiguration( containerConfiguration );
|
||||
containerConfiguration.setAutoWiring( true );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp()
|
||||
throws Exception
|
||||
|
@ -331,8 +342,7 @@ public abstract class AbstractArtifactComponentTestCase
|
|||
throws Exception
|
||||
{
|
||||
DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
|
||||
session.setIgnoreMissingArtifactDescriptor( true );
|
||||
session.setIgnoreInvalidArtifactDescriptor( true );
|
||||
session.setArtifactDescriptorPolicy( new SimpleArtifactDescriptorPolicy( true, true ) );
|
||||
DependencyTraverser depTraverser = new FatArtifactTraverser();
|
||||
session.setDependencyTraverser( depTraverser );
|
||||
|
||||
|
@ -345,12 +355,13 @@ public abstract class AbstractArtifactComponentTestCase
|
|||
session.setDependencySelector( depFilter );
|
||||
|
||||
DependencyGraphTransformer transformer =
|
||||
new ChainedDependencyGraphTransformer( new ConflictMarker(), new JavaEffectiveScopeCalculator(),
|
||||
new NearestVersionConflictResolver(),
|
||||
new JavaDependencyContextRefiner() );
|
||||
new ConflictResolver( new NearestVersionSelector(), new JavaScopeSelector(),
|
||||
new SimpleOptionalitySelector(), new JavaScopeDeriver() );
|
||||
new ChainedDependencyGraphTransformer( transformer, new JavaDependencyContextRefiner() );
|
||||
session.setDependencyGraphTransformer( transformer );
|
||||
|
||||
session.setLocalRepositoryManager( new SimpleLocalRepositoryManager( localRepository().getBasedir() ) );
|
||||
LocalRepository localRepo = new LocalRepository( localRepository().getBasedir() );
|
||||
session.setLocalRepositoryManager( new SimpleLocalRepositoryManagerFactory().newInstance( session, localRepo ) );
|
||||
|
||||
return session;
|
||||
}
|
||||
|
|
|
@ -27,8 +27,10 @@ import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
|||
import org.apache.maven.model.building.ModelBuildingException;
|
||||
import org.apache.maven.model.building.ModelProblem;
|
||||
import org.apache.maven.repository.RepositorySystem;
|
||||
import org.apache.maven.repository.internal.MavenRepositorySystemSession;
|
||||
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
|
||||
import org.codehaus.plexus.ContainerConfiguration;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
@ -40,6 +42,13 @@ public abstract class AbstractMavenProjectTestCase
|
|||
|
||||
protected RepositorySystem repositorySystem;
|
||||
|
||||
@Override
|
||||
protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration )
|
||||
{
|
||||
super.customizeContainerConfiguration( containerConfiguration );
|
||||
containerConfiguration.setAutoWiring( true );
|
||||
}
|
||||
|
||||
protected void setUp()
|
||||
throws Exception
|
||||
{
|
||||
|
@ -166,7 +175,7 @@ public abstract class AbstractMavenProjectTestCase
|
|||
protected void initRepoSession( ProjectBuildingRequest request )
|
||||
{
|
||||
File localRepo = new File( request.getLocalRepository().getBasedir() );
|
||||
MavenRepositorySystemSession session = new MavenRepositorySystemSession( true );
|
||||
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
|
||||
session.setLocalRepositoryManager( new LegacyLocalRepositoryManager( localRepo ) );
|
||||
request.setRepositorySession( session );
|
||||
}
|
||||
|
|
|
@ -26,13 +26,13 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.impl.ArtifactResolver;
|
||||
import org.sonatype.aether.resolution.ArtifactRequest;
|
||||
import org.sonatype.aether.resolution.ArtifactResolutionException;
|
||||
import org.sonatype.aether.resolution.ArtifactResult;
|
||||
import org.sonatype.aether.transfer.ArtifactNotFoundException;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.impl.ArtifactResolver;
|
||||
import org.eclipse.aether.resolution.ArtifactRequest;
|
||||
import org.eclipse.aether.resolution.ArtifactResolutionException;
|
||||
import org.eclipse.aether.resolution.ArtifactResult;
|
||||
import org.eclipse.aether.transfer.ArtifactNotFoundException;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -21,22 +21,36 @@ package org.apache.maven.project;
|
|||
|
||||
import java.io.File;
|
||||
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
|
||||
import org.sonatype.aether.repository.LocalArtifactRequest;
|
||||
import org.sonatype.aether.repository.LocalArtifactResult;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.metadata.Metadata;
|
||||
import org.eclipse.aether.repository.LocalArtifactRegistration;
|
||||
import org.eclipse.aether.repository.LocalArtifactRequest;
|
||||
import org.eclipse.aether.repository.LocalArtifactResult;
|
||||
import org.eclipse.aether.repository.LocalMetadataRegistration;
|
||||
import org.eclipse.aether.repository.LocalMetadataRequest;
|
||||
import org.eclipse.aether.repository.LocalMetadataResult;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.repository.LocalRepositoryManager;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
*/
|
||||
public class LegacyLocalRepositoryManager
|
||||
extends SimpleLocalRepositoryManager
|
||||
implements LocalRepositoryManager
|
||||
{
|
||||
|
||||
private final LocalRepository repository;
|
||||
|
||||
public LegacyLocalRepositoryManager( File basedir )
|
||||
{
|
||||
super( basedir );
|
||||
this.repository = new LocalRepository( basedir.getAbsoluteFile(), "legacy" );
|
||||
}
|
||||
|
||||
public LocalRepository getRepository()
|
||||
{
|
||||
return repository;
|
||||
}
|
||||
|
||||
public String getPathForLocalArtifact( Artifact artifact )
|
||||
|
@ -59,17 +73,120 @@ public class LegacyLocalRepositoryManager
|
|||
return path.toString();
|
||||
}
|
||||
|
||||
public String getPathForRemoteArtifact( Artifact artifact, RemoteRepository repository, String context )
|
||||
{
|
||||
return getPathForLocalArtifact( artifact );
|
||||
}
|
||||
|
||||
public String getPathForLocalMetadata( Metadata metadata )
|
||||
{
|
||||
return getPath( metadata, "local" );
|
||||
}
|
||||
|
||||
public String getPathForRemoteMetadata( Metadata metadata, RemoteRepository repository, String context )
|
||||
{
|
||||
return getPath( metadata, getRepositoryKey( repository, context ) );
|
||||
}
|
||||
|
||||
String getRepositoryKey( RemoteRepository repository, String context )
|
||||
{
|
||||
return repository.getId();
|
||||
}
|
||||
|
||||
private String getPath( Metadata metadata, String repositoryKey )
|
||||
{
|
||||
StringBuilder path = new StringBuilder( 128 );
|
||||
|
||||
if ( metadata.getGroupId().length() > 0 )
|
||||
{
|
||||
path.append( metadata.getGroupId().replace( '.', '/' ) ).append( '/' );
|
||||
|
||||
if ( metadata.getArtifactId().length() > 0 )
|
||||
{
|
||||
path.append( metadata.getArtifactId() ).append( '/' );
|
||||
|
||||
if ( metadata.getVersion().length() > 0 )
|
||||
{
|
||||
path.append( metadata.getVersion() ).append( '/' );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
path.append( insertRepositoryKey( metadata.getType(), repositoryKey ) );
|
||||
|
||||
return path.toString();
|
||||
}
|
||||
|
||||
private String insertRepositoryKey( String filename, String repositoryKey )
|
||||
{
|
||||
String result;
|
||||
int idx = filename.indexOf( '.' );
|
||||
if ( idx < 0 )
|
||||
{
|
||||
result = filename + '-' + repositoryKey;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = filename.substring( 0, idx ) + '-' + repositoryKey + filename.substring( idx );
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public LocalArtifactResult find( RepositorySystemSession session, LocalArtifactRequest request )
|
||||
{
|
||||
String path = getPathForLocalArtifact( request.getArtifact() );
|
||||
File file = new File( getRepository().getBasedir(), path );
|
||||
|
||||
LocalArtifactResult result = new LocalArtifactResult( request );
|
||||
if ( file.isFile() )
|
||||
{
|
||||
result.setFile( file );
|
||||
result.setAvailable( true );
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void add( RepositorySystemSession session, LocalArtifactRegistration request )
|
||||
{
|
||||
// noop
|
||||
}
|
||||
|
||||
public LocalMetadataResult find( RepositorySystemSession session, LocalMetadataRequest request )
|
||||
{
|
||||
LocalMetadataResult result = new LocalMetadataResult( request );
|
||||
|
||||
String path;
|
||||
|
||||
Metadata metadata = request.getMetadata();
|
||||
String context = request.getContext();
|
||||
RemoteRepository remote = request.getRepository();
|
||||
|
||||
if ( remote != null )
|
||||
{
|
||||
path = getPathForRemoteMetadata( metadata, remote, context );
|
||||
}
|
||||
else
|
||||
{
|
||||
path = getPathForLocalMetadata( metadata );
|
||||
}
|
||||
|
||||
File file = new File( getRepository().getBasedir(), path );
|
||||
if ( file.isFile() )
|
||||
{
|
||||
result.setFile( file );
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void add( RepositorySystemSession session, LocalMetadataRegistration request )
|
||||
{
|
||||
// noop
|
||||
}
|
||||
|
||||
public String toString()
|
||||
{
|
||||
return String.valueOf( getRepository() );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@ import java.util.Iterator;
|
|||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.repository.RepositorySystem;
|
||||
import org.apache.maven.repository.internal.DefaultArtifactDescriptorReader;
|
||||
import org.sonatype.aether.impl.ArtifactDescriptorReader;
|
||||
import org.sonatype.aether.impl.ArtifactResolver;
|
||||
import org.eclipse.aether.impl.ArtifactDescriptorReader;
|
||||
import org.eclipse.aether.impl.ArtifactResolver;
|
||||
|
||||
public class ProjectClasspathTest
|
||||
extends AbstractMavenProjectTestCase
|
||||
|
|
|
@ -32,9 +32,11 @@ import org.apache.maven.model.Repository;
|
|||
import org.apache.maven.model.RepositoryPolicy;
|
||||
import org.apache.maven.plugin.LegacySupport;
|
||||
import org.apache.maven.repository.RepositorySystem;
|
||||
import org.codehaus.plexus.ContainerConfiguration;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
import org.sonatype.aether.impl.internal.SimpleLocalRepositoryManager;
|
||||
import org.sonatype.aether.util.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.internal.impl.SimpleLocalRepositoryManagerFactory;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
|
||||
/**
|
||||
* Tests {@link LegacyRepositorySystem}.
|
||||
|
@ -48,6 +50,13 @@ public class LegacyRepositorySystemTest
|
|||
|
||||
private ResolutionErrorHandler resolutionErrorHandler;
|
||||
|
||||
@Override
|
||||
protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration )
|
||||
{
|
||||
super.customizeContainerConfiguration( containerConfiguration );
|
||||
containerConfiguration.setAutoWiring( true );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp()
|
||||
throws Exception
|
||||
|
@ -114,7 +123,8 @@ public class LegacyRepositorySystemTest
|
|||
.setLocalRepository( getLocalRepository() );
|
||||
|
||||
DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
|
||||
session.setLocalRepositoryManager( new SimpleLocalRepositoryManager( request.getLocalRepository().getBasedir() ) );
|
||||
LocalRepository localRepo = new LocalRepository( request.getLocalRepository().getBasedir() );
|
||||
session.setLocalRepositoryManager( new SimpleLocalRepositoryManagerFactory().newInstance( session, localRepo ) );
|
||||
LegacySupport legacySupport = lookup( LegacySupport.class );
|
||||
legacySupport.setSession( new MavenSession( getContainer(), session, new DefaultMavenExecutionRequest(),
|
||||
new DefaultMavenExecutionResult() ) );
|
||||
|
|
|
@ -22,6 +22,7 @@ import org.apache.maven.artifact.repository.ArtifactRepository;
|
|||
import org.apache.maven.artifact.repository.Authentication;
|
||||
import org.apache.maven.repository.RepositorySystem;
|
||||
import org.apache.maven.settings.Server;
|
||||
import org.codehaus.plexus.ContainerConfiguration;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
|
||||
/**
|
||||
|
@ -34,6 +35,13 @@ public class LegacyRepositorySystemTest
|
|||
{
|
||||
private RepositorySystem repositorySystem;
|
||||
|
||||
@Override
|
||||
protected void customizeContainerConfiguration( ContainerConfiguration containerConfiguration )
|
||||
{
|
||||
super.customizeContainerConfiguration( containerConfiguration );
|
||||
containerConfiguration.setAutoWiring( true );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setUp()
|
||||
throws Exception
|
||||
|
|
|
@ -61,7 +61,7 @@ under the License.
|
|||
<field-name>legacySupport</field-name>
|
||||
</requirement>
|
||||
<requirement>
|
||||
<role>org.sonatype.aether.RepositorySystem</role>
|
||||
<role>org.eclipse.aether.RepositorySystem</role>
|
||||
<role-hint>default</role-hint>
|
||||
<field-name>repoSystem</field-name>
|
||||
</requirement>
|
||||
|
|
|
@ -59,15 +59,15 @@
|
|||
<artifactId>maven-aether-provider</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-impl</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.sonatype.aether</groupId>
|
||||
<groupId>org.eclipse.aether</groupId>
|
||||
<artifactId>aether-util</artifactId>
|
||||
</dependency>
|
||||
<!-- Plexus -->
|
||||
|
|
|
@ -62,7 +62,6 @@ import org.apache.maven.project.ProjectBuildingResult;
|
|||
import org.apache.maven.project.ProjectSorter;
|
||||
import org.apache.maven.repository.DelegatingLocalArtifactRepository;
|
||||
import org.apache.maven.repository.LocalRepositoryNotAccessibleException;
|
||||
import org.apache.maven.repository.internal.MavenRepositorySystemSession;
|
||||
import org.apache.maven.settings.Mirror;
|
||||
import org.apache.maven.settings.Proxy;
|
||||
import org.apache.maven.settings.Server;
|
||||
|
@ -80,20 +79,40 @@ import org.codehaus.plexus.util.IOUtil;
|
|||
import org.codehaus.plexus.util.StringUtils;
|
||||
import org.codehaus.plexus.util.dag.CycleDetectedException;
|
||||
import org.codehaus.plexus.util.xml.Xpp3Dom;
|
||||
import org.sonatype.aether.ConfigurationProperties;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.Authentication;
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.repository.NoLocalRepositoryManagerException;
|
||||
import org.sonatype.aether.repository.RepositoryPolicy;
|
||||
import org.sonatype.aether.repository.WorkspaceReader;
|
||||
import org.sonatype.aether.spi.localrepo.LocalRepositoryManagerFactory;
|
||||
import org.sonatype.aether.util.DefaultRepositorySystemSession;
|
||||
import org.sonatype.aether.util.repository.ChainedWorkspaceReader;
|
||||
import org.sonatype.aether.util.repository.DefaultAuthenticationSelector;
|
||||
import org.sonatype.aether.util.repository.DefaultMirrorSelector;
|
||||
import org.sonatype.aether.util.repository.DefaultProxySelector;
|
||||
import org.eclipse.aether.ConfigurationProperties;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.collection.DependencyGraphTransformer;
|
||||
import org.eclipse.aether.collection.DependencyManager;
|
||||
import org.eclipse.aether.collection.DependencySelector;
|
||||
import org.eclipse.aether.collection.DependencyTraverser;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.repository.NoLocalRepositoryManagerException;
|
||||
import org.eclipse.aether.repository.RepositoryPolicy;
|
||||
import org.eclipse.aether.repository.WorkspaceReader;
|
||||
import org.eclipse.aether.resolution.ResolutionErrorPolicy;
|
||||
import org.eclipse.aether.spi.localrepo.LocalRepositoryManagerFactory;
|
||||
import org.eclipse.aether.util.graph.manager.ClassicDependencyManager;
|
||||
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.ExclusionDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.OptionalDependencySelector;
|
||||
import org.eclipse.aether.util.graph.selector.ScopeDependencySelector;
|
||||
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
|
||||
import org.eclipse.aether.util.graph.transformer.ConflictResolver;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaScopeDeriver;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaScopeSelector;
|
||||
import org.eclipse.aether.util.graph.transformer.JavaDependencyContextRefiner;
|
||||
import org.eclipse.aether.util.graph.transformer.NearestVersionSelector;
|
||||
import org.eclipse.aether.util.graph.transformer.SimpleOptionalitySelector;
|
||||
import org.eclipse.aether.util.graph.traverser.FatArtifactTraverser;
|
||||
import org.eclipse.aether.util.repository.AuthenticationBuilder;
|
||||
import org.eclipse.aether.util.repository.ChainedWorkspaceReader;
|
||||
import org.eclipse.aether.util.repository.DefaultAuthenticationSelector;
|
||||
import org.eclipse.aether.util.repository.DefaultMirrorSelector;
|
||||
import org.eclipse.aether.util.repository.DefaultProxySelector;
|
||||
import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
|
||||
import org.eclipse.aether.util.repository.SimpleResolutionErrorPolicy;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
@ -259,6 +278,8 @@ public class DefaultMaven
|
|||
return processResult( result, e );
|
||||
}
|
||||
|
||||
repoSession.setReadOnly();
|
||||
|
||||
ClassLoader originalClassLoader = Thread.currentThread().getContextClassLoader();
|
||||
try
|
||||
{
|
||||
|
@ -326,10 +347,12 @@ public class DefaultMaven
|
|||
|
||||
public RepositorySystemSession newRepositorySession( MavenExecutionRequest request )
|
||||
{
|
||||
MavenRepositorySystemSession session = new MavenRepositorySystemSession( false );
|
||||
DefaultRepositorySystemSession session = new DefaultRepositorySystemSession();
|
||||
|
||||
session.setCache( request.getRepositoryCache() );
|
||||
|
||||
session.setArtifactDescriptorPolicy( new SimpleArtifactDescriptorPolicy( true, true ) );
|
||||
|
||||
Map<Object, Object> configProps = new LinkedHashMap<Object, Object>();
|
||||
configProps.put( ConfigurationProperties.USER_AGENT, getUserAgent() );
|
||||
configProps.put( ConfigurationProperties.INTERACTIVE, Boolean.valueOf( request.isInteractiveMode() ) );
|
||||
|
@ -351,8 +374,11 @@ public class DefaultMaven
|
|||
session.setUpdatePolicy( null );
|
||||
}
|
||||
|
||||
session.setNotFoundCachingEnabled( request.isCacheNotFound() );
|
||||
session.setTransferErrorCachingEnabled( request.isCacheTransferError() );
|
||||
int errorPolicy = 0;
|
||||
errorPolicy |= request.isCacheNotFound() ? ResolutionErrorPolicy.CACHE_NOT_FOUND : 0;
|
||||
errorPolicy |= request.isCacheTransferError() ? ResolutionErrorPolicy.CACHE_TRANSFER_ERROR : 0;
|
||||
session.setResolutionErrorPolicy( new SimpleResolutionErrorPolicy( errorPolicy, errorPolicy
|
||||
| ResolutionErrorPolicy.CACHE_NOT_FOUND ) );
|
||||
|
||||
session.setArtifactTypeRegistry( RepositoryUtils.newArtifactTypeRegistry( artifactHandlerManager ) );
|
||||
|
||||
|
@ -363,18 +389,18 @@ public class DefaultMaven
|
|||
logger.warn( "Disabling enhanced local repository: using legacy is stronlgy discouraged to ensure build reproducibility." );
|
||||
try
|
||||
{
|
||||
session.setLocalRepositoryManager( simpleLocalRepositoryManagerFactory.newInstance( localRepo ) );
|
||||
session.setLocalRepositoryManager( simpleLocalRepositoryManagerFactory.newInstance( session, localRepo ) );
|
||||
}
|
||||
catch ( NoLocalRepositoryManagerException e )
|
||||
{
|
||||
|
||||
logger.warn( "Failed to configure legacy local repository: back to default" );
|
||||
session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( localRepo ) );
|
||||
session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( session, localRepo ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( localRepo ) );
|
||||
session.setLocalRepositoryManager( repoSystem.newLocalRepositoryManager( session, localRepo ) );
|
||||
}
|
||||
|
||||
if ( request.getWorkspaceReader() != null )
|
||||
|
@ -410,19 +436,21 @@ public class DefaultMaven
|
|||
DefaultProxySelector proxySelector = new DefaultProxySelector();
|
||||
for ( Proxy proxy : decrypted.getProxies() )
|
||||
{
|
||||
Authentication proxyAuth = new Authentication( proxy.getUsername(), proxy.getPassword() );
|
||||
proxySelector.add( new org.sonatype.aether.repository.Proxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(),
|
||||
proxyAuth ), proxy.getNonProxyHosts() );
|
||||
AuthenticationBuilder authBuilder = new AuthenticationBuilder();
|
||||
authBuilder.addUsername( proxy.getUsername() ).addPassword( proxy.getPassword() );
|
||||
proxySelector.add( new org.eclipse.aether.repository.Proxy( proxy.getProtocol(), proxy.getHost(),
|
||||
proxy.getPort(), authBuilder.build() ),
|
||||
proxy.getNonProxyHosts() );
|
||||
}
|
||||
session.setProxySelector( proxySelector );
|
||||
|
||||
DefaultAuthenticationSelector authSelector = new DefaultAuthenticationSelector();
|
||||
for ( Server server : decrypted.getServers() )
|
||||
{
|
||||
Authentication auth =
|
||||
new Authentication( server.getUsername(), server.getPassword(), server.getPrivateKey(),
|
||||
server.getPassphrase() );
|
||||
authSelector.add( server.getId(), auth );
|
||||
AuthenticationBuilder authBuilder = new AuthenticationBuilder();
|
||||
authBuilder.addUsername( server.getUsername() ).addPassword( server.getPassword() );
|
||||
authBuilder.addPrivateKey( server.getPrivateKey(), server.getPassphrase() );
|
||||
authSelector.add( server.getId(), authBuilder.build() );
|
||||
|
||||
if ( server.getConfiguration() != null )
|
||||
{
|
||||
|
@ -445,13 +473,30 @@ public class DefaultMaven
|
|||
}
|
||||
session.setAuthenticationSelector( authSelector );
|
||||
|
||||
DependencyTraverser depTraverser = new FatArtifactTraverser();
|
||||
session.setDependencyTraverser( depTraverser );
|
||||
|
||||
DependencyManager depManager = new ClassicDependencyManager();
|
||||
session.setDependencyManager( depManager );
|
||||
|
||||
DependencySelector depFilter =
|
||||
new AndDependencySelector( new ScopeDependencySelector( "test", "provided" ), new OptionalDependencySelector(),
|
||||
new ExclusionDependencySelector() );
|
||||
session.setDependencySelector( depFilter );
|
||||
|
||||
DependencyGraphTransformer transformer =
|
||||
new ConflictResolver( new NearestVersionSelector(), new JavaScopeSelector(),
|
||||
new SimpleOptionalitySelector(), new JavaScopeDeriver() );
|
||||
transformer = new ChainedDependencyGraphTransformer( transformer, new JavaDependencyContextRefiner() );
|
||||
session.setDependencyGraphTransformer( transformer );
|
||||
|
||||
session.setTransferListener( request.getTransferListener() );
|
||||
|
||||
session.setRepositoryListener( eventSpyDispatcher.chainListener( new LoggingRepositoryListener( logger ) ) );
|
||||
|
||||
session.setUserProps( request.getUserProperties() );
|
||||
session.setSystemProps( request.getSystemProperties() );
|
||||
session.setConfigProps( configProps );
|
||||
session.setUserProperties( request.getUserProperties() );
|
||||
session.setSystemProperties( request.getSystemProperties() );
|
||||
session.setConfigProperties( configProps );
|
||||
|
||||
return session;
|
||||
}
|
||||
|
|
|
@ -22,9 +22,9 @@ package org.apache.maven;
|
|||
import java.io.FileNotFoundException;
|
||||
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.sonatype.aether.AbstractRepositoryListener;
|
||||
import org.sonatype.aether.RepositoryEvent;
|
||||
import org.sonatype.aether.transfer.MetadataNotFoundException;
|
||||
import org.eclipse.aether.AbstractRepositoryListener;
|
||||
import org.eclipse.aether.RepositoryEvent;
|
||||
import org.eclipse.aether.transfer.MetadataNotFoundException;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -21,9 +21,9 @@ package org.apache.maven;
|
|||
|
||||
import org.apache.maven.artifact.ArtifactUtils;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.repository.WorkspaceReader;
|
||||
import org.sonatype.aether.repository.WorkspaceRepository;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.repository.WorkspaceReader;
|
||||
import org.eclipse.aether.repository.WorkspaceRepository;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
@ -43,9 +43,9 @@ import java.util.Map;
|
|||
class ReactorReader
|
||||
implements WorkspaceReader
|
||||
{
|
||||
private static final Collection<String> JAR_LIKE_TYPES = Arrays.asList( "jar", "test-jar", "ejb-client" );
|
||||
private final static Collection<String> JAR_LIKE_TYPES = Arrays.asList( "jar", "test-jar", "ejb-client" );
|
||||
|
||||
private static final Collection<String> COMPILE_PHASE_TYPES = Arrays.asList( "jar", "ejb-client" );
|
||||
private final static Collection<String> COMPILE_PHASE_TYPES = Arrays.asList( "jar", "ejb-client" );
|
||||
|
||||
private Map<String, MavenProject> projectsByGAV;
|
||||
|
||||
|
@ -103,7 +103,7 @@ class ReactorReader
|
|||
}
|
||||
else
|
||||
{
|
||||
String type = artifact.getProperty( "type", "" );
|
||||
String type = artifact.getProperty( "type", "");
|
||||
if ( project.hasLifecyclePhase( "compile" ) && COMPILE_PHASE_TYPES.contains( type ) )
|
||||
{
|
||||
return new File( project.getBuild().getOutputDirectory() );
|
||||
|
|
|
@ -30,20 +30,21 @@ import org.apache.maven.artifact.handler.DefaultArtifactHandler;
|
|||
import org.apache.maven.artifact.handler.manager.ArtifactHandlerManager;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepositoryPolicy;
|
||||
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.DependencyFilter;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.sonatype.aether.graph.Exclusion;
|
||||
import org.sonatype.aether.repository.Authentication;
|
||||
import org.sonatype.aether.repository.Proxy;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.repository.RepositoryPolicy;
|
||||
import org.sonatype.aether.util.artifact.ArtifactProperties;
|
||||
import org.sonatype.aether.util.artifact.DefaultArtifact;
|
||||
import org.sonatype.aether.util.artifact.DefaultArtifactType;
|
||||
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.artifact.DefaultArtifact;
|
||||
import org.eclipse.aether.artifact.DefaultArtifactType;
|
||||
import org.eclipse.aether.graph.Dependency;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.graph.Exclusion;
|
||||
import org.eclipse.aether.repository.Authentication;
|
||||
import org.eclipse.aether.repository.Proxy;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.RepositoryPolicy;
|
||||
import org.eclipse.aether.util.repository.AuthenticationBuilder;
|
||||
|
||||
/**
|
||||
* <strong>Warning:</strong> This is an internal utility class that is only public for technical reasons, it is not part
|
||||
|
@ -197,12 +198,14 @@ public class RepositoryUtils
|
|||
RemoteRepository result = null;
|
||||
if ( repo != null )
|
||||
{
|
||||
result = new RemoteRepository( repo.getId(), getLayout( repo ), repo.getUrl() );
|
||||
result.setPolicy( true, toPolicy( repo.getSnapshots() ) );
|
||||
result.setPolicy( false, toPolicy( repo.getReleases() ) );
|
||||
result.setAuthentication( toAuthentication( repo.getAuthentication() ) );
|
||||
result.setProxy( toProxy( repo.getProxy() ) );
|
||||
result.setMirroredRepositories( toRepos( repo.getMirroredRepositories() ) );
|
||||
RemoteRepository.Builder builder =
|
||||
new RemoteRepository.Builder( repo.getId(), getLayout( repo ), repo.getUrl() );
|
||||
builder.setSnapshotPolicy( toPolicy( repo.getSnapshots() ) );
|
||||
builder.setReleasePolicy( toPolicy( repo.getReleases() ) );
|
||||
builder.setAuthentication( toAuthentication( repo.getAuthentication() ) );
|
||||
builder.setProxy( toProxy( repo.getProxy() ) );
|
||||
builder.setMirroredRepositories( toRepos( repo.getMirroredRepositories() ) );
|
||||
result = builder.build();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -247,8 +250,10 @@ public class RepositoryUtils
|
|||
Authentication result = null;
|
||||
if ( auth != null )
|
||||
{
|
||||
result =
|
||||
new Authentication( auth.getUsername(), auth.getPassword(), auth.getPrivateKey(), auth.getPassphrase() );
|
||||
AuthenticationBuilder authBuilder = new AuthenticationBuilder();
|
||||
authBuilder.addUsername( auth.getUsername() ).addPassword( auth.getPassword() );
|
||||
authBuilder.addPrivateKey( auth.getPrivateKey(), auth.getPassphrase() );
|
||||
result = authBuilder.build();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@ -258,8 +263,9 @@ public class RepositoryUtils
|
|||
Proxy result = null;
|
||||
if ( proxy != null )
|
||||
{
|
||||
Authentication auth = new Authentication( proxy.getUserName(), proxy.getPassword() );
|
||||
result = new Proxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), auth );
|
||||
AuthenticationBuilder authBuilder = new AuthenticationBuilder();
|
||||
authBuilder.addUsername( proxy.getUserName() ).addPassword( proxy.getPassword() );
|
||||
result = new Proxy( proxy.getProtocol(), proxy.getHost(), proxy.getPort(), authBuilder.build() );
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -29,21 +29,20 @@ import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
|||
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
|
||||
import org.apache.maven.artifact.repository.metadata.RepositoryMetadataStoreException;
|
||||
import org.apache.maven.repository.Proxy;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.metadata.Metadata;
|
||||
import org.sonatype.aether.repository.LocalArtifactRegistration;
|
||||
import org.sonatype.aether.repository.LocalArtifactRequest;
|
||||
import org.sonatype.aether.repository.LocalArtifactResult;
|
||||
import org.sonatype.aether.repository.LocalMetadataRegistration;
|
||||
import org.sonatype.aether.repository.LocalMetadataRequest;
|
||||
import org.sonatype.aether.repository.LocalMetadataResult;
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.repository.LocalRepositoryManager;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.util.DefaultRepositorySystemSession;
|
||||
import org.sonatype.aether.util.FilterRepositorySystemSession;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.metadata.Metadata;
|
||||
import org.eclipse.aether.repository.LocalArtifactRegistration;
|
||||
import org.eclipse.aether.repository.LocalArtifactRequest;
|
||||
import org.eclipse.aether.repository.LocalArtifactResult;
|
||||
import org.eclipse.aether.repository.LocalMetadataRegistration;
|
||||
import org.eclipse.aether.repository.LocalMetadataRequest;
|
||||
import org.eclipse.aether.repository.LocalMetadataResult;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.repository.LocalRepositoryManager;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* <strong>Warning:</strong> This is an internal utility class that is only public for technical reasons, it is not part
|
||||
|
@ -84,14 +83,7 @@ public class LegacyLocalRepositoryManager
|
|||
|
||||
final LocalRepositoryManager llrm = new LegacyLocalRepositoryManager( repository );
|
||||
|
||||
return new FilterRepositorySystemSession( session )
|
||||
{
|
||||
@Override
|
||||
public LocalRepositoryManager getLocalRepositoryManager()
|
||||
{
|
||||
return llrm;
|
||||
}
|
||||
};
|
||||
return new DefaultRepositorySystemSession( session ).setLocalRepositoryManager( llrm );
|
||||
}
|
||||
|
||||
private LegacyLocalRepositoryManager( ArtifactRepository delegate )
|
||||
|
|
|
@ -21,7 +21,7 @@ package org.apache.maven.classrealm;
|
|||
|
||||
import java.io.File;
|
||||
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -25,7 +25,7 @@ import java.util.Map;
|
|||
import org.apache.maven.model.Model;
|
||||
import org.apache.maven.model.Plugin;
|
||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* Manages the class realms used by Maven. <strong>Warning:</strong> This is an internal utility interface that is only
|
||||
|
|
|
@ -45,7 +45,7 @@ import org.codehaus.plexus.component.annotations.Requirement;
|
|||
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* Manages the class realms used by Maven. <strong>Warning:</strong> This is an internal utility class that is only
|
||||
|
@ -163,19 +163,19 @@ public class DefaultClassRealmManager
|
|||
imports.put( "org.apache.maven.wagon.resource", coreRealm );
|
||||
|
||||
// aether-api, aether-spi, aether-impl
|
||||
imports.put( "org.sonatype.aether.*", coreRealm );
|
||||
imports.put( "org.sonatype.aether.artifact", coreRealm );
|
||||
imports.put( "org.sonatype.aether.collection", coreRealm );
|
||||
imports.put( "org.sonatype.aether.deployment", coreRealm );
|
||||
imports.put( "org.sonatype.aether.graph", coreRealm );
|
||||
imports.put( "org.sonatype.aether.impl", coreRealm );
|
||||
imports.put( "org.sonatype.aether.installation", coreRealm );
|
||||
imports.put( "org.sonatype.aether.metadata", coreRealm );
|
||||
imports.put( "org.sonatype.aether.repository", coreRealm );
|
||||
imports.put( "org.sonatype.aether.resolution", coreRealm );
|
||||
imports.put( "org.sonatype.aether.spi", coreRealm );
|
||||
imports.put( "org.sonatype.aether.transfer", coreRealm );
|
||||
imports.put( "org.sonatype.aether.version", coreRealm );
|
||||
imports.put( "org.eclipse.aether.*", coreRealm );
|
||||
imports.put( "org.eclipse.aether.artifact", coreRealm );
|
||||
imports.put( "org.eclipse.aether.collection", coreRealm );
|
||||
imports.put( "org.eclipse.aether.deployment", coreRealm );
|
||||
imports.put( "org.eclipse.aether.graph", coreRealm );
|
||||
imports.put( "org.eclipse.aether.impl", coreRealm );
|
||||
imports.put( "org.eclipse.aether.installation", coreRealm );
|
||||
imports.put( "org.eclipse.aether.metadata", coreRealm );
|
||||
imports.put( "org.eclipse.aether.repository", coreRealm );
|
||||
imports.put( "org.eclipse.aether.resolution", coreRealm );
|
||||
imports.put( "org.eclipse.aether.spi", coreRealm );
|
||||
imports.put( "org.eclipse.aether.transfer", coreRealm );
|
||||
imports.put( "org.eclipse.aether.version", coreRealm );
|
||||
|
||||
// plexus-classworlds
|
||||
imports.put( "org.codehaus.plexus.classworlds", coreRealm );
|
||||
|
|
|
@ -62,7 +62,7 @@ public interface EventSpy
|
|||
* @see org.apache.maven.project.DependencyResolutionRequest
|
||||
* @see org.apache.maven.project.DependencyResolutionResultt
|
||||
* @see org.apache.maven.execution.ExecutionEvent
|
||||
* @see org.sonatype.aether.RepositoryEvent
|
||||
* @see org.eclipse.aether.RepositoryEvent
|
||||
*/
|
||||
void onEvent( Object event )
|
||||
throws Exception;
|
||||
|
|
|
@ -27,7 +27,7 @@ import org.apache.maven.execution.ExecutionListener;
|
|||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.sonatype.aether.RepositoryListener;
|
||||
import org.eclipse.aether.RepositoryListener;
|
||||
|
||||
/**
|
||||
* Dispatches callbacks to all registered eventspies.
|
||||
|
|
|
@ -19,9 +19,9 @@ package org.apache.maven.eventspy.internal;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.sonatype.aether.AbstractRepositoryListener;
|
||||
import org.sonatype.aether.RepositoryEvent;
|
||||
import org.sonatype.aether.RepositoryListener;
|
||||
import org.eclipse.aether.AbstractRepositoryListener;
|
||||
import org.eclipse.aether.RepositoryEvent;
|
||||
import org.eclipse.aether.RepositoryListener;
|
||||
|
||||
/**
|
||||
* Forwards repository events to eventspies.
|
||||
|
|
|
@ -32,10 +32,10 @@ import org.apache.maven.project.ProjectBuildingRequest;
|
|||
import org.apache.maven.settings.Mirror;
|
||||
import org.apache.maven.settings.Proxy;
|
||||
import org.apache.maven.settings.Server;
|
||||
import org.sonatype.aether.RepositoryCache;
|
||||
import org.sonatype.aether.repository.WorkspaceReader;
|
||||
import org.sonatype.aether.transfer.TransferListener;
|
||||
import org.sonatype.aether.util.DefaultRepositoryCache;
|
||||
import org.eclipse.aether.DefaultRepositoryCache;
|
||||
import org.eclipse.aether.RepositoryCache;
|
||||
import org.eclipse.aether.repository.WorkspaceReader;
|
||||
import org.eclipse.aether.transfer.TransferListener;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
|
|
@ -32,9 +32,9 @@ import org.apache.maven.settings.Mirror;
|
|||
import org.apache.maven.settings.Proxy;
|
||||
import org.apache.maven.settings.Server;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.sonatype.aether.RepositoryCache;
|
||||
import org.sonatype.aether.repository.WorkspaceReader;
|
||||
import org.sonatype.aether.transfer.TransferListener;
|
||||
import org.eclipse.aether.RepositoryCache;
|
||||
import org.eclipse.aether.repository.WorkspaceReader;
|
||||
import org.eclipse.aether.transfer.TransferListener;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
|
|
@ -36,7 +36,7 @@ import org.apache.maven.project.ProjectBuildingRequest;
|
|||
import org.apache.maven.settings.Settings;
|
||||
import org.codehaus.plexus.PlexusContainer;
|
||||
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
|
|
@ -44,11 +44,11 @@ import org.apache.maven.project.artifact.InvalidDependencyVersionException;
|
|||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.sonatype.aether.graph.Dependency;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.sonatype.aether.util.filter.AndDependencyFilter;
|
||||
import org.sonatype.aether.util.filter.ScopeDependencyFilter;
|
||||
import org.eclipse.aether.graph.Dependency;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.util.filter.AndDependencyFilter;
|
||||
import org.eclipse.aether.util.filter.ScopeDependencyFilter;
|
||||
|
||||
/**
|
||||
* Resolves dependencies for the artifacts in context of the lifecycle build
|
||||
|
@ -238,7 +238,7 @@ public class LifecycleDependencyResolver
|
|||
|
||||
for ( Dependency dependency : dependencies )
|
||||
{
|
||||
org.sonatype.aether.artifact.Artifact a = dependency.getArtifact();
|
||||
org.eclipse.aether.artifact.Artifact a = dependency.getArtifact();
|
||||
String key = ArtifactUtils.key( a.getGroupId(), a.getArtifactId(), a.getVersion() );
|
||||
if ( !projectKeys.contains( key ) )
|
||||
{
|
||||
|
@ -320,7 +320,7 @@ public class LifecycleDependencyResolver
|
|||
Dependency dependency = node.getDependency();
|
||||
if ( dependency != null )
|
||||
{
|
||||
org.sonatype.aether.artifact.Artifact a = dependency.getArtifact();
|
||||
org.eclipse.aether.artifact.Artifact a = dependency.getArtifact();
|
||||
String key = ArtifactUtils.key( a.getGroupId(), a.getArtifactId(), a.getVersion() );
|
||||
return !keys.contains( key );
|
||||
}
|
||||
|
|
|
@ -26,8 +26,8 @@ import org.apache.maven.model.Plugin;
|
|||
import org.apache.maven.plugin.descriptor.MojoDescriptor;
|
||||
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* @author Jason van Zyl
|
||||
|
|
|
@ -25,11 +25,11 @@ import java.util.List;
|
|||
import org.apache.maven.model.Dependency;
|
||||
import org.apache.maven.model.Exclusion;
|
||||
import org.apache.maven.model.Plugin;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.repository.RepositoryPolicy;
|
||||
import org.sonatype.aether.repository.WorkspaceReader;
|
||||
import org.sonatype.aether.repository.WorkspaceRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.RepositoryPolicy;
|
||||
import org.eclipse.aether.repository.WorkspaceReader;
|
||||
import org.eclipse.aether.repository.WorkspaceRepository;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -31,8 +31,8 @@ import org.apache.maven.project.MavenProject;
|
|||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
// TODO: the antrun plugin has its own configurator, the only plugin that does. might need to think about how that works
|
||||
// TODO: remove the coreArtifactFilterManager
|
||||
|
|
|
@ -29,7 +29,7 @@ import org.apache.maven.project.ExtensionDescriptor;
|
|||
import org.apache.maven.project.MavenProject;
|
||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* Default extension realm cache implementation. Assumes cached data does not change.
|
||||
|
|
|
@ -28,12 +28,12 @@ import java.util.Map;
|
|||
import org.apache.maven.model.Plugin;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.repository.WorkspaceRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.WorkspaceRepository;
|
||||
|
||||
/**
|
||||
* @author Igor Fedorenko
|
||||
|
|
|
@ -30,10 +30,10 @@ import org.apache.maven.plugin.descriptor.MojoDescriptor;
|
|||
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.repository.ComponentDescriptor;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.repository.WorkspaceRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.WorkspaceRepository;
|
||||
|
||||
/**
|
||||
* Caches raw plugin descriptors. A raw plugin descriptor is a descriptor that has just been extracted from the plugin
|
||||
|
|
|
@ -32,11 +32,11 @@ import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
|||
import org.codehaus.plexus.classworlds.realm.NoSuchRealmException;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.repository.WorkspaceRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.WorkspaceRepository;
|
||||
|
||||
/**
|
||||
* Default PluginCache implementation. Assumes cached data does not change.
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.util.List;
|
|||
import org.apache.maven.project.ExtensionDescriptor;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
|
||||
/**
|
||||
* Caches extension class realms. <strong>Warning:</strong> This is an internal utility interface that is only public
|
||||
|
|
|
@ -20,7 +20,7 @@ package org.apache.maven.plugin;
|
|||
*/
|
||||
|
||||
import org.apache.maven.execution.MavenSession;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
|
||||
/**
|
||||
* Helps to provide backward-compatibility with plugins that use legacy components. <strong>Warning:</strong> This is an
|
||||
|
|
|
@ -25,9 +25,9 @@ import org.apache.maven.execution.MavenSession;
|
|||
import org.apache.maven.model.Plugin;
|
||||
import org.apache.maven.plugin.descriptor.MojoDescriptor;
|
||||
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Provides basic services to manage Maven plugins and their mojos. This component is kept general in its design such
|
||||
|
|
|
@ -23,10 +23,10 @@ import java.util.List;
|
|||
|
||||
import org.apache.maven.model.Plugin;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Caches plugin artifacts. <strong>Warning:</strong> This is an internal utility interface that is only public for
|
||||
|
|
|
@ -23,8 +23,8 @@ import java.util.List;
|
|||
|
||||
import org.apache.maven.model.Plugin;
|
||||
import org.apache.maven.plugin.descriptor.PluginDescriptor;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Caches raw plugin descriptors. A raw plugin descriptor is a descriptor that has just been extracted from the plugin
|
||||
|
|
|
@ -26,9 +26,9 @@ import org.apache.maven.artifact.Artifact;
|
|||
import org.apache.maven.model.Plugin;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Caches plugin class realms. <strong>Warning:</strong> This is an internal utility interface that is only public for
|
||||
|
|
|
@ -23,8 +23,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||
import org.apache.maven.execution.MavenSession;
|
||||
import org.apache.maven.plugin.LegacySupport;
|
||||
import org.codehaus.plexus.component.annotations.Component;
|
||||
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
|
||||
/**
|
||||
* Helps to provide backward-compatibility with plugins that use legacy components. <strong>Warning:</strong> This is an
|
||||
|
|
|
@ -88,12 +88,12 @@ import org.codehaus.plexus.util.IOUtil;
|
|||
import org.codehaus.plexus.util.ReaderFactory;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
import org.codehaus.plexus.util.xml.Xpp3Dom;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.util.filter.AndDependencyFilter;
|
||||
import org.sonatype.aether.util.graph.PreorderNodeListGenerator;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.util.filter.AndDependencyFilter;
|
||||
import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator;
|
||||
|
||||
/**
|
||||
* Provides basic services to manage Maven plugins and their mojos. This component is kept general in its design such
|
||||
|
@ -143,7 +143,7 @@ public class DefaultMavenPluginManager
|
|||
|
||||
if ( pluginDescriptor == null )
|
||||
{
|
||||
org.sonatype.aether.artifact.Artifact artifact =
|
||||
org.eclipse.aether.artifact.Artifact artifact =
|
||||
pluginDependenciesResolver.resolve( plugin, repositories, session );
|
||||
|
||||
Artifact pluginArtifact = RepositoryUtils.toArtifact( artifact );
|
||||
|
@ -373,7 +373,7 @@ public class DefaultMavenPluginManager
|
|||
}
|
||||
}
|
||||
|
||||
List<org.sonatype.aether.artifact.Artifact> pluginArtifacts = nlg.getArtifacts( true );
|
||||
List<org.eclipse.aether.artifact.Artifact> pluginArtifacts = nlg.getArtifacts( true );
|
||||
|
||||
ClassRealm pluginRealm =
|
||||
classRealmManager.createPluginRealm( plugin, parent, null, foreignImports, pluginArtifacts );
|
||||
|
|
|
@ -31,35 +31,34 @@ import org.apache.maven.plugin.PluginResolutionException;
|
|||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.RequestTrace;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.collection.CollectRequest;
|
||||
import org.sonatype.aether.collection.DependencyCollectionException;
|
||||
import org.sonatype.aether.collection.DependencyGraphTransformer;
|
||||
import org.sonatype.aether.collection.DependencySelector;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.sonatype.aether.graph.DependencyVisitor;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
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.DependencyRequest;
|
||||
import org.sonatype.aether.resolution.DependencyResolutionException;
|
||||
import org.sonatype.aether.util.DefaultRepositorySystemSession;
|
||||
import org.sonatype.aether.util.DefaultRequestTrace;
|
||||
import org.sonatype.aether.util.FilterRepositorySystemSession;
|
||||
import org.sonatype.aether.util.artifact.DefaultArtifact;
|
||||
import org.sonatype.aether.util.artifact.JavaScopes;
|
||||
import org.sonatype.aether.util.filter.AndDependencyFilter;
|
||||
import org.sonatype.aether.util.filter.ExclusionsDependencyFilter;
|
||||
import org.sonatype.aether.util.filter.ScopeDependencyFilter;
|
||||
import org.sonatype.aether.util.graph.selector.AndDependencySelector;
|
||||
import org.sonatype.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RequestTrace;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.DefaultArtifact;
|
||||
import org.eclipse.aether.collection.CollectRequest;
|
||||
import org.eclipse.aether.collection.DependencyCollectionException;
|
||||
import org.eclipse.aether.collection.DependencyGraphTransformer;
|
||||
import org.eclipse.aether.collection.DependencySelector;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.graph.DependencyVisitor;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
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.DependencyRequest;
|
||||
import org.eclipse.aether.resolution.DependencyResolutionException;
|
||||
import org.eclipse.aether.util.artifact.JavaScopes;
|
||||
import org.eclipse.aether.util.filter.AndDependencyFilter;
|
||||
import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
|
||||
import org.eclipse.aether.util.filter.ScopeDependencyFilter;
|
||||
import org.eclipse.aether.util.graph.selector.AndDependencySelector;
|
||||
import org.eclipse.aether.util.graph.transformer.ChainedDependencyGraphTransformer;
|
||||
import org.eclipse.aether.util.repository.SimpleArtifactDescriptorPolicy;
|
||||
|
||||
/**
|
||||
* Assists in resolving the dependencies of a plugin. <strong>Warning:</strong> This is an internal utility class that
|
||||
|
@ -94,20 +93,14 @@ public class DefaultPluginDependenciesResolver
|
|||
public Artifact resolve( Plugin plugin, List<RemoteRepository> repositories, RepositorySystemSession session )
|
||||
throws PluginResolutionException
|
||||
{
|
||||
RequestTrace trace = DefaultRequestTrace.newChild( null, plugin );
|
||||
RequestTrace trace = RequestTrace.newChild( null, plugin );
|
||||
|
||||
Artifact pluginArtifact = toArtifact( plugin, session );
|
||||
|
||||
try
|
||||
{
|
||||
RepositorySystemSession pluginSession = new FilterRepositorySystemSession( session )
|
||||
{
|
||||
@Override
|
||||
public boolean isIgnoreMissingArtifactDescriptor()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
};
|
||||
DefaultRepositorySystemSession pluginSession = new DefaultRepositorySystemSession( session );
|
||||
pluginSession.setArtifactDescriptorPolicy( new SimpleArtifactDescriptorPolicy( true, false ) );
|
||||
|
||||
ArtifactDescriptorRequest request =
|
||||
new ArtifactDescriptorRequest( pluginArtifact, repositories, REPOSITORY_CONTEXT );
|
||||
|
@ -147,7 +140,7 @@ public class DefaultPluginDependenciesResolver
|
|||
List<RemoteRepository> repositories, RepositorySystemSession session )
|
||||
throws PluginResolutionException
|
||||
{
|
||||
RequestTrace trace = DefaultRequestTrace.newChild( null, plugin );
|
||||
RequestTrace trace = RequestTrace.newChild( null, plugin );
|
||||
|
||||
if ( pluginArtifact == null )
|
||||
{
|
||||
|
@ -179,10 +172,10 @@ public class DefaultPluginDependenciesResolver
|
|||
CollectRequest request = new CollectRequest();
|
||||
request.setRequestContext( REPOSITORY_CONTEXT );
|
||||
request.setRepositories( repositories );
|
||||
request.setRoot( new org.sonatype.aether.graph.Dependency( pluginArtifact, null ) );
|
||||
request.setRoot( new org.eclipse.aether.graph.Dependency( pluginArtifact, null ) );
|
||||
for ( Dependency dependency : plugin.getDependencies() )
|
||||
{
|
||||
org.sonatype.aether.graph.Dependency pluginDep =
|
||||
org.eclipse.aether.graph.Dependency pluginDep =
|
||||
RepositoryUtils.toDependency( dependency, session.getArtifactTypeRegistry() );
|
||||
if ( !JavaScopes.SYSTEM.equals( pluginDep.getScope() ) )
|
||||
{
|
||||
|
@ -194,7 +187,7 @@ public class DefaultPluginDependenciesResolver
|
|||
DependencyRequest depRequest = new DependencyRequest( request, resolutionFilter );
|
||||
depRequest.setTrace( trace );
|
||||
|
||||
request.setTrace( DefaultRequestTrace.newChild( trace, depRequest ) );
|
||||
request.setTrace( RequestTrace.newChild( trace, depRequest ) );
|
||||
|
||||
node = repoSystem.collectDependencies( pluginSession, request ).getRoot();
|
||||
|
||||
|
@ -228,23 +221,13 @@ public class DefaultPluginDependenciesResolver
|
|||
{
|
||||
StringBuilder buffer = new StringBuilder( 128 );
|
||||
buffer.append( indent );
|
||||
org.sonatype.aether.graph.Dependency dep = node.getDependency();
|
||||
org.eclipse.aether.graph.Dependency dep = node.getDependency();
|
||||
if ( dep != null )
|
||||
{
|
||||
org.sonatype.aether.artifact.Artifact art = dep.getArtifact();
|
||||
org.eclipse.aether.artifact.Artifact art = dep.getArtifact();
|
||||
|
||||
buffer.append( art );
|
||||
buffer.append( ':' ).append( dep.getScope() );
|
||||
|
||||
if ( node.getPremanagedScope() != null && !node.getPremanagedScope().equals( dep.getScope() ) )
|
||||
{
|
||||
buffer.append( " (scope managed from " ).append( node.getPremanagedScope() ).append( ")" );
|
||||
}
|
||||
|
||||
if ( node.getPremanagedVersion() != null && !node.getPremanagedVersion().equals( art.getVersion() ) )
|
||||
{
|
||||
buffer.append( " (version managed from " ).append( node.getPremanagedVersion() ).append( ")" );
|
||||
}
|
||||
}
|
||||
|
||||
logger.debug( buffer.toString() );
|
||||
|
|
|
@ -19,15 +19,15 @@ package org.apache.maven.plugin.internal;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.sonatype.aether.RepositoryException;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.collection.DependencyGraphTransformationContext;
|
||||
import org.sonatype.aether.collection.DependencyGraphTransformer;
|
||||
import org.sonatype.aether.graph.Dependency;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.sonatype.aether.util.artifact.DefaultArtifact;
|
||||
import org.sonatype.aether.util.artifact.JavaScopes;
|
||||
import org.sonatype.aether.util.graph.DefaultDependencyNode;
|
||||
import org.eclipse.aether.RepositoryException;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.artifact.DefaultArtifact;
|
||||
import org.eclipse.aether.collection.DependencyGraphTransformationContext;
|
||||
import org.eclipse.aether.collection.DependencyGraphTransformer;
|
||||
import org.eclipse.aether.graph.DefaultDependencyNode;
|
||||
import org.eclipse.aether.graph.Dependency;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.util.artifact.JavaScopes;
|
||||
|
||||
/**
|
||||
* Injects plexus-utils:1.1 into a plugin's class path if it doesn't already declare a dependency on plexus-utils. This
|
||||
|
|
|
@ -23,11 +23,11 @@ import java.util.List;
|
|||
|
||||
import org.apache.maven.model.Plugin;
|
||||
import org.apache.maven.plugin.PluginResolutionException;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Assists in resolving the dependencies of a plugin. <strong>Warning:</strong> This is an internal utility interface
|
||||
|
|
|
@ -19,10 +19,10 @@ package org.apache.maven.plugin.internal;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.collection.DependencyCollectionContext;
|
||||
import org.sonatype.aether.collection.DependencySelector;
|
||||
import org.sonatype.aether.graph.Dependency;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.collection.DependencyCollectionContext;
|
||||
import org.eclipse.aether.collection.DependencySelector;
|
||||
import org.eclipse.aether.graph.Dependency;
|
||||
|
||||
/**
|
||||
* Assists in detecting wagon providers brought into the plugin class path via legacy Maven core artifacts (e.g.
|
||||
|
|
|
@ -25,8 +25,8 @@ import java.util.List;
|
|||
import org.apache.maven.execution.MavenSession;
|
||||
import org.apache.maven.model.Model;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Collects settings required to resolve a plugin prefix.
|
||||
|
|
|
@ -21,8 +21,8 @@ package org.apache.maven.plugin.prefix;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
public class NoPluginFoundForPrefixException
|
||||
extends Exception
|
||||
|
|
|
@ -22,8 +22,8 @@ package org.apache.maven.plugin.prefix;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.maven.model.Model;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Collects settings required to resolve a plugin prefix.
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.apache.maven.plugin.prefix;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.sonatype.aether.repository.ArtifactRepository;
|
||||
import org.eclipse.aether.repository.ArtifactRepository;
|
||||
|
||||
/**
|
||||
* Describes the result of a plugin prefix resolution request.
|
||||
|
|
|
@ -38,20 +38,19 @@ import org.apache.maven.plugin.prefix.PluginPrefixResult;
|
|||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.sonatype.aether.RepositoryEvent.EventType;
|
||||
import org.sonatype.aether.RepositoryListener;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.RequestTrace;
|
||||
import org.sonatype.aether.repository.ArtifactRepository;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.repository.RepositoryPolicy;
|
||||
import org.sonatype.aether.resolution.MetadataRequest;
|
||||
import org.sonatype.aether.resolution.MetadataResult;
|
||||
import org.sonatype.aether.util.DefaultRepositorySystemSession;
|
||||
import org.sonatype.aether.util.DefaultRequestTrace;
|
||||
import org.sonatype.aether.util.listener.DefaultRepositoryEvent;
|
||||
import org.sonatype.aether.util.metadata.DefaultMetadata;
|
||||
import org.eclipse.aether.RepositoryEvent.EventType;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.RepositoryEvent;
|
||||
import org.eclipse.aether.RepositoryListener;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RequestTrace;
|
||||
import org.eclipse.aether.metadata.DefaultMetadata;
|
||||
import org.eclipse.aether.repository.ArtifactRepository;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.RepositoryPolicy;
|
||||
import org.eclipse.aether.resolution.MetadataRequest;
|
||||
import org.eclipse.aether.resolution.MetadataResult;
|
||||
|
||||
/**
|
||||
* Resolves a plugin prefix.
|
||||
|
@ -163,13 +162,13 @@ public class DefaultPluginPrefixResolver
|
|||
|
||||
private PluginPrefixResult resolveFromRepository( PluginPrefixRequest request )
|
||||
{
|
||||
RequestTrace trace = DefaultRequestTrace.newChild( null, request );
|
||||
RequestTrace trace = RequestTrace.newChild( null, request );
|
||||
|
||||
List<MetadataRequest> requests = new ArrayList<MetadataRequest>();
|
||||
|
||||
for ( String pluginGroup : request.getPluginGroups() )
|
||||
{
|
||||
org.sonatype.aether.metadata.Metadata metadata =
|
||||
org.eclipse.aether.metadata.Metadata metadata =
|
||||
new DefaultMetadata( pluginGroup, "maven-metadata.xml", DefaultMetadata.Nature.RELEASE_OR_SNAPSHOT );
|
||||
|
||||
requests.add( new MetadataRequest( metadata, null, REPOSITORY_CONTEXT ).setTrace( trace ) );
|
||||
|
@ -213,7 +212,7 @@ public class DefaultPluginPrefixResolver
|
|||
{
|
||||
for ( MetadataResult res : results )
|
||||
{
|
||||
org.sonatype.aether.metadata.Metadata metadata = res.getMetadata();
|
||||
org.eclipse.aether.metadata.Metadata metadata = res.getMetadata();
|
||||
|
||||
if ( metadata != null )
|
||||
{
|
||||
|
@ -243,7 +242,7 @@ public class DefaultPluginPrefixResolver
|
|||
|
||||
private PluginPrefixResult resolveFromRepository( PluginPrefixRequest request, RequestTrace trace,
|
||||
String pluginGroup,
|
||||
org.sonatype.aether.metadata.Metadata metadata,
|
||||
org.eclipse.aether.metadata.Metadata metadata,
|
||||
ArtifactRepository repository )
|
||||
{
|
||||
if ( metadata != null && metadata.getFile() != null && metadata.getFile().isFile() )
|
||||
|
@ -277,17 +276,18 @@ public class DefaultPluginPrefixResolver
|
|||
}
|
||||
|
||||
private void invalidMetadata( RepositorySystemSession session, RequestTrace trace,
|
||||
org.sonatype.aether.metadata.Metadata metadata, ArtifactRepository repository,
|
||||
org.eclipse.aether.metadata.Metadata metadata, ArtifactRepository repository,
|
||||
Exception exception )
|
||||
{
|
||||
RepositoryListener listener = session.getRepositoryListener();
|
||||
if ( listener != null )
|
||||
{
|
||||
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.METADATA_INVALID, session, trace );
|
||||
RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_INVALID );
|
||||
event.setTrace( trace );
|
||||
event.setMetadata( metadata );
|
||||
event.setException( exception );
|
||||
event.setRepository( repository );
|
||||
listener.metadataInvalid( event );
|
||||
listener.metadataInvalid( event.build() );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ package org.apache.maven.plugin.prefix.internal;
|
|||
|
||||
import org.apache.maven.model.Plugin;
|
||||
import org.apache.maven.plugin.prefix.PluginPrefixResult;
|
||||
import org.sonatype.aether.repository.ArtifactRepository;
|
||||
import org.eclipse.aether.repository.ArtifactRepository;
|
||||
|
||||
/**
|
||||
* Describes the result of a plugin prefix resolution request.
|
||||
|
|
|
@ -26,8 +26,8 @@ import org.apache.maven.execution.MavenSession;
|
|||
import org.apache.maven.model.Model;
|
||||
import org.apache.maven.model.Plugin;
|
||||
import org.apache.maven.project.MavenProject;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Collects settings required to resolve the version for a plugin.
|
||||
|
|
|
@ -22,8 +22,8 @@ package org.apache.maven.plugin.version;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.maven.model.Model;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
/**
|
||||
* Collects settings required to resolve the version for a plugin.
|
||||
|
|
|
@ -21,8 +21,8 @@ package org.apache.maven.plugin.version;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.sonatype.aether.repository.LocalRepository;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.LocalRepository;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
|
||||
public class PluginVersionResolutionException
|
||||
extends Exception
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.apache.maven.plugin.version;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.sonatype.aether.repository.ArtifactRepository;
|
||||
import org.eclipse.aether.repository.ArtifactRepository;
|
||||
|
||||
/**
|
||||
* Describes the result of a plugin version resolution request.
|
||||
|
|
|
@ -43,22 +43,21 @@ import org.codehaus.plexus.component.annotations.Component;
|
|||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
import org.sonatype.aether.RepositoryEvent.EventType;
|
||||
import org.sonatype.aether.RepositoryListener;
|
||||
import org.sonatype.aether.RepositorySystem;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.RequestTrace;
|
||||
import org.sonatype.aether.repository.ArtifactRepository;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.resolution.MetadataRequest;
|
||||
import org.sonatype.aether.resolution.MetadataResult;
|
||||
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.VersionScheme;
|
||||
import org.eclipse.aether.RepositoryEvent.EventType;
|
||||
import org.eclipse.aether.RepositoryEvent;
|
||||
import org.eclipse.aether.RepositoryListener;
|
||||
import org.eclipse.aether.RepositorySystem;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RequestTrace;
|
||||
import org.eclipse.aether.metadata.DefaultMetadata;
|
||||
import org.eclipse.aether.repository.ArtifactRepository;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.resolution.MetadataRequest;
|
||||
import org.eclipse.aether.resolution.MetadataResult;
|
||||
import org.eclipse.aether.util.version.GenericVersionScheme;
|
||||
import org.eclipse.aether.version.InvalidVersionSpecificationException;
|
||||
import org.eclipse.aether.version.Version;
|
||||
import org.eclipse.aether.version.VersionScheme;
|
||||
|
||||
/**
|
||||
* Resolves a version for a plugin.
|
||||
|
@ -114,11 +113,11 @@ public class DefaultPluginVersionResolver
|
|||
private PluginVersionResult resolveFromRepository( PluginVersionRequest request )
|
||||
throws PluginVersionResolutionException
|
||||
{
|
||||
RequestTrace trace = DefaultRequestTrace.newChild( null, request );
|
||||
RequestTrace trace = RequestTrace.newChild( null, request );
|
||||
|
||||
DefaultPluginVersionResult result = new DefaultPluginVersionResult();
|
||||
|
||||
org.sonatype.aether.metadata.Metadata metadata =
|
||||
org.eclipse.aether.metadata.Metadata metadata =
|
||||
new DefaultMetadata( request.getGroupId(), request.getArtifactId(), "maven-metadata.xml",
|
||||
DefaultMetadata.Nature.RELEASE_OR_SNAPSHOT );
|
||||
|
||||
|
@ -280,7 +279,7 @@ public class DefaultPluginVersionResolver
|
|||
}
|
||||
|
||||
private void mergeMetadata( RepositorySystemSession session, RequestTrace trace, Versions versions,
|
||||
org.sonatype.aether.metadata.Metadata metadata, ArtifactRepository repository )
|
||||
org.eclipse.aether.metadata.Metadata metadata, ArtifactRepository repository )
|
||||
{
|
||||
if ( metadata != null && metadata.getFile() != null && metadata.getFile().isFile() )
|
||||
{
|
||||
|
@ -300,17 +299,18 @@ public class DefaultPluginVersionResolver
|
|||
}
|
||||
|
||||
private void invalidMetadata( RepositorySystemSession session, RequestTrace trace,
|
||||
org.sonatype.aether.metadata.Metadata metadata, ArtifactRepository repository,
|
||||
org.eclipse.aether.metadata.Metadata metadata, ArtifactRepository repository,
|
||||
Exception exception )
|
||||
{
|
||||
RepositoryListener listener = session.getRepositoryListener();
|
||||
if ( listener != null )
|
||||
{
|
||||
DefaultRepositoryEvent event = new DefaultRepositoryEvent( EventType.METADATA_INVALID, session, trace );
|
||||
RepositoryEvent.Builder event = new RepositoryEvent.Builder( session, EventType.METADATA_INVALID );
|
||||
event.setTrace( trace );
|
||||
event.setMetadata( metadata );
|
||||
event.setException( exception );
|
||||
event.setRepository( repository );
|
||||
listener.metadataInvalid( event );
|
||||
listener.metadataInvalid( event.build() );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ package org.apache.maven.plugin.version.internal;
|
|||
*/
|
||||
|
||||
import org.apache.maven.plugin.version.PluginVersionResult;
|
||||
import org.sonatype.aether.repository.ArtifactRepository;
|
||||
import org.eclipse.aether.repository.ArtifactRepository;
|
||||
|
||||
/**
|
||||
* Describes the result of a plugin version resolution request.
|
||||
|
|
|
@ -19,8 +19,8 @@ package org.apache.maven.project;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -25,8 +25,8 @@ import java.util.IdentityHashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.sonatype.aether.graph.Dependency;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.graph.Dependency;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
|
||||
/**
|
||||
* @author Benjamin Bentmann
|
||||
|
|
|
@ -55,15 +55,14 @@ import org.codehaus.plexus.component.annotations.Requirement;
|
|||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.util.Os;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.sonatype.aether.RequestTrace;
|
||||
import org.sonatype.aether.impl.RemoteRepositoryManager;
|
||||
import org.sonatype.aether.repository.LocalRepositoryManager;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.repository.WorkspaceRepository;
|
||||
import org.sonatype.aether.resolution.ArtifactRequest;
|
||||
import org.sonatype.aether.resolution.ArtifactResult;
|
||||
import org.sonatype.aether.util.DefaultRequestTrace;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RequestTrace;
|
||||
import org.eclipse.aether.impl.RemoteRepositoryManager;
|
||||
import org.eclipse.aether.repository.LocalRepositoryManager;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.repository.WorkspaceRepository;
|
||||
import org.eclipse.aether.resolution.ArtifactRequest;
|
||||
import org.eclipse.aether.resolution.ArtifactResult;
|
||||
|
||||
/**
|
||||
*/
|
||||
|
@ -88,7 +87,7 @@ public class DefaultProjectBuilder
|
|||
private RepositorySystem repositorySystem;
|
||||
|
||||
@Requirement
|
||||
private org.sonatype.aether.RepositorySystem repoSystem;
|
||||
private org.eclipse.aether.RepositorySystem repoSystem;
|
||||
|
||||
@Requirement
|
||||
private RemoteRepositoryManager repositoryManager;
|
||||
|
@ -245,7 +244,7 @@ public class DefaultProjectBuilder
|
|||
|
||||
ModelBuildingRequest request = new DefaultModelBuildingRequest();
|
||||
|
||||
RequestTrace trace = DefaultRequestTrace.newChild( null, configuration ).newChild( request );
|
||||
RequestTrace trace = RequestTrace.newChild( null, configuration ).newChild( request );
|
||||
|
||||
ModelResolver resolver =
|
||||
new ProjectModelResolver( config.session, trace, repoSystem, repositoryManager, config.repositories,
|
||||
|
@ -274,7 +273,7 @@ public class DefaultProjectBuilder
|
|||
public ProjectBuildingResult build( Artifact artifact, boolean allowStubModel, ProjectBuildingRequest request )
|
||||
throws ProjectBuildingException
|
||||
{
|
||||
org.sonatype.aether.artifact.Artifact pomArtifact = RepositoryUtils.toArtifact( artifact );
|
||||
org.eclipse.aether.artifact.Artifact pomArtifact = RepositoryUtils.toArtifact( artifact );
|
||||
pomArtifact = ArtifactDescriptorUtils.toPomArtifact( pomArtifact );
|
||||
|
||||
InternalConfig config = new InternalConfig( request, null );
|
||||
|
@ -291,7 +290,7 @@ public class DefaultProjectBuilder
|
|||
pomArtifact = pomResult.getArtifact();
|
||||
localProject = pomResult.getRepository() instanceof WorkspaceRepository;
|
||||
}
|
||||
catch ( org.sonatype.aether.resolution.ArtifactResolutionException e )
|
||||
catch ( org.eclipse.aether.resolution.ArtifactResolutionException e )
|
||||
{
|
||||
if ( e.getResults().get( 0 ).isMissing() && allowStubModel )
|
||||
{
|
||||
|
|
|
@ -52,12 +52,12 @@ import org.codehaus.plexus.classworlds.realm.ClassRealm;
|
|||
import org.codehaus.plexus.component.annotations.Component;
|
||||
import org.codehaus.plexus.component.annotations.Requirement;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.sonatype.aether.artifact.Artifact;
|
||||
import org.sonatype.aether.graph.DependencyFilter;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
import org.sonatype.aether.repository.RemoteRepository;
|
||||
import org.sonatype.aether.util.filter.ExclusionsDependencyFilter;
|
||||
import org.sonatype.aether.util.graph.PreorderNodeListGenerator;
|
||||
import org.eclipse.aether.artifact.Artifact;
|
||||
import org.eclipse.aether.graph.DependencyFilter;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.repository.RemoteRepository;
|
||||
import org.eclipse.aether.util.filter.ExclusionsDependencyFilter;
|
||||
import org.eclipse.aether.util.graph.visitor.PreorderNodeListGenerator;
|
||||
|
||||
/**
|
||||
* Assists the project builder. <strong>Warning:</strong> This is an internal utility class that is only public for
|
||||
|
|
|
@ -27,7 +27,7 @@ import java.util.Properties;
|
|||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.model.Profile;
|
||||
import org.apache.maven.model.building.ModelBuildingRequest;
|
||||
import org.sonatype.aether.RepositorySystemSession;
|
||||
import org.eclipse.aether.RepositorySystemSession;
|
||||
|
||||
public class DefaultProjectBuildingRequest
|
||||
implements ProjectBuildingRequest
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue