Skip to content

Commit a5b60a6

Browse files
authored
[2.19] Remove commons-lang:commons-lang dependency and use gradle version catalog for commons-lang3 (#1628)
1 parent e510b5d commit a5b60a6

File tree

11 files changed

+40
-24
lines changed

11 files changed

+40
-24
lines changed

build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -257,10 +257,9 @@ dependencies {
257257
secureIntegTestPluginArchive group: 'org.opensearch.plugin', name:'opensearch-security', version: "${opensearch_build}"
258258
compileOnly fileTree(dir: knnJarDirectory, include: "opensearch-knn-${opensearch_build}.jar")
259259
compileOnly group: 'com.google.guava', name: 'guava', version:'32.1.3-jre'
260-
compileOnly group: 'commons-lang', name: 'commons-lang', version: '2.6'
261260
api group: 'org.opensearch', name:'opensearch-ml-client', version: "${opensearch_build}"
262261
testFixturesImplementation "org.opensearch.test:framework:${opensearch_version}"
263-
implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.14.0'
262+
compileOnly group: 'org.apache.commons', name: 'commons-lang3', version: "${versions.commonslang}"
264263
// ml-common excluded reflection for runtime so we need to add it by ourselves.
265264
// https://github.com/opensearch-project/ml-commons/commit/464bfe34c66d7a729a00dd457f03587ea4e504d9
266265
// TODO: Remove following three lines of dependencies if ml-common include them in their jar
@@ -281,7 +280,7 @@ dependencies {
281280
runtimeOnly("com.fasterxml.jackson.core:jackson-annotations:${versions.jackson}")
282281
runtimeOnly("com.fasterxml.jackson.core:jackson-databind:${versions.jackson_databind}")
283282
testFixturesImplementation "org.opensearch:common-utils:${version}"
284-
testFixturesImplementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.14.0'
283+
testFixturesImplementation group: 'org.apache.commons', name: 'commons-lang3', version: "${versions.commonslang}"
285284
testFixturesCompileOnly group: 'com.google.guava', name: 'guava', version:'32.1.3-jre'
286285
testFixturesCompileOnly fileTree(dir: knnJarDirectory, include: "opensearch-knn-${opensearch_build}.jar")
287286
}

qa/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ dependencies {
3434
zipArchive group: 'org.opensearch.plugin', name:'opensearch-ml-plugin', version: "${opensearch_build}"
3535
compileOnly fileTree(dir: knnJarDirectory, include: "opensearch-knn-${opensearch_build}.jar")
3636
compileOnly group: 'com.google.guava', name: 'guava', version:'32.1.3-jre'
37-
compileOnly group: 'commons-lang', name: 'commons-lang', version: '2.6'
37+
compileOnly group: 'org.apache.commons', name: 'commons-lang3', version: "${versions.commonslang}"
3838
// json-path 2.9.0 depends on slf4j 2.0.11, which conflicts with the version used by OpenSearch core.
3939
// Excluding slf4j here since json-path is only used for testing, and logging failures in this context are acceptable.
4040
testRuntimeOnly('com.jayway.jsonpath:json-path:2.9.0') {

src/main/java/org/opensearch/neuralsearch/query/HybridQueryBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import java.util.Objects;
1313
import java.util.stream.Collectors;
1414

15-
import org.apache.commons.lang.builder.EqualsBuilder;
15+
import org.apache.commons.lang3.builder.EqualsBuilder;
1616
import org.apache.lucene.search.BooleanClause.Occur;
1717
import org.apache.lucene.search.Query;
1818
import org.opensearch.common.lucene.search.Queries;

src/main/java/org/opensearch/neuralsearch/query/NeuralQueryBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
import java.util.Objects;
2525
import java.util.function.Supplier;
2626

27-
import org.apache.commons.lang.StringUtils;
28-
import org.apache.commons.lang.builder.EqualsBuilder;
27+
import org.apache.commons.lang3.StringUtils;
28+
import org.apache.commons.lang3.builder.EqualsBuilder;
2929
import org.apache.lucene.search.Query;
3030
import org.opensearch.common.SetOnce;
3131
import org.opensearch.core.ParseField;

src/main/java/org/opensearch/neuralsearch/query/NeuralSparseQueryBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
import java.util.function.BiConsumer;
1414
import java.util.function.Supplier;
1515

16-
import org.apache.commons.lang.StringUtils;
17-
import org.apache.commons.lang.builder.EqualsBuilder;
18-
import org.apache.commons.lang.builder.HashCodeBuilder;
16+
import org.apache.commons.lang3.StringUtils;
17+
import org.apache.commons.lang3.builder.EqualsBuilder;
18+
import org.apache.commons.lang3.builder.HashCodeBuilder;
1919
import org.apache.lucene.document.FeatureField;
2020
import org.apache.lucene.search.BooleanClause;
2121
import org.apache.lucene.search.BooleanQuery;

src/main/java/org/opensearch/neuralsearch/util/prune/PruneType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*/
55
package org.opensearch.neuralsearch.util.prune;
66

7-
import org.apache.commons.lang.StringUtils;
7+
import org.apache.commons.lang3.StringUtils;
88

99
import java.util.Locale;
1010

src/test/java/org/opensearch/neuralsearch/processor/InferenceProcessorTestCase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
package org.opensearch.neuralsearch.processor;
66

77
import com.google.common.collect.ImmutableList;
8-
import org.apache.commons.lang.math.RandomUtils;
8+
import org.apache.commons.lang3.RandomUtils;
99
import org.opensearch.index.mapper.IndexFieldMapper;
1010
import org.opensearch.ingest.IngestDocument;
1111
import org.opensearch.ingest.IngestDocumentWrapper;
@@ -65,7 +65,7 @@ protected List<List<Float>> createRandomOneDimensionalMockVector(int numOfVector
6565
for (int i = 0; i < numOfVectors; i++) {
6666
List<Float> numbers = new ArrayList<>();
6767
for (int j = 0; j < vectorDimension; j++) {
68-
Float nextFloat = RandomUtils.nextFloat() * (max - min) + min;
68+
Float nextFloat = RandomUtils.nextFloat(0.0f, 1.0f) * (max - min) + min;
6969
numbers.add(nextFloat);
7070
}
7171
result.add(numbers);

src/test/java/org/opensearch/neuralsearch/processor/combination/BaseScoreCombinationTechniqueTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.util.List;
99
import java.util.function.BiFunction;
1010

11-
import org.apache.commons.lang.ArrayUtils;
11+
import org.apache.commons.lang3.ArrayUtils;
1212
import org.opensearch.test.OpenSearchTestCase;
1313

1414
import com.carrotsearch.randomizedtesting.RandomizedTest;

src/test/java/org/opensearch/neuralsearch/query/HybridQueryBuilderTests.java

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
import org.opensearch.core.common.io.stream.NamedWriteableRegistry;
5151
import org.opensearch.core.index.Index;
5252
import org.opensearch.core.xcontent.NamedXContentRegistry;
53-
import org.opensearch.core.xcontent.ToXContent;
5453
import org.opensearch.core.xcontent.XContentBuilder;
5554
import org.opensearch.core.xcontent.XContentParser;
5655
import org.opensearch.index.IndexSettings;
@@ -154,8 +153,17 @@ public void testDoToQuery_whenOneSubquery_thenBuildSuccessfully() {
154153
assertNotNull(queryOnlyNeural);
155154
assertTrue(queryOnlyNeural instanceof HybridQuery);
156155
assertEquals(1, ((HybridQuery) queryOnlyNeural).getSubQueries().size());
157-
assertTrue(((HybridQuery) queryOnlyNeural).getSubQueries().iterator().next() instanceof NativeEngineKnnVectorQuery);
158-
KNNQuery knnQuery = ((NativeEngineKnnVectorQuery) ((HybridQuery) queryOnlyNeural).getSubQueries().iterator().next()).getKnnQuery();
156+
157+
// the query may be returned as KNNQuery directly instead of wrapped in NativeEngineKnnVectorQuery
158+
Query subQuery = ((HybridQuery) queryOnlyNeural).getSubQueries().iterator().next();
159+
KNNQuery knnQuery = null;
160+
if (subQuery instanceof NativeEngineKnnVectorQuery) {
161+
knnQuery = ((NativeEngineKnnVectorQuery) subQuery).getKnnQuery();
162+
} else if (subQuery instanceof KNNQuery) {
163+
knnQuery = (KNNQuery) subQuery;
164+
} else {
165+
fail("Expected NativeEngineKnnVectorQuery or KNNQuery but got " + subQuery.getClass().getName());
166+
}
159167
assertEquals(VECTOR_FIELD_NAME, knnQuery.getField());
160168
assertEquals(K, knnQuery.getK());
161169
assertNotNull(knnQuery.getQueryVector());
@@ -203,8 +211,17 @@ public void testDoToQuery_whenMultipleSubqueries_thenBuildSuccessfully() {
203211
// verify knn vector query
204212
Iterator<Query> queryIterator = ((HybridQuery) queryTwoSubQueries).getSubQueries().iterator();
205213
Query firstQuery = queryIterator.next();
206-
assertTrue(firstQuery instanceof NativeEngineKnnVectorQuery);
207-
KNNQuery knnQuery = ((NativeEngineKnnVectorQuery) firstQuery).getKnnQuery();
214+
215+
// Handle both possible query types - after commons-lang3 migration,
216+
// the query may be returned as KNNQuery directly instead of wrapped in NativeEngineKnnVectorQuery
217+
KNNQuery knnQuery = null;
218+
if (firstQuery instanceof NativeEngineKnnVectorQuery) {
219+
knnQuery = ((NativeEngineKnnVectorQuery) firstQuery).getKnnQuery();
220+
} else if (firstQuery instanceof KNNQuery) {
221+
knnQuery = (KNNQuery) firstQuery;
222+
} else {
223+
fail("Expected NativeEngineKnnVectorQuery or KNNQuery but got " + firstQuery.getClass().getName());
224+
}
208225
assertEquals(VECTOR_FIELD_NAME, knnQuery.getField());
209226
assertEquals(K, knnQuery.getK());
210227
assertNotNull(knnQuery.getQueryVector());
@@ -530,7 +547,7 @@ public void testToXContent_whenIncomingJsonIsCorrect_thenSuccessful() {
530547
when(mockQueryShardContext.fieldMapper(eq(TEXT_FIELD_NAME))).thenReturn(fieldType);
531548

532549
XContentBuilder builder = XContentFactory.jsonBuilder();
533-
builder = queryBuilder.toXContent(builder, ToXContent.EMPTY_PARAMS);
550+
builder = queryBuilder.toXContent(builder, EMPTY_PARAMS);
534551
Map<String, Object> out = xContentBuilderToMap(builder);
535552

536553
Object outer = out.get(HybridQueryBuilder.NAME);

src/test/java/org/opensearch/neuralsearch/query/HybridQueryIT.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
import java.util.Set;
2323
import java.util.stream.IntStream;
2424

25-
import org.apache.commons.lang.RandomStringUtils;
26-
import org.apache.commons.lang.math.RandomUtils;
25+
import org.apache.commons.lang3.RandomStringUtils;
26+
import org.apache.commons.lang3.RandomUtils;
2727
import org.apache.lucene.search.join.ScoreMode;
2828
import org.junit.Before;
2929
import org.opensearch.client.ResponseException;
@@ -1178,7 +1178,7 @@ private void initializeIndexIfNotExist(String indexName, int numberOfShards, int
11781178
indexName,
11791179
String.valueOf(i),
11801180
INTEGER_FIELD_PRICE,
1181-
RandomUtils.nextInt(1000),
1181+
RandomUtils.nextInt(0, 1000),
11821182
KEYWORD_FIELD_1,
11831183
RandomStringUtils.randomAlphabetic(10)
11841184
);

0 commit comments

Comments
 (0)