Interface RepositorySystemSession.SessionBuilder
- All Known Implementing Classes:
DefaultSessionBuilder
- Enclosing interface:
RepositorySystemSession
RepositorySystemSession.CloseableSession
instances. Builder instances can be created with
RepositorySystem.createSessionBuilder()
method. Instances are not thread-safe nor immutable.
Important: if you set a stateful member on builder (for example SessionData
or RepositoryCache
),
the builder will create session instances using same provided stateful members, that may lead to unexpected side
effects. Solution for these cases is to not reuse builder instances, or, keep reconfiguring it, or ultimately
provide suppliers that create new instance per each call.
- Since:
- 2.0.0
- Restriction:
- This interface is not intended to be extended by clients.
- Restriction:
- This interface is not intended to be implemented by clients.
-
Method Summary
Modifier and TypeMethodDescriptionaddOnSessionEndedHandler
(Runnable handler) Adds on session ended handler to be immediately registered when this builder creates session.build()
Creates immutable closeable session out this builder instance.setArtifactDescriptorPolicy
(ArtifactDescriptorPolicy artifactDescriptorPolicy) Sets the policy which controls how errors related to reading artifact descriptors should be handled.setArtifactTypeRegistry
(ArtifactTypeRegistry artifactTypeRegistry) Sets the registry of artifact types recognized by this session.setArtifactUpdatePolicy
(String artifactUpdatePolicy) Sets the global artifact update policy.setAuthenticationSelector
(AuthenticationSelector authenticationSelector) Sets the authentication selector to use for repositories discovered in artifact descriptors.setCache
(RepositoryCache cache) Sets the cache the repository system may use to save data for future reuse during the session.setChecksumPolicy
(String checksumPolicy) Sets the global checksum policy.setConfigProperties
(Map<?, ?> configProperties) Sets the configuration properties used to tweak internal aspects of the repository system (e.g.setConfigProperty
(String key, Object value) Sets the specified configuration property.setData
(SessionData data) Sets the custom data associated with this session.setDependencyGraphTransformer
(DependencyGraphTransformer dependencyGraphTransformer) Sets the dependency graph transformer to use for building dependency graphs.setDependencyManager
(DependencyManager dependencyManager) Sets the dependency manager to use for building dependency graphs.setDependencySelector
(DependencySelector dependencySelector) Sets the dependency selector to use for building dependency graphs.setDependencyTraverser
(DependencyTraverser dependencyTraverser) Sets the dependency traverser to use for building dependency graphs.setIgnoreArtifactDescriptorRepositories
(boolean ignoreArtifactDescriptorRepositories) Controls whether repositories declared in artifact descriptors should be ignored during transitive dependency collection.setLocalRepositoryManager
(LocalRepositoryManager localRepositoryManager) Sets the local repository manager used during this session.setMetadataUpdatePolicy
(String metadataUpdatePolicy) Sets the global metadata update policy.setMirrorSelector
(MirrorSelector mirrorSelector) Sets the mirror selector to use for repositories discovered in artifact descriptors.setOffline
(boolean offline) Controls whether the repository system operates in offline mode and avoids/refuses any access to remote repositories.setProxySelector
(ProxySelector proxySelector) Sets the proxy selector to use for repositories discovered in artifact descriptors.setRepositoryCacheSupplier
(Supplier<RepositoryCache> cacheSupplier) Sets the cache supplier for the repository system may use to save data for future reuse during the session.setRepositoryListener
(RepositoryListener repositoryListener) Sets the listener being notified of actions in the repository system.setResolutionErrorPolicy
(ResolutionErrorPolicy resolutionErrorPolicy) Sets the policy which controls whether resolutions errors from remote repositories should be cached.setSessionDataSupplier
(Supplier<SessionData> dataSupplier) Sets the custom session data supplier associated with this session.setSystemProperties
(Map<?, ?> systemProperties) Sets the system properties to use, e.g.setSystemProperty
(String key, String value) Sets the specified system property.setSystemScopeHandler
(SystemScopeHandler systemScopeHandler) Sets the system scope handler for session, may not benull
.setTransferListener
(TransferListener transferListener) Sets the listener being notified of uploads/downloads by the repository system.setUpdatePolicy
(String updatePolicy) Sets the global update policy.setUserProperties
(Map<?, ?> userProperties) Sets the user properties to use, e.g.setUserProperty
(String key, String value) Sets the specified user property.setVersionFilter
(VersionFilter versionFilter) Sets the version filter to use for building dependency graphs.setWorkspaceReader
(WorkspaceReader workspaceReader) Sets the workspace reader used during this session.withLocalRepositories
(Collection<LocalRepository> localRepositories) Shortcut method to set up local repository manager directly onto builder.withLocalRepositories
(LocalRepository... localRepositories) Shortcut method to set up local repository manager directly onto builder.withLocalRepositoryBaseDirectories
(Path... baseDirectories) Shortcut method to set up local repository manager directly onto builder.withLocalRepositoryBaseDirectories
(Collection<Path> baseDirectories) Shortcut method to set up local repository manager directly onto builder.withRepositoryListener
(Collection<RepositoryListener> repositoryListeners) Adds the listeners to be notified of actions in the repository system.withRepositoryListener
(RepositoryListener... repositoryListeners) Adds the listeners to be notified of actions in the repository system.Shortcut method to shallow-copy passed in session into current builder.withTransferListener
(Collection<TransferListener> transferListeners) Adds the listener to be notified of uploads/downloads by the repository system.withTransferListener
(TransferListener... transferListeners) Adds the listener to be notified of uploads/downloads by the repository system.
-
Method Details
-
setOffline
Controls whether the repository system operates in offline mode and avoids/refuses any access to remote repositories.- Parameters:
offline
-true
if the repository system is in offline mode,false
otherwise.- Returns:
- This session for chaining, never
null
.
-
setIgnoreArtifactDescriptorRepositories
RepositorySystemSession.SessionBuilder setIgnoreArtifactDescriptorRepositories(boolean ignoreArtifactDescriptorRepositories) Controls whether repositories declared in artifact descriptors should be ignored during transitive dependency collection. If enabled, only the repositories originally provided with the collect request will be considered.- Parameters:
ignoreArtifactDescriptorRepositories
-true
to ignore additional repositories from artifact descriptors,false
to merge those with the originally specified repositories.- Returns:
- This session for chaining, never
null
.
-
setResolutionErrorPolicy
RepositorySystemSession.SessionBuilder setResolutionErrorPolicy(ResolutionErrorPolicy resolutionErrorPolicy) Sets the policy which controls whether resolutions errors from remote repositories should be cached.- Parameters:
resolutionErrorPolicy
- The resolution error policy for this session, may benull
if resolution errors should generally not be cached.- Returns:
- This session for chaining, never
null
.
-
setArtifactDescriptorPolicy
RepositorySystemSession.SessionBuilder setArtifactDescriptorPolicy(ArtifactDescriptorPolicy artifactDescriptorPolicy) Sets the policy which controls how errors related to reading artifact descriptors should be handled.- Parameters:
artifactDescriptorPolicy
- The descriptor error policy for this session, may benull
if descriptor errors should generally not be tolerated.- Returns:
- This session for chaining, never
null
.
-
setChecksumPolicy
Sets the global checksum policy. If set, the global checksum policy overrides the checksum policies of the remote repositories being used for resolution.- Parameters:
checksumPolicy
- The global checksum policy, may benull
/empty to apply the per-repository policies.- Returns:
- This session for chaining, never
null
. - See Also:
-
setUpdatePolicy
Sets the global update policy. If set, the global update policy overrides the update policies of the remote repositories being used for resolution.This method is meant for code that does not want to distinguish between artifact and metadata policies. Note: applications should either use get/set updatePolicy (this method and
RepositorySystemSession.getUpdatePolicy()
) or also distinguish between artifact and metadata update policies (and use other methods), but should not mix the two!- Parameters:
updatePolicy
- The global update policy, may benull
/empty to apply the per-repository policies.- Returns:
- This session for chaining, never
null
. - See Also:
-
setArtifactUpdatePolicy
Sets the global artifact update policy. If set, the global update policy overrides the artifact update policies of the remote repositories being used for resolution.- Parameters:
artifactUpdatePolicy
- The global update policy, may benull
/empty to apply the per-repository policies.- Returns:
- This session for chaining, never
null
. - Since:
- 2.0.0
- See Also:
-
setMetadataUpdatePolicy
Sets the global metadata update policy. If set, the global update policy overrides the metadata update policies of the remote repositories being used for resolution.- Parameters:
metadataUpdatePolicy
- The global update policy, may benull
/empty to apply the per-repository policies.- Returns:
- This session for chaining, never
null
. - Since:
- 2.0.0
- See Also:
-
setLocalRepositoryManager
RepositorySystemSession.SessionBuilder setLocalRepositoryManager(LocalRepositoryManager localRepositoryManager) Sets the local repository manager used during this session. Note: Eventually, a valid session must have a local repository manager set.- Parameters:
localRepositoryManager
- The local repository manager used during this session, may benull
.- Returns:
- This session for chaining, never
null
.
-
setWorkspaceReader
Sets the workspace reader used during this session. If set, the workspace reader will usually be consulted first to resolve artifacts.- Parameters:
workspaceReader
- The workspace reader for this session, may benull
if none.- Returns:
- This session for chaining, never
null
.
-
setRepositoryListener
Sets the listener being notified of actions in the repository system.- Parameters:
repositoryListener
- The repository listener, may benull
if none.- Returns:
- This session for chaining, never
null
.
-
setTransferListener
Sets the listener being notified of uploads/downloads by the repository system.- Parameters:
transferListener
- The transfer listener, may benull
if none.- Returns:
- This session for chaining, never
null
.
-
setSystemProperties
Sets the system properties to use, e.g. for processing of artifact descriptors. System properties are usually collected from the runtime environment likeSystem.getProperties()
and environment variables.Note: System properties are of type
Map<String, String>
and any key-value pair in the input map that doesn't match this type will be silently ignored.- Parameters:
systemProperties
- The system properties, may benull
or empty if none.- Returns:
- This session for chaining, never
null
.
-
setSystemProperty
Sets the specified system property.- Parameters:
key
- The property key, must not benull
.value
- The property value, may benull
to remove/unset the property.- Returns:
- This session for chaining, never
null
.
-
setUserProperties
Sets the user properties to use, e.g. for processing of artifact descriptors. User properties are similar to system properties but are set on the discretion of the user and hence are considered of higher priority than system properties in case of conflicts.Note: User properties are of type
Map<String, String>
and any key-value pair in the input map that doesn't match this type will be silently ignored.- Parameters:
userProperties
- The user properties, may benull
or empty if none.- Returns:
- This session for chaining, never
null
.
-
setUserProperty
Sets the specified user property.- Parameters:
key
- The property key, must not benull
.value
- The property value, may benull
to remove/unset the property.- Returns:
- This session for chaining, never
null
.
-
setConfigProperties
Sets the configuration properties used to tweak internal aspects of the repository system (e.g. thread pooling, connector-specific behavior, etc.).Note: Configuration properties are of type
Map<String, Object>
and any key-value pair in the input map that doesn't match this type will be silently ignored.- Parameters:
configProperties
- The configuration properties, may benull
or empty if none.- Returns:
- This session for chaining, never
null
.
-
setConfigProperty
Sets the specified configuration property.- Parameters:
key
- The property key, must not benull
.value
- The property value, may benull
to remove/unset the property.- Returns:
- This session for chaining, never
null
.
-
setMirrorSelector
Sets the mirror selector to use for repositories discovered in artifact descriptors. Note that this selector is not used for remote repositories which are passed as request parameters to the repository system, those repositories are supposed to denote the effective repositories.- Parameters:
mirrorSelector
- The mirror selector to use, may benull
.- Returns:
- This session for chaining, never
null
.
-
setProxySelector
Sets the proxy selector to use for repositories discovered in artifact descriptors. Note that this selector is not used for remote repositories which are passed as request parameters to the repository system, those repositories are supposed to have their proxy (if any) already set.- Parameters:
proxySelector
- The proxy selector to use, may benull
.- Returns:
- This session for chaining, never
null
. - See Also:
-
setAuthenticationSelector
RepositorySystemSession.SessionBuilder setAuthenticationSelector(AuthenticationSelector authenticationSelector) Sets the authentication selector to use for repositories discovered in artifact descriptors. Note that this selector is not used for remote repositories which are passed as request parameters to the repository system, those repositories are supposed to have their authentication (if any) already set.- Parameters:
authenticationSelector
- The authentication selector to use, may benull
.- Returns:
- This session for chaining, never
null
. - See Also:
-
setArtifactTypeRegistry
RepositorySystemSession.SessionBuilder setArtifactTypeRegistry(ArtifactTypeRegistry artifactTypeRegistry) Sets the registry of artifact types recognized by this session.- Parameters:
artifactTypeRegistry
- The artifact type registry, may benull
.- Returns:
- This session for chaining, never
null
.
-
setDependencyTraverser
RepositorySystemSession.SessionBuilder setDependencyTraverser(DependencyTraverser dependencyTraverser) Sets the dependency traverser to use for building dependency graphs.- Parameters:
dependencyTraverser
- The dependency traverser to use for building dependency graphs, may benull
.- Returns:
- This session for chaining, never
null
.
-
setDependencyManager
Sets the dependency manager to use for building dependency graphs.- Parameters:
dependencyManager
- The dependency manager to use for building dependency graphs, may benull
.- Returns:
- This session for chaining, never
null
.
-
setDependencySelector
Sets the dependency selector to use for building dependency graphs.- Parameters:
dependencySelector
- The dependency selector to use for building dependency graphs, may benull
.- Returns:
- This session for chaining, never
null
.
-
setVersionFilter
Sets the version filter to use for building dependency graphs.- Parameters:
versionFilter
- The version filter to use for building dependency graphs, may benull
to not filter versions.- Returns:
- This session for chaining, never
null
.
-
setDependencyGraphTransformer
RepositorySystemSession.SessionBuilder setDependencyGraphTransformer(DependencyGraphTransformer dependencyGraphTransformer) Sets the dependency graph transformer to use for building dependency graphs.- Parameters:
dependencyGraphTransformer
- The dependency graph transformer to use for building dependency graphs, may benull
.- Returns:
- This session for chaining, never
null
.
-
setData
Sets the custom data associated with this session. Note: When this method used to set instance, same passed instance will be used for every built session out of this builder instance, hence the built sessions will share these instances as well!- Parameters:
data
- The session data, may benull
.- Returns:
- This session for chaining, never
null
.
-
setCache
Sets the cache the repository system may use to save data for future reuse during the session. Note: When this method used to set instance, same passed instance will be used for every built session out of this builder instance, hence the built sessions will share these instances as well!- Parameters:
cache
- The repository cache, may benull
if none.- Returns:
- This session for chaining, never
null
.
-
setSystemScopeHandler
Sets the system scope handler for session, may not benull
.- Parameters:
systemScopeHandler
- The system scope handler, may not benull
.- Returns:
- The session for chaining, never
null
.
-
addOnSessionEndedHandler
Adds on session ended handler to be immediately registered when this builder creates session.- Parameters:
handler
- The on session ended handler, may not benull
.- Returns:
- The session for chaining, never
null
.
-
setSessionDataSupplier
Sets the custom session data supplier associated with this session. Note: The supplier will be used for every built session out of this builder instance, so if supplier supplies same instance the built sessions will share these instances as well!- Parameters:
dataSupplier
- The session data supplier, may not benull
.- Returns:
- This session for chaining, never
null
.
-
setRepositoryCacheSupplier
RepositorySystemSession.SessionBuilder setRepositoryCacheSupplier(Supplier<RepositoryCache> cacheSupplier) Sets the cache supplier for the repository system may use to save data for future reuse during the session. Note: The supplier will be used for every built session out of this builder instance, so if supplier supplies same instance the built sessions will share these instances as well!- Parameters:
cacheSupplier
- The repository cache supplier, may not benull
.- Returns:
- This session for chaining, never
null
.
-
withLocalRepositoryBaseDirectories
Shortcut method to set up local repository manager directly onto builder. There must be at least one non-nullPath
passed in this method. In case multiple files, session builder will use chained local repository manager.- Parameters:
baseDirectories
- The local repository base directories.- Returns:
- This session for chaining, never
null
. - See Also:
-
withLocalRepositoryBaseDirectories
RepositorySystemSession.SessionBuilder withLocalRepositoryBaseDirectories(Collection<Path> baseDirectories) Shortcut method to set up local repository manager directly onto builder. There must be at least one non-nullPath
present in passed in list. In case multiple files, session builder will use chained local repository manager.- Parameters:
baseDirectories
- The local repository base directories.- Returns:
- This session for chaining, never
null
. - See Also:
-
withLocalRepositories
Shortcut method to set up local repository manager directly onto builder. There must be at least one non-nullLocalRepository
passed in this method. In case multiple local repositories, session builder will use chained local repository manager.- Parameters:
localRepositories
- The local repositories.- Returns:
- This session for chaining, never
null
.
-
withLocalRepositories
RepositorySystemSession.SessionBuilder withLocalRepositories(Collection<LocalRepository> localRepositories) Shortcut method to set up local repository manager directly onto builder. There must be at least one non-nullLocalRepository
present in passed in list. In case multiple local repositories, session builder will use chained local repository manager.- Parameters:
localRepositories
- The local repositories.- Returns:
- This session for chaining, never
null
.
-
withRepositoryListener
RepositorySystemSession.SessionBuilder withRepositoryListener(RepositoryListener... repositoryListeners) Adds the listeners to be notified of actions in the repository system.- Parameters:
repositoryListeners
- The repository listeners, nevernull
.- Returns:
- This session for chaining, never
null
.
-
withRepositoryListener
RepositorySystemSession.SessionBuilder withRepositoryListener(Collection<RepositoryListener> repositoryListeners) Adds the listeners to be notified of actions in the repository system.- Parameters:
repositoryListeners
- The repository listeners, nevernull
.- Returns:
- This session for chaining, never
null
.
-
withTransferListener
Adds the listener to be notified of uploads/downloads by the repository system.- Parameters:
transferListeners
- The transfer listeners, nevernull
.- Returns:
- This session for chaining, never
null
.
-
withTransferListener
RepositorySystemSession.SessionBuilder withTransferListener(Collection<TransferListener> transferListeners) Adds the listener to be notified of uploads/downloads by the repository system.- Parameters:
transferListeners
- The transfer listeners, nevernull
.- Returns:
- This session for chaining, never
null
.
-
withRepositorySystemSession
Shortcut method to shallow-copy passed in session into current builder.- Parameters:
session
- The session to shallow-copy from.- Returns:
- This session for chaining, never
null
.
-
build
Creates immutable closeable session out this builder instance.- Returns:
- Immutable closeable session, never
null
.
-