@Override public FileCollectionSnapshot snapshot( FileCollection files, TaskFilePropertyCompareType compareType, TaskFilePropertyPathSensitivityType pathSensitivity) { return new OutputFilesCollectionSnapshot( getRoots(files), snapshotter.snapshot(files, compareType, pathSensitivity)); }
public void registerSerializers(SerializerRegistry registry) { DefaultSerializerRegistry nested = new DefaultSerializerRegistry(); snapshotter.registerSerializers(nested); registry.register( OutputFilesCollectionSnapshot.class, new OutputFilesCollectionSnapshot.SerializerImpl( nested.build(FileCollectionSnapshot.class), stringInterner)); }
public TaskUpToDateState( TaskInternal task, TaskHistoryRepository.History history, FileCollectionSnapshotter outputFilesSnapshotter, FileCollectionSnapshotter inputFilesSnapshotter, FileCollectionSnapshotter discoveredFilesSnapshotter) { TaskExecution thisExecution = history.getCurrentExecution(); TaskExecution lastExecution = history.getPreviousExecution(); noHistoryState = NoHistoryStateChangeRule.create(task, lastExecution); taskTypeState = TaskTypeStateChangeRule.create(task, lastExecution, thisExecution); inputPropertiesState = InputPropertiesStateChangeRule.create(task, lastExecution, thisExecution); // Capture outputs state try { outputFilesState = caching( OutputFilesStateChangeRule.create( task, lastExecution, thisExecution, outputFilesSnapshotter)); } catch (UncheckedIOException e) { throw new UncheckedIOException( String.format( "Failed to capture snapshot of output files for task '%s' during up-to-date check.", task.getName()), e); } // Capture inputs state try { FileCollectionSnapshot inputFilesSnapshot = inputFilesSnapshotter.snapshot(task.getInputs().getFiles()); this.inputFilesSnapshot = inputFilesSnapshot.getSnapshot(); inputFilesState = caching( InputFilesStateChangeRule.create(lastExecution, thisExecution, inputFilesSnapshot)); } catch (UncheckedIOException e) { throw new UncheckedIOException( String.format( "Failed to capture snapshot of input files for task '%s' during up-to-date check.", task.getName()), e); } // Capture discovered inputs state from previous execution try { discoveredInputFilesState = DiscoveredInputFilesStateChangeRule.create( lastExecution, thisExecution, discoveredFilesSnapshotter); } catch (UncheckedIOException e) { throw new UncheckedIOException( String.format( "Failed to capture snapshot of input files for task '%s' during up-to-date check.", task.getName()), e); } allTaskChanges = new SummaryTaskStateChanges( MAX_OUT_OF_DATE_MESSAGES, noHistoryState, taskTypeState, inputPropertiesState, outputFilesState, inputFilesState, caching(discoveredInputFilesState)); rebuildChanges = new SummaryTaskStateChanges( 1, noHistoryState, taskTypeState, inputPropertiesState, outputFilesState); }
@Override public FileCollectionSnapshot snapshot(TaskFilePropertySpec propertySpec) { return new OutputFilesCollectionSnapshot( getRoots(propertySpec.getPropertyFiles()), snapshotter.snapshot(propertySpec)); }
public FileCollectionSnapshot emptySnapshot() { return new OutputFilesCollectionSnapshot( Collections.<String, Boolean>emptyMap(), snapshotter.emptySnapshot()); }
@Override public FileCollectionSnapshot snapshot( FileCollection files, boolean allowReuse, TaskFilePropertyCompareType compareType) { return new OutputFilesSnapshot( getRoots(files), snapshotter.snapshot(files, allowReuse, compareType)); }