diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/test/rest/CopyRestTestsTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/test/rest/CopyRestTestsTask.java index 9e9d1e0d9e795..4c86b86b56f5b 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/test/rest/CopyRestTestsTask.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/test/rest/CopyRestTestsTask.java @@ -114,7 +114,7 @@ void copy() { if (BuildParams.isInternal()) { getLogger().debug("Rest tests for project [{}] will be copied to the test resources.", project.getPath()); project.copy(c -> { - c.from(coreConfig.getSingleFile()); + c.from(coreConfig.getAsFileTree()); c.into(getOutputDir()); c.include(corePatternSet.getIncludes()); }); @@ -138,7 +138,7 @@ void copy() { if (includeXpack.get().isEmpty() == false) { getLogger().debug("X-pack rest tests for project [{}] will be copied to the test resources.", project.getPath()); project.copy(c -> { - c.from(xpackConfig.getSingleFile()); + c.from(xpackConfig.getAsFileTree()); c.into(getOutputDir()); c.include(xpackPatternSet.getIncludes()); }); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/test/rest/RestResourcesPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/test/rest/RestResourcesPlugin.java index a512b9b1fc025..3cdc4d24dd3c1 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/test/rest/RestResourcesPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/test/rest/RestResourcesPlugin.java @@ -22,6 +22,7 @@ import org.elasticsearch.gradle.info.BuildParams; import org.gradle.api.Plugin; import org.gradle.api.Project; +import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.Dependency; import org.gradle.api.provider.Provider; @@ -86,21 +87,31 @@ public class RestResourcesPlugin implements Plugin { public void apply(Project project) { RestResourcesExtension extension = project.getExtensions().create(EXTENSION_NAME, RestResourcesExtension.class); + // tests + Configuration testConfig = project.getConfigurations().create("restTestConfig"); + Configuration xpackTestConfig = project.getConfigurations().create("restXpackTest"); + project.getConfigurations().create("restTests"); + project.getConfigurations().create("restXpackTests"); Provider copyRestYamlTestTask = project.getTasks() .register("copyYamlTestsTask", CopyRestTestsTask.class, task -> { task.includeCore.set(extension.restTests.getIncludeCore()); task.includeXpack.set(extension.restTests.getIncludeXpack()); - task.coreConfig = project.getConfigurations().create("restTest"); + task.coreConfig = testConfig; if (BuildParams.isInternal()) { + // core Dependency restTestdependency = project.getDependencies() .project(Map.of("path", ":rest-api-spec", "configuration", "restTests")); project.getDependencies().add(task.coreConfig.getName(), restTestdependency); - - task.xpackConfig = project.getConfigurations().create("restXpackTest"); + // x-pack + task.xpackConfig = xpackTestConfig; Dependency restXPackTestdependency = project.getDependencies() .project(Map.of("path", ":x-pack:plugin", "configuration", "restXpackTests")); project.getDependencies().add(task.xpackConfig.getName(), restXPackTestdependency); task.dependsOn(task.xpackConfig); + // watcher + Dependency restWatcherTests = project.getDependencies() + .project(Map.of("path", ":x-pack:plugin:watcher:qa:rest", "configuration", "restXpackTests")); + project.getDependencies().add(task.xpackConfig.getName(), restWatcherTests); } else { Dependency dependency = project.getDependencies() .create("org.elasticsearch:rest-api-spec:" + VersionProperties.getElasticsearch()); @@ -109,18 +120,22 @@ public void apply(Project project) { task.dependsOn(task.coreConfig); }); + // api + Configuration specConfig = project.getConfigurations().create("restSpec"); // name chosen for passivity + Configuration xpackSpecConfig = project.getConfigurations().create("restXpackSpec"); + project.getConfigurations().create("restSpecs"); + project.getConfigurations().create("restXpackSpecs"); Provider copyRestYamlSpecTask = project.getTasks() .register("copyRestApiSpecsTask", CopyRestApiTask.class, task -> { task.includeCore.set(extension.restApi.getIncludeCore()); task.includeXpack.set(extension.restApi.getIncludeXpack()); task.dependsOn(copyRestYamlTestTask); - task.coreConfig = project.getConfigurations().create("restSpec"); + task.coreConfig = specConfig; if (BuildParams.isInternal()) { Dependency restSpecDependency = project.getDependencies() .project(Map.of("path", ":rest-api-spec", "configuration", "restSpecs")); project.getDependencies().add(task.coreConfig.getName(), restSpecDependency); - - task.xpackConfig = project.getConfigurations().create("restXpackSpec"); + task.xpackConfig = xpackSpecConfig; Dependency restXpackSpecDependency = project.getDependencies() .project(Map.of("path", ":x-pack:plugin", "configuration", "restXpackSpecs")); project.getDependencies().add(task.xpackConfig.getName(), restXpackSpecDependency); diff --git a/rest-api-spec/build.gradle b/rest-api-spec/build.gradle index fa29345e0ff6b..8902c57211ef2 100644 --- a/rest-api-spec/build.gradle +++ b/rest-api-spec/build.gradle @@ -1,15 +1,11 @@ apply plugin: 'elasticsearch.build' apply plugin: 'nebula.maven-base-publish' apply plugin: 'nebula.maven-scm' +apply plugin: 'elasticsearch.rest-resources' test.enabled = false jarHell.enabled = false -configurations { - restSpecs - restTests -} - artifacts { restSpecs(new File(projectDir, "src/main/resources/rest-api-spec/api")) restTests(new File(projectDir, "src/main/resources/rest-api-spec/test")) diff --git a/x-pack/plugin/build.gradle b/x-pack/plugin/build.gradle index 8691028e79bfe..a66459eb1aab6 100644 --- a/x-pack/plugin/build.gradle +++ b/x-pack/plugin/build.gradle @@ -65,8 +65,6 @@ subprojects { configurations { testArtifacts.extendsFrom testRuntime - restXpackSpecs - restXpackTests } artifacts { diff --git a/x-pack/plugin/watcher/qa/rest/build.gradle b/x-pack/plugin/watcher/qa/rest/build.gradle index 4d0ad83d7c9a6..798b906ca4e1a 100644 --- a/x-pack/plugin/watcher/qa/rest/build.gradle +++ b/x-pack/plugin/watcher/qa/rest/build.gradle @@ -17,6 +17,7 @@ task testJar(type: Jar) { artifacts { testArtifacts testJar + restXpackTests(new File(projectDir, "src/test/resources/rest-api-spec/test")) } restResources { diff --git a/x-pack/plugin/watcher/qa/with-security/build.gradle b/x-pack/plugin/watcher/qa/with-security/build.gradle index 1952d7f96a690..245a1800fd5c1 100644 --- a/x-pack/plugin/watcher/qa/with-security/build.gradle +++ b/x-pack/plugin/watcher/qa/with-security/build.gradle @@ -7,21 +7,15 @@ dependencies { testCompile project(path: ':x-pack:plugin:watcher:qa:rest', configuration: 'testArtifacts') } - -// bring in watcher rest test suite from the rest project -task copyWatcherRestTests(type: Copy) { - into project.sourceSets.test.output.resourcesDir - from project(xpackProject('plugin:watcher:qa:rest').path).sourceSets.test.resources.srcDirs - include 'rest-api-spec/test/watcher/**' -} - restResources { restApi { includeXpack 'watcher', 'security', 'xpack' } + restTests { + includeXpack 'watcher' + } } -integTest.runner.dependsOn copyWatcherRestTests testClusters.integTest { testDistribution = 'DEFAULT' setting 'xpack.ilm.enabled', 'false'