package org.example;
import java.io.File;
import org.gradle.api.*;
import org.gradle.api.file.*;
import org.gradle.api.tasks.*;
public class Instrument extends DefaultTask {
private FileCollection classFiles;
private File destinationDir;
@SkipWhenEmpty
@InputFiles
public FileCollection getClassFiles() {
return this.classFiles;
}
public void setClassFiles(FileCollection files) {
this.classFiles = files;
}
@OutputDirectory
public File getDestinationDir() { return this.destinationDir; }
public void setDestinationDir(File dir) { this.destinationDir = dir; }
@TaskAction
public void doIt() {
getProject().copy(new Action<CopySpec>() {
public void execute(CopySpec spec) {
spec.into(destinationDir).
from(classFiles).
rename("(.*)\\.class", "$1_instrumented.class");
}
});
}
}