diff --git a/CHANGELOG.md b/CHANGELOG.md index 02c45d0e36057..c587ca35018ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Add support for Combined Fields query ([#18724](https://github.com/opensearch-project/OpenSearch/pull/18724)) - Make GRPC transport extensible to allow plugins to register and expose their own GRPC services ([#18516](https://github.com/opensearch-project/OpenSearch/pull/18516)) - Added approximation support for range queries with now in date field ([#18511](https://github.com/opensearch-project/OpenSearch/pull/18511)) +- Upgrade to protobufs 0.6.0 and clean up deprecated TermQueryProtoUtils code ([#18880](https://github.com/opensearch-project/OpenSearch/pull/18880)) ### Changed - Update Subject interface to use CheckedRunnable ([#18570](https://github.com/opensearch-project/OpenSearch/issues/18570)) diff --git a/plugins/transport-grpc/build.gradle b/plugins/transport-grpc/build.gradle index 5920ba83b6d0d..df87623dcc1e2 100644 --- a/plugins/transport-grpc/build.gradle +++ b/plugins/transport-grpc/build.gradle @@ -35,7 +35,7 @@ dependencies { implementation "io.grpc:grpc-stub:${versions.grpc}" implementation "io.grpc:grpc-util:${versions.grpc}" implementation "io.perfmark:perfmark-api:0.27.0" - implementation "org.opensearch:protobufs:0.4.0" + implementation "org.opensearch:protobufs:0.6.0" testImplementation project(':test:framework') } diff --git a/plugins/transport-grpc/licenses/protobufs-0.4.0.jar.sha1 b/plugins/transport-grpc/licenses/protobufs-0.4.0.jar.sha1 deleted file mode 100644 index 12f76199639f8..0000000000000 --- a/plugins/transport-grpc/licenses/protobufs-0.4.0.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -af2d6818dab60d54689122e57f3d3b8fb86cf67b \ No newline at end of file diff --git a/plugins/transport-grpc/licenses/protobufs-0.6.0.jar.sha1 b/plugins/transport-grpc/licenses/protobufs-0.6.0.jar.sha1 new file mode 100644 index 0000000000000..a02b4926d87f5 --- /dev/null +++ b/plugins/transport-grpc/licenses/protobufs-0.6.0.jar.sha1 @@ -0,0 +1 @@ +1675c5085e1376fd1a107b87f7e325944ab5b4dc \ No newline at end of file diff --git a/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoUtils.java b/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoUtils.java index 82babebf1cf66..98b33826ca46f 100644 --- a/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoUtils.java +++ b/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoUtils.java @@ -36,8 +36,8 @@ protected static MatchAllQueryBuilder fromProto(MatchAllQuery matchAllQueryProto matchAllQueryBuilder.boost(matchAllQueryProto.getBoost()); } - if (matchAllQueryProto.hasName()) { - matchAllQueryBuilder.queryName(matchAllQueryProto.getName()); + if (matchAllQueryProto.hasUnderscoreName()) { + matchAllQueryBuilder.queryName(matchAllQueryProto.getUnderscoreName()); } return matchAllQueryBuilder; diff --git a/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoUtils.java b/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoUtils.java index 476b63daca906..06876fc53ea08 100644 --- a/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoUtils.java +++ b/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoUtils.java @@ -38,8 +38,8 @@ protected static MatchNoneQueryBuilder fromProto(MatchNoneQuery matchNoneQueryPr matchNoneQueryBuilder.boost(matchNoneQueryProto.getBoost()); } - if (matchNoneQueryProto.hasName()) { - matchNoneQueryBuilder.queryName(matchNoneQueryProto.getName()); + if (matchNoneQueryProto.hasUnderscoreName()) { + matchNoneQueryBuilder.queryName(matchNoneQueryProto.getUnderscoreName()); } return matchNoneQueryBuilder; diff --git a/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoUtils.java b/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoUtils.java index cc896d703cb0e..7c1a2736b08d7 100644 --- a/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoUtils.java +++ b/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoUtils.java @@ -14,8 +14,6 @@ import org.opensearch.protobufs.FieldValue; import org.opensearch.protobufs.TermQuery; -import java.util.Map; - /** * Utility class for converting TermQuery Protocol Buffers to OpenSearch objects. * This class provides methods to transform Protocol Buffer representations of term queries @@ -45,8 +43,8 @@ protected static TermQueryBuilder fromProto(TermQuery termQueryProto) { float boost = AbstractQueryBuilder.DEFAULT_BOOST; boolean caseInsensitive = TermQueryBuilder.DEFAULT_CASE_INSENSITIVITY; - if (termQueryProto.hasName()) { - queryName = termQueryProto.getName(); + if (termQueryProto.hasUnderscoreName()) { + queryName = termQueryProto.getUnderscoreName(); } if (termQueryProto.hasBoost()) { boost = termQueryProto.getBoost(); @@ -102,92 +100,4 @@ protected static TermQueryBuilder fromProto(TermQuery termQueryProto) { return termQuery; } - /** - * Converts a Protocol Buffer TermQuery map to an OpenSearch TermQueryBuilder. - * Similar to {@link TermQueryBuilder#fromXContent(XContentParser)}, this method - * parses the Protocol Buffer representation and creates a properly configured - * TermQueryBuilder with the appropriate field name, value, boost, query name, - * and case sensitivity settings. - * - * @param termQueryProto The map of field names to Protocol Buffer TermQuery objects - * @return A configured TermQueryBuilder instance - * @throws IllegalArgumentException if the term query map has more than one element, - * if the field value type is not supported, or if the term query field value is not recognized - * @deprecated Use {@link #fromProto(TermQuery)} instead for the new protobuf structure - */ - @Deprecated - protected static TermQueryBuilder fromProto(Map termQueryProto) { - String queryName = null; - String fieldName = null; - Object value = null; - float boost = AbstractQueryBuilder.DEFAULT_BOOST; - boolean caseInsensitive = TermQueryBuilder.DEFAULT_CASE_INSENSITIVITY; - - if (termQueryProto.size() > 1) { - throw new IllegalArgumentException("Term query can only have 1 element in the map"); - } - - for (Map.Entry entry : termQueryProto.entrySet()) { - - fieldName = entry.getKey(); - - TermQuery termQuery = entry.getValue(); - - if (termQuery.hasName()) { - queryName = termQuery.getName(); - } - if (termQuery.hasBoost()) { - boost = termQuery.getBoost(); - } - - FieldValue fieldValue = termQuery.getValue(); - - switch (fieldValue.getTypeCase()) { - case GENERAL_NUMBER: - switch (fieldValue.getGeneralNumber().getValueCase()) { - case INT32_VALUE: - value = fieldValue.getGeneralNumber().getInt32Value(); - break; - case INT64_VALUE: - value = fieldValue.getGeneralNumber().getInt64Value(); - break; - case FLOAT_VALUE: - value = fieldValue.getGeneralNumber().getFloatValue(); - break; - case DOUBLE_VALUE: - value = fieldValue.getGeneralNumber().getDoubleValue(); - break; - default: - throw new IllegalArgumentException( - "Unsupported general nunber type: " + fieldValue.getGeneralNumber().getValueCase() - ); - } - break; - case STRING_VALUE: - value = fieldValue.getStringValue(); - break; - case OBJECT_MAP: - value = ObjectMapProtoUtils.fromProto(fieldValue.getObjectMap()); - break; - case BOOL_VALUE: - value = fieldValue.getBoolValue(); - break; - default: - throw new IllegalArgumentException("TermQuery field value not recognized"); - } - - if (termQuery.hasCaseInsensitive()) { - caseInsensitive = termQuery.getCaseInsensitive(); - } - - } - TermQueryBuilder termQuery = new TermQueryBuilder(fieldName, value); - termQuery.boost(boost); - if (queryName != null) { - termQuery.queryName(queryName); - } - termQuery.caseInsensitive(caseInsensitive); - - return termQuery; - } } diff --git a/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoUtils.java b/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoUtils.java index 34bea81af9699..8a1faf572f7ab 100644 --- a/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoUtils.java +++ b/plugins/transport-grpc/src/main/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoUtils.java @@ -63,8 +63,8 @@ protected static TermsQueryBuilder fromProto(TermsQueryField termsQueryProto) { boost = termsQueryProto.getBoost(); } - if (termsQueryProto.hasName()) { - queryName = termsQueryProto.getName(); + if (termsQueryProto.hasUnderscoreName()) { + queryName = termsQueryProto.getUnderscoreName(); } // TODO: remove this parameter when backporting to under OS 2.17 diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoConverterTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoConverterTests.java index ab0e106e48b79..3d722655f6598 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoConverterTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoConverterTests.java @@ -34,7 +34,7 @@ public void testGetHandledQueryCase() { public void testFromProto() { // Create a QueryContainer with MatchAllQuery - MatchAllQuery matchAllQuery = MatchAllQuery.newBuilder().setBoost(2.0f).setName("test_query").build(); + MatchAllQuery matchAllQuery = MatchAllQuery.newBuilder().setBoost(2.0f).setUnderscoreName("test_query").build(); QueryContainer queryContainer = QueryContainer.newBuilder().setMatchAll(matchAllQuery).build(); // Convert the query diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoUtilsTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoUtilsTests.java index 186f54f09a51f..c2b0fb9fce2f0 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoUtilsTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchAllQueryBuilderProtoUtilsTests.java @@ -42,7 +42,7 @@ public void testFromProtoWithBoost() { public void testFromProtoWithName() { // Create a protobuf MatchAllQuery with name - MatchAllQuery matchAllQueryProto = MatchAllQuery.newBuilder().setName("test_query").build(); + MatchAllQuery matchAllQueryProto = MatchAllQuery.newBuilder().setUnderscoreName("test_query").build(); // Call the method under test MatchAllQueryBuilder matchAllQueryBuilder = MatchAllQueryBuilderProtoUtils.fromProto(matchAllQueryProto); @@ -55,7 +55,7 @@ public void testFromProtoWithName() { public void testFromProtoWithBoostAndName() { // Create a protobuf MatchAllQuery with boost and name - MatchAllQuery matchAllQueryProto = MatchAllQuery.newBuilder().setBoost(3.0f).setName("test_query").build(); + MatchAllQuery matchAllQueryProto = MatchAllQuery.newBuilder().setBoost(3.0f).setUnderscoreName("test_query").build(); // Call the method under test MatchAllQueryBuilder matchAllQueryBuilder = MatchAllQueryBuilderProtoUtils.fromProto(matchAllQueryProto); diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoConverterTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoConverterTests.java index 92ab02cc795f7..02fd7ebc0c101 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoConverterTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoConverterTests.java @@ -34,7 +34,7 @@ public void testGetHandledQueryCase() { public void testFromProto() { // Create a QueryContainer with MatchNoneQuery - MatchNoneQuery matchNoneQuery = MatchNoneQuery.newBuilder().setBoost(2.0f).setName("test_query").build(); + MatchNoneQuery matchNoneQuery = MatchNoneQuery.newBuilder().setBoost(2.0f).setUnderscoreName("test_query").build(); QueryContainer queryContainer = QueryContainer.newBuilder().setMatchNone(matchNoneQuery).build(); // Convert the query diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoUtilsTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoUtilsTests.java index 8149319241479..c22f9c15f8dc6 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoUtilsTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/MatchNoneQueryBuilderProtoUtilsTests.java @@ -42,7 +42,7 @@ public void testFromProtoWithBoost() { public void testFromProtoWithName() { // Create a protobuf MatchNoneQuery with name - MatchNoneQuery matchNoneQueryProto = MatchNoneQuery.newBuilder().setName("test_query").build(); + MatchNoneQuery matchNoneQueryProto = MatchNoneQuery.newBuilder().setUnderscoreName("test_query").build(); // Call the method under test MatchNoneQueryBuilder matchNoneQueryBuilder = MatchNoneQueryBuilderProtoUtils.fromProto(matchNoneQueryProto); @@ -55,7 +55,7 @@ public void testFromProtoWithName() { public void testFromProtoWithBoostAndName() { // Create a protobuf MatchNoneQuery with boost and name - MatchNoneQuery matchNoneQueryProto = MatchNoneQuery.newBuilder().setBoost(3.0f).setName("test_query").build(); + MatchNoneQuery matchNoneQueryProto = MatchNoneQuery.newBuilder().setBoost(3.0f).setUnderscoreName("test_query").build(); // Call the method under test MatchNoneQueryBuilder matchNoneQueryBuilder = MatchNoneQueryBuilderProtoUtils.fromProto(matchNoneQueryProto); diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoConverterTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoConverterTests.java index ef32bdb44e0f3..4c80449f030a8 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoConverterTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoConverterTests.java @@ -36,7 +36,7 @@ public void testFromProto() { .setField("test-field") .setValue(fieldValue) .setBoost(2.0f) - .setName("test_query") + .setUnderscoreName("test_query") .setCaseInsensitive(true) .build(); QueryContainer queryContainer = QueryContainer.newBuilder().setTerm(termQuery).build(); diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoUtilsTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoUtilsTests.java index 583bdb920726e..03ae79aac89ec 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoUtilsTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermQueryBuilderProtoUtilsTests.java @@ -23,17 +23,14 @@ public class TermQueryBuilderProtoUtilsTests extends OpenSearchTestCase { public void testFromProtoWithStringValue() { // Create a protobuf TermQuery with string value TermQuery termQuery = TermQuery.newBuilder() - .setName("test_query") + .setField("test_field") + .setUnderscoreName("test_query") .setBoost(2.0f) .setValue(FieldValue.newBuilder().setStringValue("test_value").build()) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -46,17 +43,14 @@ public void testFromProtoWithStringValue() { public void testFromProtoWithNumberValue() { // Create a protobuf TermQuery with number value TermQuery termQuery = TermQuery.newBuilder() - .setName("test_query") + .setField("test_field") + .setUnderscoreName("test_query") .setBoost(2.0f) .setValue(FieldValue.newBuilder().setGeneralNumber(GeneralNumber.newBuilder().setFloatValue(10.5f).build()).build()) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -69,17 +63,14 @@ public void testFromProtoWithNumberValue() { public void testFromProtoWithBooleanValue() { // Create a protobuf TermQuery with boolean value TermQuery termQuery = TermQuery.newBuilder() - .setName("test_query") + .setField("test_field") + .setUnderscoreName("test_query") .setBoost(2.0f) .setValue(FieldValue.newBuilder().setBoolValue(true).build()) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -101,17 +92,14 @@ public void testFromProtoWithObjectMapValue() { } TermQuery termQuery = TermQuery.newBuilder() - .setName("test_query") + .setField("test_field") + .setUnderscoreName("test_query") .setBoost(2.0f) .setValue(FieldValue.newBuilder().setObjectMap(objectMapBuilder.build()).build()) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -128,14 +116,13 @@ public void testFromProtoWithObjectMapValue() { public void testFromProtoWithDefaultValues() { // Create a protobuf TermQuery with minimal values - TermQuery termQuery = TermQuery.newBuilder().setValue(FieldValue.newBuilder().setStringValue("test_value").build()).build(); - - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); + TermQuery termQuery = TermQuery.newBuilder() + .setField("test_field") + .setValue(FieldValue.newBuilder().setStringValue("test_value").build()) + .build(); // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -148,17 +135,14 @@ public void testFromProtoWithDefaultValues() { public void testFromProtoWithInvalidFieldValueType() { // Create a protobuf TermQuery with invalid field value type TermQuery termQuery = TermQuery.newBuilder() + .setField("test_field") .setValue(FieldValue.newBuilder().build()) // No value set .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test, should throw IllegalArgumentException IllegalArgumentException exception = expectThrows( IllegalArgumentException.class, - () -> TermQueryBuilderProtoUtils.fromProto(termQueryProto) + () -> TermQueryBuilderProtoUtils.fromProto(termQuery) ); assertTrue( @@ -167,35 +151,17 @@ public void testFromProtoWithInvalidFieldValueType() { ); } - public void testFromProtoWithTooManyElements() { - // Create a map with too many elements - Map termQueryProto = new HashMap<>(); - termQueryProto.put("field1", TermQuery.newBuilder().build()); - termQueryProto.put("field2", TermQuery.newBuilder().build()); - - // Call the method under test, should throw IllegalArgumentException - IllegalArgumentException exception = expectThrows( - IllegalArgumentException.class, - () -> TermQueryBuilderProtoUtils.fromProto(termQueryProto) - ); - - assertTrue("Exception message should mention can only have 1 element", exception.getMessage().contains("can only have 1 element")); - } - public void testFromProtoWithInt32Value() { // Create a protobuf TermQuery with int32 value TermQuery termQuery = TermQuery.newBuilder() - .setName("test_query") + .setField("test_field") + .setUnderscoreName("test_query") .setBoost(2.0f) .setValue(FieldValue.newBuilder().setGeneralNumber(GeneralNumber.newBuilder().setInt32Value(42).build()).build()) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -208,19 +174,16 @@ public void testFromProtoWithInt32Value() { public void testFromProtoWithInt64Value() { // Create a protobuf TermQuery with int64 value TermQuery termQuery = TermQuery.newBuilder() - .setName("test_query") + .setField("test_field") + .setUnderscoreName("test_query") .setBoost(2.0f) .setValue( FieldValue.newBuilder().setGeneralNumber(GeneralNumber.newBuilder().setInt64Value(9223372036854775807L).build()).build() ) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -233,17 +196,14 @@ public void testFromProtoWithInt64Value() { public void testFromProtoWithDoubleValue() { // Create a protobuf TermQuery with double value TermQuery termQuery = TermQuery.newBuilder() - .setName("test_query") + .setField("test_field") + .setUnderscoreName("test_query") .setBoost(2.0f) .setValue(FieldValue.newBuilder().setGeneralNumber(GeneralNumber.newBuilder().setDoubleValue(3.14159).build()).build()) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -256,18 +216,15 @@ public void testFromProtoWithDoubleValue() { public void testFromProtoWithCaseInsensitive() { // Create a protobuf TermQuery with case insensitive flag TermQuery termQuery = TermQuery.newBuilder() - .setName("test_query") + .setField("test_field") + .setUnderscoreName("test_query") .setBoost(2.0f) .setValue(FieldValue.newBuilder().setStringValue("test_value").build()) .setCaseInsensitive(true) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test - TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQueryProto); + TermQueryBuilder termQueryBuilder = TermQueryBuilderProtoUtils.fromProto(termQuery); // Verify the result assertNotNull("TermQueryBuilder should not be null", termQueryBuilder); @@ -281,6 +238,7 @@ public void testFromProtoWithCaseInsensitive() { public void testFromProtoWithUnsupportedGeneralNumberType() { // Create a protobuf TermQuery with unsupported general number type TermQuery termQuery = TermQuery.newBuilder() + .setField("test_field") .setValue( FieldValue.newBuilder() .setGeneralNumber(GeneralNumber.newBuilder().build()) // No value set @@ -288,19 +246,15 @@ public void testFromProtoWithUnsupportedGeneralNumberType() { ) .build(); - // Create a map with field name and TermQuery - Map termQueryProto = new HashMap<>(); - termQueryProto.put("test_field", termQuery); - // Call the method under test, should throw IllegalArgumentException IllegalArgumentException exception = expectThrows( IllegalArgumentException.class, - () -> TermQueryBuilderProtoUtils.fromProto(termQueryProto) + () -> TermQueryBuilderProtoUtils.fromProto(termQuery) ); assertTrue( "Exception message should mention unsupported general number type", - exception.getMessage().contains("Unsupported general nunber type") + exception.getMessage().contains("Unsupported general number type") ); } } diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoConverterTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoConverterTests.java index 99659c8ad28f2..1a22c4c09475a 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoConverterTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoConverterTests.java @@ -45,7 +45,7 @@ public void testFromProto() { TermsQueryField termsQueryField = TermsQueryField.newBuilder() .putAllTermsLookupFieldStringArrayMap(termsLookupFieldStringArrayMapMap) .setBoost(2.0f) - .setName("test_query") + .setUnderscoreName("test_query") .setValueType(ValueType.VALUE_TYPE_DEFAULT) .build(); QueryContainer queryContainer = QueryContainer.newBuilder().setTerms(termsQueryField).build(); diff --git a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoUtilsTests.java b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoUtilsTests.java index e117d24a62188..7e0651baf879e 100644 --- a/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoUtilsTests.java +++ b/plugins/transport-grpc/src/test/java/org/opensearch/plugin/transport/grpc/proto/request/search/query/TermsQueryBuilderProtoUtilsTests.java @@ -46,7 +46,7 @@ public void testFromProtoWithStringValues() { TermsQueryField termsQueryField = TermsQueryField.newBuilder() .putAllTermsLookupFieldStringArrayMap(termsLookupFieldStringArrayMapMap) .setBoost(2.0f) - .setName("test_query") + .setUnderscoreName("test_query") .build(); // Call the method under test @@ -86,7 +86,7 @@ public void testFromProtoWithTermsLookup() { TermsQueryField termsQueryField = TermsQueryField.newBuilder() .putAllTermsLookupFieldStringArrayMap(termsLookupFieldStringArrayMapMap) .setBoost(2.0f) - .setName("test_query") + .setUnderscoreName("test_query") .build(); // Call the method under test