org.apache.ivy.core.cache

## Class DefaultRepositoryCacheManager

- java.lang.Object
- - org.apache.ivy.core.cache.DefaultRepositoryCacheManager

- All Implemented Interfaces:
    RepositoryCacheManager, IvySettingsAware

      public class DefaultRepositoryCacheManager
      extends java.lang.Object
      implements RepositoryCacheManager, IvySettingsAware

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultRepositoryCacheManager()`
    `DefaultRepositoryCacheManager(java.lang.String name, IvySettings settings, java.io.File basedir)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addConfiguredTtl(java.util.Map attributes)`
    `void` | `addTTL(java.util.Map attributes, PatternMatcher matcher, long duration)`
    `ResolvedModuleRevision` | `cacheModuleDescriptor(DependencyResolver resolver, ResolvedResource mdRef, DependencyDescriptor dd, Artifact moduleArtifact, ResourceDownloader downloader, CacheMetadataOptions options)` Caches an original module descriptor.
    `void` | `clean()` Cleans the whole cache.
    `ArtifactDownloadReport` | `download(Artifact artifact, ArtifactResourceResolver resourceResolver, ResourceDownloader resourceDownloader, CacheDownloadOptions options)` Downloads an artifact to this cache.
    `ArtifactDownloadReport` | `downloadRepositoryResource(Resource resource, java.lang.String name, java.lang.String type, java.lang.String extension, CacheResourceOptions options, Repository repository)` Download some repository resource and put it in the cache.
    `void` | `dumpSettings()`
    `ResolvedModuleRevision` | `findModuleInCache(DependencyDescriptor dd, ModuleRevisionId requestedRevisionId, CacheMetadataOptions options, java.lang.String expectedResolver)` Search a module descriptor in cache for a mrid
    `java.io.File` | `getArchiveFileInCache(Artifact artifact)` Returns a File object pointing to where the artifact can be found on the local file system.
    `java.io.File` | `getArchiveFileInCache(Artifact artifact, ArtifactOrigin origin)` Returns a File object pointing to where the artifact can be found on the local file system.
    `java.lang.String` | `getArchivePathInCache(Artifact artifact)`
    `java.lang.String` | `getArchivePathInCache(Artifact artifact, ArtifactOrigin origin)`
    `java.lang.String` | `getArtifactPattern()`
    `java.io.File` | `getBasedir()`
    `java.lang.String` | `getChangingMatcherName()`
    `java.lang.String` | `getChangingPattern()`
    `java.lang.String` | `getDataFilePattern()`
    `long` | `getDefaultTTL()`
    `java.io.File` | `getIvyFileInCache(ModuleRevisionId mrid)`
    `java.lang.String` | `getIvyPattern()`
    `LockStrategy` | `getLockStrategy()`
    `org.apache.ivy.core.cache.ModuleDescriptorMemoryCache` | `getMemoryCache()`
    `protected ModuleDescriptorParser` | `getModuleDescriptorParser(java.io.File moduleDescriptorFile)` Choose write module descriptor parser for a given moduleDescriptor
    `java.lang.String` | `getName()` Returns the name of the repository cache manager.
    `Artifact` | `getOriginalMetadataArtifact(Artifact moduleArtifact)`
    `java.io.File` | `getRepositoryCacheRoot()`
    `ArtifactOrigin` | `getSavedArtifactOrigin(Artifact artifact)` Returns the artifact origin of the given artifact as saved in this cache.
    `IvySettings` | `getSettings()`
    `long` | `getTTL(ModuleRevisionId mrid)`
    `boolean` | `isCheckmodified()` True if this cache should check lastmodified date to know if ivy files are up to date.
    `boolean` | `isUseOrigin()` True if this cache should use artifacts original location when possible, false if they should be copied to cache.
    `void` | `originalToCachedModuleDescriptor(DependencyResolver resolver, ResolvedResource orginalMetadataRef, Artifact requestedMetadataArtifact, ResolvedModuleRevision rmr, ModuleDescriptorWriter writer)` Stores a standardized version of an original module descriptor in the cache for later use.
    `void` | `saveResolvedRevision(ModuleRevisionId mrid, java.lang.String revision)` Caches a dynamic revision constraint resolution.
    `void` | `saveResolvers(ModuleDescriptor md, java.lang.String metadataResolverName, java.lang.String artifactResolverName)` Saves the information of which resolver was used to resolve a md, so that this info can be retrieve later (even after a jvm restart) by getSavedArtResolverName(ModuleDescriptor md)
    `void` | `setArtifactPattern(java.lang.String artifactPattern)`
    `void` | `setBasedir(java.io.File cache)`
    `void` | `setChangingMatcher(java.lang.String changingMatcherName)`
    `void` | `setChangingPattern(java.lang.String changingPattern)`
    `void` | `setCheckmodified(boolean check)`
    `void` | `setDataFilePattern(java.lang.String dataFilePattern)`
    `void` | `setDefaultTTL(long defaultTTL)`
    `void` | `setDefaultTTL(java.lang.String defaultTTL)`
    `void` | `setIvyPattern(java.lang.String ivyPattern)`
    `void` | `setLockStrategy(LockStrategy lockStrategy)`
    `void` | `setLockStrategy(java.lang.String lockStrategyName)`
    `void` | `setMemorySize(int size)`
    `void` | `setName(java.lang.String name)`
    `void` | `setSettings(IvySettings settings)`
    `void` | `setUseOrigin(boolean b)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### DefaultRepositoryCacheManager

          public DefaultRepositoryCacheManager()

    - #### DefaultRepositoryCacheManager

          public DefaultRepositoryCacheManager(java.lang.String name,
                                       IvySettings settings,
                                       java.io.File basedir)

  - ### Method Detail

    - #### getSettings

          public IvySettings getSettings()

    - #### setSettings

          public void setSettings(IvySettings settings)

      Specified by:
        `setSettings` in interface `IvySettingsAware`

    - #### getIvyFileInCache

          public java.io.File getIvyFileInCache(ModuleRevisionId mrid)

    - #### getIvyPattern

          public java.lang.String getIvyPattern()

    - #### getArtifactPattern

          public java.lang.String getArtifactPattern()

    - #### setArtifactPattern

          public void setArtifactPattern(java.lang.String artifactPattern)

    - #### getBasedir

          public java.io.File getBasedir()

    - #### setBasedir

          public void setBasedir(java.io.File cache)

    - #### getDefaultTTL

          public long getDefaultTTL()

    - #### setDefaultTTL

          public void setDefaultTTL(long defaultTTL)

    - #### setDefaultTTL

          public void setDefaultTTL(java.lang.String defaultTTL)

    - #### getDataFilePattern

          public java.lang.String getDataFilePattern()

    - #### setDataFilePattern

          public void setDataFilePattern(java.lang.String dataFilePattern)

    - #### setIvyPattern

          public void setIvyPattern(java.lang.String ivyPattern)

    - #### getName

          public java.lang.String getName()

      Description copied from interface: `RepositoryCacheManager`
      Returns the name of the repository cache manager.
      Specified by:
        `getName` in interface `RepositoryCacheManager`
      Returns:
        the name of the repository cache manager.

    - #### setName

          public void setName(java.lang.String name)

    - #### getChangingMatcherName

          public java.lang.String getChangingMatcherName()

    - #### setChangingMatcher

          public void setChangingMatcher(java.lang.String changingMatcherName)

    - #### getChangingPattern

          public java.lang.String getChangingPattern()

    - #### setChangingPattern

          public void setChangingPattern(java.lang.String changingPattern)

    - #### addTTL

          public void addTTL(java.util.Map attributes,
                    PatternMatcher matcher,
                    long duration)

    - #### addConfiguredTtl

          public void addConfiguredTtl(java.util.Map attributes)

    - #### setMemorySize

          public void setMemorySize(int size)

    - #### getMemoryCache

          public org.apache.ivy.core.cache.ModuleDescriptorMemoryCache getMemoryCache()

    - #### isCheckmodified

          public boolean isCheckmodified()

      True if this cache should check lastmodified date to know if ivy files are up to date.
      Returns:

    - #### setCheckmodified

          public void setCheckmodified(boolean check)

    - #### isUseOrigin

          public boolean isUseOrigin()

      True if this cache should use artifacts original location when possible, false if they should be copied to cache.

    - #### setUseOrigin

          public void setUseOrigin(boolean b)

    - #### getArchiveFileInCache

          public java.io.File getArchiveFileInCache(Artifact artifact)

      Returns a File object pointing to where the artifact can be found on the local file system. This is usually in the cache, but it can be directly in the repository if it is local and if the resolve has been done with useOrigin = true

    - #### getArchiveFileInCache

          public java.io.File getArchiveFileInCache(Artifact artifact,
                                           ArtifactOrigin origin)

      Returns a File object pointing to where the artifact can be found on the local file system. This is usually in the cache, but it can be directly in the repository if it is local and if the resolve has been done with useOrigin = true

    - #### getArchivePathInCache

          public java.lang.String getArchivePathInCache(Artifact artifact)

    - #### getArchivePathInCache

          public java.lang.String getArchivePathInCache(Artifact artifact,
                                               ArtifactOrigin origin)

    - #### saveResolvers

          public void saveResolvers(ModuleDescriptor md,
                           java.lang.String metadataResolverName,
                           java.lang.String artifactResolverName)

      Saves the information of which resolver was used to resolve a md, so that this info can be retrieve later (even after a jvm restart) by getSavedArtResolverName(ModuleDescriptor md)
      Specified by:
        `saveResolvers` in interface `RepositoryCacheManager`
      Parameters:
        `md` - the module descriptor resolved
        `name` - artifact resolver name

    - #### getSavedArtifactOrigin

          public ArtifactOrigin getSavedArtifactOrigin(Artifact artifact)

      Description copied from interface: `RepositoryCacheManager`
      Returns the artifact origin of the given artifact as saved in this cache.

      If the origin is unknown, the returned ArtifactOrigin instance will return true when `ArtifactOrigin.isUnknown(ArtifactOrigin)` is called.

      Specified by:
        `getSavedArtifactOrigin` in interface `RepositoryCacheManager`
      Parameters:
        `artifact` - the artifact for which the saved artifact origin should be returned.
      Returns:
        the artifact origin of the given artifact as saved in this cache

    - #### findModuleInCache

          public ResolvedModuleRevision findModuleInCache(DependencyDescriptor dd,
                                                 ModuleRevisionId requestedRevisionId,
                                                 CacheMetadataOptions options,
                                                 java.lang.String expectedResolver)

      Description copied from interface: `RepositoryCacheManager`
      Search a module descriptor in cache for a mrid
      Specified by:
        `findModuleInCache` in interface `RepositoryCacheManager`
      Parameters:
        `dd` - the dependency descriptor identifying the module to search
        `requestedRevisionId` - the requested dependency module revision id identifying the module to search
        `options` - options on how caching should be handled
        `expectedResolver` - the resolver with which the md in cache must have been resolved to be returned, null if this doesn't matter
      Returns:
        the ResolvedModuleRevision corresponding to the module found, null if none correct has been found in cache

    - #### getModuleDescriptorParser

          protected ModuleDescriptorParser getModuleDescriptorParser(java.io.File moduleDescriptorFile)

      Choose write module descriptor parser for a given moduleDescriptor
      Parameters:
        `moduleDescriptorFile` - a given module descriptor
      Returns:

    - #### saveResolvedRevision

          public void saveResolvedRevision(ModuleRevisionId mrid,
                                  java.lang.String revision)

      Description copied from interface: `RepositoryCacheManager`
      Caches a dynamic revision constraint resolution.
      Specified by:
        `saveResolvedRevision` in interface `RepositoryCacheManager`
      Parameters:
        `mrid` - the dynamic module revision id
        `revision` - the resolved revision

    - #### getTTL

          public long getTTL(ModuleRevisionId mrid)

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getRepositoryCacheRoot

          public java.io.File getRepositoryCacheRoot()

    - #### getLockStrategy

          public LockStrategy getLockStrategy()

    - #### setLockStrategy

          public void setLockStrategy(LockStrategy lockStrategy)

    - #### setLockStrategy

          public void setLockStrategy(java.lang.String lockStrategyName)

    - #### download

          public ArtifactDownloadReport download(Artifact artifact,
                                        ArtifactResourceResolver resourceResolver,
                                        ResourceDownloader resourceDownloader,
                                        CacheDownloadOptions options)

      Description copied from interface: `RepositoryCacheManager`
      Downloads an artifact to this cache.
      Specified by:
        `download` in interface `RepositoryCacheManager`
      Parameters:
        `artifact` - the artifact to download
        `resourceResolver` - a resource resolver to use if the artifact needs to be resolved to a Resource for downloading
        `resourceDownloader` - a resource downloader to use if actual download of the resource is needed
        `options` - a set of options to adjust the download
      Returns:
        a report indicating how the download was performed

    - #### downloadRepositoryResource

          public ArtifactDownloadReport downloadRepositoryResource(Resource resource,
                                                          java.lang.String name,
                                                          java.lang.String type,
                                                          java.lang.String extension,
                                                          CacheResourceOptions options,
                                                          Repository repository)

      Description copied from interface: `RepositoryCacheManager`
      Download some repository resource and put it in the cache.

      If the cached version is considered enough up to date, no downloading is done.

      Specified by:
        `downloadRepositoryResource` in interface `RepositoryCacheManager`
      Parameters:
        `resource` - the resource of the file to put in cache
        `name` - the descriptive name of the resource (helps while manually looking into the cache files)
        `type` - the type of the resource (helps while manually looking into the cache files)
        `extension` - the extension of the resource (helps while manually looking into the cache files)
        `options` - a set of options to adjust the download
        `repository` - the repository which resolve the content of the resource
      Returns:
        a report indicating how the download was performed

    - #### originalToCachedModuleDescriptor

          public void originalToCachedModuleDescriptor(DependencyResolver resolver,
                                              ResolvedResource orginalMetadataRef,
                                              Artifact requestedMetadataArtifact,
                                              ResolvedModuleRevision rmr,
                                              ModuleDescriptorWriter writer)

      Description copied from interface: `RepositoryCacheManager`
      Stores a standardized version of an original module descriptor in the cache for later use.
      Specified by:
        `originalToCachedModuleDescriptor` in interface `RepositoryCacheManager`
      Parameters:
        `resolver` - the dependency resolver from which the cache request comes from
        `orginalMetadataRef` - a resolved resource pointing to the remote original module descriptor
        `requestedMetadataArtifact` - the module descriptor artifact as requested originally
        `rmr` - the `ResolvedModuleRevision` representing the local cached module descriptor
        `writer` - a `ModuleDescriptorWriter` able to write the module descriptor to a stream.

    - #### cacheModuleDescriptor

          public ResolvedModuleRevision cacheModuleDescriptor(DependencyResolver resolver,
                                                     ResolvedResource mdRef,
                                                     DependencyDescriptor dd,
                                                     Artifact moduleArtifact,
                                                     ResourceDownloader downloader,
                                                     CacheMetadataOptions options)
                                                       throws java.text.ParseException

      Description copied from interface: `RepositoryCacheManager`
      Caches an original module descriptor.

      After this call, the original module descriptor file (with no modification nor conversion) should be available as a local file.

      Specified by:
        `cacheModuleDescriptor` in interface `RepositoryCacheManager`
      Parameters:
        `resolver` - the dependency resolver from which the cache request comes from
        `mdRef` - a resolved resource pointing to the remote original module descriptor
        `dd` - the dependency descriptor for which the module descriptor should be cached
        `moduleArtifact` - the module descriptor artifact as requested originally
        `downloader` - a ResourceDownloader able to download the original module descriptor resource if required by this cache implementation
        `options` - options to apply to cache this module descriptor
      Returns:
        a `ResolvedModuleRevision` representing the local cached module descriptor, or null if it failed
      Throws:
        `java.text.ParseException` - if an exception occurred while parsing the module descriptor

    - #### getOriginalMetadataArtifact

          public Artifact getOriginalMetadataArtifact(Artifact moduleArtifact)

    - #### clean

          public void clean()

      Description copied from interface: `RepositoryCacheManager`
      Cleans the whole cache.
      Specified by:
        `clean` in interface `RepositoryCacheManager`

    - #### dumpSettings

          public void dumpSettings()