diff --git a/client/client-benchmark-noop-api-plugin/src/main/java/org/elasticsearch/plugin/noop/action/search/TransportNoopSearchAction.java b/client/client-benchmark-noop-api-plugin/src/main/java/org/elasticsearch/plugin/noop/action/search/TransportNoopSearchAction.java index 745f247ad1ba..09cce72f5f7a 100644 --- a/client/client-benchmark-noop-api-plugin/src/main/java/org/elasticsearch/plugin/noop/action/search/TransportNoopSearchAction.java +++ b/client/client-benchmark-noop-api-plugin/src/main/java/org/elasticsearch/plugin/noop/action/search/TransportNoopSearchAction.java @@ -49,7 +49,7 @@ public class TransportNoopSearchAction extends HandledTransportAction aggregations) { + private InternalAggregations(List aggregations) { super(aggregations); } - public InternalAggregations(StreamInput in) throws IOException { - super(in.readList(stream -> in.readNamedWriteable(InternalAggregation.class))); + public static InternalAggregations from(List aggregations) { + if (aggregations.isEmpty()) { + return EMPTY; + } + return new InternalAggregations(aggregations); + } + + public static InternalAggregations readFrom(StreamInput in) throws IOException { + return from(in.readList(stream -> in.readNamedWriteable(InternalAggregation.class))); } @Override @@ -117,10 +124,10 @@ public final class InternalAggregations extends Aggregations implements Writeabl for (PipelineAggregator pipelineAggregator : context.pipelineTreeRoot().aggregators()) { SiblingPipelineAggregator sib = (SiblingPipelineAggregator) pipelineAggregator; - InternalAggregation newAgg = sib.doReduce(new InternalAggregations(reducedInternalAggs), context); + InternalAggregation newAgg = sib.doReduce(from(reducedInternalAggs), context); reducedInternalAggs.add(newAgg); } - return new InternalAggregations(reducedInternalAggs); + return from(reducedInternalAggs); } return reduced; } @@ -157,6 +164,6 @@ public final class InternalAggregations extends Aggregations implements Writeabl reducedAggregations.add(first.reduce(aggregations, context)); } - return new InternalAggregations(reducedAggregations); + return from(reducedAggregations); } } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/InternalMultiBucketAggregation.java b/server/src/main/java/org/elasticsearch/search/aggregations/InternalMultiBucketAggregation.java index 8b69573f14fa..a7333f124a4e 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/InternalMultiBucketAggregation.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/InternalMultiBucketAggregation.java @@ -192,7 +192,7 @@ public abstract class InternalMultiBucketAggregation() { + result[ord] = InternalAggregations.from(new AbstractList() { @Override public InternalAggregation get(int index) { return aggregations[index][thisOrd]; @@ -353,17 +353,6 @@ public abstract class BucketsAggregator extends AggregatorBase { InternalAggregation build(long owninigBucketOrd, List buckets); } - /** - * Utility method to build empty aggregations of the sub aggregators. - */ - protected final InternalAggregations bucketEmptyAggregations() { - final InternalAggregation[] aggregations = new InternalAggregation[subAggregators.length]; - for (int i = 0; i < subAggregators.length; i++) { - aggregations[i] = subAggregators[i].buildEmptyAggregation(); - } - return new InternalAggregations(Arrays.asList(aggregations)); - } - @Override public final void close() { try (Releasable releasable = docCounts) { diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/InternalSingleBucketAggregation.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/InternalSingleBucketAggregation.java index 5d79ab2ce805..ff5eaa33661f 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/InternalSingleBucketAggregation.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/InternalSingleBucketAggregation.java @@ -64,7 +64,7 @@ public abstract class InternalSingleBucketAggregation extends InternalAggregatio protected InternalSingleBucketAggregation(StreamInput in) throws IOException { super(in); docCount = in.readVLong(); - aggregations = new InternalAggregations(in); + aggregations = InternalAggregations.readFrom(in); } @Override @@ -128,7 +128,7 @@ public abstract class InternalSingleBucketAggregation extends InternalAggregatio PipelineTree subTree = pipelineTree.subTree(agg.getName()); aggs.add(((InternalAggregation)agg).reducePipelines((InternalAggregation)agg, reduceContext, subTree)); } - InternalAggregations reducedSubAggs = new InternalAggregations(aggs); + InternalAggregations reducedSubAggs = InternalAggregations.from(aggs); reduced = create(reducedSubAggs); } return super.reducePipelines(reduced, reduceContext, pipelineTree); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/InternalAdjacencyMatrix.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/InternalAdjacencyMatrix.java index 6a9d51c3ef32..60d97aabac4f 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/InternalAdjacencyMatrix.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/adjacency/InternalAdjacencyMatrix.java @@ -56,7 +56,7 @@ public class InternalAdjacencyMatrix public InternalBucket(StreamInput in) throws IOException { key = in.readOptionalString(); docCount = in.readVLong(); - aggregations = new InternalAggregations(in); + aggregations = InternalAggregations.readFrom(in); } @Override diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/InternalComposite.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/InternalComposite.java index bb9e7f3b6d49..524881045a96 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/InternalComposite.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/composite/InternalComposite.java @@ -286,7 +286,7 @@ public class InternalComposite InternalBucket(StreamInput in, List sourceNames, List formats, int[] reverseMuls) throws IOException { this.key = new CompositeKey(in); this.docCount = in.readVLong(); - this.aggregations = new InternalAggregations(in); + this.aggregations = InternalAggregations.readFrom(in); this.reverseMuls = reverseMuls; this.sourceNames = sourceNames; this.formats = formats; diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFilters.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFilters.java index c7e359c34205..de16dac7ea90 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFilters.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFilters.java @@ -56,7 +56,7 @@ public class InternalFilters extends InternalMultiBucketAggregation public InternalGeoGridBucket(StreamInput in) throws IOException { hashAsLong = in.readLong(); docCount = in.readVLong(); - aggregations = new InternalAggregations(in); + aggregations = InternalAggregations.readFrom(in); } @Override diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogram.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogram.java index f2b09e4f0799..29001fedde3f 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogram.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogram.java @@ -72,7 +72,7 @@ public final class InternalAutoDateHistogram extends this.format = format; key = in.readLong(); docCount = in.readVLong(); - aggregations = new InternalAggregations(in); + aggregations = InternalAggregations.readFrom(in); } @Override @@ -163,7 +163,7 @@ public final class InternalAutoDateHistogram extends roundingInfos[i] = new RoundingInfo(in); } roundingIdx = in.readVInt(); - emptySubAggregations = new InternalAggregations(in); + emptySubAggregations = InternalAggregations.readFrom(in); } void writeTo(StreamOutput out) throws IOException { diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalDateHistogram.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalDateHistogram.java index 7efb5d630ae9..4b03be7f3472 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalDateHistogram.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalDateHistogram.java @@ -76,7 +76,7 @@ public final class InternalDateHistogram extends InternalMultiBucketAggregation< this.keyed = keyed; key = in.readLong(); docCount = in.readVLong(); - aggregations = new InternalAggregations(in); + aggregations = InternalAggregations.readFrom(in); } @Override @@ -174,7 +174,7 @@ public final class InternalDateHistogram extends InternalMultiBucketAggregation< EmptyBucketInfo(StreamInput in) throws IOException { rounding = Rounding.read(in); - subAggregations = new InternalAggregations(in); + subAggregations = InternalAggregations.readFrom(in); bounds = in.readOptionalWriteable(ExtendedBounds::new); } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalHistogram.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalHistogram.java index a3eaedaca7d7..0390f4fe25e4 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalHistogram.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalHistogram.java @@ -72,7 +72,7 @@ public final class InternalHistogram extends InternalMultiBucketAggregation aggregations, boolean keyed, DocValueFormat formatter) { - super(key, from, to, docCount, new InternalAggregations(aggregations), keyed, formatter); + super(key, from, to, docCount, InternalAggregations.from(aggregations), keyed, formatter); } public Bucket(String key, double from, double to, long docCount, InternalAggregations aggregations, boolean keyed, diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalGeoDistance.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalGeoDistance.java index 14f0b097719f..6699d1d1c48e 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalGeoDistance.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalGeoDistance.java @@ -20,7 +20,6 @@ package org.elasticsearch.search.aggregations.bucket.range; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.search.DocValueFormat; -import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.InternalAggregations; import org.elasticsearch.search.aggregations.support.CoreValuesSourceType; import org.elasticsearch.search.aggregations.support.ValueType; @@ -35,10 +34,6 @@ public class InternalGeoDistance extends InternalRange aggregations, boolean keyed) { - this(key, from, to, docCount, new InternalAggregations(aggregations), keyed); - } - Bucket(String key, double from, double to, long docCount, InternalAggregations aggregations, boolean keyed) { super(key, from, to, docCount, aggregations, keyed, DocValueFormat.RAW); } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java index 106e6e7e9888..c750fdc2d062 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/range/InternalRange.java @@ -241,7 +241,7 @@ public class InternalRange, B ext protected Bucket(StreamInput in, DocValueFormat formatter) throws IOException { this.format = formatter; docCount = in.readVLong(); - aggregations = new InternalAggregations(in); + aggregations = InternalAggregations.readFrom(in); } @Override diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/InternalTerms.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/InternalTerms.java index 05303ffad2fb..a0ef8861b7ba 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/InternalTerms.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/InternalTerms.java @@ -84,7 +84,7 @@ public abstract class InternalTerms, B extends Int if (showDocCountError) { docCountError = in.readLong(); } - aggregations = new InternalAggregations(in); + aggregations = InternalAggregations.readFrom(in); } @Override diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantLongTerms.java b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantLongTerms.java index 2cedc09bbee1..d047d2612786 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantLongTerms.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/SignificantLongTerms.java @@ -53,7 +53,7 @@ public class SignificantLongTerms extends InternalMappedSignificantTerms (InternalAggregation) p) .collect(Collectors.toList()); aggs.add(new InternalSimpleValue(name(), sum, formatter, metadata())); - Bucket newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), new InternalAggregations(aggs)); + Bucket newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), InternalAggregations.from(aggs)); newBuckets.add(newBucket); } return factory.createAggregation(newBuckets); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/DerivativePipelineAggregator.java b/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/DerivativePipelineAggregator.java index f7d121aae9d5..6180804437a8 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/DerivativePipelineAggregator.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/DerivativePipelineAggregator.java @@ -73,7 +73,7 @@ public class DerivativePipelineAggregator extends PipelineAggregator { return (InternalAggregation) p; }).collect(Collectors.toList()); aggs.add(new InternalDerivative(name(), gradient, xDiff, formatter, metadata())); - Bucket newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), new InternalAggregations(aggs)); + Bucket newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), InternalAggregations.from(aggs)); newBuckets.add(newBucket); } else { newBuckets.add(bucket); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/MovFnPipelineAggregator.java b/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/MovFnPipelineAggregator.java index cf3dcea230a4..93c2f248a0a9 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/MovFnPipelineAggregator.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/MovFnPipelineAggregator.java @@ -122,7 +122,7 @@ public class MovFnPipelineAggregator extends PipelineAggregator { .map(InternalAggregation.class::cast) .collect(Collectors.toList()); aggs.add(new InternalSimpleValue(name(), movavg, formatter, metadata())); - newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), new InternalAggregations(aggs)); + newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), InternalAggregations.from(aggs)); index++; } newBuckets.add(newBucket); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffPipelineAggregator.java b/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffPipelineAggregator.java index b2e91dbe6160..cea84beb16b7 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffPipelineAggregator.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/SerialDiffPipelineAggregator.java @@ -89,7 +89,7 @@ public class SerialDiffPipelineAggregator extends PipelineAggregator { List aggs = StreamSupport.stream(bucket.getAggregations().spliterator(), false).map( (p) -> (InternalAggregation) p).collect(Collectors.toList()); aggs.add(new InternalSimpleValue(name(), diff, formatter, metadata())); - newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), new InternalAggregations(aggs)); + newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), InternalAggregations.from(aggs)); } newBuckets.add(newBucket); diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/SiblingPipelineAggregator.java b/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/SiblingPipelineAggregator.java index b5b3dcfd1cb3..791c48859084 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/SiblingPipelineAggregator.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/pipeline/SiblingPipelineAggregator.java @@ -37,7 +37,7 @@ public abstract class SiblingPipelineAggregator extends PipelineAggregator { return aggregation.copyWithRewritenBuckets(aggregations -> { List aggs = aggregations.copyResults(); aggs.add(doReduce(aggregations, reduceContext)); - return new InternalAggregations(aggs); + return InternalAggregations.from(aggs); }); } diff --git a/server/src/main/java/org/elasticsearch/search/internal/InternalSearchResponse.java b/server/src/main/java/org/elasticsearch/search/internal/InternalSearchResponse.java index 323c41c110f9..5cbdf92e00b7 100644 --- a/server/src/main/java/org/elasticsearch/search/internal/InternalSearchResponse.java +++ b/server/src/main/java/org/elasticsearch/search/internal/InternalSearchResponse.java @@ -52,7 +52,7 @@ public class InternalSearchResponse extends SearchResponseSections implements Wr public InternalSearchResponse(StreamInput in) throws IOException { super( new SearchHits(in), - in.readBoolean() ? new InternalAggregations(in) : null, + in.readBoolean() ? InternalAggregations.readFrom(in) : null, in.readBoolean() ? new Suggest(in) : null, in.readBoolean(), in.readOptionalBoolean(), diff --git a/server/src/main/java/org/elasticsearch/search/query/QuerySearchResult.java b/server/src/main/java/org/elasticsearch/search/query/QuerySearchResult.java index ed6f49d8fd94..826f9244e275 100644 --- a/server/src/main/java/org/elasticsearch/search/query/QuerySearchResult.java +++ b/server/src/main/java/org/elasticsearch/search/query/QuerySearchResult.java @@ -316,7 +316,7 @@ public final class QuerySearchResult extends SearchPhaseResult { } setTopDocs(readTopDocs(in)); if (hasAggs = in.readBoolean()) { - aggregations = DelayableWriteable.delayed(InternalAggregations::new, in); + aggregations = DelayableWriteable.delayed(InternalAggregations::readFrom, in); } if (in.readBoolean()) { suggest = new Suggest(in); diff --git a/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java b/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java index 481a907d4ebc..51b7efea3c6e 100644 --- a/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java +++ b/server/src/test/java/org/elasticsearch/action/search/SearchPhaseControllerTests.java @@ -396,7 +396,7 @@ public class SearchPhaseControllerTests extends ESTestCase { new SearchShardTarget("node", new ShardId("a", "b", 0), null, OriginalIndices.NONE)); result.topDocs(new TopDocsAndMaxScore(new TopDocs(new TotalHits(0, TotalHits.Relation.EQUAL_TO), new ScoreDoc[0]), Float.NaN), new DocValueFormat[0]); - InternalAggregations aggs = new InternalAggregations(singletonList(new InternalMax("test", 1.0D, DocValueFormat.RAW, emptyMap()))); + InternalAggregations aggs = InternalAggregations.from(singletonList(new InternalMax("test", 1.0D, DocValueFormat.RAW, emptyMap()))); result.aggregations(aggs); result.setShardIndex(0); consumer.consumeResult(result); @@ -405,7 +405,7 @@ public class SearchPhaseControllerTests extends ESTestCase { new SearchShardTarget("node", new ShardId("a", "b", 0), null, OriginalIndices.NONE)); result.topDocs(new TopDocsAndMaxScore(new TopDocs(new TotalHits(0, TotalHits.Relation.EQUAL_TO), new ScoreDoc[0]), Float.NaN), new DocValueFormat[0]); - aggs = new InternalAggregations(singletonList(new InternalMax("test", 3.0D, DocValueFormat.RAW, emptyMap()))); + aggs = InternalAggregations.from(singletonList(new InternalMax("test", 3.0D, DocValueFormat.RAW, emptyMap()))); result.aggregations(aggs); result.setShardIndex(2); consumer.consumeResult(result); @@ -414,7 +414,7 @@ public class SearchPhaseControllerTests extends ESTestCase { new SearchShardTarget("node", new ShardId("a", "b", 0), null, OriginalIndices.NONE)); result.topDocs(new TopDocsAndMaxScore(new TopDocs(new TotalHits(0, TotalHits.Relation.EQUAL_TO), new ScoreDoc[0]), Float.NaN), new DocValueFormat[0]); - aggs = new InternalAggregations(singletonList(new InternalMax("test", 2.0D, DocValueFormat.RAW, emptyMap()))); + aggs = InternalAggregations.from(singletonList(new InternalMax("test", 2.0D, DocValueFormat.RAW, emptyMap()))); result.aggregations(aggs); result.setShardIndex(1); consumer.consumeResult(result); @@ -483,7 +483,7 @@ public class SearchPhaseControllerTests extends ESTestCase { result.topDocs(new TopDocsAndMaxScore( new TopDocs(new TotalHits(1, TotalHits.Relation.EQUAL_TO), new ScoreDoc[] {new ScoreDoc(0, number)}), number), new DocValueFormat[0]); - InternalAggregations aggs = new InternalAggregations(Collections.singletonList(new InternalMax("test", (double) number, + InternalAggregations aggs = InternalAggregations.from(Collections.singletonList(new InternalMax("test", (double) number, DocValueFormat.RAW, Collections.emptyMap()))); result.aggregations(aggs); result.setShardIndex(id); @@ -526,7 +526,7 @@ public class SearchPhaseControllerTests extends ESTestCase { new SearchShardTarget("node", new ShardId("a", "b", i), null, OriginalIndices.NONE)); result.topDocs(new TopDocsAndMaxScore(new TopDocs(new TotalHits(1, TotalHits.Relation.EQUAL_TO), new ScoreDoc[0]), number), new DocValueFormat[0]); - InternalAggregations aggs = new InternalAggregations(Collections.singletonList(new InternalMax("test", (double) number, + InternalAggregations aggs = InternalAggregations.from(Collections.singletonList(new InternalMax("test", (double) number, DocValueFormat.RAW, Collections.emptyMap()))); result.aggregations(aggs); result.setShardIndex(i); @@ -878,7 +878,7 @@ public class SearchPhaseControllerTests extends ESTestCase { result.topDocs(new TopDocsAndMaxScore( new TopDocs(new TotalHits(1, TotalHits.Relation.EQUAL_TO), new ScoreDoc[]{new ScoreDoc(0, number)}), number), new DocValueFormat[0]); - InternalAggregations aggs = new InternalAggregations(Collections.singletonList( + InternalAggregations aggs = InternalAggregations.from(Collections.singletonList( new InternalMax("test", (double) number, DocValueFormat.RAW, Collections.emptyMap()))); result.aggregations(aggs); result.setShardIndex(id); diff --git a/server/src/test/java/org/elasticsearch/action/search/SearchResponseMergerTests.java b/server/src/test/java/org/elasticsearch/action/search/SearchResponseMergerTests.java index 978a4c2a77a1..1d32b10a0cc5 100644 --- a/server/src/test/java/org/elasticsearch/action/search/SearchResponseMergerTests.java +++ b/server/src/test/java/org/elasticsearch/action/search/SearchResponseMergerTests.java @@ -370,7 +370,7 @@ public class SearchResponseMergerTests extends ESTestCase { InternalDateRange.Bucket bucket = factory.createBucket("bucket", 0, 10000, count, InternalAggregations.EMPTY, false, DocValueFormat.RAW); InternalDateRange range = factory.create(rangeAggName, singletonList(bucket), DocValueFormat.RAW, false, emptyMap()); - InternalAggregations aggs = new InternalAggregations(Arrays.asList(range, max)); + InternalAggregations aggs = InternalAggregations.from(Arrays.asList(range, max)); SearchHits searchHits = new SearchHits(new SearchHit[0], null, Float.NaN); InternalSearchResponse internalSearchResponse = new InternalSearchResponse(searchHits, aggs, null, null, false, null, 1); SearchResponse searchResponse = new SearchResponse(internalSearchResponse, null, 1, 1, 0, randomLong(), 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 b656b9728f2e..bdf80d8aa944 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/AggregationsTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/AggregationsTests.java @@ -298,6 +298,6 @@ public class AggregationsTests extends ESTestCase { } aggs.add(testCase.createTestInstance()); } - return new InternalAggregations(aggs); + return InternalAggregations.from(aggs); } } diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java index a2e99a9ed1d9..a12fdc79ffe4 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/InternalAggregationsTests.java @@ -59,7 +59,7 @@ public class InternalAggregationsTests extends ESTestCase { public void testNonFinalReduceTopLevelPipelineAggs() { InternalAggregation terms = new StringTerms("name", BucketOrder.key(true), 10, 1, Collections.emptyMap(), DocValueFormat.RAW, 25, false, 10, Collections.emptyList(), 0); - List aggs = singletonList(new InternalAggregations(Collections.singletonList(terms))); + List aggs = singletonList(InternalAggregations.from(Collections.singletonList(terms))); InternalAggregations reducedAggs = InternalAggregations.topLevelReduce(aggs, maxBucketReduceContext().forPartialReduction()); assertEquals(1, reducedAggs.aggregations.size()); } @@ -68,7 +68,7 @@ public class InternalAggregationsTests extends ESTestCase { InternalAggregation terms = new StringTerms("name", BucketOrder.key(true), 10, 1, Collections.emptyMap(), DocValueFormat.RAW, 25, false, 10, Collections.emptyList(), 0); - InternalAggregations aggs = new InternalAggregations(Collections.singletonList(terms)); + InternalAggregations aggs = InternalAggregations.from(Collections.singletonList(terms)); InternalAggregations reducedAggs = InternalAggregations.topLevelReduce(Collections.singletonList(aggs), maxBucketReduceContext().forFinalReduction()); assertEquals(2, reducedAggs.aggregations.size()); @@ -98,7 +98,7 @@ public class InternalAggregationsTests extends ESTestCase { InternalSimpleValueTests simpleValueTests = new InternalSimpleValueTests(); aggsList.add(simpleValueTests.createTestInstance()); } - return new InternalAggregations(aggsList); + return InternalAggregations.from(aggsList); } public void testSerialization() throws Exception { @@ -113,7 +113,7 @@ public class InternalAggregationsTests extends ESTestCase { aggregations.writeTo(out); try (StreamInput in = new NamedWriteableAwareStreamInput(StreamInput.wrap(out.bytes().toBytesRef().bytes), registry)) { in.setVersion(version); - InternalAggregations deserialized = new InternalAggregations(in); + InternalAggregations deserialized = InternalAggregations.readFrom(in); assertEquals(aggregations.aggregations, deserialized.aggregations); if (iteration < 2) { writeToAndReadFrom(deserialized, iteration + 1); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/InternalMultiBucketAggregationTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/InternalMultiBucketAggregationTests.java index 47502f1eef07..0ad6b2b2c191 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/InternalMultiBucketAggregationTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/InternalMultiBucketAggregationTests.java @@ -42,7 +42,7 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { AggregationPath path = AggregationPath.parse("the_avg"); List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(agg)); LongTerms.Bucket bucket = new LongTerms.Bucket(1, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); @@ -55,7 +55,7 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { AggregationPath path = AggregationPath.parse("the_avg.value"); List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(agg)); LongTerms.Bucket bucket = new LongTerms.Bucket(1, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); @@ -68,7 +68,7 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { AggregationPath path = AggregationPath.parse("foo.value"); List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(agg)); LongTerms.Bucket bucket = new LongTerms.Bucket(1, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); @@ -82,7 +82,7 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { AggregationPath path = AggregationPath.parse("the_avg.unknown"); List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(agg)); LongTerms.Bucket bucket = new LongTerms.Bucket(1, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); @@ -96,7 +96,7 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { AggregationPath path = AggregationPath.parse("_bucket_count"); List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(agg)); LongTerms.Bucket bucket = new LongTerms.Bucket(1, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); @@ -109,7 +109,7 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { AggregationPath path = AggregationPath.parse("_count"); List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(agg)); LongTerms.Bucket bucket = new LongTerms.Bucket(1, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); @@ -122,7 +122,7 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { AggregationPath path = AggregationPath.parse("_key"); List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(agg)); LongTerms.Bucket bucket = new LongTerms.Bucket(19, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); @@ -136,14 +136,14 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalStringAggs = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalStringAggs = InternalAggregations.from(Collections.singletonList(agg)); List stringBuckets = Collections.singletonList(new StringTerms.Bucket( new BytesRef("foo".getBytes(StandardCharsets.UTF_8), 0, "foo".getBytes(StandardCharsets.UTF_8).length), 1, internalStringAggs, false, 0, DocValueFormat.RAW)); InternalTerms termsAgg = new StringTerms("string_terms", BucketOrder.count(false), 1, 0, Collections.emptyMap(), DocValueFormat.RAW, 1, false, 0, stringBuckets, 0); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(termsAgg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(termsAgg)); LongTerms.Bucket bucket = new LongTerms.Bucket(19, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); @@ -156,14 +156,14 @@ public class InternalMultiBucketAggregationTests extends ESTestCase { List buckets = new ArrayList<>(); InternalAggregation agg = new InternalAvg("the_avg", 2, 1, DocValueFormat.RAW, Collections.emptyMap()); - InternalAggregations internalStringAggs = new InternalAggregations(Collections.singletonList(agg)); + InternalAggregations internalStringAggs = InternalAggregations.from(Collections.singletonList(agg)); List stringBuckets = Collections.singletonList(new StringTerms.Bucket( new BytesRef("foo".getBytes(StandardCharsets.UTF_8), 0, "foo".getBytes(StandardCharsets.UTF_8).length), 1, internalStringAggs, false, 0, DocValueFormat.RAW)); InternalTerms termsAgg = new StringTerms("string_terms", BucketOrder.count(false), 1, 0, Collections.emptyMap(), DocValueFormat.RAW, 1, false, 0, stringBuckets, 0); - InternalAggregations internalAggregations = new InternalAggregations(Collections.singletonList(termsAgg)); + InternalAggregations internalAggregations = InternalAggregations.from(Collections.singletonList(termsAgg)); LongTerms.Bucket bucket = new LongTerms.Bucket(19, 1, internalAggregations, false, 0, DocValueFormat.RAW); buckets.add(bucket); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFilterTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFilterTests.java index 91f2c87f2a6e..d15e91f88f32 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFilterTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFilterTests.java @@ -64,7 +64,7 @@ public class InternalFilterTests extends InternalSingleBucketAggregationTestCase InternalFilter dummy = createTestInstance(); InternalFilter inner = createTestInstance(); - InternalAggregations sub = new InternalAggregations(List.of(inner)); + InternalAggregations sub = InternalAggregations.from(List.of(inner)); InternalFilter test = createTestInstance("test", randomNonNegativeLong(), sub, emptyMap()); PipelineAggregator mockPipeline = new PipelineAggregator(null, null, null) { @Override diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFiltersTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFiltersTests.java index ffd8a39f9a4a..41ab169f4e44 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFiltersTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/filter/InternalFiltersTests.java @@ -131,7 +131,7 @@ public class InternalFiltersTests extends InternalMultiBucketAggregationTestCase InternalFilters dummy = createTestInstance(); InternalFilters inner = createTestInstance(); - InternalAggregations sub = new InternalAggregations(List.of(inner)); + InternalAggregations sub = InternalAggregations.from(List.of(inner)); InternalFilters test = createTestInstance("test", emptyMap(), sub); PipelineAggregator mockPipeline = new PipelineAggregator(null, null, null) { @Override diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java index 2d2cab2d7333..5e254bd690d0 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/bucket/histogram/InternalAutoDateHistogramTests.java @@ -37,14 +37,12 @@ import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.concurrent.TimeUnit; -import static java.util.Collections.emptyList; import static java.util.Collections.emptyMap; import static java.util.stream.Collectors.toList; import static org.hamcrest.Matchers.empty; @@ -73,8 +71,7 @@ public class InternalAutoDateHistogramTests extends InternalMultiBucketAggregati long key = startingDate + (intervalMillis * i); buckets.add(i, new InternalAutoDateHistogram.Bucket(key, randomIntBetween(1, 100), format, aggregations)); } - InternalAggregations subAggregations = new InternalAggregations(Collections.emptyList()); - BucketInfo bucketInfo = new BucketInfo(roundingInfos, roundingIndex, subAggregations); + BucketInfo bucketInfo = new BucketInfo(roundingInfos, roundingIndex, InternalAggregations.EMPTY); return new InternalAutoDateHistogram(name, buckets, targetBuckets, bucketInfo, format, metadata, 1); } @@ -360,7 +357,7 @@ public class InternalAutoDateHistogramTests extends InternalMultiBucketAggregati ReduceTestBuilder bucket(String key, long docCount) { buckets.add(new InternalAutoDateHistogram.Bucket( - utcMillis(key), docCount, FORMAT, new InternalAggregations(emptyList()))); + utcMillis(key), docCount, FORMAT, InternalAggregations.EMPTY)); return this; } @@ -376,7 +373,7 @@ public class InternalAutoDateHistogramTests extends InternalMultiBucketAggregati assertThat("rounding [" + whichRounding + "] should be in " + Arrays.toString(roundings), roundingIdx, greaterThan(-1)); assertTrue(Arrays.toString(roundings[roundingIdx].innerIntervals) + " must contain " + innerInterval, Arrays.binarySearch(roundings[roundingIdx].innerIntervals, innerInterval) >= 0); - BucketInfo bucketInfo = new BucketInfo(roundings, roundingIdx, new InternalAggregations(emptyList())); + BucketInfo bucketInfo = new BucketInfo(roundings, roundingIdx, InternalAggregations.EMPTY); results.add(new InternalAutoDateHistogram("test", new ArrayList<>(buckets), targetBuckets, bucketInfo, FORMAT, emptyMap(), innerInterval)); buckets.clear(); diff --git a/test/framework/src/main/java/org/elasticsearch/search/aggregations/InternalSingleBucketAggregationTestCase.java b/test/framework/src/main/java/org/elasticsearch/search/aggregations/InternalSingleBucketAggregationTestCase.java index 2901d8081227..4af7de4f61d0 100644 --- a/test/framework/src/main/java/org/elasticsearch/search/aggregations/InternalSingleBucketAggregationTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/search/aggregations/InternalSingleBucketAggregationTestCase.java @@ -62,7 +62,7 @@ public abstract class InternalSingleBucketAggregationTestCase aggs = new ArrayList<>(); aggs.add(new InternalMax("new_max", randomDouble(), randomNumericDocValueFormat(), emptyMap())); aggs.add(new InternalMin("new_min", randomDouble(), randomNumericDocValueFormat(), emptyMap())); - aggregations = new InternalAggregations(aggs); + aggregations = InternalAggregations.from(aggs); break; case 3: default: diff --git a/test/framework/src/main/java/org/elasticsearch/test/InternalMultiBucketAggregationTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/InternalMultiBucketAggregationTestCase.java index ec8204b362ae..44358c666fad 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/InternalMultiBucketAggregationTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/InternalMultiBucketAggregationTestCase.java @@ -78,7 +78,7 @@ public abstract class InternalMultiBucketAggregationTestCase (InternalAggregation) p) .collect(Collectors.toList()); aggs.add(new InternalSimpleLongValue(name(), cardinality, formatter, metadata())); - Bucket newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), new InternalAggregations(aggs)); + Bucket newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), InternalAggregations.from(aggs)); newBuckets.add(newBucket); } return factory.createAggregation(newBuckets); diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/movingPercentiles/MovingPercentilesPipelineAggregator.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/movingPercentiles/MovingPercentilesPipelineAggregator.java index 3d96dbd1c151..8eecd627e17a 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/movingPercentiles/MovingPercentilesPipelineAggregator.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/movingPercentiles/MovingPercentilesPipelineAggregator.java @@ -106,7 +106,7 @@ public class MovingPercentilesPipelineAggregator extends PipelineAggregator { .map((p) -> (InternalAggregation) p) .collect(Collectors.toList()); aggs.add(new InternalTDigestPercentiles(name(), config.keys, state, config.keyed, config.formatter, metadata())); - newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), new InternalAggregations(aggs)); + newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), InternalAggregations.from(aggs)); } newBuckets.add(newBucket); index++; @@ -152,7 +152,7 @@ public class MovingPercentilesPipelineAggregator extends PipelineAggregator { .map((p) -> (InternalAggregation) p) .collect(Collectors.toList()); aggs.add(new InternalHDRPercentiles(name(), config.keys, state, config.keyed, config.formatter, metadata())); - newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), new InternalAggregations(aggs)); + newBucket = factory.createBucket(factory.getKey(bucket), bucket.getDocCount(), InternalAggregations.from(aggs)); } newBuckets.add(newBucket); index++; diff --git a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/normalize/NormalizePipelineAggregator.java b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/normalize/NormalizePipelineAggregator.java index cf18c49e7c81..e831700f1335 100644 --- a/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/normalize/NormalizePipelineAggregator.java +++ b/x-pack/plugin/analytics/src/main/java/org/elasticsearch/xpack/analytics/normalize/NormalizePipelineAggregator.java @@ -67,7 +67,7 @@ public class NormalizePipelineAggregator extends PipelineAggregator { .map((p) -> (InternalAggregation) p) .collect(Collectors.toList()); aggs.add(new InternalSimpleValue(name(), normalizedBucketValue, formatter, metadata())); - InternalMultiBucketAggregation.InternalBucket newBucket = originalAgg.createBucket(new InternalAggregations(aggs), bucket); + InternalMultiBucketAggregation.InternalBucket newBucket = originalAgg.createBucket(InternalAggregations.from(aggs), bucket); newBuckets.add(newBucket); } diff --git a/x-pack/plugin/rollup/src/main/java/org/elasticsearch/xpack/rollup/RollupResponseTranslator.java b/x-pack/plugin/rollup/src/main/java/org/elasticsearch/xpack/rollup/RollupResponseTranslator.java index ffbbf86cb486..9f49a4352a7c 100644 --- a/x-pack/plugin/rollup/src/main/java/org/elasticsearch/xpack/rollup/RollupResponseTranslator.java +++ b/x-pack/plugin/rollup/src/main/java/org/elasticsearch/xpack/rollup/RollupResponseTranslator.java @@ -5,8 +5,6 @@ */ package org.elasticsearch.xpack.rollup; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.apache.lucene.util.BytesRef; import org.elasticsearch.ResourceNotFoundException; import org.elasticsearch.action.search.MultiSearchResponse; @@ -41,7 +39,6 @@ import org.elasticsearch.xpack.core.rollup.RollupField; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -57,8 +54,6 @@ import java.util.stream.Collectors; */ public class RollupResponseTranslator { - private static final Logger logger = LogManager.getLogger(RollupResponseTranslator.class); - /** * Verifies a live-only search response. Essentially just checks for failure then returns * the response since we have no work to do @@ -272,7 +267,7 @@ public class RollupResponseTranslator { // The combination process returns a tree that is identical to the non-rolled // which means we can use aggregation's reduce method to combine, just as if // it was a result from another shard - InternalAggregations currentTree = new InternalAggregations(Collections.emptyList()); + InternalAggregations currentTree = InternalAggregations.EMPTY; InternalAggregation.ReduceContext finalReduceContext = InternalAggregation.ReduceContext.forFinalReduction( reduceContext.bigArrays(), reduceContext.scriptService(), b -> {}, PipelineTree.EMPTY); for (SearchResponse rolledResponse : rolledResponses) { @@ -291,7 +286,7 @@ public class RollupResponseTranslator { // Iteratively merge in each new set of unrolled aggs, so that we can identify/fix overlapping doc_counts // in the next round of unrolling - InternalAggregations finalUnrolledAggs = new InternalAggregations(unrolledAggs); + InternalAggregations finalUnrolledAggs = InternalAggregations.from(unrolledAggs); currentTree = InternalAggregations.reduce(Arrays.asList(currentTree, finalUnrolledAggs), finalReduceContext); } @@ -505,7 +500,7 @@ public class RollupResponseTranslator { */ private static InternalAggregations unrollSubAggsFromMulti(InternalBucket bucket, InternalBucket original, InternalBucket currentTree) { // Iterate over the subAggs in each bucket - return new InternalAggregations(bucket.getAggregations() + return InternalAggregations.from(bucket.getAggregations() .asList().stream() // Avoid any rollup count metrics, as that's not a true "sub-agg" but rather agg // added by the rollup for accounting purposes (e.g. doc_count) diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupResponseTranslationTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupResponseTranslationTests.java index b6a11f4e4bd7..e4800e49e7b2 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupResponseTranslationTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/RollupResponseTranslationTests.java @@ -162,11 +162,11 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { when(count.getType()).thenReturn(SumAggregationBuilder.NAME); subaggs.add(count); - when(filter.getAggregations()).thenReturn(new InternalAggregations(subaggs)); + when(filter.getAggregations()).thenReturn(InternalAggregations.from(subaggs)); when(filter.getName()).thenReturn("filter_foo"); aggTree.add(filter); - Aggregations mockAggsWithout = new InternalAggregations(aggTree); + Aggregations mockAggsWithout = InternalAggregations.from(aggTree); when(responseWithout.getAggregations()).thenReturn(mockAggsWithout); MultiSearchResponse.Item[] msearch = new MultiSearchResponse.Item[]{ @@ -186,8 +186,7 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { SearchResponse responseWithout = mock(SearchResponse.class); when(responseWithout.getTook()).thenReturn(new TimeValue(100)); - Aggregations mockAggsWithout = new InternalAggregations(Collections.emptyList()); - when(responseWithout.getAggregations()).thenReturn(mockAggsWithout); + when(responseWithout.getAggregations()).thenReturn(InternalAggregations.EMPTY); MultiSearchResponse.Item[] msearch = new MultiSearchResponse.Item[]{ new MultiSearchResponse.Item(responseWithout, null)}; @@ -258,11 +257,11 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { when(count.getType()).thenReturn(SumAggregationBuilder.NAME); subaggs.add(count); - when(filter.getAggregations()).thenReturn(new InternalAggregations(subaggs)); + when(filter.getAggregations()).thenReturn(InternalAggregations.from(subaggs)); when(filter.getName()).thenReturn("filter_foo"); aggTree.add(filter); - Aggregations mockAggs = new InternalAggregations(aggTree); + Aggregations mockAggs = InternalAggregations.from(aggTree); when(response.getAggregations()).thenReturn(mockAggs); MultiSearchResponse.Item item = new MultiSearchResponse.Item(response, null); @@ -298,7 +297,7 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { InternalMax protoMax = mock(InternalMax.class); when(protoMax.getName()).thenReturn("foo"); protoAggTree.add(protoMax); - Aggregations protoMockAggs = new InternalAggregations(protoAggTree); + Aggregations protoMockAggs = InternalAggregations.from(protoAggTree); when(protoResponse.getAggregations()).thenReturn(protoMockAggs); MultiSearchResponse.Item unrolledResponse = new MultiSearchResponse.Item(protoResponse, null); @@ -307,7 +306,7 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { InternalMax max = mock(InternalMax.class); when(max.getName()).thenReturn("bizzbuzz"); aggTreeWithoutFilter.add(max); - Aggregations mockAggsWithout = new InternalAggregations(aggTreeWithoutFilter); + Aggregations mockAggsWithout = InternalAggregations.from(aggTreeWithoutFilter); when(responseWithout.getAggregations()).thenReturn(mockAggsWithout); MultiSearchResponse.Item rolledResponse = new MultiSearchResponse.Item(responseWithout, null); @@ -328,7 +327,7 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { InternalMax protoMax = mock(InternalMax.class); when(protoMax.getName()).thenReturn("foo"); protoAggTree.add(protoMax); - Aggregations protoMockAggs = new InternalAggregations(protoAggTree); + Aggregations protoMockAggs = InternalAggregations.from(protoAggTree); when(protoResponse.getAggregations()).thenReturn(protoMockAggs); MultiSearchResponse.Item unrolledResponse = new MultiSearchResponse.Item(protoResponse, null); @@ -336,7 +335,7 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { List aggTreeWithoutFilter = new ArrayList<>(1); InternalMax max = new InternalMax("filter_foo", 0, DocValueFormat.RAW, null); aggTreeWithoutFilter.add(max); - Aggregations mockAggsWithout = new InternalAggregations(aggTreeWithoutFilter); + Aggregations mockAggsWithout = InternalAggregations.from(aggTreeWithoutFilter); when(responseWithout.getAggregations()).thenReturn(mockAggsWithout); MultiSearchResponse.Item rolledResponse = new MultiSearchResponse.Item(responseWithout, null); @@ -358,7 +357,7 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { List protoAggTree = new ArrayList<>(1); InternalAvg internalAvg = new InternalAvg("foo", 10, 2, DocValueFormat.RAW, null); protoAggTree.add(internalAvg); - Aggregations protoMockAggs = new InternalAggregations(protoAggTree); + Aggregations protoMockAggs = InternalAggregations.from(protoAggTree); when(protoResponse.getAggregations()).thenReturn(protoMockAggs); MultiSearchResponse.Item unrolledResponse = new MultiSearchResponse.Item(protoResponse, null); @@ -386,11 +385,11 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { when(count.getType()).thenReturn(SumAggregationBuilder.NAME); subaggs.add(count); - when(filter.getAggregations()).thenReturn(new InternalAggregations(subaggs)); + when(filter.getAggregations()).thenReturn(InternalAggregations.from(subaggs)); when(filter.getName()).thenReturn("filter_foo"); aggTree.add(filter); - Aggregations mockAggsWithout = new InternalAggregations(aggTree); + Aggregations mockAggsWithout = InternalAggregations.from(aggTree); when(responseWithout.getAggregations()).thenReturn(mockAggsWithout); MultiSearchResponse.Item rolledResponse = new MultiSearchResponse.Item(responseWithout, null); @@ -495,11 +494,11 @@ public class RollupResponseTranslationTests extends AggregatorTestCase { // TODO SearchResponse.Clusters is not public, using null for now. Should fix upstream. MultiSearchResponse.Item unrolledItem = new MultiSearchResponse.Item(new SearchResponse( new InternalSearchResponse(null, - new InternalAggregations(Collections.singletonList(responses.get(0))), null, null, false, false, 1), + InternalAggregations.from(Collections.singletonList(responses.get(0))), null, null, false, false, 1), null, 1, 1, 0, 10, null, null), null); MultiSearchResponse.Item rolledItem = new MultiSearchResponse.Item(new SearchResponse( new InternalSearchResponse(null, - new InternalAggregations(Collections.singletonList(responses.get(1))), null, null, false, false, 1), + InternalAggregations.from(Collections.singletonList(responses.get(1))), null, null, false, false, 1), null, 1, 1, 0, 10, null, null), null); MultiSearchResponse.Item[] msearch = new MultiSearchResponse.Item[]{unrolledItem, rolledItem}; diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java index ba93ad1e97ee..7c5a71323e24 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/action/SearchActionTests.java @@ -652,11 +652,11 @@ public class SearchActionTests extends ESTestCase { when(count.getType()).thenReturn(SumAggregationBuilder.NAME); subaggs.add(count); - when(filter.getAggregations()).thenReturn(new InternalAggregations(subaggs)); + when(filter.getAggregations()).thenReturn(InternalAggregations.from(subaggs)); when(filter.getName()).thenReturn("filter_foo"); aggTree.add(filter); - Aggregations mockAggs = new InternalAggregations(aggTree); + Aggregations mockAggs = InternalAggregations.from(aggTree); when(response.getAggregations()).thenReturn(mockAggs); MultiSearchResponse.Item item = new MultiSearchResponse.Item(response, null); MultiSearchResponse msearchResponse = new MultiSearchResponse(new MultiSearchResponse.Item[]{item}, 1); @@ -736,7 +736,7 @@ public class SearchActionTests extends ESTestCase { List protoAggTree = new ArrayList<>(1); InternalAvg internalAvg = new InternalAvg("foo", 10, 2, DocValueFormat.RAW, null); protoAggTree.add(internalAvg); - Aggregations protoMockAggs = new InternalAggregations(protoAggTree); + Aggregations protoMockAggs = InternalAggregations.from(protoAggTree); when(protoResponse.getAggregations()).thenReturn(protoMockAggs); MultiSearchResponse.Item unrolledResponse = new MultiSearchResponse.Item(protoResponse, null); @@ -764,11 +764,11 @@ public class SearchActionTests extends ESTestCase { when(count.getType()).thenReturn(SumAggregationBuilder.NAME); subaggs.add(count); - when(filter.getAggregations()).thenReturn(new InternalAggregations(subaggs)); + when(filter.getAggregations()).thenReturn(InternalAggregations.from(subaggs)); when(filter.getName()).thenReturn("filter_foo"); aggTree.add(filter); - Aggregations mockAggsWithout = new InternalAggregations(aggTree); + Aggregations mockAggsWithout = InternalAggregations.from(aggTree); when(responseWithout.getAggregations()).thenReturn(mockAggsWithout); MultiSearchResponse.Item rolledResponse = new MultiSearchResponse.Item(responseWithout, null); diff --git a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/job/RollupIndexerStateTests.java b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/job/RollupIndexerStateTests.java index a8f7acf51d04..d193820596ef 100644 --- a/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/job/RollupIndexerStateTests.java +++ b/x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/job/RollupIndexerStateTests.java @@ -622,7 +622,7 @@ public class RollupIndexerStateTests extends ESTestCase { @Override public Aggregations getAggregations() { - return new InternalAggregations(Collections.emptyList()); + return InternalAggregations.EMPTY; } @Override @@ -735,7 +735,7 @@ public class RollupIndexerStateTests extends ESTestCase { @Override public Aggregations getAggregations() { - return new InternalAggregations(Collections.emptyList()); + return InternalAggregations.EMPTY; } @Override @@ -892,7 +892,7 @@ public class RollupIndexerStateTests extends ESTestCase { @Override public Aggregations getAggregations() { - return new InternalAggregations(Collections.emptyList()); + return InternalAggregations.EMPTY; } @Override