summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNik Everett <nik9000@gmail.com>2016-04-15 13:59:20 -0400
committerNik Everett <nik9000@gmail.com>2016-04-18 08:19:08 -0400
commit070b78517e4edd60d06c8f14c27a9644bd008a0a (patch)
treeb98403a98d9df11bfdd8389627bb693412e895c5
parent6e4273ae0b1d3dfdc0fdd3c470b13c57a5b99a4c (diff)
Cut stats_bucket and extended_stats_bucket to registerPipelineAggregation
and remove their PROTOTYPE. Relates to #17085
-rw-r--r--core/src/main/java/org/elasticsearch/search/SearchModule.java9
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/pipeline/PipelineAggregatorBuilder.java1
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/BucketMetricsPipelineAggregatorBuilder.java59
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketParser.java42
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketPipelineAggregatorBuilder.java52
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketParser.java10
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketPipelineAggregatorBuilder.java44
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/pipeline/derivative/DerivativePipelineAggregatorBuilder.java4
8 files changed, 108 insertions, 113 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/SearchModule.java b/core/src/main/java/org/elasticsearch/search/SearchModule.java
index 06b09e6e74..0f9e55a4ae 100644
--- a/core/src/main/java/org/elasticsearch/search/SearchModule.java
+++ b/core/src/main/java/org/elasticsearch/search/SearchModule.java
@@ -198,10 +198,11 @@ import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.min.MinBucke
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.min.MinBucketPipelineAggregator;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.percentile.PercentilesBucketParser;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.percentile.PercentilesBucketPipelineAggregator;
-import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats.StatsBucketParser;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats.StatsBucketPipelineAggregator;
+import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats.StatsBucketPipelineAggregatorBuilder;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats.extended.ExtendedStatsBucketParser;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats.extended.ExtendedStatsBucketPipelineAggregator;
+import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats.extended.ExtendedStatsBucketPipelineAggregatorBuilder;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.sum.SumBucketParser;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.sum.SumBucketPipelineAggregator;
import org.elasticsearch.search.aggregations.pipeline.bucketscript.BucketScriptParser;
@@ -501,8 +502,10 @@ public class SearchModule extends AbstractModule {
registerPipelineParser(new MinBucketParser());
registerPipelineParser(new AvgBucketParser());
registerPipelineParser(new SumBucketParser());
- registerPipelineParser(new StatsBucketParser());
- registerPipelineParser(new ExtendedStatsBucketParser());
+ registerPipelineAggregation(StatsBucketPipelineAggregatorBuilder::new, StatsBucketPipelineAggregatorBuilder.PARSER,
+ StatsBucketPipelineAggregatorBuilder.AGGREGATION_NAME_FIELD);
+ registerPipelineAggregation(ExtendedStatsBucketPipelineAggregatorBuilder::new, new ExtendedStatsBucketParser(),
+ ExtendedStatsBucketPipelineAggregatorBuilder.AGGREGATION_NAME_FIELD);
registerPipelineParser(new PercentilesBucketParser());
registerPipelineParser(new MovAvgParser(movAvgModelParserMapper));
registerPipelineParser(new CumulativeSumParser());
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/PipelineAggregatorBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/PipelineAggregatorBuilder.java
index 9e94341223..08e1b19ca0 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/PipelineAggregatorBuilder.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/PipelineAggregatorBuilder.java
@@ -163,6 +163,7 @@ public abstract class PipelineAggregatorBuilder<PAB extends PipelineAggregatorBu
@Override
public String getWriteableName() {
+ assert false == usesNewStyleSerialization() : "Migrated aggregations should just return NAME";
return type;
}
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/BucketMetricsPipelineAggregatorBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/BucketMetricsPipelineAggregatorBuilder.java
index c28ebed7a7..a3eeed6b5d 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/BucketMetricsPipelineAggregatorBuilder.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/BucketMetricsPipelineAggregatorBuilder.java
@@ -39,11 +39,48 @@ public abstract class BucketMetricsPipelineAggregatorBuilder<AF extends BucketMe
private String format = null;
private GapPolicy gapPolicy = GapPolicy.SKIP;
- public BucketMetricsPipelineAggregatorBuilder(String name, String type, String[] bucketsPaths) {
+ protected BucketMetricsPipelineAggregatorBuilder(String name, String type, String[] bucketsPaths) {
super(name, type, bucketsPaths);
}
/**
+ * Read from a stream.
+ */
+ protected BucketMetricsPipelineAggregatorBuilder(StreamInput in, String type) throws IOException {
+ super(in, type);
+ format = in.readOptionalString();
+ gapPolicy = GapPolicy.readFrom(in);
+ }
+
+ @Override
+ protected final void doWriteTo(StreamOutput out) throws IOException {
+ if (false == usesNewStyleSerialization()) {
+ innerWriteTo(out);
+ }
+ out.writeOptionalString(format);
+ gapPolicy.writeTo(out);
+ if (usesNewStyleSerialization()) {
+ innerWriteTo(out);
+ }
+ }
+
+ protected abstract void innerWriteTo(StreamOutput out) throws IOException;
+
+ @Override
+ protected final PipelineAggregatorBuilder<AF> doReadFrom(String name, String[] bucketsPaths, StreamInput in) throws IOException {
+ BucketMetricsPipelineAggregatorBuilder<AF> factory = innerReadFrom(name, bucketsPaths, in);
+ factory.format = in.readOptionalString();
+ factory.gapPolicy = GapPolicy.readFrom(in);
+ return factory;
+ }
+
+ protected BucketMetricsPipelineAggregatorBuilder<AF> innerReadFrom(String name, String[] bucketsPaths, StreamInput in)
+ throws IOException {
+ throw new UnsupportedOperationException(); // NORELEASE remove before 5.0.0 GA
+ }
+
+
+ /**
* Sets the format to use on the output of this aggregation.
*/
@SuppressWarnings("unchecked")
@@ -110,26 +147,6 @@ public abstract class BucketMetricsPipelineAggregatorBuilder<AF extends BucketMe
protected abstract XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException;
@Override
- protected final PipelineAggregatorBuilder<AF> doReadFrom(String name, String[] bucketsPaths, StreamInput in) throws IOException {
- BucketMetricsPipelineAggregatorBuilder<AF> factory = innerReadFrom(name, bucketsPaths, in);
- factory.format = in.readOptionalString();
- factory.gapPolicy = GapPolicy.readFrom(in);
- return factory;
- }
-
- protected abstract BucketMetricsPipelineAggregatorBuilder<AF> innerReadFrom(String name, String[] bucketsPaths, StreamInput in)
- throws IOException;
-
- @Override
- protected final void doWriteTo(StreamOutput out) throws IOException {
- innerWriteTo(out);
- out.writeOptionalString(format);
- gapPolicy.writeTo(out);
- }
-
- protected abstract void innerWriteTo(StreamOutput out) throws IOException;
-
- @Override
protected final int doHashCode() {
return Objects.hash(format, gapPolicy, innerHashCode());
}
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketParser.java
deleted file mode 100644
index dd4215618d..0000000000
--- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketParser.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to Elasticsearch under one or more contributor
- * license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright
- * ownership. Elasticsearch licenses this file to you under
- * the Apache License, Version 2.0 (the "License"); you may
- * not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats;
-
-import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.BucketMetricsParser;
-
-import java.util.Map;
-
-public class StatsBucketParser extends BucketMetricsParser {
- @Override
- public String type() {
- return StatsBucketPipelineAggregator.TYPE.name();
- }
-
- @Override
- protected StatsBucketPipelineAggregatorBuilder buildFactory(String pipelineAggregatorName,
- String bucketsPath, Map<String, Object> unparsedParams) {
- return new StatsBucketPipelineAggregatorBuilder(pipelineAggregatorName, bucketsPath);
- }
-
- @Override
- public StatsBucketPipelineAggregatorBuilder getFactoryPrototype() {
- return StatsBucketPipelineAggregatorBuilder.PROTOTYPE;
- }
-}
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketPipelineAggregatorBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketPipelineAggregatorBuilder.java
index 91fe885f93..37ba5e3c1f 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketPipelineAggregatorBuilder.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/StatsBucketPipelineAggregatorBuilder.java
@@ -19,30 +19,45 @@
package org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats;
+import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.search.aggregations.AggregatorFactory;
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
-import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorBuilder;
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.Parser;
+import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorBuilder;
+import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.BucketMetricsParser;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.BucketMetricsPipelineAggregatorBuilder;
import java.io.IOException;
import java.util.List;
import java.util.Map;
-public class StatsBucketPipelineAggregatorBuilder
- extends BucketMetricsPipelineAggregatorBuilder<StatsBucketPipelineAggregatorBuilder> {
-
- static final StatsBucketPipelineAggregatorBuilder PROTOTYPE = new StatsBucketPipelineAggregatorBuilder("", "");
+public class StatsBucketPipelineAggregatorBuilder extends BucketMetricsPipelineAggregatorBuilder<StatsBucketPipelineAggregatorBuilder> {
+ public static final String NAME = StatsBucketPipelineAggregator.TYPE.name();
+ public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
public StatsBucketPipelineAggregatorBuilder(String name, String bucketsPath) {
- this(name, new String[] { bucketsPath });
+ super(name, StatsBucketPipelineAggregator.TYPE.name(), new String[] { bucketsPath });
+ }
+
+ /**
+ * Read from a stream.
+ */
+ public StatsBucketPipelineAggregatorBuilder(StreamInput in)
+ throws IOException {
+ super(in, StatsBucketPipelineAggregator.TYPE.name());
}
- private StatsBucketPipelineAggregatorBuilder(String name, String[] bucketsPaths) {
- super(name, StatsBucketPipelineAggregator.TYPE.name(), bucketsPaths);
+ @Override
+ protected void innerWriteTo(StreamOutput out) throws IOException {
+ // Do nothing, no extra state to write to stream
+ }
+
+ @Override
+ protected boolean usesNewStyleSerialization() {
+ return true;
}
@Override
@@ -64,16 +79,13 @@ public class StatsBucketPipelineAggregatorBuilder
return builder;
}
- @Override
- protected StatsBucketPipelineAggregatorBuilder innerReadFrom(String name, String[] bucketsPaths, StreamInput in)
- throws IOException {
- return new StatsBucketPipelineAggregatorBuilder(name, bucketsPaths);
- }
-
- @Override
- protected void innerWriteTo(StreamOutput out) throws IOException {
- // Do nothing, no extra state to write to stream
- }
+ public static final PipelineAggregator.Parser PARSER = new BucketMetricsParser() {
+ @Override
+ protected StatsBucketPipelineAggregatorBuilder buildFactory(String pipelineAggregatorName,
+ String bucketsPath, Map<String, Object> unparsedParams) {
+ return new StatsBucketPipelineAggregatorBuilder(pipelineAggregatorName, bucketsPath);
+ }
+ };
@Override
protected int innerHashCode() {
@@ -85,4 +97,8 @@ public class StatsBucketPipelineAggregatorBuilder
return true;
}
+ @Override
+ public String getWriteableName() {
+ return NAME;
+ }
} \ No newline at end of file
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketParser.java
index 996adfd649..698af21387 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketParser.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketParser.java
@@ -29,11 +29,6 @@ public class ExtendedStatsBucketParser extends BucketMetricsParser {
static final ParseField SIGMA = new ParseField("sigma");
@Override
- public String type() {
- return ExtendedStatsBucketPipelineAggregator.TYPE.name();
- }
-
- @Override
protected ExtendedStatsBucketPipelineAggregatorBuilder buildFactory(String pipelineAggregatorName,
String bucketsPath, Map<String, Object> unparsedParams) throws ParseException {
@@ -56,9 +51,4 @@ public class ExtendedStatsBucketParser extends BucketMetricsParser {
}
return factory;
}
-
- @Override
- public ExtendedStatsBucketPipelineAggregatorBuilder getFactoryPrototype() {
- return ExtendedStatsBucketPipelineAggregatorBuilder.PROTOTYPE;
- }
}
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketPipelineAggregatorBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketPipelineAggregatorBuilder.java
index 6121a49d13..8856def674 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketPipelineAggregatorBuilder.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/stats/extended/ExtendedStatsBucketPipelineAggregatorBuilder.java
@@ -19,13 +19,14 @@
package org.elasticsearch.search.aggregations.pipeline.bucketmetrics.stats.extended;
+import org.elasticsearch.common.ParseField;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.search.aggregations.AggregatorFactory;
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator;
-import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorBuilder;
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator.Parser;
+import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorBuilder;
import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.BucketMetricsPipelineAggregatorBuilder;
import java.io.IOException;
@@ -35,17 +36,31 @@ import java.util.Objects;
public class ExtendedStatsBucketPipelineAggregatorBuilder
extends BucketMetricsPipelineAggregatorBuilder<ExtendedStatsBucketPipelineAggregatorBuilder> {
-
- static final ExtendedStatsBucketPipelineAggregatorBuilder PROTOTYPE = new ExtendedStatsBucketPipelineAggregatorBuilder("", "");
+ public static final String NAME = ExtendedStatsBucketPipelineAggregator.TYPE.name();
+ public static final ParseField AGGREGATION_NAME_FIELD = new ParseField(NAME);
private double sigma = 2.0;
public ExtendedStatsBucketPipelineAggregatorBuilder(String name, String bucketsPath) {
- this(name, new String[] { bucketsPath });
+ super(name, ExtendedStatsBucketPipelineAggregator.TYPE.name(), new String[] { bucketsPath });
+ }
+
+ /**
+ * Read from a stream.
+ */
+ public ExtendedStatsBucketPipelineAggregatorBuilder(StreamInput in) throws IOException {
+ super(in, ExtendedStatsBucketPipelineAggregator.TYPE.name());
+ sigma = in.readDouble();
}
- private ExtendedStatsBucketPipelineAggregatorBuilder(String name, String[] bucketsPaths) {
- super(name, ExtendedStatsBucketPipelineAggregator.TYPE.name(), bucketsPaths);
+ @Override
+ protected void innerWriteTo(StreamOutput out) throws IOException {
+ out.writeDouble(sigma);
+ }
+
+ @Override
+ protected boolean usesNewStyleSerialization() {
+ return true;
}
/**
@@ -94,19 +109,6 @@ public class ExtendedStatsBucketPipelineAggregatorBuilder
}
@Override
- protected ExtendedStatsBucketPipelineAggregatorBuilder innerReadFrom(String name, String[] bucketsPaths, StreamInput in)
- throws IOException {
- ExtendedStatsBucketPipelineAggregatorBuilder factory = new ExtendedStatsBucketPipelineAggregatorBuilder(name, bucketsPaths);
- factory.sigma = in.readDouble();
- return factory;
- }
-
- @Override
- protected void innerWriteTo(StreamOutput out) throws IOException {
- out.writeDouble(sigma);
- }
-
- @Override
protected int innerHashCode() {
return Objects.hash(sigma);
}
@@ -117,4 +119,8 @@ public class ExtendedStatsBucketPipelineAggregatorBuilder
return Objects.equals(sigma, other.sigma);
}
+ @Override
+ public String getWriteableName() {
+ return NAME;
+ }
} \ No newline at end of file
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/derivative/DerivativePipelineAggregatorBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/derivative/DerivativePipelineAggregatorBuilder.java
index 01238b48d5..65d1168107 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/derivative/DerivativePipelineAggregatorBuilder.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/derivative/DerivativePipelineAggregatorBuilder.java
@@ -273,4 +273,8 @@ public class DerivativePipelineAggregatorBuilder extends PipelineAggregatorBuild
return Objects.hash(format, gapPolicy, units);
}
+ @Override
+ public String getWriteableName() {
+ return NAME;
+ }
} \ No newline at end of file