Skip to content

Commit

Permalink
Fix multiple access transformers with the same name.
Browse files Browse the repository at this point in the history
Add a set of unit tests to cover access transformer management in userdev.
  • Loading branch information
marchermans committed Apr 28, 2024
1 parent b11db6f commit 7e0b0e4
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ public AccessTransformer() {
@PathSensitive(PathSensitivity.NONE)
public abstract RegularFileProperty getInputFile();


@InputFiles
@PathSensitive(PathSensitivity.NONE)
public abstract ConfigurableFileCollection getTransformers();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,25 +27,21 @@ private CommonRuntimeTaskUtils() {
}

public static TaskProvider<? extends AccessTransformer> createAccessTransformer(Definition<?> definition, String namePreFix, File workspaceDirectory, Consumer<TaskProvider<? extends Runtime>> dependentTaskConfigurationHandler, FileTree files, Collection<String> data) {
final ConfigurableFileCollection ats = definition.getSpecification().getProject().getObjects().fileCollection();
ats.from(files);

final TaskProvider<AccessTransformerFileGenerator> generator;
if (!data.isEmpty()) {
generator = definition.getSpecification().getProject().getTasks().register(CommonRuntimeUtils.buildTaskName(definition.getSpecification(), namePreFix + "AccessTransformerGenerator"), AccessTransformerFileGenerator.class, task -> {
task.getOutput().set(new File(workspaceDirectory, "accesstransformers/" + namePreFix + "/_script-access-transformer.cfg"));
task.getAdditionalTransformers().set(data);
});
dependentTaskConfigurationHandler.accept(generator);

ats.from(generator.flatMap(WithOutput::getOutput));
} else {
generator = null;
}

return definition.getSpecification().getProject().getTasks().register(CommonRuntimeUtils.buildTaskName(definition.getSpecification(), String.format("apply%sAccessTransformer", StringCapitalizationUtils.capitalize(namePreFix))), AccessTransformer.class, task -> {
task.getTransformers().from(ats);
task.getTransformers().from(files);
if (generator != null) {
task.getTransformers().from(generator.flatMap(WithOutput::getOutput));
task.dependsOn(generator);
}
});
Expand Down

0 comments on commit 7e0b0e4

Please sign in to comment.