diff --git a/CHANGELOG.md b/CHANGELOG.md index e580801590c86..883a56640d2aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -130,6 +130,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Enforce type safety for RegisterTransportActionsRequest([#4796](https://github.com/opensearch-project/OpenSearch/pull/4796)) - Modified local node request to return Discovery Node ([#4862](https://github.com/opensearch-project/OpenSearch/pull/4862)) - Enforce type safety for NamedWriteableRegistryParseRequest ([#4923](https://github.com/opensearch-project/OpenSearch/pull/4923)) + - Added default constructor for JSON parsing using Jackson ([#5369](https://github.com/opensearch-project/OpenSearch/pull/5369)) ## [Unreleased 2.x] ### Added diff --git a/server/src/main/java/org/opensearch/search/aggregations/AbstractAggregationBuilder.java b/server/src/main/java/org/opensearch/search/aggregations/AbstractAggregationBuilder.java index 5863bf66f59f8..535b19b5c5dd8 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/AbstractAggregationBuilder.java +++ b/server/src/main/java/org/opensearch/search/aggregations/AbstractAggregationBuilder.java @@ -77,6 +77,13 @@ protected AbstractAggregationBuilder(StreamInput in) throws IOException { metadata = in.readMap(); } + /** + * Constructor required for Jackson parsing + */ + protected AbstractAggregationBuilder() { + super(); + } + @Override public final void writeTo(StreamOutput out) throws IOException { out.writeString(name); diff --git a/server/src/main/java/org/opensearch/search/aggregations/AggregationBuilder.java b/server/src/main/java/org/opensearch/search/aggregations/AggregationBuilder.java index f5f11834b4484..7e1b889915f67 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/AggregationBuilder.java +++ b/server/src/main/java/org/opensearch/search/aggregations/AggregationBuilder.java @@ -58,9 +58,14 @@ public abstract class AggregationBuilder BaseAggregationBuilder, Rewriteable { - protected final String name; + protected String name; protected AggregatorFactories.Builder factoriesBuilder = AggregatorFactories.builder(); + /** + * Constructor required for Jackson parsing + */ + AggregationBuilder() {} + /** * Constructs a new aggregation builder. * diff --git a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregationBuilder.java b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregationBuilder.java index d6d33eae90c96..1d90988e0676b 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregationBuilder.java +++ b/server/src/main/java/org/opensearch/search/aggregations/metrics/SumAggregationBuilder.java @@ -75,6 +75,13 @@ public SumAggregationBuilder(String name) { super(name); } + /** + * Constructor required for Jackson parsing + */ + private SumAggregationBuilder() { + super(); + } + protected SumAggregationBuilder( SumAggregationBuilder clone, AggregatorFactories.Builder factoriesBuilder, diff --git a/server/src/main/java/org/opensearch/search/aggregations/support/ValuesSourceAggregationBuilder.java b/server/src/main/java/org/opensearch/search/aggregations/support/ValuesSourceAggregationBuilder.java index b492d9cadb975..496711ae4173e 100644 --- a/server/src/main/java/org/opensearch/search/aggregations/support/ValuesSourceAggregationBuilder.java +++ b/server/src/main/java/org/opensearch/search/aggregations/support/ValuesSourceAggregationBuilder.java @@ -59,6 +59,13 @@ */ public abstract class ValuesSourceAggregationBuilder> extends AbstractAggregationBuilder { + /** + * Constructor required for Jackson parsing + */ + private ValuesSourceAggregationBuilder() { + super(); + } + public static void declareFields( AbstractObjectParser, T> objectParser, boolean scriptable, @@ -166,6 +173,13 @@ protected LeafOnly(StreamInput in) throws IOException { super(in); } + /** + * Constructor required for Jackson parsing + */ + public LeafOnly() { + super(); + } + @Override public final AB subAggregations(Builder subFactories) { throw new AggregationInitializationException(