@Singleton public class DefaultGlobalCacheManager extends java.lang.Object implements GlobalCacheManager
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
GO_BINARAY_CACHE_PATH |
static java.lang.String |
GO_METADATA_PATH |
static java.lang.String |
GOPATH_CACHE_PATH |
| Constructor and Description |
|---|
DefaultGlobalCacheManager(GolangPluginSetting setting) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
currentRepositoryIsUpToDate(NotationDependency dependency)
Check if the repository corresponding to a dependency package has been updated recently in global cache.
|
void |
ensureGlobalCacheExistAndWritable()
Ensures global cache exists and is writable.
|
java.nio.file.Path |
getGlobalGoBinCache(java.lang.String relativePath)
Get the path which locates in
relativePath relative to ~/.gradle/go/binary |
java.nio.file.Path |
getGlobalPackageCachePath(java.lang.String packagePath)
Get the go repository in global cache corresponding to
packagePath |
java.util.Optional<GlobalCacheMetadata> |
getMetadata(java.nio.file.Path packagePath)
Get the metadata of a package specified by
packagePath |
<T> T |
runWithGlobalCacheLock(GolangDependency dependency,
java.util.concurrent.Callable<T> callable)
Locks global cache directory of
dependency, and call the callable |
void |
updateCurrentDependencyLock(GolangDependency dependency)
Updates corresponding metadata (i.e.
|
public static final java.lang.String GOPATH_CACHE_PATH
public static final java.lang.String GO_BINARAY_CACHE_PATH
public static final java.lang.String GO_METADATA_PATH
@Inject public DefaultGlobalCacheManager(GolangPluginSetting setting)
public void ensureGlobalCacheExistAndWritable()
GlobalCacheManagerensureGlobalCacheExistAndWritable in interface GlobalCacheManagerpublic java.nio.file.Path getGlobalPackageCachePath(java.lang.String packagePath)
GlobalCacheManagerpackagePathgetGlobalPackageCachePath in interface GlobalCacheManagerpackagePath - import path of the packagepublic java.nio.file.Path getGlobalGoBinCache(java.lang.String relativePath)
GlobalCacheManagerrelativePath relative to ~/.gradle/go/binarygetGlobalGoBinCache in interface GlobalCacheManagerrelativePath - the relative path to ~/.gradle/go/binarypublic java.util.Optional<GlobalCacheMetadata> getMetadata(java.nio.file.Path packagePath)
GlobalCacheManagerpackagePathgetMetadata in interface GlobalCacheManagerpackagePath - import path of the packageOptional.empty() otherwise.public <T> T runWithGlobalCacheLock(GolangDependency dependency, java.util.concurrent.Callable<T> callable) throws java.lang.Exception
GlobalCacheManagerdependency, and call the callablerunWithGlobalCacheLock in interface GlobalCacheManagerT - return value type of callabledependency - dependency to be lockedcallable - code to be executed under lockjava.lang.Exception - exception thrown by callablepublic boolean currentRepositoryIsUpToDate(NotationDependency dependency)
GlobalCacheManagercurrentRepositoryIsUpToDate in interface GlobalCacheManagerdependency - the dependency packagetrue if the package is up-to-date, false otherwise.GolangPluginSetting.getGlobalCacheSecond()public void updateCurrentDependencyLock(GolangDependency dependency)
GlobalCacheManagerupdateCurrentDependencyLock in interface GlobalCacheManagerdependency - the dependency package