This is an automated email from the ASF dual-hosted git repository. houston 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 a51eab16c9f SOLR-17556: Change solr examples --solr-home-dir to --solr-home a51eab16c9f is described below commit a51eab16c9fea36358f23944609e2080a13d80cc Author: Houston Putman <hous...@apache.org> AuthorDate: Fri Jan 10 11:02:10 2025 -0600 SOLR-17556: Change solr examples --solr-home-dir to --solr-home --- solr/bin/solr | 9 +++++++++ .../java/org/apache/solr/cli/RunExampleTool.java | 17 +++++++++-------- .../org/apache/solr/cli/TestSolrCLIRunExample.java | 21 ++++++++++++--------- .../pages/tutorial-techproducts.adoc | 2 +- 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/solr/bin/solr b/solr/bin/solr index 0509f465173..0759d8ed7db 100755 --- a/solr/bin/solr +++ b/solr/bin/solr @@ -761,6 +761,7 @@ if [ $# -gt 0 ]; then fi SOLR_HOME="$2" + PASS_TO_RUN_EXAMPLE+=("--solr-home" "$SOLR_HOME") shift 2 ;; -t|--data-home|-data.home) @@ -779,6 +780,14 @@ if [ $# -gt 0 ]; then FG="true" shift ;; + --example-dir) + if [[ -z "$2" || "${2:0:1}" == "-" ]]; then + print_usage "$SCRIPT_CMD" "Example directory is required when using the $1 option!" + exit 1 + fi + PASS_TO_RUN_EXAMPLE+=("--example-dir" "$2") + shift 2 + ;; --host|-host) if [[ -z "$2" || "${2:0:1}" == "-" ]]; then print_usage "$SCRIPT_CMD" "Hostname is required when using the $1 option!" diff --git a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java index 44f249aa76d..6bc94d7fbac 100644 --- a/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java +++ b/solr/core/src/java/org/apache/solr/cli/RunExampleTool.java @@ -143,7 +143,7 @@ public class RunExampleTool extends ToolBase { "Path to the Solr example directory; if not provided, ${serverDir}/../example is expected to exist.") .build(), Option.builder() - .longOpt("solr-home-dir") + .longOpt("solr-home") .hasArg() .argName("SOLR_HOME_DIR") .required(false) @@ -239,8 +239,8 @@ public class RunExampleTool extends ToolBase { + exampleDir.getAbsolutePath() + " is not a directory!"); - if (cli.hasOption("solr-home-dir")) { - solrHomeDir = new File(cli.getOptionValue("solr-home-dir")); + if (cli.hasOption("solr-home")) { + solrHomeDir = new File(cli.getOptionValue("solr-home")); } else { String solrHomeProp = EnvUtils.getProperty("solr.home"); if (solrHomeProp != null && !solrHomeProp.isEmpty()) { @@ -254,7 +254,7 @@ public class RunExampleTool extends ToolBase { } if (!solrHomeDir.isDirectory()) throw new IllegalArgumentException( - "Value of --solr-home-dir option is invalid! " + "Value of --solr-home option is invalid! " + solrHomeDir.getAbsolutePath() + " is not a directory!"); @@ -552,7 +552,7 @@ public class RunExampleTool extends ToolBase { } // setup a unique solr.solr.home directory for each node - File node1Dir = setupExampleDir(serverDir, solrHomeDir, "node1"); + File node1Dir = setupSolrHomeDir(serverDir, solrHomeDir, "node1"); for (int n = 2; n <= numNodes; n++) { File nodeNDir = new File(solrHomeDir, "node" + n); if (!nodeNDir.isDirectory()) { @@ -674,7 +674,7 @@ public class RunExampleTool extends ToolBase { String callScript = (!isWindows && cwd.equals(binDir.getParentFile())) ? "bin/solr" : script; String cwdPath = cwd.getAbsolutePath(); - String solrHome = solrHomeDir.getAbsolutePath(); + String solrHome = solrHomeDir.toPath().toAbsolutePath().toRealPath().toString(); // don't display a huge path for solr home if it is relative to the cwd if (!isWindows && cwdPath.length() > 1 && solrHome.startsWith(cwdPath)) @@ -688,11 +688,12 @@ public class RunExampleTool extends ToolBase { String startCmd = String.format( Locale.ROOT, - "\"%s\" start %s -p %d --solr-home \"%s\" %s %s %s %s %s %s %s %s", + "\"%s\" start %s -p %d --solr-home \"%s\" --server-dir \"%s\" %s %s %s %s %s %s %s %s", callScript, cloudModeArg, port, solrHome, + serverDir.getAbsolutePath(), hostArg, zkHostArg, memArg, @@ -954,7 +955,7 @@ public class RunExampleTool extends ToolBase { return nodeStatus; } - protected File setupExampleDir(File serverDir, File solrHomeParentDir, String dirName) + protected File setupSolrHomeDir(File serverDir, File solrHomeParentDir, String dirName) throws IOException { File solrXml = new File(serverDir, "solr/solr.xml"); if (!solrXml.isFile()) diff --git a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java index 004ac834fd0..76b3c7a5d12 100644 --- a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java +++ b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java @@ -120,9 +120,12 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 { String solrHomeDir = getArg("--solr-home", args); int port = Integer.parseInt(getArg("-p", args)); - String solrxml = - Files.readString( - Paths.get(solrHomeDir).resolve("solr.xml"), Charset.defaultCharset()); + Path solrXmlPath = Paths.get(solrHomeDir).resolve("solr.xml"); + if (!Files.exists(solrXmlPath)) { + String solrServerDir = getArg("--server-dir", args); + solrXmlPath = Paths.get(solrServerDir).resolve("solr").resolve("solr.xml"); + } + String solrxml = Files.readString(solrXmlPath, Charset.defaultCharset()); JettyConfig jettyConfig = JettyConfig.builder().setPort(port).build(); try { @@ -332,13 +335,13 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 { } protected void testExample(String exampleName) throws Exception { - File solrHomeDir = new File(ExternalPaths.SERVER_HOME); - if (!solrHomeDir.isDirectory()) - fail(solrHomeDir.getAbsolutePath() + " not found and is required to run this test!"); + File defaultSolrHomeDir = new File(ExternalPaths.SERVER_HOME); + if (!defaultSolrHomeDir.isDirectory()) + fail(defaultSolrHomeDir.getAbsolutePath() + " not found and is required to run this test!"); Path tmpDir = createTempDir(); - File solrExampleDir = tmpDir.toFile(); - File solrServerDir = solrHomeDir.getParentFile(); + File testSolrHomeDir = tmpDir.toFile(); + File solrServerDir = defaultSolrHomeDir.getParentFile(); for (int pass = 0; pass < 2; pass++) { // need a port to start the example server on @@ -353,7 +356,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 { new String[] { "-e", exampleName, "--server-dir", solrServerDir.getAbsolutePath(), - "--solr-home-dir", solrExampleDir.getAbsolutePath(), + "--solr-home", testSolrHomeDir.getAbsolutePath(), "-p", String.valueOf(bindPort) }; diff --git a/solr/solr-ref-guide/modules/getting-started/pages/tutorial-techproducts.adoc b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-techproducts.adoc index c26987dc2b5..e949282049c 100644 --- a/solr/solr-ref-guide/modules/getting-started/pages/tutorial-techproducts.adoc +++ b/solr/solr-ref-guide/modules/getting-started/pages/tutorial-techproducts.adoc @@ -196,7 +196,7 @@ POSTing file sd500.xml (application/xml) to [base] POSTing file solr-word.pdf (application/pdf) to [base]/extract POSTing file solr.xml (application/xml) to [base] POSTing file vidcard.xml (application/xml) to [base] -20 files indexed. +19 files indexed. COMMITting Solr index changes to http://localhost:8983/solr/techproducts/update... Time spent: 0:00:00.822 ----