Skip to content

Commit 4ae45cf

Browse files
committed
improved gradle task to public info about incoming and outcoming files
1 parent 18fb551 commit 4ae45cf

2 files changed

Lines changed: 42 additions & 0 deletions

File tree

jcp-tests/jcp-test-gradle/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,7 @@ task(changeSourceFolder) {
6565

6666
compileJava.dependsOn preprocess
6767

68+
gradle.buildFinished {
69+
println("Incoming preprocess files: " + preprocess.incomingFiles.size())
70+
println("Resulted preprocess files: " + preprocess.outcomingFiles.size())
71+
}

jcp/src/main/java/com/igormaznitsa/jcp/gradle/JcpTask.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
import java.nio.charset.StandardCharsets;
1414
import java.util.ArrayList;
1515
import java.util.Arrays;
16+
import java.util.Collection;
1617
import java.util.Collections;
1718
import java.util.List;
19+
import java.util.concurrent.atomic.AtomicReference;
1820
import java.util.stream.Collectors;
1921
import javax.inject.Inject;
2022
import org.apache.commons.io.FilenameUtils;
@@ -140,6 +142,21 @@ public class JcpTask extends DefaultTask {
140142
*/
141143
private final Property<Boolean> dontOverwriteSameContent;
142144

145+
/**
146+
* Collection of all files which have been generated during preprocessing.
147+
*/
148+
private final ListProperty<File> outcomingFiles;
149+
150+
/**
151+
* Collection of all files which have been used for preprocessing (including configuration files)
152+
*/
153+
private final ListProperty<File> incomingFiles;
154+
155+
private final AtomicReference<Iterable<File>> outcomingFilesIterator =
156+
new AtomicReference<>(Collections.emptyList());
157+
private final AtomicReference<Iterable<File>> incomingFilesIterator =
158+
new AtomicReference<>(Collections.emptyList());
159+
143160
@Inject
144161
public JcpTask(final ObjectFactory factory) {
145162
this.allowWhitespaces = factory.property(Boolean.class).convention(false);
@@ -172,6 +189,20 @@ public JcpTask(final ObjectFactory factory) {
172189
this.baseDir = factory.property(File.class).convention(this.getProject().getProjectDir());
173190
this.target = factory.property(File.class).convention(new File(this.getProject().getBuildDir(),
174191
"java-comment-preprocessor" + File.separatorChar + this.getTaskIdentity().name));
192+
193+
this.incomingFiles = factory.listProperty(File.class)
194+
.value(() -> this.incomingFilesIterator.get().iterator());
195+
196+
this.outcomingFiles = factory.listProperty(File.class)
197+
.value(() -> this.outcomingFilesIterator.get().iterator());
198+
}
199+
200+
public ListProperty<File> getOutcomingFiles() {
201+
return this.outcomingFiles;
202+
}
203+
204+
public ListProperty<File> getIncomingFiles() {
205+
return this.incomingFiles;
175206
}
176207

177208
@Override
@@ -394,5 +425,12 @@ public void warning(final String message) {
394425

395426
logger.debug("Preprocessing starting");
396427
preprocessor.execute();
428+
429+
final Collection<File> foundAllGeneratedFiles =
430+
preprocessor.getContext().findAllGeneratedFiles();
431+
final Collection<File> foundAllInputFiles = preprocessor.getContext().findAllInputFiles();
432+
433+
this.outcomingFilesIterator.set(foundAllGeneratedFiles);
434+
this.incomingFilesIterator.set(foundAllInputFiles);
397435
}
398436
}

0 commit comments

Comments
 (0)