Package 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 Description DefaultRepositoryCacheManager()DefaultRepositoryCacheManager(java.lang.String name, IvySettings settings, java.io.File basedir)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddConfiguredTtl(java.util.Map<java.lang.String,java.lang.String> attributes)voidaddTTL(java.util.Map<java.lang.String,java.lang.String> attributes, PatternMatcher matcher, long duration)voidassertInsideCache(java.io.File fileInCache)ResolvedModuleRevisioncacheModuleDescriptor(DependencyResolver resolver, ResolvedResource mdRef, DependencyDescriptor dd, Artifact moduleArtifact, ResourceDownloader downloader, CacheMetadataOptions options)Caches an original module descriptor.voidclean()Cleans the whole cache.ArtifactDownloadReportdownload(Artifact artifact, ArtifactResourceResolver resourceResolver, ResourceDownloader resourceDownloader, CacheDownloadOptions options)Downloads an artifact to this cache.ArtifactDownloadReportdownloadRepositoryResource(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.voiddumpSettings()ResolvedModuleRevisionfindModuleInCache(DependencyDescriptor dd, ModuleRevisionId requestedRevisionId, CacheMetadataOptions options, java.lang.String expectedResolver)Search a module descriptor in cache for a mridjava.io.FilegetArchiveFileInCache(Artifact artifact)Returns a File object pointing to where the artifact can be found on the local file system.java.io.FilegetArchiveFileInCache(Artifact artifact, ArtifactOrigin origin)Returns a File object pointing to where the artifact can be found on the local file system.java.lang.StringgetArchivePathInCache(Artifact artifact)java.lang.StringgetArchivePathInCache(Artifact artifact, ArtifactOrigin origin)java.lang.StringgetArtifactPattern()java.io.FilegetBasedir()java.lang.StringgetChangingMatcherName()java.lang.StringgetChangingPattern()java.lang.StringgetDataFilePattern()longgetDefaultTTL()java.io.FilegetIvyFileInCache(ModuleRevisionId mrid)java.lang.StringgetIvyPattern()LockStrategygetLockStrategy()org.apache.ivy.core.cache.ModuleDescriptorMemoryCachegetMemoryCache()protected ModuleDescriptorParsergetModuleDescriptorParser(java.io.File moduleDescriptorFile)Choose write module descriptor parser for a given moduleDescriptorjava.lang.StringgetName()Returns the name of the repository cache manager.ArtifactgetOriginalMetadataArtifact(Artifact moduleArtifact)java.io.FilegetRepositoryCacheRoot()ArtifactOrigingetSavedArtifactOrigin(Artifact artifact)Returns the artifact origin of the given artifact as saved in this cache.IvySettingsgetSettings()longgetTTL(ModuleRevisionId mrid)booleanisCheckmodified()True if this cache should check lastmodified date to know if ivy files are up to date.booleanisUseOrigin()True if this cache should use artifacts original location when possible, false if they should be copied to cache.voidoriginalToCachedModuleDescriptor(DependencyResolver resolver, ResolvedResource originalMetadataRef, Artifact requestedMetadataArtifact, ResolvedModuleRevision rmr, ModuleDescriptorWriter writer)Stores a standardized version of an original module descriptor in the cache for later use.voidsaveResolvedRevision(java.lang.String resolverName, ModuleRevisionId mrid, java.lang.String revision)Caches a dynamic revision constraint resolution for a specific resolver.voidsaveResolvedRevision(ModuleRevisionId mrid, java.lang.String revision)Deprecated.voidsaveResolvers(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)voidsetArtifactPattern(java.lang.String artifactPattern)voidsetBasedir(java.io.File cache)voidsetChangingMatcher(java.lang.String changingMatcherName)voidsetChangingPattern(java.lang.String changingPattern)voidsetCheckmodified(boolean check)voidsetDataFilePattern(java.lang.String dataFilePattern)voidsetDefaultTTL(long defaultTTL)voidsetDefaultTTL(java.lang.String defaultTTL)voidsetIvyPattern(java.lang.String ivyPattern)voidsetLockStrategy(java.lang.String lockStrategyName)voidsetLockStrategy(LockStrategy lockStrategy)voidsetMemorySize(int size)voidsetName(java.lang.String name)voidsetSettings(IvySettings settings)voidsetUseOrigin(boolean b)java.lang.StringtoString()
-
-
-
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:
setSettingsin interfaceIvySettingsAware
-
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:RepositoryCacheManagerReturns the name of the repository cache manager.- Specified by:
getNamein interfaceRepositoryCacheManager- 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<java.lang.String,java.lang.String> attributes, PatternMatcher matcher, long duration)
-
addConfiguredTtl
public void addConfiguredTtl(java.util.Map<java.lang.String,java.lang.String> 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:
- boolean
-
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.- Returns:
- boolean
-
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- Parameters:
artifact- Artifact- Returns:
- File
-
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- Parameters:
artifact- Artifactorigin- ArtifactOrigin- Returns:
- File
-
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:
saveResolversin interfaceRepositoryCacheManager- Parameters:
md- the module descriptor resolvedmetadataResolverName- metadata resolver nameartifactResolverName- artifact resolver name
-
getSavedArtifactOrigin
public ArtifactOrigin getSavedArtifactOrigin(Artifact artifact)
Description copied from interface:RepositoryCacheManagerReturns 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:
getSavedArtifactOriginin interfaceRepositoryCacheManager- 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:RepositoryCacheManagerSearch a module descriptor in cache for a mrid- Specified by:
findModuleInCachein interfaceRepositoryCacheManager- Parameters:
dd- the dependency descriptor identifying the module to searchrequestedRevisionId- the requested dependency module revision id identifying the module to searchoptions- options on how caching should be handledexpectedResolver- 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:
- ModuleDescriptorParser
-
saveResolvedRevision
@Deprecated public void saveResolvedRevision(ModuleRevisionId mrid, java.lang.String revision)
Deprecated.Description copied from interface:RepositoryCacheManagerCaches a dynamic revision constraint resolution.- Specified by:
saveResolvedRevisionin interfaceRepositoryCacheManager- Parameters:
mrid- the dynamic module revision idrevision- the resolved revision
-
saveResolvedRevision
public void saveResolvedRevision(java.lang.String resolverName, ModuleRevisionId mrid, java.lang.String revision)Description copied from interface:RepositoryCacheManagerCaches a dynamic revision constraint resolution for a specific resolver.- Specified by:
saveResolvedRevisionin interfaceRepositoryCacheManager- Parameters:
resolverName- the resolver in which this dynamic revision was resolvedmrid- the dynamic module revision idrevision- the resolved revision
-
getTTL
public long getTTL(ModuleRevisionId mrid)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.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:RepositoryCacheManagerDownloads an artifact to this cache.- Specified by:
downloadin interfaceRepositoryCacheManager- Parameters:
artifact- the artifact to downloadresourceResolver- a resource resolver to use if the artifact needs to be resolved to a Resource for downloadingresourceDownloader- a resource downloader to use if actual download of the resource is neededoptions- 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:RepositoryCacheManagerDownload 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:
downloadRepositoryResourcein interfaceRepositoryCacheManager- Parameters:
resource- the resource of the file to put in cachename- 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 downloadrepository- 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 originalMetadataRef, Artifact requestedMetadataArtifact, ResolvedModuleRevision rmr, ModuleDescriptorWriter writer)
Description copied from interface:RepositoryCacheManagerStores a standardized version of an original module descriptor in the cache for later use.- Specified by:
originalToCachedModuleDescriptorin interfaceRepositoryCacheManager- Parameters:
resolver- the dependency resolver from which the cache request comes fromoriginalMetadataRef- a resolved resource pointing to the remote original module descriptorrequestedMetadataArtifact- the module descriptor artifact as requested originallyrmr- theResolvedModuleRevisionrepresenting the local cached module descriptorwriter- aModuleDescriptorWriterable 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:RepositoryCacheManagerCaches 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:
cacheModuleDescriptorin interfaceRepositoryCacheManager- Parameters:
resolver- the dependency resolver from which the cache request comes frommdRef- a resolved resource pointing to the remote original module descriptordd- the dependency descriptor for which the module descriptor should be cachedmoduleArtifact- the module descriptor artifact as requested originallydownloader- a ResourceDownloader able to download the original module descriptor resource if required by this cache implementationoptions- options to apply to cache this module descriptor- Returns:
- a
ResolvedModuleRevisionrepresenting the local cached module descriptor, or null if it failed - Throws:
java.text.ParseException- if an exception occurred while parsing the module descriptor
-
clean
public void clean()
Description copied from interface:RepositoryCacheManagerCleans the whole cache.- Specified by:
cleanin interfaceRepositoryCacheManager
-
dumpSettings
public void dumpSettings()
-
assertInsideCache
public final void assertInsideCache(java.io.File fileInCache)
- Throws:
java.lang.IllegalArgumentException- if the given path points outside of the cache.
-
-