Class DependencyCollectorDelegate
- java.lang.Object
-
- org.eclipse.aether.internal.impl.collect.DependencyCollectorDelegate
-
- All Implemented Interfaces:
DependencyCollector
- Direct Known Subclasses:
BfDependencyCollector,DfDependencyCollector
public abstract class DependencyCollectorDelegate extends java.lang.Object implements DependencyCollector
Helper class for delegate implementations, they MUST subclass this class.- Since:
- 1.8.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classDependencyCollectorDelegate.ResultsHelper class used during collection.
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Map<java.lang.String,org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory>artifactDecoratorFactoriesstatic java.lang.StringCONFIG_PROP_MAX_CYCLESOnly up to the given amount cyclic dependencies are emitted.static java.lang.StringCONFIG_PROP_MAX_EXCEPTIONSOnly exceptions up to the number given in this configuration property are emitted.static java.lang.StringCONFIG_PROP_MAX_RUNSThe allowed runs of collection (and re-collection).static intDEFAULT_MAX_CYCLESstatic intDEFAULT_MAX_EXCEPTIONSstatic intDEFAULT_MAX_RUNSprotected ArtifactDescriptorReaderdescriptorReaderprotected org.slf4j.Loggerloggerprotected RemoteRepositoryManagerremoteRepositoryManagerprotected VersionRangeResolverversionRangeResolver
-
Constructor Summary
Constructors Modifier Constructor Description protectedDependencyCollectorDelegate(RemoteRepositoryManager remoteRepositoryManager, ArtifactDescriptorReader artifactDescriptorReader, VersionRangeResolver versionRangeResolver, java.util.Map<java.lang.String,org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory> artifactDecoratorFactories)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected org.eclipse.aether.resolution.VersionRangeResultcachedResolveRangeResult(org.eclipse.aether.resolution.VersionRangeRequest rangeRequest, DataPool pool, org.eclipse.aether.RepositorySystemSession session)org.eclipse.aether.collection.CollectResultcollectDependencies(org.eclipse.aether.RepositorySystemSession originalSession, org.eclipse.aether.collection.CollectRequest request)Collects the transitive dependencies of some artifacts and builds a dependency graph.protected org.eclipse.aether.RequestTracecollectStepTrace(org.eclipse.aether.RequestTrace trace, java.lang.String context, java.util.List<org.eclipse.aether.graph.DependencyNode> path, org.eclipse.aether.graph.Dependency node)Creates childRequestTraceinstance from passed inRequestTraceand parameters by creatingCollectStepDataImplinstance out of passed in data.protected static org.eclipse.aether.resolution.ArtifactDescriptorRequestcreateArtifactDescriptorRequest(java.lang.String requestContext, org.eclipse.aether.RequestTrace requestTrace, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories, org.eclipse.aether.graph.Dependency d)protected static org.eclipse.aether.graph.DefaultDependencyNodecreateDependencyNode(java.util.List<org.eclipse.aether.artifact.Artifact> relocations, PremanagedDependency preManaged, org.eclipse.aether.resolution.VersionRangeResult rangeResult, org.eclipse.aether.version.Version version, org.eclipse.aether.graph.Dependency d, java.util.Collection<org.eclipse.aether.artifact.Artifact> aliases, java.util.List<org.eclipse.aether.repository.RemoteRepository> repos, java.lang.String requestContext)protected static org.eclipse.aether.graph.DefaultDependencyNodecreateDependencyNode(java.util.List<org.eclipse.aether.artifact.Artifact> relocations, PremanagedDependency preManaged, org.eclipse.aether.resolution.VersionRangeResult rangeResult, org.eclipse.aether.version.Version version, org.eclipse.aether.graph.Dependency d, org.eclipse.aether.resolution.ArtifactDescriptorResult descriptorResult, org.eclipse.aether.graph.DependencyNode cycleNode)protected static org.eclipse.aether.resolution.VersionRangeRequestcreateVersionRangeRequest(java.lang.String requestContext, org.eclipse.aether.RequestTrace requestTrace, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories, org.eclipse.aether.graph.Dependency dependency)protected abstract voiddoCollectDependencies(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.RequestTrace trace, DataPool pool, DefaultDependencyCollectionContext context, DefaultVersionFilterContext versionContext, org.eclipse.aether.collection.CollectRequest request, org.eclipse.aether.graph.DependencyNode node, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories, java.util.List<org.eclipse.aether.graph.Dependency> dependencies, java.util.List<org.eclipse.aether.graph.Dependency> managedDependencies, DependencyCollectorDelegate.Results results)protected static java.util.List<? extends org.eclipse.aether.version.Version>filterVersions(org.eclipse.aether.graph.Dependency dependency, org.eclipse.aether.resolution.VersionRangeResult rangeResult, org.eclipse.aether.collection.VersionFilter verFilter, DefaultVersionFilterContext verContext)protected static java.lang.StringgetId(org.eclipse.aether.artifact.Artifact a)protected static java.util.List<org.eclipse.aether.repository.RemoteRepository>getRemoteRepositories(org.eclipse.aether.repository.ArtifactRepository repository, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories)protected static booleanisLackingDescriptor(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact)protected java.util.List<org.eclipse.aether.graph.Dependency>mergeDeps(java.util.List<org.eclipse.aether.graph.Dependency> dominant, java.util.List<org.eclipse.aether.graph.Dependency> recessive)protected org.eclipse.aether.resolution.ArtifactDescriptorResultresolveCachedArtifactDescriptor(DataPool pool, org.eclipse.aether.resolution.ArtifactDescriptorRequest descriptorRequest, org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.graph.Dependency d, DependencyCollectorDelegate.Results results, java.util.List<org.eclipse.aether.graph.DependencyNode> nodes)protected org.eclipse.aether.RepositorySystemSessionsetUpSession(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.collection.CollectRequest collectRequest, InternalScopeManager scopeManager)
-
-
-
Field Detail
-
CONFIG_PROP_MAX_EXCEPTIONS
public static final java.lang.String CONFIG_PROP_MAX_EXCEPTIONS
Only exceptions up to the number given in this configuration property are emitted. Exceptions which exceed that number are swallowed.- See Also:
- Constant Field Values
-
DEFAULT_MAX_EXCEPTIONS
public static final int DEFAULT_MAX_EXCEPTIONS
- See Also:
- Constant Field Values
-
CONFIG_PROP_MAX_CYCLES
public static final java.lang.String CONFIG_PROP_MAX_CYCLES
Only up to the given amount cyclic dependencies are emitted.- See Also:
- Constant Field Values
-
DEFAULT_MAX_CYCLES
public static final int DEFAULT_MAX_CYCLES
- See Also:
- Constant Field Values
-
CONFIG_PROP_MAX_RUNS
public static final java.lang.String CONFIG_PROP_MAX_RUNS
The allowed runs of collection (and re-collection). By default, there must be at least 1 run, so values smaller than 1 are considered configuration errors and will fail dependency collection.- Since:
- 2.0.19
- See Also:
- Constant Field Values
-
DEFAULT_MAX_RUNS
public static final int DEFAULT_MAX_RUNS
- See Also:
- Constant Field Values
-
logger
protected final org.slf4j.Logger logger
-
remoteRepositoryManager
protected final RemoteRepositoryManager remoteRepositoryManager
-
descriptorReader
protected final ArtifactDescriptorReader descriptorReader
-
versionRangeResolver
protected final VersionRangeResolver versionRangeResolver
-
artifactDecoratorFactories
protected final java.util.Map<java.lang.String,org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory> artifactDecoratorFactories
-
-
Constructor Detail
-
DependencyCollectorDelegate
protected DependencyCollectorDelegate(RemoteRepositoryManager remoteRepositoryManager, ArtifactDescriptorReader artifactDescriptorReader, VersionRangeResolver versionRangeResolver, java.util.Map<java.lang.String,org.eclipse.aether.spi.artifact.decorator.ArtifactDecoratorFactory> artifactDecoratorFactories)
-
-
Method Detail
-
collectDependencies
public final org.eclipse.aether.collection.CollectResult collectDependencies(org.eclipse.aether.RepositorySystemSession originalSession, org.eclipse.aether.collection.CollectRequest request) throws org.eclipse.aether.collection.DependencyCollectionException
Description copied from interface:DependencyCollectorCollects the transitive dependencies of some artifacts and builds a dependency graph. Note that this operation is only concerned about determining the coordinates of the transitive dependencies and does not actually resolve the artifact files. The supplied session carries various hooks to customize the dependency graph that must be invoked throughout the operation.- Specified by:
collectDependenciesin interfaceDependencyCollector- Parameters:
originalSession- The repository session, must not benull.request- The collection request, must not benull.- Returns:
- The collection result, never
null. - Throws:
org.eclipse.aether.collection.DependencyCollectionException- If the dependency tree could not be built.- See Also:
RepositorySystemSession.getDependencyTraverser(),RepositorySystemSession.getDependencyManager(),RepositorySystemSession.getDependencySelector(),RepositorySystemSession.getVersionFilter(),RepositorySystemSession.getDependencyGraphTransformer(),RepositorySystem.collectDependencies(RepositorySystemSession, CollectRequest)
-
collectStepTrace
protected org.eclipse.aether.RequestTrace collectStepTrace(org.eclipse.aether.RequestTrace trace, java.lang.String context, java.util.List<org.eclipse.aether.graph.DependencyNode> path, org.eclipse.aether.graph.Dependency node)
Creates childRequestTraceinstance from passed inRequestTraceand parameters by creatingCollectStepDataImplinstance out of passed in data. Caller must ensure that passed in parameters are NOT affected by threading (or that there is no multi threading involved). In other words, the passed in values should be immutable.- Parameters:
trace- The current trace instance.context- The context fromCollectRequest.getRequestContext(), nevernull.path- List representing the path of dependency nodes, nevernull. Caller must ensure, that this list does not change during the lifetime of the requestedRequestTraceinstance. If it may change, simplest is to pass here a copy of used list.node- Currently collected node, that collector came by following the passed in path.- Returns:
- A child request trance instance, never
null.
-
doCollectDependencies
protected abstract void doCollectDependencies(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.RequestTrace trace, DataPool pool, DefaultDependencyCollectionContext context, DefaultVersionFilterContext versionContext, org.eclipse.aether.collection.CollectRequest request, org.eclipse.aether.graph.DependencyNode node, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories, java.util.List<org.eclipse.aether.graph.Dependency> dependencies, java.util.List<org.eclipse.aether.graph.Dependency> managedDependencies, DependencyCollectorDelegate.Results results) throws org.eclipse.aether.collection.DependencyCollectionException
- Throws:
org.eclipse.aether.collection.DependencyCollectionException
-
setUpSession
protected org.eclipse.aether.RepositorySystemSession setUpSession(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.collection.CollectRequest collectRequest, InternalScopeManager scopeManager)
-
mergeDeps
protected java.util.List<org.eclipse.aether.graph.Dependency> mergeDeps(java.util.List<org.eclipse.aether.graph.Dependency> dominant, java.util.List<org.eclipse.aether.graph.Dependency> recessive)
-
getId
protected static java.lang.String getId(org.eclipse.aether.artifact.Artifact a)
-
createDependencyNode
protected static org.eclipse.aether.graph.DefaultDependencyNode createDependencyNode(java.util.List<org.eclipse.aether.artifact.Artifact> relocations, PremanagedDependency preManaged, org.eclipse.aether.resolution.VersionRangeResult rangeResult, org.eclipse.aether.version.Version version, org.eclipse.aether.graph.Dependency d, java.util.Collection<org.eclipse.aether.artifact.Artifact> aliases, java.util.List<org.eclipse.aether.repository.RemoteRepository> repos, java.lang.String requestContext)
-
createDependencyNode
protected static org.eclipse.aether.graph.DefaultDependencyNode createDependencyNode(java.util.List<org.eclipse.aether.artifact.Artifact> relocations, PremanagedDependency preManaged, org.eclipse.aether.resolution.VersionRangeResult rangeResult, org.eclipse.aether.version.Version version, org.eclipse.aether.graph.Dependency d, org.eclipse.aether.resolution.ArtifactDescriptorResult descriptorResult, org.eclipse.aether.graph.DependencyNode cycleNode)
-
createArtifactDescriptorRequest
protected static org.eclipse.aether.resolution.ArtifactDescriptorRequest createArtifactDescriptorRequest(java.lang.String requestContext, org.eclipse.aether.RequestTrace requestTrace, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories, org.eclipse.aether.graph.Dependency d)
-
createVersionRangeRequest
protected static org.eclipse.aether.resolution.VersionRangeRequest createVersionRangeRequest(java.lang.String requestContext, org.eclipse.aether.RequestTrace requestTrace, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories, org.eclipse.aether.graph.Dependency dependency)
-
cachedResolveRangeResult
protected org.eclipse.aether.resolution.VersionRangeResult cachedResolveRangeResult(org.eclipse.aether.resolution.VersionRangeRequest rangeRequest, DataPool pool, org.eclipse.aether.RepositorySystemSession session) throws org.eclipse.aether.resolution.VersionRangeResolutionException
- Throws:
org.eclipse.aether.resolution.VersionRangeResolutionException
-
isLackingDescriptor
protected static boolean isLackingDescriptor(org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.artifact.Artifact artifact)
-
getRemoteRepositories
protected static java.util.List<org.eclipse.aether.repository.RemoteRepository> getRemoteRepositories(org.eclipse.aether.repository.ArtifactRepository repository, java.util.List<org.eclipse.aether.repository.RemoteRepository> repositories)
-
filterVersions
protected static java.util.List<? extends org.eclipse.aether.version.Version> filterVersions(org.eclipse.aether.graph.Dependency dependency, org.eclipse.aether.resolution.VersionRangeResult rangeResult, org.eclipse.aether.collection.VersionFilter verFilter, DefaultVersionFilterContext verContext) throws org.eclipse.aether.resolution.VersionRangeResolutionException
- Throws:
org.eclipse.aether.resolution.VersionRangeResolutionException
-
resolveCachedArtifactDescriptor
protected org.eclipse.aether.resolution.ArtifactDescriptorResult resolveCachedArtifactDescriptor(DataPool pool, org.eclipse.aether.resolution.ArtifactDescriptorRequest descriptorRequest, org.eclipse.aether.RepositorySystemSession session, org.eclipse.aether.graph.Dependency d, DependencyCollectorDelegate.Results results, java.util.List<org.eclipse.aether.graph.DependencyNode> nodes)
-
-