Skip to content

Commit 0c3e90e

Browse files
committed
Migrate legacy main-source XContent callsites to factory API
Same Jackson 3 issue as OpenSearchJsonContent: direct use of JsonXContentParser/YamlXContentParser constructors with Jackson 2 JsonFactory/YAMLFactory no longer compiles against OpenSearch 3.7.0-SNAPSHOT. Switch all five callsites (JsonPrettyFormatter, QueryAction, AggMaker, SqlRequest, HintFactory) to the JsonXContent.jsonXContent.createParser / YamlXContent.yamlXContent.createParser factory APIs, which encapsulate the underlying Jackson version. Signed-off-by: Jialiang Liang <jiallian@amazon.com>
1 parent e0c5293 commit 0c3e90e

5 files changed

Lines changed: 19 additions & 33 deletions

File tree

legacy/src/main/java/org/opensearch/sql/legacy/domain/hints/HintFactory.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55

66
package org.opensearch.sql.legacy.domain.hints;
77

8-
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
9-
import com.fasterxml.jackson.dataformat.yaml.YAMLParser;
108
import java.io.IOException;
119
import java.util.ArrayList;
1210
import java.util.List;
1311
import java.util.Map;
1412
import org.opensearch.common.xcontent.LoggingDeprecationHandler;
15-
import org.opensearch.common.xcontent.yaml.YamlXContentParser;
13+
import org.opensearch.common.xcontent.yaml.YamlXContent;
1614
import org.opensearch.core.xcontent.NamedXContentRegistry;
15+
import org.opensearch.core.xcontent.XContentParser;
1716
import org.opensearch.sql.legacy.exception.SqlParseException;
1817

1918
/** Created by Eliran on 5/9/2015. */
@@ -104,13 +103,9 @@ public static Hint getHintFromString(String hintAsString) throws SqlParseExcepti
104103
builder.append(highlights[i]);
105104
}
106105
String heighlightParam = builder.toString();
107-
YAMLFactory yamlFactory = new YAMLFactory();
108-
YAMLParser yamlParser = null;
109-
try {
110-
yamlParser = yamlFactory.createParser(heighlightParam.toCharArray());
111-
YamlXContentParser yamlXContentParser =
112-
new YamlXContentParser(
113-
NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, yamlParser);
106+
try (XContentParser yamlXContentParser =
107+
YamlXContent.yamlXContent.createParser(
108+
NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, heighlightParam)) {
114109
Map<String, Object> map = yamlXContentParser.map();
115110
hintParams.add(map);
116111
} catch (IOException e) {

legacy/src/main/java/org/opensearch/sql/legacy/query/QueryAction.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
package org.opensearch.sql.legacy.query;
77

8-
import com.fasterxml.jackson.core.JsonFactory;
98
import java.io.IOException;
109
import java.util.ArrayList;
1110
import java.util.List;
@@ -14,8 +13,9 @@
1413
import org.opensearch.action.search.SearchRequestBuilder;
1514
import org.opensearch.action.support.IndicesOptions;
1615
import org.opensearch.common.xcontent.LoggingDeprecationHandler;
17-
import org.opensearch.common.xcontent.json.JsonXContentParser;
16+
import org.opensearch.common.xcontent.json.JsonXContent;
1817
import org.opensearch.core.xcontent.NamedXContentRegistry;
18+
import org.opensearch.core.xcontent.XContentParser;
1919
import org.opensearch.index.query.QueryBuilders;
2020
import org.opensearch.search.collapse.CollapseBuilder;
2121
import org.opensearch.search.fetch.subphase.highlight.HighlightBuilder;
@@ -88,16 +88,15 @@ public Optional<List<String>> getFieldNames() {
8888

8989
protected void updateRequestWithCollapse(Select select, SearchRequestBuilder request)
9090
throws SqlParseException {
91-
JsonFactory jsonFactory = new JsonFactory();
9291
for (Hint hint : select.getHints()) {
9392
if (hint.getType() == HintType.COLLAPSE
9493
&& hint.getParams() != null
9594
&& 0 < hint.getParams().length) {
96-
try (JsonXContentParser parser =
97-
new JsonXContentParser(
95+
try (XContentParser parser =
96+
JsonXContent.jsonXContent.createParser(
9897
NamedXContentRegistry.EMPTY,
9998
LoggingDeprecationHandler.INSTANCE,
100-
jsonFactory.createParser(hint.getParams()[0].toString()))) {
99+
hint.getParams()[0].toString())) {
101100
request.setCollapse(CollapseBuilder.fromXContent(parser));
102101
} catch (IOException e) {
103102
throw new SqlParseException("could not parse collapse hint: " + e.getMessage());

legacy/src/main/java/org/opensearch/sql/legacy/query/maker/AggMaker.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package org.opensearch.sql.legacy.query.maker;
77

88
import com.alibaba.druid.sql.ast.expr.SQLAggregateOption;
9-
import com.fasterxml.jackson.core.JsonFactory;
109
import java.io.IOException;
1110
import java.math.BigDecimal;
1211
import java.time.ZoneOffset;
@@ -19,7 +18,6 @@
1918
import org.apache.commons.lang3.StringUtils;
2019
import org.opensearch.common.xcontent.LoggingDeprecationHandler;
2120
import org.opensearch.common.xcontent.json.JsonXContent;
22-
import org.opensearch.common.xcontent.json.JsonXContentParser;
2321
import org.opensearch.core.common.ParsingException;
2422
import org.opensearch.core.common.Strings;
2523
import org.opensearch.core.xcontent.NamedXContentRegistry;
@@ -340,11 +338,9 @@ private AggregationBuilder termsAgg(MethodField field) throws SqlParseException
340338
terms.order(BucketOrder.key(false));
341339
} else {
342340
List<BucketOrder> orderElements = new ArrayList<>();
343-
try (JsonXContentParser parser =
344-
new JsonXContentParser(
345-
NamedXContentRegistry.EMPTY,
346-
LoggingDeprecationHandler.INSTANCE,
347-
new JsonFactory().createParser(value))) {
341+
try (XContentParser parser =
342+
JsonXContent.jsonXContent.createParser(
343+
NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, value)) {
348344
XContentParser.Token currentToken = parser.nextToken();
349345
if (currentToken == XContentParser.Token.START_OBJECT) {
350346
orderElements.add(InternalOrder.Parser.parseOrderParam(parser));

legacy/src/main/java/org/opensearch/sql/legacy/request/SqlRequest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55

66
package org.opensearch.sql.legacy.request;
77

8-
import com.fasterxml.jackson.core.JsonFactory;
98
import java.io.IOException;
109
import java.util.Collections;
1110
import org.json.JSONException;
1211
import org.json.JSONObject;
1312
import org.opensearch.common.settings.Settings;
1413
import org.opensearch.common.xcontent.LoggingDeprecationHandler;
15-
import org.opensearch.common.xcontent.json.JsonXContentParser;
14+
import org.opensearch.common.xcontent.json.JsonXContent;
1615
import org.opensearch.core.xcontent.NamedXContentRegistry;
1716
import org.opensearch.core.xcontent.XContentParser;
1817
import org.opensearch.index.query.BoolQueryBuilder;
@@ -90,10 +89,10 @@ private void addFilterFromJson(BoolQueryBuilder boolQuery) throws SqlParseExcept
9089
String filter = getFilterObjectAsString(jsonContent);
9190
SearchModule searchModule = new SearchModule(Settings.EMPTY, Collections.emptyList());
9291
XContentParser parser =
93-
new JsonXContentParser(
92+
JsonXContent.jsonXContent.createParser(
9493
new NamedXContentRegistry(searchModule.getNamedXContents()),
9594
LoggingDeprecationHandler.INSTANCE,
96-
new JsonFactory().createParser(filter));
95+
filter);
9796

9897
// nextToken is called before passing the parser to fromXContent since the fieldName will be
9998
// null if the

legacy/src/main/java/org/opensearch/sql/legacy/utils/JsonPrettyFormatter.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55

66
package org.opensearch.sql.legacy.utils;
77

8-
import com.fasterxml.jackson.core.JsonFactory;
98
import java.io.IOException;
109
import org.opensearch.common.xcontent.LoggingDeprecationHandler;
1110
import org.opensearch.common.xcontent.XContentFactory;
12-
import org.opensearch.common.xcontent.json.JsonXContentParser;
11+
import org.opensearch.common.xcontent.json.JsonXContent;
1312
import org.opensearch.core.xcontent.NamedXContentRegistry;
1413
import org.opensearch.core.xcontent.XContentBuilder;
1514
import org.opensearch.core.xcontent.XContentParser;
@@ -26,10 +25,8 @@ public static String format(String jsonString) throws IOException {
2625
// turn _explain response into pretty formatted Json
2726
XContentBuilder contentBuilder = XContentFactory.jsonBuilder().prettyPrint();
2827
try (XContentParser contentParser =
29-
new JsonXContentParser(
30-
NamedXContentRegistry.EMPTY,
31-
LoggingDeprecationHandler.INSTANCE,
32-
new JsonFactory().createParser(jsonString))) {
28+
JsonXContent.jsonXContent.createParser(
29+
NamedXContentRegistry.EMPTY, LoggingDeprecationHandler.INSTANCE, jsonString)) {
3330
contentBuilder.copyCurrentStructure(contentParser);
3431
}
3532
return contentBuilder.toString();

0 commit comments

Comments
 (0)