Search in sources :

Example 1 with ValueSnapshot

use of org.gradle.api.internal.changedetection.state.ValueSnapshot in project gradle by gradle.

the class TaskCacheKeyCalculator method calculate.

public TaskOutputCachingBuildCacheKey calculate(TaskExecution execution) {
    DefaultTaskOutputCachingBuildCacheKeyBuilder builder = new DefaultTaskOutputCachingBuildCacheKeyBuilder();
    HashCode taskClassLoaderHash = execution.getTaskClassLoaderHash();
    List<HashCode> taskActionsClassLoaderHashes = execution.getTaskActionsClassLoaderHashes();
    builder.appendTaskClass(execution.getTaskClass());
    builder.appendClassloaderHash(taskClassLoaderHash);
    builder.appendActionsClassloaderHashes(taskActionsClassLoaderHashes);
    SortedMap<String, ValueSnapshot> inputProperties = execution.getInputProperties();
    for (Map.Entry<String, ValueSnapshot> entry : inputProperties.entrySet()) {
        DefaultBuildCacheHasher newHasher = new DefaultBuildCacheHasher();
        entry.getValue().appendToHasher(newHasher);
        HashCode hash = newHasher.hash();
        builder.appendInputPropertyHash(entry.getKey(), hash);
    }
    SortedMap<String, FileCollectionSnapshot> inputFilesSnapshots = execution.getInputFilesSnapshot();
    for (Map.Entry<String, FileCollectionSnapshot> entry : inputFilesSnapshots.entrySet()) {
        FileCollectionSnapshot snapshot = entry.getValue();
        DefaultBuildCacheHasher newHasher = new DefaultBuildCacheHasher();
        snapshot.appendToHasher(newHasher);
        HashCode hash = newHasher.hash();
        builder.appendInputPropertyHash(entry.getKey(), hash);
    }
    SortedSet<String> outputPropertyNamesForCacheKey = execution.getOutputPropertyNamesForCacheKey();
    for (String cacheableOutputPropertyName : outputPropertyNamesForCacheKey) {
        builder.appendOutputPropertyName(cacheableOutputPropertyName);
    }
    return builder.build();
}
Also used : ValueSnapshot(org.gradle.api.internal.changedetection.state.ValueSnapshot) DefaultBuildCacheHasher(org.gradle.caching.internal.DefaultBuildCacheHasher) HashCode(com.google.common.hash.HashCode) FileCollectionSnapshot(org.gradle.api.internal.changedetection.state.FileCollectionSnapshot) Map(java.util.Map) SortedMap(java.util.SortedMap)

Aggregations

HashCode (com.google.common.hash.HashCode)1 Map (java.util.Map)1 SortedMap (java.util.SortedMap)1 FileCollectionSnapshot (org.gradle.api.internal.changedetection.state.FileCollectionSnapshot)1 ValueSnapshot (org.gradle.api.internal.changedetection.state.ValueSnapshot)1 DefaultBuildCacheHasher (org.gradle.caching.internal.DefaultBuildCacheHasher)1