Skip to content

Commit

Permalink
cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
larsgrefer committed Aug 12, 2021
1 parent 7dd1f6c commit 2d4a5d8
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package io.freefair.gradle.plugins.lombok;

import io.freefair.gradle.plugins.lombok.internal.ConfigUtil;
import io.freefair.gradle.plugins.lombok.tasks.CheckLombokConfig;
import io.freefair.gradle.plugins.lombok.tasks.Delombok;
import io.freefair.gradle.plugins.lombok.tasks.LombokConfig;
Expand All @@ -14,7 +15,6 @@
import org.gradle.api.plugins.JavaPluginExtension;
import org.gradle.api.plugins.quality.CodeQualityExtension;
import org.gradle.api.provider.Property;
import org.gradle.api.provider.Provider;
import org.gradle.api.tasks.PathSensitivity;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.TaskProvider;
Expand All @@ -23,10 +23,7 @@
import org.gradle.language.base.plugins.LifecycleBasePlugin;
import org.gradle.testing.jacoco.plugins.JacocoPlugin;

import javax.annotation.Nullable;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.HashMap;
import java.util.Map;

@Getter
Expand Down Expand Up @@ -144,29 +141,14 @@ private void handleLombokConfig(SourceSet sourceSet, TaskProvider<JavaCompile> c
return;
}

Map<File, TaskProvider<LombokConfig>> lombokConfigTasks = new HashMap<>();
Map<File, TaskProvider<LombokConfig>> lombokConfigTasks = ConfigUtil.getLombokConfigTasks(project, sourceSet.getName(), sourceSet.getJava().getSrcDirs());

TaskProvider<Task> generateConfigsTask = project.getTasks().register(sourceSet.getTaskName("generate", "EffectiveLombokConfigs"), genConfigsTask -> {
genConfigsTask.setGroup("lombok");
genConfigsTask.setDescription("Generate effective Lombok configurations for source-set '" + sourceSet.getName() + "'");
lombokConfigTasks.values().forEach(genConfigsTask::dependsOn);
});

int i = 1;
for (File srcDir : sourceSet.getJava().getSrcDirs()) {

int finalI = i;
TaskProvider<LombokConfig> genConfigTask = project.getTasks().register(sourceSet.getTaskName("generate", "EffectiveLombokConfig" + i), LombokConfig.class, lombokConfigTask -> {
lombokConfigTask.setGroup("lombok");
lombokConfigTask.setDescription("Generate effective Lombok configuration for '" + srcDir + "' of source-set '" + sourceSet.getName() + "'.");
lombokConfigTask.getPaths().from(srcDir);
lombokConfigTask.getOutputFile().set(project.getLayout().getBuildDirectory().file("lombok/effective-config/" + sourceSet.getName() + "/lombok-" + finalI + ".config"));
});
generateConfigsTask.configure(t -> t.dependsOn(genConfigTask));
lombokConfigTasks.put(srcDir, genConfigTask);

i++;
}

TaskProvider<CheckLombokConfig> checkLombokConfig = project.getTasks()
.register(sourceSet.getTaskName("check", "lombokConfig"), CheckLombokConfig.class, sourceSet);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package io.freefair.gradle.plugins.lombok.internal;

import io.freefair.gradle.plugins.lombok.tasks.LombokConfig;
import lombok.experimental.UtilityClass;
import org.gradle.api.Project;
import org.gradle.api.tasks.TaskProvider;

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import static org.codehaus.groovy.runtime.StringGroovyMethods.capitalize;

@UtilityClass
public class ConfigUtil {

public Map<File, TaskProvider<LombokConfig>> getLombokConfigTasks(Project project, String sourceSetName, Set<File> srcDirs) {
Map<File, TaskProvider<LombokConfig>> result = new HashMap<>();

int i = 1;
for (File srcDir : srcDirs) {

int finalI = i;
String taskName = "generate" + capitalize(sourceSetName) + "EffectiveLombokConfig" + i;
TaskProvider<LombokConfig> genConfigTask = project.getTasks().register(taskName, LombokConfig.class, lombokConfigTask -> {
lombokConfigTask.setGroup("lombok");
lombokConfigTask.setDescription("Generate effective Lombok configuration for '" + srcDir + "' of source-set '" + sourceSetName + "'.");
lombokConfigTask.getPaths().from(srcDir);
lombokConfigTask.getOutputFile().set(project.getLayout().getBuildDirectory().file("lombok/effective-config/" + sourceSetName + "/lombok-" + finalI + ".config"));
});

result.put(srcDir, genConfigTask);

i++;
}

return result;
}
}

0 comments on commit 2d4a5d8

Please sign in to comment.