diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchConfiguration.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchConfiguration.java deleted file mode 100644 index a200c75880e..00000000000 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchConfiguration.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.gradle.testclusters; - -import org.elasticsearch.gradle.Distribution; -import org.elasticsearch.gradle.Version; - -import java.util.concurrent.Future; - -public interface ElasticsearchConfiguration { - String getName(); - - Version getVersion(); - - void setVersion(Version version); - - default void setVersion(String version) { - setVersion(Version.fromString(version)); - } - - Distribution getDistribution(); - - void setDistribution(Distribution distribution); - - void claim(); - - Future start(); - - void unClaimAndStop(); -} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java index a196cb09e97..85931c7846b 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchNode.java @@ -29,7 +29,7 @@ import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; -public class ElasticsearchNode implements ElasticsearchConfiguration { +public class ElasticsearchNode { private final String name; private final GradleServicesAdapter services; @@ -45,34 +45,28 @@ public class ElasticsearchNode implements ElasticsearchConfiguration { this.services = services; } - @Override public String getName() { return name; } - @Override public Version getVersion() { return version; } - @Override public void setVersion(Version version) { checkNotRunning(); this.version = version; } - @Override public Distribution getDistribution() { return distribution; } - @Override public void setDistribution(Distribution distribution) { checkNotRunning(); this.distribution = distribution; } - @Override public void claim() { noOfClaims.incrementAndGet(); } @@ -82,7 +76,6 @@ public class ElasticsearchNode implements ElasticsearchConfiguration { * * @return future of thread running in the background */ - @Override public Future start() { if (started.getAndSet(true)) { logger.lifecycle("Already started cluster: {}", name); @@ -95,7 +88,6 @@ public class ElasticsearchNode implements ElasticsearchConfiguration { /** * Stops a running cluster if it's not claimed. Does nothing otherwise. */ - @Override public void unClaimAndStop() { int decrementedClaims = noOfClaims.decrementAndGet(); if (decrementedClaims > 0) { diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClustersPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClustersPlugin.java index 3a137906bec..73aad33b8ea 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClustersPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClustersPlugin.java @@ -46,7 +46,7 @@ public class TestClustersPlugin implements Plugin { @Override public void apply(Project project) { - NamedDomainObjectContainer container = project.container( + NamedDomainObjectContainer container = project.container( ElasticsearchNode.class, (name) -> new ElasticsearchNode(name, GradleServicesAdapter.getInstance(project)) ); @@ -56,12 +56,12 @@ public class TestClustersPlugin implements Plugin { listTask.setGroup("ES cluster formation"); listTask.setDescription("Lists all ES clusters configured for this project"); listTask.doLast((Task task) -> - container.forEach((ElasticsearchConfiguration cluster) -> + container.forEach((ElasticsearchNode cluster) -> logger.lifecycle(" * {}: {}", cluster.getName(), cluster.getDistribution()) ) ); - Map> taskToCluster = new HashMap<>(); + Map> taskToCluster = new HashMap<>(); // register an extension for all current and future tasks, so that any task can declare that it wants to use a // specific cluster. @@ -70,7 +70,7 @@ public class TestClustersPlugin implements Plugin { .set( "useCluster", new Closure(this, this) { - public void doCall(ElasticsearchConfiguration conf) { + public void doCall(ElasticsearchNode conf) { taskToCluster.computeIfAbsent(task, k -> new ArrayList<>()).add(conf); } }) @@ -79,7 +79,7 @@ public class TestClustersPlugin implements Plugin { project.getGradle().getTaskGraph().whenReady(taskExecutionGraph -> taskExecutionGraph.getAllTasks() .forEach(task -> - taskToCluster.getOrDefault(task, Collections.emptyList()).forEach(ElasticsearchConfiguration::claim) + taskToCluster.getOrDefault(task, Collections.emptyList()).forEach(ElasticsearchNode::claim) ) ); project.getGradle().addListener( @@ -87,7 +87,7 @@ public class TestClustersPlugin implements Plugin { @Override public void beforeActions(Task task) { // we only start the cluster before the actions, so we'll not start it if the task is up-to-date - taskToCluster.getOrDefault(task, new ArrayList<>()).forEach(ElasticsearchConfiguration::start); + taskToCluster.getOrDefault(task, new ArrayList<>()).forEach(ElasticsearchNode::start); } @Override public void afterActions(Task task) {} @@ -99,7 +99,7 @@ public class TestClustersPlugin implements Plugin { public void afterExecute(Task task, TaskState state) { // always un-claim the cluster, even if _this_ task is up-to-date, as others might not have been and caused the // cluster to start. - taskToCluster.getOrDefault(task, new ArrayList<>()).forEach(ElasticsearchConfiguration::unClaimAndStop); + taskToCluster.getOrDefault(task, new ArrayList<>()).forEach(ElasticsearchNode::unClaimAndStop); } @Override public void beforeExecute(Task task) {}