This is an automated email from the ASF dual-hosted git repository.

dsmiley pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/main by this push:
     new 53fe9cddc7b SOLR-16903: Switch CoreContainer.getSolrHome to return 
Path instead of String (#3204)
53fe9cddc7b is described below

commit 53fe9cddc7b309f03ba92926bc02e6af100cdf1a
Author: Andrey Bozhko <andyboz...@gmail.com>
AuthorDate: Tue Feb 25 00:40:51 2025 -0600

    SOLR-16903: Switch CoreContainer.getSolrHome to return Path instead of 
String (#3204)
---
 solr/CHANGES.txt                                                 | 2 ++
 solr/core/src/java/org/apache/solr/core/CoreContainer.java       | 5 ++---
 solr/core/src/java/org/apache/solr/core/SyntheticSolrCore.java   | 3 +--
 solr/core/src/java/org/apache/solr/core/ZkContainer.java         | 7 +++----
 .../src/java/org/apache/solr/filestore/DistribFileStore.java     | 3 +--
 .../org/apache/solr/handler/admin/SecurityConfHandlerLocal.java  | 3 +--
 .../java/org/apache/solr/handler/admin/SystemInfoHandler.java    | 2 +-
 solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java    | 3 +--
 solr/core/src/test/org/apache/solr/core/TestConfigSets.java      | 2 +-
 solr/core/src/test/org/apache/solr/core/TestCoreContainer.java   | 6 +++---
 .../src/test/org/apache/solr/filestore/TestDistribFileStore.java | 3 +--
 .../test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java | 2 +-
 .../test/org/apache/solr/client/solrj/request/TestCoreAdmin.java | 2 +-
 .../src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java | 9 ++-------
 14 files changed, 21 insertions(+), 31 deletions(-)

diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 9162f377b0d..5ea8d6d4722 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -150,6 +150,8 @@ Other Changes
 
 * SOLR-17675: Remove DirContext param from DirectoryFactory.create method. 
(Bruno Roustant, David Smiley)
 
+* SOLR-16903: Switch CoreContainer#getSolrHome to return Path instead of 
String (Andrey Bozhko)
+
 ==================  9.9.0 ==================
 New Features
 ---------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java 
b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index 1ed72a71a7a..4a2631c7817 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -2411,9 +2411,8 @@ public class CoreContainer {
   }
 
   /** The primary path of a Solr server's config, cores, and misc things. 
Absolute. */
-  // TODO return Path
-  public String getSolrHome() {
-    return solrHome.toString();
+  public Path getSolrHome() {
+    return solrHome;
   }
 
   /**
diff --git a/solr/core/src/java/org/apache/solr/core/SyntheticSolrCore.java 
b/solr/core/src/java/org/apache/solr/core/SyntheticSolrCore.java
index db30474ffd4..f521dbb2c20 100644
--- a/solr/core/src/java/org/apache/solr/core/SyntheticSolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SyntheticSolrCore.java
@@ -17,7 +17,6 @@
 
 package org.apache.solr.core;
 
-import java.nio.file.Path;
 import java.util.Map;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.params.CoreAdminParams;
@@ -58,7 +57,7 @@ public class SyntheticSolrCore extends SolrCore {
     CoreDescriptor syntheticCoreDescriptor =
         new CoreDescriptor(
             syntheticCoreName,
-            Path.of(coreContainer.getSolrHome(), syntheticCoreName),
+            coreContainer.getSolrHome().resolve(syntheticCoreName),
             coreProps,
             coreContainer.getContainerProperties(),
             coreContainer.getZkController());
diff --git a/solr/core/src/java/org/apache/solr/core/ZkContainer.java 
b/solr/core/src/java/org/apache/solr/core/ZkContainer.java
index a8c00bc7cd9..89fc8dbf4a9 100644
--- a/solr/core/src/java/org/apache/solr/core/ZkContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/ZkContainer.java
@@ -22,7 +22,6 @@ import static 
org.apache.solr.common.cloud.ZkStateReader.HTTPS_PORT_PROP;
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.TimeoutException;
 import java.util.function.Predicate;
@@ -87,11 +86,11 @@ public class ZkContainer {
     // TODO: remove after updating to an slf4j based zookeeper
     System.setProperty("zookeeper.jmx.log4j.disable", "true");
 
-    String solrHome = cc.getSolrHome();
+    Path solrHome = cc.getSolrHome();
     if (zkRun != null) {
       String zkDataHome =
-          System.getProperty("zkServerDataDir", 
Paths.get(solrHome).resolve("zoo_data").toString());
-      String zkConfHome = System.getProperty("zkServerConfDir", solrHome);
+          System.getProperty("zkServerDataDir", 
solrHome.resolve("zoo_data").toString());
+      String zkConfHome = System.getProperty("zkServerConfDir", 
solrHome.toString());
       zkServer =
           new SolrZkServer(
               stripChroot(zkRun),
diff --git a/solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java 
b/solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java
index 29bc2e0063a..96b81992d4c 100644
--- a/solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java
+++ b/solr/core/src/java/org/apache/solr/filestore/DistribFileStore.java
@@ -31,7 +31,6 @@ import java.nio.channels.SeekableByteChannel;
 import java.nio.file.FileSystems;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.nio.file.StandardOpenOption;
 import java.util.ArrayList;
 import java.util.Date;
@@ -76,7 +75,7 @@ public class DistribFileStore implements FileStore {
 
   public DistribFileStore(CoreContainer coreContainer) {
     this.coreContainer = coreContainer;
-    this.solrHome = Paths.get(this.coreContainer.getSolrHome());
+    this.solrHome = this.coreContainer.getSolrHome();
   }
 
   @Override
diff --git 
a/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandlerLocal.java
 
b/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandlerLocal.java
index 356f355942a..724c2c16da3 100644
--- 
a/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandlerLocal.java
+++ 
b/solr/core/src/java/org/apache/solr/handler/admin/SecurityConfHandlerLocal.java
@@ -23,7 +23,6 @@ import java.io.OutputStream;
 import java.lang.invoke.MethodHandles;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.Collections;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.util.CommandOperation;
@@ -40,7 +39,7 @@ public class SecurityConfHandlerLocal extends 
SecurityConfHandler {
 
   public SecurityConfHandlerLocal(CoreContainer coreContainer) {
     super(coreContainer);
-    securityJsonPath = 
Paths.get(coreContainer.getSolrHome()).resolve("security.json");
+    securityJsonPath = coreContainer.getSolrHome().resolve("security.json");
   }
 
   /**
diff --git 
a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java 
b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
index cb5218bfa71..48e37b699d9 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
@@ -146,7 +146,7 @@ public class SystemInfoHandler extends RequestHandlerBase {
     }
     if (cc != null) {
       rsp.add("solr_home", cc.getSolrHome());
-      rsp.add("core_root", cc.getCoreRootDirectory().toString());
+      rsp.add("core_root", cc.getCoreRootDirectory());
     }
 
     rsp.add("lucene", getLuceneInfo());
diff --git a/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java 
b/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java
index 5e25d5f6fce..f3a86dd55d7 100644
--- a/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java
+++ b/solr/core/src/java/org/apache/solr/pkg/SolrPackageLoader.java
@@ -24,7 +24,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.lang.invoke.MethodHandles;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -286,7 +285,7 @@ public class SolrPackageLoader implements Closeable {
             new PackageResourceLoader(
                 "PACKAGE_LOADER: " + parent.name() + ":" + version,
                 paths,
-                Paths.get(coreContainer.getSolrHome()),
+                coreContainer.getSolrHome(),
                 coreContainer.getResourceLoader().getClassLoader());
       }
 
diff --git a/solr/core/src/test/org/apache/solr/core/TestConfigSets.java 
b/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
index 8bec679b63d..34dc343fa2b 100644
--- a/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
+++ b/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
@@ -77,7 +77,7 @@ public class TestConfigSets extends SolrTestCaseJ4 {
     CoreContainer container = null;
     try {
       container = setupContainer(TEST_PATH().resolve("configsets").toString());
-      Path solrHome = Paths.get(container.getSolrHome());
+      Path solrHome = container.getSolrHome();
 
       SolrCore core1 = container.create("core1", Map.of("configSet", 
"configset-2"));
       assertThat(core1.getCoreDescriptor().getName(), is("core1"));
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java 
b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
index bc93c3d6ad0..787bea658bc 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
@@ -95,7 +95,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
     try {
 
       // instance dir & resource loader for the CC
-      assertEquals(realSolrHome.toString(), cc.getSolrHome());
+      assertEquals(realSolrHome, cc.getSolrHome());
       assertEquals(realSolrHome, cc.getResourceLoader().getInstancePath());
 
     } finally {
@@ -983,7 +983,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
 
     // -----
     // "fix" the bad collection
-    Path confDir = Path.of(cc.getSolrHome(), "col_bad", "conf");
+    Path confDir = cc.getSolrHome().resolve("col_bad").resolve("conf");
     Files.createDirectories(confDir);
     Files.copy(
         getFile("solr/collection1/conf/solrconfig-defaults.xml"),
@@ -1059,7 +1059,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
     final long col_bad_old_start = getCoreStartTime(cc, "col_bad");
 
     Files.writeString(
-        Path.of(cc.getSolrHome(), "col_bad", "conf", "solrconfig.xml"),
+        
cc.getSolrHome().resolve("col_bad").resolve("conf").resolve("solrconfig.xml"),
         "This is giberish, not valid XML <",
         StandardCharsets.UTF_8);
 
diff --git 
a/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java 
b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
index 95732ea3a1c..1a32a24330f 100644
--- a/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
+++ b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
@@ -25,7 +25,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.lang.invoke.MethodHandles;
 import java.nio.ByteBuffer;
-import java.nio.file.Paths;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -320,7 +319,7 @@ public class TestDistribFileStore extends SolrCloudTestCase 
{
       throws Exception {
     JettySolrRunner jetty = cluster.getRandomJetty(random());
     try (HttpSolrClient client = (HttpSolrClient) jetty.newClient()) {
-      PackageUtils.uploadKey(bytes, path, 
Paths.get(jetty.getCoreContainer().getSolrHome()));
+      PackageUtils.uploadKey(bytes, path, 
jetty.getCoreContainer().getSolrHome());
 
       final var syncReq = new FileStoreApi.SyncFile(path);
       final var syncRsp = syncReq.process(client);
diff --git 
a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java 
b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
index 06e9a59f54c..ea03399c2c6 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java
@@ -220,7 +220,7 @@ public class SolrMetricsIntegrationTest extends 
SolrTestCaseJ4 {
     assertTrue(metrics.containsKey("CONTAINER.version.specification"));
     assertTrue(metrics.containsKey("CONTAINER.version.implementation"));
     Gauge<?> g = (Gauge<?>) metrics.get("CONTAINER.fs.path");
-    assertEquals(g.getValue(), cc.getSolrHome());
+    assertEquals(g.getValue(), cc.getSolrHome().toString());
   }
 
   @Test
diff --git 
a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java 
b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
index ddcd76d9a5d..fc68b2d48e7 100644
--- 
a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
+++ 
b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
@@ -80,7 +80,7 @@ public class TestCoreAdmin extends 
AbstractEmbeddedSolrServerTestCase {
       cores.getAllowPaths().add(dataDir.toPath()); // Allow the test dir
       cores.getAllowPaths().add(newCoreInstanceDir.toPath()); // Allow the 
test dir
 
-      File instanceDir = new File(cores.getSolrHome());
+      File instanceDir = cores.getSolrHome().toFile();
       FileUtils.copyDirectory(instanceDir, new File(newCoreInstanceDir, 
"newcore"));
 
       CoreAdminRequest.Create req = new CoreAdminRequest.Create();
diff --git 
a/solr/test-framework/src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java
 
b/solr/test-framework/src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java
index 6bf75b0b457..f5454b59657 100644
--- 
a/solr/test-framework/src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java
+++ 
b/solr/test-framework/src/test/org/apache/solr/cloud/MiniSolrCloudClusterTest.java
@@ -130,15 +130,10 @@ public class MiniSolrCloudClusterTest extends 
SolrTestCaseJ4 {
           jetty.getCoreContainer().getSolrHome() + " vs " + workDir,
           // mock dirs from createTempDir() don't play nice with startsWith, 
so we have to use the
           // string value
-          
Paths.get(jetty.getCoreContainer().getSolrHome()).startsWith(workDir));
+          jetty.getCoreContainer().getSolrHome().startsWith(workDir));
       assertEquals(
           jetty.getCoreContainer().getSolrHome(),
-          jetty
-              .getCoreContainer()
-              .getResourceLoader()
-              .getInstancePath()
-              .toAbsolutePath()
-              .toString());
+          
jetty.getCoreContainer().getResourceLoader().getInstancePath().toAbsolutePath());
 
       assertTrue(
           CollectionAdminRequest.createCollection("test", 1, 1)

Reply via email to