You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by kr...@apache.org on 2023/03/27 14:16:37 UTC
[solr] branch branch_9x updated: SOLR-16716: Replace commons-io usages with pure Java (#1491)
This is an automated email from the ASF dual-hosted git repository.
krisden pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/branch_9x by this push:
new d9513115b94 SOLR-16716: Replace commons-io usages with pure Java (#1491)
d9513115b94 is described below
commit d9513115b947e487ac7ed77a16d06ce08e01eb59
Author: Kevin Risden <ri...@users.noreply.github.com>
AuthorDate: Mon Mar 27 09:54:59 2023 -0400
SOLR-16716: Replace commons-io usages with pure Java (#1491)
---
.../forbidden-apis/com.google.guava.guava.all.txt | 9 +++++-
.../forbidden-apis/commons-io.commons-io.all.txt | 11 +++++++
.../cloud/api/collections/TimeRoutedAlias.java | 26 ++++++++++-------
.../solr/handler/component/HighlightComponent.java | 4 +--
.../solr/packagemanager/RepositoryManager.java | 4 +--
.../src/java/org/apache/solr/util/SolrCLI.java | 34 +++++++++++++---------
.../org/apache/solr/cloud/TestConfigSetsAPI.java | 30 +++++++++----------
.../solr/cloud/TestConfigSetsAPIZkFailure.java | 18 ++++++------
.../src/test/org/apache/solr/cloud/ZkCLITest.java | 32 ++++++++++++--------
.../apache/solr/core/TestConfigSetImmutable.java | 17 ++++++-----
.../org/apache/solr/core/TestCoreDiscovery.java | 5 ++--
.../test/org/apache/solr/core/TestLazyCores.java | 22 ++++++--------
.../apache/solr/schema/ChangedSchemaMergeTest.java | 24 +++++++--------
.../apache/solr/servlet/SolrRequestParserTest.java | 10 +++----
.../test/org/apache/solr/s3/S3IndexInputTest.java | 4 +--
15 files changed, 142 insertions(+), 108 deletions(-)
diff --git a/gradle/validation/forbidden-apis/com.google.guava.guava.all.txt b/gradle/validation/forbidden-apis/com.google.guava.guava.all.txt
index 7ded09d9789..c7029da3885 100644
--- a/gradle/validation/forbidden-apis/com.google.guava.guava.all.txt
+++ b/gradle/validation/forbidden-apis/com.google.guava.guava.all.txt
@@ -40,4 +40,11 @@ com.google.common.base.Strings
@defaultMessage Use Caffeine cache instead
com.google.common.cache.**
-# TODO com.google.common.base.MoreObjects
+@defaultMessage Use StringBuilder
+com.google.common.base.MoreObjects#toStringHelper(**)
+
+@defaultMessage Use Objects.requireNonNullElse instead
+com.google.common.base.MoreObjects#firstNonNull(**)
+
+@defaultMessage use Objects methods
+com.google.common.base.MoreObjects
diff --git a/gradle/validation/forbidden-apis/commons-io.commons-io.all.txt b/gradle/validation/forbidden-apis/commons-io.commons-io.all.txt
index 8ca8403272b..7f4694fb8b7 100644
--- a/gradle/validation/forbidden-apis/commons-io.commons-io.all.txt
+++ b/gradle/validation/forbidden-apis/commons-io.commons-io.all.txt
@@ -11,6 +11,17 @@ org.apache.commons.io.FileUtils#deleteDirectory(java.io.File)
@defaultMessage Use Files.readString instead
org.apache.commons.io.FileUtils#readFileToString(**)
+@defaultMessage Use Files.readAllBytes instead
+org.apache.commons.io.FileUtils#readFileToByteArray(**)
+
+@defaultMessage Use Files.readAllLines instead
+org.apache.commons.io.FileUtils#readLines(**)
+
+@defaultMessage Use Files.writeString instead
+org.apache.commons.io.FileUtils#write(**)
+org.apache.commons.io.FileUtils#writeLines(**)
+org.apache.commons.io.FileUtils#writeStringToFile(**)
+
@defaultMessage Use OutputStream.nullOutputStream() instead
org.apache.commons.io.output.NullPrintStream
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java
index 987cb3cd4ca..846ba8d67d7 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java
@@ -25,7 +25,6 @@ import static org.apache.solr.common.SolrException.ErrorCode.BAD_REQUEST;
import static org.apache.solr.common.params.CollectionAdminParams.ROUTER_PREFIX;
import static org.apache.solr.common.params.CommonParams.TZ;
-import com.google.common.base.MoreObjects;
import java.lang.invoke.MethodHandles;
import java.text.ParseException;
import java.time.Instant;
@@ -324,15 +323,22 @@ public class TimeRoutedAlias extends RoutedAlias {
@Override
public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("aliasName", aliasName)
- .add("routeField", routeField)
- .add("intervalMath", intervalMath)
- .add("maxFutureMs", maxFutureMs)
- .add("preemptiveCreateMath", preemptiveCreateMath)
- .add("autoDeleteAgeMath", autoDeleteAgeMath)
- .add("timeZone", timeZone)
- .toString();
+ return "TimeRoutedAlias=("
+ + "aliasName="
+ + aliasName
+ + ",routeField="
+ + routeField
+ + ",intervalMath="
+ + intervalMath
+ + ",maxFutureMs="
+ + maxFutureMs
+ + ",preemptiveCreateMath="
+ + preemptiveCreateMath
+ + ",autoDeleteAgeMath="
+ + autoDeleteAgeMath
+ + ",timeZone="
+ + timeZone
+ + ')';
}
/**
diff --git a/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java b/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
index 3a1684cd45d..220ff1aca74 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/HighlightComponent.java
@@ -16,11 +16,11 @@
*/
package org.apache.solr.handler.component;
-import com.google.common.base.MoreObjects;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -98,7 +98,7 @@ public class HighlightComponent extends SearchComponent
rb.setNeedDocList(true);
String hlq = params.get(HighlightParams.Q);
String hlparser =
- MoreObjects.firstNonNull(
+ Objects.requireNonNullElse(
params.get(HighlightParams.QPARSER),
params.get(QueryParsing.DEFTYPE, QParserPlugin.DEFAULT_QTYPE));
if (hlq != null) {
diff --git a/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java b/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
index 45d821f5cd5..303c7ccd30a 100644
--- a/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
+++ b/solr/core/src/java/org/apache/solr/packagemanager/RepositoryManager.java
@@ -25,6 +25,7 @@ import java.io.UnsupportedEncodingException;
import java.lang.invoke.MethodHandles;
import java.net.URL;
import java.nio.ByteBuffer;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
@@ -35,7 +36,6 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.stream.Collectors;
-import org.apache.commons.io.FileUtils;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
@@ -201,7 +201,7 @@ public class RepositoryManager {
for (int i = 0; i < release.artifacts.size(); i++) {
PackageUtils.postFile(
solrClient,
- ByteBuffer.wrap(FileUtils.readFileToByteArray(downloaded.get(i).toFile())),
+ ByteBuffer.wrap(Files.readAllBytes(downloaded.get(i))),
String.format(
Locale.ROOT,
"/package/%s/%s/%s",
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 0f11ed44147..dd392e0a184 100755
--- a/solr/core/src/java/org/apache/solr/util/SolrCLI.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrCLI.java
@@ -56,6 +56,7 @@ import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
+import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import javax.net.ssl.SSLPeerUnverifiedException;
@@ -4334,7 +4335,7 @@ public class SolrCLI implements CLIO {
}
// update the solr.in.sh file to contain the necessary authentication lines
- updateIncludeFileEnableAuth(includeFile, null, config, cli);
+ updateIncludeFileEnableAuth(includeFile.toPath(), null, config, cli);
echo(
"Successfully enabled Kerberos authentication; please restart any running Solr nodes.");
return 0;
@@ -4369,7 +4370,7 @@ public class SolrCLI implements CLIO {
}
// update the solr.in.sh file to comment out the necessary authentication lines
- updateIncludeFileDisableAuth(includeFile, cli);
+ updateIncludeFileDisableAuth(includeFile.toPath(), cli);
return 0;
default:
@@ -4529,13 +4530,14 @@ public class SolrCLI implements CLIO {
System.exit(0);
}
- FileUtils.writeStringToFile(
- basicAuthConfFile,
+ Files.writeString(
+ basicAuthConfFile.toPath(),
"httpBasicAuthUser=" + username + "\nhttpBasicAuthPassword=" + password,
StandardCharsets.UTF_8);
// update the solr.in.sh file to contain the necessary authentication lines
- updateIncludeFileEnableAuth(includeFile, basicAuthConfFile.getAbsolutePath(), null, cli);
+ updateIncludeFileEnableAuth(
+ includeFile.toPath(), basicAuthConfFile.getAbsolutePath(), null, cli);
final String successMessage =
String.format(
Locale.ROOT,
@@ -4575,7 +4577,7 @@ public class SolrCLI implements CLIO {
}
// update the solr.in.sh file to comment out the necessary authentication lines
- updateIncludeFileDisableAuth(includeFile, cli);
+ updateIncludeFileDisableAuth(includeFile.toPath(), cli);
return 0;
default:
@@ -4644,11 +4646,11 @@ public class SolrCLI implements CLIO {
* null.
*/
private void updateIncludeFileEnableAuth(
- File includeFile, String basicAuthConfFile, String kerberosConfig, CommandLine cli)
+ Path includeFile, String basicAuthConfFile, String kerberosConfig, CommandLine cli)
throws IOException {
assert !(basicAuthConfFile != null
&& kerberosConfig != null); // only one of the two needs to be populated
- List<String> includeFileLines = FileUtils.readLines(includeFile, StandardCharsets.UTF_8);
+ List<String> includeFileLines = Files.readAllLines(includeFile, StandardCharsets.UTF_8);
for (int i = 0; i < includeFileLines.size(); i++) {
String line = includeFileLines.get(i);
if (authenticationVariables.contains(line.trim().split("=")[0].trim())) { // Non-Windows
@@ -4690,17 +4692,19 @@ public class SolrCLI implements CLIO {
includeFileLines.add("SOLR_AUTHENTICATION_OPTS=\"" + kerberosConfig + "\"");
}
}
- FileUtils.writeLines(includeFile, StandardCharsets.UTF_8.name(), includeFileLines);
+
+ String lines = includeFileLines.stream().collect(Collectors.joining(System.lineSeparator()));
+ Files.writeString(includeFile, lines, StandardCharsets.UTF_8);
if (basicAuthConfFile != null) {
echoIfVerbose("Written out credentials file: " + basicAuthConfFile, cli);
}
- echoIfVerbose("Updated Solr include file: " + includeFile.getAbsolutePath(), cli);
+ echoIfVerbose("Updated Solr include file: " + includeFile.toAbsolutePath(), cli);
}
- private void updateIncludeFileDisableAuth(File includeFile, CommandLine cli)
+ private void updateIncludeFileDisableAuth(Path includeFile, CommandLine cli)
throws IOException {
- List<String> includeFileLines = FileUtils.readLines(includeFile, StandardCharsets.UTF_8);
+ List<String> includeFileLines = Files.readAllLines(includeFile, StandardCharsets.UTF_8);
boolean hasChanged = false;
for (int i = 0; i < includeFileLines.size(); i++) {
String line = includeFileLines.get(i);
@@ -4716,8 +4720,10 @@ public class SolrCLI implements CLIO {
}
}
if (hasChanged) {
- FileUtils.writeLines(includeFile, StandardCharsets.UTF_8.name(), includeFileLines);
- echoIfVerbose("Commented out necessary lines from " + includeFile.getAbsolutePath(), cli);
+ String lines =
+ includeFileLines.stream().collect(Collectors.joining(System.lineSeparator()));
+ Files.writeString(includeFile, lines, StandardCharsets.UTF_8);
+ echoIfVerbose("Commented out necessary lines from " + includeFile.toAbsolutePath(), cli);
}
}
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
index efc92fec914..1da60d85ff9 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
@@ -55,7 +55,7 @@ import javax.servlet.FilterChain;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.http.HttpEntity;
import org.apache.http.auth.BasicUserPrincipal;
import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
@@ -288,17 +288,17 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
private void setupBaseConfigSet(String baseConfigSetName, Map<String, String> oldProps)
throws Exception {
- final File configDir = getFile("solr").toPath().resolve("configsets/configset-2/conf").toFile();
- final File tmpConfigDir = createTempDir().toFile();
- tmpConfigDir.deleteOnExit();
- FileUtils.copyDirectory(configDir, tmpConfigDir);
+ final Path configDir = getFile("solr").toPath().resolve("configsets/configset-2/conf");
+ final Path tmpConfigDir = createTempDir();
+ tmpConfigDir.toFile().deleteOnExit();
+ PathUtils.copyDirectory(configDir, tmpConfigDir);
if (oldProps != null) {
- FileUtils.write(
- new File(tmpConfigDir, ConfigSetProperties.DEFAULT_FILENAME),
+ Files.writeString(
+ tmpConfigDir.resolve(ConfigSetProperties.DEFAULT_FILENAME),
getConfigSetProps(oldProps),
UTF_8);
}
- getConfigSetService().uploadConfig(baseConfigSetName, tmpConfigDir.toPath());
+ getConfigSetService().uploadConfig(baseConfigSetName, tmpConfigDir);
}
private void verifyCreate(
@@ -1871,16 +1871,16 @@ public class TestConfigSetsAPI extends SolrCloudTestCase {
public void testDeleteErrors() throws Exception {
final String baseUrl = cluster.getJettySolrRunners().get(0).getBaseUrl().toString();
final SolrClient solrClient = getHttpSolrClient(baseUrl);
- final File configDir = getFile("solr").toPath().resolve("configsets/configset-2/conf").toFile();
- final File tmpConfigDir = createTempDir().toFile();
- tmpConfigDir.deleteOnExit();
+ final Path configDir = getFile("solr").toPath().resolve("configsets/configset-2/conf");
+ final Path tmpConfigDir = createTempDir();
+ tmpConfigDir.toFile().deleteOnExit();
// Ensure ConfigSet is immutable
- FileUtils.copyDirectory(configDir, tmpConfigDir);
- FileUtils.write(
- new File(tmpConfigDir, "configsetprops.json"),
+ PathUtils.copyDirectory(configDir, tmpConfigDir);
+ Files.writeString(
+ tmpConfigDir.resolve("configsetprops.json"),
getConfigSetProps(Map.of("immutable", "true")),
UTF_8);
- getConfigSetService().uploadConfig("configSet", tmpConfigDir.toPath());
+ getConfigSetService().uploadConfig("configSet", tmpConfigDir);
// no ConfigSet name
DeleteNoErrorChecking delete = new DeleteNoErrorChecking();
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java
index f5043df7abb..f5728f09387 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPIZkFailure.java
@@ -18,10 +18,10 @@ package org.apache.solr.cloud;
import static org.apache.solr.cloud.ZkConfigSetService.CONFIGS_ZKNODE;
-import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Collection;
import java.util.List;
@@ -30,7 +30,7 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantReadWriteLock;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.jute.InputArchive;
import org.apache.jute.OutputArchive;
import org.apache.jute.Record;
@@ -141,17 +141,17 @@ public class TestConfigSetsAPIZkFailure extends SolrTestCaseJ4 {
private void setupBaseConfigSet(String baseConfigSetName, Map<String, String> oldProps)
throws Exception {
- final File configDir = getFile("solr").toPath().resolve("configsets/configset-2/conf").toFile();
- final File tmpConfigDir = createTempDir().toFile();
- tmpConfigDir.deleteOnExit();
- FileUtils.copyDirectory(configDir, tmpConfigDir);
+ final Path configDir = getFile("solr").toPath().resolve("configsets/configset-2/conf");
+ final Path tmpConfigDir = createTempDir();
+ tmpConfigDir.toFile().deleteOnExit();
+ PathUtils.copyDirectory(configDir, tmpConfigDir);
if (oldProps != null) {
- FileUtils.write(
- new File(tmpConfigDir, ConfigSetProperties.DEFAULT_FILENAME),
+ Files.writeString(
+ tmpConfigDir.resolve(ConfigSetProperties.DEFAULT_FILENAME),
getConfigSetProps(oldProps),
StandardCharsets.UTF_8);
}
- solrCluster.uploadConfigSet(tmpConfigDir.toPath(), baseConfigSetName);
+ solrCluster.uploadConfigSet(tmpConfigDir, baseConfigSetName);
solrCluster
.getZkClient()
.setData(
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java b/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
index 3a84f483ff7..20f0a8a2006 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
@@ -454,43 +454,51 @@ public class ZkCLITest extends SolrTestCaseJ4 {
@Test
public void testGetFile() throws Exception {
- File tmpDir = createTempDir().toFile();
+ Path tmpDir = createTempDir();
String getNode = "/getFileNode";
byte[] data = "getFileNode-data".getBytes(StandardCharsets.UTF_8);
this.zkClient.create(getNode, data, CreateMode.PERSISTENT, true);
- File file =
- new File(tmpDir, "solrtest-getfile-" + this.getClass().getName() + "-" + System.nanoTime());
+ Path file =
+ tmpDir.resolve("solrtest-getfile-" + this.getClass().getName() + "-" + System.nanoTime());
String[] args =
new String[] {
- "-zkhost", zkServer.getZkAddress(), "-cmd", "getfile", getNode, file.getAbsolutePath()
+ "-zkhost",
+ zkServer.getZkAddress(),
+ "-cmd",
+ "getfile",
+ getNode,
+ file.toAbsolutePath().toString()
};
ZkCLI.main(args);
- byte[] readData = FileUtils.readFileToByteArray(file);
- assertArrayEquals(data, readData);
+ assertArrayEquals(data, Files.readAllBytes(file));
}
@Test
public void testGetFileCompressed() throws Exception {
- File tmpDir = createTempDir().toFile();
+ Path tmpDir = createTempDir();
String getNode = "/getFileNode";
byte[] data = "getFileNode-data".getBytes(StandardCharsets.UTF_8);
ZLibCompressor zLibCompressor = new ZLibCompressor();
this.zkClient.create(getNode, zLibCompressor.compressBytes(data), CreateMode.PERSISTENT, true);
- File file =
- new File(tmpDir, "solrtest-getfile-" + this.getClass().getName() + "-" + System.nanoTime());
+ Path file =
+ tmpDir.resolve("solrtest-getfile-" + this.getClass().getName() + "-" + System.nanoTime());
String[] args =
new String[] {
- "-zkhost", zkServer.getZkAddress(), "-cmd", "getfile", getNode, file.getAbsolutePath()
+ "-zkhost",
+ zkServer.getZkAddress(),
+ "-cmd",
+ "getfile",
+ getNode,
+ file.toAbsolutePath().toString()
};
ZkCLI.main(args);
- byte[] readData = FileUtils.readFileToByteArray(file);
- assertArrayEquals(data, readData);
+ assertArrayEquals(data, Files.readAllBytes(file));
}
@Test
diff --git a/solr/core/src/test/org/apache/solr/core/TestConfigSetImmutable.java b/solr/core/src/test/org/apache/solr/core/TestConfigSetImmutable.java
index 14e17706c6f..682469f85f3 100644
--- a/solr/core/src/test/org/apache/solr/core/TestConfigSetImmutable.java
+++ b/solr/core/src/test/org/apache/solr/core/TestConfigSetImmutable.java
@@ -16,11 +16,12 @@
*/
package org.apache.solr.core;
-import java.io.File;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Map;
-import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.file.PathUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
import org.apache.solr.common.util.NamedList;
@@ -43,19 +44,19 @@ public class TestConfigSetImmutable extends RestTestBase {
@Before
public void before() throws Exception {
- File tmpSolrHome = createTempDir().toFile();
- File tmpConfDir = new File(tmpSolrHome, confDir);
- FileUtils.copyDirectory(new File(TEST_HOME()), tmpSolrHome.getAbsoluteFile());
+ Path tmpSolrHome = createTempDir();
+ Path tmpConfDir = tmpSolrHome.resolve(confDir);
+ PathUtils.copyDirectory(Path.of(TEST_HOME()), tmpSolrHome);
// make the ConfigSet immutable
- FileUtils.write(
- new File(tmpConfDir, "configsetprops.json"),
+ Files.writeString(
+ tmpConfDir.resolve("configsetprops.json"),
new StringBuilder("{\"immutable\":\"true\"}"),
StandardCharsets.UTF_8);
System.setProperty("managed.schema.mutable", "true");
createJettyAndHarness(
- tmpSolrHome.getAbsolutePath(),
+ tmpSolrHome.toAbsolutePath().toString(),
"solrconfig-schemaless.xml",
"schema-rest.xml",
"/solr",
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java b/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
index 0bc3e0bbdf7..bdf4c1849fb 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
@@ -35,7 +35,6 @@ import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
-import org.apache.commons.io.FileUtils;
import org.apache.lucene.util.IOUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
@@ -64,8 +63,8 @@ public class TestCoreDiscovery extends SolrTestCaseJ4 {
xmlStr.replace(
"<solr>", "<solr> <str name=\"coreRootDirectory\">" + alternateCoreDir + "</str> ");
}
- File tmpFile = new File(solrHomeDirectory.toFile(), SolrXmlConfig.SOLR_XML_FILE);
- FileUtils.write(tmpFile, xmlStr, IOUtils.UTF_8);
+ Path tmpFile = solrHomeDirectory.resolve(SolrXmlConfig.SOLR_XML_FILE);
+ Files.writeString(tmpFile, xmlStr, StandardCharsets.UTF_8);
}
private void setMeUp() throws Exception {
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 62e4fcc363e..fbb2f5ecf57 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.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.regex.Pattern;
-import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.StreamingResponseCallback;
@@ -678,14 +677,12 @@ public class TestLazyCores extends SolrTestCaseJ4 {
private void writeCustomConfig(String coreName, String config, String schema, String rand_snip)
throws IOException {
- File coreRoot = new File(solrHomeDirectory, coreName);
- File subHome = new File(coreRoot, "conf");
- if (!coreRoot.exists()) {
- assertTrue("Failed to make subdirectory ", coreRoot.mkdirs());
- }
+ Path coreRoot = solrHomeDirectory.toPath().resolve(coreName);
+ Path subHome = coreRoot.resolve("conf");
+ Files.createDirectories(subHome);
// Write the file for core discovery
- FileUtils.writeStringToFile(
- new File(coreRoot, "core.properties"),
+ Files.writeString(
+ coreRoot.resolve("core.properties"),
"name="
+ coreName
+ System.getProperty("line.separator")
@@ -694,15 +691,14 @@ public class TestLazyCores extends SolrTestCaseJ4 {
+ "loadOnStartup=true",
StandardCharsets.UTF_8);
- FileUtils.writeStringToFile(
- new File(subHome, "solrconfig.snippet.randomindexconfig.xml"),
+ Files.writeString(
+ subHome.resolve("solrconfig.snippet.randomindexconfig.xml"),
rand_snip,
StandardCharsets.UTF_8);
- FileUtils.writeStringToFile(
- new File(subHome, "solrconfig.xml"), config, StandardCharsets.UTF_8);
+ Files.writeString(subHome.resolve("solrconfig.xml"), config, StandardCharsets.UTF_8);
- FileUtils.writeStringToFile(new File(subHome, "schema.xml"), schema, StandardCharsets.UTF_8);
+ Files.writeString(subHome.resolve("schema.xml"), schema, StandardCharsets.UTF_8);
}
// Write out the cores' config files, both bad schema files, bad config files and some good
diff --git a/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java b/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
index 6dbc2b2111e..cd74da819a6 100644
--- a/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
@@ -16,12 +16,12 @@
*/
package org.apache.solr.schema;
-import java.io.File;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.Properties;
-import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.util.NamedList;
@@ -72,8 +72,8 @@ public class ChangedSchemaMergeTest extends SolrTestCaseJ4 {
initCore();
}
- private final File solrHomeDirectory = createTempDir().toFile();
- private File schemaFile = null;
+ private final Path solrHomeDirectory = createTempDir();
+ private Path schemaFile = null;
private void addDoc(SolrCore core, String... fieldValues) throws IOException {
UpdateHandler updater = core.getUpdateHandler();
@@ -83,17 +83,17 @@ public class ChangedSchemaMergeTest extends SolrTestCaseJ4 {
}
private CoreContainer init() throws Exception {
- File changed = new File(solrHomeDirectory, "changed");
- copyMinConf(changed, "name=changed");
+ Path changed = solrHomeDirectory.resolve("changed");
+ copyMinConf(changed.toFile(), "name=changed");
// Overlay with my local schema
- schemaFile = new File(new File(changed, "conf"), "schema.xml");
- FileUtils.writeStringToFile(schemaFile, withWhich, StandardCharsets.UTF_8);
+ schemaFile = changed.resolve("conf").resolve("schema.xml");
+ Files.writeString(schemaFile, withWhich, StandardCharsets.UTF_8);
String discoveryXml = "<solr></solr>";
- File solrXml = new File(solrHomeDirectory, "solr.xml");
- FileUtils.write(solrXml, discoveryXml, StandardCharsets.UTF_8);
+ Path solrXml = solrHomeDirectory.resolve("solr.xml");
+ Files.writeString(solrXml, discoveryXml, StandardCharsets.UTF_8);
- final CoreContainer cores = new CoreContainer(solrHomeDirectory.toPath(), new Properties());
+ final CoreContainer cores = new CoreContainer(solrHomeDirectory, new Properties());
cores.load();
return cores;
}
@@ -125,7 +125,7 @@ public class ChangedSchemaMergeTest extends SolrTestCaseJ4 {
changed.getUpdateHandler().commit(new CommitUpdateCommand(req, false));
// write the new schema out and make it current
- FileUtils.writeStringToFile(schemaFile, withoutWhich, StandardCharsets.UTF_8);
+ Files.writeString(schemaFile, withoutWhich, StandardCharsets.UTF_8);
IndexSchema iSchema =
IndexSchemaFactory.buildIndexSchema("schema.xml", changed.getSolrConfig());
diff --git a/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java b/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
index 5b0d0d1c285..48fb2e9a532 100644
--- a/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
@@ -22,12 +22,13 @@ import static org.mockito.Mockito.when;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
-import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.lang.invoke.MethodHandles;
import java.net.URL;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -37,7 +38,6 @@ import java.util.Vector;
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
-import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
@@ -153,14 +153,14 @@ public class SolrRequestParserTest extends SolrTestCaseJ4 {
@Test
@SuppressWarnings({"try"})
public void testStreamFile() throws Exception {
- File file = getFile("README");
+ Path file = getFile("README").toPath();
- byte[] bytes = FileUtils.readFileToByteArray(file);
+ byte[] bytes = Files.readAllBytes(file);
SolrCore core = h.getCore();
Map<String, String[]> args = new HashMap<>();
- args.put(CommonParams.STREAM_FILE, new String[] {file.getAbsolutePath()});
+ args.put(CommonParams.STREAM_FILE, new String[] {file.toAbsolutePath().toString()});
// Make sure it got a single stream in and out ok
List<ContentStream> streams = new ArrayList<>();
diff --git a/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3IndexInputTest.java b/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3IndexInputTest.java
index 0068035aca7..0f9e906b296 100644
--- a/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3IndexInputTest.java
+++ b/solr/modules/s3-repository/src/test/org/apache/solr/s3/S3IndexInputTest.java
@@ -23,7 +23,7 @@ import java.io.InputStream;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
-import org.apache.commons.io.FileUtils;
+import java.nio.file.Files;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.Rule;
@@ -65,7 +65,7 @@ public class S3IndexInputTest extends SolrTestCaseJ4 {
File tmp = temporaryFolder.newFolder();
File file = new File(tmp, "content");
- FileUtils.write(file, content, StandardCharsets.UTF_8);
+ Files.writeString(file.toPath(), content, StandardCharsets.UTF_8);
try (SliceInputStream slicedStream = new SliceInputStream(new FileInputStream(file), slice);
S3IndexInput input = new S3IndexInput(slicedStream, "path", file.length())) {