Class DefaultRepositorySystemSession

java.lang.Object
org.eclipse.aether.DefaultRepositorySystemSession
All Implemented Interfaces:
RepositorySystemSession

public final class DefaultRepositorySystemSession extends Object implements RepositorySystemSession
A simple repository system session.

Note: This class is not thread-safe. It is assumed that the mutators get only called during an initialization phase and that the session itself is not changed once initialized and being used by the repository system. It is recommended to call setReadOnly() once the session has been fully initialized to prevent accidental manipulation of it afterwards.

  • Field Details

  • Constructor Details

    • DefaultRepositorySystemSession

      public DefaultRepositorySystemSession()
      Creates an uninitialized session. Note: The new session is not ready to use, as a bare minimum, setLocalRepositoryManager(LocalRepositoryManager) needs to be called but usually other settings also need to be customized to achieve meaningful behavior.
    • DefaultRepositorySystemSession

      public DefaultRepositorySystemSession(RepositorySystemSession session)
      Creates a shallow copy of the specified session. Actually, the copy is not completely shallow, all maps holding system/user/config properties are copied as well. In other words, invoking any mutator on the new session itself has no effect on the original session. Other mutable objects like the session data and cache (if any) are not copied and will be shared with the original session unless reconfigured.
      Parameters:
      session - The session to copy, must not be null.
  • Method Details

    • isOffline

      public boolean isOffline()
      Description copied from interface: RepositorySystemSession
      Indicates whether the repository system operates in offline mode and avoids/refuses any access to remote repositories.
      Specified by:
      isOffline in interface RepositorySystemSession
      Returns:
      true if the repository system is in offline mode, false otherwise.
    • setOffline

      public DefaultRepositorySystemSession setOffline(boolean offline)
      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.
    • isIgnoreArtifactDescriptorRepositories

      public boolean isIgnoreArtifactDescriptorRepositories()
      Description copied from interface: RepositorySystemSession
      Indicates 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.
      Specified by:
      isIgnoreArtifactDescriptorRepositories in interface RepositorySystemSession
      Returns:
      true if additional repositories from artifact descriptors are ignored, false to merge those with the originally specified repositories.
    • setIgnoreArtifactDescriptorRepositories

      public DefaultRepositorySystemSession 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.
    • getResolutionErrorPolicy

      public ResolutionErrorPolicy getResolutionErrorPolicy()
      Description copied from interface: RepositorySystemSession
      Gets the policy which controls whether resolutions errors from remote repositories should be cached.
      Specified by:
      getResolutionErrorPolicy in interface RepositorySystemSession
      Returns:
      The resolution error policy for this session or null if resolution errors should generally not be cached.
    • setResolutionErrorPolicy

      public DefaultRepositorySystemSession 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 be null if resolution errors should generally not be cached.
      Returns:
      This session for chaining, never null.
    • getArtifactDescriptorPolicy

      public ArtifactDescriptorPolicy getArtifactDescriptorPolicy()
      Description copied from interface: RepositorySystemSession
      Gets the policy which controls how errors related to reading artifact descriptors should be handled.
      Specified by:
      getArtifactDescriptorPolicy in interface RepositorySystemSession
      Returns:
      The descriptor error policy for this session or null if descriptor errors should generally not be tolerated.
    • setArtifactDescriptorPolicy

      public DefaultRepositorySystemSession 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 be null if descriptor errors should generally not be tolerated.
      Returns:
      This session for chaining, never null.
    • getChecksumPolicy

      public String getChecksumPolicy()
      Description copied from interface: RepositorySystemSession
      Gets the global checksum policy. If set, the global checksum policy overrides the checksum policies of the remote repositories being used for resolution.
      Specified by:
      getChecksumPolicy in interface RepositorySystemSession
      Returns:
      The global checksum policy or null/empty if not set and the per-repository policies apply.
      See Also:
    • setChecksumPolicy

      public DefaultRepositorySystemSession setChecksumPolicy(String checksumPolicy)
      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 be null/empty to apply the per-repository policies.
      Returns:
      This session for chaining, never null.
      See Also:
    • getUpdatePolicy

      public String getUpdatePolicy()
      Description copied from interface: RepositorySystemSession
      Gets the global update policy. If set, the global update policy overrides the update policies of the remote repositories being used for resolution.
      Specified by:
      getUpdatePolicy in interface RepositorySystemSession
      Returns:
      The global update policy or null/empty if not set and the per-repository policies apply.
      See Also:
    • setUpdatePolicy

      public DefaultRepositorySystemSession setUpdatePolicy(String updatePolicy)
      Sets the global update policy. If set, the global update policy overrides the update policies of the remote repositories being used for resolution.
      Parameters:
      updatePolicy - The global update policy, may be null/empty to apply the per-repository policies.
      Returns:
      This session for chaining, never null.
      See Also:
    • getLocalRepository

      public LocalRepository getLocalRepository()
      Description copied from interface: RepositorySystemSession
      Gets the local repository used during this session. This is a convenience method for LocalRepositoryManager.getRepository().
      Specified by:
      getLocalRepository in interface RepositorySystemSession
      Returns:
      The local repository being during this session, never null.
    • getLocalRepositoryManager

      public LocalRepositoryManager getLocalRepositoryManager()
      Description copied from interface: RepositorySystemSession
      Gets the local repository manager used during this session.
      Specified by:
      getLocalRepositoryManager in interface RepositorySystemSession
      Returns:
      The local repository manager used during this session, never null.
    • setLocalRepositoryManager

      public DefaultRepositorySystemSession 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 be null.
      Returns:
      This session for chaining, never null.
    • getFileTransformerManager

      public FileTransformerManager getFileTransformerManager()
      Description copied from interface: RepositorySystemSession
      Get the file transformer manager
      Specified by:
      getFileTransformerManager in interface RepositorySystemSession
      Returns:
      the manager, never null
    • setFileTransformerManager

      public DefaultRepositorySystemSession setFileTransformerManager(FileTransformerManager fileTransformerManager)
    • getWorkspaceReader

      public WorkspaceReader getWorkspaceReader()
      Description copied from interface: RepositorySystemSession
      Gets the workspace reader used during this session. If set, the workspace reader will usually be consulted first to resolve artifacts.
      Specified by:
      getWorkspaceReader in interface RepositorySystemSession
      Returns:
      The workspace reader for this session or null if none.
    • setWorkspaceReader

      public DefaultRepositorySystemSession setWorkspaceReader(WorkspaceReader workspaceReader)
      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 be null if none.
      Returns:
      This session for chaining, never null.
    • getRepositoryListener

      public RepositoryListener getRepositoryListener()
      Description copied from interface: RepositorySystemSession
      Gets the listener being notified of actions in the repository system.
      Specified by:
      getRepositoryListener in interface RepositorySystemSession
      Returns:
      The repository listener or null if none.
    • setRepositoryListener

      public DefaultRepositorySystemSession setRepositoryListener(RepositoryListener repositoryListener)
      Sets the listener being notified of actions in the repository system.
      Parameters:
      repositoryListener - The repository listener, may be null if none.
      Returns:
      This session for chaining, never null.
    • getTransferListener

      public TransferListener getTransferListener()
      Description copied from interface: RepositorySystemSession
      Gets the listener being notified of uploads/downloads by the repository system.
      Specified by:
      getTransferListener in interface RepositorySystemSession
      Returns:
      The transfer listener or null if none.
    • setTransferListener

      public DefaultRepositorySystemSession setTransferListener(TransferListener transferListener)
      Sets the listener being notified of uploads/downloads by the repository system.
      Parameters:
      transferListener - The transfer listener, may be null if none.
      Returns:
      This session for chaining, never null.
    • copySafe

      private <T> Map<String,T> copySafe(Map<?,?> table, Class<T> valueType)
    • getSystemProperties

      public Map<String,String> getSystemProperties()
      Description copied from interface: RepositorySystemSession
      Gets the system properties to use, e.g. for processing of artifact descriptors. System properties are usually collected from the runtime environment like System.getProperties() and environment variables.
      Specified by:
      getSystemProperties in interface RepositorySystemSession
      Returns:
      The (read-only) system properties, never null.
    • setSystemProperties

      public DefaultRepositorySystemSession setSystemProperties(Map<?,?> systemProperties)
      Sets the system properties to use, e.g. for processing of artifact descriptors. System properties are usually collected from the runtime environment like System.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 be null or empty if none.
      Returns:
      This session for chaining, never null.
    • setSystemProperty

      public DefaultRepositorySystemSession setSystemProperty(String key, String value)
      Sets the specified system property.
      Parameters:
      key - The property key, must not be null.
      value - The property value, may be null to remove/unset the property.
      Returns:
      This session for chaining, never null.
    • getUserProperties

      public Map<String,String> getUserProperties()
      Description copied from interface: RepositorySystemSession
      Gets 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.
      Specified by:
      getUserProperties in interface RepositorySystemSession
      Returns:
      The (read-only) user properties, never null.
    • setUserProperties

      public DefaultRepositorySystemSession setUserProperties(Map<?,?> userProperties)
      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 be null or empty if none.
      Returns:
      This session for chaining, never null.
    • setUserProperty

      public DefaultRepositorySystemSession setUserProperty(String key, String value)
      Sets the specified user property.
      Parameters:
      key - The property key, must not be null.
      value - The property value, may be null to remove/unset the property.
      Returns:
      This session for chaining, never null.
    • getConfigProperties

      public Map<String,Object> getConfigProperties()
      Description copied from interface: RepositorySystemSession
      Gets the configuration properties used to tweak internal aspects of the repository system (e.g. thread pooling, connector-specific behavior, etc.)
      Specified by:
      getConfigProperties in interface RepositorySystemSession
      Returns:
      The (read-only) configuration properties, never null.
      See Also:
    • setConfigProperties

      public DefaultRepositorySystemSession setConfigProperties(Map<?,?> configProperties)
      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 be null or empty if none.
      Returns:
      This session for chaining, never null.
    • setConfigProperty

      public DefaultRepositorySystemSession setConfigProperty(String key, Object value)
      Sets the specified configuration property.
      Parameters:
      key - The property key, must not be null.
      value - The property value, may be null to remove/unset the property.
      Returns:
      This session for chaining, never null.
    • getMirrorSelector

      public MirrorSelector getMirrorSelector()
      Description copied from interface: RepositorySystemSession
      Gets 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.
      Specified by:
      getMirrorSelector in interface RepositorySystemSession
      Returns:
      The mirror selector to use, never null.
      See Also:
    • setMirrorSelector

      public DefaultRepositorySystemSession setMirrorSelector(MirrorSelector mirrorSelector)
      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 be null.
      Returns:
      This session for chaining, never null.
    • getProxySelector

      public ProxySelector getProxySelector()
      Description copied from interface: RepositorySystemSession
      Gets 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.
      Specified by:
      getProxySelector in interface RepositorySystemSession
      Returns:
      The proxy selector to use, never null.
      See Also:
    • setProxySelector

      public DefaultRepositorySystemSession setProxySelector(ProxySelector proxySelector)
      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 be null.
      Returns:
      This session for chaining, never null.
      See Also:
    • getAuthenticationSelector

      public AuthenticationSelector getAuthenticationSelector()
      Description copied from interface: RepositorySystemSession
      Gets 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.
      Specified by:
      getAuthenticationSelector in interface RepositorySystemSession
      Returns:
      The authentication selector to use, never null.
      See Also:
    • setAuthenticationSelector

      public DefaultRepositorySystemSession 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 be null.
      Returns:
      This session for chaining, never null.
      See Also:
    • getArtifactTypeRegistry

      public ArtifactTypeRegistry getArtifactTypeRegistry()
      Description copied from interface: RepositorySystemSession
      Gets the registry of artifact types recognized by this session, for instance when processing artifact descriptors.
      Specified by:
      getArtifactTypeRegistry in interface RepositorySystemSession
      Returns:
      The artifact type registry, never null.
    • setArtifactTypeRegistry

      public DefaultRepositorySystemSession setArtifactTypeRegistry(ArtifactTypeRegistry artifactTypeRegistry)
      Sets the registry of artifact types recognized by this session.
      Parameters:
      artifactTypeRegistry - The artifact type registry, may be null.
      Returns:
      This session for chaining, never null.
    • getDependencyTraverser

      public DependencyTraverser getDependencyTraverser()
      Description copied from interface: RepositorySystemSession
      Gets the dependency traverser to use for building dependency graphs.
      Specified by:
      getDependencyTraverser in interface RepositorySystemSession
      Returns:
      The dependency traverser to use for building dependency graphs or null if dependencies are unconditionally traversed.
    • setDependencyTraverser

      public DefaultRepositorySystemSession 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 be null.
      Returns:
      This session for chaining, never null.
    • getDependencyManager

      public DependencyManager getDependencyManager()
      Description copied from interface: RepositorySystemSession
      Gets the dependency manager to use for building dependency graphs.
      Specified by:
      getDependencyManager in interface RepositorySystemSession
      Returns:
      The dependency manager to use for building dependency graphs or null if dependency management is not performed.
    • setDependencyManager

      public DefaultRepositorySystemSession setDependencyManager(DependencyManager dependencyManager)
      Sets the dependency manager to use for building dependency graphs.
      Parameters:
      dependencyManager - The dependency manager to use for building dependency graphs, may be null.
      Returns:
      This session for chaining, never null.
    • getDependencySelector

      public DependencySelector getDependencySelector()
      Description copied from interface: RepositorySystemSession
      Gets the dependency selector to use for building dependency graphs.
      Specified by:
      getDependencySelector in interface RepositorySystemSession
      Returns:
      The dependency selector to use for building dependency graphs or null if dependencies are unconditionally included.
    • setDependencySelector

      public DefaultRepositorySystemSession setDependencySelector(DependencySelector dependencySelector)
      Sets the dependency selector to use for building dependency graphs.
      Parameters:
      dependencySelector - The dependency selector to use for building dependency graphs, may be null.
      Returns:
      This session for chaining, never null.
    • getVersionFilter

      public VersionFilter getVersionFilter()
      Description copied from interface: RepositorySystemSession
      Gets the version filter to use for building dependency graphs.
      Specified by:
      getVersionFilter in interface RepositorySystemSession
      Returns:
      The version filter to use for building dependency graphs or null if versions aren't filtered.
    • setVersionFilter

      public DefaultRepositorySystemSession setVersionFilter(VersionFilter versionFilter)
      Sets the version filter to use for building dependency graphs.
      Parameters:
      versionFilter - The version filter to use for building dependency graphs, may be null to not filter versions.
      Returns:
      This session for chaining, never null.
    • getDependencyGraphTransformer

      public DependencyGraphTransformer getDependencyGraphTransformer()
      Description copied from interface: RepositorySystemSession
      Gets the dependency graph transformer to use for building dependency graphs.
      Specified by:
      getDependencyGraphTransformer in interface RepositorySystemSession
      Returns:
      The dependency graph transformer to use for building dependency graphs or null if none.
    • setDependencyGraphTransformer

      public DefaultRepositorySystemSession 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 be null.
      Returns:
      This session for chaining, never null.
    • getData

      public SessionData getData()
      Description copied from interface: RepositorySystemSession
      Gets the custom data associated with this session.
      Specified by:
      getData in interface RepositorySystemSession
      Returns:
      The session data, never null.
    • setData

      Sets the custom data associated with this session.
      Parameters:
      data - The session data, may be null.
      Returns:
      This session for chaining, never null.
    • getCache

      public RepositoryCache getCache()
      Description copied from interface: RepositorySystemSession
      Gets the cache the repository system may use to save data for future reuse during the session.
      Specified by:
      getCache in interface RepositorySystemSession
      Returns:
      The repository cache or null if none.
    • setCache

      Sets the cache the repository system may use to save data for future reuse during the session.
      Parameters:
      cache - The repository cache, may be null if none.
      Returns:
      This session for chaining, never null.
    • setReadOnly

      public void setReadOnly()
      Marks this session as read-only such that any future attempts to call its mutators will fail with an exception. Marking an already read-only session as read-only has no effect. The session's data and cache remain writable though.
    • verifyStateForMutation

      private void verifyStateForMutation()
      Verifies this instance state for mutation operations: mutated instance must not be read-only or closed.