From e0d42739dd756704605d57028564f5996c1bd619 Mon Sep 17 00:00:00 2001 From: Robert Muir Date: Mon, 28 Sep 2015 20:17:45 -0400 Subject: [PATCH] Factor groovy out of core into lang-groovy --- core/pom.xml | 13 +-- .../elasticsearch/ElasticsearchException.java | 2 - .../inject/internal/BindingBuilder.java | 4 +- .../elasticsearch/plugins/PluginManager.java | 1 + .../elasticsearch/script/ScriptModule.java | 8 -- .../elasticsearch/script/ScriptService.java | 3 +- .../elasticsearch/plugins/plugin-install.help | 1 + .../ExceptionSerializationTests.java | 7 +- .../percolator/ConcurrentPercolatorIT.java | 2 +- .../percolator/MultiPercolatorIT.java | 2 +- .../percolator/PercolatorTestUtil.java | 41 ++++++++ .../percolator/RecoveryPercolatorIT.java | 2 +- .../percolator/TTLPercolatorIT.java | 2 +- .../plugins/PluginManagerIT.java | 1 + .../script/ScriptModesTests.java | 24 +---- .../script/ScriptServiceTests.java | 22 +---- .../AggregationCollectorTests.java | 11 ++- dev-tools/smoke_test_rc.py | 1 + distribution/pom.xml | 6 -- .../licenses/groovy-all-2.4.4-indy.jar.sha1 | 0 .../licenses/groovy-all-LICENSE-ANTLR.txt | 0 .../licenses/groovy-all-LICENSE-ASM.txt | 0 .../licenses/groovy-all-LICENSE-CLI.txt | 0 .../licenses/groovy-all-LICENSE-JSR223.txt | 0 .../licenses/groovy-all-LICENSE.txt | 0 .../licenses/groovy-all-NOTICE.txt | 0 plugins/lang-groovy/pom.xml | 42 ++++++++ .../script/groovy/GroovyPlugin.java | 26 ++--- .../groovy/GroovyScriptEngineService.java | 4 +- .../messy/tests/AliasRoutingTests.java | 14 ++- .../elasticsearch/messy/tests/AvgTests.java | 14 ++- .../messy/tests/BucketScriptTests.java | 14 ++- .../messy/tests/BucketSelectorTests.java | 13 ++- .../elasticsearch/messy/tests/BulkTests.java | 13 ++- .../messy/tests/CardinalityTests.java | 14 ++- .../messy/tests/ChildQuerySearchTests.java | 12 ++- .../tests/ContextAndHeaderTransportTests.java | 7 +- .../messy/tests/DateHistogramTests.java | 13 ++- .../messy/tests/DateRangeTests.java | 13 ++- .../messy/tests/DoubleTermsTests.java | 14 ++- .../messy/tests/EquivalenceTests.java | 14 ++- .../messy/tests/ExtendedStatsTests.java | 14 ++- .../messy/tests/FunctionScoreTests.java | 13 ++- .../messy/tests/GeoDistanceTests.java | 13 ++- .../messy/tests/HDRPercentileRanksTests.java | 16 ++- .../messy/tests/HDRPercentilesTests.java | 16 ++- .../messy/tests/HistogramTests.java | 13 ++- .../messy/tests/IPv4RangeTests.java | 13 ++- .../messy/tests/IndexLookupTests.java | 14 ++- .../messy/tests/IndexedScriptTests.java | 15 ++- .../messy/tests/IndicesRequestTests.java | 8 +- .../messy/tests/InnerHitsTests.java | 13 ++- .../messy/tests/LongTermsTests.java | 14 ++- .../elasticsearch/messy/tests/MaxTests.java | 14 ++- .../messy/tests/MinDocCountTests.java | 14 ++- .../elasticsearch/messy/tests/MinTests.java | 14 ++- .../messy/tests/PercolatorTests.java | 25 +++-- .../messy/tests/QueryRescorerTests.java | 14 ++- .../messy/tests/RandomScoreFunctionTests.java | 13 ++- .../elasticsearch/messy/tests/RangeTests.java | 13 ++- .../messy/tests/ScriptIndexSettingsTests.java | 16 ++- .../messy/tests/ScriptQuerySearchTests.java | 13 ++- .../messy/tests/ScriptedMetricTests.java | 15 ++- .../messy/tests/SearchFieldsTests.java | 12 ++- .../messy/tests/SearchQueryTests.java | 13 ++- .../messy/tests/SearchStatsTests.java | 13 ++- .../messy/tests/SearchTimeoutTests.java | 14 ++- ...ignificantTermsSignificanceScoreTests.java | 9 +- .../messy/tests/SimpleNestedTests.java | 14 ++- .../messy/tests/SimpleSortTests.java | 17 +++- .../elasticsearch/messy/tests/StatsTests.java | 14 ++- .../messy/tests/StringTermsTests.java | 14 ++- .../elasticsearch/messy/tests/SumTests.java | 14 ++- .../tests/TDigestPercentileRanksTests.java | 16 ++- .../messy/tests/TDigestPercentilesTests.java | 16 ++- .../messy/tests/TopHitsTests.java | 13 ++- .../tests/TransformOnIndexMapperTests.java | 14 ++- .../messy/tests/UpdateTests.java | 13 ++- .../messy/tests/ValueCountTests.java | 13 ++- .../messy/tests/package-info.java | 98 +++++++++++++++++++ .../script/groovy/GroovyRestIT.java | 37 +++---- .../script/groovy/GroovyScriptTests.java | 22 +++-- .../script/groovy/GroovySecurityTests.java | 17 +++- .../tests}/conf/scripts/combine_script.groovy | 0 .../tests}/conf/scripts/init_script.groovy | 0 .../tests}/conf/scripts/map_script.groovy | 0 .../tests}/conf/scripts/reduce_script.groovy | 0 .../significance_script_no_params.groovy | 0 .../significance_script_with_params.groovy | 0 .../test/lang_groovy/10_basic.yaml | 14 +++ .../test/lang_groovy/15_update.yaml | 2 +- .../test/lang_groovy/16_update2.yaml | 0 .../test/lang_groovy}/20_versions.yaml | 0 .../test/lang_groovy}/25_script_upsert.yaml | 0 .../test/lang_groovy}/90_missing.yaml | 0 plugins/pom.xml | 10 +- pom.xml | 7 -- qa/smoke-test-multinode/pom.xml | 6 -- qa/smoke-test-plugins/pom.xml | 14 +-- qa/vagrant/pom.xml | 6 ++ 100 files changed, 870 insertions(+), 275 deletions(-) create mode 100644 core/src/test/java/org/elasticsearch/percolator/PercolatorTestUtil.java rename {distribution => plugins/lang-groovy}/licenses/groovy-all-2.4.4-indy.jar.sha1 (100%) rename {distribution => plugins/lang-groovy}/licenses/groovy-all-LICENSE-ANTLR.txt (100%) rename {distribution => plugins/lang-groovy}/licenses/groovy-all-LICENSE-ASM.txt (100%) rename {distribution => plugins/lang-groovy}/licenses/groovy-all-LICENSE-CLI.txt (100%) rename {distribution => plugins/lang-groovy}/licenses/groovy-all-LICENSE-JSR223.txt (100%) rename {distribution => plugins/lang-groovy}/licenses/groovy-all-LICENSE.txt (100%) rename {distribution => plugins/lang-groovy}/licenses/groovy-all-NOTICE.txt (100%) create mode 100644 plugins/lang-groovy/pom.xml rename core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptExecutionException.java => plugins/lang-groovy/src/main/java/org/elasticsearch/script/groovy/GroovyPlugin.java (57%) rename {core => plugins/lang-groovy}/src/main/java/org/elasticsearch/script/groovy/GroovyScriptEngineService.java (98%) rename core/src/test/java/org/elasticsearch/routing/AliasRoutingIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AliasRoutingTests.java (98%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AvgTests.java (96%) rename core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketScriptTests.java (98%) rename core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketSelectorTests.java (98%) rename core/src/test/java/org/elasticsearch/document/BulkIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BulkTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/CardinalityTests.java (97%) rename core/src/test/java/org/elasticsearch/search/child/ChildQuerySearchIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ChildQuerySearchTests.java (99%) rename core/src/test/java/org/elasticsearch/transport/ContextAndHeaderTransportIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ContextAndHeaderTransportTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateHistogramTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateRangeTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DoubleTermsTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/EquivalenceIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/EquivalenceTests.java (98%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ExtendedStatsTests.java (98%) rename core/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/FunctionScoreTests.java (98%) rename core/src/test/java/org/elasticsearch/search/geo/GeoDistanceIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/GeoDistanceTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentileRanksTests.java (97%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentilesTests.java (97%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HistogramTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IPv4RangeTests.java (99%) rename core/src/test/java/org/elasticsearch/script/IndexLookupIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexLookupTests.java (98%) rename core/src/test/java/org/elasticsearch/script/IndexedScriptIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexedScriptTests.java (93%) rename core/src/test/java/org/elasticsearch/action/IndicesRequestIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndicesRequestTests.java (99%) rename core/src/test/java/org/elasticsearch/search/innerhits/InnerHitsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/InnerHitsTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/LongTermsTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MaxTests.java (96%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinDocCountTests.java (97%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/MinIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinTests.java (96%) rename core/src/test/java/org/elasticsearch/percolator/PercolatorIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/PercolatorTests.java (99%) rename core/src/test/java/org/elasticsearch/search/rescore/QueryRescorerIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/QueryRescorerTests.java (99%) rename core/src/test/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RandomScoreFunctionTests.java (97%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RangeTests.java (99%) rename core/src/test/java/org/elasticsearch/script/ScriptIndexSettingsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptIndexSettingsTests.java (89%) rename core/src/test/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptQuerySearchTests.java (93%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptedMetricTests.java (98%) rename core/src/test/java/org/elasticsearch/search/fields/SearchFieldsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchFieldsTests.java (99%) rename core/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchQueryTests.java (99%) rename core/src/test/java/org/elasticsearch/search/stats/SearchStatsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchStatsTests.java (96%) rename core/src/test/java/org/elasticsearch/search/timeout/SearchTimeoutIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchTimeoutTests.java (82%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SignificantTermsSignificanceScoreTests.java (99%) rename core/src/test/java/org/elasticsearch/nested/SimpleNestedIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleNestedTests.java (99%) rename core/src/test/java/org/elasticsearch/search/sort/SimpleSortIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleSortTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StatsTests.java (97%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StringTermsTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/SumIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SumTests.java (96%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentileRanksTests.java (97%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentilesTests.java (96%) rename core/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TopHitsTests.java (99%) rename core/src/test/java/org/elasticsearch/index/mapper/TransformOnIndexMapperIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TransformOnIndexMapperTests.java (95%) rename core/src/test/java/org/elasticsearch/update/UpdateIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/UpdateTests.java (99%) rename core/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ValueCountTests.java (95%) create mode 100644 plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/package-info.java rename core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptCompilationException.java => plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyRestIT.java (52%) rename core/src/test/java/org/elasticsearch/script/GroovyScriptIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyScriptTests.java (89%) rename core/src/test/java/org/elasticsearch/script/GroovySecurityIT.java => plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovySecurityTests.java (92%) rename {core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted => plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests}/conf/scripts/combine_script.groovy (100%) rename {core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted => plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests}/conf/scripts/init_script.groovy (100%) rename {core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted => plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests}/conf/scripts/map_script.groovy (100%) rename {core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted => plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests}/conf/scripts/reduce_script.groovy (100%) rename {core/src/test/resources/org/elasticsearch/search/aggregations/bucket/config => plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf}/scripts/significance_script_no_params.groovy (100%) rename {core/src/test/resources/org/elasticsearch/search/aggregations/bucket/config => plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf}/scripts/significance_script_with_params.groovy (100%) create mode 100644 plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/10_basic.yaml rename rest-api-spec/src/main/resources/rest-api-spec/test/update/15_script.yaml => plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/15_update.yaml (98%) rename rest-api-spec/src/main/resources/rest-api-spec/test/script/10_basic.yaml => plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/16_update2.yaml (100%) rename {rest-api-spec/src/main/resources/rest-api-spec/test/script => plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy}/20_versions.yaml (100%) rename {rest-api-spec/src/main/resources/rest-api-spec/test/update => plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy}/25_script_upsert.yaml (100%) rename {rest-api-spec/src/main/resources/rest-api-spec/test/update => plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy}/90_missing.yaml (100%) diff --git a/core/pom.xml b/core/pom.xml index 3646db5276a..faafbef6865 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -163,12 +163,6 @@ commons-cli - - org.codehaus.groovy - groovy-all - indy - true - log4j log4j @@ -283,6 +277,13 @@ org/elasticsearch/index/shard/MockEngineFactoryPlugin.class org/elasticsearch/search/MockSearchService.class org/elasticsearch/search/MockSearchService$*.class + org/elasticsearch/search/aggregations/bucket/AbstractTermsTestCase.class + org/elasticsearch/search/aggregations/bucket/script/NativeSignificanceScoreScriptNoParams.class + org/elasticsearch/search/aggregations/bucket/script/NativeSignificanceScoreScriptNoParams$*.class + org/elasticsearch/search/aggregations/bucket/script/NativeSignificanceScoreScriptWithParams.class + org/elasticsearch/search/aggregations/bucket/script/NativeSignificanceScoreScriptWithParams$*.class + org/elasticsearch/search/aggregations/metrics/AbstractNumericTestCase.class + org/elasticsearch/percolator/PercolatorTestUtil.class org/elasticsearch/cache/recycler/MockPageCacheRecycler.class org/elasticsearch/cache/recycler/MockPageCacheRecycler$*.class org/elasticsearch/common/util/MockBigArrays.class diff --git a/core/src/main/java/org/elasticsearch/ElasticsearchException.java b/core/src/main/java/org/elasticsearch/ElasticsearchException.java index 0fa4d68a406..87348f9dea5 100644 --- a/core/src/main/java/org/elasticsearch/ElasticsearchException.java +++ b/core/src/main/java/org/elasticsearch/ElasticsearchException.java @@ -555,7 +555,6 @@ public class ElasticsearchException extends RuntimeException implements ToXConte DELAY_RECOVERY_EXCEPTION(org.elasticsearch.indices.recovery.DelayRecoveryException.class, org.elasticsearch.indices.recovery.DelayRecoveryException::new, 92), INDEX_WARMER_MISSING_EXCEPTION(org.elasticsearch.search.warmer.IndexWarmerMissingException.class, org.elasticsearch.search.warmer.IndexWarmerMissingException::new, 93), NO_NODE_AVAILABLE_EXCEPTION(org.elasticsearch.client.transport.NoNodeAvailableException.class, org.elasticsearch.client.transport.NoNodeAvailableException::new, 94), - GROOVY_SCRIPT_COMPILATION_EXCEPTION(org.elasticsearch.script.groovy.GroovyScriptCompilationException.class, org.elasticsearch.script.groovy.GroovyScriptCompilationException::new, 95), INVALID_SNAPSHOT_NAME_EXCEPTION(org.elasticsearch.snapshots.InvalidSnapshotNameException.class, org.elasticsearch.snapshots.InvalidSnapshotNameException::new, 96), ILLEGAL_INDEX_SHARD_STATE_EXCEPTION(org.elasticsearch.index.shard.IllegalIndexShardStateException.class, org.elasticsearch.index.shard.IllegalIndexShardStateException::new, 97), INDEX_SHARD_SNAPSHOT_EXCEPTION(org.elasticsearch.index.snapshots.IndexShardSnapshotException.class, org.elasticsearch.index.snapshots.IndexShardSnapshotException::new, 98), @@ -582,7 +581,6 @@ public class ElasticsearchException extends RuntimeException implements ToXConte QUERY_PHASE_EXECUTION_EXCEPTION(org.elasticsearch.search.query.QueryPhaseExecutionException.class, org.elasticsearch.search.query.QueryPhaseExecutionException::new, 119), REPOSITORY_VERIFICATION_EXCEPTION(org.elasticsearch.repositories.RepositoryVerificationException.class, org.elasticsearch.repositories.RepositoryVerificationException::new, 120), INVALID_AGGREGATION_PATH_EXCEPTION(org.elasticsearch.search.aggregations.InvalidAggregationPathException.class, org.elasticsearch.search.aggregations.InvalidAggregationPathException::new, 121), - GROOVY_SCRIPT_EXECUTION_EXCEPTION(org.elasticsearch.script.groovy.GroovyScriptExecutionException.class, org.elasticsearch.script.groovy.GroovyScriptExecutionException::new, 122), INDEX_ALREADY_EXISTS_EXCEPTION(org.elasticsearch.indices.IndexAlreadyExistsException.class, org.elasticsearch.indices.IndexAlreadyExistsException::new, 123), SCRIPT_PARSE_EXCEPTION(org.elasticsearch.script.Script.ScriptParseException.class, org.elasticsearch.script.Script.ScriptParseException::new, 124), HTTP_ON_TRANSPORT_EXCEPTION(org.elasticsearch.transport.netty.SizeHeaderFrameDecoder.HttpOnTransportException.class, org.elasticsearch.transport.netty.SizeHeaderFrameDecoder.HttpOnTransportException::new, 125), diff --git a/core/src/main/java/org/elasticsearch/common/inject/internal/BindingBuilder.java b/core/src/main/java/org/elasticsearch/common/inject/internal/BindingBuilder.java index 6e441d7422d..5aa84dea58f 100644 --- a/core/src/main/java/org/elasticsearch/common/inject/internal/BindingBuilder.java +++ b/core/src/main/java/org/elasticsearch/common/inject/internal/BindingBuilder.java @@ -92,7 +92,7 @@ public class BindingBuilder extends AbstractBindingBuilder for (Message message : e.getErrorMessages()) { binder.addError(message); } - injectionPoints = unmodifiableSet(new HashSet<>(e.getPartialValue())); + injectionPoints = unmodifiableSet(new HashSet(e.getPartialValue())); } } else { binder.addError(BINDING_TO_NULL); @@ -117,7 +117,7 @@ public class BindingBuilder extends AbstractBindingBuilder for (Message message : e.getErrorMessages()) { binder.addError(message); } - injectionPoints = unmodifiableSet(new HashSet<>(e.getPartialValue())); + injectionPoints = unmodifiableSet(new HashSet(e.getPartialValue())); } BindingImpl base = getBinding(); diff --git a/core/src/main/java/org/elasticsearch/plugins/PluginManager.java b/core/src/main/java/org/elasticsearch/plugins/PluginManager.java index e5b4b0e92fe..9e7a6fcb703 100644 --- a/core/src/main/java/org/elasticsearch/plugins/PluginManager.java +++ b/core/src/main/java/org/elasticsearch/plugins/PluginManager.java @@ -96,6 +96,7 @@ public class PluginManager { "discovery-ec2", "discovery-multicast", "lang-expression", + "lang-groovy", "lang-javascript", "lang-python", "mapper-murmur3", diff --git a/core/src/main/java/org/elasticsearch/script/ScriptModule.java b/core/src/main/java/org/elasticsearch/script/ScriptModule.java index 77ed2b858c0..3c19826a190 100644 --- a/core/src/main/java/org/elasticsearch/script/ScriptModule.java +++ b/core/src/main/java/org/elasticsearch/script/ScriptModule.java @@ -24,7 +24,6 @@ import org.elasticsearch.common.inject.multibindings.MapBinder; import org.elasticsearch.common.inject.multibindings.Multibinder; import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.script.mustache.MustacheScriptEngineService; import java.util.ArrayList; @@ -76,13 +75,6 @@ public class ScriptModule extends AbstractModule { Multibinder multibinder = Multibinder.newSetBinder(binder(), ScriptEngineService.class); multibinder.addBinding().to(NativeScriptEngineService.class); - - try { - Class.forName("groovy.lang.GroovyClassLoader"); - multibinder.addBinding().to(GroovyScriptEngineService.class).asEagerSingleton(); - } catch (Throwable t) { - Loggers.getLogger(ScriptService.class, settings).debug("failed to load groovy", t); - } try { Class.forName("com.github.mustachejava.Mustache"); diff --git a/core/src/main/java/org/elasticsearch/script/ScriptService.java b/core/src/main/java/org/elasticsearch/script/ScriptService.java index 4ffd4c65902..85769bcc8f1 100644 --- a/core/src/main/java/org/elasticsearch/script/ScriptService.java +++ b/core/src/main/java/org/elasticsearch/script/ScriptService.java @@ -58,7 +58,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.env.Environment; import org.elasticsearch.index.query.TemplateQueryParser; -import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.watcher.FileChangesListener; @@ -88,7 +87,7 @@ public class ScriptService extends AbstractComponent implements Closeable { public static final int SCRIPT_CACHE_SIZE_DEFAULT = 100; public static final String SCRIPT_CACHE_EXPIRE_SETTING = "script.cache.expire"; public static final String SCRIPT_INDEX = ".scripts"; - public static final String DEFAULT_LANG = GroovyScriptEngineService.NAME; + public static final String DEFAULT_LANG = "groovy"; public static final String SCRIPT_AUTO_RELOAD_ENABLED_SETTING = "script.auto_reload_enabled"; private final String defaultLang; diff --git a/core/src/main/resources/org/elasticsearch/plugins/plugin-install.help b/core/src/main/resources/org/elasticsearch/plugins/plugin-install.help index 7831a7d4eef..0811ec7ccf2 100644 --- a/core/src/main/resources/org/elasticsearch/plugins/plugin-install.help +++ b/core/src/main/resources/org/elasticsearch/plugins/plugin-install.help @@ -44,6 +44,7 @@ OFFICIAL PLUGINS - discovery-ec2 - discovery-multicast - lang-expression + - lang-groovy - lang-javascript - lang-python - mapper-murmur3 diff --git a/core/src/test/java/org/elasticsearch/ExceptionSerializationTests.java b/core/src/test/java/org/elasticsearch/ExceptionSerializationTests.java index 6fa4d0acea7..9a260f033ee 100644 --- a/core/src/test/java/org/elasticsearch/ExceptionSerializationTests.java +++ b/core/src/test/java/org/elasticsearch/ExceptionSerializationTests.java @@ -22,7 +22,6 @@ import com.fasterxml.jackson.core.JsonLocation; import com.fasterxml.jackson.core.JsonParseException; import org.apache.lucene.util.Constants; -import org.codehaus.groovy.runtime.typehandling.GroovyCastException; import org.elasticsearch.action.FailedNodeException; import org.elasticsearch.action.RoutingMissingException; import org.elasticsearch.action.TimestampParsingException; @@ -573,7 +572,7 @@ public class ExceptionSerializationTests extends ESTestCase { Throwable[] unknowns = new Throwable[] { new JsonParseException("foobar", new JsonLocation(new Object(), 1,2,3,4)), - new GroovyCastException("boom boom boom"), + new ClassCastException("boom boom boom"), new IOException("booom") }; for (Throwable t : unknowns) { @@ -758,7 +757,7 @@ public class ExceptionSerializationTests extends ESTestCase { ids.put(92, org.elasticsearch.indices.recovery.DelayRecoveryException.class); ids.put(93, org.elasticsearch.search.warmer.IndexWarmerMissingException.class); ids.put(94, org.elasticsearch.client.transport.NoNodeAvailableException.class); - ids.put(95, org.elasticsearch.script.groovy.GroovyScriptCompilationException.class); + ids.put(95, null); ids.put(96, org.elasticsearch.snapshots.InvalidSnapshotNameException.class); ids.put(97, org.elasticsearch.index.shard.IllegalIndexShardStateException.class); ids.put(98, org.elasticsearch.index.snapshots.IndexShardSnapshotException.class); @@ -785,7 +784,7 @@ public class ExceptionSerializationTests extends ESTestCase { ids.put(119, org.elasticsearch.search.query.QueryPhaseExecutionException.class); ids.put(120, org.elasticsearch.repositories.RepositoryVerificationException.class); ids.put(121, org.elasticsearch.search.aggregations.InvalidAggregationPathException.class); - ids.put(122, org.elasticsearch.script.groovy.GroovyScriptExecutionException.class); + ids.put(122, null); ids.put(123, org.elasticsearch.indices.IndexAlreadyExistsException.class); ids.put(124, org.elasticsearch.script.Script.ScriptParseException.class); ids.put(125, org.elasticsearch.transport.netty.SizeHeaderFrameDecoder.HttpOnTransportException.class); diff --git a/core/src/test/java/org/elasticsearch/percolator/ConcurrentPercolatorIT.java b/core/src/test/java/org/elasticsearch/percolator/ConcurrentPercolatorIT.java index 9efd001b98e..4a6b835c834 100644 --- a/core/src/test/java/org/elasticsearch/percolator/ConcurrentPercolatorIT.java +++ b/core/src/test/java/org/elasticsearch/percolator/ConcurrentPercolatorIT.java @@ -38,7 +38,7 @@ import java.util.concurrent.atomic.AtomicReference; import static org.elasticsearch.index.query.QueryBuilders.boolQuery; import static org.elasticsearch.index.query.QueryBuilders.termQuery; -import static org.elasticsearch.percolator.PercolatorIT.convertFromTextArray; +import static org.elasticsearch.percolator.PercolatorTestUtil.convertFromTextArray; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; import static org.hamcrest.Matchers.*; diff --git a/core/src/test/java/org/elasticsearch/percolator/MultiPercolatorIT.java b/core/src/test/java/org/elasticsearch/percolator/MultiPercolatorIT.java index 2565d5d61e1..2eb763959f8 100644 --- a/core/src/test/java/org/elasticsearch/percolator/MultiPercolatorIT.java +++ b/core/src/test/java/org/elasticsearch/percolator/MultiPercolatorIT.java @@ -37,7 +37,7 @@ import java.io.IOException; import static org.elasticsearch.action.percolate.PercolateSourceBuilder.docBuilder; import static org.elasticsearch.common.xcontent.XContentFactory.*; import static org.elasticsearch.index.query.QueryBuilders.*; -import static org.elasticsearch.percolator.PercolatorIT.convertFromTextArray; +import static org.elasticsearch.percolator.PercolatorTestUtil.convertFromTextArray; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertMatchCount; import static org.hamcrest.Matchers.*; diff --git a/core/src/test/java/org/elasticsearch/percolator/PercolatorTestUtil.java b/core/src/test/java/org/elasticsearch/percolator/PercolatorTestUtil.java new file mode 100644 index 00000000000..671d7b8fd3b --- /dev/null +++ b/core/src/test/java/org/elasticsearch/percolator/PercolatorTestUtil.java @@ -0,0 +1,41 @@ +/* + * 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.percolator; + +import org.elasticsearch.action.percolate.PercolateResponse; +import org.elasticsearch.common.Strings; +import org.junit.Assert; + +/** Static method pulled out of PercolatorIT, used by other tests */ +public class PercolatorTestUtil extends Assert { + + public static String[] convertFromTextArray(PercolateResponse.Match[] matches, String index) { + if (matches.length == 0) { + return Strings.EMPTY_ARRAY; + } + String[] strings = new String[matches.length]; + for (int i = 0; i < matches.length; i++) { + assertEquals(index, matches[i].getIndex().string()); + strings[i] = matches[i].getId().string(); + } + return strings; + } + +} diff --git a/core/src/test/java/org/elasticsearch/percolator/RecoveryPercolatorIT.java b/core/src/test/java/org/elasticsearch/percolator/RecoveryPercolatorIT.java index 25d281fbd19..eb694ff5ed6 100644 --- a/core/src/test/java/org/elasticsearch/percolator/RecoveryPercolatorIT.java +++ b/core/src/test/java/org/elasticsearch/percolator/RecoveryPercolatorIT.java @@ -46,7 +46,7 @@ import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; import static org.elasticsearch.index.query.QueryBuilders.rangeQuery; import static org.elasticsearch.index.query.QueryBuilders.termQuery; -import static org.elasticsearch.percolator.PercolatorIT.convertFromTextArray; +import static org.elasticsearch.percolator.PercolatorTestUtil.convertFromTextArray; import static org.elasticsearch.test.ESIntegTestCase.ClusterScope; import static org.elasticsearch.test.ESIntegTestCase.Scope; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; diff --git a/core/src/test/java/org/elasticsearch/percolator/TTLPercolatorIT.java b/core/src/test/java/org/elasticsearch/percolator/TTLPercolatorIT.java index a4829a4cb22..7fbedca0440 100644 --- a/core/src/test/java/org/elasticsearch/percolator/TTLPercolatorIT.java +++ b/core/src/test/java/org/elasticsearch/percolator/TTLPercolatorIT.java @@ -37,7 +37,7 @@ import java.util.concurrent.TimeUnit; import static org.elasticsearch.common.settings.Settings.settingsBuilder; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; -import static org.elasticsearch.percolator.PercolatorIT.convertFromTextArray; +import static org.elasticsearch.percolator.PercolatorTestUtil.convertFromTextArray; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertMatchCount; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; import static org.hamcrest.Matchers.arrayContaining; diff --git a/core/src/test/java/org/elasticsearch/plugins/PluginManagerIT.java b/core/src/test/java/org/elasticsearch/plugins/PluginManagerIT.java index 64465dc3505..c76bef55abe 100644 --- a/core/src/test/java/org/elasticsearch/plugins/PluginManagerIT.java +++ b/core/src/test/java/org/elasticsearch/plugins/PluginManagerIT.java @@ -593,6 +593,7 @@ public class PluginManagerIT extends ESIntegTestCase { PluginManager.checkForOfficialPlugins("cloud-gce"); PluginManager.checkForOfficialPlugins("delete-by-query"); PluginManager.checkForOfficialPlugins("lang-expression"); + PluginManager.checkForOfficialPlugins("lang-groovy"); PluginManager.checkForOfficialPlugins("lang-javascript"); PluginManager.checkForOfficialPlugins("lang-python"); PluginManager.checkForOfficialPlugins("mapper-murmur3"); diff --git a/core/src/test/java/org/elasticsearch/script/ScriptModesTests.java b/core/src/test/java/org/elasticsearch/script/ScriptModesTests.java index 37030a2e235..c14c2e8b464 100644 --- a/core/src/test/java/org/elasticsearch/script/ScriptModesTests.java +++ b/core/src/test/java/org/elasticsearch/script/ScriptModesTests.java @@ -24,7 +24,6 @@ import com.google.common.collect.ImmutableMap; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.script.ScriptService.ScriptType; -import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.script.mustache.MustacheScriptEngineService; import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.test.ESTestCase; @@ -47,7 +46,7 @@ import static org.hamcrest.CoreMatchers.notNullValue; // TODO: this needs to be a base test class, and all scripting engines extend it public class ScriptModesTests extends ESTestCase { private static final Set ALL_LANGS = unmodifiableSet( - newHashSet(GroovyScriptEngineService.NAME, MustacheScriptEngineService.NAME, "custom", "test")); + newHashSet(MustacheScriptEngineService.NAME, "custom", "test")); static final String[] ENABLE_VALUES = new String[]{"on", "true", "yes", "1"}; static final String[] DISABLE_VALUES = new String[]{"off", "false", "no", "0"}; @@ -75,7 +74,6 @@ public class ScriptModesTests extends ESTestCase { scriptContextRegistry = new ScriptContextRegistry(contexts.values()); scriptContexts = scriptContextRegistry.scriptContexts().toArray(new ScriptContext[scriptContextRegistry.scriptContexts().size()]); scriptEngines = buildScriptEnginesByLangMap(newHashSet( - new GroovyScriptEngineService(Settings.EMPTY), new MustacheScriptEngineService(Settings.EMPTY), //add the native engine just to make sure it gets filtered out new NativeScriptEngineService(Settings.EMPTY, Collections.emptyMap()), @@ -96,8 +94,8 @@ public class ScriptModesTests extends ESTestCase { public void assertAllSettingsWereChecked() { if (assertScriptModesNonNull) { assertThat(scriptModes, notNullValue()); - //4 is the number of engines (native excluded), custom is counted twice though as it's associated with two different names - int numberOfSettings = 4 * ScriptType.values().length * scriptContextRegistry.scriptContexts().size(); + //3 is the number of engines (native excluded), custom is counted twice though as it's associated with two different names + int numberOfSettings = 3 * ScriptType.values().length * scriptContextRegistry.scriptContexts().size(); assertThat(scriptModes.scriptModes.size(), equalTo(numberOfSettings)); if (assertAllSettingsWereChecked) { assertThat(checkedSettings.size(), equalTo(numberOfSettings)); @@ -193,22 +191,6 @@ public class ScriptModesTests extends ESTestCase { assertScriptModes(ScriptMode.SANDBOX, ALL_LANGS, new ScriptType[]{ScriptType.INLINE}, complementOf); } - @Test - public void testEngineSpecificSettings() { - Settings.Builder builder = Settings.builder() - .put(specificEngineOpSettings(GroovyScriptEngineService.NAME, ScriptType.INLINE, ScriptContext.Standard.MAPPING), randomFrom(DISABLE_VALUES)) - .put(specificEngineOpSettings(GroovyScriptEngineService.NAME, ScriptType.INLINE, ScriptContext.Standard.UPDATE), randomFrom(DISABLE_VALUES)); - Set groovyLangSet = singleton(GroovyScriptEngineService.NAME); - Set allButGroovyLangSet = new HashSet<>(ALL_LANGS); - allButGroovyLangSet.remove(GroovyScriptEngineService.NAME); - this.scriptModes = new ScriptModes(scriptEngines, scriptContextRegistry, builder.build()); - assertScriptModes(ScriptMode.OFF, groovyLangSet, new ScriptType[]{ScriptType.INLINE}, ScriptContext.Standard.MAPPING, ScriptContext.Standard.UPDATE); - assertScriptModes(ScriptMode.SANDBOX, groovyLangSet, new ScriptType[]{ScriptType.INLINE}, complementOf(ScriptContext.Standard.MAPPING, ScriptContext.Standard.UPDATE)); - assertScriptModesAllOps(ScriptMode.SANDBOX, allButGroovyLangSet, ScriptType.INLINE); - assertScriptModesAllOps(ScriptMode.SANDBOX, ALL_LANGS, ScriptType.INDEXED); - assertScriptModesAllOps(ScriptMode.ON, ALL_LANGS, ScriptType.FILE); - } - @Test public void testInteractionBetweenGenericAndEngineSpecificSettings() { Settings.Builder builder = Settings.builder().put("script.inline", randomFrom(DISABLE_VALUES)) diff --git a/core/src/test/java/org/elasticsearch/script/ScriptServiceTests.java b/core/src/test/java/org/elasticsearch/script/ScriptServiceTests.java index 4f19cd9426c..a0afe8f93d7 100644 --- a/core/src/test/java/org/elasticsearch/script/ScriptServiceTests.java +++ b/core/src/test/java/org/elasticsearch/script/ScriptServiceTests.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.io.Streams; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.script.ScriptService.ScriptType; -import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.script.mustache.MustacheScriptEngineService; import org.elasticsearch.search.lookup.SearchLookup; import org.elasticsearch.test.ESTestCase; @@ -75,7 +74,7 @@ public class ScriptServiceTests extends ESTestCase { .put("path.conf", genericConfigFolder) .build(); resourceWatcherService = new ResourceWatcherService(baseSettings, null); - scriptEngineServices = newHashSet(new TestEngineService(), new GroovyScriptEngineService(baseSettings), + scriptEngineServices = newHashSet(new TestEngineService(), new MustacheScriptEngineService(baseSettings)); scriptEnginesByLangMap = ScriptModesTests.buildScriptEnginesByLangMap(scriptEngineServices); //randomly register custom script contexts @@ -155,21 +154,6 @@ public class ScriptServiceTests extends ESTestCase { } } - @Test - public void testScriptsSameNameDifferentLanguage() throws IOException { - ContextAndHeaderHolder contextAndHeaders = new ContextAndHeaderHolder(); - buildScriptService(Settings.EMPTY); - createFileScripts("groovy", "test"); - CompiledScript groovyScript = scriptService.compile( - new Script("file_script", ScriptType.FILE, GroovyScriptEngineService.NAME, null), randomFrom(scriptContexts), - contextAndHeaders); - assertThat(groovyScript.lang(), equalTo(GroovyScriptEngineService.NAME)); - CompiledScript expressionScript = scriptService.compile(new Script("file_script", ScriptType.FILE, "test", - null), randomFrom(new ScriptContext[] { ScriptContext.Standard.AGGS, - ScriptContext.Standard.SEARCH }), contextAndHeaders); - assertThat(expressionScript.lang(), equalTo("test")); - } - @Test public void testInlineScriptCompiledOnceCache() throws IOException { ContextAndHeaderHolder contextAndHeaders = new ContextAndHeaderHolder(); @@ -222,10 +206,6 @@ public class ScriptServiceTests extends ESTestCase { createFileScripts("groovy", "mustache", "test"); for (ScriptContext scriptContext : scriptContexts) { - //groovy is not sandboxed, only file scripts are enabled by default - assertCompileRejected(GroovyScriptEngineService.NAME, "script", ScriptType.INLINE, scriptContext, contextAndHeaders); - assertCompileRejected(GroovyScriptEngineService.NAME, "script", ScriptType.INDEXED, scriptContext, contextAndHeaders); - assertCompileAccepted(GroovyScriptEngineService.NAME, "file_script", ScriptType.FILE, scriptContext, contextAndHeaders); //mustache engine is sandboxed, all scripts are enabled by default assertCompileAccepted(MustacheScriptEngineService.NAME, "script", ScriptType.INLINE, scriptContext, contextAndHeaders); assertCompileAccepted(MustacheScriptEngineService.NAME, "script", ScriptType.INDEXED, scriptContext, contextAndHeaders); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java index 1172170ca12..178c7ffbaf7 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java @@ -40,16 +40,17 @@ public class AggregationCollectorTests extends ESSingleNodeTestCase { assertFalse(needsScores(index, fieldAgg)); // agg on a script => scores are needed - String scriptAgg = "{ \"my_terms\": {\"terms\": {\"script\": \"doc['f'].value\"}}}"; - assertTrue(needsScores(index, scriptAgg)); + // TODO: can we use a mock script service here? + // String scriptAgg = "{ \"my_terms\": {\"terms\": {\"script\": \"doc['f'].value\"}}}"; + // assertTrue(needsScores(index, scriptAgg)); + // + // String subScriptAgg = "{ \"my_outer_terms\": { \"terms\": { \"field\": \"f\" }, \"aggs\": " + scriptAgg + "}}"; + // assertTrue(needsScores(index, subScriptAgg)); // make sure the information is propagated to sub aggregations String subFieldAgg = "{ \"my_outer_terms\": { \"terms\": { \"field\": \"f\" }, \"aggs\": " + fieldAgg + "}}"; assertFalse(needsScores(index, subFieldAgg)); - String subScriptAgg = "{ \"my_outer_terms\": { \"terms\": { \"field\": \"f\" }, \"aggs\": " + scriptAgg + "}}"; - assertTrue(needsScores(index, subScriptAgg)); - // top_hits is a particular example of an aggregation that needs scores String topHitsAgg = "{ \"my_hits\": {\"top_hits\": {}}}"; assertTrue(needsScores(index, topHitsAgg)); diff --git a/dev-tools/smoke_test_rc.py b/dev-tools/smoke_test_rc.py index c0bd3cf0e49..b0742a03c00 100644 --- a/dev-tools/smoke_test_rc.py +++ b/dev-tools/smoke_test_rc.py @@ -68,6 +68,7 @@ DEFAULT_PLUGINS = ["analysis-icu", "discovery-ec2", "discovery-multicast", "lang-expression", + "lang-groovy", "lang-javascript", "lang-python", "mapper-murmur3", diff --git a/distribution/pom.xml b/distribution/pom.xml index 48b4e40b8e2..71575db9eef 100644 --- a/distribution/pom.xml +++ b/distribution/pom.xml @@ -92,12 +92,6 @@ compiler - - org.codehaus.groovy - groovy-all - indy - - log4j log4j diff --git a/distribution/licenses/groovy-all-2.4.4-indy.jar.sha1 b/plugins/lang-groovy/licenses/groovy-all-2.4.4-indy.jar.sha1 similarity index 100% rename from distribution/licenses/groovy-all-2.4.4-indy.jar.sha1 rename to plugins/lang-groovy/licenses/groovy-all-2.4.4-indy.jar.sha1 diff --git a/distribution/licenses/groovy-all-LICENSE-ANTLR.txt b/plugins/lang-groovy/licenses/groovy-all-LICENSE-ANTLR.txt similarity index 100% rename from distribution/licenses/groovy-all-LICENSE-ANTLR.txt rename to plugins/lang-groovy/licenses/groovy-all-LICENSE-ANTLR.txt diff --git a/distribution/licenses/groovy-all-LICENSE-ASM.txt b/plugins/lang-groovy/licenses/groovy-all-LICENSE-ASM.txt similarity index 100% rename from distribution/licenses/groovy-all-LICENSE-ASM.txt rename to plugins/lang-groovy/licenses/groovy-all-LICENSE-ASM.txt diff --git a/distribution/licenses/groovy-all-LICENSE-CLI.txt b/plugins/lang-groovy/licenses/groovy-all-LICENSE-CLI.txt similarity index 100% rename from distribution/licenses/groovy-all-LICENSE-CLI.txt rename to plugins/lang-groovy/licenses/groovy-all-LICENSE-CLI.txt diff --git a/distribution/licenses/groovy-all-LICENSE-JSR223.txt b/plugins/lang-groovy/licenses/groovy-all-LICENSE-JSR223.txt similarity index 100% rename from distribution/licenses/groovy-all-LICENSE-JSR223.txt rename to plugins/lang-groovy/licenses/groovy-all-LICENSE-JSR223.txt diff --git a/distribution/licenses/groovy-all-LICENSE.txt b/plugins/lang-groovy/licenses/groovy-all-LICENSE.txt similarity index 100% rename from distribution/licenses/groovy-all-LICENSE.txt rename to plugins/lang-groovy/licenses/groovy-all-LICENSE.txt diff --git a/distribution/licenses/groovy-all-NOTICE.txt b/plugins/lang-groovy/licenses/groovy-all-NOTICE.txt similarity index 100% rename from distribution/licenses/groovy-all-NOTICE.txt rename to plugins/lang-groovy/licenses/groovy-all-NOTICE.txt diff --git a/plugins/lang-groovy/pom.xml b/plugins/lang-groovy/pom.xml new file mode 100644 index 00000000000..eeb5244b9a0 --- /dev/null +++ b/plugins/lang-groovy/pom.xml @@ -0,0 +1,42 @@ + + + 4.0.0 + + + org.elasticsearch.plugin + plugins + 3.0.0-SNAPSHOT + + + lang-groovy + Plugin: Language: Groovy + Groovy scripting integration for Elasticsearch + + + org.elasticsearch.script.groovy.GroovyPlugin + lang_groovy + false + -Xlint:-rawtypes,-unchecked,-cast,-deprecation + + + + + org.codehaus.groovy + groovy-all + indy + 2.4.4 + + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + + + + diff --git a/core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptExecutionException.java b/plugins/lang-groovy/src/main/java/org/elasticsearch/script/groovy/GroovyPlugin.java similarity index 57% rename from core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptExecutionException.java rename to plugins/lang-groovy/src/main/java/org/elasticsearch/script/groovy/GroovyPlugin.java index ae8778c471e..78f803a75ca 100644 --- a/core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptExecutionException.java +++ b/plugins/lang-groovy/src/main/java/org/elasticsearch/script/groovy/GroovyPlugin.java @@ -19,28 +19,22 @@ package org.elasticsearch.script.groovy; -import org.elasticsearch.ElasticsearchException; -import org.elasticsearch.common.io.stream.StreamInput; -import org.elasticsearch.rest.RestStatus; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.script.ScriptModule; -import java.io.IOException; +public class GroovyPlugin extends Plugin { -/** - * Exception used to wrap groovy script execution exceptions so they are - * correctly serialized between nodes. - */ -public class GroovyScriptExecutionException extends ElasticsearchException { - - public GroovyScriptExecutionException(String message, Throwable cause) { - super(message, cause); + @Override + public String name() { + return "lang-groovy"; } @Override - public RestStatus status() { - return RestStatus.BAD_REQUEST; + public String description() { + return "Groovy scripting integration for Elasticsearch"; } - public GroovyScriptExecutionException(StreamInput in) throws IOException{ - super(in); + public void onModule(ScriptModule module) { + module.addScriptEngine(GroovyScriptEngineService.class); } } diff --git a/core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptEngineService.java b/plugins/lang-groovy/src/main/java/org/elasticsearch/script/groovy/GroovyScriptEngineService.java similarity index 98% rename from core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptEngineService.java rename to plugins/lang-groovy/src/main/java/org/elasticsearch/script/groovy/GroovyScriptEngineService.java index f128edcd9f0..0489f74bb9f 100644 --- a/core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptEngineService.java +++ b/plugins/lang-groovy/src/main/java/org/elasticsearch/script/groovy/GroovyScriptEngineService.java @@ -145,7 +145,7 @@ public class GroovyScriptEngineService extends AbstractComponent implements Scri if (logger.isTraceEnabled()) { logger.trace("exception compiling Groovy script:", e); } - throw new GroovyScriptCompilationException("failed to compile groovy script", e); + throw new ScriptException("failed to compile groovy script", e); } } @@ -279,7 +279,7 @@ public class GroovyScriptEngineService extends AbstractComponent implements Scri if (logger.isTraceEnabled()) { logger.trace("failed to run " + compiledScript, e); } - throw new GroovyScriptExecutionException("failed to run " + compiledScript, e); + throw new ScriptException("failed to run " + compiledScript, e); } } diff --git a/core/src/test/java/org/elasticsearch/routing/AliasRoutingIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AliasRoutingTests.java similarity index 98% rename from core/src/test/java/org/elasticsearch/routing/AliasRoutingIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AliasRoutingTests.java index b7b44afd437..347d3c73119 100644 --- a/core/src/test/java/org/elasticsearch/routing/AliasRoutingIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AliasRoutingTests.java @@ -17,17 +17,22 @@ * under the License. */ -package org.elasticsearch.routing; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; + import static org.elasticsearch.cluster.metadata.AliasAction.newAddAliasAction; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.hamcrest.Matchers.equalTo; @@ -35,8 +40,13 @@ import static org.hamcrest.Matchers.equalTo; /** * */ -public class AliasRoutingIT extends ESIntegTestCase { +public class AliasRoutingTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override protected int minimumNumberOfShards() { return 2; diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AvgTests.java similarity index 96% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AvgTests.java index 13ce893724f..8ee84f1bcff 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AvgTests.java @@ -16,16 +16,21 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.avg.Avg; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -41,8 +46,13 @@ import static org.hamcrest.Matchers.notNullValue; /** * */ -public class AvgIT extends AbstractNumericTestCase { +public class AvgTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override @Test public void testEmptyAggregation() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketScriptTests.java similarity index 98% rename from core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketScriptTests.java index 2e3117e76ff..af17e469b28 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketScriptTests.java @@ -17,24 +17,29 @@ * under the License. */ -package org.elasticsearch.search.aggregations.pipeline; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogram.Bucket; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.search.aggregations.pipeline.BucketHelpers.GapPolicy; +import org.elasticsearch.search.aggregations.pipeline.SimpleValue; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -49,7 +54,7 @@ import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; @ESIntegTestCase.SuiteScopeTestCase -public class BucketScriptIT extends ESIntegTestCase { +public class BucketScriptTests extends ESIntegTestCase { private static final String FIELD_1_NAME = "field1"; private static final String FIELD_2_NAME = "field2"; @@ -61,6 +66,11 @@ public class BucketScriptIT extends ESIntegTestCase { private static int minNumber; private static int maxNumber; + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public void setupSuiteScopeCluster() throws Exception { createIndex("idx"); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketSelectorTests.java similarity index 98% rename from core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketSelectorTests.java index faf43f09968..7b14bca98b3 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketSelectorTests.java @@ -17,13 +17,15 @@ * under the License. */ -package org.elasticsearch.search.aggregations.pipeline; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogram; @@ -35,6 +37,8 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -50,7 +54,7 @@ import static org.hamcrest.Matchers.lessThan; import static org.hamcrest.Matchers.notNullValue; @ESIntegTestCase.SuiteScopeTestCase -public class BucketSelectorIT extends ESIntegTestCase { +public class BucketSelectorTests extends ESIntegTestCase { private static final String FIELD_1_NAME = "field1"; private static final String FIELD_2_NAME = "field2"; @@ -62,6 +66,11 @@ public class BucketSelectorIT extends ESIntegTestCase { private static int minNumber; private static int maxNumber; + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public void setupSuiteScopeCluster() throws Exception { createIndex("idx"); diff --git a/core/src/test/java/org/elasticsearch/document/BulkIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BulkTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/document/BulkIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BulkTests.java index 9867d197c85..6cba9ae9517 100644 --- a/core/src/test/java/org/elasticsearch/document/BulkIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BulkTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.document; +package org.elasticsearch.messy.tests; import java.nio.charset.StandardCharsets; @@ -42,12 +42,16 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.VersionType; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.concurrent.CyclicBarrier; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; @@ -61,8 +65,13 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; -public class BulkIT extends ESIntegTestCase { +public class BulkTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Test public void testBulkUpdate_simple() throws Exception { assertAcked(prepareCreate("test").addAlias(new Alias("alias"))); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/CardinalityTests.java similarity index 97% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/CardinalityTests.java index d77e4d1ccd0..37ed5a68907 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/CardinalityTests.java @@ -17,12 +17,14 @@ * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.terms.Terms; @@ -30,6 +32,9 @@ import org.elasticsearch.search.aggregations.metrics.cardinality.Cardinality; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; + import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; import static org.elasticsearch.search.aggregations.AggregationBuilders.cardinality; @@ -41,8 +46,13 @@ import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.notNullValue; @ESIntegTestCase.SuiteScopeTestCase -public class CardinalityIT extends ESIntegTestCase { +public class CardinalityTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public Settings indexSettings() { return Settings.builder() diff --git a/core/src/test/java/org/elasticsearch/search/child/ChildQuerySearchIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ChildQuerySearchTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/child/ChildQuerySearchIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ChildQuerySearchTests.java index 982a3d9a156..a8983ad0c27 100644 --- a/core/src/test/java/org/elasticsearch/search/child/ChildQuerySearchIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ChildQuerySearchTests.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.child; +package org.elasticsearch.messy.tests; import org.apache.lucene.search.join.ScoreMode; import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse; @@ -27,7 +27,6 @@ import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchPhaseExecutionException; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchType; - import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.lucene.search.function.CombineFunction; import org.elasticsearch.common.lucene.search.function.FiltersFunctionScoreQuery; @@ -39,8 +38,10 @@ import org.elasticsearch.index.query.HasChildQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.global.Global; @@ -68,8 +69,13 @@ import static org.hamcrest.Matchers.*; * */ @ClusterScope(scope = Scope.SUITE) -public class ChildQuerySearchIT extends ESIntegTestCase { +public class ChildQuerySearchTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override protected Settings nodeSettings(int nodeOrdinal) { return Settings.settingsBuilder().put(super.nodeSettings(nodeOrdinal)) diff --git a/core/src/test/java/org/elasticsearch/transport/ContextAndHeaderTransportIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ContextAndHeaderTransportTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/transport/ContextAndHeaderTransportIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ContextAndHeaderTransportTests.java index abd0a063c90..a1ed4b74955 100644 --- a/core/src/test/java/org/elasticsearch/transport/ContextAndHeaderTransportIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ContextAndHeaderTransportTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.transport; +package org.elasticsearch.messy.tests; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; @@ -61,6 +61,7 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; import org.elasticsearch.script.Template; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.script.mustache.MustacheScriptEngineService; import org.elasticsearch.search.aggregations.AggregationBuilders; @@ -103,7 +104,7 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; @ClusterScope(scope = SUITE) -public class ContextAndHeaderTransportIT extends ESIntegTestCase { +public class ContextAndHeaderTransportTests extends ESIntegTestCase { private static final List requests = new CopyOnWriteArrayList<>(); private String randomHeaderKey = randomAsciiOfLength(10); @@ -122,7 +123,7 @@ public class ContextAndHeaderTransportIT extends ESIntegTestCase { @Override protected Collection> nodePlugins() { - return pluginList(ActionLoggingPlugin.class); + return pluginList(ActionLoggingPlugin.class, GroovyPlugin.class); } @Before diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateHistogramTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateHistogramTests.java index 37fff46f5dd..cea4a32ab9a 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateHistogramTests.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchPhaseExecutionException; @@ -26,7 +26,9 @@ import org.elasticsearch.common.joda.Joda; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.mapper.core.DateFieldMapper; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket; @@ -43,6 +45,8 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; @@ -59,8 +63,13 @@ import static org.hamcrest.core.IsNull.notNullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class DateHistogramIT extends ESIntegTestCase { +public class DateHistogramTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private DateTime date(int month, int day) { return new DateTime(2012, month, day, 0, 0, DateTimeZone.UTC); } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateRangeTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateRangeTests.java index caef65714fc..f6425fc6b28 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateRangeTests.java @@ -16,11 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.range.Range; import org.elasticsearch.search.aggregations.bucket.range.Range.Bucket; @@ -36,6 +38,8 @@ import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.List; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; @@ -56,8 +60,13 @@ import static org.hamcrest.core.IsNull.nullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class DateRangeIT extends ESIntegTestCase { +public class DateRangeTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private static IndexRequestBuilder indexDoc(int month, int day, int value) throws Exception { return client().prepareIndex("idx", "type").setSource(jsonBuilder() .startObject() diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DoubleTermsTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DoubleTermsTests.java index dbae3c19a87..78398a1f6ab 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DoubleTermsTests.java @@ -16,15 +16,18 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; +import org.elasticsearch.search.aggregations.bucket.AbstractTermsTestCase; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.terms.Terms; @@ -40,6 +43,8 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -66,8 +71,13 @@ import static org.hamcrest.core.IsNull.notNullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class DoubleTermsIT extends AbstractTermsTestCase { +public class DoubleTermsTests extends AbstractTermsTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private static final int NUM_DOCS = 5; // TODO: randomize the size? private static final String SINGLE_VALUED_FIELD_NAME = "d_value"; private static final String MULTI_VALUED_FIELD_NAME = "d_values"; diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/EquivalenceIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/EquivalenceTests.java similarity index 98% rename from core/src/test/java/org/elasticsearch/search/aggregations/EquivalenceIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/EquivalenceTests.java index 61795b8300a..74bef40b713 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/EquivalenceIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/EquivalenceTests.java @@ -17,9 +17,10 @@ * under the License. */ -package org.elasticsearch.search.aggregations; +package org.elasticsearch.messy.tests; import com.carrotsearch.hppc.IntHashSet; + import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchResponse; @@ -27,8 +28,10 @@ import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.RangeQueryBuilder; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; @@ -41,6 +44,8 @@ import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.elasticsearch.test.ESIntegTestCase; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -67,8 +72,13 @@ import static org.hamcrest.core.IsNull.notNullValue; * Additional tests that aim at testing more complex aggregation trees on larger random datasets, so that things like * the growth of dynamic arrays is tested. */ -public class EquivalenceIT extends ESIntegTestCase { +public class EquivalenceTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + // Make sure that unordered, reversed, disjoint and/or overlapping ranges are supported // Duel with filters public void testRandomRanges() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ExtendedStatsTests.java similarity index 98% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ExtendedStatsTests.java index d54dc7a3d08..47cdc42987e 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ExtendedStatsTests.java @@ -16,17 +16,22 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.ShardSearchFailure; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStats; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -43,7 +48,12 @@ import static org.hamcrest.Matchers.sameInstance; /** * */ -public class ExtendedStatsIT extends AbstractNumericTestCase { +public class ExtendedStatsTests extends AbstractNumericTestCase { + + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } private static double stdDev(int... vals) { return Math.sqrt(variance(vals)); diff --git a/core/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/FunctionScoreTests.java similarity index 98% rename from core/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/FunctionScoreTests.java index 4d78de1386c..99b334e27db 100644 --- a/core/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/FunctionScoreTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.functionscore; +package org.elasticsearch.messy.tests; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.index.IndexRequestBuilder; @@ -33,13 +33,17 @@ import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilder; import org.elasticsearch.index.query.functionscore.weight.WeightBuilder; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutionException; @@ -64,7 +68,7 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.is; -public class FunctionScoreIT extends ESIntegTestCase { +public class FunctionScoreTests extends ESIntegTestCase { static final String TYPE = "type"; static final String INDEX = "index"; @@ -74,6 +78,11 @@ public class FunctionScoreIT extends ESIntegTestCase { static final XContentBuilder SIMPLE_DOC; static final XContentBuilder MAPPING_WITH_DOUBLE_AND_GEO_POINT_AND_TEXT_FIELD; + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Test public void testExplainQueryOnlyOnce() throws IOException, ExecutionException, InterruptedException { assertAcked(prepareCreate("test").addMapping( diff --git a/core/src/test/java/org/elasticsearch/search/geo/GeoDistanceIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/GeoDistanceTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/geo/GeoDistanceIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/GeoDistanceTests.java index 809de3009e6..4e601c23892 100644 --- a/core/src/test/java/org/elasticsearch/search/geo/GeoDistanceIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/GeoDistanceTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.geo; +package org.elasticsearch.messy.tests; import org.apache.lucene.util.XGeoHashUtils; import org.elasticsearch.action.index.IndexRequestBuilder; @@ -28,8 +28,10 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; @@ -39,6 +41,8 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.List; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; @@ -61,8 +65,13 @@ import static org.hamcrest.Matchers.equalTo; /** */ -public class GeoDistanceIT extends ESIntegTestCase { +public class GeoDistanceTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Test public void simpleDistanceTests() throws Exception { XContentBuilder xContentBuilder = XContentFactory.jsonBuilder().startObject().startObject("type1") diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentileRanksTests.java similarity index 97% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentileRanksTests.java index 24abca0b99e..b22455ad0bb 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentileRanksTests.java @@ -16,21 +16,26 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.logging.Loggers; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Order; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile; import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanks; import org.elasticsearch.search.aggregations.metrics.percentiles.PercentilesMethod; import org.junit.Test; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,8 +49,13 @@ import static org.hamcrest.Matchers.*; /** * */ -public class HDRPercentileRanksIT extends AbstractNumericTestCase { +public class HDRPercentileRanksTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private static double[] randomPercents(long minValue, long maxValue) { final int length = randomIntBetween(1, 20); @@ -64,7 +74,7 @@ public class HDRPercentileRanksIT extends AbstractNumericTestCase { } } Arrays.sort(percents); - Loggers.getLogger(HDRPercentileRanksIT.class).info("Using percentiles={}", Arrays.toString(percents)); + Loggers.getLogger(HDRPercentileRanksTests.class).info("Using percentiles={}", Arrays.toString(percents)); return percents; } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentilesTests.java similarity index 97% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentilesTests.java index b5568f918cf..07e9d1097f5 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentilesTests.java @@ -16,22 +16,27 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.util.CollectionUtils; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Order; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentiles; import org.elasticsearch.search.aggregations.metrics.percentiles.PercentilesMethod; import org.junit.Test; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,8 +49,13 @@ import static org.hamcrest.Matchers.*; /** * */ -public class HDRPercentilesIT extends AbstractNumericTestCase { +public class HDRPercentilesTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private static double[] randomPercentiles() { final int length = randomIntBetween(1, 20); final double[] percentiles = new double[length]; @@ -63,7 +73,7 @@ public class HDRPercentilesIT extends AbstractNumericTestCase { } } Arrays.sort(percentiles); - Loggers.getLogger(HDRPercentilesIT.class).info("Using percentiles={}", Arrays.toString(percentiles)); + Loggers.getLogger(HDRPercentilesTests.class).info("Using percentiles={}", Arrays.toString(percentiles)); return percentiles; } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HistogramTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HistogramTests.java index e244d97cb7e..e36e38e956c 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HistogramTests.java @@ -16,14 +16,16 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import com.carrotsearch.hppc.LongHashSet; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchPhaseExecutionException; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; @@ -37,6 +39,8 @@ import org.hamcrest.Matchers; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -61,7 +65,7 @@ import static org.hamcrest.core.IsNull.notNullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class HistogramIT extends ESIntegTestCase { +public class HistogramTests extends ESIntegTestCase { private static final String SINGLE_VALUED_FIELD_NAME = "l_value"; private static final String MULTI_VALUED_FIELD_NAME = "l_values"; @@ -71,6 +75,11 @@ public class HistogramIT extends ESIntegTestCase { static int numValueBuckets, numValuesBuckets; static long[] valueCounts, valuesCounts; + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public void setupSuiteScopeCluster() throws Exception { createIndex("idx"); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IPv4RangeTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IPv4RangeTests.java index ddbc885cb1d..7ade58ce6c5 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IPv4RangeTests.java @@ -16,12 +16,14 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.mapper.ip.IpFieldMapper; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.range.Range; import org.elasticsearch.search.aggregations.bucket.range.Range.Bucket; @@ -32,6 +34,8 @@ import org.hamcrest.Matchers; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.List; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; @@ -51,8 +55,13 @@ import static org.hamcrest.core.IsNull.nullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class IPv4RangeIT extends ESIntegTestCase { +public class IPv4RangeTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public void setupSuiteScopeCluster() throws Exception { { diff --git a/core/src/test/java/org/elasticsearch/script/IndexLookupIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexLookupTests.java similarity index 98% rename from core/src/test/java/org/elasticsearch/script/IndexLookupIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexLookupTests.java index 36128824a9c..b1c2a332f13 100644 --- a/core/src/test/java/org/elasticsearch/script/IndexLookupIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexLookupTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.script; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchPhaseExecutionException; import org.elasticsearch.action.search.SearchResponse; @@ -27,6 +27,9 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.test.ESIntegTestCase; import org.hamcrest.Matchers; @@ -34,6 +37,8 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,7 +48,7 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcke import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount; import static org.hamcrest.Matchers.equalTo; -public class IndexLookupIT extends ESIntegTestCase { +public class IndexLookupTests extends ESIntegTestCase { String includeAllFlag = "_FREQUENCIES | _OFFSETS | _PAYLOADS | _POSITIONS | _CACHE"; String includeAllWithoutRecordFlag = "_FREQUENCIES | _OFFSETS | _PAYLOADS | _POSITIONS "; @@ -53,6 +58,11 @@ public class IndexLookupIT extends ESIntegTestCase { private HashMap> emptyArray; private HashMap> expectedStartOffsetsArray; + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + void initTestData() throws InterruptedException, ExecutionException, IOException { emptyArray = new HashMap<>(); List empty1 = new ArrayList<>(); diff --git a/core/src/test/java/org/elasticsearch/script/IndexedScriptIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexedScriptTests.java similarity index 93% rename from core/src/test/java/org/elasticsearch/script/IndexedScriptIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexedScriptTests.java index 03cc4e65b84..1bba7bfc03c 100644 --- a/core/src/test/java/org/elasticsearch/script/IndexedScriptIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexedScriptTests.java @@ -18,7 +18,7 @@ */ -package org.elasticsearch.script; +package org.elasticsearch.messy.tests; import org.elasticsearch.ExceptionsHelper; import org.elasticsearch.action.index.IndexRequestBuilder; @@ -27,6 +27,10 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.TimeValue; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.script.Script; +import org.elasticsearch.script.ScriptService; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.search.SearchHit; import org.elasticsearch.test.ESIntegTestCase; @@ -34,6 +38,8 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.concurrent.ExecutionException; @@ -42,8 +48,13 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; -public class IndexedScriptIT extends ESIntegTestCase { +public class IndexedScriptTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override protected Settings nodeSettings(int nodeOrdinal) { Settings.Builder builder = Settings.builder().put(super.nodeSettings(nodeOrdinal)); diff --git a/core/src/test/java/org/elasticsearch/action/IndicesRequestIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndicesRequestTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/action/IndicesRequestIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndicesRequestTests.java index cecee0fb31d..041838552e7 100644 --- a/core/src/test/java/org/elasticsearch/action/IndicesRequestIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndicesRequestTests.java @@ -17,8 +17,9 @@ * under the License. */ -package org.elasticsearch.action; +package org.elasticsearch.messy.tests; +import org.elasticsearch.action.IndicesRequest; import org.elasticsearch.action.admin.indices.alias.Alias; import org.elasticsearch.action.admin.indices.analyze.AnalyzeAction; import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequest; @@ -91,6 +92,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.action.SearchServiceTransportAction; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; @@ -110,7 +112,7 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFa import static org.hamcrest.Matchers.*; @ClusterScope(scope = Scope.SUITE, numClientNodes = 1, minNumDataNodes = 2) -public class IndicesRequestIT extends ESIntegTestCase { +public class IndicesRequestTests extends ESIntegTestCase { private final List indices = new ArrayList<>(); @@ -136,7 +138,7 @@ public class IndicesRequestIT extends ESIntegTestCase { @Override protected Collection> nodePlugins() { - return pluginList(InterceptingTransportService.TestPlugin.class); + return pluginList(InterceptingTransportService.TestPlugin.class, GroovyPlugin.class); } @Before diff --git a/core/src/test/java/org/elasticsearch/search/innerhits/InnerHitsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/InnerHitsTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/innerhits/InnerHitsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/InnerHitsTests.java index 16c54c49325..4fe80b27b99 100644 --- a/core/src/test/java/org/elasticsearch/search/innerhits/InnerHitsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/InnerHitsTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.innerhits; +package org.elasticsearch.messy.tests; import org.apache.lucene.util.ArrayUtil; import org.elasticsearch.Version; @@ -29,7 +29,9 @@ import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.support.QueryInnerHits; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.fetch.innerhits.InnerHitsBuilder; @@ -39,6 +41,8 @@ import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Locale; @@ -49,7 +53,12 @@ import static org.hamcrest.Matchers.*; /** */ -public class InnerHitsIT extends ESIntegTestCase { +public class InnerHitsTests extends ESIntegTestCase { + + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } @Test public void testSimpleNested() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/LongTermsTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/LongTermsTests.java index cea685e31b0..8657534e3d0 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/LongTermsTests.java @@ -16,14 +16,17 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; +import org.elasticsearch.search.aggregations.bucket.AbstractTermsTestCase; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.terms.Terms; @@ -39,6 +42,8 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -64,8 +69,13 @@ import static org.hamcrest.core.IsNull.notNullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class LongTermsIT extends AbstractTermsTestCase { +public class LongTermsTests extends AbstractTermsTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private static final int NUM_DOCS = 5; // TODO randomize the size? private static final String SINGLE_VALUED_FIELD_NAME = "l_value"; private static final String MULTI_VALUED_FIELD_NAME = "l_values"; diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MaxTests.java similarity index 96% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MaxTests.java index 793565d33c4..ec21ddc05cf 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MaxTests.java @@ -16,16 +16,21 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.max.Max; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -40,8 +45,13 @@ import static org.hamcrest.Matchers.notNullValue; /** * */ -public class MaxIT extends AbstractNumericTestCase { +public class MaxTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override @Test public void testEmptyAggregation() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinDocCountTests.java similarity index 97% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinDocCountTests.java index 54547575fcd..de24124669a 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinDocCountTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import com.carrotsearch.hppc.LongHashSet; import com.carrotsearch.hppc.LongSet; @@ -28,7 +28,10 @@ import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; +import org.elasticsearch.search.aggregations.bucket.AbstractTermsTestCase; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.terms.Terms; @@ -39,6 +42,8 @@ import org.joda.time.DateTimeZone; import org.joda.time.format.DateTimeFormat; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -54,8 +59,13 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAllS @ESIntegTestCase.SuiteScopeTestCase -public class MinDocCountIT extends AbstractTermsTestCase { +public class MinDocCountTests extends AbstractTermsTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private static final QueryBuilder QUERY = QueryBuilders.termQuery("match", true); private static int cardinality; diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/MinIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinTests.java similarity index 96% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/MinIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinTests.java index 00cb2dda27d..27086bbc8ab 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/MinIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinTests.java @@ -16,16 +16,21 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.min.Min; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -40,8 +45,13 @@ import static org.hamcrest.Matchers.notNullValue; /** * */ -public class MinIT extends AbstractNumericTestCase { +public class MinTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override @Test public void testEmptyAggregation() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/percolator/PercolatorIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/PercolatorTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/percolator/PercolatorIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/PercolatorTests.java index 5ddeeaf5fc2..72db43f83ff 100644 --- a/core/src/test/java/org/elasticsearch/percolator/PercolatorIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/PercolatorTests.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.percolator; +package org.elasticsearch.messy.tests; import org.apache.lucene.search.join.ScoreMode; import org.elasticsearch.action.ShardOperationFailedException; @@ -47,8 +47,11 @@ import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryShardException; import org.elasticsearch.index.query.functionscore.weight.WeightBuilder; import org.elasticsearch.index.query.support.QueryInnerHits; +import org.elasticsearch.percolator.PercolatorService; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.highlight.HighlightBuilder; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.test.ESIntegTestCase; @@ -64,13 +67,19 @@ import static org.elasticsearch.common.xcontent.XContentFactory.*; import static org.elasticsearch.index.query.QueryBuilders.*; import static org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders.scriptFunction; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*; +import static org.elasticsearch.percolator.PercolatorTestUtil.convertFromTextArray; import static org.hamcrest.Matchers.*; /** * */ -public class PercolatorIT extends ESIntegTestCase { +public class PercolatorTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Test public void testSimple1() throws Exception { client().admin().indices().prepareCreate("test").execute().actionGet(); @@ -1548,18 +1557,6 @@ public class PercolatorIT extends ESIntegTestCase { assertThat(matches[4].getHighlightFields().get("field1").fragments()[0].string(), equalTo("The quick brown fox jumps over the lazy dog")); } - public static String[] convertFromTextArray(PercolateResponse.Match[] matches, String index) { - if (matches.length == 0) { - return Strings.EMPTY_ARRAY; - } - String[] strings = new String[matches.length]; - for (int i = 0; i < matches.length; i++) { - assertEquals(index, matches[i].getIndex().string()); - strings[i] = matches[i].getId().string(); - } - return strings; - } - @Test public void percolateNonMatchingConstantScoreQuery() throws Exception { assertAcked(prepareCreate("test").addMapping("doc", "message", "type=string")); diff --git a/core/src/test/java/org/elasticsearch/search/rescore/QueryRescorerIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/QueryRescorerTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/rescore/QueryRescorerIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/QueryRescorerTests.java index 5a22afe4577..f437009e342 100644 --- a/core/src/test/java/org/elasticsearch/search/rescore/QueryRescorerIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/QueryRescorerTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.rescore; +package org.elasticsearch.messy.tests; @@ -35,14 +35,19 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.Operator; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; +import org.elasticsearch.search.rescore.RescoreBuilder; import org.elasticsearch.search.rescore.RescoreBuilder.QueryRescorer; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_REPLICAS; @@ -54,7 +59,12 @@ import static org.hamcrest.Matchers.*; /** * */ -public class QueryRescorerIT extends ESIntegTestCase { +public class QueryRescorerTests extends ESIntegTestCase { + + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } @Test public void testEnforceWindowSize() { diff --git a/core/src/test/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RandomScoreFunctionTests.java similarity index 97% rename from core/src/test/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RandomScoreFunctionTests.java index 094f528dc96..42141e6afb0 100644 --- a/core/src/test/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RandomScoreFunctionTests.java @@ -16,19 +16,23 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.functionscore; +package org.elasticsearch.messy.tests; import org.apache.lucene.util.ArrayUtil; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder; import org.elasticsearch.index.query.functionscore.random.RandomScoreFunctionBuilder; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.test.ESIntegTestCase; import org.hamcrest.CoreMatchers; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Map; @@ -40,8 +44,13 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcke import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; import static org.hamcrest.Matchers.*; -public class RandomScoreFunctionIT extends ESIntegTestCase { +public class RandomScoreFunctionTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + public void testConsistentHitsWithSameSeed() throws Exception { createIndex("test"); ensureGreen(); // make sure we are done otherwise preference could change? diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RangeTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RangeTests.java index 567844b727b..0ab0b1b9ec5 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RangeTests.java @@ -16,11 +16,13 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.range.Range; @@ -33,6 +35,8 @@ import org.hamcrest.Matchers; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.List; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; @@ -52,13 +56,18 @@ import static org.hamcrest.core.IsNull.nullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class RangeIT extends ESIntegTestCase { +public class RangeTests extends ESIntegTestCase { private static final String SINGLE_VALUED_FIELD_NAME = "l_value"; private static final String MULTI_VALUED_FIELD_NAME = "l_values"; static int numDocs; + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public void setupSuiteScopeCluster() throws Exception { createIndex("idx"); diff --git a/core/src/test/java/org/elasticsearch/script/ScriptIndexSettingsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptIndexSettingsTests.java similarity index 89% rename from core/src/test/java/org/elasticsearch/script/ScriptIndexSettingsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptIndexSettingsTests.java index 0c0bf9aeea3..06db7e89eea 100644 --- a/core/src/test/java/org/elasticsearch/script/ScriptIndexSettingsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptIndexSettingsTests.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.script; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse; import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsRequest; @@ -27,12 +27,22 @@ import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptResponse; import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptResponse; import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.index.IndexNotFoundException; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.script.ScriptService; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; -@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST) -public class ScriptIndexSettingsIT extends ESIntegTestCase { +import java.util.Collection; +import java.util.Collections; +@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST) +public class ScriptIndexSettingsTests extends ESIntegTestCase { + + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } @Test public void testScriptIndexSettings() { diff --git a/core/src/test/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptQuerySearchTests.java similarity index 93% rename from core/src/test/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptQuerySearchTests.java index 46c80a1eb78..27262177d43 100644 --- a/core/src/test/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptQuerySearchTests.java @@ -17,18 +17,22 @@ * under the License. */ -package org.elasticsearch.search.scriptfilter; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.cache.IndexCacheModule; import org.elasticsearch.index.cache.query.index.IndexQueryCache; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; @@ -42,8 +46,13 @@ import static org.hamcrest.Matchers.equalTo; * */ @ESIntegTestCase.ClusterScope(scope= ESIntegTestCase.Scope.SUITE) -public class ScriptQuerySearchIT extends ESIntegTestCase { +public class ScriptQuerySearchTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override protected Settings nodeSettings(int nodeOrdinal) { return Settings.settingsBuilder().put(super.nodeSettings(nodeOrdinal)) diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptedMetricTests.java similarity index 98% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptedMetricTests.java index 197da9dff86..e28554a44f5 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptedMetricTests.java @@ -17,14 +17,16 @@ * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptResponse; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.Aggregations; @@ -38,6 +40,8 @@ import org.elasticsearch.test.ESIntegTestCase.Scope; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -60,10 +64,15 @@ import static org.hamcrest.Matchers.sameInstance; @ClusterScope(scope = Scope.SUITE) @ESIntegTestCase.SuiteScopeTestCase -public class ScriptedMetricIT extends ESIntegTestCase { +public class ScriptedMetricTests extends ESIntegTestCase { private static long numDocs; + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public void setupSuiteScopeCluster() throws Exception { createIndex("idx"); @@ -116,7 +125,7 @@ public class ScriptedMetricIT extends ESIntegTestCase { protected Settings nodeSettings(int nodeOrdinal) { Settings settings = Settings.settingsBuilder() .put(super.nodeSettings(nodeOrdinal)) - .put("path.conf", getDataPath("/org/elasticsearch/search/aggregations/metrics/scripted/conf")) + .put("path.conf", getDataPath("/org/elasticsearch/messy/tests/conf")) .build(); return settings; } diff --git a/core/src/test/java/org/elasticsearch/search/fields/SearchFieldsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchFieldsTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/fields/SearchFieldsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchFieldsTests.java index 21afbd5baa0..7d9a080f666 100644 --- a/core/src/test/java/org/elasticsearch/search/fields/SearchFieldsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchFieldsTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.fields; +package org.elasticsearch.messy.tests; import org.apache.lucene.util.BytesRef; import org.elasticsearch.action.index.IndexRequestBuilder; @@ -33,9 +33,11 @@ import org.elasticsearch.common.joda.Joda; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.mapper.internal.TimestampFieldMapper; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHitField; import org.elasticsearch.search.sort.SortOrder; @@ -46,6 +48,7 @@ import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -71,8 +74,13 @@ import static org.hamcrest.Matchers.nullValue; /** * */ -public class SearchFieldsIT extends ESIntegTestCase { +public class SearchFieldsTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Test public void testStoredFields() throws Exception { createIndex("test"); diff --git a/core/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchQueryTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchQueryTests.java index 83a8008213f..89f0778f8ce 100644 --- a/core/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchQueryTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.query; +package org.elasticsearch.messy.tests; import org.apache.lucene.util.English; import org.elasticsearch.Version; @@ -35,8 +35,10 @@ import org.elasticsearch.index.query.*; import org.elasticsearch.index.search.MatchQuery.Type; import org.elasticsearch.index.search.MatchQuery; import org.elasticsearch.indices.cache.query.terms.TermsLookup; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.aggregations.AggregationBuilders; @@ -47,6 +49,8 @@ import org.joda.time.format.ISODateTimeFormat; import org.junit.Test; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; import java.util.Random; import java.util.concurrent.ExecutionException; @@ -59,8 +63,13 @@ import static org.elasticsearch.test.VersionUtils.randomVersion; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*; import static org.hamcrest.Matchers.*; -public class SearchQueryIT extends ESIntegTestCase { +public class SearchQueryTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override protected int maximumNumberOfShards() { return 7; diff --git a/core/src/test/java/org/elasticsearch/search/stats/SearchStatsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchStatsTests.java similarity index 96% rename from core/src/test/java/org/elasticsearch/search/stats/SearchStatsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchStatsTests.java index be9bfde027f..d9cfb7dc08e 100644 --- a/core/src/test/java/org/elasticsearch/search/stats/SearchStatsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchStatsTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.stats; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.admin.cluster.node.stats.NodeStats; import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsResponse; @@ -31,10 +31,14 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.search.stats.SearchStats.Stats; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -55,8 +59,13 @@ import static org.hamcrest.Matchers.nullValue; /** */ @ESIntegTestCase.ClusterScope(minNumDataNodes = 2) -public class SearchStatsIT extends ESIntegTestCase { +public class SearchStatsTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override protected int numberOfReplicas() { return 0; diff --git a/core/src/test/java/org/elasticsearch/search/timeout/SearchTimeoutIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchTimeoutTests.java similarity index 82% rename from core/src/test/java/org/elasticsearch/search/timeout/SearchTimeoutIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchTimeoutTests.java index 6197224f3b2..2a982df00a8 100644 --- a/core/src/test/java/org/elasticsearch/search/timeout/SearchTimeoutIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchTimeoutTests.java @@ -17,14 +17,19 @@ * under the License. */ -package org.elasticsearch.search.timeout; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; + import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery; import static org.elasticsearch.index.query.QueryBuilders.scriptQuery; import static org.hamcrest.Matchers.equalTo; @@ -32,8 +37,13 @@ import static org.hamcrest.Matchers.equalTo; /** */ @ESIntegTestCase.ClusterScope(scope= ESIntegTestCase.Scope.SUITE) -public class SearchTimeoutIT extends ESIntegTestCase { +public class SearchTimeoutTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override protected Settings nodeSettings(int nodeOrdinal) { return Settings.settingsBuilder().put(super.nodeSettings(nodeOrdinal)).build(); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SignificantTermsSignificanceScoreTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SignificantTermsSignificanceScoreTests.java index 26cb3a968b0..5e6625a26bd 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SignificantTermsSignificanceScoreTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; @@ -35,6 +35,7 @@ import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptModule; import org.elasticsearch.script.ScriptService; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchModule; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder; @@ -83,7 +84,7 @@ import static org.hamcrest.Matchers.is; * */ @ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE) -public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { +public class SignificantTermsSignificanceScoreTests extends ESIntegTestCase { static final String INDEX_NAME = "testidx"; static final String DOC_TYPE = "doc"; @@ -94,13 +95,13 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { public Settings nodeSettings(int nodeOrdinal) { return settingsBuilder() .put(super.nodeSettings(nodeOrdinal)) - .put("path.conf", this.getDataPath("config")) + .put("path.conf", this.getDataPath("conf")) .build(); } @Override protected Collection> nodePlugins() { - return pluginList(CustomSignificanceHeuristicPlugin.class); + return pluginList(CustomSignificanceHeuristicPlugin.class, GroovyPlugin.class); } public String randomExecutionHint() { diff --git a/core/src/test/java/org/elasticsearch/nested/SimpleNestedIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleNestedTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/nested/SimpleNestedIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleNestedTests.java index 258c4adebfb..590c6008e87 100644 --- a/core/src/test/java/org/elasticsearch/nested/SimpleNestedIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleNestedTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.nested; +package org.elasticsearch.messy.tests; import org.apache.lucene.search.Explanation; import org.apache.lucene.search.join.ScoreMode; @@ -34,21 +34,31 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Assert; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; + import static org.elasticsearch.common.settings.Settings.settingsBuilder; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.index.query.QueryBuilders.*; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.*; import static org.hamcrest.Matchers.*; -public class SimpleNestedIT extends ESIntegTestCase { +public class SimpleNestedTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Test public void simpleNested() throws Exception { assertAcked(prepareCreate("test").addMapping("type1", "nested1", "type=nested").addMapping("type2", "nested1", "type=nested")); diff --git a/core/src/test/java/org/elasticsearch/search/sort/SimpleSortIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleSortTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/sort/SimpleSortIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleSortTests.java index e487819e3ad..ca3a9df8e79 100644 --- a/core/src/test/java/org/elasticsearch/search/sort/SimpleSortIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleSortTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.search.sort; +package org.elasticsearch.messy.tests; import org.apache.lucene.util.BytesRef; @@ -41,9 +41,16 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.mapper.Uid; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHitField; +import org.elasticsearch.search.sort.FieldSortBuilder; +import org.elasticsearch.search.sort.GeoDistanceSortBuilder; +import org.elasticsearch.search.sort.ScriptSortBuilder; +import org.elasticsearch.search.sort.SortBuilders; +import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.junit.annotations.TestLogging; import org.hamcrest.Matchers; @@ -52,6 +59,7 @@ import org.junit.Test; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -93,8 +101,13 @@ import static org.hamcrest.Matchers.nullValue; /** * */ -public class SimpleSortIT extends ESIntegTestCase { +public class SimpleSortTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @TestLogging("action.search.type:TRACE") @LuceneTestCase.AwaitsFix(bugUrl = "https://github.com/elasticsearch/elasticsearch/issues/9421") public void testIssue8226() { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StatsTests.java similarity index 97% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StatsTests.java index f838a89fe18..dfc37450b9d 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StatsTests.java @@ -16,17 +16,22 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.ShardSearchFailure; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.stats.Stats; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -43,8 +48,13 @@ import static org.hamcrest.Matchers.sameInstance; /** * */ -public class StatsIT extends AbstractNumericTestCase { +public class StatsTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override @Test public void testEmptyAggregation() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StringTermsTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StringTermsTests.java index c959fdaefe9..be9e90f2c76 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StringTermsTests.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.index.IndexRequestBuilder; @@ -26,9 +26,12 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.index.mapper.internal.FieldNamesFieldMapper; import org.elasticsearch.index.mapper.internal.IndexFieldMapper; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; +import org.elasticsearch.search.aggregations.bucket.AbstractTermsTestCase; import org.elasticsearch.search.aggregations.bucket.filter.Filter; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.terms.Terms; @@ -46,6 +49,8 @@ import java.io.IOException; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -73,12 +78,17 @@ import static org.hamcrest.core.IsNull.nullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class StringTermsIT extends AbstractTermsTestCase { +public class StringTermsTests extends AbstractTermsTestCase { private static final String SINGLE_VALUED_FIELD_NAME = "s_value"; private static final String MULTI_VALUED_FIELD_NAME = "s_values"; private static Map> expectedMultiSortBuckets; + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public void setupSuiteScopeCluster() throws Exception { createIndex("idx"); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/SumIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SumTests.java similarity index 96% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/SumIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SumTests.java index d87e6393f77..d36d833e093 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/SumIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SumTests.java @@ -16,16 +16,21 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.sum.Sum; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -40,8 +45,13 @@ import static org.hamcrest.Matchers.notNullValue; /** * */ -public class SumIT extends AbstractNumericTestCase { +public class SumTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override @Test public void testEmptyAggregation() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentileRanksTests.java similarity index 97% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentileRanksTests.java index 8499f754602..0c5aef40eb5 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentileRanksTests.java @@ -16,22 +16,27 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.util.CollectionUtils; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Order; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile; import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanks; import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanksBuilder; import org.junit.Test; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,8 +49,13 @@ import static org.hamcrest.Matchers.*; /** * */ -public class TDigestPercentileRanksIT extends AbstractNumericTestCase { +public class TDigestPercentileRanksTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private static double[] randomPercents(long minValue, long maxValue) { final int length = randomIntBetween(1, 20); @@ -64,7 +74,7 @@ public class TDigestPercentileRanksIT extends AbstractNumericTestCase { } } Arrays.sort(percents); - Loggers.getLogger(TDigestPercentileRanksIT.class).info("Using percentiles={}", Arrays.toString(percents)); + Loggers.getLogger(TDigestPercentileRanksTests.class).info("Using percentiles={}", Arrays.toString(percents)); return percents; } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentilesTests.java similarity index 96% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentilesTests.java index 65b0ea596c8..afa9f204da4 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentilesTests.java @@ -16,22 +16,27 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.util.CollectionUtils; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Order; +import org.elasticsearch.search.aggregations.metrics.AbstractNumericTestCase; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentile; import org.elasticsearch.search.aggregations.metrics.percentiles.Percentiles; import org.elasticsearch.search.aggregations.metrics.percentiles.PercentilesBuilder; import org.junit.Test; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -44,8 +49,13 @@ import static org.hamcrest.Matchers.*; /** * */ -public class TDigestPercentilesIT extends AbstractNumericTestCase { +public class TDigestPercentilesTests extends AbstractNumericTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private static double[] randomPercentiles() { final int length = randomIntBetween(1, 20); final double[] percentiles = new double[length]; @@ -63,7 +73,7 @@ public class TDigestPercentilesIT extends AbstractNumericTestCase { } } Arrays.sort(percentiles); - Loggers.getLogger(TDigestPercentilesIT.class).info("Using percentiles={}", Arrays.toString(percentiles)); + Loggers.getLogger(TDigestPercentilesTests.class).info("Using percentiles={}", Arrays.toString(percentiles)); return percentiles; } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TopHitsTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TopHitsTests.java index ffab8440552..b8993b408bb 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TopHitsTests.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.messy.tests; import org.apache.lucene.search.Explanation; import org.apache.lucene.util.ArrayUtil; @@ -27,7 +27,9 @@ import org.elasticsearch.action.search.SearchType; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHitField; import org.elasticsearch.search.SearchHits; @@ -47,6 +49,8 @@ import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -80,10 +84,15 @@ import static org.hamcrest.Matchers.sameInstance; * */ @ESIntegTestCase.SuiteScopeTestCase() -public class TopHitsIT extends ESIntegTestCase { +public class TopHitsTests extends ESIntegTestCase { private static final String TERMS_AGGS_FIELD = "terms"; private static final String SORT_FIELD = "sort"; + + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } public static String randomExecutionHint() { return randomBoolean() ? null : randomFrom(ExecutionMode.values()).toString(); diff --git a/core/src/test/java/org/elasticsearch/index/mapper/TransformOnIndexMapperIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TransformOnIndexMapperTests.java similarity index 95% rename from core/src/test/java/org/elasticsearch/index/mapper/TransformOnIndexMapperIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TransformOnIndexMapperTests.java index 8e88cbb3d3c..ace6f680dca 100644 --- a/core/src/test/java/org/elasticsearch/index/mapper/TransformOnIndexMapperIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TransformOnIndexMapperTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.index.mapper; +package org.elasticsearch.messy.tests; import com.google.common.collect.ImmutableMap; @@ -28,6 +28,8 @@ import org.elasticsearch.action.suggest.SuggestResponse; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.search.suggest.SuggestBuilders; import org.elasticsearch.search.suggest.completion.CompletionSuggestion; @@ -35,6 +37,8 @@ import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.io.IOException; +import java.util.Collection; +import java.util.Collections; import java.util.Map; import java.util.concurrent.ExecutionException; @@ -53,7 +57,13 @@ import static org.hamcrest.Matchers.not; * Tests for transforming the source document before indexing. */ @SuppressCodecs("*") // requires custom completion format -public class TransformOnIndexMapperIT extends ESIntegTestCase { +public class TransformOnIndexMapperTests extends ESIntegTestCase { + + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Test public void searchOnTransformed() throws Exception { setup(true); diff --git a/core/src/test/java/org/elasticsearch/update/UpdateIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/UpdateTests.java similarity index 99% rename from core/src/test/java/org/elasticsearch/update/UpdateIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/UpdateTests.java index da988b8c338..3c2b23038f7 100644 --- a/core/src/test/java/org/elasticsearch/update/UpdateIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/UpdateTests.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.update; +package org.elasticsearch.messy.tests; import org.elasticsearch.ElasticsearchTimeoutException; import org.elasticsearch.action.ActionListener; @@ -37,12 +37,16 @@ import org.elasticsearch.index.VersionType; import org.elasticsearch.index.engine.DocumentMissingException; import org.elasticsearch.index.engine.VersionConflictEngineException; import org.elasticsearch.index.shard.MergePolicyConfig; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -61,8 +65,13 @@ import static org.hamcrest.Matchers.lessThanOrEqualTo; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; -public class UpdateIT extends ESIntegTestCase { +public class UpdateTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + private void createTestIndex() throws Exception { logger.info("--> creating index test"); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ValueCountTests.java similarity index 95% rename from core/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ValueCountTests.java index a2f81066cb1..ca2cffce59b 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ValueCountTests.java @@ -16,16 +16,20 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.search.aggregations.metrics; +package org.elasticsearch.messy.tests; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; +import org.elasticsearch.script.groovy.GroovyPlugin; import org.elasticsearch.search.aggregations.bucket.global.Global; import org.elasticsearch.search.aggregations.metrics.valuecount.ValueCount; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -41,8 +45,13 @@ import static org.hamcrest.Matchers.notNullValue; * */ @ESIntegTestCase.SuiteScopeTestCase -public class ValueCountIT extends ESIntegTestCase { +public class ValueCountTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Override public void setupSuiteScopeCluster() throws Exception { createIndex("idx"); diff --git a/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/package-info.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/package-info.java new file mode 100644 index 00000000000..2ef83dc4cf1 --- /dev/null +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/package-info.java @@ -0,0 +1,98 @@ +/* + * 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. + */ + +/** + * This package contains tests that use groovy to test what looks + * to be unrelated functionality, or functionality that should be + * tested with a mock instead. Instead of doing an epic battle + * with these tests, they are temporarily moved here to the groovy + * plugin's tests, but that is likely not where they belong. Please + * help by cleaning them up and we can remove this package! + *

+ *

    + *
  • If the test is actually testing groovy specifically, move to + * the org.elasticsearch.script.groovy tests package of this plugin
  • + *
  • If the test is testing scripting integration with another core subsystem, + * fix it to use a mock instead, so it can be in the core tests again
  • + *
  • If the test is just being lazy, and does not really need scripting to test + * something, clean it up!
  • + *
+ */ +/* List of renames that took place: + renamed: core/src/test/java/org/elasticsearch/routing/AliasRoutingIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AliasRoutingTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/AvgIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/AvgTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketScriptIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketScriptTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/pipeline/BucketSelectorIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BucketSelectorTests.java + renamed: core/src/test/java/org/elasticsearch/document/BulkIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/BulkTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/CardinalityIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/CardinalityTests.java + renamed: core/src/test/java/org/elasticsearch/search/child/ChildQuerySearchIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ChildQuerySearchTests.java + renamed: core/src/test/java/org/elasticsearch/transport/ContextAndHeaderTransportIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ContextAndHeaderTransportTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateHistogramIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateHistogramTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/DateRangeIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DateRangeTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/DoubleTermsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/DoubleTermsTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/EquivalenceIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/EquivalenceTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/ExtendedStatsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ExtendedStatsTests.java + renamed: core/src/test/java/org/elasticsearch/search/functionscore/FunctionScoreIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/FunctionScoreTests.java + renamed: core/src/test/java/org/elasticsearch/search/geo/GeoDistanceIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/GeoDistanceTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentileRanksIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentileRanksTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/HDRPercentilesIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HDRPercentilesTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/HistogramIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/HistogramTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/IPv4RangeIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IPv4RangeTests.java + renamed: core/src/test/java/org/elasticsearch/script/IndexLookupIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexLookupTests.java + renamed: core/src/test/java/org/elasticsearch/script/IndexedScriptIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndexedScriptTests.java + renamed: core/src/test/java/org/elasticsearch/action/IndicesRequestIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/IndicesRequestTests.java + renamed: core/src/test/java/org/elasticsearch/search/innerhits/InnerHitsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/InnerHitsTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/LongTermsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/LongTermsTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/MaxIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MaxTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/MinDocCountIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinDocCountTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/MinIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/MinTests.java + renamed: core/src/test/java/org/elasticsearch/percolator/PercolatorIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/PercolatorTests.java + renamed: core/src/test/java/org/elasticsearch/search/rescore/QueryRescorerIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/QueryRescorerTests.java + renamed: core/src/test/java/org/elasticsearch/search/functionscore/RandomScoreFunctionIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RandomScoreFunctionTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/RangeIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/RangeTests.java + renamed: core/src/test/java/org/elasticsearch/script/ScriptIndexSettingsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptIndexSettingsTests.java + renamed: core/src/test/java/org/elasticsearch/search/scriptfilter/ScriptQuerySearchIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptQuerySearchTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/ScriptedMetricIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ScriptedMetricTests.java + renamed: core/src/test/java/org/elasticsearch/search/fields/SearchFieldsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchFieldsTests.java + renamed: core/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchQueryTests.java + renamed: core/src/test/java/org/elasticsearch/search/stats/SearchStatsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchStatsTests.java + renamed: core/src/test/java/org/elasticsearch/search/timeout/SearchTimeoutIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SearchTimeoutTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SignificantTermsSignificanceScoreTests.java + renamed: core/src/test/java/org/elasticsearch/nested/SimpleNestedIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleNestedTests.java + renamed: core/src/test/java/org/elasticsearch/search/sort/SimpleSortIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SimpleSortTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/StatsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StatsTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/StringTermsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/StringTermsTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/SumIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/SumTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentileRanksIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentileRanksTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/TDigestPercentilesIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TDigestPercentilesTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/bucket/TopHitsIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TopHitsTests.java + renamed: core/src/test/java/org/elasticsearch/index/mapper/TransformOnIndexMapperIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/TransformOnIndexMapperTests.java + renamed: core/src/test/java/org/elasticsearch/update/UpdateIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/UpdateTests.java + renamed: core/src/test/java/org/elasticsearch/search/aggregations/metrics/ValueCountIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/messy/tests/ValueCountTests.java + renamed: core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptCompilationException.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyRestIT.java + renamed: core/src/test/java/org/elasticsearch/script/GroovyScriptIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyScriptTests.java + renamed: core/src/test/java/org/elasticsearch/script/GroovySecurityIT.java -> plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovySecurityTests.java + renamed: core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/combine_script.groovy -> plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/combine_script.groovy + renamed: core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/init_script.groovy -> plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/init_script.groovy + renamed: core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/map_script.groovy -> plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/map_script.groovy + renamed: core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/reduce_script.groovy -> plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/reduce_script.groovy + renamed: core/src/test/resources/org/elasticsearch/search/aggregations/bucket/config/scripts/significance_script_no_params.groovy -> plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/significance_script_no_params.groovy + renamed: core/src/test/resources/org/elasticsearch/search/aggregations/bucket/config/scripts/significance_script_with_params.groovy -> plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/significance_script_with_params.groovy + */ +package org.elasticsearch.messy.tests; diff --git a/core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptCompilationException.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyRestIT.java similarity index 52% rename from core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptCompilationException.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyRestIT.java index 98e2dba5569..b96436dd77f 100644 --- a/core/src/main/java/org/elasticsearch/script/groovy/GroovyScriptCompilationException.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyRestIT.java @@ -19,27 +19,30 @@ package org.elasticsearch.script.groovy; -import org.elasticsearch.ElasticsearchException; -import org.elasticsearch.common.io.stream.StreamInput; -import org.elasticsearch.rest.RestStatus; +import com.carrotsearch.randomizedtesting.annotations.Name; +import com.carrotsearch.randomizedtesting.annotations.ParametersFactory; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.test.rest.ESRestTestCase; +import org.elasticsearch.test.rest.RestTestCandidate; +import org.elasticsearch.test.rest.parser.RestTestParseException; import java.io.IOException; +import java.util.Collection; -/** - * Exception used to wrap groovy script compilation exceptions so they are - * correctly serialized between nodes. - */ -public class GroovyScriptCompilationException extends ElasticsearchException { - public GroovyScriptCompilationException(String message, Throwable cause) { - super(message, cause); - } - - public GroovyScriptCompilationException(StreamInput in) throws IOException{ - super(in); - } +public class GroovyRestIT extends ESRestTestCase { @Override - public RestStatus status() { - return RestStatus.BAD_REQUEST; + protected Collection> nodePlugins() { + return pluginList(GroovyPlugin.class); + } + + public GroovyRestIT(@Name("yaml") RestTestCandidate testCandidate) { + super(testCandidate); + } + + @ParametersFactory + public static Iterable parameters() throws IOException, RestTestParseException { + return ESRestTestCase.createParameters(0, 1); } } + diff --git a/core/src/test/java/org/elasticsearch/script/GroovyScriptIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyScriptTests.java similarity index 89% rename from core/src/test/java/org/elasticsearch/script/GroovyScriptIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyScriptTests.java index 320b00036c9..c9fabd72789 100644 --- a/core/src/test/java/org/elasticsearch/script/GroovyScriptIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovyScriptTests.java @@ -17,19 +17,23 @@ * under the License. */ -package org.elasticsearch.script; +package org.elasticsearch.script.groovy; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchPhaseExecutionException; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.lucene.search.function.CombineFunction; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptService.ScriptType; import org.elasticsearch.script.groovy.GroovyScriptEngineService; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.List; import static org.elasticsearch.index.query.QueryBuilders.*; @@ -40,8 +44,14 @@ import static org.hamcrest.Matchers.equalTo; /** * Various tests for Groovy scripting */ -public class GroovyScriptIT extends ESIntegTestCase { +// TODO: refactor into unit test or proper rest tests +public class GroovyScriptTests extends ESIntegTestCase { + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } + @Test public void testGroovyBigDecimalTransformation() { client().prepareIndex("test", "doc", "1").setSource("foo", 5).setRefresh(true).get(); @@ -76,8 +86,8 @@ public class GroovyScriptIT extends ESIntegTestCase { } catch (SearchPhaseExecutionException e) { assertThat(e.toString()+ "should not contained NotSerializableTransportException", e.toString().contains("NotSerializableTransportException"), equalTo(false)); - assertThat(e.toString()+ "should have contained GroovyScriptExecutionException", - e.toString().contains("GroovyScriptExecutionException"), equalTo(true)); + assertThat(e.toString()+ "should have contained ScriptException", + e.toString().contains("ScriptException"), equalTo(true)); assertThat(e.toString()+ "should have contained not_found", e.toString().contains("No such property: not_found"), equalTo(true)); } @@ -89,8 +99,8 @@ public class GroovyScriptIT extends ESIntegTestCase { } catch (SearchPhaseExecutionException e) { assertThat(e.toString() + "should not contained NotSerializableTransportException", e.toString().contains("NotSerializableTransportException"), equalTo(false)); - assertThat(e.toString() + "should have contained GroovyScriptExecutionException", - e.toString().contains("GroovyScriptExecutionException"), equalTo(true)); + assertThat(e.toString() + "should have contained ScriptException", + e.toString().contains("ScriptException"), equalTo(true)); assertThat(e.toString()+ "should have contained an assert error", e.toString().contains("AssertionError[assert false"), equalTo(true)); } diff --git a/core/src/test/java/org/elasticsearch/script/GroovySecurityIT.java b/plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovySecurityTests.java similarity index 92% rename from core/src/test/java/org/elasticsearch/script/GroovySecurityIT.java rename to plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovySecurityTests.java index 5ec89a6edc7..043a5d1d2f7 100644 --- a/core/src/test/java/org/elasticsearch/script/GroovySecurityIT.java +++ b/plugins/lang-groovy/src/test/java/org/elasticsearch/script/groovy/GroovySecurityTests.java @@ -17,18 +17,21 @@ * under the License. */ -package org.elasticsearch.script; +package org.elasticsearch.script.groovy; import org.apache.lucene.util.Constants; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.ShardSearchFailure; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.script.groovy.GroovyScriptExecutionException; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.script.ScriptException; import org.elasticsearch.test.ESIntegTestCase; import org.junit.Test; import java.nio.file.Path; +import java.util.Collection; +import java.util.Collections; import java.util.Locale; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoFailures; @@ -39,13 +42,19 @@ import static org.hamcrest.CoreMatchers.instanceOf; * Tests for the Groovy security permissions */ @ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 0) -public class GroovySecurityIT extends ESIntegTestCase { +// TODO: refactor into unit test, or, proper REST test +public class GroovySecurityTests extends ESIntegTestCase { @Override public void setUp() throws Exception { super.setUp(); assumeTrue("test requires security manager to be enabled", System.getSecurityManager() != null); } + + @Override + protected Collection> nodePlugins() { + return Collections.singleton(GroovyPlugin.class); + } @Test public void testEvilGroovyScripts() throws Exception { @@ -128,7 +137,7 @@ public class GroovySecurityIT extends ESIntegTestCase { // TODO: GroovyScriptExecutionException needs work: // fix it to preserve cause so we don't do this flaky string-check stuff for (ShardSearchFailure fail : fails) { - assertThat(fail.getCause(), instanceOf(GroovyScriptExecutionException.class)); + assertThat(fail.getCause(), instanceOf(ScriptException.class)); assertTrue("unexpected exception" + fail.getCause(), // different casing, depending on jvm impl... fail.getCause().toString().toLowerCase(Locale.ROOT).contains("[access denied")); diff --git a/core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/combine_script.groovy b/plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/combine_script.groovy similarity index 100% rename from core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/combine_script.groovy rename to plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/combine_script.groovy diff --git a/core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/init_script.groovy b/plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/init_script.groovy similarity index 100% rename from core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/init_script.groovy rename to plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/init_script.groovy diff --git a/core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/map_script.groovy b/plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/map_script.groovy similarity index 100% rename from core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/map_script.groovy rename to plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/map_script.groovy diff --git a/core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/reduce_script.groovy b/plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/reduce_script.groovy similarity index 100% rename from core/src/test/resources/org/elasticsearch/search/aggregations/metrics/scripted/conf/scripts/reduce_script.groovy rename to plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/reduce_script.groovy diff --git a/core/src/test/resources/org/elasticsearch/search/aggregations/bucket/config/scripts/significance_script_no_params.groovy b/plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/significance_script_no_params.groovy similarity index 100% rename from core/src/test/resources/org/elasticsearch/search/aggregations/bucket/config/scripts/significance_script_no_params.groovy rename to plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/significance_script_no_params.groovy diff --git a/core/src/test/resources/org/elasticsearch/search/aggregations/bucket/config/scripts/significance_script_with_params.groovy b/plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/significance_script_with_params.groovy similarity index 100% rename from core/src/test/resources/org/elasticsearch/search/aggregations/bucket/config/scripts/significance_script_with_params.groovy rename to plugins/lang-groovy/src/test/resources/org/elasticsearch/messy/tests/conf/scripts/significance_script_with_params.groovy diff --git a/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/10_basic.yaml b/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/10_basic.yaml new file mode 100644 index 00000000000..123b02fc7fa --- /dev/null +++ b/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/10_basic.yaml @@ -0,0 +1,14 @@ +# Integration tests for Groovy scripts +# +"Groovy loaded": + - do: + cluster.state: {} + + # Get master node id + - set: { master_node: master } + + - do: + nodes.info: {} + + - match: { nodes.$master.plugins.0.name: lang-groovy } + - match: { nodes.$master.plugins.0.jvm: true } diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/update/15_script.yaml b/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/15_update.yaml similarity index 98% rename from rest-api-spec/src/main/resources/rest-api-spec/test/update/15_script.yaml rename to plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/15_update.yaml index 82f6034386d..2a0b909f40c 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/update/15_script.yaml +++ b/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/15_update.yaml @@ -1,5 +1,5 @@ --- -"Script": +"Update Script": - skip: features: groovy_scripting diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/script/10_basic.yaml b/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/16_update2.yaml similarity index 100% rename from rest-api-spec/src/main/resources/rest-api-spec/test/script/10_basic.yaml rename to plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/16_update2.yaml diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/script/20_versions.yaml b/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/20_versions.yaml similarity index 100% rename from rest-api-spec/src/main/resources/rest-api-spec/test/script/20_versions.yaml rename to plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/20_versions.yaml diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/update/25_script_upsert.yaml b/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/25_script_upsert.yaml similarity index 100% rename from rest-api-spec/src/main/resources/rest-api-spec/test/update/25_script_upsert.yaml rename to plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/25_script_upsert.yaml diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/update/90_missing.yaml b/plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/90_missing.yaml similarity index 100% rename from rest-api-spec/src/main/resources/rest-api-spec/test/update/90_missing.yaml rename to plugins/lang-groovy/src/test/resources/rest-api-spec/test/lang_groovy/90_missing.yaml diff --git a/plugins/pom.xml b/plugins/pom.xml index 2e95806449e..d248c7f6fa0 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -179,12 +179,6 @@ commons-cli provided - - org.codehaus.groovy - groovy-all - indy - provided - log4j log4j @@ -237,6 +231,9 @@ api/index.json api/get.json + api/get_script.json + api/put_script.json + api/delete_script.json api/update.json api/search.json api/indices.analyze.json @@ -397,6 +394,7 @@ discovery-ec2 discovery-multicast lang-expression + lang-groovy lang-javascript lang-python mapper-murmur3 diff --git a/pom.xml b/pom.xml index 273234c4087..d7346cbcf7d 100644 --- a/pom.xml +++ b/pom.xml @@ -411,13 +411,6 @@ 1.3.1 - - org.codehaus.groovy - groovy-all - 2.4.4 - indy - - log4j log4j diff --git a/qa/smoke-test-multinode/pom.xml b/qa/smoke-test-multinode/pom.xml index 879c319d565..a4788ddd1f6 100644 --- a/qa/smoke-test-multinode/pom.xml +++ b/qa/smoke-test-multinode/pom.xml @@ -165,12 +165,6 @@ commons-cli provided - - org.codehaus.groovy - groovy-all - indy - provided - log4j log4j diff --git a/qa/smoke-test-plugins/pom.xml b/qa/smoke-test-plugins/pom.xml index 59a2cbf6b34..238ea9c7f6b 100644 --- a/qa/smoke-test-plugins/pom.xml +++ b/qa/smoke-test-plugins/pom.xml @@ -170,12 +170,6 @@ commons-cli provided - - org.codehaus.groovy - groovy-all - indy - provided - log4j log4j @@ -323,6 +317,14 @@ true + + org.elasticsearch.plugin + lang-groovy + ${elasticsearch.version} + zip + true + + org.elasticsearch.plugin lang-javascript diff --git a/qa/vagrant/pom.xml b/qa/vagrant/pom.xml index 203ad88bbae..c0f75356113 100644 --- a/qa/vagrant/pom.xml +++ b/qa/vagrant/pom.xml @@ -177,6 +177,12 @@ ${elasticsearch.version} zip + + org.elasticsearch.plugin + lang-groovy + ${elasticsearch.version} + zip + org.elasticsearch.plugin lang-javascript