diff --git a/lucene/ivy-versions.properties b/lucene/ivy-versions.properties index 51f05c434c0..eb0e82bb30c 100644 --- a/lucene/ivy-versions.properties +++ b/lucene/ivy-versions.properties @@ -115,7 +115,7 @@ org.apache.calcite.version = 1.18.0 /org.apache.commons/commons-exec = 1.3 /org.apache.commons/commons-lang3 = 3.8.1 /org.apache.commons/commons-math3 = 3.6.1 -/org.apache.commons/commons-text = 1.4 +/org.apache.commons/commons-text = 1.6 org.apache.curator.version = 2.13.0 /org.apache.curator/curator-client = ${org.apache.curator.version} diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 531ba9b4196..73e707afa0e 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -137,6 +137,8 @@ Improvements * SOLR-13227: Optimizing facet.range.other by avoiding expensive exceptions (Nikolay Khitrin via Mikhail Khludnev) +* SOLR-9079: Remove commons-lang as a dependency (Kevin Risden) + Other Changes ---------------------- diff --git a/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/LegacyAbstractAnalyticsTest.java b/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/LegacyAbstractAnalyticsTest.java index 3488f63db7d..4a7b857a7dc 100644 --- a/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/LegacyAbstractAnalyticsTest.java +++ b/solr/contrib/analytics/src/test/org/apache/solr/analytics/legacy/LegacyAbstractAnalyticsTest.java @@ -34,7 +34,7 @@ import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.util.IOUtils; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.analytics.util.AnalyticsResponseHeadings; diff --git a/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/ClusteringComponent.java b/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/ClusteringComponent.java index b88130a8340..5ff6a6dc62d 100644 --- a/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/ClusteringComponent.java +++ b/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/ClusteringComponent.java @@ -25,7 +25,7 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.document.Document; import org.apache.lucene.index.IndexableField; import org.apache.solr.common.SolrDocument; diff --git a/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java b/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java index 4c28916ac67..b75b8c6deed 100644 --- a/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java +++ b/solr/contrib/clustering/src/java/org/apache/solr/handler/clustering/carrot2/CarrotClusteringEngine.java @@ -27,11 +27,11 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Objects; import java.util.Set; import java.util.function.Supplier; -import org.apache.commons.lang.ObjectUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.search.Query; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; @@ -388,7 +388,7 @@ public class CarrotClusteringEngine extends SearchClusteringEngine { // Create a Carrot2 document Document carrotDocument = new Document(getConcatenated(sdoc, titleFieldSpec), - snippet, ObjectUtils.toString(sdoc.getFieldValue(urlField), "")); + snippet, Objects.toString(sdoc.getFieldValue(urlField), "")); // Store Solr id of the document, we need it to map document instances // found in clusters back to identifiers. @@ -401,7 +401,7 @@ public class CarrotClusteringEngine extends SearchClusteringEngine { // Use the first Carrot2-supported language for (Object l : languages) { - String lang = ObjectUtils.toString(l, ""); + String lang = Objects.toString(l, ""); if (languageCodeMap.containsKey(lang)) { lang = languageCodeMap.get(lang); @@ -475,7 +475,7 @@ public class CarrotClusteringEngine extends SearchClusteringEngine { // Join multiple values with a period so that Carrot2 does not pick up // phrases that cross field value boundaries (in most cases it would // create useless phrases). - result.append(ObjectUtils.toString(ite.next())).append(" . "); + result.append(Objects.toString(ite.next(), "")).append(" . "); } } return result.toString().trim(); diff --git a/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestRerankBase.java b/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestRerankBase.java index 796fe391048..20a276e4359 100644 --- a/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestRerankBase.java +++ b/solr/contrib/ltr/src/test/org/apache/solr/ltr/TestRerankBase.java @@ -32,7 +32,6 @@ import java.util.SortedMap; import java.util.TreeMap; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; import org.apache.solr.common.params.CommonParams; import org.apache.solr.common.util.ContentStream; import org.apache.solr.common.util.ContentStreamBase; @@ -411,7 +410,7 @@ public class TestRerankBase extends RestTestBase { } loadModel(name, LinearModel.class.getCanonicalName(), features, - "{\"weights\":{" + StringUtils.join(weights, ",") + "}}"); + "{\"weights\":{" + String.join(",", weights) + "}}"); } protected static void bulkIndex() throws Exception { diff --git a/solr/contrib/velocity/ivy.xml b/solr/contrib/velocity/ivy.xml index 561492da7f4..b7d046f8139 100644 --- a/solr/contrib/velocity/ivy.xml +++ b/solr/contrib/velocity/ivy.xml @@ -24,6 +24,7 @@ + diff --git a/solr/contrib/velocity/src/java/org/apache/solr/response/VelocityResponseWriter.java b/solr/contrib/velocity/src/java/org/apache/solr/response/VelocityResponseWriter.java index ad1ee39aec3..3d4abb24c99 100644 --- a/solr/contrib/velocity/src/java/org/apache/solr/response/VelocityResponseWriter.java +++ b/solr/contrib/velocity/src/java/org/apache/solr/response/VelocityResponseWriter.java @@ -31,7 +31,6 @@ import java.util.Map; import java.util.Properties; import java.util.ResourceBundle; -import org.apache.commons.lang.StringUtils; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.client.solrj.response.SolrResponseBase; @@ -338,7 +337,7 @@ public class VelocityResponseWriter implements QueryResponseWriter, SolrCoreAwar loaders.add("builtin"); engine.setProperty("builtin.resource.loader.instance", new ClasspathResourceLoader()); - engine.setProperty(RuntimeConstants.RESOURCE_LOADER, StringUtils.join(loaders,',')); + engine.setProperty(RuntimeConstants.RESOURCE_LOADER, String.join(",", loaders)); engine.setProperty(RuntimeConstants.INPUT_ENCODING, "UTF-8"); diff --git a/solr/core/ivy.xml b/solr/core/ivy.xml index 8f5f73bbd9b..eaeb7e86749 100644 --- a/solr/core/ivy.xml +++ b/solr/core/ivy.xml @@ -35,7 +35,7 @@ - + diff --git a/solr/core/src/java/org/apache/solr/cloud/ExclusiveSliceProperty.java b/solr/core/src/java/org/apache/solr/cloud/ExclusiveSliceProperty.java index f5672ba31cb..4690c11740e 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ExclusiveSliceProperty.java +++ b/solr/core/src/java/org/apache/solr/cloud/ExclusiveSliceProperty.java @@ -28,7 +28,7 @@ import java.util.Map; import java.util.Random; import java.util.Set; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.cloud.api.collections.OverseerCollectionMessageHandler; import org.apache.solr.cloud.overseer.ClusterStateMutator; import org.apache.solr.cloud.overseer.CollectionMutator; diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java index fda5542be43..7f28643b023 100644 --- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java +++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java @@ -53,7 +53,7 @@ import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicReference; import com.google.common.base.Strings; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.client.solrj.cloud.SolrCloudManager; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/AddReplicaCmd.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/AddReplicaCmd.java index a0abaf05d53..e5321072226 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/AddReplicaCmd.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/AddReplicaCmd.java @@ -32,7 +32,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.client.solrj.cloud.SolrCloudManager; import org.apache.solr.client.solrj.cloud.autoscaling.PolicyHelper; import org.apache.solr.cloud.ActiveReplicaWatcher; diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java index a1bd8268b43..8f5dbd62d7b 100644 --- a/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java +++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/OverseerCollectionMessageHandler.java @@ -33,7 +33,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import com.google.common.collect.ImmutableMap; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.cloud.DistribStateManager; diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ReplicaMutator.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ReplicaMutator.java index 82a06104dd3..36caac5becd 100644 --- a/solr/core/src/java/org/apache/solr/cloud/overseer/ReplicaMutator.java +++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ReplicaMutator.java @@ -27,7 +27,7 @@ import java.util.NoSuchElementException; import java.util.Set; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.client.solrj.cloud.DistribStateManager; import org.apache.solr.client.solrj.cloud.SolrCloudManager; import org.apache.solr.client.solrj.cloud.autoscaling.VersionedData; diff --git a/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java b/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java index 1747fa2ca12..8b2ba5d0189 100644 --- a/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java +++ b/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java @@ -32,7 +32,7 @@ import java.util.Properties; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.cloud.CloudDescriptor; import org.apache.solr.common.SolrException; import org.apache.solr.util.PropertiesUtil; diff --git a/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java b/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java index 814249ba5f5..b7c59942452 100644 --- a/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java +++ b/solr/core/src/java/org/apache/solr/handler/AnalysisRequestHandlerBase.java @@ -29,7 +29,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.Tokenizer; diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java index e933ac35d77..921e7c8a4e6 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CollectionsHandler.java @@ -38,7 +38,7 @@ import java.util.stream.Collectors; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.api.Api; import org.apache.solr.client.solrj.SolrResponse; import org.apache.solr.client.solrj.impl.HttpSolrClient; diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java index fbd0fb68aa3..706b82df6d7 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/ConfigSetsHandler.java @@ -28,7 +28,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.hadoop.fs.Path; import org.apache.solr.api.Api; import org.apache.solr.client.solrj.SolrResponse; diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java index 6478731ae8a..45cb0631e87 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java @@ -28,7 +28,7 @@ import java.util.Map; import java.util.concurrent.ExecutorService; import com.google.common.collect.ImmutableMap; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.api.Api; import org.apache.solr.cloud.CloudDescriptor; import org.apache.solr.cloud.ZkController; diff --git a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java index 1ccc7d47170..81e6c924191 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/CoreAdminOperation.java @@ -23,7 +23,7 @@ import java.util.Locale; import java.util.Map; import java.util.Optional; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.cloud.CloudDescriptor; import org.apache.solr.cloud.ZkController; import org.apache.solr.common.SolrException; diff --git a/solr/core/src/java/org/apache/solr/handler/admin/RebalanceLeaders.java b/solr/core/src/java/org/apache/solr/handler/admin/RebalanceLeaders.java index 12f8f3b58ca..0fa43a8ee95 100644 --- a/solr/core/src/java/org/apache/solr/handler/admin/RebalanceLeaders.java +++ b/solr/core/src/java/org/apache/solr/handler/admin/RebalanceLeaders.java @@ -26,7 +26,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.TimeUnit; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.cloud.LeaderElector; import org.apache.solr.cloud.OverseerTaskProcessor; import org.apache.solr.cloud.overseer.SliceMutator; diff --git a/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java b/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java index e339a756a36..745dac0ab8e 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/FacetComponent.java @@ -30,8 +30,8 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import org.apache.commons.lang.ArrayUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.ArrayUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.FixedBitSet; import org.apache.solr.client.solrj.util.ClientUtils; diff --git a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java index 3009a5b9f71..4f0db88a41b 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java +++ b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java @@ -38,7 +38,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.SynchronousQueue; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.http.client.HttpClient; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrRequest; diff --git a/solr/core/src/java/org/apache/solr/handler/component/StatsField.java b/solr/core/src/java/org/apache/solr/handler/component/StatsField.java index aa9dd359f64..3ca35f3b1f7 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/StatsField.java +++ b/solr/core/src/java/org/apache/solr/handler/component/StatsField.java @@ -28,7 +28,7 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.queries.function.FunctionQuery; import org.apache.lucene.queries.function.ValueSource; diff --git a/solr/core/src/java/org/apache/solr/request/SubstringBytesRefFilter.java b/solr/core/src/java/org/apache/solr/request/SubstringBytesRefFilter.java index 623cb550859..3c4767da54f 100644 --- a/solr/core/src/java/org/apache/solr/request/SubstringBytesRefFilter.java +++ b/solr/core/src/java/org/apache/solr/request/SubstringBytesRefFilter.java @@ -19,7 +19,7 @@ package org.apache.solr.request; import java.util.function.Predicate; import org.apache.lucene.util.BytesRef; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; /** * An implementation of {@link Predicate} which returns true if the BytesRef contains a given substring. diff --git a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java index 44787ec71ea..ccbb71fed18 100644 --- a/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/CollapsingQParserPlugin.java @@ -32,7 +32,7 @@ import com.carrotsearch.hppc.IntIntHashMap; import com.carrotsearch.hppc.IntLongHashMap; import com.carrotsearch.hppc.cursors.IntIntCursor; import com.carrotsearch.hppc.cursors.IntLongCursor; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.codecs.DocValuesProducer; import org.apache.lucene.index.DocValues; import org.apache.lucene.index.DocValuesType; diff --git a/solr/core/src/java/org/apache/solr/search/Grouping.java b/solr/core/src/java/org/apache/solr/search/Grouping.java index 938562df84f..4869386c3d8 100644 --- a/solr/core/src/java/org/apache/solr/search/Grouping.java +++ b/solr/core/src/java/org/apache/solr/search/Grouping.java @@ -26,7 +26,7 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; import org.apache.lucene.index.ExitableDirectoryReader; import org.apache.lucene.index.IndexableField; import org.apache.lucene.queries.function.FunctionQuery; diff --git a/solr/core/src/java/org/apache/solr/search/SwitchQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/SwitchQParserPlugin.java index d3947a91743..d3ecddd25e5 100644 --- a/solr/core/src/java/org/apache/solr/search/SwitchQParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/SwitchQParserPlugin.java @@ -22,7 +22,7 @@ import org.apache.solr.common.util.NamedList; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.handler.component.SearchHandler; // jdoc -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; /** *

A QParserPlugin that acts like a "switch/case" statement.

diff --git a/solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java b/solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java index 1808631753c..baf32f41bd9 100644 --- a/solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java +++ b/solr/core/src/java/org/apache/solr/security/JWTAuthPlugin.java @@ -525,7 +525,7 @@ public class JWTAuthPlugin extends AuthenticationPlugin implements SpecProvider, wwwAuthParams.add("error=\"" + responseError + "\""); wwwAuthParams.add("error_description=\"" + message + "\""); } - response.addHeader(HttpHeaders.WWW_AUTHENTICATE, org.apache.commons.lang.StringUtils.join(wwwAuthParams, ", ")); + response.addHeader(HttpHeaders.WWW_AUTHENTICATE, String.join(", ", wwwAuthParams)); response.addHeader(AuthenticationPlugin.HTTP_HEADER_X_SOLR_AUTHDATA, generateAuthDataHeader()); response.sendError(httpCode, message); log.info("JWT Authentication attempt failed: {}", message); diff --git a/solr/core/src/java/org/apache/solr/security/PrintWriterWrapper.java b/solr/core/src/java/org/apache/solr/security/PrintWriterWrapper.java index a4e47b5e4f1..b4e6dc18480 100644 --- a/solr/core/src/java/org/apache/solr/security/PrintWriterWrapper.java +++ b/solr/core/src/java/org/apache/solr/security/PrintWriterWrapper.java @@ -20,8 +20,6 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.util.Locale; -import org.apache.commons.lang.NotImplementedException; - /** * Wrapper for PrintWriter that delegates to constructor arg */ @@ -55,7 +53,7 @@ public class PrintWriterWrapper extends PrintWriter { @Override protected void clearError() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override @@ -75,7 +73,7 @@ public class PrintWriterWrapper extends PrintWriter { @Override public PrintWriter format(String format, Object... args) { - throw new NotImplementedException("Forbidden API"); + throw new UnsupportedOperationException("Forbidden API"); } @Override @@ -130,7 +128,7 @@ public class PrintWriterWrapper extends PrintWriter { @Override public PrintWriter printf(String format, Object... args) { - throw new NotImplementedException("Forbidden API"); + throw new UnsupportedOperationException("Forbidden API"); } @Override @@ -185,7 +183,7 @@ public class PrintWriterWrapper extends PrintWriter { @Override protected void setError() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override diff --git a/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java b/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java index e40d06dab6c..38145f32767 100644 --- a/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java +++ b/solr/core/src/java/org/apache/solr/servlet/HttpSolrCall.java @@ -39,7 +39,7 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.http.Header; import org.apache.http.HeaderIterator; import org.apache.http.HttpEntity; diff --git a/solr/core/src/java/org/apache/solr/servlet/LoadAdminUiServlet.java b/solr/core/src/java/org/apache/solr/servlet/LoadAdminUiServlet.java index f5c301e8de5..44763517b4b 100644 --- a/solr/core/src/java/org/apache/solr/servlet/LoadAdminUiServlet.java +++ b/solr/core/src/java/org/apache/solr/servlet/LoadAdminUiServlet.java @@ -18,8 +18,8 @@ package org.apache.solr.servlet; import org.apache.commons.io.IOUtils; import org.apache.commons.io.output.CloseShieldOutputStream; -import org.apache.commons.lang.StringEscapeUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.text.StringEscapeUtils; import org.apache.solr.common.params.CommonParams; import org.apache.solr.core.CoreContainer; import org.apache.solr.core.SolrCore; @@ -71,9 +71,9 @@ public final class LoadAdminUiServlet extends BaseSolrServlet { "${version}" }; String[] replace = new String[] { - StringEscapeUtils.escapeJavaScript(request.getContextPath()), - StringEscapeUtils.escapeJavaScript(CommonParams.CORES_HANDLER_PATH), - StringEscapeUtils.escapeJavaScript(pack.getSpecificationVersion()) + StringEscapeUtils.escapeEcmaScript(request.getContextPath()), + StringEscapeUtils.escapeEcmaScript(CommonParams.CORES_HANDLER_PATH), + StringEscapeUtils.escapeEcmaScript(pack.getSpecificationVersion()) }; out.write( StringUtils.replaceEach(html, search, replace) ); diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java index caa78c2bcc0..d36849a9adc 100644 --- a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java +++ b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java @@ -54,7 +54,7 @@ import com.codahale.metrics.jvm.GarbageCollectorMetricSet; import com.codahale.metrics.jvm.MemoryUsageGaugeSet; import com.codahale.metrics.jvm.ThreadStatesGaugeSet; import org.apache.commons.io.FileCleaningTracker; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.http.client.HttpClient; import org.apache.lucene.util.Version; import org.apache.solr.api.V2HttpCall; diff --git a/solr/core/src/java/org/apache/solr/update/processor/ConcatFieldUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/ConcatFieldUpdateProcessorFactory.java index 73299c8869b..bcddd1eb124 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/ConcatFieldUpdateProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/ConcatFieldUpdateProcessorFactory.java @@ -16,7 +16,7 @@ */ package org.apache.solr.update.processor; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.common.SolrInputField; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrCore; diff --git a/solr/core/src/java/org/apache/solr/update/processor/ParseDateFieldUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/ParseDateFieldUpdateProcessorFactory.java index 08aa973d155..9d53c63875e 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/ParseDateFieldUpdateProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/ParseDateFieldUpdateProcessorFactory.java @@ -36,7 +36,7 @@ import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; -import org.apache.commons.lang.LocaleUtils; +import org.apache.commons.lang3.LocaleUtils; import org.apache.solr.common.SolrException; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrCore; @@ -171,7 +171,7 @@ public class ParseDateFieldUpdateProcessorFactory extends FieldMutatingUpdatePro if (null != localeParam) { locale = LocaleUtils.toLocale(localeParam); } else { - locale = LocaleUtils.toLocale("en_US"); // because well-known patterns assume this + locale = Locale.US; // because well-known patterns assume this } Object defaultTimeZoneParam = args.remove(DEFAULT_TIME_ZONE_PARAM); diff --git a/solr/core/src/java/org/apache/solr/update/processor/ParseNumericFieldUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/ParseNumericFieldUpdateProcessorFactory.java index 65058a6a0cf..e00fd081e73 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/ParseNumericFieldUpdateProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/ParseNumericFieldUpdateProcessorFactory.java @@ -16,7 +16,7 @@ */ package org.apache.solr.update.processor; -import org.apache.commons.lang.LocaleUtils; +import org.apache.commons.lang3.LocaleUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.core.SolrCore; import org.apache.solr.schema.FieldType; diff --git a/solr/core/src/java/org/apache/solr/update/processor/StatelessScriptUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/StatelessScriptUpdateProcessorFactory.java index 37c8ed84c73..c66f1839522 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/StatelessScriptUpdateProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/StatelessScriptUpdateProcessorFactory.java @@ -27,7 +27,6 @@ import org.apache.solr.request.LocalSolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; import org.apache.solr.update.*; import org.apache.solr.util.plugin.SolrCoreAware; -import org.apache.commons.lang.StringUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.FilenameUtils; @@ -352,7 +351,7 @@ public class StatelessScriptUpdateProcessorFactory extends UpdateRequestProcesso engines.addAll(f.getNames()); } } - result = StringUtils.join(engines, ", "); + result = String.join(", ", engines); } catch (RuntimeException e) { /* :NOOP: */ } diff --git a/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java index a36e940a1fc..96d726367d2 100644 --- a/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java +++ b/solr/core/src/java/org/apache/solr/update/processor/UUIDUpdateProcessorFactory.java @@ -19,7 +19,7 @@ package org.apache.solr.update.processor; import java.util.UUID; import java.util.Locale; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.request.SolrQueryRequest; import org.apache.solr.response.SolrQueryResponse; diff --git a/solr/core/src/java/org/apache/solr/util/SolrCLI.java b/solr/core/src/java/org/apache/solr/util/SolrCLI.java index 58e24d11809..e25af145c1e 100755 --- a/solr/core/src/java/org/apache/solr/util/SolrCLI.java +++ b/solr/core/src/java/org/apache/solr/util/SolrCLI.java @@ -78,8 +78,7 @@ import org.apache.commons.exec.OS; import org.apache.commons.exec.environment.EnvironmentUtils; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.BooleanUtils; -import org.apache.commons.lang.SystemUtils; +import org.apache.commons.lang3.SystemUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NoHttpResponseException; @@ -4093,8 +4092,7 @@ public class SolrCLI { private void ensureArgumentIsValidBooleanIfPresent(CommandLine cli, String argName) { if (cli.hasOption(argName)) { final String value = cli.getOptionValue(argName); - final Boolean parsedBoolean = BooleanUtils.toBooleanObject(value); - if (parsedBoolean == null) { + if (Boolean.parseBoolean(value)) { echo("Argument [" + argName + "] must be either true or false, but was [" + value + "]"); exit(1); } diff --git a/solr/core/src/test/org/apache/solr/TestDistributedSearch.java b/solr/core/src/test/org/apache/solr/TestDistributedSearch.java index 5c29e8b679d..aba056c812e 100644 --- a/solr/core/src/test/org/apache/solr/TestDistributedSearch.java +++ b/solr/core/src/test/org/apache/solr/TestDistributedSearch.java @@ -31,7 +31,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.ExecutorCompletionService; import java.util.concurrent.Future; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.util.LuceneTestCase.Slow; import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrClient; diff --git a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java index 0d689bddd7e..510c099a37d 100644 --- a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java @@ -39,7 +39,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; -import org.apache.commons.lang.StringUtils; import org.apache.lucene.util.IOUtils; import org.apache.lucene.util.LuceneTestCase.Slow; import org.apache.solr.JSONTestUtil; @@ -540,7 +539,7 @@ public class BasicDistributedZkTest extends AbstractFullDistribZkTestBase { } // any combination of replica alternatives should give same numDocs - String replicas = StringUtils.join(replicaAlts.toArray(), "|"); + String replicas = String.join("|", replicaAlts); query.set("shards", replicas); numDocs = client.query(query).getResults().getNumFound(); assertTrue("numDocs < 0 for replicas "+replicas+" via "+client, @@ -571,11 +570,11 @@ public class BasicDistributedZkTest extends AbstractFullDistribZkTestBase { } } Collections.shuffle(replicas, random()); - randomShards.add(StringUtils.join(replicas, "|")); + randomShards.add(String.join("|", replicas)); } } } - String randShards = StringUtils.join(randomShards, ","); + String randShards = String.join(",", randomShards); query.set("shards", randShards); for (SolrClient client : this.clients) { assertEquals("numDocs for "+randShards+" via "+client, diff --git a/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java b/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java index 35ce2099df6..bc7de299cef 100644 --- a/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/DistribJoinFromCollectionTest.java @@ -25,7 +25,6 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.impl.HttpSolrClient; @@ -98,7 +97,7 @@ public class DistribJoinFromCollectionTest extends SolrCloudTestCase{ // deploy the "from" collection to all nodes where the "to" collection exists CollectionAdminRequest.createCollection(fromColl, configName, 1, 4) - .setCreateNodeSet(StringUtils.join(nodeSet, ",")) + .setCreateNodeSet(String.join(",", nodeSet)) .setProperties(collectionProperties) .process(cluster.getSolrClient()); diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderFailureAfterFreshStartTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderFailureAfterFreshStartTest.java index 6b445ac72f7..353c0c903bd 100644 --- a/solr/core/src/test/org/apache/solr/cloud/LeaderFailureAfterFreshStartTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/LeaderFailureAfterFreshStartTest.java @@ -29,7 +29,7 @@ import java.util.Set; import java.util.stream.Collectors; import org.apache.commons.codec.digest.DigestUtils; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.lucene.util.LuceneTestCase.Slow; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.request.UpdateRequest; diff --git a/solr/core/src/test/org/apache/solr/cloud/PeerSyncReplicationTest.java b/solr/core/src/test/org/apache/solr/cloud/PeerSyncReplicationTest.java index da760228628..5169d22d3a2 100644 --- a/solr/core/src/test/org/apache/solr/cloud/PeerSyncReplicationTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/PeerSyncReplicationTest.java @@ -34,7 +34,7 @@ import java.util.stream.Collectors; import com.codahale.metrics.Counter; import com.codahale.metrics.Metric; import com.codahale.metrics.MetricRegistry; -import org.apache.commons.lang.RandomStringUtils; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.lucene.util.LuceneTestCase.Slow; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServerException; diff --git a/solr/core/src/test/org/apache/solr/cloud/SSLMigrationTest.java b/solr/core/src/test/org/apache/solr/cloud/SSLMigrationTest.java index 6fe7078e546..fc8ec9f63a6 100644 --- a/solr/core/src/test/org/apache/solr/cloud/SSLMigrationTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/SSLMigrationTest.java @@ -17,7 +17,7 @@ package org.apache.solr.cloud; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.util.LuceneTestCase.Slow; import org.apache.lucene.util.LuceneTestCase.AwaitsFix; import org.apache.solr.SolrTestCaseJ4.SuppressSSL; diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudPivotFacet.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudPivotFacet.java index 97ae487dc4a..ec304c2d9e0 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPivotFacet.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPivotFacet.java @@ -26,7 +26,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import org.apache.commons.lang.StringUtils; import org.apache.lucene.util.TestUtil; import org.apache.solr.SolrTestCaseJ4.SuppressSSL; import org.apache.solr.client.solrj.SolrServerException; @@ -496,7 +495,7 @@ public class TestCloudPivotFacet extends AbstractFullDistribZkTestBase { // makes it a robust test (especially for multi-valued fields) fields[i] = fieldNames[TestUtil.nextInt(random(),0,fieldNames.length-1)]; } - return StringUtils.join(fields, ","); + return String.join(",", fields); } /** diff --git a/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java b/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java index 31d69cf24cb..d4aeae64c17 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestCloudPseudoReturnFields.java @@ -27,7 +27,6 @@ import java.util.List; import java.util.Map; import java.util.Random; -import org.apache.commons.lang.StringUtils; import org.apache.lucene.util.TestUtil; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; @@ -732,7 +731,7 @@ public class TestCloudPseudoReturnFields extends SolrCloudTestCase { Collections.shuffle(fl, random); - final SolrParams singleFl = params("q","*:*", "rows", "1","fl",StringUtils.join(fl.toArray(),',')); + final SolrParams singleFl = params("q","*:*", "rows", "1","fl",String.join(",", fl)); final ModifiableSolrParams multiFl = params("q","*:*", "rows", "1"); for (String item : fl) { multiFl.add("fl",item); @@ -767,7 +766,7 @@ public class TestCloudPseudoReturnFields extends SolrCloudTestCase { Collections.shuffle(fl, random); - final SolrParams singleFl = params("fl",StringUtils.join(fl.toArray(),',')); + final SolrParams singleFl = params("fl",String.join(",", fl)); final ModifiableSolrParams multiFl = params(); for (String item : fl) { multiFl.add("fl",item); diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionTooManyReplicasTest.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionTooManyReplicasTest.java index 1ac0cae3540..25aaf4ecb8c 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionTooManyReplicasTest.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/CollectionTooManyReplicasTest.java @@ -20,7 +20,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import org.apache.commons.lang.StringUtils; import org.apache.lucene.util.LuceneTestCase.Slow; import org.apache.solr.client.solrj.embedded.JettySolrRunner; import org.apache.solr.client.solrj.request.CollectionAdminRequest; @@ -147,7 +146,7 @@ public class CollectionTooManyReplicasTest extends SolrCloudTestCase { List nodes = getAllNodeNames(collectionName); CollectionAdminRequest.createShard(collectionName, "shard4") - .setNodeSet(StringUtils.join(nodes, ",")) + .setNodeSet(String.join(",", nodes)) .process(cluster.getSolrClient()); // And just for yucks, insure we fail the "regular" one again. diff --git a/solr/core/src/test/org/apache/solr/cloud/api/collections/ReplicaPropertiesBase.java b/solr/core/src/test/org/apache/solr/cloud/api/collections/ReplicaPropertiesBase.java index 6f7e7179710..fd4a4097bbb 100644 --- a/solr/core/src/test/org/apache/solr/cloud/api/collections/ReplicaPropertiesBase.java +++ b/solr/core/src/test/org/apache/solr/cloud/api/collections/ReplicaPropertiesBase.java @@ -16,7 +16,7 @@ */ package org.apache.solr.cloud.api.collections; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.CloudSolrClient; import org.apache.solr.client.solrj.request.QueryRequest; diff --git a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java index 0831da20968..f9d2dad7c0a 100644 --- a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java +++ b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java @@ -30,7 +30,6 @@ import java.util.regex.Pattern; import com.google.common.collect.ImmutableList; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.SolrException; import org.apache.solr.common.params.CommonParams; @@ -736,7 +735,7 @@ public class TestLazyCores extends SolrTestCaseJ4 { } private static final String makePath(String... args) { - return StringUtils.join(args, File.separator); + return String.join(File.separator, args); } @Test diff --git a/solr/core/src/test/org/apache/solr/handler/AnalysisRequestHandlerTestBase.java b/solr/core/src/test/org/apache/solr/handler/AnalysisRequestHandlerTestBase.java index b87c94cd083..14036ede07f 100644 --- a/solr/core/src/test/org/apache/solr/handler/AnalysisRequestHandlerTestBase.java +++ b/solr/core/src/test/org/apache/solr/handler/AnalysisRequestHandlerTestBase.java @@ -18,7 +18,7 @@ package org.apache.solr.handler; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.util.NamedList; -import org.apache.commons.lang.ArrayUtils; +import org.apache.commons.lang3.ArrayUtils; /** * A base class for all analysis request handler tests. diff --git a/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java index 961bb25837a..c675868a146 100644 --- a/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java +++ b/solr/core/src/test/org/apache/solr/handler/XmlUpdateRequestHandlerTest.java @@ -16,7 +16,6 @@ */ package org.apache.solr.handler; -import org.apache.commons.lang.ObjectUtils; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.SolrInputDocument; import org.apache.solr.common.util.ContentStreamBase; @@ -37,6 +36,7 @@ import java.io.IOException; import java.io.StringReader; import java.util.Collection; import java.util.LinkedList; +import java.util.Objects; import java.util.Queue; public class XmlUpdateRequestHandlerTest extends SolrTestCaseJ4 { @@ -223,10 +223,10 @@ public class XmlUpdateRequestHandlerTest extends SolrTestCaseJ4 { DeleteUpdateCommand expected = deleteCommands.poll(); assertNotNull("Unexpected delete command: [" + cmd + "]", expected); assertTrue("Expected [" + expected + "] but found [" + cmd + "]", - ObjectUtils.equals(expected.id, cmd.id) && - ObjectUtils.equals(expected.query, cmd.query) && + Objects.equals(expected.id, cmd.id) && + Objects.equals(expected.query, cmd.query) && expected.commitWithin==cmd.commitWithin && - ObjectUtils.equals(expected.getRoute(), cmd.getRoute())); + Objects.equals(expected.getRoute(), cmd.getRoute())); } } diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java index 5d3c7f414f1..52c05dd558b 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java @@ -17,7 +17,6 @@ package org.apache.solr.handler.component; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang.StringUtils; import org.apache.solr.SolrJettyTestBase; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrQuery; @@ -187,7 +186,7 @@ public class DistributedDebugComponentTest extends SolrJettyTestBase { } else if (random().nextBoolean()) { shards.remove(shard2); } - q.set("shards", StringUtils.join(shards, ",")); + q.set("shards", String.join(",", shards)); List debug = new ArrayList(10); diff --git a/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java b/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java index e525ce9265a..a1d3f673566 100644 --- a/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java +++ b/solr/core/src/test/org/apache/solr/handler/tagger/TaggerTestCase.java @@ -32,8 +32,8 @@ import java.util.List; import java.util.Map; import java.util.TreeSet; -import org.apache.commons.lang.builder.CompareToBuilder; -import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.CompareToBuilder; +import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.lucene.document.Document; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.common.params.CommonParams; diff --git a/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java b/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java index 71281293b5f..068273d9298 100644 --- a/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java +++ b/solr/core/src/test/org/apache/solr/schema/TestSortableTextField.java @@ -21,7 +21,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.lucene.document.Field; import org.apache.lucene.document.SortedDocValuesField; diff --git a/solr/core/src/test/org/apache/solr/search/TestPseudoReturnFields.java b/solr/core/src/test/org/apache/solr/search/TestPseudoReturnFields.java index 10803548c69..e56f265b47f 100644 --- a/solr/core/src/test/org/apache/solr/search/TestPseudoReturnFields.java +++ b/solr/core/src/test/org/apache/solr/search/TestPseudoReturnFields.java @@ -28,8 +28,6 @@ import org.apache.solr.schema.SchemaField; import org.apache.solr.common.params.SolrParams; import org.apache.solr.common.params.ModifiableSolrParams; -import org.apache.commons.lang.StringUtils; - import org.junit.Before; import org.junit.BeforeClass; @@ -691,7 +689,7 @@ public class TestPseudoReturnFields extends SolrTestCaseJ4 { Collections.shuffle(fl, random); - final SolrParams singleFl = params("q","*:*", "rows", "1","fl",StringUtils.join(fl.toArray(),',')); + final SolrParams singleFl = params("q","*:*", "rows", "1","fl",String.join(",", fl)); final ModifiableSolrParams multiFl = params("q","*:*", "rows", "1"); for (String item : fl) { multiFl.add("fl",item); @@ -725,7 +723,7 @@ public class TestPseudoReturnFields extends SolrTestCaseJ4 { Collections.shuffle(fl, random); - final SolrParams singleFl = params("fl",StringUtils.join(fl.toArray(),',')); + final SolrParams singleFl = params("fl",String.join(",", fl)); final ModifiableSolrParams multiFl = params(); for (String item : fl) { multiFl.add("fl",item); diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java index 91b912f7fd4..d2ba787d4f6 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetJoinDomain.java @@ -29,7 +29,6 @@ import java.util.Map; import java.util.Random; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.commons.lang.StringUtils; import org.apache.lucene.util.TestUtil; import org.apache.solr.client.solrj.SolrClient; import org.apache.solr.client.solrj.SolrServerException; @@ -418,7 +417,7 @@ public class TestCloudJSONFacetJoinDomain extends SolrCloudTestCase { // keep queries simple, just use str fields - not point of test clauses.add(strfield(fieldNum) + ":" + randFieldValue(fieldNum)); } - return "(" + StringUtils.join(clauses, " OR ") + ")"; + return "(" + String.join(" OR ", clauses) + ")"; } /** diff --git a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java index e2129935adb..3ce06609816 100644 --- a/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java +++ b/solr/core/src/test/org/apache/solr/search/facet/TestCloudJSONFacetSKG.java @@ -28,8 +28,6 @@ import java.util.Map; import java.util.Random; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.commons.lang.StringUtils; - import org.apache.lucene.util.LuceneTestCase.Slow; import org.apache.lucene.util.TestUtil; import org.apache.solr.client.solrj.SolrClient; @@ -300,7 +298,7 @@ public class TestCloudJSONFacetSKG extends SolrCloudTestCase { private static String buildORQuery(String... clauses) { assert 0 < clauses.length; - return "(" + StringUtils.join(clauses, " OR ") + ")"; + return "(" + String.join(" OR ", clauses) + ")"; } /** diff --git a/solr/licenses/commons-text-1.4.jar.sha1 b/solr/licenses/commons-text-1.4.jar.sha1 deleted file mode 100644 index ebda48670d2..00000000000 --- a/solr/licenses/commons-text-1.4.jar.sha1 +++ /dev/null @@ -1 +0,0 @@ -680b74de9c393bbf8d9e951af301659b16845907 diff --git a/solr/licenses/commons-text-1.6.jar.sha1 b/solr/licenses/commons-text-1.6.jar.sha1 new file mode 100644 index 00000000000..84b2ef1f14f --- /dev/null +++ b/solr/licenses/commons-text-1.6.jar.sha1 @@ -0,0 +1 @@ +ba72cf0c40cf701e972fe7720ae844629f4ecca2 diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpClientUtilTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpClientUtilTest.java index b6dcf57aa0d..381e20297c7 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpClientUtilTest.java +++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/HttpClientUtilTest.java @@ -22,7 +22,7 @@ import java.io.IOException; import org.apache.solr.SolrTestCase; import org.apache.solr.client.solrj.impl.HttpClientUtil.SchemaRegistryProvider; -import org.apache.commons.lang.reflect.FieldUtils; +import org.apache.commons.lang3.reflect.FieldUtils; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.ssl.DefaultHostnameVerifier; import org.apache.http.conn.ssl.NoopHostnameVerifier; diff --git a/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java b/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java index 9b109707d53..58ddb53257e 100644 --- a/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java +++ b/solr/solrj/src/test/org/apache/solr/common/util/TestJsonRecordReader.java @@ -25,7 +25,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.solr.SolrTestCaseJ4; import org.apache.solr.util.RecordingJSONParser;