From cb0e7388f05fc4b5f28953f7b5e1287208eb6924 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 12:55:56 -0500 Subject: [PATCH 01/10] First pass of cleaning up properties --- .../conf/solrconfig-analytics-query.xml | 4 -- .../conf/solrconfig-collapseqparser.xml | 4 -- .../collection1/conf/solrconfig-elevate.xml | 4 -- .../collection1/conf/solrconfig-minhash.xml | 4 +- .../conf/solrconfig-plugcollector.xml | 4 +- .../collection1/conf/solrconfig-test-misc.xml | 6 -- .../conf/solrconfig-test-properties.xml | 37 +++++++++++ .../solr/collection1/conf/solrconfig.xml | 4 +- .../test/org/apache/solr/core/TestConfig.java | 26 +------- .../core/TestConfigPropertySubstitution.java | 66 +++++++++++++++++++ .../org/apache/solr/update/RootFieldTest.java | 3 +- ...stractAtomicUpdatesMultivalueTestBase.java | 3 +- .../solr/collection1/conf/solrconfig.xml | 3 - .../solr/BaseDistributedSearchTestCase.java | 4 +- .../java/org/apache/solr/SolrTestCaseJ4.java | 4 +- .../cloud/AbstractFullDistribZkTestBase.java | 5 +- .../org/apache/solr/util/TestHarness.java | 5 +- .../solr/collection1/conf/solrconfig.xml | 4 -- 18 files changed, 118 insertions(+), 72 deletions(-) create mode 100644 solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml create mode 100644 solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-analytics-query.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-analytics-query.xml index 455f1987cf2..1012b14a0c8 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-analytics-query.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-analytics-query.xml @@ -217,10 +217,6 @@ - - prefix-${solr.test.sys.prop2}-suffix - diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-collapseqparser.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-collapseqparser.xml index b655c9355da..b346eb08db0 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-collapseqparser.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-collapseqparser.xml @@ -220,10 +220,6 @@ - - prefix-${solr.test.sys.prop2}-suffix - diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-elevate.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-elevate.xml index 63bb8f84ffa..7e71e3c76ae 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-elevate.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-elevate.xml @@ -120,10 +120,6 @@ - - prefix-${solr.test.sys.prop2}-suffix - diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml index abd50a7cbf0..4e0a2c3029d 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml @@ -434,9 +434,7 @@ - - prefix-${solr.test.sys.prop2}-suffix + diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml index c7e160d8980..1c3e188ff29 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml @@ -430,9 +430,7 @@ - - prefix-${solr.test.sys.prop2}-suffix + diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-misc.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-misc.xml index cbfe9752574..f26744ad177 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-misc.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-misc.xml @@ -28,14 +28,8 @@ - - prefix-${solr.test.sys.prop2}-suffix - - - diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml new file mode 100644 index 00000000000..e32dcdfbe5e --- /dev/null +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml @@ -0,0 +1,37 @@ + + + + + + + ${tests.luceneMatchVersion:LATEST} + ${solr.data.dir:} + + + + + + prefix-${solr.test.sys.prop2}-suffix + + + \ No newline at end of file diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml index 30764a94377..da8853607d0 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml @@ -467,9 +467,7 @@ - - prefix-${solr.test.sys.prop2}-suffix + diff --git a/solr/core/src/test/org/apache/solr/core/TestConfig.java b/solr/core/src/test/org/apache/solr/core/TestConfig.java index 745fa21c4c5..4e49b7e0d11 100644 --- a/solr/core/src/test/org/apache/solr/core/TestConfig.java +++ b/solr/core/src/test/org/apache/solr/core/TestConfig.java @@ -20,13 +20,13 @@ import java.io.InputStream; import java.util.Collections; import java.util.LinkedHashMap; -import java.util.List; + import org.apache.lucene.index.ConcurrentMergeScheduler; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.TieredMergePolicy; import org.apache.lucene.util.InfoStream; import org.apache.solr.SolrTestCaseJ4; -import org.apache.solr.common.ConfigNode; + import org.apache.solr.schema.IndexSchema; import org.apache.solr.schema.IndexSchemaFactory; import org.apache.solr.search.CacheConfig; @@ -63,29 +63,7 @@ public void testDisableRequetsHandler() { assertNotNull(h.getCore().getRequestHandler("/enabled")); } - @Test - public void testJavaProperty() { - // property values defined in build.xml - - String s = solrConfig.get("propTest").txt(); - assertEquals("prefix-proptwo-suffix", s); - - s = solrConfig.get("propTest").attr("attr1", "default"); - assertEquals("propone-${literal}", s); - s = solrConfig.get("propTest").attr("attr2", "default"); - assertEquals("default-from-config", s); - - assertEquals( - "prefix-proptwo-suffix", - solrConfig.get("propTest", it -> "default-from-config".equals(it.attr("attr2"))).txt()); - - List nl = solrConfig.root.getAll("propTest"); - assertEquals(1, nl.size()); - assertEquals("prefix-proptwo-suffix", nl.get(0).txt()); - - assertEquals("prefix-proptwo-suffix", solrConfig.get("propTest").txt()); - } @Test public void testCacheEnablingDisabling() throws Exception { diff --git a/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java b/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java new file mode 100644 index 00000000000..fd1455d5d69 --- /dev/null +++ b/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.solr.core; + +import java.util.List; +import org.apache.solr.SolrTestCaseJ4; +import org.apache.solr.common.ConfigNode; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * Test class specifically for testing system property substitution in Solr configuration files. + * This class is isolated from other tests to minimize the global impact of setting + * test-specific system properties. + */ +public class TestConfigPropertySubstitution extends SolrTestCaseJ4 { + + @BeforeClass + public static void beforeClass() throws Exception { + // Set the test properties specifically for property substitution testing + System.setProperty("solr.test.sys.prop1", "propone"); + System.setProperty("solr.test.sys.prop2", "proptwo"); + + // Use a minimal configuration file that only contains the propTest element + initCore("solrconfig-test-properties.xml", "schema-reversed.xml"); + } + + @Test + public void testJavaPropertySubstitution() { + // Test that system property substitution works correctly in configuration files + // These property values are set in beforeClass() + + String s = solrConfig.get("propTest").txt(); + assertEquals("prefix-proptwo-suffix", s); + + s = solrConfig.get("propTest").attr("attr1", "default"); + assertEquals("propone-${literal}", s); + + s = solrConfig.get("propTest").attr("attr2", "default"); + assertEquals("default-from-config", s); + + assertEquals( + "prefix-proptwo-suffix", + solrConfig.get("propTest", it -> "default-from-config".equals(it.attr("attr2"))).txt()); + + List nl = solrConfig.root.getAll("propTest"); + assertEquals(1, nl.size()); + assertEquals("prefix-proptwo-suffix", nl.get(0).txt()); + + assertEquals("prefix-proptwo-suffix", solrConfig.get("propTest").txt()); + } +} \ No newline at end of file diff --git a/solr/core/src/test/org/apache/solr/update/RootFieldTest.java b/solr/core/src/test/org/apache/solr/update/RootFieldTest.java index c553e58322c..53b56fbaa0e 100644 --- a/solr/core/src/test/org/apache/solr/update/RootFieldTest.java +++ b/solr/core/src/test/org/apache/solr/update/RootFieldTest.java @@ -56,8 +56,7 @@ public static void beforeTest() throws Exception { // schema15.xml declares _root_ field, while schema-rest.xml does not. String schema = useRootSchema ? "schema15.xml" : "schema-rest.xml"; SolrTestCaseJ4.newRandomConfig(); - System.setProperty("solr.test.sys.prop1", "propone"); // TODO yuck; remove - System.setProperty("solr.test.sys.prop2", "proptwo"); // TODO yuck; remove + // System properties are no longer needed - propTest elements removed from configs solrClientTestRule .newCollection() diff --git a/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java b/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java index 75cb9b69327..d246cc942f3 100644 --- a/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java +++ b/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java @@ -49,8 +49,7 @@ protected static void initWithRequestWriter(RequestWriterSupplier requestWriterS System.setProperty("solr.index.updatelog.enabled", "true"); SolrTestCaseJ4.newRandomConfig(); - System.setProperty("solr.test.sys.prop1", "propone"); // TODO yuck; remove - System.setProperty("solr.test.sys.prop2", "proptwo"); // TODO yuck; remove + // System properties are no longer needed - propTest elements removed from configs solrClientTestRule.newCollection().withConfigSet("../collection1").create(); } diff --git a/solr/modules/extraction/src/test-files/extraction/solr/collection1/conf/solrconfig.xml b/solr/modules/extraction/src/test-files/extraction/solr/collection1/conf/solrconfig.xml index 159d5e16162..4ed11e82fe6 100644 --- a/solr/modules/extraction/src/test-files/extraction/solr/collection1/conf/solrconfig.xml +++ b/solr/modules/extraction/src/test-files/extraction/solr/collection1/conf/solrconfig.xml @@ -203,8 +203,5 @@ - - prefix-${solr.test.sys.prop2}-suffix diff --git a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java index 465c771ee2c..7f67ff40f78 100644 --- a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java @@ -257,8 +257,8 @@ public Path getSolrHome() { public void distribSetUp() throws Exception { distribSetUpCalled = true; SolrTestCaseJ4.resetExceptionIgnores(); // ignore anything with ignore_exception in it - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); + // Note: solr.test.sys.prop1 and solr.test.sys.prop2 are now set only in + // TestConfigPropertySubstitution for isolated property substitution testing testDir = createTempDir(); } diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java index b216fd980e6..4777cf1183a 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -706,8 +706,8 @@ public static void initCore() throws Exception { ignoreException("ignore_exception"); // other methods like starting a jetty instance need these too - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); + // Note: solr.test.sys.prop1 and solr.test.sys.prop2 are now set only in + // TestConfigPropertySubstitution for isolated property substitution testing String configFile = getSolrConfigFile(); if (configFile != null) { diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java index 67922db5a42..e43ceb8f89f 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java @@ -276,9 +276,8 @@ public void distribSetUp() throws Exception { if (schema == null) schema = "schema.xml"; zkServer.buildZooKeeper(getCloudSolrConfig(), schema); - // set some system properties for use by tests - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); + // Note: solr.test.sys.prop1 and solr.test.sys.prop2 are now set only in + // TestConfigPropertySubstitution for isolated property substitution testing // ignoreException(".*"); diff --git a/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java b/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java index b05da370d4d..929b6dac1a0 100644 --- a/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java +++ b/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java @@ -67,9 +67,8 @@ public class TestHarness extends BaseTestHarness { * ${solrHome}/${coreName}/conf/${confFile} */ public static SolrConfig createConfig(Path solrHome, String coreName, String confFile) { - // set some system properties for use by tests - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); + // Note: solr.test.sys.prop1 and solr.test.sys.prop2 are now set only in + // TestConfigPropertySubstitution for isolated property substitution testing try { return new SolrConfig(solrHome.resolve(coreName), confFile); } catch (Exception xany) { diff --git a/solr/test-framework/src/test-files/solr/collection1/conf/solrconfig.xml b/solr/test-framework/src/test-files/solr/collection1/conf/solrconfig.xml index 4338f0cf40a..a91253e1b0b 100644 --- a/solr/test-framework/src/test-files/solr/collection1/conf/solrconfig.xml +++ b/solr/test-framework/src/test-files/solr/collection1/conf/solrconfig.xml @@ -452,10 +452,6 @@ - - prefix-${solr.test.sys.prop2}-suffix - From 7b9e0059250df26928318517c053e68bc2f85954 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 13:00:15 -0500 Subject: [PATCH 02/10] whitespace cleanups --- .../src/test-files/solr/collection1/conf/solrconfig-minhash.xml | 2 -- .../solr/collection1/conf/solrconfig-plugcollector.xml | 2 -- solr/core/src/test-files/solr/collection1/conf/solrconfig.xml | 2 -- 3 files changed, 6 deletions(-) diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml index 4e0a2c3029d..8d6e8e842b8 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-minhash.xml @@ -434,8 +434,6 @@ - - diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml index 1c3e188ff29..f543311b856 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-plugcollector.xml @@ -430,8 +430,6 @@ - - diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml index da8853607d0..9efa5d4a29c 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig.xml @@ -467,8 +467,6 @@ - - From db50320dae4f62467ef1634f8b3a6726aa3c51df Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 13:02:26 -0500 Subject: [PATCH 03/10] Basic schema is fine! --- .../apache/solr/core/TestConfigPropertySubstitution.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java b/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java index fd1455d5d69..32fb6645792 100644 --- a/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java +++ b/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java @@ -34,9 +34,9 @@ public static void beforeClass() throws Exception { // Set the test properties specifically for property substitution testing System.setProperty("solr.test.sys.prop1", "propone"); System.setProperty("solr.test.sys.prop2", "proptwo"); - + // Use a minimal configuration file that only contains the propTest element - initCore("solrconfig-test-properties.xml", "schema-reversed.xml"); + initCore("solrconfig-test-properties.xml", "schema.xml"); } @Test @@ -63,4 +63,4 @@ public void testJavaPropertySubstitution() { assertEquals("prefix-proptwo-suffix", solrConfig.get("propTest").txt()); } -} \ No newline at end of file +} From aa710b6a3c977f8d0f7078cb652ce63db8fc4dc1 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 13:06:09 -0500 Subject: [PATCH 04/10] Remove extra comments --- solr/core/src/test/org/apache/solr/update/RootFieldTest.java | 1 - .../processor/AbstractAtomicUpdatesMultivalueTestBase.java | 1 - .../java/org/apache/solr/BaseDistributedSearchTestCase.java | 2 -- .../src/java/org/apache/solr/SolrTestCaseJ4.java | 2 -- .../org/apache/solr/cloud/AbstractFullDistribZkTestBase.java | 3 --- .../src/java/org/apache/solr/util/TestHarness.java | 2 -- 6 files changed, 11 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/update/RootFieldTest.java b/solr/core/src/test/org/apache/solr/update/RootFieldTest.java index 53b56fbaa0e..1c436829d24 100644 --- a/solr/core/src/test/org/apache/solr/update/RootFieldTest.java +++ b/solr/core/src/test/org/apache/solr/update/RootFieldTest.java @@ -56,7 +56,6 @@ public static void beforeTest() throws Exception { // schema15.xml declares _root_ field, while schema-rest.xml does not. String schema = useRootSchema ? "schema15.xml" : "schema-rest.xml"; SolrTestCaseJ4.newRandomConfig(); - // System properties are no longer needed - propTest elements removed from configs solrClientTestRule .newCollection() diff --git a/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java b/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java index d246cc942f3..a4bdac64b11 100644 --- a/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java +++ b/solr/core/src/test/org/apache/solr/update/processor/AbstractAtomicUpdatesMultivalueTestBase.java @@ -49,7 +49,6 @@ protected static void initWithRequestWriter(RequestWriterSupplier requestWriterS System.setProperty("solr.index.updatelog.enabled", "true"); SolrTestCaseJ4.newRandomConfig(); - // System properties are no longer needed - propTest elements removed from configs solrClientTestRule.newCollection().withConfigSet("../collection1").create(); } diff --git a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java index 7f67ff40f78..726c736fda7 100644 --- a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java @@ -257,8 +257,6 @@ public Path getSolrHome() { public void distribSetUp() throws Exception { distribSetUpCalled = true; SolrTestCaseJ4.resetExceptionIgnores(); // ignore anything with ignore_exception in it - // Note: solr.test.sys.prop1 and solr.test.sys.prop2 are now set only in - // TestConfigPropertySubstitution for isolated property substitution testing testDir = createTempDir(); } diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java index 4777cf1183a..410989c4cc0 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -706,8 +706,6 @@ public static void initCore() throws Exception { ignoreException("ignore_exception"); // other methods like starting a jetty instance need these too - // Note: solr.test.sys.prop1 and solr.test.sys.prop2 are now set only in - // TestConfigPropertySubstitution for isolated property substitution testing String configFile = getSolrConfigFile(); if (configFile != null) { diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java index e43ceb8f89f..3ef3c3ac833 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java @@ -276,9 +276,6 @@ public void distribSetUp() throws Exception { if (schema == null) schema = "schema.xml"; zkServer.buildZooKeeper(getCloudSolrConfig(), schema); - // Note: solr.test.sys.prop1 and solr.test.sys.prop2 are now set only in - // TestConfigPropertySubstitution for isolated property substitution testing - // ignoreException(".*"); cloudInit = false; diff --git a/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java b/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java index 929b6dac1a0..ae5c0a0b670 100644 --- a/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java +++ b/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java @@ -67,8 +67,6 @@ public class TestHarness extends BaseTestHarness { * ${solrHome}/${coreName}/conf/${confFile} */ public static SolrConfig createConfig(Path solrHome, String coreName, String confFile) { - // Note: solr.test.sys.prop1 and solr.test.sys.prop2 are now set only in - // TestConfigPropertySubstitution for isolated property substitution testing try { return new SolrConfig(solrHome.resolve(coreName), confFile); } catch (Exception xany) { From 2b0354937c6179149d2183341cb306a0dfd36524 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 13:14:17 -0500 Subject: [PATCH 05/10] More removeal of properties --- .../org/apache/solr/cloud/TestRequestForwarding.java | 5 ----- .../org/apache/solr/core/TestCorePropertiesReload.java | 2 -- .../org/apache/solr/handler/ReplicationTestHelper.java | 3 --- .../apache/solr/metrics/SolrMetricsIntegrationTest.java | 3 --- .../test/org/apache/solr/rest/SolrRestletTestBase.java | 3 --- .../src/test/org/apache/solr/schema/DateFieldTest.java | 3 --- .../org/apache/solr/schema/PrimitiveFieldTypeTest.java | 2 -- .../solr/search/join/ShardToShardJoinAbstract.java | 9 --------- .../org/apache/solr/search/stats/TestDistribIDF.java | 5 ----- .../src/java/org/apache/solr/SolrJettyTestBase.java | 3 --- .../apache/solr/cloud/AbstractFullDistribZkTestBase.java | 2 -- .../java/org/apache/solr/cloud/AbstractZkTestCase.java | 2 -- 12 files changed, 42 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/cloud/TestRequestForwarding.java b/solr/core/src/test/org/apache/solr/cloud/TestRequestForwarding.java index c672da3f4f2..1bb0816aa34 100644 --- a/solr/core/src/test/org/apache/solr/cloud/TestRequestForwarding.java +++ b/solr/core/src/test/org/apache/solr/cloud/TestRequestForwarding.java @@ -35,8 +35,6 @@ public class TestRequestForwarding extends SolrTestCaseJ4 { @Override public void setUp() throws Exception { super.setUp(); - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); solrCluster = new MiniSolrCloudCluster(3, createTempDir(), JettyConfig.builder().build()); solrCluster.uploadConfigSet(TEST_PATH().resolve("collection1/conf"), "conf1"); } @@ -44,9 +42,6 @@ public void setUp() throws Exception { @Override public void tearDown() throws Exception { solrCluster.shutdown(); - System.clearProperty("solr.test.sys.prop1"); - System.clearProperty("solr.test.sys.prop2"); - super.tearDown(); } diff --git a/solr/core/src/test/org/apache/solr/core/TestCorePropertiesReload.java b/solr/core/src/test/org/apache/solr/core/TestCorePropertiesReload.java index f84a00e45d8..fd0e16b504c 100644 --- a/solr/core/src/test/org/apache/solr/core/TestCorePropertiesReload.java +++ b/solr/core/src/test/org/apache/solr/core/TestCorePropertiesReload.java @@ -37,8 +37,6 @@ public static void beforeClass() throws Exception { solrHomeDirectory = createTempDir(); PathUtils.copyDirectory(TEST_HOME(), solrHomeDirectory); - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); Properties props = new Properties(); props.setProperty("test", "Before reload"); writeCustomProperties(props); diff --git a/solr/core/src/test/org/apache/solr/handler/ReplicationTestHelper.java b/solr/core/src/test/org/apache/solr/handler/ReplicationTestHelper.java index 0a25972f7ac..a5eace8426d 100644 --- a/solr/core/src/test/org/apache/solr/handler/ReplicationTestHelper.java +++ b/solr/core/src/test/org/apache/solr/handler/ReplicationTestHelper.java @@ -292,9 +292,6 @@ public void setTestPort(Integer testPort) { } public void setUp() throws Exception { - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); - Properties props = new Properties(); props.setProperty("name", "collection1"); diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java index dd599e1f1b4..ecfaf52451a 100644 --- a/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java +++ b/solr/core/src/test/org/apache/solr/metrics/SolrMetricsIntegrationTest.java @@ -50,9 +50,6 @@ public class SolrMetricsIntegrationTest extends SolrTestCaseJ4 { @Before public void beforeTest() throws Exception { Path home = TEST_PATH(); - // define these properties, they are used in solrconfig.xml - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); String solrXml = Files.readString(home.resolve("solr-metricreporter.xml"), StandardCharsets.UTF_8); NodeConfig cfg = SolrXmlConfig.fromString(home, solrXml); diff --git a/solr/core/src/test/org/apache/solr/rest/SolrRestletTestBase.java b/solr/core/src/test/org/apache/solr/rest/SolrRestletTestBase.java index 9289b33447e..a6b6f909d2b 100644 --- a/solr/core/src/test/org/apache/solr/rest/SolrRestletTestBase.java +++ b/solr/core/src/test/org/apache/solr/rest/SolrRestletTestBase.java @@ -46,9 +46,6 @@ public static void init() throws Exception { System.setProperty("coreRootDirectory", coresDir.toString()); System.setProperty("configSetBaseDir", TEST_HOME().toString()); - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); - final SortedMap extraServlets = new TreeMap<>(); Properties props = new Properties(); diff --git a/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java b/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java index 3db98117565..fb50c88578f 100644 --- a/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java +++ b/solr/core/src/test/org/apache/solr/schema/DateFieldTest.java @@ -32,9 +32,6 @@ public class DateFieldTest extends SolrTestCaseJ4 { @Override public void setUp() throws Exception { super.setUp(); - // set some system properties for use by tests - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); SolrConfig config = new SolrConfig(testInstanceDir, testConfHome.resolve("solrconfig.xml").toString()); IndexSchema schema = diff --git a/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java b/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java index 5b681d4c9fc..4b5dfc76b99 100644 --- a/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java +++ b/solr/core/src/test/org/apache/solr/schema/PrimitiveFieldTypeTest.java @@ -38,8 +38,6 @@ public void setUp() throws Exception { // set some system properties for use by tests System.setProperty( "solr.index.updatelog.enabled", "false"); // schema12 doesn't support _version_ - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); initMap = new HashMap<>(); config = diff --git a/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java b/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java index b2b3f4be01e..393f2babbc5 100644 --- a/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java +++ b/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java @@ -52,7 +52,6 @@ import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.SolrInputDocument; import org.junit.AfterClass; -import org.junit.BeforeClass; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,12 +67,6 @@ public class ShardToShardJoinAbstract extends SolrCloudTestCase { protected static String toColl = "parent"; protected static String fromColl = "children"; - @BeforeClass - public static void setPropos() { - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); - } - public static void setupCluster( Consumer fromDecorator, Consumer parentDecorator, @@ -151,8 +144,6 @@ public static void setupCluster( @AfterClass public static void shutdown() { - System.clearProperty("solr.test.sys.prop1"); - System.clearProperty("solr.test.sys.prop2"); log.info("logic complete ... deleting the {} and {} collections", toColl, fromColl); // try to clean up diff --git a/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java b/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java index 2bcd27d87e4..9a7e758a6a5 100644 --- a/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java +++ b/solr/core/src/test/org/apache/solr/search/stats/TestDistribIDF.java @@ -55,9 +55,6 @@ public void setUp() throws Exception { super.setUp(); solrCluster = new MiniSolrCloudCluster(3, createTempDir(), JettyConfig.builder().build()); - // set some system properties for use by tests - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); solrCluster.uploadConfigSet(TEST_PATH().resolve("collection1/conf"), "conf1"); solrCluster.uploadConfigSet(configset("configset-2"), "conf2"); } @@ -66,8 +63,6 @@ public void setUp() throws Exception { public void tearDown() throws Exception { solrCluster.shutdown(); System.clearProperty("solr.statsCache"); - System.clearProperty("solr.test.sys.prop1"); - System.clearProperty("solr.test.sys.prop2"); super.tearDown(); } diff --git a/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java b/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java index 93e5424c824..a6524e74800 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java @@ -134,9 +134,6 @@ protected HttpClient getHttpClient() { // explicitly there as of SOLR-4817 @Deprecated // Instead use a basic config + whatever is needed or default config protected static void setupJettyTestHome(Path solrHome, String collection) throws Exception { - // TODO remove these sys props! - System.setProperty("solr.test.sys.prop1", "propone"); - System.setProperty("solr.test.sys.prop2", "proptwo"); copySolrHomeToTemp(solrHome, collection); } diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java index 3ef3c3ac833..82bae1ea2f4 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java @@ -2207,8 +2207,6 @@ public void distribTearDown() throws Exception { System.clearProperty(ENABLE_UPDATE_LOG); System.clearProperty(REMOVE_VERSION_FIELD); System.clearProperty("solr.directoryFactory"); - System.clearProperty("solr.test.sys.prop1"); - System.clearProperty("solr.test.sys.prop2"); System.clearProperty(ZOOKEEPER_FORCE_SYNC); System.clearProperty( MockDirectoryFactory.SOLR_TESTS_ALLOW_READING_FILES_STILL_OPEN_FOR_WRITE); diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java index 2c423d3f973..43100f63c08 100644 --- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java +++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java @@ -72,8 +72,6 @@ public static void aztAfterClass() throws Exception { } finally { System.clearProperty("zkHost"); - System.clearProperty("solr.test.sys.prop1"); - System.clearProperty("solr.test.sys.prop2"); System.clearProperty("solrcloud.skip.autorecovery"); System.clearProperty("solr.port.listen"); System.clearProperty(ZOOKEEPER_FORCE_SYNC); From de40ff55b37fa21a6cef6db1b9d20b403d19330a Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 13:22:17 -0500 Subject: [PATCH 06/10] lint --- .../java/org/apache/solr/handler/component/SearchHandler.java | 2 +- solr/core/src/test/org/apache/solr/core/TestConfig.java | 4 ---- .../org/apache/solr/core/TestConfigPropertySubstitution.java | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java index 7ccc3b4e32a..d3bb6216b8a 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java @@ -225,7 +225,7 @@ public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp) throw } rb.isDistrib = isDistrib(req, rb); // can change later nonetheless - + boolean dbg = req.getParams().getBool(CommonParams.DEBUG_QUERY, false); rb.setDebug(dbg); if (dbg == false) { // if it's true, we are doing everything anyway. diff --git a/solr/core/src/test/org/apache/solr/core/TestConfig.java b/solr/core/src/test/org/apache/solr/core/TestConfig.java index 4e49b7e0d11..a785b3c731b 100644 --- a/solr/core/src/test/org/apache/solr/core/TestConfig.java +++ b/solr/core/src/test/org/apache/solr/core/TestConfig.java @@ -20,13 +20,11 @@ import java.io.InputStream; import java.util.Collections; import java.util.LinkedHashMap; - import org.apache.lucene.index.ConcurrentMergeScheduler; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.TieredMergePolicy; import org.apache.lucene.util.InfoStream; import org.apache.solr.SolrTestCaseJ4; - import org.apache.solr.schema.IndexSchema; import org.apache.solr.schema.IndexSchemaFactory; import org.apache.solr.search.CacheConfig; @@ -63,8 +61,6 @@ public void testDisableRequetsHandler() { assertNotNull(h.getCore().getRequestHandler("/enabled")); } - - @Test public void testCacheEnablingDisabling() throws Exception { // ensure if cache is not defined in the config then cache is disabled diff --git a/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java b/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java index 32fb6645792..e40c1d09e70 100644 --- a/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java +++ b/solr/core/src/test/org/apache/solr/core/TestConfigPropertySubstitution.java @@ -24,8 +24,8 @@ /** * Test class specifically for testing system property substitution in Solr configuration files. - * This class is isolated from other tests to minimize the global impact of setting - * test-specific system properties. + * This class is isolated from other tests to minimize the global impact of setting test-specific + * system properties. */ public class TestConfigPropertySubstitution extends SolrTestCaseJ4 { From 20acc994b4e640d28cd823189e05136cb5e2fc0d Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 13:22:25 -0500 Subject: [PATCH 07/10] Mark this class as abstract! --- .../solr/search/join/ShardToShardJoinAbstract.java | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java b/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java index 393f2babbc5..5790027afcf 100644 --- a/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java +++ b/solr/core/src/test/org/apache/solr/search/join/ShardToShardJoinAbstract.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.lang.invoke.MethodHandles; -import java.nio.file.Path; import java.util.AbstractMap; import java.util.ArrayList; import java.util.Arrays; @@ -43,7 +42,6 @@ import org.apache.solr.client.solrj.request.beans.PluginMeta; import org.apache.solr.client.solrj.response.CollectionAdminResponse; import org.apache.solr.client.solrj.response.QueryResponse; -import org.apache.solr.cloud.MiniSolrCloudCluster; import org.apache.solr.cloud.SolrCloudTestCase; import org.apache.solr.cluster.placement.PlacementPluginFactory; import org.apache.solr.cluster.placement.plugins.AffinityPlacementConfig; @@ -57,7 +55,7 @@ /** Tests using fromIndex that points to a collection in SolrCloud mode. */ // @LogLevel("org.apache.solr.schema.IndexSchema=TRACE") -public class ShardToShardJoinAbstract extends SolrCloudTestCase { +public abstract class ShardToShardJoinAbstract extends SolrCloudTestCase { private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); @@ -73,13 +71,11 @@ public static void setupCluster( Function parentDocFactory, BiFunction childDocFactory) throws Exception { - final Path configDir = TEST_COLL1_CONF(); String configName = "_default"; // "solrCloudCollectionConfig"; int nodeCount = 5; - final MiniSolrCloudCluster cloudCluster = - configureCluster(nodeCount) // .addConfig(configName, configDir) - .configure(); + + configureCluster(nodeCount).configure(); PluginMeta plugin = new PluginMeta(); plugin.name = PlacementPluginFactory.PLUGIN_NAME; From 2bb02944f2d2f7e56858bd36e60d2f5f6d26f7b9 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 13:22:29 -0500 Subject: [PATCH 08/10] lint. --- gradle/libs.versions.toml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 84ab7f1db33..b2f4d5d4e52 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -182,7 +182,6 @@ openjdk-jmh = "1.37" opentelemetry = "1.56.0" opentelemetry-prometheus = "1.56.0-alpha" opentelemetry-runtime-telemetry = "2.22.0-alpha" -osgi-annotation = "8.1.0" oshai-logging = "7.0.13" # @keep for version alignment ow2-asm = "9.8" @@ -449,11 +448,11 @@ ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } ktor-client-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor" } ktor-client-serialization-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } langchain4j-bom = { module = "dev.langchain4j:langchain4j-bom", version.ref = "langchain4j-bom" } -langchain4j-cohere = { module = "dev.langchain4j:langchain4j-cohere"} -langchain4j-core = { module = "dev.langchain4j:langchain4j-core"} -langchain4j-hugging-face = { module = "dev.langchain4j:langchain4j-hugging-face"} -langchain4j-mistral-ai = { module = "dev.langchain4j:langchain4j-mistral-ai"} -langchain4j-open-ai = { module = "dev.langchain4j:langchain4j-open-ai"} +langchain4j-cohere = { module = "dev.langchain4j:langchain4j-cohere" } +langchain4j-core = { module = "dev.langchain4j:langchain4j-core" } +langchain4j-hugging-face = { module = "dev.langchain4j:langchain4j-hugging-face" } +langchain4j-mistral-ai = { module = "dev.langchain4j:langchain4j-mistral-ai" } +langchain4j-open-ai = { module = "dev.langchain4j:langchain4j-open-ai" } lmax-disruptor = { module = "com.lmax:disruptor", version.ref = "lmax-disruptor" } locationtech-spatial4j = { module = "org.locationtech.spatial4j:spatial4j", version.ref = "spatial4j" } mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockito" } From 1fba74301a878768f95a08a7dba2b7eabfe74bc9 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 28 Dec 2025 13:27:05 -0500 Subject: [PATCH 09/10] Another comment that can be removed! --- .../test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java index 819bbf05eea..26c21b60007 100644 --- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java +++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java @@ -704,8 +704,6 @@ public static void initCore() throws Exception { ignoreException("ignore_exception"); - // other methods like starting a jetty instance need these too - String configFile = getSolrConfigFile(); if (configFile != null) { createCore(); From 58bbd26ac39fea76371ee6fd1c68ce304b1cbe2d Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Mon, 29 Dec 2025 10:52:46 -0500 Subject: [PATCH 10/10] Update solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../solr/collection1/conf/solrconfig-test-properties.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml index e32dcdfbe5e..2a095e0b02a 100644 --- a/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-test-properties.xml @@ -19,8 +19,8 @@ ${tests.luceneMatchVersion:LATEST}