소스 검색

[Build] Simplify testclusters configuration (#34334)

Remove interface, prefer straught implementaton instead.
Alpar Torok 7 년 전
부모
커밋
5fb4f32c91

+ 0 - 46
buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/ElasticsearchConfiguration.java

@@ -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<Void> start();
-
-    void unClaimAndStop();
-}

+ 1 - 9
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<Void> 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) {

+ 7 - 7
buildSrc/src/main/java/org/elasticsearch/gradle/testclusters/TestClustersPlugin.java

@@ -46,7 +46,7 @@ public class TestClustersPlugin implements Plugin<Project> {
 
     @Override
     public void apply(Project project) {
-        NamedDomainObjectContainer<? extends ElasticsearchConfiguration> container = project.container(
+        NamedDomainObjectContainer<? extends ElasticsearchNode> container = project.container(
             ElasticsearchNode.class,
             (name) -> new ElasticsearchNode(name, GradleServicesAdapter.getInstance(project))
         );
@@ -56,12 +56,12 @@ public class TestClustersPlugin implements Plugin<Project> {
         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<Task, List<ElasticsearchConfiguration>> taskToCluster = new HashMap<>();
+        Map<Task, List<ElasticsearchNode>> 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<Project> {
             .set(
                 "useCluster",
                 new Closure<Void>(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> {
         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<Project> {
                 @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<Project> {
                 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) {}