Class MavenMetadataSource
- java.lang.Object
-
- org.apache.maven.project.artifact.MavenMetadataSource
-
- All Implemented Interfaces:
ArtifactMetadataSource
,ArtifactMetadataSource
- Direct Known Subclasses:
DefaultMetadataSource
@Component(role=ArtifactMetadataSource.class, hint="maven") public class MavenMetadataSource extends java.lang.Object implements ArtifactMetadataSource
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
MavenMetadataSource.ProjectRelocation
-
Field Summary
Fields Modifier and Type Field Description private ArtifactFactory
artifactFactory
private MavenMetadataCache
cache
private org.codehaus.plexus.PlexusContainer
container
private LegacySupport
legacySupport
private org.codehaus.plexus.logging.Logger
logger
private ProjectBuilder
projectBuilder
private RepositoryMetadataManager
repositoryMetadataManager
private MavenRepositorySystem
repositorySystem
-
Constructor Summary
Constructors Constructor Description MavenMetadataSource()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private java.util.List<ArtifactRepository>
aggregateRepositories(java.util.List<ArtifactRepository> requestRepositories, java.util.List<ArtifactRepository> pomRepositories)
static java.util.Set<Artifact>
createArtifacts(ArtifactFactory artifactFactory, java.util.List<Dependency> dependencies, java.lang.String inheritedScope, ArtifactFilter dependencyFilter, MavenProject project)
Deprecated.private static Artifact
createDependencyArtifact(ArtifactFactory factory, Dependency dependency, java.lang.String inheritedScope, ArtifactFilter inheritedFilter)
private Artifact
createDependencyArtifact(Dependency dependency, Artifact owner, Artifact pom)
private static ArtifactFilter
createDependencyFilter(Dependency dependency, ArtifactFilter inheritedFilter)
private static java.lang.String
getEffectiveScope(java.lang.String originalScope, java.lang.String inheritedScope)
private ProjectBuilder
getProjectBuilder()
private java.util.List<ArtifactRepository>
getRepositoriesFromModel(org.eclipse.aether.RepositorySystemSession repositorySession, Model model)
private java.util.Properties
getSystemProperties()
private boolean
hasFile(Artifact artifact)
private ModelProblem
hasMissingParentPom(ProjectBuildingException e)
private void
injectSession(MetadataResolutionRequest request)
private boolean
isMissingPom(java.lang.Exception e)
private boolean
isNonTransferrablePom(java.lang.Exception e)
ResolutionGroup
retrieve(Artifact artifact, ArtifactRepository localRepository, java.util.List<ArtifactRepository> remoteRepositories)
ResolutionGroup
retrieve(Artifact artifact, ArtifactRepository localRepository, java.util.List<ArtifactRepository> remoteRepositories, boolean resolveManagedVersions)
ResolutionGroup
retrieve(MetadataResolutionRequest request)
java.util.List<ArtifactVersion>
retrieveAvailableVersions(Artifact artifact, ArtifactRepository localRepository, java.util.List<ArtifactRepository> remoteRepositories)
Get a list of available versions for an artifact in the remote repositoryjava.util.List<ArtifactVersion>
retrieveAvailableVersions(MetadataResolutionRequest request)
java.util.List<ArtifactVersion>
retrieveAvailableVersionsFromDeploymentRepository(Artifact artifact, ArtifactRepository localRepository, ArtifactRepository deploymentRepository)
Get a list of available versions for an artifact in the remote deployment repository.private java.util.List<ArtifactVersion>
retrieveAvailableVersionsFromMetadata(Metadata repoMetadata, java.util.List<java.lang.String> availableVersions)
private MavenMetadataSource.ProjectRelocation
retrieveRelocatedProject(Artifact artifact, MetadataResolutionRequest repositoryRequest)
-
-
-
Field Detail
-
repositoryMetadataManager
@Requirement private RepositoryMetadataManager repositoryMetadataManager
-
artifactFactory
@Requirement private ArtifactFactory artifactFactory
-
repositorySystem
@Requirement private MavenRepositorySystem repositorySystem
-
projectBuilder
private ProjectBuilder projectBuilder
-
container
@Requirement private org.codehaus.plexus.PlexusContainer container
-
logger
@Requirement private org.codehaus.plexus.logging.Logger logger
-
cache
@Requirement private MavenMetadataCache cache
-
legacySupport
@Requirement private LegacySupport legacySupport
-
-
Method Detail
-
injectSession
private void injectSession(MetadataResolutionRequest request)
-
retrieve
public ResolutionGroup retrieve(Artifact artifact, ArtifactRepository localRepository, java.util.List<ArtifactRepository> remoteRepositories) throws ArtifactMetadataRetrievalException
- Specified by:
retrieve
in interfaceArtifactMetadataSource
- Specified by:
retrieve
in interfaceArtifactMetadataSource
- Throws:
ArtifactMetadataRetrievalException
-
retrieve
public ResolutionGroup retrieve(Artifact artifact, ArtifactRepository localRepository, java.util.List<ArtifactRepository> remoteRepositories, boolean resolveManagedVersions) throws ArtifactMetadataRetrievalException
-
retrieve
public ResolutionGroup retrieve(MetadataResolutionRequest request) throws ArtifactMetadataRetrievalException
- Specified by:
retrieve
in interfaceArtifactMetadataSource
- Specified by:
retrieve
in interfaceArtifactMetadataSource
- Throws:
ArtifactMetadataRetrievalException
-
getRepositoriesFromModel
private java.util.List<ArtifactRepository> getRepositoriesFromModel(org.eclipse.aether.RepositorySystemSession repositorySession, Model model)
-
hasFile
private boolean hasFile(Artifact artifact)
-
aggregateRepositories
private java.util.List<ArtifactRepository> aggregateRepositories(java.util.List<ArtifactRepository> requestRepositories, java.util.List<ArtifactRepository> pomRepositories)
-
createDependencyArtifact
private Artifact createDependencyArtifact(Dependency dependency, Artifact owner, Artifact pom) throws ArtifactMetadataRetrievalException
-
createDependencyArtifact
private static Artifact createDependencyArtifact(ArtifactFactory factory, Dependency dependency, java.lang.String inheritedScope, ArtifactFilter inheritedFilter) throws InvalidVersionSpecificationException
-
getEffectiveScope
private static java.lang.String getEffectiveScope(java.lang.String originalScope, java.lang.String inheritedScope)
-
createDependencyFilter
private static ArtifactFilter createDependencyFilter(Dependency dependency, ArtifactFilter inheritedFilter)
-
retrieveAvailableVersions
public java.util.List<ArtifactVersion> retrieveAvailableVersions(Artifact artifact, ArtifactRepository localRepository, java.util.List<ArtifactRepository> remoteRepositories) throws ArtifactMetadataRetrievalException
Description copied from interface:ArtifactMetadataSource
Get a list of available versions for an artifact in the remote repository- Specified by:
retrieveAvailableVersions
in interfaceArtifactMetadataSource
- Specified by:
retrieveAvailableVersions
in interfaceArtifactMetadataSource
- Parameters:
artifact
- artifact we are interested in. Onlygroupid
andartifactId
are needed, for instance the following code will workartifactFactory.createProjectArtifact( "org.apache.maven", "maven", "" )
localRepository
- local repositoryremoteRepositories
- remote repositories,List
$lt;ArtifactRepository
>- Returns:
List
$lt;ArtifactVersion
>- Throws:
ArtifactMetadataRetrievalException
- in case of error while retrieving repository metadata from the repository.ArtifactMetadataRetrievalException
-
retrieveAvailableVersions
public java.util.List<ArtifactVersion> retrieveAvailableVersions(MetadataResolutionRequest request) throws ArtifactMetadataRetrievalException
- Specified by:
retrieveAvailableVersions
in interfaceArtifactMetadataSource
- Throws:
ArtifactMetadataRetrievalException
-
retrieveAvailableVersionsFromDeploymentRepository
public java.util.List<ArtifactVersion> retrieveAvailableVersionsFromDeploymentRepository(Artifact artifact, ArtifactRepository localRepository, ArtifactRepository deploymentRepository) throws ArtifactMetadataRetrievalException
Description copied from interface:ArtifactMetadataSource
Get a list of available versions for an artifact in the remote deployment repository. This ignores any update policy checks and mirrors and always retrieves the latest information from the given repository.- Specified by:
retrieveAvailableVersionsFromDeploymentRepository
in interfaceArtifactMetadataSource
- Specified by:
retrieveAvailableVersionsFromDeploymentRepository
in interfaceArtifactMetadataSource
- Parameters:
artifact
- artifact we are interested in. Onlygroupid
andartifactId
are needed, for instance the following code will workartifactFactory.createProjectArtifact( "org.apache.maven", "maven", "" )
localRepository
- local repositorydeploymentRepository
- remote repository- Returns:
List
$lt;ArtifactVersion
>- Throws:
ArtifactMetadataRetrievalException
- in case of error while retrieving repository metadata from the repository.ArtifactMetadataRetrievalException
-
retrieveAvailableVersionsFromMetadata
private java.util.List<ArtifactVersion> retrieveAvailableVersionsFromMetadata(Metadata repoMetadata, java.util.List<java.lang.String> availableVersions)
-
createArtifacts
@Deprecated public static java.util.Set<Artifact> createArtifacts(ArtifactFactory artifactFactory, java.util.List<Dependency> dependencies, java.lang.String inheritedScope, ArtifactFilter dependencyFilter, MavenProject project) throws InvalidDependencyVersionException
Deprecated.
-
getProjectBuilder
private ProjectBuilder getProjectBuilder()
-
retrieveRelocatedProject
private MavenMetadataSource.ProjectRelocation retrieveRelocatedProject(Artifact artifact, MetadataResolutionRequest repositoryRequest) throws ArtifactMetadataRetrievalException
-
hasMissingParentPom
private ModelProblem hasMissingParentPom(ProjectBuildingException e)
-
isMissingPom
private boolean isMissingPom(java.lang.Exception e)
-
isNonTransferrablePom
private boolean isNonTransferrablePom(java.lang.Exception e)
-
getSystemProperties
private java.util.Properties getSystemProperties()
-
-