diff --git a/benchmarks/build.gradle b/benchmarks/build.gradle index acb990048c069..fc013d3af5e85 100644 --- a/benchmarks/build.gradle +++ b/benchmarks/build.gradle @@ -28,6 +28,7 @@ dependencies { // us to invoke the JMH uberjar as usual. exclude group: 'net.sf.jopt-simple', module: 'jopt-simple' } + api(project(':modules:aggregations')) expression(project(path: ':modules:lang-expression', configuration: 'zip')) painless(project(path: ':modules:lang-painless', configuration: 'zip')) api "org.openjdk.jmh:jmh-core:$versions.jmh" @@ -49,7 +50,7 @@ tasks.register('copyExpression', Copy) { into "${buildDir}/plugins/expression" } -tasks.register("copyPainless", Copy) { +tasks.register("copyPainless", Copy) { dependsOn configurations.painless from { configurations.painless.collect { zipTree(it) } } into "${buildDir}/plugins/painless" diff --git a/benchmarks/src/main/java/org/elasticsearch/benchmark/search/aggregations/bucket/terms/LongKeyedBucketOrdsBenchmark.java b/benchmarks/src/main/java/org/elasticsearch/benchmark/search/aggregations/bucket/terms/LongKeyedBucketOrdsBenchmark.java index 0d73f06891c29..38cebcd42e62d 100644 --- a/benchmarks/src/main/java/org/elasticsearch/benchmark/search/aggregations/bucket/terms/LongKeyedBucketOrdsBenchmark.java +++ b/benchmarks/src/main/java/org/elasticsearch/benchmark/search/aggregations/bucket/terms/LongKeyedBucketOrdsBenchmark.java @@ -8,11 +8,11 @@ package org.elasticsearch.benchmark.search.aggregations.bucket.terms; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.PageCacheRecycler; import org.elasticsearch.search.aggregations.CardinalityUpperBound; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.LongKeyedBucketOrds; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClient.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClient.java index a017c4567dbb3..736010996aa1a 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClient.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClient.java @@ -38,8 +38,10 @@ import org.elasticsearch.action.search.SearchScrollRequest; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.action.update.UpdateResponse; -import org.elasticsearch.aggregations.bucket.AdjacencyMatrixAggregationBuilder; -import org.elasticsearch.aggregations.bucket.ParsedAdjacencyMatrix; +import org.elasticsearch.aggregations.bucket.adjacency.AdjacencyMatrixAggregationBuilder; +import org.elasticsearch.aggregations.bucket.adjacency.ParsedAdjacencyMatrix; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; +import org.elasticsearch.aggregations.bucket.histogram.ParsedAutoDateHistogram; import org.elasticsearch.client.analytics.ParsedStringStats; import org.elasticsearch.client.analytics.ParsedTopMetrics; import org.elasticsearch.client.analytics.StringStatsAggregationBuilder; @@ -77,10 +79,8 @@ import org.elasticsearch.search.aggregations.bucket.geogrid.ParsedGeoTileGrid; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.ParsedGlobal; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.histogram.ParsedAutoDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.ParsedDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.ParsedHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.ParsedVariableWidthHistogram; diff --git a/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixIT.java b/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixIT.java index 550227d03bd1d..0dd6b37475451 100644 --- a/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixIT.java +++ b/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixIT.java @@ -14,7 +14,9 @@ import org.elasticsearch.action.search.SearchPhaseExecutionException; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.aggregations.AggregationsPlugin; -import org.elasticsearch.aggregations.bucket.AdjacencyMatrix.Bucket; +import org.elasticsearch.aggregations.bucket.adjacency.AdjacencyMatrix; +import org.elasticsearch.aggregations.bucket.adjacency.AdjacencyMatrix.Bucket; +import org.elasticsearch.aggregations.bucket.adjacency.AdjacencyMatrixAggregationBuilder; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.plugins.Plugin; diff --git a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffIT.java b/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/pipeline/SerialDiffIT.java similarity index 95% rename from server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffIT.java rename to modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/pipeline/SerialDiffIT.java index 10a3d9ce1ccf0..66b7bcf9f773e 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffIT.java +++ b/modules/aggregations/src/internalClusterTest/java/org/elasticsearch/aggregations/pipeline/SerialDiffIT.java @@ -6,19 +6,24 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.pipeline; +package org.elasticsearch.aggregations.pipeline; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; +import org.elasticsearch.aggregations.AggregationsPlugin; import org.elasticsearch.common.collect.EvictingQueue; import org.elasticsearch.common.util.Maps; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram.Bucket; +import org.elasticsearch.search.aggregations.pipeline.BucketHelpers; +import org.elasticsearch.search.aggregations.pipeline.SimpleValue; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.test.ESIntegTestCase; import org.hamcrest.Matchers; import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -66,6 +71,12 @@ public String toString() { } } + // TODO: maybe add base class that overwrites nodePlugins(...) for all tests that will be added to this module. + @Override + protected Collection> nodePlugins() { + return List.of(AggregationsPlugin.class); + } + private ValuesSourceAggregationBuilder> randomMetric(String name, String field) { int rand = randomIntBetween(0, 3); diff --git a/modules/aggregations/src/main/java/module-info.java b/modules/aggregations/src/main/java/module-info.java index b64b761fc90b3..a41affa5ba4b6 100644 --- a/modules/aggregations/src/main/java/module-info.java +++ b/modules/aggregations/src/main/java/module-info.java @@ -12,6 +12,7 @@ requires org.elasticsearch.xcontent; requires org.apache.lucene.core; - exports org.elasticsearch.aggregations.bucket; + exports org.elasticsearch.aggregations.bucket.histogram; + exports org.elasticsearch.aggregations.bucket.adjacency; } diff --git a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/AggregationsPlugin.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/AggregationsPlugin.java index 8f7f2c7fc75b0..d13cc20cb2d2d 100644 --- a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/AggregationsPlugin.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/AggregationsPlugin.java @@ -8,8 +8,10 @@ package org.elasticsearch.aggregations; -import org.elasticsearch.aggregations.bucket.AdjacencyMatrixAggregationBuilder; -import org.elasticsearch.aggregations.bucket.InternalAdjacencyMatrix; +import org.elasticsearch.aggregations.bucket.adjacency.AdjacencyMatrixAggregationBuilder; +import org.elasticsearch.aggregations.bucket.adjacency.InternalAdjacencyMatrix; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; +import org.elasticsearch.aggregations.bucket.histogram.InternalAutoDateHistogram; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.SearchPlugin; @@ -24,7 +26,13 @@ public List getAggregations() { AdjacencyMatrixAggregationBuilder.NAME, AdjacencyMatrixAggregationBuilder::new, AdjacencyMatrixAggregationBuilder::parse - ).addResultReader(InternalAdjacencyMatrix::new) + ).addResultReader(InternalAdjacencyMatrix::new), + new AggregationSpec( + AutoDateHistogramAggregationBuilder.NAME, + AutoDateHistogramAggregationBuilder::new, + AutoDateHistogramAggregationBuilder.PARSER + ).addResultReader(InternalAutoDateHistogram::new) + .setAggregatorRegistrar(AutoDateHistogramAggregationBuilder::registerAggregators) ); } } diff --git a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrix.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrix.java similarity index 94% rename from modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrix.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrix.java index efba2d802474d..d08ac4c28139d 100644 --- a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrix.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrix.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; diff --git a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregationBuilder.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregationBuilder.java similarity index 98% rename from modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregationBuilder.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregationBuilder.java index c75f7de77cae6..8867ba732df11 100644 --- a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregationBuilder.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregationBuilder.java @@ -6,11 +6,11 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.apache.lucene.search.IndexSearcher; import org.elasticsearch.Version; -import org.elasticsearch.aggregations.bucket.AdjacencyMatrixAggregator.KeyedFilter; +import org.elasticsearch.aggregations.bucket.adjacency.AdjacencyMatrixAggregator.KeyedFilter; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.util.Maps; diff --git a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregator.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregator.java similarity index 99% rename from modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregator.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregator.java index c7832f18f211e..e6367fa369f21 100644 --- a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregator.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregator.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.apache.lucene.search.Weight; import org.apache.lucene.util.Bits; diff --git a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregatorFactory.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregatorFactory.java similarity index 93% rename from modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregatorFactory.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregatorFactory.java index 4f0ac900f20b5..1d7353628e2c5 100644 --- a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregatorFactory.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregatorFactory.java @@ -6,13 +6,13 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreMode; import org.apache.lucene.search.Weight; -import org.elasticsearch.aggregations.bucket.AdjacencyMatrixAggregator.KeyedFilter; +import org.elasticsearch.aggregations.bucket.adjacency.AdjacencyMatrixAggregator.KeyedFilter; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; diff --git a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/InternalAdjacencyMatrix.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/InternalAdjacencyMatrix.java similarity index 99% rename from modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/InternalAdjacencyMatrix.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/InternalAdjacencyMatrix.java index c766824b0463e..84765a1432210 100644 --- a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/InternalAdjacencyMatrix.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/InternalAdjacencyMatrix.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; diff --git a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/ParsedAdjacencyMatrix.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/ParsedAdjacencyMatrix.java similarity index 97% rename from modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/ParsedAdjacencyMatrix.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/ParsedAdjacencyMatrix.java index 14ee2797be9dd..efd5e498c9a91 100644 --- a/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/ParsedAdjacencyMatrix.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/adjacency/ParsedAdjacencyMatrix.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.elasticsearch.common.util.Maps; import org.elasticsearch.search.aggregations.ParsedMultiBucketAggregation; diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java similarity index 99% rename from server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java index 0b12c7aedc4fb..8002d1c34f606 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilder.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; import org.elasticsearch.Version; import org.elasticsearch.common.Rounding; diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregator.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregator.java similarity index 99% rename from server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregator.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregator.java index c54f6a0c6d609..3a73e65d6b604 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregator.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregator.java @@ -5,11 +5,12 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; import org.apache.lucene.index.SortedNumericDocValues; import org.apache.lucene.search.ScoreMode; import org.apache.lucene.util.CollectionUtil; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder.RoundingInfo; import org.elasticsearch.common.Rounding; import org.elasticsearch.common.util.ByteArray; import org.elasticsearch.common.util.IntArray; @@ -27,7 +28,6 @@ import org.elasticsearch.search.aggregations.bucket.BestBucketsDeferringCollector; import org.elasticsearch.search.aggregations.bucket.DeferableBucketAggregator; import org.elasticsearch.search.aggregations.bucket.DeferringBucketCollector; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder.RoundingInfo; import org.elasticsearch.search.aggregations.bucket.terms.LongKeyedBucketOrds; import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java similarity index 96% rename from server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java index a19ed7bf7fede..f517291d96d90 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorFactory.java @@ -6,15 +6,15 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder.RoundingInfo; import org.elasticsearch.common.logging.DeprecationCategory; import org.elasticsearch.common.logging.DeprecationLogger; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.CardinalityUpperBound; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder.RoundingInfo; import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorSupplier.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorSupplier.java similarity index 95% rename from server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorSupplier.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorSupplier.java index be69b2c5aa68c..71d7b987ffae2 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorSupplier.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorSupplier.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; import org.elasticsearch.core.Nullable; import org.elasticsearch.search.aggregations.Aggregator; diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogram.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/InternalAutoDateHistogram.java similarity index 98% rename from server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogram.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/InternalAutoDateHistogram.java index 98e2849384d06..4860bedaee61a 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogram.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/InternalAutoDateHistogram.java @@ -5,10 +5,11 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; import org.apache.lucene.util.PriorityQueue; import org.elasticsearch.Version; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder.RoundingInfo; import org.elasticsearch.common.Rounding; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; @@ -21,7 +22,9 @@ import org.elasticsearch.search.aggregations.KeyComparable; import org.elasticsearch.search.aggregations.bucket.IteratorAndCurrent; import org.elasticsearch.search.aggregations.bucket.MultiBucketsAggregation; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder.RoundingInfo; +import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; +import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.bucket.histogram.HistogramFactory; import org.elasticsearch.search.aggregations.support.SamplingContext; import org.elasticsearch.xcontent.XContentBuilder; diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/ParsedAutoDateHistogram.java b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/ParsedAutoDateHistogram.java similarity index 96% rename from server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/ParsedAutoDateHistogram.java rename to modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/ParsedAutoDateHistogram.java index 7e3b0ce9b31b4..1ba29602ed45b 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/ParsedAutoDateHistogram.java +++ b/modules/aggregations/src/main/java/org/elasticsearch/aggregations/bucket/histogram/ParsedAutoDateHistogram.java @@ -6,9 +6,10 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; import org.elasticsearch.search.aggregations.ParsedMultiBucketAggregation; +import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.xcontent.ObjectParser; import org.elasticsearch.xcontent.ParseField; import org.elasticsearch.xcontent.XContentBuilder; diff --git a/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregatorTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregatorTests.java similarity index 98% rename from modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregatorTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregatorTests.java index 94e3462b4b6f7..3e3ef8e7c89bf 100644 --- a/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixAggregatorTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixAggregatorTests.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.apache.lucene.search.IndexSearcher; import org.elasticsearch.aggregations.AggregationsPlugin; diff --git a/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixTests.java similarity index 97% rename from modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixTests.java index 4c42bc79098a1..23f6f1327110b 100644 --- a/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/AdjacencyMatrixTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/AdjacencyMatrixTests.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.elasticsearch.aggregations.AggregationsPlugin; import org.elasticsearch.common.util.Maps; diff --git a/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/InternalAdjacencyMatrixTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/InternalAdjacencyMatrixTests.java similarity index 99% rename from modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/InternalAdjacencyMatrixTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/InternalAdjacencyMatrixTests.java index 3e00e1ba8dc6b..f706db9582bb5 100644 --- a/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/InternalAdjacencyMatrixTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/adjacency/InternalAdjacencyMatrixTests.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.adjacency; import org.elasticsearch.aggregations.AggregationsPlugin; import org.elasticsearch.common.util.CollectionUtils; diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilderTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilderTests.java similarity index 97% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilderTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilderTests.java index fcfa6cf092f9f..a1da557562f31 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilderTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregationBuilderTests.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; import org.elasticsearch.test.ESTestCase; diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java similarity index 98% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java index fd4b55d7e6418..35939a724781e 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramAggregatorTests.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; @@ -25,6 +25,7 @@ import org.apache.lucene.tests.index.RandomIndexWriter; import org.apache.lucene.util.BytesRef; import org.elasticsearch.Version; +import org.elasticsearch.aggregations.AggregationsPlugin; import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.CheckedBiConsumer; import org.elasticsearch.common.network.InetAddresses; @@ -37,10 +38,15 @@ import org.elasticsearch.index.mapper.KeywordFieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.NumberFieldMapper; +import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.MultiBucketConsumerService; +import org.elasticsearch.search.aggregations.bucket.DateHistogramAggregatorTestCase; +import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; +import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; +import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogram; import org.elasticsearch.search.aggregations.bucket.range.InternalBinaryRange; import org.elasticsearch.search.aggregations.bucket.range.InternalRange; import org.elasticsearch.search.aggregations.bucket.range.IpRangeAggregationBuilder; @@ -99,6 +105,12 @@ public class AutoDateHistogramAggregatorTests extends DateHistogramAggregatorTes private static final Query DEFAULT_QUERY = new MatchAllDocsQuery(); + // TODO: maybe add base class that overwrites getSearchPlugins(...) for all tests that will be added to this module. + @Override + protected List getSearchPlugins() { + return List.of(new AggregationsPlugin()); + } + public void testMatchNoDocs() throws IOException { testSearchCase( new MatchNoDocsQuery(), @@ -907,10 +919,13 @@ public void testWithPipelineReductions() throws IOException { InternalHistogram histo = (InternalHistogram) bucket.getAggregations().asList().get(0); assertThat(histo.getBuckets().size(), equalTo(10)); for (int i = 0; i < 10; i++) { - assertThat(histo.getBuckets().get(i).key, equalTo((double) i)); - assertThat(((Max) histo.getBuckets().get(i).aggregations.get("max")).value(), equalTo((double) i)); + assertThat(histo.getBuckets().get(i).getKey(), equalTo((double) i)); + assertThat(((Max) histo.getBuckets().get(i).getAggregations().get("max")).value(), equalTo((double) i)); if (i > 0) { - assertThat(((InternalSimpleValue) histo.getBuckets().get(i).aggregations.get("deriv")).getValue(), equalTo(1.0)); + assertThat( + ((InternalSimpleValue) histo.getBuckets().get(i).getAggregations().get("deriv")).getValue(), + equalTo(1.0) + ); } } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/AutoDateHistogramTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramTests.java similarity index 72% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/AutoDateHistogramTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramTests.java index 08e9998388451..71d536ed45184 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/AutoDateHistogramTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/AutoDateHistogramTests.java @@ -6,13 +6,23 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket; +package org.elasticsearch.aggregations.bucket.histogram; +import org.elasticsearch.aggregations.AggregationsPlugin; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.aggregations.BaseAggregationTestCase; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; + +import java.util.Collection; +import java.util.List; public class AutoDateHistogramTests extends BaseAggregationTestCase { + // TODO: maybe add base class that overwrites getPlugins(...) for all tests that will be added to this module. + @Override + protected Collection> getPlugins() { + return List.of(AggregationsPlugin.class); + } + @Override protected AutoDateHistogramAggregationBuilder createTestAggregatorBuilder() { AutoDateHistogramAggregationBuilder builder = new AutoDateHistogramAggregationBuilder(randomAlphaOfLengthBetween(1, 10)); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java similarity index 93% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java index d0ddf2eeaa70a..89911402ed680 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java @@ -6,24 +6,33 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.aggregations.bucket.histogram; import org.elasticsearch.Version; +import org.elasticsearch.aggregations.AggregationsPlugin; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder.RoundingInfo; +import org.elasticsearch.aggregations.bucket.histogram.InternalAutoDateHistogram.BucketInfo; import org.elasticsearch.common.Rounding; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.time.DateFormatter; +import org.elasticsearch.common.util.CollectionUtils; import org.elasticsearch.common.util.Maps; import org.elasticsearch.index.mapper.DateFieldMapper; +import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.DocValueFormat; +import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.InternalAggregations; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder.RoundingInfo; -import org.elasticsearch.search.aggregations.bucket.histogram.InternalAutoDateHistogram.BucketInfo; +import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval; +import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.test.InternalMultiBucketAggregationTestCase; import org.elasticsearch.test.VersionUtils; +import org.elasticsearch.xcontent.ContextParser; +import org.elasticsearch.xcontent.NamedXContentRegistry; +import org.elasticsearch.xcontent.ParseField; import java.io.IOException; import java.time.Instant; @@ -49,6 +58,23 @@ import static org.mockito.Mockito.mock; public class InternalAutoDateHistogramTests extends InternalMultiBucketAggregationTestCase { + + // TODO: maybe add base class that overwrites registerPlugin(...) for all tests that will be added to this module. + @Override + protected SearchPlugin registerPlugin() { + return new AggregationsPlugin(); + } + + // TODO: the base test class should be able to get this from the search plugin? (^) + @Override + protected List getNamedXContents() { + ContextParser parser = (p, c) -> ParsedAutoDateHistogram.fromXContent(p, (String) c); + return CollectionUtils.appendToCopy( + getDefaultNamedXContents(), + new NamedXContentRegistry.Entry(Aggregation.class, new ParseField(AutoDateHistogramAggregationBuilder.NAME), parser) + ); + } + protected InternalAutoDateHistogram createTestInstance( String name, Map metadata, diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/CumulativeSumTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/CumulativeSumTests.java similarity index 94% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/CumulativeSumTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/CumulativeSumTests.java index 21beed053efca..7cab1eb5cfd0e 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/CumulativeSumTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/CumulativeSumTests.java @@ -6,11 +6,12 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.pipeline; +package org.elasticsearch.aggregations.pipeline; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BasePipelineAggregationTestCase; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; +import org.elasticsearch.search.aggregations.pipeline.CumulativeSumPipelineAggregationBuilder; import java.io.IOException; diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/DerivativeTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/DerivativeTests.java similarity index 95% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/DerivativeTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/DerivativeTests.java index 9de23d9f83722..dcd958b604ea1 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/DerivativeTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/DerivativeTests.java @@ -6,13 +6,14 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.pipeline; +package org.elasticsearch.aggregations.pipeline; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BasePipelineAggregationTestCase; import org.elasticsearch.search.aggregations.PipelineAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.pipeline.BucketHelpers.GapPolicy; +import org.elasticsearch.search.aggregations.pipeline.DerivativePipelineAggregationBuilder; import java.io.IOException; import java.util.HashSet; diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MovFnPipelineAggregationBuilderSerializationTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/MovFnPipelineAggregationBuilderSerializationTests.java similarity index 95% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MovFnPipelineAggregationBuilderSerializationTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/MovFnPipelineAggregationBuilderSerializationTests.java index 8f432f420e1bd..5149570d1f7af 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/MovFnPipelineAggregationBuilderSerializationTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/MovFnPipelineAggregationBuilderSerializationTests.java @@ -6,12 +6,13 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.pipeline; +package org.elasticsearch.aggregations.pipeline; import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BasePipelineAggregationTestCase; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; +import org.elasticsearch.search.aggregations.pipeline.MovFnPipelineAggregationBuilder; import java.io.IOException; import java.util.Collections; diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PipelineAggregationHelperTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/PipelineAggregationHelperTests.java similarity index 97% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PipelineAggregationHelperTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/PipelineAggregationHelperTests.java index 0bc85cb175b2f..71f2ec284f8c2 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/PipelineAggregationHelperTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/PipelineAggregationHelperTests.java @@ -6,10 +6,10 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.pipeline; +package org.elasticsearch.aggregations.pipeline; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.AggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.AvgAggregationBuilder; diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SerialDifferenceTests.java b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/SerialDifferenceTests.java similarity index 95% rename from server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SerialDifferenceTests.java rename to modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/SerialDifferenceTests.java index db001a1a13c14..28378b8cd8708 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/pipeline/SerialDifferenceTests.java +++ b/modules/aggregations/src/test/java/org/elasticsearch/aggregations/pipeline/SerialDifferenceTests.java @@ -6,13 +6,14 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.pipeline; +package org.elasticsearch.aggregations.pipeline; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BasePipelineAggregationTestCase; import org.elasticsearch.search.aggregations.PipelineAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.pipeline.BucketHelpers.GapPolicy; +import org.elasticsearch.search.aggregations.pipeline.SerialDiffPipelineAggregationBuilder; import java.io.IOException; import java.util.HashSet; diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/330_auto_date_histogram.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/330_auto_date_histogram.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/330_auto_date_histogram.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/330_auto_date_histogram.yml diff --git a/server/src/main/java/org/elasticsearch/search/SearchModule.java b/server/src/main/java/org/elasticsearch/search/SearchModule.java index 9697833f83616..bd29d9fc9cf02 100644 --- a/server/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/server/src/main/java/org/elasticsearch/search/SearchModule.java @@ -103,10 +103,8 @@ import org.elasticsearch.search.aggregations.bucket.geogrid.InternalGeoTileGrid; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.InternalGlobal; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.histogram.InternalAutoDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalVariableWidthHistogram; @@ -559,15 +557,6 @@ private ValuesSourceRegistry registerAggregations(List plugins) { ).addResultReader(InternalDateHistogram::new).setAggregatorRegistrar(DateHistogramAggregationBuilder::registerAggregators), builder ); - registerAggregation( - new AggregationSpec( - AutoDateHistogramAggregationBuilder.NAME, - AutoDateHistogramAggregationBuilder::new, - AutoDateHistogramAggregationBuilder.PARSER - ).addResultReader(InternalAutoDateHistogram::new) - .setAggregatorRegistrar(AutoDateHistogramAggregationBuilder::registerAggregators), - builder - ); registerAggregation( new AggregationSpec( VariableWidthHistogramAggregationBuilder.NAME, diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationInspectionHelper.java b/server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationInspectionHelper.java index 017a6235c385a..74c4ce507523c 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationInspectionHelper.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/support/AggregationInspectionHelper.java @@ -13,7 +13,6 @@ import org.elasticsearch.search.aggregations.bucket.filter.InternalFilters; import org.elasticsearch.search.aggregations.bucket.geogrid.InternalGeoGrid; import org.elasticsearch.search.aggregations.bucket.global.InternalGlobal; -import org.elasticsearch.search.aggregations.bucket.histogram.InternalAutoDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalVariableWidthHistogram; @@ -110,10 +109,6 @@ public static boolean hasValue(InternalDateHistogram agg) { return agg.getBuckets().stream().anyMatch(bucket -> bucket.getDocCount() > 0); } - public static boolean hasValue(InternalAutoDateHistogram agg) { - return agg.getBuckets().stream().anyMatch(bucket -> bucket.getDocCount() > 0); - } - public static boolean hasValue(InternalVariableWidthHistogram agg) { return agg.getBuckets().stream().anyMatch(bucket -> bucket.getDocCount() > 0); } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/AggregationsTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/AggregationsTests.java index 3a35db05159ce..76b8380101d5b 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/AggregationsTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/AggregationsTests.java @@ -19,7 +19,6 @@ import org.elasticsearch.search.aggregations.bucket.geogrid.GeoHashGridTests; import org.elasticsearch.search.aggregations.bucket.geogrid.GeoTileGridTests; import org.elasticsearch.search.aggregations.bucket.global.InternalGlobalTests; -import org.elasticsearch.search.aggregations.bucket.histogram.InternalAutoDateHistogramTests; import org.elasticsearch.search.aggregations.bucket.histogram.InternalDateHistogramTests; import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogramTests; import org.elasticsearch.search.aggregations.bucket.histogram.InternalVariableWidthHistogramTests; @@ -118,7 +117,6 @@ public class AggregationsTests extends ESTestCase { new InternalGeoCentroidTests(), new InternalHistogramTests(), new InternalDateHistogramTests(), - new InternalAutoDateHistogramTests(), new InternalVariableWidthHistogramTests(), new LongTermsTests(), new DoubleTermsTests(), diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorTests.java index e9c8f12672d05..fdd7855adadbe 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorTests.java @@ -34,6 +34,7 @@ import org.elasticsearch.search.aggregations.AggregationReduceContext; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.BucketOrder; +import org.elasticsearch.search.aggregations.bucket.DateHistogramAggregatorTestCase; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorTestCase.java b/test/framework/src/main/java/org/elasticsearch/search/aggregations/bucket/DateHistogramAggregatorTestCase.java similarity index 99% rename from server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorTestCase.java rename to test/framework/src/main/java/org/elasticsearch/search/aggregations/bucket/DateHistogramAggregatorTestCase.java index 7af1782d23367..ad24b2b82794b 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/search/aggregations/bucket/DateHistogramAggregatorTestCase.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.search.aggregations.bucket.histogram; +package org.elasticsearch.search.aggregations.bucket; import org.apache.lucene.document.Field; import org.apache.lucene.document.SortedNumericDocValuesField; diff --git a/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java index 55166659abd94..ca83722501f04 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/InternalAggregationTestCase.java @@ -52,10 +52,8 @@ import org.elasticsearch.search.aggregations.bucket.geogrid.ParsedGeoTileGrid; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.ParsedGlobal; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.histogram.ParsedAutoDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.ParsedDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.ParsedHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.ParsedVariableWidthHistogram; @@ -274,7 +272,6 @@ public AggregationReduceContext forFinalReduction() { map.put(GeoCentroidAggregationBuilder.NAME, (p, c) -> ParsedGeoCentroid.fromXContent(p, (String) c)); map.put(HistogramAggregationBuilder.NAME, (p, c) -> ParsedHistogram.fromXContent(p, (String) c)); map.put(DateHistogramAggregationBuilder.NAME, (p, c) -> ParsedDateHistogram.fromXContent(p, (String) c)); - map.put(AutoDateHistogramAggregationBuilder.NAME, (p, c) -> ParsedAutoDateHistogram.fromXContent(p, (String) c)); map.put(VariableWidthHistogramAggregationBuilder.NAME, (p, c) -> ParsedVariableWidthHistogram.fromXContent(p, (String) c)); map.put(StringTerms.NAME, (p, c) -> ParsedStringTerms.fromXContent(p, (String) c)); map.put(LongTerms.NAME, (p, c) -> ParsedLongTerms.fromXContent(p, (String) c)); diff --git a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/cumulativecardinality/CumulativeCardinalityTests.java b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/cumulativecardinality/CumulativeCardinalityTests.java index fa4bd029cebb8..772ccfb012c2e 100644 --- a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/cumulativecardinality/CumulativeCardinalityTests.java +++ b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/cumulativecardinality/CumulativeCardinalityTests.java @@ -7,10 +7,10 @@ package org.elasticsearch.xpack.analytics.cumulativecardinality; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BasePipelineAggregationTestCase; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; diff --git a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/movingPercentiles/MovingPercentilesTests.java b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/movingPercentiles/MovingPercentilesTests.java index 83ff13866d37c..7d59e59adb83b 100644 --- a/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/movingPercentiles/MovingPercentilesTests.java +++ b/x-pack/plugin/analytics/src/test/java/org/elasticsearch/xpack/analytics/movingPercentiles/MovingPercentilesTests.java @@ -8,10 +8,10 @@ package org.elasticsearch.xpack.analytics.movingPercentiles; import org.apache.lucene.tests.util.TestUtil; +import org.elasticsearch.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.BasePipelineAggregationTestCase; -import org.elasticsearch.search.aggregations.bucket.histogram.AutoDateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;