Search in sources :

Example 1 with Spec

use of org.gradle.api.specs.Spec in project gradle by gradle.

the class DefaultTaskGraphExecuterTest method doesNotExecuteFilteredTasks.

@Test
public void doesNotExecuteFilteredTasks() {
    final Task a = task("a", task("a-dep"));
    Task b = task("b");
    Spec<Task> spec = new Spec<Task>() {

        public boolean isSatisfiedBy(Task element) {
            return element != a;
        }
    };
    taskExecuter.useFilter(spec);
    taskExecuter.addTasks(toList(a, b));
    assertThat(taskExecuter.getAllTasks(), equalTo(toList(b)));
    taskExecuter.execute();
    assertThat(executedTasks, equalTo(toList(b)));
}
Also used : Task(org.gradle.api.Task) Spec(org.gradle.api.specs.Spec) Test(org.junit.Test)

Example 2 with Spec

use of org.gradle.api.specs.Spec in project gradle by gradle.

the class DefaultTaskGraphExecuterTest method doesNotExecuteFilteredDependencies.

@Test
public void doesNotExecuteFilteredDependencies() {
    final Task a = task("a", task("a-dep"));
    Task b = task("b");
    Task c = task("c", a, b);
    Spec<Task> spec = new Spec<Task>() {

        public boolean isSatisfiedBy(Task element) {
            return element != a;
        }
    };
    taskExecuter.useFilter(spec);
    taskExecuter.addTasks(toList(c));
    assertThat(taskExecuter.getAllTasks(), equalTo(toList(b, c)));
    taskExecuter.execute();
    assertThat(executedTasks, equalTo(toList(b, c)));
}
Also used : Task(org.gradle.api.Task) Spec(org.gradle.api.specs.Spec) Test(org.junit.Test)

Example 3 with Spec

use of org.gradle.api.specs.Spec in project gradle by gradle.

the class DefaultNamedDomainObjectSetTest method canGetFilteredCollectionContainingAllObjectsWhichMeetSpec.

@Test
public void canGetFilteredCollectionContainingAllObjectsWhichMeetSpec() {
    final Bean bean1 = new Bean("a");
    Bean bean2 = new Bean("b");
    Bean bean3 = new Bean("c");
    Spec<Bean> spec = new Spec<Bean>() {

        public boolean isSatisfiedBy(Bean element) {
            return element != bean1;
        }
    };
    TestClosure testClosure = new TestClosure() {

        public Object call(Object param) {
            return param != bean1;
        }
    };
    container.add(bean1);
    container.add(bean2);
    container.add(bean3);
    assertThat(toList(container.matching(spec)), equalTo(toList(bean2, bean3)));
    assertThat(toList(container.matching(TestUtil.toClosure(testClosure))), equalTo(toList(bean2, bean3)));
    assertThat(container.matching(spec).findByName("a"), nullValue());
    assertThat(container.matching(spec).findByName("b"), sameInstance(bean2));
}
Also used : TestClosure(org.gradle.util.TestClosure) Spec(org.gradle.api.specs.Spec) Test(org.junit.Test)

Example 4 with Spec

use of org.gradle.api.specs.Spec in project gradle by gradle.

the class TaskSelector method getFilter.

public Spec<Task> getFilter(String path) {
    final ResolvedTaskPath taskPath = taskPathResolver.resolvePath(path, gradle.getDefaultProject());
    if (!taskPath.isQualified()) {
        ProjectInternal targetProject = taskPath.getProject();
        configurer.configure(targetProject);
        if (taskNameResolver.tryFindUnqualifiedTaskCheaply(taskPath.getTaskName(), taskPath.getProject())) {
            // An exact match in the target project - can just filter tasks by path to avoid configuring sub-projects at this point
            return new TaskPathSpec(targetProject, taskPath.getTaskName());
        }
    }
    final Set<Task> selectedTasks = getSelection(path, gradle.getDefaultProject()).getTasks();
    return new Spec<Task>() {

        public boolean isSatisfiedBy(Task element) {
            return !selectedTasks.contains(element);
        }
    };
}
Also used : ResolvedTaskPath(org.gradle.execution.taskpath.ResolvedTaskPath) Task(org.gradle.api.Task) ProjectInternal(org.gradle.api.internal.project.ProjectInternal) Spec(org.gradle.api.specs.Spec)

Example 5 with Spec

use of org.gradle.api.specs.Spec in project gradle by gradle.

the class ExcludedTaskFilteringBuildConfigurationAction method configure.

public void configure(BuildExecutionContext context) {
    GradleInternal gradle = context.getGradle();
    Set<String> excludedTaskNames = gradle.getStartParameter().getExcludedTaskNames();
    if (!excludedTaskNames.isEmpty()) {
        final Set<Spec<Task>> filters = new HashSet<Spec<Task>>();
        for (String taskName : excludedTaskNames) {
            filters.add(taskSelector.getFilter(taskName));
        }
        gradle.getTaskGraph().useFilter(Specs.intersect(filters));
    }
    context.proceed();
}
Also used : GradleInternal(org.gradle.api.internal.GradleInternal) Task(org.gradle.api.Task) Spec(org.gradle.api.specs.Spec) HashSet(java.util.HashSet)

Aggregations

Spec (org.gradle.api.specs.Spec)25 Test (org.junit.Test)8 Task (org.gradle.api.Task)7 File (java.io.File)6 Project (org.gradle.api.Project)4 TestClosure (org.gradle.util.TestClosure)4 ArrayList (java.util.ArrayList)3 Set (java.util.Set)3 Expectations (org.jmock.Expectations)3 Callable (java.util.concurrent.Callable)2 Matcher (java.util.regex.Matcher)2 Pattern (java.util.regex.Pattern)2 Usage (org.gradle.api.attributes.Usage)2 FileTreeElement (org.gradle.api.file.FileTreeElement)2 TaskInternal (org.gradle.api.internal.TaskInternal)2 SourceSet (org.gradle.api.tasks.SourceSet)2 TaskAction (org.gradle.api.tasks.TaskAction)2 TaskContainer (org.gradle.api.tasks.TaskContainer)2 SdkConstants (com.android.SdkConstants)1 NonNull (com.android.annotations.NonNull)1