private static void processSourceSet()

in buildSrc/src/main/java/org/grails/forge/rocker/plugin/RockerPlugin.java [62:90]


    private static void processSourceSet(Project project, SourceSet sourceSet,
                                         RockerConfiguration rockerConfig) {
        // for each source set we will:
        // 1) Add a new 'rocker' property to the source set
        RockerSourceSetProperty rockerProperty
                = new RockerSourceSetProperty(project);
        new DslObject(sourceSet).getConvention().getPlugins().put(
                "rocker", rockerProperty);

        // 2) Create a rocker task for this sourceSet following the gradle
        //    naming conventions
        String taskName = sourceSet.getTaskName(
                "generate", "RockerTemplateSource");
        TaskProvider<RockerTask> rockerTaskProvider = project.getTasks().register(taskName, RockerTask.class, rockerTask -> {
            rockerTask.setGroup("build");
            rockerTask.setDescription("Generate Sources from "
                    + sourceSet.getName() + " Rocker Templates");
            rockerTask.getRockerProjectConfig().set(rockerConfig);
            rockerTask.getOutputDir().convention(
                    rockerConfig.getOutputBaseDirectory().dir(sourceSet.getName())
            );
            rockerTask.getClassDir().convention(
                    rockerConfig.getClassBaseDirectory().dir(sourceSet.getName())
            );
            rockerTask.getTemplateDirs().from(rockerProperty.getRocker().getSrcDirs());
        });

        sourceSet.getJava().srcDir(rockerTaskProvider);
    }