Skip to content
Snippets Groups Projects
Select Git revision
  • 53783b337cea53a4ce0511d4c8ea2f83befcd4fe
  • master default protected
  • dev
3 results

RelastPlugin.java

  • RelastPlugin.java 1.23 KiB
    package org.jastadd.relast.plugin;
    
    import org.gradle.api.Plugin;
    import org.gradle.api.Project;
    import org.gradle.api.Task;
    import org.gradle.api.tasks.TaskCollection;
    
    import java.util.Set;
    
    /**
     * Plugin for RelAst-Test.
     *
     * @author rschoene - Initial contribution
     */
    public class RelastPlugin implements Plugin<Project> {
    
      private Task testTask;
    
      @Override
      public void apply(Project project) {
        CompilerLocationExtension extension = project.getExtensions().create(
            "relastTest",
            CompilerLocationExtension.class,
            project);
    
        Set<Task> tasks = project.getTasksByName("test", false);
        // there should be only one task "test"
        testTask = tasks.iterator().next();
        TaskCollection<RelastTest> relastTests = project.getTasks().withType(RelastTest.class);
        relastTests.forEach(relastTest -> setupRelastTest(relastTest, extension.getCompilerLocation().getOrNull()));
        relastTests.whenTaskAdded(relastTest -> setupRelastTest(relastTest, extension.getCompilerLocation().getOrNull()));
      }
    
      private void setupRelastTest(RelastTest relastTest, String compilerLocation) {
        testTask.dependsOn(relastTest);
        relastTest.setCompilerLocation(compilerLocation);
        relastTest.setGroup("verification");
      }
    }