This is an automated email from the ASF dual-hosted git repository.
epugh 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 b74b77c212c SOLR-17864: Migrate to dot separated naming of environment
variables for a initial set of variables. (#3312)
b74b77c212c is described below
commit b74b77c212cb4574210445a3075d03cc7258cc6f
Author: Eric Pugh <[email protected]>
AuthorDate: Fri Aug 22 09:56:11 2025 -0400
SOLR-17864: Migrate to dot separated naming of environment variables for a
initial set of variables. (#3312)
* Introduce back compat for properties capablity.
* Properties that ended in .disabled, and are now flipped to .enabled also
continue to work in backcompat matter.
* Slim down the start up scripts
* Introduce standardized naming pattern.
---
dev-docs/ui/testing-and-deployment.adoc | 4 +-
dev-tools/scripts/cloud.sh | 2 +-
gradle/ide/eclipse/run-solr-cloud.launch | 2 +-
gradle/ide/eclipse/run-solr.launch | 2 +-
.../randomization/policies/solr-tests.policy | 8 +--
solr/CHANGES.txt | 2 +
solr/benchmark/log4j2-bench.xml | 12 ++---
.../java/org/apache/solr/bench/BaseBenchState.java | 2 +-
.../org/apache/solr/bench/MiniClusterState.java | 2 +-
solr/benchmark/src/test-files/log4j2.xml | 10 ++--
solr/bin/solr | 42 +++-------------
solr/bin/solr.cmd | 38 +++------------
solr/bin/solr.in.cmd | 12 ++---
solr/bin/solr.in.sh | 12 ++---
.../src/java/org/apache/solr/cli/PackageTool.java | 2 +-
.../org/apache/solr/core/ConfigSetService.java | 15 +++---
.../java/org/apache/solr/core/CoreContainer.java | 3 +-
.../src/java/org/apache/solr/core/NodeConfig.java | 9 ++--
.../src/java/org/apache/solr/pkg/PackageAPI.java | 4 +-
.../apache/solr/servlet/CoreContainerProvider.java | 2 +-
.../apache/solr/servlet/LoadAdminUiServlet.java | 12 ++---
.../apache/solr/servlet/SolrDispatchFilter.java | 3 +-
.../apache/solr/servlet/SolrRequestParsers.java | 4 +-
.../org/apache/solr/util/StartupLoggingUtils.java | 4 +-
.../test/org/apache/solr/cli/PackageToolTest.java | 4 +-
.../org/apache/solr/cli/TestSolrCLIRunExample.java | 2 +-
.../solr/cloud/DeleteInactiveReplicaTest.java | 4 +-
.../org/apache/solr/cloud/TestConfigSetsAPI.java | 8 +--
.../test/org/apache/solr/cloud/ZkFailoverTest.java | 6 +--
.../cluster/events/ClusterEventProducerTest.java | 4 +-
.../solr/filestore/TestDistribFileStore.java | 4 +-
.../apache/solr/handler/TestContainerPlugin.java | 6 +--
.../solr/pkg/PackageStoreSchemaPluginsTest.java | 4 +-
.../src/test/org/apache/solr/pkg/TestPackages.java | 4 +-
.../apache/solr/request/TestRemoteStreaming.java | 4 +-
.../org/apache/solr/request/TestStreamBody.java | 2 +-
.../org/apache/solr/search/TestSmileRequest.java | 2 +-
.../apache/solr/search/json/TestJsonRequest.java | 2 +-
.../org/apache/solr/servlet/CacheHeaderTest.java | 3 +-
.../solr/servlet/DirectSolrConnectionTest.java | 2 +-
.../apache/solr/servlet/SolrRequestParserTest.java | 4 +-
solr/docker/tests/cases/test_log4j/log4j2.xml | 12 ++---
solr/packaging/test/test_basic_auth.bats | 2 +-
solr/packaging/test/test_packages.bats | 6 +--
solr/packaging/test/test_start_solr.bats | 5 ++
solr/server/etc/jetty-requestlog.xml | 2 +-
solr/server/etc/security.policy | 8 +--
solr/server/resources/log4j2.xml | 8 +--
.../configuration-guide/pages/config-sets.adoc | 2 +-
.../pages/package-manager-internals.adoc | 4 +-
.../configuration-guide/pages/package-manager.adoc | 4 +-
.../pages/system-info-handler.adoc | 8 +--
.../deployment-guide/pages/metrics-reporting.adoc | 4 +-
.../solr/common/cloud/ZkMaintenanceUtils.java | 8 ++-
.../java/org/apache/solr/common/util/EnvUtils.java | 57 ++++++++++++++++++++--
.../DeprecatedSystemPropertyMappings.properties | 21 ++++++++
.../src/resources/EnvToSyspropMappings.properties | 10 +---
.../org/apache/solr/common/util/EnvUtilsTest.java | 30 ++++++++++--
.../src/java/org/apache/solr/SolrTestCase.java | 14 +++---
59 files changed, 259 insertions(+), 219 deletions(-)
diff --git a/dev-docs/ui/testing-and-deployment.adoc
b/dev-docs/ui/testing-and-deployment.adoc
index b06b998b93a..b627112eeb3 100644
--- a/dev-docs/ui/testing-and-deployment.adoc
+++ b/dev-docs/ui/testing-and-deployment.adoc
@@ -127,8 +127,8 @@ more secure production configuration.
Like other modules, the new UI is enabled with the jetty module parameter
`--module=new-ui`.
When using the Solr CLI, users can disable the new UI with
-`SOLR_ADMIN_UI_EXPERIMENTAL_DISABLED=true` or by disabling the entire UI with
-`SOLR_ADMIN_UI_DISABLED=true`.
+`SOLR_UI_EXPERIMENTAL_ENABLED=false` or by disabling all user interface
features with
+`SOLR_UI_ENABLED=false`.
==== JVM
diff --git a/dev-tools/scripts/cloud.sh b/dev-tools/scripts/cloud.sh
index 9824fb3eea7..30271dc4ce8 100755
--- a/dev-tools/scripts/cloud.sh
+++ b/dev-tools/scripts/cloud.sh
@@ -336,7 +336,7 @@ start(){
mkdir -p "${CLUSTER_WD}/n${i}"
argsArray=(-c --solr-home $CLUSTER_WD_FULL/n${i} -z
localhost:${ZK_PORT}/solr_${SAFE_DEST} -p 898${i} -m $MEMORY \
-a "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=500${i} \
- -Dsolr.log.dir=$CLUSTER_WD_FULL/n${i} $JVM_ARGS")
+ -Dsolr.logs.dir=$CLUSTER_WD_FULL/n${i} $JVM_ARGS")
FINAL_COMMAND="${SOLR}/bin/solr ${argsArray[@]}"
echo ${FINAL_COMMAND}
${SOLR}/bin/solr start "${argsArray[@]}"
diff --git a/gradle/ide/eclipse/run-solr-cloud.launch
b/gradle/ide/eclipse/run-solr-cloud.launch
index c9d5dbbe9f4..685782ceabc 100644
--- a/gradle/ide/eclipse/run-solr-cloud.launch
+++ b/gradle/ide/eclipse/run-solr-cloud.launch
@@ -16,5 +16,5 @@
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="org.eclipse.jetty.start.Main"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="--module=http"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="@ECLIPSEPROJECTNAME@"/>
- <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Xms512m -Djetty.port=8983 -DSTOP.PORT=7983
-DSTOP.KEY=solrrock -Dlog4j.configurationFile="file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml" -Djetty.home="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -Djetty.base="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -
[...]
+ <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Xms512m -Djetty.port=8983 -DSTOP.PORT=7983
-DSTOP.KEY=solrrock -Dlog4j.configurationFile="file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml" -Djetty.home="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -Djetty.base="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -
[...]
</launchConfiguration>
diff --git a/gradle/ide/eclipse/run-solr.launch
b/gradle/ide/eclipse/run-solr.launch
index 00f225dacc8..2cebe437425 100644
--- a/gradle/ide/eclipse/run-solr.launch
+++ b/gradle/ide/eclipse/run-solr.launch
@@ -16,5 +16,5 @@
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE"
value="org.eclipse.jetty.start.Main"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS"
value="--module=http"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR"
value="@ECLIPSEPROJECTNAME@"/>
- <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Xms512m -Djetty.port=8983 -DSTOP.PORT=7983
-DSTOP.KEY=solrrock -Dlog4j.configurationFile="file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml" -Djetty.home="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -Djetty.base="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" 
[...]
+ <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS"
value="-Xms512m -Djetty.port=8983 -DSTOP.PORT=7983
-DSTOP.KEY=solrrock -Dlog4j.configurationFile="file:${workspace_loc:@ECLIPSEPROJECTNAME@}/solr/server/resources/log4j2.xml" -Djetty.home="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" -Djetty.base="${workspace_loc:@ECLIPSEPROJECTNAME@}/eclipse-build/solr-server" 
[...]
</launchConfiguration>
diff --git a/gradle/testing/randomization/policies/solr-tests.policy
b/gradle/testing/randomization/policies/solr-tests.policy
index eaeb777ba4e..2d3246c6d9b 100644
--- a/gradle/testing/randomization/policies/solr-tests.policy
+++ b/gradle/testing/randomization/policies/solr-tests.policy
@@ -225,11 +225,11 @@ grant {
permission java.io.FilePermission "${solr.data.home}",
"read,write,delete,readlink";
permission java.io.FilePermission "${solr.data.home}${/}-",
"read,write,delete,readlink";
- permission java.io.FilePermission "${solr.default.confdir}",
"read,write,delete,readlink";
- permission java.io.FilePermission "${solr.default.confdir}${/}-",
"read,write,delete,readlink";
+ permission java.io.FilePermission "${solr.configset.default.confdir}",
"read,write,delete,readlink";
+ permission java.io.FilePermission "${solr.configset.default.confdir}${/}-",
"read,write,delete,readlink";
- permission java.io.FilePermission "${solr.log.dir}",
"read,write,delete,readlink";
- permission java.io.FilePermission "${solr.log.dir}${/}-",
"read,write,delete,readlink";
+ permission java.io.FilePermission "${solr.logs.dir}",
"read,write,delete,readlink";
+ permission java.io.FilePermission "${solr.logs.dir}${/}-",
"read,write,delete,readlink";
permission java.io.FilePermission "${solr.allowPaths}",
"read,write,delete,readlink";
permission java.io.FilePermission "${solr.allowPaths}${/}-",
"read,write,delete,readlink";
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index f209a8e43e1..1d36ccc138a 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -17,6 +17,8 @@ New Features
* SOLR-14414: Introduce a new, experimental Admin UI that can be used aside
the current Admin UI. The new module is
loaded together with the existing Admin UI and available under the URL path
/solr/compose. (Christos Malliaridis)
+* SOLR-17864: Standarized patterns for system property naming across Solr.
i.e enable.packages is now solr.packages.enabled. (janhoy, Eric Pugh)
+
Improvements
---------------------
diff --git a/solr/benchmark/log4j2-bench.xml b/solr/benchmark/log4j2-bench.xml
index 628bfbcac64..c3b81a84ca5 100644
--- a/solr/benchmark/log4j2-bench.xml
+++ b/solr/benchmark/log4j2-bench.xml
@@ -31,8 +31,8 @@
<RollingRandomAccessFile
name="MainLogFile"
-
fileName="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}.log"
-
filePattern="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}.log.%i">
+
fileName="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}.log"
+
filePattern="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}.log.%i">
<PatternLayout>
<Pattern>
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}] %c{1.}
@@ -48,8 +48,8 @@
<RollingRandomAccessFile
name="SlowLogFile"
-
fileName="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_slow_requests.log"
-
filePattern="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_slow_requests.log.%i">
+
fileName="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_slow_requests.log"
+
filePattern="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_slow_requests.log.%i">
<PatternLayout>
<Pattern>
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}] %c{1.}
@@ -66,8 +66,8 @@
<RollingRandomAccessFile
name="RandomCountsFile"
-
fileName="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_random_counts.log"
-
filePattern="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_random_counts.log.%i">
+
fileName="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_random_counts.log"
+
filePattern="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_random_counts.log.%i">
<PatternLayout>
<Pattern>
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}] %c{1.}
diff --git a/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
b/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
index 0f401d7d6c8..0995323ff8e 100644
--- a/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
+++ b/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
@@ -103,7 +103,7 @@ public class BaseBenchState {
workDir = System.getProperty("workBaseDir", "build/work");
- System.setProperty("solr.log.dir", workDir + "/logs");
+ System.setProperty("solr.logs.dir", workDir + "/logs");
System.setProperty("solr.log.name", benchmarkParams.id());
}
diff --git
a/solr/benchmark/src/java/org/apache/solr/bench/MiniClusterState.java
b/solr/benchmark/src/java/org/apache/solr/bench/MiniClusterState.java
index 555463089fd..2dfce895ddc 100755
--- a/solr/benchmark/src/java/org/apache/solr/bench/MiniClusterState.java
+++ b/solr/benchmark/src/java/org/apache/solr/bench/MiniClusterState.java
@@ -212,7 +212,7 @@ public class MiniClusterState {
System.setProperty("pkiHandlerPrivateKeyPath", "");
System.setProperty("pkiHandlerPublicKeyPath", "");
- System.setProperty("solr.default.confdir",
"../server/solr/configsets/_default");
+ System.setProperty("solr.configset.default.confdir",
"../server/solr/configsets/_default");
this.random = new SplittableRandom(BaseBenchState.getRandomSeed());
diff --git a/solr/benchmark/src/test-files/log4j2.xml
b/solr/benchmark/src/test-files/log4j2.xml
index f65aca5e456..983559c47c8 100644
--- a/solr/benchmark/src/test-files/log4j2.xml
+++ b/solr/benchmark/src/test-files/log4j2.xml
@@ -31,8 +31,8 @@
<RollingRandomAccessFile
name="MainLogFile"
-
fileName="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}.log"
-
filePattern="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}.log.%i">
+
fileName="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}.log"
+
filePattern="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}.log.%i">
<PatternLayout>
<Pattern>
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}] %c{1.}
@@ -48,8 +48,8 @@
<RollingRandomAccessFile
name="SlowLogFile"
-
fileName="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_slow_requests.log"
-
filePattern="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_slow_requests.log.%i">
+
fileName="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_slow_requests.log"
+
filePattern="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_slow_requests.log.%i">
<PatternLayout>
<Pattern>
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}] %c{1.}
@@ -65,7 +65,7 @@
<RandomAccessFile
name="RandomCountsFile"
-
fileName="${sys:solr.log.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_random_counts.log">
+
fileName="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_random_counts.log">
<PatternLayout>
<Pattern>
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}] %c{1.}
diff --git a/solr/bin/solr b/solr/bin/solr
index 7249ec576c4..d9b0bacb4da 100755
--- a/solr/bin/solr
+++ b/solr/bin/solr
@@ -68,7 +68,7 @@ if [ $$ -ne $(ps -o pid='' -p $$ || echo 0) ] ; then
exit 1
fi
-# This helps with debugging when running bats tests but not the whole script
is compliant yet
+# This helps with debugging when running bats tests however the whole script
is not compliant yet
# set -u
# set -o pipefail
@@ -114,7 +114,7 @@ fi
# Export variables we want to make visible to Solr sub-process
for var in $(compgen -v); do
- if [[ "$var" =~
^(SOLR_.*|DEFAULT_CONFDIR|ZK_.*|GCS_BUCKET|GCS_.*|S3_.*|OTEL_.*|AWS_.*)$ ]];
then
+ if [[ "$var" =~ ^(SOLR_.*|ZK_.*|GCS_BUCKET|GCS_.*|S3_.*|OTEL_.*|AWS_.*)$ ]];
then
export "${var?}"
fi
done
@@ -316,10 +316,10 @@ if [ "${SOLR_GZIP_ENABLED:-true}" == "true" ]; then
fi
# Jetty configuration for new Admin UI
-if [ "${SOLR_ADMIN_UI_DISABLED:-false}" == "true" ] ||
- [ "${SOLR_ADMIN_UI_EXPERIMENTAL_DISABLED:-false}" == "true" ]; then
- # Do not enable new Admin UI
- echo -e "New Admin UI not enabled"
+if [ "${SOLR_UI_ENABLED:-true}" == "false" ] ||
+ [ "${SOLR_UI_EXPERIMENTAL_ENABLED:-true}" == "false" ]; then
+ # Do not enable new Solr UI
+ echo -e "New Solr UI not enabled"
else
# Enable new Admin UI
SOLR_JETTY_CONFIG+=("--module=new-ui")
@@ -863,14 +863,6 @@ if [[ -n "${SOLR_PLACEMENTPLUGIN_DEFAULT:-}" ]] ; then
SCRIPT_SOLR_OPTS+=("-Dsolr.placementplugin.default=$SOLR_PLACEMENTPLUGIN_DEFAULT")
fi
-# Remote streaming and stream body
-if [ "${SOLR_ENABLE_REMOTE_STREAMING:-false}" == "true" ]; then
- SCRIPT_SOLR_OPTS+=("-Dsolr.enableRemoteStreaming=true")
-fi
-if [ "${SOLR_ENABLE_STREAM_BODY:-false}" == "true" ]; then
- SCRIPT_SOLR_OPTS+=("-Dsolr.enableStreamBody=true")
-fi
-
: ${SOLR_SERVER_DIR:=$DEFAULT_SERVER_DIR}
if [ ! -e "$SOLR_SERVER_DIR" ]; then
@@ -1024,9 +1016,6 @@ elif [[ $SOLR_HOME != /* ]]; then
fi
fi
-# Set the default configset dir to be bootstrapped as _default
-: "${DEFAULT_CONFDIR:="$SOLR_SERVER_DIR/solr/configsets/_default/conf"}"
-
# This is quite hacky, but examples rely on a different log4j2.xml
# so that we can write logs for examples to $SOLR_HOME/../logs
: "${SOLR_LOGS_DIR:="$SOLR_SERVER_DIR/logs"}"
@@ -1163,14 +1152,6 @@ else
SECURITY_MANAGER_OPTS=()
fi
-# Enable Admin UI by default, and give the option for users to disable it
-if [ "${SOLR_ADMIN_UI_DISABLED:-false}" == "true" ]; then
- SOLR_ADMIN_UI="-DdisableAdminUI=true"
- echo -e "ADMIN UI Disabled"
-else
- SOLR_ADMIN_UI="-DdisableAdminUI=false"
-fi
-
JAVA_MEM_OPTS=()
if [ -z "${SOLR_HEAP:-}" ] && [ -n "${SOLR_JAVA_MEM:-}" ]; then
JAVA_MEM_OPTS=($SOLR_JAVA_MEM)
@@ -1220,17 +1201,10 @@ function start_solr() {
GC_TUNE_ARR=($GC_TUNE) # Stuff the string from outside into first value of
the array
fi
- if [ -n "${SOLR_WAIT_FOR_ZK:-}" ]; then
- SCRIPT_SOLR_OPTS+=("-DwaitForZk=$SOLR_WAIT_FOR_ZK")
- fi
-
if [ -n "${SOLR_DATA_HOME:-}" ]; then
SCRIPT_SOLR_OPTS+=("-Dsolr.data.home=$SOLR_DATA_HOME")
fi
- if [ -n "${SOLR_DELETE_UNKNOWN_CORES:-}" ]; then
- SCRIPT_SOLR_OPTS+=("-Dsolr.deleteUnknownCores=$SOLR_DELETE_UNKNOWN_CORES")
- fi
# If SSL-related system props are set, add them to SCRIPT_SOLR_OPTS
if [ "$SOLR_SSL_ENABLED" == "true" ]; then
@@ -1317,7 +1291,7 @@ function start_solr() {
# shellcheck disable=SC2164
SOLR_START_OPTS=('-server' "${JAVA_MEM_OPTS[@]}" "${GC_TUNE_ARR[@]}"
"${GC_LOG_OPTS[@]}" "${IP_ACL_OPTS[@]}" \
- "${REMOTE_JMX_OPTS[@]}" "${CLOUD_MODE_OPTS[@]}"
-Dsolr.log.dir="$SOLR_LOGS_DIR" \
+ "${REMOTE_JMX_OPTS[@]}" "${CLOUD_MODE_OPTS[@]}"
-Dsolr.logs.dir="$SOLR_LOGS_DIR" \
"-Djetty.port=$SOLR_PORT" "-DSTOP.PORT=$stop_port" "-DSTOP.KEY=$STOP_KEY" \
"-Djava.io.tmpdir=$(cd "${TMPDIR:-${TEMP:-${TMP:-/tmp}}}"; pwd -P)" \
# '-OmitStackTraceInFastThrow' ensures stack traces in errors,
@@ -1327,7 +1301,7 @@ function start_solr() {
# OOME is thrown. Program operation after OOME is unpredictable.
"-XX:+CrashOnOutOfMemoryError"
"-XX:ErrorFile=${SOLR_LOGS_DIR}/jvm_crash_%p.log" \
"-Djetty.home=$SOLR_SERVER_DIR" "-Dsolr.solr.home=$SOLR_HOME"
"-Dsolr.install.dir=$SOLR_TIP" "-Dsolr.install.symDir=$SOLR_TIP_SYM" \
- "-Dsolr.default.confdir=$DEFAULT_CONFDIR" "${LOG4J_CONFIG[@]}"
"${SCRIPT_SOLR_OPTS[@]}" "${SECURITY_MANAGER_OPTS[@]}" "${SOLR_ADMIN_UI}"
"${SOLR_OPTS[@]}")
+ "${LOG4J_CONFIG[@]}" "${SCRIPT_SOLR_OPTS[@]}"
"${SECURITY_MANAGER_OPTS[@]}" "${SOLR_OPTS[@]}")
mk_writable_dir "$SOLR_LOGS_DIR" "Logs"
if [[ -n "${SOLR_HEAP_DUMP_DIR:-}" ]]; then
diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd
index ecb04647ad5..d8c3f5d4561 100755
--- a/solr/bin/solr.cmd
+++ b/solr/bin/solr.cmd
@@ -194,9 +194,9 @@ IF "%SOLR_GZIP_ENABLED%"=="true" (
)
REM Jetty configuration for new Admin UI
-IF "%SOLR_ADMIN_UI_DISABLED%"=="true" (
+IF "%SOLR_UI_ENABLED%"=="false" (
REM Do not load jetty-configuration if Admin UI explicitly disabled
-) ELSE IF "%SOLR_ADMIN_UI_EXPERIMENTAL_DISABLED%"=="true" (
+) ELSE IF "%SOLR_UI_EXPERIMENTAL_ENABLED%"=="false" (
REM Do not load jetty-configuration if new Admin UI explicitly disabled
) ELSE (
REM Enable new Admin UI by loading jetty-configuration
@@ -728,14 +728,6 @@ IF DEFINED SOLR_PLACEMENTPLUGIN_DEFAULT (
set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS%
-Dsolr.placementplugin.default=%SOLR_PLACEMENTPLUGIN_DEFAULT%"
)
-REM Remote streaming and stream body
-IF "%SOLR_ENABLE_REMOTE_STREAMING%"=="true" (
- set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% -Dsolr.enableRemoteStreaming=true"
-)
-IF "%SOLR_ENABLE_STREAM_BODY%"=="true" (
- set "SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% -Dsolr.enableStreamBody=true"
-)
-
IF "%SOLR_SERVER_DIR%"=="" set "SOLR_SERVER_DIR=%DEFAULT_SERVER_DIR%"
IF NOT EXIST "%SOLR_SERVER_DIR%" (
@@ -925,14 +917,6 @@ IF "%SOLR_MODE%"=="solrcloud" (
set "CLOUD_MODE_OPTS=-DzkClientTimeout=!ZK_CLIENT_TIMEOUT!"
- IF NOT "%SOLR_WAIT_FOR_ZK%"=="" (
- set "CLOUD_MODE_OPTS=!CLOUD_MODE_OPTS! -DwaitForZk=%SOLR_WAIT_FOR_ZK%"
- )
-
- IF NOT "%SOLR_DELETE_UNKNOWN_CORES%"=="" (
- set "CLOUD_MODE_OPTS=!CLOUD_MODE_OPTS!
-Dsolr.deleteUnknownCores=%SOLR_DELETE_UNKNOWN_CORES%"
- )
-
IF NOT "%ZK_HOST%"=="" (
set "CLOUD_MODE_OPTS=!CLOUD_MODE_OPTS! -DzkHost=%ZK_HOST%"
) ELSE (
@@ -1006,13 +990,6 @@ IF "%SOLR_SECURITY_MANAGER_ENABLED%"=="true" (
-Dsolr.internal.network.permission=*
)
-REM Enable ADMIN UI by default, and give the option for users to disable it
-IF "%SOLR_ADMIN_UI_DISABLED%"=="true" (
- set DISABLE_ADMIN_UI="true"
-) else (
- set DISABLE_ADMIN_UI="false"
-)
-
IF NOT "%SOLR_HEAP%"=="" set SOLR_JAVA_MEM=-Xms%SOLR_HEAP% -Xmx%SOLR_HEAP%
IF "%SOLR_JAVA_MEM%"=="" set SOLR_JAVA_MEM=-Xms512m -Xmx512m
IF "%SOLR_JAVA_STACK_SIZE%"=="" set SOLR_JAVA_STACK_SIZE=-Xss256k
@@ -1097,7 +1074,6 @@ REM OOME is thrown. Program operation after OOME is
unpredictable.
set START_OPTS=%START_OPTS% -XX:+CrashOnOutOfMemoryError
set START_OPTS=%START_OPTS% -XX:ErrorFile="%SOLR_LOGS_DIR%\jvm_crash_%%p.log"
set START_OPTS=%START_OPTS% !GC_TUNE! %GC_LOG_OPTS%
-set START_OPTS=%START_OPTS% -DdisableAdminUI=%DISABLE_ADMIN_UI%
IF NOT "!CLOUD_MODE_OPTS!"=="" set "START_OPTS=%START_OPTS% !CLOUD_MODE_OPTS!"
IF NOT "!IP_ACL_OPTS!"=="" set "START_OPTS=%START_OPTS% !IP_ACL_OPTS!"
IF NOT "!REMOTE_JMX_OPTS!"=="" set "START_OPTS=%START_OPTS% !REMOTE_JMX_OPTS!"
@@ -1114,7 +1090,7 @@ IF "%SOLR_SSL_ENABLED%"=="true" (
set SOLR_LOGS_DIR_QUOTED="%SOLR_LOGS_DIR%"
set SOLR_DATA_HOME_QUOTED="%SOLR_DATA_HOME%"
-set "START_OPTS=%START_OPTS% -Dsolr.log.dir=%SOLR_LOGS_DIR_QUOTED%"
+set "START_OPTS=%START_OPTS% -Dsolr.logs.dir=%SOLR_LOGS_DIR_QUOTED%"
IF NOT "%SOLR_DATA_HOME%"=="" set "START_OPTS=%START_OPTS%
-Dsolr.data.home=%SOLR_DATA_HOME_QUOTED%"
IF NOT DEFINED LOG4J_CONFIG set
"LOG4J_CONFIG=%SOLR_SERVER_DIR%\resources\log4j2.xml"
@@ -1144,15 +1120,13 @@ IF NOT EXIST "%SOLR_SERVER_DIR%\tmp" (
mkdir "%SOLR_SERVER_DIR%\tmp"
)
-IF "%DEFAULT_CONFDIR%"=="" set
"DEFAULT_CONFDIR=%SOLR_SERVER_DIR%\solr\configsets\_default\conf"
-
IF "%FG%"=="1" (
REM run solr in the foreground
title "Solr-%SOLR_PORT%"
echo %SOLR_PORT%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port
"%JAVA%" %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% ^
-Dlog4j.configurationFile="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT!
-DSTOP.KEY=%STOP_KEY% ^
- -Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%"
-Dsolr.install.symDir="%SOLR_TIP%" -Dsolr.default.confdir="%DEFAULT_CONFDIR%" ^
+ -Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%"
-Dsolr.install.symDir="%SOLR_TIP%" ^
-Djetty.port=%SOLR_PORT% -Djetty.home="%SOLR_SERVER_DIR%" ^
-Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar
%SOLR_JETTY_CONFIG% "%SOLR_JETTY_ADDL_CONFIG%"
) ELSE (
@@ -1160,7 +1134,7 @@ IF "%FG%"=="1" (
"%JAVA%" %SERVEROPT% %SOLR_JAVA_MEM% %START_OPTS% ^
-Dlog4j.configurationFile="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT!
-DSTOP.KEY=%STOP_KEY% ^
-Dsolr.log.muteconsole ^
- -Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%"
-Dsolr.install.symDir="%SOLR_TIP%" -Dsolr.default.confdir="%DEFAULT_CONFDIR%" ^
+ -Dsolr.solr.home="%SOLR_HOME%" -Dsolr.install.dir="%SOLR_TIP%"
-Dsolr.install.symDir="%SOLR_TIP%" ^
-Djetty.port=%SOLR_PORT% -Djetty.home="%SOLR_SERVER_DIR%" ^
-Djava.io.tmpdir="%SOLR_SERVER_DIR%\tmp" -jar start.jar
%SOLR_JETTY_CONFIG% "%SOLR_JETTY_ADDL_CONFIG%" >
"!SOLR_LOGS_DIR!\solr-%SOLR_PORT%-console.log"
echo %SOLR_PORT%>"%SOLR_TIP%"\bin\solr-%SOLR_PORT%.port
@@ -1169,7 +1143,7 @@ IF "%FG%"=="1" (
set SOLR_START_WAIT=180
)
REM now wait to see Solr come online ...
- "%JAVA%" %SOLR_SSL_OPTS% %AUTHC_OPTS% %SOLR_ZK_CREDS_AND_ACLS%
%SOLR_TOOL_OPTS% -Dsolr.install.dir="%SOLR_TIP%"
-Dsolr.default.confdir="%DEFAULT_CONFDIR%"^
+ "%JAVA%" %SOLR_SSL_OPTS% %AUTHC_OPTS% %SOLR_ZK_CREDS_AND_ACLS%
%SOLR_TOOL_OPTS% -Dsolr.install.dir="%SOLR_TIP%" ^
-Dlog4j.configurationFile="file:///%DEFAULT_SERVER_DIR%\resources\log4j2-console.xml"
^
-classpath
"%DEFAULT_SERVER_DIR%\solr-webapp\webapp\WEB-INF\lib\*;%DEFAULT_SERVER_DIR%\lib\ext\*"
^
org.apache.solr.cli.SolrCLI status --max-wait-secs !SOLR_START_WAIT!
diff --git a/solr/bin/solr.in.cmd b/solr/bin/solr.in.cmd
index 60d8aaeac0a..9e01056cf69 100755
--- a/solr/bin/solr.in.cmd
+++ b/solr/bin/solr.in.cmd
@@ -69,7 +69,7 @@ REM for production SolrCloud environments to control the
hostname exposed to clu
REM set SOLR_HOST=192.168.1.1
REM By default Solr will try to connect to Zookeeper with 30 seconds in
timeout; override the timeout if needed
-REM set SOLR_WAIT_FOR_ZK=30
+REM set SOLR_CLOUD_WAIT_FOR_ZK_SECONDS=30
REM By default Solr will log a warning for cores that are not registered in
Zookeeper at startup
REM but otherwise ignore them. This protects against misconfiguration (e.g.
connecting to the
@@ -222,14 +222,14 @@ REM This is experimental!
REM set SOLR_SECURITY_MANAGER_ENABLED=true
REM This variable provides you with the option to disable the Admin UI. if you
uncomment the variable below and
-REM change the value to true. The option is configured as a system property as
defined in SOLR_START_OPTS in the start
+REM change the value to false. The option is configured as a system property
as defined in SOLR_START_OPTS in the start
REM scripts.
-REM set SOLR_ADMIN_UI_DISABLED=false
+REM set SOLR_UI_ENABLED=true
REM This variable provides you with the option to disable the new experimental
Admin UI. If you uncomment the variable
-REM below and change the value to true, Jetty will not load the new-ui module
which update the CSP directive for the
-REM new UI endpoints. This property is ignored if SOLR_ADMIN_UI_DISABLED is
true.
-REM set SOLR_ADMIN_UI_EXPERIMENTAL_DISABLED=false
+REM below and change the value to false, Jetty will not load the new-ui module
which update the CSP directive for the
+REM new UI endpoints. This property is ignored if SOLR_UI_ENABLED is false.
+REM set SOLR_UI_EXPERIMENTAL_ENABLED=false
REM Solr is by default allowed to read and write data from/to SOLR_HOME and a
few other well defined locations
REM Sometimes it may be necessary to place a core or a backup on a different
location or a different disk
diff --git a/solr/bin/solr.in.sh b/solr/bin/solr.in.sh
index 4692343d85f..38a98197816 100644
--- a/solr/bin/solr.in.sh
+++ b/solr/bin/solr.in.sh
@@ -75,7 +75,7 @@
#SOLR_HOST="192.168.1.1"
# By default Solr will try to connect to Zookeeper with 30 seconds in timeout;
override the timeout if needed
-#SOLR_WAIT_FOR_ZK="30"
+#SOLR_CLOUD_WAIT_FOR_ZK_SECONDS="30"
# By default Solr will log a warning for cores that are not registered in
Zookeeper at startup
# but otherwise ignore them. This protects against misconfiguration (e.g.
connecting to the
@@ -248,14 +248,14 @@
#SOLR_SECURITY_MANAGER_ENABLED=true
# This variable provides you with the option to disable the Admin UI. If you
uncomment the variable below and
-# change the value to true. The option is configured as a system property as
defined in SOLR_START_OPTS in the start
+# change the value to false. The option is configured as a system property as
defined in SOLR_START_OPTS in the start
# scripts.
-# SOLR_ADMIN_UI_DISABLED=false
+# SOLR_UI_ENABLED=true
# This variable provides you with the option to disable the new experimental
Admin UI. If you uncomment the variable
-# below and change the value to true, Jetty will not load the new-ui module
which update the CSP directive for the
-# new UI endpoints. This property is ignored if SOLR_ADMIN_UI_DISABLED is true.
-# SOLR_ADMIN_UI_EXPERIMENTAL_DISABLED=false
+# below and change the value to false, Jetty will not load the new-ui module
which update the CSP directive for the
+# new UI endpoints. This property is ignored if SOLR_UI_ENABLED is false.
+# SOLR_UI_EXPERIMENTAL_ENABLED=false
# Solr is by default allowed to read and write data from/to SOLR_HOME and a
few other well defined locations
# Sometimes it may be necessary to place a core or a backup on a different
location or a different disk
diff --git a/solr/core/src/java/org/apache/solr/cli/PackageTool.java
b/solr/core/src/java/org/apache/solr/cli/PackageTool.java
index 704d4c008c8..f715a20cd13 100644
--- a/solr/core/src/java/org/apache/solr/cli/PackageTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/PackageTool.java
@@ -340,7 +340,7 @@ public class PackageTool extends ToolBase {
"Note: (a) Please add '--solr-url http://host:port' parameter if
needed (usually on Windows).");
format(
sb,
- " (b) Please make sure that all Solr nodes are started with
'-Denable.packages=true' parameter.");
+ " (b) Please make sure that all Solr nodes are started with
'-solr.packages.enabled=true' parameter.");
format(sb, "\n");
format(sb, "List of options:");
return sb.toString();
diff --git a/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
b/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
index bffce6483de..0d737c27d61 100644
--- a/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
+++ b/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
@@ -112,9 +112,9 @@ public abstract class ConfigSetService {
Path configDirPath = getDefaultConfigDirPath();
if (configDirPath == null) {
log.warn(
- "The _default configset could not be uploaded. Please provide
'solr.default.confdir' parameter that points to a configset {} {}",
- "intended to be the default. Current 'solr.default.confdir'
value:",
-
System.getProperty(SolrDispatchFilter.SOLR_DEFAULT_CONFDIR_ATTRIBUTE));
+ "The _default configset could not be uploaded. Please provide
'solr.configset.default.confdir' parameter that points to a configset {} {}",
+ "intended to be the default. Current
'solr.configset.default.confdir' value:",
+
System.getProperty(SolrDispatchFilter.SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE));
} else {
this.uploadConfig(ConfigSetsHandler.DEFAULT_CONFIGSET_NAME,
configDirPath);
}
@@ -136,14 +136,15 @@ public abstract class ConfigSetService {
/**
* Gets the absolute filesystem path of the _default configset to bootstrap
from. First tries the
- * sysprop "solr.default.confdir". If not found, tries to find the _default
dir relative to the
- * sysprop "solr.install.dir". Returns null if not found anywhere.
+ * sysprop "solr.configset.default.confdir". If not found, tries to find the
_default dir relative
+ * to the sysprop "solr.install.dir". Returns null if not found anywhere.
*
* @lucene.internal
- * @see SolrDispatchFilter#SOLR_DEFAULT_CONFDIR_ATTRIBUTE
+ * @see SolrDispatchFilter#SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE
*/
public static Path getDefaultConfigDirPath() {
- String confDir =
System.getProperty(SolrDispatchFilter.SOLR_DEFAULT_CONFDIR_ATTRIBUTE);
+ String confDir =
+
System.getProperty(SolrDispatchFilter.SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE);
if (confDir != null) {
Path path = Path.of(confDir);
if (Files.exists(path)) {
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 db5c97cc921..5a3eda738b6 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -1807,7 +1807,8 @@ public class CoreContainer {
// this mostly happens when the core is deleted when this node is down
// but it can also happen if connecting to the wrong zookeeper
final boolean deleteUnknownCores =
- Boolean.parseBoolean(System.getProperty("solr.deleteUnknownCores",
"false"));
+ Boolean.parseBoolean(
+
System.getProperty("solr.cloud.startup.delete.unknown.cores.enabled", "false"));
log.error(
"SolrCore {} in {} is not in cluster state.{}",
dcore.getName(),
diff --git a/solr/core/src/java/org/apache/solr/core/NodeConfig.java
b/solr/core/src/java/org/apache/solr/core/NodeConfig.java
index 1dcdc896d35..91c14eb72ad 100644
--- a/solr/core/src/java/org/apache/solr/core/NodeConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/NodeConfig.java
@@ -248,10 +248,11 @@ public class NodeConfig {
// ZkFailoverTest test case...
String zkHost = nodeProperties.getProperty(SolrXmlConfig.ZK_HOST);
if (StrUtils.isNotNullOrEmpty(zkHost)) {
- int startUpZkTimeOut = 1000 * Integer.getInteger("waitForZk", 0);
- if (startUpZkTimeOut == 0) {
- startUpZkTimeOut = SolrZkClientTimeout.DEFAULT_ZK_CLIENT_TIMEOUT;
- }
+ int startUpZkTimeOut =
+ 1000
+ * Integer.getInteger(
+ "solr.cloud.wait.for.zk.seconds",
SolrZkClientTimeout.DEFAULT_ZK_CLIENT_TIMEOUT);
+
try (SolrZkClient zkClient =
new SolrZkClient.Builder()
.withUrl(zkHost)
diff --git a/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
b/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
index aa5ca5d9564..aaa12ef5a87 100644
--- a/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
+++ b/solr/core/src/java/org/apache/solr/pkg/PackageAPI.java
@@ -62,11 +62,11 @@ import org.slf4j.LoggerFactory;
/** This implements the public end points (/api/cluster/package) of package
API. */
public class PackageAPI {
- public final boolean enablePackages =
EnvUtils.getPropertyAsBool("enable.packages", false);
+ public final boolean enablePackages =
EnvUtils.getPropertyAsBool("solr.packages.enabled", false);
private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
public static final String ERR_MSG =
- "Package loading is not enabled , Start your nodes with
-Denable.packages=true";
+ "Package loading is not enabled , Start your nodes with
-Dsolr.packages.enabled=true";
final CoreContainer coreContainer;
private final ObjectMapper mapper =
SolrJacksonAnnotationInspector.createObjectMapper();
diff --git
a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
index 009bba8dc56..160effef95f 100644
--- a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
+++ b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
@@ -295,7 +295,7 @@ public class CoreContainerProvider implements
ServletContextListener {
"Solr typically starts with \"-XX:+CrashOnOutOfMemoryError\"
that will crash on any OutOfMemoryError exception. "
+ "Unable to get the specific file due to an exception."
+ "The cause of the OOME will be logged in a crash file in
the logs directory: %s",
- System.getProperty("solr.log.dir"));
+ System.getProperty("solr.logs.dir"));
log.info(logMessage, e);
}
}
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 5ea82e46b9d..bbbd9166c51 100644
--- a/solr/core/src/java/org/apache/solr/servlet/LoadAdminUiServlet.java
+++ b/solr/core/src/java/org/apache/solr/servlet/LoadAdminUiServlet.java
@@ -39,19 +39,19 @@ import org.apache.solr.core.SolrCore;
*/
public final class LoadAdminUiServlet extends HttpServlet {
- // check system properties for whether or not admin UI is disabled, default
is false
- private static final boolean disabled =
- Boolean.parseBoolean(System.getProperty("disableAdminUI", "false"));
+ // check system properties for whether the admin UI is disabled, default is
false
+ private static final boolean uiEnabled =
+ Boolean.parseBoolean(System.getProperty("solr.ui.enabled", "true"));
// list of comma separated URLs to inject into the CSP connect-src directive
public static final String SYSPROP_CSP_CONNECT_SRC_URLS =
"solr.ui.headers.csp.connect-src.urls";
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
- if (disabled) {
+ if (!uiEnabled) {
response.sendError(
404,
- "Solr Admin UI is disabled. To enable it, change the default value
of SOLR_ADMIN_UI_"
- + "ENABLED in bin/solr.in.sh or solr.in.cmd.");
+ "Solr Admin UI is disabled. To enable it, change the value of
SOLR_UI_ENABLED"
+ + " in bin/solr.in.sh or solr.in.cmd.");
return;
}
request = ServletUtils.closeShield(request);
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 b62479bad77..632c8aef504 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
@@ -113,7 +113,8 @@ public class SolrDispatchFilter extends HttpFilter
implements PathExcluder {
public static final String SOLR_INSTALL_DIR_ATTRIBUTE = "solr.install.dir";
- public static final String SOLR_DEFAULT_CONFDIR_ATTRIBUTE =
"solr.default.confdir";
+ public static final String SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE =
+ "solr.configset.default.confdir";
public static final String SOLR_LOG_MUTECONSOLE = "solr.log.muteconsole";
diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
index aeccc342059..34d18e57962 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
@@ -110,8 +110,8 @@ public class SolrRequestParsers {
formUploadLimitKB = globalConfig.getFormUploadLimitKB();
// security risks; disabled by default
- enableRemoteStreams = Boolean.getBoolean("solr.enableRemoteStreaming");
- enableStreamBody = Boolean.getBoolean("solr.enableStreamBody");
+ enableRemoteStreams =
Boolean.getBoolean("solr.requests.streaming.remote.enabled");
+ enableStreamBody =
Boolean.getBoolean("solr.requests.streaming.body.enabled");
// Let this filter take care of /select?xxx format
diff --git a/solr/core/src/java/org/apache/solr/util/StartupLoggingUtils.java
b/solr/core/src/java/org/apache/solr/util/StartupLoggingUtils.java
index 79047a502e3..73ddc50fe3d 100644
--- a/solr/core/src/java/org/apache/solr/util/StartupLoggingUtils.java
+++ b/solr/core/src/java/org/apache/solr/util/StartupLoggingUtils.java
@@ -47,8 +47,8 @@ public final class StartupLoggingUtils {
/** Checks whether mandatory log dir is given */
public static void checkLogDir() {
- if (EnvUtils.getProperty("solr.log.dir") == null) {
- log.error("Missing Java Option solr.log.dir. Logging may be missing or
incomplete.");
+ if (EnvUtils.getProperty("solr.logs.dir") == null) {
+ log.error("Missing Java Option solr.logs.dir. Logging may be missing or
incomplete.");
}
}
diff --git a/solr/core/src/test/org/apache/solr/cli/PackageToolTest.java
b/solr/core/src/test/org/apache/solr/cli/PackageToolTest.java
index 47f3f345f73..9d777620baf 100644
--- a/solr/core/src/test/org/apache/solr/cli/PackageToolTest.java
+++ b/solr/core/src/test/org/apache/solr/cli/PackageToolTest.java
@@ -61,7 +61,7 @@ public class PackageToolTest extends SolrCloudTestCase {
@BeforeClass
public static void setupClusterWithSecurityEnabled() throws Exception {
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.packages.enabled", "true");
configureCluster(2)
.addConfig(
@@ -83,7 +83,7 @@ public class PackageToolTest extends SolrCloudTestCase {
repositoryServer.stop();
}
} finally {
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.packages.enabled");
}
}
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 98f98456d7e..c57f22c23f4 100644
--- a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
+++ b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
@@ -214,7 +214,7 @@ public class TestSolrCLIRunExample extends SolrTestCaseJ4 {
System.setProperty("host", "localhost");
System.setProperty("jetty.port", String.valueOf(port));
- System.setProperty("solr.log.dir",
createTempDir("solr_logs").toString());
+ System.setProperty("solr.logs.dir",
createTempDir("solr_logs").toString());
standaloneSolr = new JettySolrRunner(solrHomeDir.toString(), port);
Thread bg =
diff --git
a/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java
b/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java
index 2d1b3564527..93ced0eeca1 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java
@@ -48,12 +48,12 @@ public class DeleteInactiveReplicaTest extends
SolrCloudTestCase {
@AfterClass
public static void reset() {
- System.setProperty("solr.deleteUnknownCores", "false");
+ System.setProperty("solr.cloud.startup.delete.unknown.cores.enabled",
"false");
}
@Test
public void deleteInactiveReplicaTest() throws Exception {
- System.setProperty("solr.deleteUnknownCores", "true");
+ System.setProperty("solr.cloud.startup.delete.unknown.cores.enabled",
"true");
String collectionName = "delDeadColl";
int replicationFactor = 2;
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 40e56159dcf..cc42e9eaf73 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestConfigSetsAPI.java
@@ -1670,12 +1670,12 @@ public class TestConfigSetsAPI extends
SolrCloudTestCase {
* the real directory which matches what {@link ZkController} finds and uses
to bootstrap ZK in
* cloud based tests.
*
- * <p>This assumes the {@link
SolrDispatchFilter#SOLR_DEFAULT_CONFDIR_ATTRIBUTE} system property
- * has not been externally set in the environment where this test is being
run -- which should
- * <b>never</b> be the case, since it would prevent the test-framework from
using {@link
+ * <p>This assumes the {@link
SolrDispatchFilter#SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE} system
+ * property has not been externally set in the environment where this test
is being run -- which
+ * should <b>never</b> be the case, since it would prevent the
test-framework from using {@link
* ExternalPaths#DEFAULT_CONFIGSET}
*
- * @see SolrDispatchFilter#SOLR_DEFAULT_CONFDIR_ATTRIBUTE
+ * @see SolrDispatchFilter#SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE
* @see #beforeSolrTestCase
* @see ConfigSetService#getDefaultConfigDirPath
*/
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
b/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
index d9dceb79614..e26d0fb45f4 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkFailoverTest.java
@@ -47,7 +47,7 @@ public class ZkFailoverTest extends SolrCloudTestCase {
@AfterClass
public static void resetWaitForZk() {
- System.setProperty("waitForZk", "30");
+ System.setProperty("solr.cloud.wait.for.zk.seconds", "30");
}
public void testRestartZkWhenClusterDown() throws Exception {
@@ -58,12 +58,12 @@ public class ZkFailoverTest extends SolrCloudTestCase {
zkTestServer = cluster.getZkServer();
// This attempt will fail since it will time out after 1 second
- System.setProperty("waitForZk", "1");
+ System.setProperty("solr.cloud.wait.for.zk.seconds", "1");
restartSolrAndZk();
waitForLiveNodes(0);
// This attempt will succeed since there will be enough time to connect
- System.setProperty("waitForZk", "20");
+ System.setProperty("solr.cloud.wait.for.zk.seconds", "20");
restartSolrAndZk();
waitForLiveNodes(cluster.getJettySolrRunners().size());
waitForState("Timeout waiting for " + coll, coll, clusterShape(2, 2));
diff --git
a/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
b/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
index b3006d2da8e..d2e3ded32ea 100644
---
a/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
+++
b/solr/core/src/test/org/apache/solr/cluster/events/ClusterEventProducerTest.java
@@ -67,7 +67,7 @@ public class ClusterEventProducerTest extends
SolrCloudTestCase {
@Override
@Before
public void setUp() throws Exception {
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.packages.enabled", "true");
super.setUp();
cluster.deleteAllCollections();
eventsListener = new AllEventsListener();
@@ -88,7 +88,7 @@ public class ClusterEventProducerTest extends
SolrCloudTestCase {
@After
public void teardown() throws Exception {
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.packages.enabled");
if (eventsListener != null) {
cluster
.getOpenOverseer()
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 21a4080a6d6..f1cca81da47 100644
--- a/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
+++ b/solr/core/src/test/org/apache/solr/filestore/TestDistribFileStore.java
@@ -67,12 +67,12 @@ public class TestDistribFileStore extends SolrCloudTestCase
{
@Before
public void setup() {
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.packages.enabled", "true");
}
@After
public void teardown() {
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.packages.enabled");
}
@Test
diff --git
a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
index 733a44590e1..6306c859449 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
@@ -78,7 +78,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
/**
* A package listener that will count how many times it has been triggered.
Useful to wait for
- * changes accross multiple cores.
+ * changes across multiple cores.
*
* <p>Use by calling {@link #reset()} before the API calls, and then {@link
#waitFor(int)} to
* block until <code>num</code> cores have been notified.
@@ -112,7 +112,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
@Before
public void setup() throws Exception {
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.packages.enabled", "true");
phaser = new Phaser();
forceV2 = random().nextBoolean();
@@ -143,7 +143,7 @@ public class TestContainerPlugin extends SolrCloudTestCase {
@After
public void teardown() throws Exception {
shutdownCluster();
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.packages.enabled");
}
@SuppressWarnings("unchecked")
diff --git
a/solr/core/src/test/org/apache/solr/pkg/PackageStoreSchemaPluginsTest.java
b/solr/core/src/test/org/apache/solr/pkg/PackageStoreSchemaPluginsTest.java
index 5fa62780a6b..257501e8052 100644
--- a/solr/core/src/test/org/apache/solr/pkg/PackageStoreSchemaPluginsTest.java
+++ b/solr/core/src/test/org/apache/solr/pkg/PackageStoreSchemaPluginsTest.java
@@ -60,7 +60,7 @@ public class PackageStoreSchemaPluginsTest extends
SolrCloudTestCase {
@Override
public void setUp() throws Exception {
super.setUp();
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.packages.enabled", "true");
configureCluster(2)
// add a configset where one schema field is of type
`my.pkg.MyTextField`
// this class is available via schema-plugins.jar.bin
@@ -79,7 +79,7 @@ public class PackageStoreSchemaPluginsTest extends
SolrCloudTestCase {
cluster.shutdown();
cluster = null;
}
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.packages.enabled");
super.tearDown();
}
diff --git a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
index b295b68f332..092877e6add 100644
--- a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
+++ b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
@@ -92,7 +92,7 @@ public class TestPackages extends SolrCloudTestCase {
@Override
public void setUp() throws Exception {
super.setUp();
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.packages.enabled", "true");
configureCluster(4)
.withJettyConfig(jetty -> jetty.enableV2(true))
.addConfig("conf", configset("conf3"))
@@ -106,7 +106,7 @@ public class TestPackages extends SolrCloudTestCase {
if (cluster != null) {
cluster.shutdown();
}
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.packages.enabled");
super.tearDown();
}
diff --git
a/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
b/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
index df7feaa7b2c..4ac59bbd3cb 100644
--- a/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
+++ b/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
@@ -44,8 +44,8 @@ public class TestRemoteStreaming extends SolrJettyTestBase {
@BeforeClass
public static void beforeTest() throws Exception {
- System.setProperty("solr.enableRemoteStreaming", "true");
- System.setProperty("solr.enableStreamBody", "true");
+ System.setProperty("solr.requests.streaming.remote.enabled", "true");
+ System.setProperty("solr.requests.streaming.body.enabled", "true");
Path solrHomeDirectory =
createTempDir(LuceneTestCase.getTestClass().getSimpleName());
setupJettyTestHome(solrHomeDirectory, "collection1");
createAndStartJetty(solrHomeDirectory.toAbsolutePath());
diff --git a/solr/core/src/test/org/apache/solr/request/TestStreamBody.java
b/solr/core/src/test/org/apache/solr/request/TestStreamBody.java
index 13c793913c7..c85b1ce6a48 100644
--- a/solr/core/src/test/org/apache/solr/request/TestStreamBody.java
+++ b/solr/core/src/test/org/apache/solr/request/TestStreamBody.java
@@ -68,7 +68,7 @@ public class TestStreamBody extends RestTestBase {
// SOLR-3161
@Test
public void testQtUpdateFails() throws Exception {
- System.setProperty("solr.enableStreamBody", "true");
+ System.setProperty("solr.requests.streaming.body.enabled", "true");
startSolr();
SolrQuery query = new SolrQuery();
diff --git a/solr/core/src/test/org/apache/solr/search/TestSmileRequest.java
b/solr/core/src/test/org/apache/solr/search/TestSmileRequest.java
index 7f282cc39d7..450b2fbee0a 100644
--- a/solr/core/src/test/org/apache/solr/search/TestSmileRequest.java
+++ b/solr/core/src/test/org/apache/solr/search/TestSmileRequest.java
@@ -43,7 +43,7 @@ public class TestSmileRequest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeTests() throws Exception {
systemSetPropertySolrDisableUrlAllowList("true");
- System.setProperty("solr.enableStreamBody", "true");
+ System.setProperty("solr.requests.streaming.body.enabled", "true");
JSONTestUtil.failRepeatedKeys = true;
initCore("solrconfig-tlog.xml", "schema_latest.xml");
}
diff --git
a/solr/core/src/test/org/apache/solr/search/json/TestJsonRequest.java
b/solr/core/src/test/org/apache/solr/search/json/TestJsonRequest.java
index f8527583aae..f6855a236b6 100644
--- a/solr/core/src/test/org/apache/solr/search/json/TestJsonRequest.java
+++ b/solr/core/src/test/org/apache/solr/search/json/TestJsonRequest.java
@@ -50,7 +50,7 @@ public class TestJsonRequest extends SolrTestCaseHS {
@BeforeClass
public static void beforeTests() throws Exception {
systemSetPropertySolrDisableUrlAllowList("true");
- System.setProperty("solr.enableStreamBody", "true");
+ System.setProperty("solr.requests.streaming.body.enabled", "true");
JSONTestUtil.failRepeatedKeys = true;
initCore("solrconfig-tlog.xml", "schema_latest.xml");
}
diff --git a/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
b/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
index f304468abd7..aecee86eed7 100644
--- a/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
@@ -36,7 +36,8 @@ public class CacheHeaderTest extends CacheHeaderTestBase {
@BeforeClass
public static void beforeTest() throws Exception {
- System.setProperty("solr.enableRemoteStreaming", "true"); // needed for
testCacheVetoHandler
+ System.setProperty(
+ "solr.requests.streaming.remote.enabled", "true"); // needed for
testCacheVetoHandler
Path solrHomeDirectory = createTempDir();
setupJettyTestHome(solrHomeDirectory, "collection1");
diff --git
a/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
b/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
index 0e4ecbd63ee..fbacd904ae0 100644
--- a/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
@@ -27,7 +27,7 @@ public class DirectSolrConnectionTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
- System.setProperty("solr.enableStreamBody", "true");
+ System.setProperty("solr.requests.streaming.body.enabled", "true");
initCore("solr/crazy-path-to-config.xml", "solr/crazy-path-to-schema.xml");
}
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 fe56c82a7f8..3a2c1ce6d76 100644
--- a/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
@@ -63,8 +63,8 @@ public class SolrRequestParserTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
assumeWorkingMockito();
- System.setProperty("solr.enableRemoteStreaming", "true");
- System.setProperty("solr.enableStreamBody", "true");
+ System.setProperty("solr.requests.streaming.remote.enabled", "true");
+ System.setProperty("solr.requests.streaming.body.enabled", "true");
initCore("solrconfig.xml", "schema.xml");
parser = new SolrRequestParsers(h.getCore().getSolrConfig());
}
diff --git a/solr/docker/tests/cases/test_log4j/log4j2.xml
b/solr/docker/tests/cases/test_log4j/log4j2.xml
index f1958fc4eeb..0d9949535cd 100644
--- a/solr/docker/tests/cases/test_log4j/log4j2.xml
+++ b/solr/docker/tests/cases/test_log4j/log4j2.xml
@@ -29,8 +29,8 @@
<RollingFile
name="RollingFile"
- fileName="${sys:solr.log.dir}/solr.log"
- filePattern="${sys:solr.log.dir}/solr.log.%i" >
+ fileName="${sys:solr.logs.dir}/solr.log"
+ filePattern="${sys:solr.logs.dir}/solr.log.%i" >
<PatternLayout>
<Pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}] %c{1.} %m%n
@@ -45,8 +45,8 @@
<RollingFile
name="RollingJsonFile"
- fileName="${sys:solr.log.dir}/solr.json.log"
- filePattern="${sys:solr.log.dir}/solr.json.log.%i" >
+ fileName="${sys:solr.logs.dir}/solr.json.log"
+ filePattern="${sys:solr.logs.dir}/solr.json.log.%i" >
<JsonTemplateLayout
eventTemplateUri="classpath:LogstashJsonEventLayoutV1.json" /> <!-- provided by
log4j-layout-template-json.jar -->
<Policies>
<OnStartupTriggeringPolicy />
@@ -57,8 +57,8 @@
<RollingFile
name="SlowFile"
- fileName="${sys:solr.log.dir}/solr_slow_requests.log"
- filePattern="${sys:solr.log.dir}/solr_slow_requests.log.%i" >
+ fileName="${sys:solr.logs.dir}/solr_slow_requests.log"
+ filePattern="${sys:solr.logs.dir}/solr_slow_requests.log.%i" >
<PatternLayout>
<Pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}] %c{1.} %m%n
diff --git a/solr/packaging/test/test_basic_auth.bats
b/solr/packaging/test/test_basic_auth.bats
index a84d9d15d4a..973aa95f351 100644
--- a/solr/packaging/test/test_basic_auth.bats
+++ b/solr/packaging/test/test_basic_auth.bats
@@ -21,7 +21,7 @@ setup() {
common_clean_setup
echo "Starting Solr"
- solr start -Denable.packages=true
+ solr start -Dsolr.packages.enabled=true
# The auth command exports some system variables that are injected as basic
auth username and password,
# however that defeats our test so fake that out via --solr-include-file
param specifing a bogus path.
diff --git a/solr/packaging/test/test_packages.bats
b/solr/packaging/test/test_packages.bats
index cc7cd1b82ce..1f60523e53f 100644
--- a/solr/packaging/test/test_packages.bats
+++ b/solr/packaging/test/test_packages.bats
@@ -29,7 +29,7 @@ teardown() {
}
@test "lifecycle of package" {
- run solr start -Denable.packages=true
+ run solr start -Dsolr.packages.enabled=true
run solr package --help
assert_output --partial "Add a repository to Solr"
@@ -39,7 +39,7 @@ teardown() {
}
@test "deploying and undeploying a collection level package" {
- run solr start -Denable.packages=true
+ run solr start -Dsolr.packages.enabled=true
solr create -c foo-1.2
@@ -64,7 +64,7 @@ teardown() {
@test "deploying and undeploying a cluster level package" {
skip "For developing package infra; requires a connection to github"
- run solr start -Denable.packages=true
+ run solr start -Dsolr.packages.enabled=true
run solr package add-repo splainer
"https://raw.githubusercontent.com/o19s/splainer/refs/heads/main/solr-splainer-package/repo/"
assert_output --partial "Added repository: splainer"
diff --git a/solr/packaging/test/test_start_solr.bats
b/solr/packaging/test/test_start_solr.bats
index ae0f6f514bd..2ba80e44e95 100644
--- a/solr/packaging/test/test_start_solr.bats
+++ b/solr/packaging/test/test_start_solr.bats
@@ -81,6 +81,11 @@ teardown() {
refute_output --partial 'Exception'
}
+@test "deprecated system properties converted to modern properties" {
+ solr start -Denable.packages=true
+ assert_file_contains "${SOLR_LOGS_DIR}/solr.log" 'You are passing in
deprecated system property enable.packages and should upgrade to using
solr.packages.enabled instead.'
+}
+
@test "start with custom jetty options" {
export ENABLE_REMOTE_JMX_OPTS=true
export RMI_PORT=65535 # need to make sure we don't exceed port range so hard
code it
diff --git a/solr/server/etc/jetty-requestlog.xml
b/solr/server/etc/jetty-requestlog.xml
index 9560ca96542..dee4a585182 100644
--- a/solr/server/etc/jetty-requestlog.xml
+++ b/solr/server/etc/jetty-requestlog.xml
@@ -28,7 +28,7 @@
<!-- Writer -->
<Arg>
<New class="org.eclipse.jetty.server.AsyncRequestLogWriter">
- <Arg><Property name="solr.log.dir"
default="logs"/>/yyyy_mm_dd.request.log</Arg>
+ <Arg><Property name="solr.logs.dir"
default="logs"/>/yyyy_mm_dd.request.log</Arg>
<Set name="filenameDateFormat">yyyy_MM_dd</Set>
<Set name="retainDays"><Property
name="solr.log.requestlog.retaindays" default="3"/></Set>
<Set name="append">true</Set>
diff --git a/solr/server/etc/security.policy b/solr/server/etc/security.policy
index 0750285410e..2e65fc70e07 100644
--- a/solr/server/etc/security.policy
+++ b/solr/server/etc/security.policy
@@ -196,11 +196,11 @@ grant {
permission java.io.FilePermission "${solr.data.home}",
"read,write,delete,readlink";
permission java.io.FilePermission "${solr.data.home}${/}-",
"read,write,delete,readlink";
- permission java.io.FilePermission "${solr.default.confdir}",
"read,write,delete,readlink";
- permission java.io.FilePermission "${solr.default.confdir}${/}-",
"read,write,delete,readlink";
+ permission java.io.FilePermission "${solr.configset.default.confdir}",
"read,write,delete,readlink";
+ permission java.io.FilePermission "${solr.configset.default.confdir}${/}-",
"read,write,delete,readlink";
- permission java.io.FilePermission "${solr.log.dir}",
"read,write,delete,readlink";
- permission java.io.FilePermission "${solr.log.dir}${/}-",
"read,write,delete,readlink";
+ permission java.io.FilePermission "${solr.logs.dir}",
"read,write,delete,readlink";
+ permission java.io.FilePermission "${solr.logs.dir}${/}-",
"read,write,delete,readlink";
permission java.io.FilePermission "${solr.allowPaths}",
"read,write,delete,readlink";
permission java.io.FilePermission "${solr.allowPaths}${/}-",
"read,write,delete,readlink";
diff --git a/solr/server/resources/log4j2.xml b/solr/server/resources/log4j2.xml
index 1c59712cc79..3a0e51d91b6 100644
--- a/solr/server/resources/log4j2.xml
+++ b/solr/server/resources/log4j2.xml
@@ -30,8 +30,8 @@
<RollingRandomAccessFile
name="MainLogFile"
- fileName="${sys:solr.log.dir}/solr.log"
- filePattern="${sys:solr.log.dir}/solr.log.%i" >
+ fileName="${sys:solr.logs.dir}/solr.log"
+ filePattern="${sys:solr.logs.dir}/solr.log.%i" >
<PatternLayout>
<Pattern>
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}%notEmpty{ t:%X{trace_id}}] %c{1.}
%m%notEmpty{ =>%ex{short}}}{10240}%n
@@ -46,8 +46,8 @@
<RollingRandomAccessFile
name="SlowLogFile"
- fileName="${sys:solr.log.dir}/solr_slow_requests.log"
- filePattern="${sys:solr.log.dir}/solr_slow_requests.log.%i" >
+ fileName="${sys:solr.logs.dir}/solr_slow_requests.log"
+ filePattern="${sys:solr.logs.dir}/solr_slow_requests.log.%i" >
<PatternLayout>
<Pattern>
%maxLen{%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t)
[%notEmpty{c:%X{collection}}%notEmpty{ s:%X{shard}}%notEmpty{
r:%X{replica}}%notEmpty{ x:%X{core}}%notEmpty{ t:%X{trace_id}}] %c{1.}
%m%notEmpty{ =>%ex{short}}}{10240}%n
diff --git
a/solr/solr-ref-guide/modules/configuration-guide/pages/config-sets.adoc
b/solr/solr-ref-guide/modules/configuration-guide/pages/config-sets.adoc
index b44c8a82825..f404b76ae09 100644
--- a/solr/solr-ref-guide/modules/configuration-guide/pages/config-sets.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/config-sets.adoc
@@ -57,7 +57,7 @@ By default the excluded file types are:
However, users can impose stricter or looser limits on their systems by
providing a comma separated list of file types
(without the preceding dot, e.g. `jar,class,csv`), to either of the following
settings:
-- System Property: `-DsolrConfigSetForbiddenFileTypes`
+- System Property: `-Dsolr.configset.forbidden.file.types`
- Environment Variable: `SOLR_CONFIG_SET_FORBIDDEN_FILE_TYPES`
== Configsets in User-Managed Clusters or Single-Node Installations
diff --git
a/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager-internals.adoc
b/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager-internals.adoc
index 33b6afcc2a4..e7aa4703e46 100644
---
a/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager-internals.adoc
+++
b/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager-internals.adoc
@@ -42,13 +42,13 @@ As soon as the configuration is modified, the corresponding
classloaders are rel
== Package Loading Security
Packages are disabled by default.
-Start all your nodes with the system property `-Denable.packages=true` to use
this feature.
+Start all your nodes with the system property `-Dsolr.packages.enabled=true`
to use this feature.
*Example*
[source,bash]
----
-bin/solr start -Denable.packages=true
+bin/solr start -Dsolr.packages.enabled=true
----
=== Upload Your Keys
diff --git
a/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager.adoc
b/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager.adoc
index d4fd1754234..4adb2fa4806 100644
--- a/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager.adoc
+++ b/solr/solr-ref-guide/modules/configuration-guide/pages/package-manager.adoc
@@ -42,11 +42,11 @@ The package manager (CLI) allows you to:
=== Enable the Package Manager
The package manager is disabled by default.
-To enable it, start all Solr nodes with the `-Denable.packages=true` parameter.
+To enable it, start all Solr nodes with the `-Dsolr.packages.enabled=true`
parameter.
[source,bash]
----
-$ bin/solr start -Denable.packages=true
+$ bin/solr start -Dsolr.packages.enabled=true
----
WARNING: There are security consequences to enabling the package manager.
diff --git
a/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
b/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
index afd8680858d..26b3845a47e 100644
---
a/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
+++
b/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc
@@ -188,7 +188,7 @@ curl http://localhost:8983/solr/admin/info/system
"-Dcom.sun.management.jmxremote.rmi.port=18983",
"-DzkClientTimeout=15000",
"-DzkHost=192.168.32.3:2181",
- "-Dsolr.log.dir=/var/solr/logs",
+ "-Dsolr.logs.dir=/var/solr/logs",
"-Djetty.port=8983",
"-DSTOP.PORT=7983",
"-DSTOP.KEY=solrrocks",
@@ -197,7 +197,7 @@ curl http://localhost:8983/solr/admin/info/system
"-Dsolr.solr.home=/var/solr/data",
"-Dsolr.data.home=",
"-Dsolr.install.dir=/opt/solr",
-
"-Dsolr.default.confdir=/opt/solr/server/solr/configsets/_default/conf",
+
"-Dsolr.configset.default.confdir=/opt/solr/server/solr/configsets/_default/conf",
"-Dlog4j.configurationFile=file:/var/solr/log4j2.xml",
"-Xss256k",
"-Dsolr.jetty.https.port=8983"],
@@ -297,7 +297,7 @@ curl http://localhost:8983/solr/gettingstarted/admin/system
"-Dcom.sun.management.jmxremote.authenticate=false",
"-Dcom.sun.management.jmxremote.port=18983",
"-Dcom.sun.management.jmxremote.rmi.port=18983",
- "-Dsolr.log.dir=/var/solr/logs",
+ "-Dsolr.logs.dir=/var/solr/logs",
"-Djetty.port=8983",
"-DSTOP.PORT=7983",
"-DSTOP.KEY=solrrocks",
@@ -306,7 +306,7 @@ curl http://localhost:8983/solr/gettingstarted/admin/system
"-Dsolr.solr.home=/var/solr/data",
"-Dsolr.data.home=",
"-Dsolr.install.dir=/opt/solr",
-
"-Dsolr.default.confdir=/opt/solr/server/solr/configsets/_default/conf",
+
"-Dsolr.configset.default.confdir=/opt/solr/server/solr/configsets/_default/conf",
"-Dlog4j.configurationFile=file:/var/solr/log4j2.xml",
"-Xss256k",
"-Dsolr.jetty.https.port=8983"],
diff --git
a/solr/solr-ref-guide/modules/deployment-guide/pages/metrics-reporting.adoc
b/solr/solr-ref-guide/modules/deployment-guide/pages/metrics-reporting.adoc
index 8295050aa9f..61f60827c3c 100644
--- a/solr/solr-ref-guide/modules/deployment-guide/pages/metrics-reporting.adoc
+++ b/solr/solr-ref-guide/modules/deployment-guide/pages/metrics-reporting.adoc
@@ -527,8 +527,8 @@ This can be used in conjunction with the `solr.xml` example
provided earlier in
...
<RollingFile
name="MetricsFile"
- fileName="${sys:solr.log.dir}/solr_metrics.log"
- filePattern="${sys:solr.log.dir}/solr_metrics.log.%i" >
+ fileName="${sys:solr.logs.dir}/solr_metrics.log"
+ filePattern="${sys:solr.logs.dir}/solr_metrics.log.%i" >
<PatternLayout>
<Pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p (%t) [%X{node_name} %X{collection}
%X{shard} %X{replica} %X{core} %X{trace_id}] %m%n
diff --git
a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java
b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java
index f4eee0e78da..8be068d50ca 100644
---
a/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java
+++
b/solr/solrj-zookeeper/src/java/org/apache/solr/common/cloud/ZkMaintenanceUtils.java
@@ -34,6 +34,7 @@ import java.util.function.Predicate;
import java.util.regex.Pattern;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.common.SolrException;
+import org.apache.solr.common.util.EnvUtils;
import org.apache.solr.common.util.StrUtils;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
@@ -581,8 +582,7 @@ public class ZkMaintenanceUtils {
return ret;
}
- public static final String FORBIDDEN_FILE_TYPES_PROP =
"solrConfigSetForbiddenFileTypes";
- public static final String FORBIDDEN_FILE_TYPES_ENV =
"SOLR_CONFIG_SET_FORBIDDEN_FILE_TYPES";
+ public static final String FORBIDDEN_FILE_TYPES_PROP =
"solr.configset.forbidden.file.types";
public static final Set<String> DEFAULT_FORBIDDEN_FILE_TYPES =
Set.of("class", "java", "jar", "tgz", "zip", "tar", "gz");
private static volatile Set<String> USE_FORBIDDEN_FILE_TYPES = null;
@@ -592,9 +592,7 @@ public class ZkMaintenanceUtils {
if (USE_FORBIDDEN_FILE_TYPES == null) {
synchronized (DEFAULT_FORBIDDEN_FILE_TYPES) {
if (USE_FORBIDDEN_FILE_TYPES == null) {
- String userForbiddenFileTypes =
- System.getProperty(
- FORBIDDEN_FILE_TYPES_PROP,
System.getenv(FORBIDDEN_FILE_TYPES_ENV));
+ String userForbiddenFileTypes =
EnvUtils.getProperty(FORBIDDEN_FILE_TYPES_PROP);
if (StrUtils.isNullOrEmpty(userForbiddenFileTypes)) {
USE_FORBIDDEN_FILE_TYPES = DEFAULT_FORBIDDEN_FILE_TYPES;
} else {
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/EnvUtils.java
b/solr/solrj/src/java/org/apache/solr/common/util/EnvUtils.java
index 6adac222ab7..22b5a2ec8ea 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/EnvUtils.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/EnvUtils.java
@@ -20,6 +20,7 @@ package org.apache.solr.common.util;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.lang.invoke.MethodHandles;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.List;
@@ -32,6 +33,8 @@ import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
import org.apache.solr.common.SolrException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Provides convenient access to System Properties for Solr. It also converts
'SOLR_FOO' env vars to
@@ -39,21 +42,42 @@ import org.apache.solr.common.SolrException;
* use this in lieu of JDK equivalents.
*/
public class EnvUtils {
+ private static final Logger log =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
/** Maps ENV keys to sys prop keys for special/custom mappings */
private static final Map<String, String> CUSTOM_MAPPINGS = new HashMap<>();
+ /** Maps deprecated sys prop keys to current sys prop keys with
special/custom mappings */
+ private static final Map<String, String> DEPRECATED_MAPPINGS = new
HashMap<>();
+
private static final Map<String, String> camelCaseToDotsMap = new
ConcurrentHashMap<>();
static {
try {
Properties props = new Properties();
- try (InputStream stream =
-
EnvUtils.class.getClassLoader().getResourceAsStream("EnvToSyspropMappings.properties"))
{
- props.load(new InputStreamReader(Objects.requireNonNull(stream),
StandardCharsets.UTF_8));
+ Properties deprecatedProps = new Properties();
+ try (InputStream environmentToSystemPropertyMappings =
+ EnvUtils.class
+ .getClassLoader()
+ .getResourceAsStream("EnvToSyspropMappings.properties");
+ InputStream deprecatedSystemPropertyMappings =
+ EnvUtils.class
+ .getClassLoader()
+
.getResourceAsStream("DeprecatedSystemPropertyMappings.properties")) {
+ props.load(
+ new InputStreamReader(
+ Objects.requireNonNull(environmentToSystemPropertyMappings),
+ StandardCharsets.UTF_8));
+ deprecatedProps.load(
+ new InputStreamReader(
+ Objects.requireNonNull(deprecatedSystemPropertyMappings),
StandardCharsets.UTF_8));
for (String key : props.stringPropertyNames()) {
CUSTOM_MAPPINGS.put(key, props.getProperty(key));
}
- init(false, System.getenv());
+ for (String key : deprecatedProps.stringPropertyNames()) {
+ DEPRECATED_MAPPINGS.put(key, deprecatedProps.getProperty(key));
+ }
+ init(false, System.getenv(), System.getProperties());
}
} catch (IOException e) {
throw new SolrException(
@@ -179,7 +203,8 @@ public class EnvUtils {
/**
* Re-reads environment variables and updates the internal map. Mainly for
internal and test use.
*/
- static synchronized void init(boolean overwrite, Map<String, String> env) {
+ static synchronized void init(
+ boolean overwrite, Map<String, String> env, Properties sysProperties) {
// Convert eligible environment variables to system properties
for (String key : env.keySet()) {
if (key.startsWith("SOLR_") || CUSTOM_MAPPINGS.containsKey(key)) {
@@ -190,6 +215,28 @@ public class EnvUtils {
}
}
}
+
+ // Convert deprecated keys to non deprecated versions
+ for (String key : sysProperties.stringPropertyNames()) {
+ if (DEPRECATED_MAPPINGS.containsKey(key)) {
+ String deprecatedKey = key;
+ key = DEPRECATED_MAPPINGS.get(deprecatedKey);
+ log.warn(
+ "You are passing in deprecated system property {} and should
upgrade to using {} instead. The deprecated property support will be removed
in future version of Solr.",
+ deprecatedKey,
+ key);
+
+ if (key.endsWith(".enabled") && deprecatedKey.endsWith(".disabled")) {
+ log.warn(
+ "Converting from legacy system property {} to modern .enabled
equivalent {} by flipping the boolean property value.",
+ deprecatedKey,
+ key);
+ setProperty(key, String.valueOf(!Boolean.getBoolean(deprecatedKey)));
+ } else {
+ setProperty(key, sysProperties.getProperty(deprecatedKey));
+ }
+ }
+ }
}
protected static String envNameToSyspropName(String envName) {
diff --git
a/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
b/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
new file mode 100644
index 00000000000..88c0210edcc
--- /dev/null
+++ b/solr/solrj/src/resources/DeprecatedSystemPropertyMappings.properties
@@ -0,0 +1,21 @@
+# Mapping from legacy system property names to current system property
+# This file only contains non-standard mappings that do not follow the
standard naming conversion convention
+# You do not need a entry for a solrMyProperty to solr.my.property conversion
+# We have changed some properties from ending in .disabled to ending as
.enabled.
+# In that case we programatically flip the value.
+
+# To be removed in Solr 12:
+
+# To be removed in Solr 11:
+solrConfigSetForbiddenFileTypes=solr.configset.forbidden.file.types
+enable.packages=solr.packages.enabled
+solr.default.confdir=solr.configset.default.confdir
+solr.admin.ui.disabled=solr.ui.enabled
+solr.admin.ui.experimental.disabled=solr.ui.experimental.enabled
+solr.log.dir=solr.logs.dir
+solr.default.confdir=solr.configset.default.confdir
+solr.wait.for.zk=solr.cloud.wait.for.zk.seconds
+solr.enable.remote.streaming=solr.requests.streaming.remote.enabled
+solr.enable.stream.body=solr.requests.streaming.body.enabled
+solr.delete.unknown.cores=solr.cloud.startup.delete.unknown.cores.enabled
+solr.config.set.forbidden.file.types=solr.configset.forbidden.file.types
diff --git a/solr/solrj/src/resources/EnvToSyspropMappings.properties
b/solr/solrj/src/resources/EnvToSyspropMappings.properties
index dcfa553961a..d20b594142a 100644
--- a/solr/solrj/src/resources/EnvToSyspropMappings.properties
+++ b/solr/solrj/src/resources/EnvToSyspropMappings.properties
@@ -5,29 +5,21 @@
# This way, env SOLR_FOO_BAR will also match property 'solr.foo.bar' without a
mapping in this file
# TODO: Deprecate non-standard sysprops and standardize on solr.foo.bar in
Solr 10
AWS_PROFILE=aws.profile
-DEFAULT_CONFDIR=solr.default.confdir
-SOLR_ADMIN_UI_DISABLED=disableAdminUI
SOLR_ALWAYS_ON_TRACE_ID=solr.alwaysOnTraceId
SOLR_AUTH_JWT_ALLOW_OUTBOUND_HTTP=solr.auth.jwt.allowOutboundHttp
-SOLR_CONFIG_SET_FORBIDDEN_FILE_TYPES=solrConfigSetForbiddenFileTypes
-SOLR_DELETE_UNKNOWN_CORES=solr.deleteUnknownCores
SOLR_DISABLE_REQUEST_ID=solr.disableRequestId
-SOLR_ENABLE_PACKAGES=enable.packages
-SOLR_ENABLE_REMOTE_STREAMING=solr.enableRemoteStreaming
-SOLR_ENABLE_STREAM_BODY=solr.enableStreamBody
SOLR_HIDDEN_SYS_PROPS=solr.hiddenSysProps
SOLR_HOME=solr.solr.home
SOLR_HOST=host
SOLR_HTTP_DISABLE_COOKIES=solr.http.disableCookies
+# Couldn't we just use solr.ip.allowlist everywhere instead of
solr.jetty.inetaccess.includes?
SOLR_IP_ALLOWLIST=solr.jetty.inetaccess.includes
SOLR_IP_DENYLIST=solr.jetty.inetaccess.excludes
-SOLR_LOGS_DIR=solr.log.dir
SOLR_OTEL_DEFAULT_CONFIGURATOR=solr.otelDefaultConfigurator
SOLR_PORT=jetty.port
SOLR_TIMEZONE=user.timezone
SOLR_TIP=solr.install.dir
SOLR_TIP_SYM=solr.install.symDir
-SOLR_WAIT_FOR_ZK=waitForZk
ZK_CLIENT_TIMEOUT=zkClientTimeout
ZK_CREATE_CHROOT=createZkChroot
ZK_CREDENTIALS_INJECTOR=zkCredentialsInjector
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
b/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
index d2cd63795f9..1c549e8571c 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/EnvUtilsTest.java
@@ -19,6 +19,7 @@ package org.apache.solr.common.util;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import org.apache.solr.SolrTestCase;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -41,7 +42,7 @@ public class EnvUtilsTest extends SolrTestCase {
@BeforeClass
public static void beforeClass() throws Exception {
// Make a map of some common Solr environment variables for testing, and
initialize EnvUtils
- EnvUtils.init(true, ENV);
+ EnvUtils.init(true, ENV, System.getProperties());
}
@Test
@@ -80,7 +81,7 @@ public class EnvUtilsTest extends SolrTestCase {
assertEquals(ENV.get("SOLR_HOME"), EnvUtils.getProperty("solr.solr.home"));
assertEquals(ENV.get("SOLR_PORT"), EnvUtils.getProperty("jetty.port"));
assertEquals(ENV.get("SOLR_HOST"), EnvUtils.getProperty("host"));
- assertEquals(ENV.get("SOLR_LOGS_DIR"),
EnvUtils.getProperty("solr.log.dir"));
+ assertEquals(ENV.get("SOLR_LOGS_DIR"),
EnvUtils.getProperty("solr.logs.dir"));
}
@Test
@@ -93,9 +94,30 @@ public class EnvUtilsTest extends SolrTestCase {
public void testOverwrite() {
EnvUtils.setProperty("solr.overwrite", "original");
var env2 = Map.of("SOLR_OVERWRITE", "overwritten");
- EnvUtils.init(false, env2);
+ EnvUtils.init(false, env2, new Properties());
assertEquals("original", EnvUtils.getProperty("solr.overwrite"));
- EnvUtils.init(true, env2);
+ EnvUtils.init(true, env2, new Properties());
assertEquals("overwritten", EnvUtils.getProperty("solr.overwrite"));
}
+
+ @Test
+ public void testDeprecated() {
+ var env = Map.of("SOLR_OVERWRITE", "overwritten");
+ Properties defaultProps = new Properties();
+ defaultProps.setProperty("solrConfigSetForbiddenFileTypes",
"xml,json,jar");
+
+ EnvUtils.init(false, env, defaultProps);
+ assertEquals("xml,json,jar",
EnvUtils.getProperty("solr.configset.forbidden.file.types"));
+ }
+
+ @Test
+ public void testFlippingDisabledToEnabledPropertyName() {
+
+ var env = Map.of("SOLR_ADMIN_UI_DISABLED", "true");
+ Properties defaultProps = new Properties();
+ defaultProps.setProperty("solr.admin.ui.disabled", "true");
+
+ EnvUtils.init(false, env, defaultProps);
+ assertEquals(false, EnvUtils.getPropertyAsBool("solr.ui.enabled"));
+ }
}
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
index f586044f651..4493be05eb0 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
@@ -113,22 +113,22 @@ public class SolrTestCase extends LuceneTestCase {
});
/**
- * Sets the <code>solr.default.confdir</code> system property to the value
of {@link
+ * Sets the <code>solr.configset.default.confdir</code> system property to
the value of {@link
* ExternalPaths#DEFAULT_CONFIGSET} if and only if the system property is
not already set, and the
* <code>DEFAULT_CONFIGSET</code> exists and is a readable directory.
*
* <p>Logs INFO/WARNing messages as appropriate based on these 2 conditions.
*
- * @see SolrDispatchFilter#SOLR_DEFAULT_CONFDIR_ATTRIBUTE
+ * @see SolrDispatchFilter#SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE
*/
@BeforeClass
public static void beforeSolrTestCase() {
final String existingValue =
-
EnvUtils.getProperty(SolrDispatchFilter.SOLR_DEFAULT_CONFDIR_ATTRIBUTE);
+
EnvUtils.getProperty(SolrDispatchFilter.SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE);
if (null != existingValue) {
log.info(
"Test env includes configset dir system property '{}'='{}'",
- SolrDispatchFilter.SOLR_DEFAULT_CONFDIR_ATTRIBUTE,
+ SolrDispatchFilter.SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE,
existingValue);
return;
}
@@ -136,18 +136,18 @@ public class SolrTestCase extends LuceneTestCase {
if (Files.isReadable(extPath /* implies exists() */) &&
Files.isDirectory(extPath)) {
log.info(
"Setting '{}' system property to test-framework derived value of
'{}'",
- SolrDispatchFilter.SOLR_DEFAULT_CONFDIR_ATTRIBUTE,
+ SolrDispatchFilter.SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE,
ExternalPaths.DEFAULT_CONFIGSET);
assert null == existingValue;
System.setProperty(
- SolrDispatchFilter.SOLR_DEFAULT_CONFDIR_ATTRIBUTE,
+ SolrDispatchFilter.SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE,
ExternalPaths.DEFAULT_CONFIGSET.toString());
} else {
log.warn(
"System property '{}' is not already set, but test-framework derived
value ('{}') either "
+ "does not exist or is not a readable directory, you may need
to set the property yourself "
+ "for tests to run properly",
- SolrDispatchFilter.SOLR_DEFAULT_CONFDIR_ATTRIBUTE,
+ SolrDispatchFilter.SOLR_CONFIGSET_DEFAULT_CONFDIR_ATTRIBUTE,
ExternalPaths.DEFAULT_CONFIGSET);
}