Introduce simple public yaml-rest-test plugin (7.x backport) (#77054)

* Introduce simple public yaml-rest-test plugin (#76554)

This introduces a basic public yaml rest test plugin that is supposed to be used by external
elasticsearch plugin authors. This is driven by #76215

- Rename yaml-rest-test to intern-yaml-rest-test
- Use public yaml plugin in example plugins

Co-authored-by: Mark Vieira <portugee@gmail.com>

* Fix test assertion after output normalization

Co-authored-by: Mark Vieira <portugee@gmail.com>
This commit is contained in:
Rene Groeschke 2021-09-03 17:57:42 +02:00 committed by GitHub
parent a98df4ee15
commit 4039c35ea0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
66 changed files with 290 additions and 81 deletions

View file

@ -152,8 +152,8 @@ gradlePlugin {
implementationClass = 'org.elasticsearch.gradle.internal.precommit.ValidateRestSpecPlugin'
}
yamlRestTest {
id = 'elasticsearch.yaml-rest-test'
implementationClass = 'org.elasticsearch.gradle.internal.test.rest.YamlRestTestPlugin'
id = 'elasticsearch.internal-yaml-rest-test'
implementationClass = 'org.elasticsearch.gradle.internal.test.rest.InternalYamlRestTestPlugin'
}
}
}

View file

@ -11,13 +11,13 @@ package org.elasticsearch.gradle.internal.test.rest
import org.elasticsearch.gradle.fixtures.AbstractRestResourcesFuncTest
import org.gradle.testkit.runner.TaskOutcome
class YamlRestTestPluginFuncTest extends AbstractRestResourcesFuncTest {
class InternalYamlRestTestPluginFuncTest extends AbstractRestResourcesFuncTest {
def "yamlRestTest does nothing when there are no tests"() {
given:
buildFile << """
plugins {
id 'elasticsearch.yaml-rest-test'
id 'elasticsearch.internal-yaml-rest-test'
}
"""
@ -34,7 +34,7 @@ class YamlRestTestPluginFuncTest extends AbstractRestResourcesFuncTest {
given:
internalBuild()
buildFile << """
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation "junit:junit:4.12"

View file

@ -22,7 +22,7 @@ import static org.elasticsearch.gradle.internal.test.rest.RestTestUtil.setupTest
/**
* Apply this plugin to run the YAML based REST tests.
*/
public class YamlRestTestPlugin implements Plugin<Project> {
public class InternalYamlRestTestPlugin implements Plugin<Project> {
public static final String SOURCE_SET_NAME = "yamlRestTest";

View file

@ -61,6 +61,10 @@ gradlePlugin {
id = 'elasticsearch.test-gradle-policy'
implementationClass = 'org.elasticsearch.gradle.test.GradleTestPolicySetupPlugin'
}
yamlTests {
id = 'elasticsearch.yaml-rest-test'
implementationClass = 'org.elasticsearch.gradle.test.YamlRestTestPlugin'
}
}
}

View file

@ -0,0 +1,61 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
package org.elasticsearch.gradle.test
import org.elasticsearch.gradle.VersionProperties
import org.elasticsearch.gradle.fixtures.AbstractGradleFuncTest
import org.gradle.testkit.runner.TaskOutcome
class YamlRestTestPluginFuncTest extends AbstractGradleFuncTest {
def "declares default dependencies"() {
given:
buildFile << """
plugins {
id 'elasticsearch.yaml-rest-test'
}
"""
when:
def output = gradleRunner("dependencies").build().output
then:
output.contains("""
restTestSpecs
/--- org.elasticsearch:rest-api-spec:${VersionProperties.elasticsearch} FAILED""")
output.contains(normalized("""
yamlRestTestImplementation - Implementation only dependencies for source set 'yaml rest test'. (n)
/--- org.elasticsearch.test:framework:${VersionProperties.elasticsearch} (n)"""))
}
def "yamlRestTest does nothing when there are no tests"() {
given:
buildFile << """
plugins {
id 'elasticsearch.yaml-rest-test'
}
repositories {
mavenCentral()
}
dependencies {
yamlRestTestImplementation "org.elasticsearch.test:framework:7.14.0"
restTestSpecs "org.elasticsearch:rest-api-spec:7.14.0"
}
"""
when:
def result = gradleRunner("yamlRestTest").build()
then:
result.task(':compileYamlRestTestJava').outcome == TaskOutcome.NO_SOURCE
result.task(':processYamlRestTestResources').outcome == TaskOutcome.NO_SOURCE
result.task(':yamlRestTest').outcome == TaskOutcome.NO_SOURCE
}
}

View file

@ -59,6 +59,9 @@ import java.util.stream.Collectors;
* Encapsulates build configuration for an Elasticsearch plugin.
*/
public class PluginBuildPlugin implements Plugin<Project> {
public static final String BUNDLE_PLUGIN_TASK_NAME = "bundlePlugin";
@Override
public void apply(final Project project) {
project.getPluginManager().apply(JavaPlugin.class);
@ -129,7 +132,7 @@ public class PluginBuildPlugin implements Plugin<Project> {
project.getTasks().register("run", RunTask.class, runTask -> {
runTask.useCluster(runCluster);
runTask.dependsOn(project.getTasks().named("bundlePlugin"));
runTask.dependsOn(project.getTasks().named(BUNDLE_PLUGIN_TASK_NAME));
});
}

View file

@ -0,0 +1,124 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0 and the Server Side Public License, v 1; you may not use this file except
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
package org.elasticsearch.gradle.test;
import org.elasticsearch.gradle.VersionProperties;
import org.elasticsearch.gradle.plugin.PluginBuildPlugin;
import org.elasticsearch.gradle.testclusters.ElasticsearchCluster;
import org.elasticsearch.gradle.testclusters.StandaloneRestIntegTestTask;
import org.elasticsearch.gradle.testclusters.TestClustersPlugin;
import org.elasticsearch.gradle.transform.UnzipTransform;
import org.gradle.api.Action;
import org.gradle.api.NamedDomainObjectContainer;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.Task;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.artifacts.dsl.DependencyHandler;
import org.gradle.api.artifacts.type.ArtifactTypeDefinition;
import org.gradle.api.attributes.Attribute;
import org.gradle.api.internal.artifacts.ArtifactAttributes;
import org.gradle.api.plugins.JavaBasePlugin;
import org.gradle.api.tasks.Copy;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.SourceSetContainer;
import org.gradle.api.tasks.TaskProvider;
import org.gradle.api.tasks.bundling.Zip;
import java.io.File;
import static org.elasticsearch.gradle.plugin.PluginBuildPlugin.BUNDLE_PLUGIN_TASK_NAME;
public class YamlRestTestPlugin implements Plugin<Project> {
public static final String REST_TEST_SPECS_CONFIGURATION_NAME = "restTestSpecs";
public static final String YAML_REST_TEST = "yamlRestTest";
@Override
public void apply(Project project) {
project.getPluginManager().apply(GradleTestPolicySetupPlugin.class);
project.getPluginManager().apply(TestClustersPlugin.class);
project.getPluginManager().apply(JavaBasePlugin.class);
Attribute<Boolean> restAttribute = Attribute.of("restSpecs", Boolean.class);
project.getDependencies().getAttributesSchema().attribute(restAttribute);
project.getDependencies().getArtifactTypes().maybeCreate(ArtifactTypeDefinition.JAR_TYPE);
project.getDependencies().registerTransform(UnzipTransform.class, transformSpec -> {
transformSpec.getFrom()
.attribute(ArtifactAttributes.ARTIFACT_FORMAT, ArtifactTypeDefinition.JAR_TYPE)
.attribute(restAttribute, true);
transformSpec.getTo()
.attribute(ArtifactAttributes.ARTIFACT_FORMAT, ArtifactTypeDefinition.DIRECTORY_TYPE)
.attribute(restAttribute, true);
});
ConfigurationContainer configurations = project.getConfigurations();
Configuration restTestSpecs = configurations.create(REST_TEST_SPECS_CONFIGURATION_NAME);
restTestSpecs.getAttributes().attribute(ArtifactAttributes.ARTIFACT_FORMAT, ArtifactTypeDefinition.DIRECTORY_TYPE);
restTestSpecs.getAttributes().attribute(restAttribute, true);
TaskProvider<Copy> copyRestTestSpecs = project.getTasks().register("copyRestTestSpecs", Copy.class, t -> {
t.from(restTestSpecs);
t.into(new File(project.getBuildDir(), "restResources/restspec"));
});
var sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
var testSourceSet = sourceSets.maybeCreate(YAML_REST_TEST);
NamedDomainObjectContainer<ElasticsearchCluster> testClusters = (NamedDomainObjectContainer<ElasticsearchCluster>) project
.getExtensions()
.getByName(TestClustersPlugin.EXTENSION_NAME);
testSourceSet.getOutput().dir(copyRestTestSpecs.map(Task::getOutputs));
Configuration yamlRestTestImplementation = configurations.getByName(testSourceSet.getImplementationConfigurationName());
setupDefaultDependencies(project.getDependencies(), restTestSpecs, yamlRestTestImplementation);
var cluster = testClusters.maybeCreate(YAML_REST_TEST);
TaskProvider<StandaloneRestIntegTestTask> yamlRestTestTask = setupTestTask(project, testSourceSet, cluster);
project.getPlugins().withType(PluginBuildPlugin.class, p -> {
TaskProvider<Zip> bundle = project.getTasks().withType(Zip.class).named(BUNDLE_PLUGIN_TASK_NAME);
cluster.plugin(bundle.flatMap(Zip::getArchiveFile));
yamlRestTestTask.configure(t -> t.dependsOn(bundle));
});
}
private static void setupDefaultDependencies(
DependencyHandler dependencyHandler,
Configuration restTestSpecs,
Configuration yamlRestTestImplementation
) {
String elasticsearchVersion = VersionProperties.getElasticsearch();
yamlRestTestImplementation.defaultDependencies(
deps -> deps.add(dependencyHandler.create("org.elasticsearch.test:framework:" + elasticsearchVersion))
);
restTestSpecs.defaultDependencies(
deps -> deps.add(dependencyHandler.create("org.elasticsearch:rest-api-spec:" + elasticsearchVersion))
);
}
private TaskProvider<StandaloneRestIntegTestTask> setupTestTask(
Project project,
SourceSet testSourceSet,
ElasticsearchCluster cluster
) {
return project.getTasks().register("yamlRestTest", StandaloneRestIntegTestTask.class, task -> {
task.useCluster(cluster);
task.setTestClassesDirs(testSourceSet.getOutput().getClassesDirs());
task.setClasspath(testSourceSet.getRuntimeClasspath());
var nonInputProperties = new SystemPropertyCommandLineArgumentProvider();
nonInputProperties.systemProperty("tests.rest.cluster", () -> String.join(",", cluster.getAllHttpSocketURI()));
nonInputProperties.systemProperty("tests.cluster", () -> String.join(",", cluster.getAllTransportPortURI()));
nonInputProperties.systemProperty("tests.clustername", () -> cluster.getName());
task.getJvmArgumentProviders().add(nonInputProperties);
task.systemProperty("tests.rest.load_packaged", Boolean.FALSE.toString());
});
}
}

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'Adds aggregations whose input are a list of numeric fields and output includes a matrix.'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -8,7 +8,7 @@
import org.apache.tools.ant.taskdefs.condition.Os
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'Ingest processor that extracts information from a user agent'
@ -21,4 +21,3 @@ restResources {
testClusters.all {
extraConfigFile 'ingest-user-agent/test-regexes.yml', file('src/test/test-regexes.yml')
}

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {
@ -30,4 +30,3 @@ tasks.named("dependencyLicenses").configure {
mapping from: /lucene-.*/, to: 'lucene'
mapping from: /asm-.*/, to: 'asm'
}

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'

View file

@ -8,7 +8,7 @@
import org.elasticsearch.gradle.testclusters.DefaultTestClustersTask;
apply plugin: 'elasticsearch.validate-rest-spec'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'An easy, safe and fast scripting language for Elasticsearch'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -14,7 +14,7 @@ import org.elasticsearch.gradle.internal.test.AntFixture
apply plugin: 'elasticsearch.test-with-dependencies'
apply plugin: 'elasticsearch.jdk-download'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'

View file

@ -8,7 +8,7 @@
import org.elasticsearch.gradle.PropertyNormalization
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
apply plugin: 'elasticsearch.test.fixtures'

View file

@ -7,7 +7,7 @@
*/
apply plugin: 'elasticsearch.validate-rest-spec'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'Module for runtime fields features and extensions that have large dependencies'

View file

@ -12,7 +12,7 @@ import org.elasticsearch.gradle.internal.test.RestIntegTestTask
import org.elasticsearch.gradle.internal.test.rest.JavaRestTestPlugin
import org.elasticsearch.gradle.internal.test.InternalClusterTestPlugin
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'

View file

@ -7,7 +7,7 @@ import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'The Japanese (kuromoji) Analysis plugin integrates Lucene kuromoji analysis module into elasticsearch.'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'The Korean (nori) Analysis plugin integrates Lucene nori analysis module into elasticsearch.'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'The Phonetic Analysis plugin integrates phonetic token filter analysis with elasticsearch.'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'Smart Chinese Analysis plugin integrates Lucene Smart Chinese analysis module into elasticsearch.'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'The Stempel (Polish) Analysis plugin integrates Lucene stempel (polish) analysis module into elasticsearch.'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'The Ukrainian Analysis plugin integrates the Lucene UkrainianMorfologikAnalyzer into elasticsearch.'

View file

@ -8,7 +8,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -7,7 +7,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -10,11 +10,11 @@ import org.apache.tools.ant.filters.ReplaceTokens
import org.elasticsearch.gradle.internal.info.BuildParams
import org.elasticsearch.gradle.internal.test.AntFixture
import org.elasticsearch.gradle.internal.test.RestIntegTestTask
import org.elasticsearch.gradle.internal.test.rest.YamlRestTestPlugin
import org.elasticsearch.gradle.internal.test.rest.InternalYamlRestTestPlugin
import static org.elasticsearch.gradle.PropertyNormalization.IGNORE_VALUE
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation project(':plugins:discovery-ec2')
@ -62,7 +62,7 @@ tasks.named("yamlRestTest").configure { enabled = false }
def yamlRestTestTask = tasks.register("yamlRestTest${action}", RestIntegTestTask) {
dependsOn fixture
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
SourceSet yamlRestTestSourceSet = sourceSets.getByName(YamlRestTestPlugin.SOURCE_SET_NAME)
SourceSet yamlRestTestSourceSet = sourceSets.getByName(InternalYamlRestTestPlugin.SOURCE_SET_NAME)
testClassesDirs = yamlRestTestSourceSet.getOutput().getClassesDirs()
classpath = yamlRestTestSourceSet.getRuntimeClasspath()
}

View file

@ -1,4 +1,4 @@
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -13,7 +13,7 @@ import org.elasticsearch.gradle.internal.test.AntFixture
import static org.elasticsearch.gradle.PropertyNormalization.IGNORE_VALUE
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
final int gceNumberOfNodes = 3

View file

@ -1,8 +1,8 @@
import org.elasticsearch.gradle.internal.info.BuildParams
// Subprojects aren't published so do not assemble
gradle.projectsEvaluated {
subprojects {
project.tasks.matching { it.name.equals('assemble') }.configureEach {
subprojects { p ->
p.tasks.matching { it.name.equals('assemble') }.configureEach {
enabled = false
}
// Disable example project testing with FIPS JVM
@ -11,6 +11,16 @@ gradle.projectsEvaluated {
BuildParams.inFipsJvm == false
}
}
// configure project dependencies for yaml rest test plugin.
// plugin defaults to external available artifacts
p.getPluginManager().withPlugin("elasticsearch.yaml-rest-test", new Action<AppliedPlugin>() {
@Override
void execute(AppliedPlugin appliedPlugin) {
p.dependencies.add("yamlRestTestImplementation", project(":test:framework"))
p.dependencies.add("restTestSpecs", p.dependencies.project(path:':rest-api-spec', configuration:'basicRestSpecs'))
}
})
}
}

View file

@ -7,7 +7,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'Ingest processor that uses Apache Tika to extract contents'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
description 'The Mapper Murmur3 plugin allows to compute hashes of a field\'s values at index-time and to store them in the index.'

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -12,7 +12,7 @@ import static org.elasticsearch.gradle.PropertyNormalization.IGNORE_VALUE
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
apply plugin: 'elasticsearch.internal-test-artifact-base'

View file

@ -1,7 +1,7 @@
import org.apache.tools.ant.filters.ReplaceTokens
import org.elasticsearch.gradle.internal.info.BuildParams
import org.elasticsearch.gradle.internal.test.RestIntegTestTask
import org.elasticsearch.gradle.internal.test.rest.YamlRestTestPlugin
import org.elasticsearch.gradle.internal.test.rest.InternalYamlRestTestPlugin
import org.elasticsearch.gradle.internal.test.InternalClusterTestPlugin
import java.nio.file.Files
@ -16,7 +16,7 @@ import static org.elasticsearch.gradle.PropertyNormalization.IGNORE_VALUE
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
apply plugin: 'elasticsearch.internal-test-artifact-base'
@ -286,7 +286,7 @@ def largeBlobYamlRestTest = tasks.register("largeBlobYamlRestTest", RestIntegTes
dependsOn "createServiceAccountFile"
}
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
SourceSet yamlRestTestSourceSet = sourceSets.getByName(YamlRestTestPlugin.SOURCE_SET_NAME)
SourceSet yamlRestTestSourceSet = sourceSets.getByName(InternalYamlRestTestPlugin.SOURCE_SET_NAME)
setTestClassesDirs(yamlRestTestSourceSet.getOutput().getClassesDirs())
setClasspath(yamlRestTestSourceSet.getRuntimeClasspath())
@ -339,7 +339,7 @@ if (useFixture) {
tasks.register("yamlRestTestApplicationDefaultCredentials", RestIntegTestTask.class) {
dependsOn('bundlePlugin')
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
SourceSet yamlRestTestSourceSet = sourceSets.getByName(YamlRestTestPlugin.SOURCE_SET_NAME)
SourceSet yamlRestTestSourceSet = sourceSets.getByName(InternalYamlRestTestPlugin.SOURCE_SET_NAME)
setTestClassesDirs(yamlRestTestSourceSet.getOutput().getClassesDirs())
setClasspath(yamlRestTestSourceSet.getRuntimeClasspath())
}

View file

@ -1,7 +1,7 @@
import org.apache.tools.ant.filters.ReplaceTokens
import org.elasticsearch.gradle.internal.info.BuildParams
import org.elasticsearch.gradle.internal.test.RestIntegTestTask
import org.elasticsearch.gradle.internal.test.rest.YamlRestTestPlugin
import org.elasticsearch.gradle.internal.test.rest.InternalYamlRestTestPlugin
import org.elasticsearch.gradle.internal.test.InternalClusterTestPlugin
import static org.elasticsearch.gradle.PropertyNormalization.IGNORE_VALUE
@ -13,7 +13,7 @@ import static org.elasticsearch.gradle.PropertyNormalization.IGNORE_VALUE
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
apply plugin: 'elasticsearch.internal-test-artifact-base'
@ -230,7 +230,7 @@ if (useFixture) {
description = "Runs REST tests using the Minio repository."
dependsOn tasks.named("bundlePlugin")
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
SourceSet yamlRestTestSourceSet = sourceSets.getByName(YamlRestTestPlugin.SOURCE_SET_NAME)
SourceSet yamlRestTestSourceSet = sourceSets.getByName(InternalYamlRestTestPlugin.SOURCE_SET_NAME)
setTestClassesDirs(yamlRestTestSourceSet.getOutput().getClassesDirs())
setClasspath(yamlRestTestSourceSet.getRuntimeClasspath())
@ -258,7 +258,7 @@ if (useFixture) {
description = "Runs tests using the ECS repository."
dependsOn('bundlePlugin')
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
SourceSet yamlRestTestSourceSet = sourceSets.getByName(YamlRestTestPlugin.SOURCE_SET_NAME)
SourceSet yamlRestTestSourceSet = sourceSets.getByName(InternalYamlRestTestPlugin.SOURCE_SET_NAME)
setTestClassesDirs(yamlRestTestSourceSet.getOutput().getClassesDirs())
setClasspath(yamlRestTestSourceSet.getRuntimeClasspath())
systemProperty 'tests.rest.blacklist', [

View file

@ -5,7 +5,7 @@
* in compliance with, at your election, the Elastic License 2.0 or the Server
* Side Public License, v 1.
*/
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-cluster-test'
esplugin {

View file

@ -2,7 +2,7 @@ apply plugin: 'elasticsearch.build'
apply plugin: 'elasticsearch.publish'
apply plugin: 'elasticsearch.rest-resources'
apply plugin: 'elasticsearch.validate-rest-spec'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
restResources {
restTests {
@ -14,7 +14,18 @@ restResources {
ext.projectLicenses.set(['The Apache Software License, Version 2.0': 'http://www.apache.org/licenses/LICENSE-2.0'])
ext.licenseFile = rootProject.file('licenses/APACHE-LICENSE-2.0.txt')
configurations {
// configuration to make use by external yaml rest test plugin in our examples
// easy and efficient
basicRestSpecs {
attributes {
attribute(org.gradle.api.internal.artifacts.ArtifactAttributes.ARTIFACT_FORMAT, ArtifactTypeDefinition.DIRECTORY_TYPE)
}
}
}
artifacts {
basicRestSpecs(new File(projectDir, "src/main/resources"))
restSpecs(new File(projectDir, "src/main/resources/rest-api-spec/api"))
restTests(new File(projectDir, "src/yamlRestTest/resources/rest-api-spec/test"))
}

View file

@ -3,7 +3,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams;
subprojects {
apply plugin: 'elasticsearch.internal-es-plugin'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
name it.name

View file

@ -1,7 +1,7 @@
import org.elasticsearch.gradle.internal.info.BuildParams
apply plugin: 'elasticsearch.internal-es-plugin'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
name 'x-pack-test-deprecated-query'

View file

@ -1,6 +1,6 @@
import org.elasticsearch.gradle.internal.info.BuildParams
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation(testArtifact(project(xpackModule('core'))))

View file

@ -5,7 +5,7 @@ import org.elasticsearch.gradle.LoggedExec
import org.elasticsearch.gradle.util.GradleUtils
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.validate-rest-spec'
apply plugin: 'elasticsearch.internal-test-artifact'

View file

@ -1,4 +1,4 @@
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
restResources {
restApi {
@ -22,4 +22,3 @@ testClusters.all {
// TODO: reduce the need for superuser here
user username: 'ccr-user', password: 'ccr-user-password', role: 'superuser'
}

View file

@ -7,7 +7,7 @@ import java.nio.file.Paths
apply plugin: 'elasticsearch.internal-es-plugin'
apply plugin: 'elasticsearch.publish'
apply plugin: 'elasticsearch.internal-cluster-test'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
apply plugin: 'elasticsearch.internal-test-artifact'
archivesBaseName = 'x-pack-core'

View file

@ -1,7 +1,7 @@
import org.elasticsearch.gradle.internal.info.BuildParams
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
restResources {
restApi {

View file

@ -1,5 +1,5 @@
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
import org.elasticsearch.gradle.internal.info.BuildParams

View file

@ -1,5 +1,5 @@
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
import org.elasticsearch.gradle.internal.info.BuildParams

View file

@ -1,6 +1,6 @@
import org.elasticsearch.gradle.internal.info.BuildParams
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation(testArtifact(project(xpackModule('core'))))

View file

@ -1,4 +1,4 @@
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation project(":x-pack:plugin:core")

View file

@ -1,4 +1,4 @@
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation(testArtifact(project(xpackModule('core'))))

View file

@ -1,4 +1,4 @@
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation(testArtifact(project(xpackModule('core'))))

View file

@ -6,8 +6,7 @@
*/
import org.elasticsearch.gradle.internal.info.BuildParams
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation project(path: xpackModule('rollup'))

View file

@ -1,5 +1,5 @@
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
javaRestTestImplementation(testArtifact(project(xpackModule('searchable-snapshots'))))

View file

@ -1,6 +1,6 @@
apply plugin: 'elasticsearch.internal-es-plugin'
apply plugin: 'elasticsearch.internal-cluster-test'
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
esplugin {
name 'spatial'

View file

@ -1,4 +1,4 @@
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation(testArtifact(project(xpackModule('core'))))}

View file

@ -1,4 +1,4 @@
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation(testArtifact(project(xpackModule('core'))))

View file

@ -1,7 +1,7 @@
import org.elasticsearch.gradle.internal.info.BuildParams
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation project(path: ':x-pack:plugin:watcher:qa:common')

View file

@ -1,5 +1,5 @@
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.java-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation project(path: ':x-pack:plugin:watcher:qa:common')

View file

@ -9,7 +9,7 @@ tasks.named("test").configure { enabled = false }
subprojects {
if (project.name.startsWith('core-with-')) {
apply plugin: 'elasticsearch.yaml-rest-test'
apply plugin: 'elasticsearch.internal-yaml-rest-test'
dependencies {
yamlRestTestImplementation xpackProject(":x-pack:qa:runtime-fields")