org.gradle.api.tasks.incremental.InputFileDetails Java Examples
The following examples show how to use
org.gradle.api.tasks.incremental.InputFileDetails.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: JarChangeProcessor.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 6 votes |
public RebuildInfo processJarChange(InputFileDetails jarChangeDetails, JarArchive jarArchive) { JarSnapshot existing = jarSnapshotFeeder.changedJar(jarChangeDetails.getFile()); if (jarChangeDetails.isAdded()) { return DefaultRebuildInfo.NOTHING_TO_REBUILD; } if (jarChangeDetails.isRemoved()) { if (existing != null) { return new AllFromJarRebuildInfo(jarArchive); } else { return DefaultRebuildInfo.FULL_REBUILD; } } if (jarChangeDetails.isModified()) { if (existing != null) { JarSnapshot newSnapshot = jarSnapshotFeeder.createSnapshot(jarArchive); JarDelta jarDelta = existing.compareToSnapshot(newSnapshot); return new SpecificClassesRebuildInfo(jarDelta); } else { return new AllFromJarRebuildInfo(jarArchive); } } throw new IllegalArgumentException("Unknown input file details provided: " + jarChangeDetails); }
Example #2
Source File: SelectiveCompilation.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 6 votes |
public void execute(InputFileDetails inputFileDetails) { if (fullRebuildNeeded != null) { return; } File inputFile = inputFileDetails.getFile(); String name = inputFile.getName(); if (name.endsWith(".java")) { JavaSourceClass source = mapper.toJavaSourceClass(inputFile); compiler.addStaleClass(source); changedSourceOnly.include(source.getRelativePath()); Set<String> actualDependents = dependencyInfo.getActualDependents(source.getClassName()); if (actualDependents == null) { fullRebuildNeeded = "change to " + source.getClassName() + " requires full rebuild"; return; } for (String d : actualDependents) { JavaSourceClass dSource = mapper.toJavaSourceClass(d); compiler.addStaleClass(dSource); changedSourceOnly.include(dSource.getRelativePath()); } } if (name.endsWith(".jar")) { fullRebuildNeeded = "change to " + inputFile + " requires full rebuild"; return; } }
Example #3
Source File: JarChangeProcessor.java From pushfish-android with BSD 2-Clause "Simplified" License | 6 votes |
public RebuildInfo processJarChange(InputFileDetails jarChangeDetails, JarArchive jarArchive) { JarSnapshot existing = jarSnapshotFeeder.changedJar(jarChangeDetails.getFile()); if (jarChangeDetails.isAdded()) { return DefaultRebuildInfo.NOTHING_TO_REBUILD; } if (jarChangeDetails.isRemoved()) { if (existing != null) { return new AllFromJarRebuildInfo(jarArchive); } else { return DefaultRebuildInfo.FULL_REBUILD; } } if (jarChangeDetails.isModified()) { if (existing != null) { JarSnapshot newSnapshot = jarSnapshotFeeder.createSnapshot(jarArchive); JarDelta jarDelta = existing.compareToSnapshot(newSnapshot); return new SpecificClassesRebuildInfo(jarDelta); } else { return new AllFromJarRebuildInfo(jarArchive); } } throw new IllegalArgumentException("Unknown input file details provided: " + jarChangeDetails); }
Example #4
Source File: SelectiveCompilation.java From pushfish-android with BSD 2-Clause "Simplified" License | 6 votes |
public void execute(InputFileDetails inputFileDetails) { if (fullRebuildNeeded != null) { return; } File inputFile = inputFileDetails.getFile(); String name = inputFile.getName(); if (name.endsWith(".java")) { JavaSourceClass source = mapper.toJavaSourceClass(inputFile); compiler.addStaleClass(source); changedSourceOnly.include(source.getRelativePath()); Set<String> actualDependents = dependencyInfo.getActualDependents(source.getClassName()); if (actualDependents == null) { fullRebuildNeeded = "change to " + source.getClassName() + " requires full rebuild"; return; } for (String d : actualDependents) { JavaSourceClass dSource = mapper.toJavaSourceClass(d); compiler.addStaleClass(dSource); changedSourceOnly.include(dSource.getRelativePath()); } } if (name.endsWith(".jar")) { fullRebuildNeeded = "change to " + inputFile + " requires full rebuild"; return; } }
Example #5
Source File: JarChangeProcessor.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
public void processChange(InputFileDetails input, RecompilationSpec spec) { JarArchive jarArchive = new JarArchive(input.getFile(), fileOperations.zipTree(input.getFile())); JarChangeDependentsFinder dependentsFinder = new JarChangeDependentsFinder(jarClasspathSnapshot, previousCompilation); DependentsSet actualDependents = dependentsFinder.getActualDependents(input, jarArchive); if (actualDependents.isDependencyToAll()) { spec.setFullRebuildCause(actualDependents.getDescription(), input.getFile()); return; } spec.getClassNames().addAll(actualDependents.getDependentClasses()); }
Example #6
Source File: ChangesOnlyIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
@Override protected void doOutOfDate(final Action<? super InputFileDetails> outOfDateAction) { for (TaskStateChange change : inputFilesState) { InputFileDetails fileChange = (InputFileDetails) change; if (fileChange.isRemoved()) { removedFiles.add(fileChange); } else { outOfDateAction.execute(fileChange); } } }
Example #7
Source File: StatefulIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
public void removed(Action<? super InputFileDetails> removedAction) { if (!outOfDateProcessed) { throw new IllegalStateException("Must first process outOfDate files before processing removed files"); } if (removedProcessed) { throw new IllegalStateException("Cannot process removed files multiple times"); } doRemoved(removedAction); removedProcessed = true; }
Example #8
Source File: StatefulIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
public void outOfDate(final Action<? super InputFileDetails> outOfDateAction) { if (outOfDateProcessed) { throw new IllegalStateException("Cannot process outOfDate files multiple times"); } doOutOfDate(outOfDateAction); outOfDateProcessed = true; }
Example #9
Source File: ChangesOnlyIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
@Override protected void doOutOfDate(final Action<? super InputFileDetails> outOfDateAction) { for (TaskStateChange change : inputFilesState) { InputFileDetails fileChange = (InputFileDetails) change; if (fileChange.isRemoved()) { removedFiles.add(fileChange); } else { outOfDateAction.execute(fileChange); } } }
Example #10
Source File: StatefulIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
public void removed(Action<? super InputFileDetails> removedAction) { if (!outOfDateProcessed) { throw new IllegalStateException("Must first process outOfDate files before processing removed files"); } if (removedProcessed) { throw new IllegalStateException("Cannot process removed files multiple times"); } doRemoved(removedAction); removedProcessed = true; }
Example #11
Source File: StatefulIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
public void outOfDate(final Action<? super InputFileDetails> outOfDateAction) { if (outOfDateProcessed) { throw new IllegalStateException("Cannot process outOfDate files multiple times"); } doOutOfDate(outOfDateAction); outOfDateProcessed = true; }
Example #12
Source File: JavaChangeProcessor.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
public void processChange(InputFileDetails input, RecompilationSpec spec) { String className = sourceToNameConverter.getClassName(input.getFile()); spec.getClassNames().add(className); DependentsSet actualDependents = previousCompilation.getDependents(className); if (actualDependents.isDependencyToAll()) { spec.setFullRebuildCause(actualDependents.getDescription(), input.getFile()); return; } spec.getClassNames().addAll(actualDependents.getDependentClasses()); }
Example #13
Source File: RecompilationSpecProvider.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
public void execute(InputFileDetails input) { if (spec.getFullRebuildCause() != null) { return; } if (input.getFile().getName().endsWith(".java")) { javaChangeProcessor.processChange(input, spec); } if (input.getFile().getName().endsWith(".jar")) { jarChangeProcessor.processChange(input, spec); } }
Example #14
Source File: JarChangeProcessor.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 5 votes |
public void processChange(InputFileDetails input, RecompilationSpec spec) { JarArchive jarArchive = new JarArchive(input.getFile(), fileOperations.zipTree(input.getFile())); JarChangeDependentsFinder dependentsFinder = new JarChangeDependentsFinder(jarClasspathSnapshot, previousCompilation); DependentsSet actualDependents = dependentsFinder.getActualDependents(input, jarArchive); if (actualDependents.isDependencyToAll()) { spec.setFullRebuildCause(actualDependents.getDescription(), input.getFile()); return; } spec.getClassNames().addAll(actualDependents.getDependentClasses()); }
Example #15
Source File: ChangesOnlyIncrementalTaskInputs.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
@Override protected void doOutOfDate(final Action<? super InputFileDetails> outOfDateAction) { for (TaskStateChange change : inputFilesState) { InputFileDetails fileChange = (InputFileDetails) change; if (fileChange.isRemoved()) { removedFiles.add(fileChange); } else { outOfDateAction.execute(fileChange); } } }
Example #16
Source File: RecompilationSpecProvider.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
public void execute(InputFileDetails input) { if (spec.getFullRebuildCause() != null) { return; } if (input.getFile().getName().endsWith(".java")) { javaChangeProcessor.processChange(input, spec); } if (input.getFile().getName().endsWith(".jar")) { jarChangeProcessor.processChange(input, spec); } }
Example #17
Source File: StatefulIncrementalTaskInputs.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
public void removed(Action<? super InputFileDetails> removedAction) { if (!outOfDateProcessed) { throw new IllegalStateException("Must first process outOfDate files before processing removed files"); } if (removedProcessed) { throw new IllegalStateException("Cannot process removed files multiple times"); } doRemoved(removedAction); removedProcessed = true; }
Example #18
Source File: JavaChangeProcessor.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
public void processChange(InputFileDetails input, RecompilationSpec spec) { String className = sourceToNameConverter.getClassName(input.getFile()); spec.getClassNames().add(className); DependentsSet actualDependents = previousCompilation.getDependents(className); if (actualDependents.isDependencyToAll()) { spec.setFullRebuildCause(actualDependents.getDescription(), input.getFile()); return; } spec.getClassNames().addAll(actualDependents.getDependentClasses()); }
Example #19
Source File: StatefulIncrementalTaskInputs.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
public void outOfDate(final Action<? super InputFileDetails> outOfDateAction) { if (outOfDateProcessed) { throw new IllegalStateException("Cannot process outOfDate files multiple times"); } doOutOfDate(outOfDateAction); outOfDateProcessed = true; }
Example #20
Source File: StatefulIncrementalTaskInputs.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
public void outOfDate(final Action<? super InputFileDetails> outOfDateAction) { if (outOfDateProcessed) { throw new IllegalStateException("Cannot process outOfDate files multiple times"); } doOutOfDate(outOfDateAction); outOfDateProcessed = true; }
Example #21
Source File: ChangesOnlyIncrementalTaskInputs.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
@Override protected void doOutOfDate(final Action<? super InputFileDetails> outOfDateAction) { for (TaskStateChange change : inputFilesState) { InputFileDetails fileChange = (InputFileDetails) change; if (fileChange.isRemoved()) { removedFiles.add(fileChange); } else { outOfDateAction.execute(fileChange); } } }
Example #22
Source File: StatefulIncrementalTaskInputs.java From pushfish-android with BSD 2-Clause "Simplified" License | 5 votes |
public void removed(Action<? super InputFileDetails> removedAction) { if (!outOfDateProcessed) { throw new IllegalStateException("Must first process outOfDate files before processing removed files"); } if (removedProcessed) { throw new IllegalStateException("Cannot process removed files multiple times"); } doRemoved(removedAction); removedProcessed = true; }
Example #23
Source File: RebuildIncrementalTaskInputs.java From pushfish-android with BSD 2-Clause "Simplified" License | 4 votes |
public void doOutOfDate(Action<? super InputFileDetails> outOfDateAction) { for (File file : task.getInputs().getFiles()) { outOfDateAction.execute(new RebuildInputFile(file)); } }
Example #24
Source File: JarChangeDependentsFinder.java From pushfish-android with BSD 2-Clause "Simplified" License | 4 votes |
public DependentsSet getActualDependents(InputFileDetails jarChangeDetails, JarArchive jarArchive) { if (jarChangeDetails.isAdded()) { if (jarClasspathSnapshot.isAnyClassDuplicated(jarArchive)) { //at least one of the classes from the new jar is already present in jar classpath //to avoid calculation which class gets on the classpath first, rebuild all return new DependencyToAll("at least one of the classes of '" + jarArchive.file.getName() + "' is already present in classpath"); } else { //none of the new classes in the jar are duplicated on classpath, don't rebuild return new DefaultDependentsSet(); } } JarSnapshot previous = previousCompilation.getJarSnapshot(jarChangeDetails.getFile()); if (previous == null) { //we don't know what classes were dependents of the jar in the previous build //for example, a class (in jar) with a constant might have changed into a class without a constant - we need to rebuild everything return new DependencyToAll("missing jar snapshot of '" + jarArchive.file.getName() + "' from previous build"); } if (jarChangeDetails.isRemoved()) { DependentsSet allClasses = previous.getAllClasses(); if (allClasses.isDependencyToAll()) { return new DependencyToAll("at least one of the classes of removed jar '" + jarArchive.file.getName() + "' requires it"); } //recompile all dependents of all the classes from jar return previousCompilation.getDependents(allClasses.getDependentClasses()); } if (jarChangeDetails.isModified()) { JarSnapshot currentSnapshot = jarClasspathSnapshot.getSnapshot(jarArchive); AffectedClasses affected = currentSnapshot.getAffectedClassesSince(previous); if (affected.getAltered().isDependencyToAll()) { //at least one of the classes changed in the jar is a 'dependency-to-all' return affected.getAltered(); } if (jarClasspathSnapshot.isAnyClassDuplicated(affected.getAdded())) { //A new duplicate class on classpath. As we don't fancy-handle classpath order right now, we don't know which class is on classpath first. //For safe measure rebuild everything return new DependencyToAll("at least one of the classes of modified jar '" + jarArchive.file.getName() + "' is already present in the classpath"); } //recompile all dependents of the classes changed in the jar return previousCompilation.getDependents(affected.getAltered().getDependentClasses()); } throw new IllegalArgumentException("Unknown input file details provided: " + jarChangeDetails); }
Example #25
Source File: ChangesOnlyIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 4 votes |
@Override protected void doRemoved(Action<? super InputFileDetails> removedAction) { for (InputFileDetails removedFile : removedFiles) { removedAction.execute(removedFile); } }
Example #26
Source File: RebuildIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 4 votes |
public void doRemoved(Action<? super InputFileDetails> removedAction) { }
Example #27
Source File: RebuildIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 4 votes |
public void doOutOfDate(Action<? super InputFileDetails> outOfDateAction) { for (File file : task.getInputs().getFiles()) { outOfDateAction.execute(new RebuildInputFile(file)); } }
Example #28
Source File: ChangesOnlyIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 4 votes |
@Override protected void doRemoved(Action<? super InputFileDetails> removedAction) { for (InputFileDetails removedFile : removedFiles) { removedAction.execute(removedFile); } }
Example #29
Source File: RebuildIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 4 votes |
public void doRemoved(Action<? super InputFileDetails> removedAction) { }
Example #30
Source File: RebuildIncrementalTaskInputs.java From Pushjet-Android with BSD 2-Clause "Simplified" License | 4 votes |
public void doOutOfDate(Action<? super InputFileDetails> outOfDateAction) { for (File file : task.getInputs().getFiles()) { outOfDateAction.execute(new RebuildInputFile(file)); } }