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 @@
-
+
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 @@
-
+
diff --git a/gradle/testing/randomization/policies/solr-tests.policy b/gradle/testing/randomization/policies/solr-tests.policy
index c869aa9af80..9fd6d39a630 100644
--- a/gradle/testing/randomization/policies/solr-tests.policy
+++ b/gradle/testing/randomization/policies/solr-tests.policy
@@ -227,8 +227,8 @@ grant {
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.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/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 @@
+ 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">
%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 @@
+ 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">
%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 @@
+ 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">
%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 f45ffaf8aa1..4ecfcad70bd 100644
--- a/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
+++ b/solr/benchmark/src/java/org/apache/solr/bench/BaseBenchState.java
@@ -104,7 +104,7 @@ public void doSetup(BenchmarkParams benchmarkParams) {
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/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 @@
+ 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">
%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 @@
+ 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">
%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 @@
+ fileName="${sys:solr.logs.dir:-build/work/solr-logs}/${sys:solr.log.name:-solr}_random_counts.log">
%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 3466cdc6b23..97bd3202322 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
@@ -856,14 +856,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
@@ -1018,7 +1010,8 @@ elif [[ $SOLR_HOME != /* ]]; then
fi
# Set the default configset dir to be bootstrapped as _default
-: "${DEFAULT_CONFDIR:="$SOLR_SERVER_DIR/solr/configsets/_default/conf"}"
+: "${SOLR_DEFAULT_CONFDIR:="$SOLR_SERVER_DIR/solr/configsets/_default/conf"}"
+export SOLR_DEFAULT_CONFDIR
# This is quite hacky, but examples rely on a different log4j2.xml
# so that we can write logs for examples to $SOLR_HOME/../logs
@@ -1156,14 +1149,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)
@@ -1213,17 +1198,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
@@ -1307,7 +1285,7 @@ function start_solr() {
SCRIPT_SOLR_OPTS+=("--add-modules" "jdk.incubator.vector")
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" \
# '-OmitStackTraceInFastThrow' ensures stack traces in errors,
# users who don't care about useful error msgs can override in SOLR_OPTS with +OmitStackTraceInFastThrow
@@ -1316,7 +1294,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 bb2b3917a0e..a17383aebe8 100755
--- a/solr/bin/solr.cmd
+++ b/solr/bin/solr.cmd
@@ -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
@@ -1094,7 +1071,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!"
@@ -1111,7 +1087,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"
@@ -1141,7 +1117,7 @@ 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 "%SOLR_DEFAULT_CONFDIR%"=="" set "SOLR_DEFAULT_CONFDIR=%SOLR_SERVER_DIR%\solr\configsets\_default\conf"
IF "%FG%"=="1" (
REM run solr in the foreground
@@ -1149,7 +1125,7 @@ IF "%FG%"=="1" (
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 (
@@ -1157,7 +1133,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
@@ -1166,7 +1142,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/core/src/java/org/apache/solr/cli/PackageTool.java b/solr/core/src/java/org/apache/solr/cli/PackageTool.java
index e60507bebe7..ee87393ea77 100644
--- a/solr/core/src/java/org/apache/solr/cli/PackageTool.java
+++ b/solr/core/src/java/org/apache/solr/cli/PackageTool.java
@@ -334,7 +334,7 @@ public String getHeader() {
"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 '-Dsolr.enable.packages=true' parameter.");
format(sb, "\n");
format(sb, "List of options:");
return sb.toString();
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 bf0d56495d5..6ab37ab3606 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -1766,7 +1766,7 @@ private SolrCore createFromDescriptor(
// 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.delete.unknown.cores", "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..eeaa009a3fb 100644
--- a/solr/core/src/java/org/apache/solr/core/NodeConfig.java
+++ b/solr/core/src/java/org/apache/solr/core/NodeConfig.java
@@ -248,7 +248,7 @@ public static NodeConfig loadNodeConfig(Path solrHome, Properties nodeProperties
// ZkFailoverTest test case...
String zkHost = nodeProperties.getProperty(SolrXmlConfig.ZK_HOST);
if (StrUtils.isNotNullOrEmpty(zkHost)) {
- int startUpZkTimeOut = 1000 * Integer.getInteger("waitForZk", 0);
+ int startUpZkTimeOut = 1000 * Integer.getInteger("solr.wait.for.zk", 0);
if (startUpZkTimeOut == 0) {
startUpZkTimeOut = SolrZkClientTimeout.DEFAULT_ZK_CLIENT_TIMEOUT;
}
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..8d935a9b262 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 @@
/** 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.enable.packages", 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.enable.packages=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 a35dfc4d73f..c8e8e5c9b62 100644
--- a/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
+++ b/solr/core/src/java/org/apache/solr/servlet/CoreContainerProvider.java
@@ -307,7 +307,7 @@ private void logWelcomeBanner() {
"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 436906d3a69..0f1e93ea467 100644
--- a/solr/core/src/java/org/apache/solr/servlet/LoadAdminUiServlet.java
+++ b/solr/core/src/java/org/apache/solr/servlet/LoadAdminUiServlet.java
@@ -39,9 +39,9 @@
*/
public final class LoadAdminUiServlet extends HttpServlet {
- // check system properties for whether or not admin UI is disabled, default is false
+ // check system properties for whether the admin UI is disabled, default is false
private static final boolean disabled =
- Boolean.parseBoolean(System.getProperty("disableAdminUI", "false"));
+ Boolean.parseBoolean(System.getProperty("solr.admin.ui.disabled", "false"));
// 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";
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 8902acf51a3..caf67442942 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
@@ -114,8 +114,8 @@ public SolrRequestParsers(SolrConfig globalConfig) {
formUploadLimitKB = globalConfig.getFormUploadLimitKB();
// security risks; disabled by default
- enableRemoteStreams = Boolean.getBoolean("solr.enableRemoteStreaming");
- enableStreamBody = Boolean.getBoolean("solr.enableStreamBody");
+ enableRemoteStreams = Boolean.getBoolean("solr.enable.remote.streaming");
+ enableStreamBody = Boolean.getBoolean("solr.enable.stream.body");
// Let this filter take care of /select?xxx format
handleSelect = globalConfig.isHandleSelect();
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 e7a59053a81..f87dd7a5f9f 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.enable.packages", "true");
configureCluster(2)
.addConfig(
@@ -83,7 +83,7 @@ public static void teardown() throws Exception {
repositoryServer.stop();
}
} finally {
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.enable.packages");
}
}
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 90219220371..47d300c83b6 100644
--- a/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
+++ b/solr/core/src/test/org/apache/solr/cli/TestSolrCLIRunExample.java
@@ -122,7 +122,7 @@ public int execute(org.apache.commons.exec.CommandLine cmd) throws IOException {
try {
if (solrCloudCluster == null) {
Path logDir = createTempDir("solr_logs");
- System.setProperty("solr.log.dir", logDir.toString());
+ System.setProperty("solr.logs.dir", logDir.toString());
System.setProperty("host", "localhost");
System.setProperty("jetty.port", String.valueOf(port));
solrCloudCluster = new MiniSolrCloudCluster(1, createTempDir(), solrxml, jettyConfig);
@@ -223,7 +223,7 @@ protected int startStandaloneSolr(String[] args) {
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..f868874b86e 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 static void setupCluster() throws Exception {
@AfterClass
public static void reset() {
- System.setProperty("solr.deleteUnknownCores", "false");
+ System.setProperty("solr.delete.unknown.cores", "false");
}
@Test
public void deleteInactiveReplicaTest() throws Exception {
- System.setProperty("solr.deleteUnknownCores", "true");
+ System.setProperty("solr.delete.unknown.cores", "true");
String collectionName = "delDeadColl";
int replicationFactor = 2;
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..620a2172301 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 static void setupCluster() throws Exception {
@AfterClass
public static void resetWaitForZk() {
- System.setProperty("waitForZk", "30");
+ System.setProperty("solr.wait.for.zk", "30");
}
public void testRestartZkWhenClusterDown() throws Exception {
@@ -58,12 +58,12 @@ public void testRestartZkWhenClusterDown() throws Exception {
zkTestServer = cluster.getZkServer();
// This attempt will fail since it will time out after 1 second
- System.setProperty("waitForZk", "1");
+ System.setProperty("solr.wait.for.zk", "1");
restartSolrAndZk();
waitForLiveNodes(0);
// This attempt will succeed since there will be enough time to connect
- System.setProperty("waitForZk", "20");
+ System.setProperty("solr.wait.for.zk", "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 e46266f2f80..3e77181c16c 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
@@ -66,7 +66,7 @@ public static void setupCluster() throws Exception {
@Override
@Before
public void setUp() throws Exception {
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.enable.packages", "true");
super.setUp();
cluster.deleteAllCollections();
eventsListener = new AllEventsListener();
@@ -87,7 +87,7 @@ public void setUp() throws Exception {
@After
public void teardown() throws Exception {
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.enable.packages");
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 1a32a24330f..88c53efbabc 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.enable.packages", "true");
}
@After
public void teardown() {
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.enable.packages");
}
@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 3b657e9cf72..8dff5591964 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestContainerPlugin.java
@@ -111,7 +111,7 @@ public boolean waitFor(int num) throws InterruptedException {
@Before
public void setup() throws Exception {
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.enable.packages", "true");
phaser = new Phaser();
forceV2 = random().nextBoolean();
@@ -142,7 +142,7 @@ public void setup() throws Exception {
@After
public void teardown() throws Exception {
shutdownCluster();
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.enable.packages");
}
@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..7a6ff6b613d 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.enable.packages", "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 void tearDown() throws Exception {
cluster.shutdown();
cluster = null;
}
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.enable.packages");
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 78de0ee5199..cc0f1227388 100644
--- a/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
+++ b/solr/core/src/test/org/apache/solr/pkg/TestPackages.java
@@ -91,7 +91,7 @@ public class TestPackages extends SolrCloudTestCase {
@Override
public void setUp() throws Exception {
super.setUp();
- System.setProperty("enable.packages", "true");
+ System.setProperty("solr.enable.packages", "true");
configureCluster(4)
.withJettyConfig(jetty -> jetty.enableV2(true))
.addConfig("conf", configset("conf3"))
@@ -105,7 +105,7 @@ public void tearDown() throws Exception {
if (cluster != null) {
cluster.shutdown();
}
- System.clearProperty("enable.packages");
+ System.clearProperty("solr.enable.packages");
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 c1350ae970b..f9eb51c01f0 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.enable.remote.streaming", "true");
+ System.setProperty("solr.enable.stream.body", "true");
// this one has handleSelect=true which a test here needs
Path solrHomeDirectory = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
setupJettyTestHome(solrHomeDirectory, "collection1");
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 4fb530d2594..17cbac0bf30 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 void after() throws Exception {
// SOLR-3161
@Test
public void testQtUpdateFails() throws Exception {
- System.setProperty("solr.enableStreamBody", "true");
+ System.setProperty("solr.enable.stream.body", "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..bcafdd04dab 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.enable.stream.body", "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..9dc47518ca6 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.enable.stream.body", "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..c4558c82b10 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,7 @@ public class CacheHeaderTest extends CacheHeaderTestBase {
@BeforeClass
public static void beforeTest() throws Exception {
- System.setProperty("solr.enableRemoteStreaming", "true"); // needed for testCacheVetoHandler
+ System.setProperty("solr.enable.remote.streaming", "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 8166578f8e2..9d001961e7b 100644
--- a/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/DirectSolrConnectionTest.java
@@ -26,7 +26,7 @@ public class DirectSolrConnectionTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
- System.setProperty("solr.enableStreamBody", "true");
+ System.setProperty("solr.enable.stream.body", "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 f2634411e90..a90311d0ac7 100644
--- a/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
@@ -64,8 +64,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.enable.remote.streaming", "true");
+ System.setProperty("solr.enable.stream.body", "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 @@
+ fileName="${sys:solr.logs.dir}/solr.log"
+ filePattern="${sys:solr.logs.dir}/solr.log.%i" >
%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 @@
+ fileName="${sys:solr.logs.dir}/solr.json.log"
+ filePattern="${sys:solr.logs.dir}/solr.json.log.%i" >
@@ -57,8 +57,8 @@
+ fileName="${sys:solr.logs.dir}/solr_slow_requests.log"
+ filePattern="${sys:solr.logs.dir}/solr_slow_requests.log.%i" >
%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..8fc7ba079cc 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.enable.packages=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..751dd2b49d4 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.enable.packages=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.enable.packages=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.enable.packages=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 a4b80efe01d..6a894ca6abb 100644
--- a/solr/packaging/test/test_start_solr.bats
+++ b/solr/packaging/test/test_start_solr.bats
@@ -80,3 +80,8 @@ teardown() {
run cat ${SOLR_LOGS_DIR}/solr-${SOLR_PORT}-console.log
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.enable.packages instead.'
+}
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 @@
- /yyyy_mm_dd.request.log
+ /yyyy_mm_dd.request.log
yyyy_MM_dd
true
diff --git a/solr/server/etc/security.policy b/solr/server/etc/security.policy
index aec689deae6..2fe0e4e14a7 100644
--- a/solr/server/etc/security.policy
+++ b/solr/server/etc/security.policy
@@ -197,8 +197,8 @@ grant {
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.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 @@
+ fileName="${sys:solr.logs.dir}/solr.log"
+ filePattern="${sys:solr.logs.dir}/solr.log.%i" >
%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 @@
+ fileName="${sys:solr.logs.dir}/solr_slow_requests.log"
+ filePattern="${sys:solr.logs.dir}/solr_slow_requests.log.%i" >
%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..732f730a842 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.enable.packages=true` to use this feature.
*Example*
[source,bash]
----
-bin/solr start -Denable.packages=true
+bin/solr start -Dsolr.enable.packages=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..6babb1b383c 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.enable.packages=true` parameter.
[source,bash]
----
-$ bin/solr start -Denable.packages=true
+$ bin/solr start -Dsolr.enable.packages=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..8dcb0ea527d 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",
@@ -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",
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
...
+ fileName="${sys:solr.logs.dir}/solr_metrics.log"
+ filePattern="${sys:solr.logs.dir}/solr_metrics.log.%i" >
%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 6e18e0d3e54..69e51967dae 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
@@ -33,6 +33,7 @@
import java.util.function.Predicate;
import java.util.regex.Pattern;
import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.common.util.EnvUtils;
import org.apache.solr.common.util.StrUtils;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
@@ -580,8 +581,7 @@ public static String createZkNodeName(String zkRoot, Path root, Path file) {
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 DEFAULT_FORBIDDEN_FILE_TYPES =
Set.of("class", "java", "jar", "tgz", "zip", "tar", "gz");
private static volatile Set USE_FORBIDDEN_FILE_TYPES = null;
@@ -591,9 +591,7 @@ public static boolean isFileForbiddenInConfigSets(String filePath) {
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..91b6889cc3b 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 @@
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.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,38 @@
* 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 CUSTOM_MAPPINGS = new HashMap<>();
+ /** Maps deprecated sys prop keys to current sys prop keys with special/custom mappings */
+ private static final Map DEPRECATED_MAPPINGS = new HashMap<>();
+
private static final Map camelCaseToDotsMap = new ConcurrentHashMap<>();
static {
try {
Properties props = new Properties();
+ Properties deprecatedProps = new Properties();
try (InputStream stream =
- EnvUtils.class.getClassLoader().getResourceAsStream("EnvToSyspropMappings.properties")) {
+ EnvUtils.class
+ .getClassLoader()
+ .getResourceAsStream("EnvToSyspropMappings.properties");
+ InputStream stream2 =
+ EnvUtils.class
+ .getClassLoader()
+ .getResourceAsStream("EnvToSyspropDeprecatedMappings.properties")) {
props.load(new InputStreamReader(Objects.requireNonNull(stream), StandardCharsets.UTF_8));
+ deprecatedProps.load(
+ new InputStreamReader(Objects.requireNonNull(stream2), 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 +199,8 @@ public static void setProperty(String key, String value) {
/**
* Re-reads environment variables and updates the internal map. Mainly for internal and test use.
*/
- static synchronized void init(boolean overwrite, Map env) {
+ static synchronized void init(
+ boolean overwrite, Map 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 +211,19 @@ static synchronized void init(boolean overwrite, Map env) {
}
}
}
+
+ // 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);
+ setProperty(key, sysProperties.getProperty(deprecatedKey));
+ }
+ }
}
protected static String envNameToSyspropName(String envName) {
diff --git a/solr/solrj/src/resources/EnvToSyspropDeprecatedMappings.properties b/solr/solrj/src/resources/EnvToSyspropDeprecatedMappings.properties
new file mode 100644
index 00000000000..d3daf7fb2ce
--- /dev/null
+++ b/solr/solrj/src/resources/EnvToSyspropDeprecatedMappings.properties
@@ -0,0 +1,5 @@
+# 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
+solrConfigSetForbiddenFileTypes=solr.configset.forbidden.file.types
+enable.packages=solr.enable.packages
diff --git a/solr/solrj/src/resources/EnvToSyspropMappings.properties b/solr/solrj/src/resources/EnvToSyspropMappings.properties
index dcfa553961a..fdd05c05a51 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.intetaccess.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..32ea7e281ac 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 @@
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 void testEnvsWithCustomKeyNameMappings() {
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,19 @@ public void testNotMapped() {
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"));
+ }
}