@Singleton @Named public class DefaultRepositorySystem extends java.lang.Object implements RepositorySystem, Service
Modifier and Type | Field and Description |
---|---|
private ArtifactDescriptorReader |
artifactDescriptorReader |
private ArtifactResolver |
artifactResolver |
private DependencyCollector |
dependencyCollector |
private Deployer |
deployer |
private Installer |
installer |
private LocalRepositoryProvider |
localRepositoryProvider |
private MetadataResolver |
metadataResolver |
private RemoteRepositoryManager |
remoteRepositoryManager |
private RepositorySystemLifecycle |
repositorySystemLifecycle |
private java.util.concurrent.atomic.AtomicBoolean |
shutdown |
private SyncContextFactory |
syncContextFactory |
private VersionRangeResolver |
versionRangeResolver |
private VersionResolver |
versionResolver |
Constructor and Description |
---|
DefaultRepositorySystem() |
DefaultRepositorySystem(VersionResolver versionResolver,
VersionRangeResolver versionRangeResolver,
ArtifactResolver artifactResolver,
MetadataResolver metadataResolver,
ArtifactDescriptorReader artifactDescriptorReader,
DependencyCollector dependencyCollector,
Installer installer,
Deployer deployer,
LocalRepositoryProvider localRepositoryProvider,
SyncContextFactory syncContextFactory,
RemoteRepositoryManager remoteRepositoryManager,
RepositorySystemLifecycle repositorySystemLifecycle) |
Modifier and Type | Method and Description |
---|---|
void |
addOnSystemEndedHandler(java.lang.Runnable handler)
Registers an "on repository system end" handler, executed after repository system is shut down.
|
CollectResult |
collectDependencies(RepositorySystemSession session,
CollectRequest request)
Collects the transitive dependencies of an artifact and builds a dependency graph.
|
DeployResult |
deploy(RepositorySystemSession session,
DeployRequest request)
Uploads a collection of artifacts and their accompanying metadata to a remote repository.
|
void |
initService(ServiceLocator locator)
Provides the opportunity to initialize this service and to acquire other services for its operation from the
locator.
|
InstallResult |
install(RepositorySystemSession session,
InstallRequest request)
Installs a collection of artifacts and their accompanying metadata to the local repository.
|
private void |
invalidSession(java.lang.Object obj,
java.lang.String name) |
RemoteRepository |
newDeploymentRepository(RepositorySystemSession session,
RemoteRepository repository)
Forms a remote repository suitable for artifact deployment by applying the session's authentication selector and
similar network configuration to the given repository prototype.
|
LocalRepositoryManager |
newLocalRepositoryManager(RepositorySystemSession session,
LocalRepository localRepository)
Creates a new manager for the specified local repository.
|
java.util.List<RemoteRepository> |
newResolutionRepositories(RepositorySystemSession session,
java.util.List<RemoteRepository> repositories)
Forms remote repositories suitable for artifact resolution by applying the session's authentication selector and
similar network configuration to the given repository prototypes.
|
SyncContext |
newSyncContext(RepositorySystemSession session,
boolean shared)
Creates a new synchronization context.
|
ArtifactDescriptorResult |
readArtifactDescriptor(RepositorySystemSession session,
ArtifactDescriptorRequest request)
Gets information about an artifact like its direct dependencies and potential relocations.
|
ArtifactResult |
resolveArtifact(RepositorySystemSession session,
ArtifactRequest request)
Resolves the path for an artifact.
|
java.util.List<ArtifactResult> |
resolveArtifacts(RepositorySystemSession session,
java.util.Collection<? extends ArtifactRequest> requests)
Resolves the paths for a collection of artifacts.
|
DependencyResult |
resolveDependencies(RepositorySystemSession session,
DependencyRequest request)
Collects and resolves the transitive dependencies of an artifact.
|
java.util.List<MetadataResult> |
resolveMetadata(RepositorySystemSession session,
java.util.Collection<? extends MetadataRequest> requests)
Resolves the paths for a collection of metadata.
|
VersionResult |
resolveVersion(RepositorySystemSession session,
VersionRequest request)
Resolves an artifact's meta version (if any) to a concrete version.
|
VersionRangeResult |
resolveVersionRange(RepositorySystemSession session,
VersionRangeRequest request)
Expands a version range to a list of matching versions, in ascending order.
|
DefaultRepositorySystem |
setArtifactDescriptorReader(ArtifactDescriptorReader artifactDescriptorReader) |
DefaultRepositorySystem |
setArtifactResolver(ArtifactResolver artifactResolver) |
DefaultRepositorySystem |
setDependencyCollector(DependencyCollector dependencyCollector) |
DefaultRepositorySystem |
setDeployer(Deployer deployer) |
DefaultRepositorySystem |
setInstaller(Installer installer) |
DefaultRepositorySystem |
setLocalRepositoryProvider(LocalRepositoryProvider localRepositoryProvider) |
DefaultRepositorySystem |
setLoggerFactory(LoggerFactory loggerFactory)
Deprecated.
not used any more since MRESOLVER-36 move to slf4j, added back in MRESOLVER-64 for compatibility
|
DefaultRepositorySystem |
setMetadataResolver(MetadataResolver metadataResolver) |
DefaultRepositorySystem |
setRemoteRepositoryManager(RemoteRepositoryManager remoteRepositoryManager) |
DefaultRepositorySystem |
setRepositorySystemLifecycle(RepositorySystemLifecycle repositorySystemLifecycle) |
DefaultRepositorySystem |
setSyncContextFactory(SyncContextFactory syncContextFactory) |
DefaultRepositorySystem |
setVersionRangeResolver(VersionRangeResolver versionRangeResolver) |
DefaultRepositorySystem |
setVersionResolver(VersionResolver versionResolver) |
void |
shutdown()
Signals to repository system to shut down.
|
private void |
updateNodesWithResolvedArtifacts(java.util.List<ArtifactResult> results) |
private void |
validateRepositories(java.util.List<RemoteRepository> repositories) |
private void |
validateSession(RepositorySystemSession session) |
private final java.util.concurrent.atomic.AtomicBoolean shutdown
private VersionResolver versionResolver
private VersionRangeResolver versionRangeResolver
private ArtifactResolver artifactResolver
private MetadataResolver metadataResolver
private ArtifactDescriptorReader artifactDescriptorReader
private DependencyCollector dependencyCollector
private Installer installer
private Deployer deployer
private LocalRepositoryProvider localRepositoryProvider
private SyncContextFactory syncContextFactory
private RemoteRepositoryManager remoteRepositoryManager
private RepositorySystemLifecycle repositorySystemLifecycle
public DefaultRepositorySystem()
@Inject DefaultRepositorySystem(VersionResolver versionResolver, VersionRangeResolver versionRangeResolver, ArtifactResolver artifactResolver, MetadataResolver metadataResolver, ArtifactDescriptorReader artifactDescriptorReader, DependencyCollector dependencyCollector, Installer installer, Deployer deployer, LocalRepositoryProvider localRepositoryProvider, SyncContextFactory syncContextFactory, RemoteRepositoryManager remoteRepositoryManager, RepositorySystemLifecycle repositorySystemLifecycle)
public void initService(ServiceLocator locator)
Service
initService
in interface Service
locator
- The service locator, must not be null
.@Deprecated public DefaultRepositorySystem setLoggerFactory(LoggerFactory loggerFactory)
public DefaultRepositorySystem setVersionResolver(VersionResolver versionResolver)
public DefaultRepositorySystem setVersionRangeResolver(VersionRangeResolver versionRangeResolver)
public DefaultRepositorySystem setArtifactResolver(ArtifactResolver artifactResolver)
public DefaultRepositorySystem setMetadataResolver(MetadataResolver metadataResolver)
public DefaultRepositorySystem setArtifactDescriptorReader(ArtifactDescriptorReader artifactDescriptorReader)
public DefaultRepositorySystem setDependencyCollector(DependencyCollector dependencyCollector)
public DefaultRepositorySystem setInstaller(Installer installer)
public DefaultRepositorySystem setDeployer(Deployer deployer)
public DefaultRepositorySystem setLocalRepositoryProvider(LocalRepositoryProvider localRepositoryProvider)
public DefaultRepositorySystem setSyncContextFactory(SyncContextFactory syncContextFactory)
public DefaultRepositorySystem setRemoteRepositoryManager(RemoteRepositoryManager remoteRepositoryManager)
public DefaultRepositorySystem setRepositorySystemLifecycle(RepositorySystemLifecycle repositorySystemLifecycle)
public VersionResult resolveVersion(RepositorySystemSession session, VersionRequest request) throws VersionResolutionException
RepositorySystem
resolveVersion
in interface RepositorySystem
session
- The repository session, must not be null
.request
- The version request, must not be null
.null
.VersionResolutionException
- If the metaversion could not be resolved.RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
public VersionRangeResult resolveVersionRange(RepositorySystemSession session, VersionRangeRequest request) throws VersionRangeResolutionException
RepositorySystem
session's
version filter
.
The supplied request may also refer to a single concrete version rather than a version range. In this case though, the result contains simply the (parsed) input version, regardless of the repositories and their contents.
resolveVersionRange
in interface RepositorySystem
session
- The repository session, must not be null
.request
- The version range request, must not be null
.null
.VersionRangeResolutionException
- If the requested range could not be parsed. Note that an empty range does
not raise an exception.RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
public ArtifactDescriptorResult readArtifactDescriptor(RepositorySystemSession session, ArtifactDescriptorRequest request) throws ArtifactDescriptorException
RepositorySystem
readArtifactDescriptor
in interface RepositorySystem
session
- The repository session, must not be null
.request
- The descriptor request, must not be null
.null
.ArtifactDescriptorException
- If the artifact descriptor could not be read.RepositorySystemSession.getArtifactDescriptorPolicy()
,
RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
public ArtifactResult resolveArtifact(RepositorySystemSession session, ArtifactRequest request) throws ArtifactResolutionException
RepositorySystem
resolveArtifact
in interface RepositorySystem
session
- The repository session, must not be null
.request
- The resolution request, must not be null
.null
.ArtifactResolutionException
- If the artifact could not be resolved.Artifact.getFile()
,
RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
public java.util.List<ArtifactResult> resolveArtifacts(RepositorySystemSession session, java.util.Collection<? extends ArtifactRequest> requests) throws ArtifactResolutionException
RepositorySystem
resolveArtifacts
in interface RepositorySystem
session
- The repository session, must not be null
.requests
- The resolution requests, must not be null
.null
.ArtifactResolutionException
- If any artifact could not be resolved.Artifact.getFile()
,
RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
public java.util.List<MetadataResult> resolveMetadata(RepositorySystemSession session, java.util.Collection<? extends MetadataRequest> requests)
RepositorySystem
resolveMetadata
in interface RepositorySystem
session
- The repository session, must not be null
.requests
- The resolution requests, must not be null
.null
.Metadata.getFile()
,
RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
public CollectResult collectDependencies(RepositorySystemSession session, CollectRequest request) throws DependencyCollectionException
RepositorySystem
RepositorySystem.resolveDependencies(RepositorySystemSession, DependencyRequest)
.collectDependencies
in interface RepositorySystem
session
- The repository session, must not be null
.request
- The collection request, must not be null
.null
.DependencyCollectionException
- If the dependency tree could not be built.RepositorySystemSession.getDependencyTraverser()
,
RepositorySystemSession.getDependencyManager()
,
RepositorySystemSession.getDependencySelector()
,
RepositorySystemSession.getVersionFilter()
,
RepositorySystemSession.getDependencyGraphTransformer()
,
RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
public DependencyResult resolveDependencies(RepositorySystemSession session, DependencyRequest request) throws DependencyResolutionException
RepositorySystem
RepositorySystem.collectDependencies(RepositorySystemSession, CollectRequest)
and
RepositorySystem.resolveArtifacts(RepositorySystemSession, Collection)
.resolveDependencies
in interface RepositorySystem
session
- The repository session, must not be null
.request
- The dependency request, must not be null
.null
.DependencyResolutionException
- If the dependency tree could not be built or any dependency artifact could
not be resolved.RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
private void updateNodesWithResolvedArtifacts(java.util.List<ArtifactResult> results)
public InstallResult install(RepositorySystemSession session, InstallRequest request) throws InstallationException
RepositorySystem
install
in interface RepositorySystem
session
- The repository session, must not be null
.request
- The installation request, must not be null
.null
.InstallationException
- If any artifact/metadata from the request could not be installed.public DeployResult deploy(RepositorySystemSession session, DeployRequest request) throws DeploymentException
RepositorySystem
deploy
in interface RepositorySystem
session
- The repository session, must not be null
.request
- The deployment request, must not be null
.null
.DeploymentException
- If any artifact/metadata from the request could not be deployed.RepositorySystem.newDeploymentRepository(RepositorySystemSession, RemoteRepository)
public LocalRepositoryManager newLocalRepositoryManager(RepositorySystemSession session, LocalRepository localRepository)
RepositorySystem
newLocalRepositoryManager
in interface RepositorySystem
session
- The repository system session from which to configure the manager, must not be
null
.localRepository
- The local repository to create a manager for, must not be null
.null
.public SyncContext newSyncContext(RepositorySystemSession session, boolean shared)
RepositorySystem
newSyncContext
in interface RepositorySystem
session
- The repository session during which the context will be used, must not be null
.shared
- A flag indicating whether access to the artifacts/metadata associated with the new context can be
shared among concurrent readers or whether access needs to be exclusive to the calling thread.null
.public java.util.List<RemoteRepository> newResolutionRepositories(RepositorySystemSession session, java.util.List<RemoteRepository> repositories)
RepositorySystem
RepositorySystemSession.getAuthenticationSelector()
etc. the remote repositories passed to e.g.
resolveArtifact()
are used as is and expected
to already carry any required authentication or proxy configuration. This method can be used to apply the
authentication/proxy configuration from a session to a bare repository definition to obtain the complete
repository definition for use in the resolution request.newResolutionRepositories
in interface RepositorySystem
session
- The repository system session from which to configure the repositories, must not be
null
.repositories
- The repository prototypes from which to derive the resolution repositories, must not be
null
or contain null
elements.null
. Note that there is generally no 1:1 relationship of the
obtained repositories to the original inputs due to mirror selection potentially aggregating multiple
repositories.RepositorySystem.newDeploymentRepository(RepositorySystemSession, RemoteRepository)
public RemoteRepository newDeploymentRepository(RepositorySystemSession session, RemoteRepository repository)
RepositorySystem
RepositorySystemSession.getAuthenticationSelector()
etc. the remote repository passed to
deploy()
is used as is and expected to already carry any
required authentication or proxy configuration. This method can be used to apply the authentication/proxy
configuration from a session to a bare repository definition to obtain the complete repository definition for use
in the deploy request.newDeploymentRepository
in interface RepositorySystem
session
- The repository system session from which to configure the repository, must not be null
.repository
- The repository prototype from which to derive the deployment repository, must not be
null
.null
.RepositorySystem.newResolutionRepositories(RepositorySystemSession, List)
public void addOnSystemEndedHandler(java.lang.Runnable handler)
RepositorySystem
addOnSystemEndedHandler
in interface RepositorySystem
handler
- The handler, must not be null
.public void shutdown()
RepositorySystem
Repository system may perform some resource cleanup, if applicable. Not using this method may cause leaks or unclean shutdown of some subsystem.
When shutdown happens, all the registered on-close handlers will be invoked (even if some throws), and at end
of operation a MultiRuntimeException
may be thrown, signaling that some handler(s) failed. This exception
may be ignored, is at the discretion of caller.
shutdown
in interface RepositorySystem
private void validateSession(RepositorySystemSession session)
private void validateRepositories(java.util.List<RemoteRepository> repositories)
private void invalidSession(java.lang.Object obj, java.lang.String name)