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

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


The following commit(s) were added to refs/heads/branch_9x by this push:
     new 91010d6  SOLR-15904: Move SQL support into new sql module
91010d6 is described below

commit 91010d658b228163c2131247be1858ae5f7b5331
Author: Kevin Risden <[email protected]>
AuthorDate: Mon Feb 14 20:24:45 2022 -0500

    SOLR-15904: Move SQL support into new sql module
---
 gradle/validation/spotless.gradle                  |  1 +
 settings.gradle                                    |  1 +
 solr/CHANGES.txt                                   |  2 +
 solr/core/build.gradle                             | 15 -----
 .../java/org/apache/solr/core/CoreContainer.java   |  4 --
 .../org/apache/solr/core/SolrResourceLoader.java   |  2 +-
 solr/core/src/resources/ImplicitPlugins.json       |  1 +
 solr/core/src/test-files/log4j2.xml                |  1 -
 .../org/apache/solr/search/TestTaskManagement.java |  2 +-
 solr/modules/sql/README.md                         | 29 +++++++++
 solr/modules/sql/build.gradle                      | 69 ++++++++++++++++++++++
 .../solr/handler/sql}/CalciteJDBCStream.java       |  2 +-
 .../apache/solr/handler/sql/CalciteSolrDriver.java |  0
 .../org/apache/solr/handler/sql/LimitStream.java   |  0
 .../org/apache/solr/handler/sql}/SQLHandler.java   |  9 ++-
 .../org/apache/solr/handler/sql/SolrAggregate.java |  0
 .../apache/solr/handler/sql/SolrEnumerator.java    |  0
 .../org/apache/solr/handler/sql/SolrFilter.java    |  0
 .../org/apache/solr/handler/sql/SolrMethod.java    |  0
 .../org/apache/solr/handler/sql/SolrProject.java   |  0
 .../java/org/apache/solr/handler/sql/SolrRel.java  |  0
 .../org/apache/solr/handler/sql/SolrRules.java     |  0
 .../org/apache/solr/handler/sql/SolrSchema.java    |  0
 .../java/org/apache/solr/handler/sql/SolrSort.java |  0
 .../org/apache/solr/handler/sql/SolrTable.java     |  0
 .../org/apache/solr/handler/sql/SolrTableScan.java |  0
 .../handler/sql/SolrToEnumerableConverter.java     |  0
 .../handler/sql/SolrToEnumerableConverterRule.java |  0
 .../org/apache/solr/handler/sql/package-info.java  |  4 +-
 .../sql}/src/test-files/log4j2.xml                 |  0
 .../test-files/solr/configsets/sql/conf/schema.xml |  0
 .../solr/configsets/sql/conf/solrconfig.xml        |  0
 .../solr/handler/sql/SQLWithAuthzEnabledTest.java  |  0
 .../apache/solr/handler/sql}/TestSQLHandler.java   |  2 +-
 .../solr/handler/sql}/TestSQLHandlerNonCloud.java  |  2 +-
 solr/packaging/build.gradle                        |  3 +-
 .../pages/implicit-requesthandlers.adoc            |  2 +-
 .../modules/query-guide/pages/sql-query.adoc       |  2 +-
 solr/solrj/build.gradle                            |  1 +
 solr/test-framework/build.gradle                   |  2 +-
 .../apache/solr/schema/SortableBinaryField.java    |  0
 versions.lock                                      |  2 +-
 42 files changed, 123 insertions(+), 35 deletions(-)

diff --git a/gradle/validation/spotless.gradle 
b/gradle/validation/spotless.gradle
index a6c1472..1f2d151 100644
--- a/gradle/validation/spotless.gradle
+++ b/gradle/validation/spotless.gradle
@@ -53,6 +53,7 @@ configure(project(":solr").subprojects) { prj ->
           case ":solr:modules:hdfs":
           case ":solr:modules:langid":
           case ":solr:modules:scripting":
+          case ":solr:modules:sql":
           case ":solr:core":
           case ":solr:solrj":
           case ":solr:solr-ref-guide":
diff --git a/settings.gradle b/settings.gradle
index 02b4b27..a93e882 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -42,6 +42,7 @@ include "solr:modules:langid"
 include "solr:modules:ltr"
 include "solr:modules:s3-repository"
 include "solr:modules:scripting"
+include "solr:modules:sql"
 include "solr:webapp"
 include "solr:benchmark"
 include "solr:test-framework"
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 678a993..aa914cd 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -88,6 +88,8 @@ New Features
 
 * SOLR-13989: Move Hadoop Authentication support to a new hadoop-auth module 
(Kevin Risden)
 
+* SOLR-15904: Move SQL support to new sql module (Kevin Risden)
+
 Improvements
 ----------------------
 * LUCENE-8984: MoreLikeThis MLT is biased for uncommon fields (Andy Hind via 
Anshum Gupta)
diff --git a/solr/core/build.gradle b/solr/core/build.gradle
index aa6b05e..be801e3 100644
--- a/solr/core/build.gradle
+++ b/solr/core/build.gradle
@@ -150,21 +150,6 @@ dependencies {
   implementation 'org.codehaus.woodstox:stax2-api'
   implementation 'com.fasterxml.woodstox:woodstox-core'
 
-  // SQL Parser via Calcite
-  implementation ('org.apache.calcite:calcite-core', {
-    exclude group: 'org.apache.calcite.avatica', module: 'avatica-metrics'
-    exclude group: 'com.fasterxml.jackson.dataformat', module: 
'jackson-dataformat-yaml'
-    exclude group: 'com.google.uzaygezen', module: 'uzaygezen-core'
-    exclude group: 'com.yahoo.datasketches', module: 'sketches-core'
-    exclude group: 'org.apache.commons', module: 'commons-dbcp2'
-    exclude group: 'net.minidev', module: 'json-smart'
-    exclude group: 'net.hydromatic', module: 'aggdesigner-algorithm'
-  })
-  // sub-deps of calcite-core that we reference directly
-  implementation ('org.apache.calcite:calcite-linq4j') { transitive = false }
-  implementation ('org.apache.calcite.avatica:avatica-core') { transitive = 
false }
-  permitUnusedDeclared 'org.apache.calcite.avatica:avatica-core'
-
   testRuntimeOnly 'org.slf4j:jcl-over-slf4j'
 
   testRuntimeOnly "org.apache.lucene:lucene-analysis-icu"
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 152ce1f..2ea57ee 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -87,7 +87,6 @@ import org.apache.solr.handler.admin.ZookeeperStatusHandler;
 import org.apache.solr.handler.api.ApiRegistrar;
 import org.apache.solr.handler.component.ShardHandlerFactory;
 import org.apache.solr.handler.designer.SchemaDesignerAPI;
-import org.apache.solr.handler.sql.CalciteSolrDriver;
 import org.apache.solr.logging.LogWatcher;
 import org.apache.solr.logging.MDCLoggingContext;
 import org.apache.solr.metrics.SolrCoreMetricManager;
@@ -703,9 +702,6 @@ public class CoreContainer {
 
     solrClientCache = new 
SolrClientCache(updateShardHandler.getDefaultHttpClient());
 
-    // initialize CalciteSolrDriver instance to use this solrClientCache
-    CalciteSolrDriver.INSTANCE.setSolrClientCache(solrClientCache);
-
     solrCores.load(loader);
 
 
diff --git a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java 
b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
index 655e80d..5693307 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
@@ -88,7 +88,7 @@ public class SolrResourceLoader implements ResourceLoader, 
Closeable, SolrClassL
       "", "analysis.", "schema.", "handler.", "handler.tagger.", "search.", 
"update.", "core.", "response.", "request.",
       "update.processor.", "util.", "spelling.", "handler.component.",
       "spelling.suggest.", "spelling.suggest.fst.", "rest.schema.analysis.", 
"security.", "handler.admin.",
-      "security.jwt.", "security.hadoop."
+      "security.jwt.", "security.hadoop.", "handler.sql."
   };
   private static final Charset UTF_8 = StandardCharsets.UTF_8;
   public static final String SOLR_ALLOW_UNSAFE_RESOURCELOADING_PARAM = 
"solr.allow.unsafe.resourceloading";
diff --git a/solr/core/src/resources/ImplicitPlugins.json 
b/solr/core/src/resources/ImplicitPlugins.json
index 14b51cb..8e8bd6d 100644
--- a/solr/core/src/resources/ImplicitPlugins.json
+++ b/solr/core/src/resources/ImplicitPlugins.json
@@ -109,6 +109,7 @@
     },
     "/sql": {
       "class": "solr.SQLHandler",
+      "startup": "lazy",
       "useParams":"_SQL",
       "invariants": {
         "distrib": false
diff --git a/solr/core/src/test-files/log4j2.xml 
b/solr/core/src/test-files/log4j2.xml
index 689aa96..9078571 100644
--- a/solr/core/src/test-files/log4j2.xml
+++ b/solr/core/src/test-files/log4j2.xml
@@ -32,7 +32,6 @@
     <Logger name="org.apache.zookeeper" level="WARN"/>
     <Logger name="org.apache.directory" level="WARN"/>
     <Logger name="org.eclipse.jetty" level="INFO"/>
-    <Logger name="org.apache.calcite" level="INFO"/>
 
     <Root level="INFO">
       <AppenderRef ref="STDERR"/>
diff --git a/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java 
b/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
index 7f54385..7330bc3 100644
--- a/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
+++ b/solr/core/src/test/org/apache/solr/search/TestTaskManagement.java
@@ -61,7 +61,7 @@ public class TestTaskManagement extends SolrCloudTestCase {
     @BeforeClass
     public static void setupCluster() throws Exception {
         configureCluster(4)
-                .addConfig("conf", configset("sql"))
+                .addConfig("conf", configset("cloud-minimal"))
                 .configure();
     }
 
diff --git a/solr/modules/sql/README.md b/solr/modules/sql/README.md
new file mode 100644
index 0000000..eeb72dd
--- /dev/null
+++ b/solr/modules/sql/README.md
@@ -0,0 +1,29 @@
+Apache Solr SQL Module
+===============================
+
+Introduction
+------------
+This module implements the support for SQL in Apache Solr. 
+
+Building
+--------
+The SQL module uses the same Gradle build as the core Solr components. 
+
+To build the module, you can use
+
+```
+./gradlew :solr:modules:sql:assemble
+```
+
+The resulting module will be placed to the libs directory, for example:
+`solr/modules/hdfs/build/libs/solr-sql-9.0.0-SNAPSHOT.jar`
+
+To execute the module tests:
+
+```
+./gradlew :solr:modules:sql:test
+```
+
+Usage
+-----
+Please refer to the 'SQL Query Language' section of the reference guide: 
https://solr.apache.org/guide/solr/latest/query-guide/sql-query.html
diff --git a/solr/modules/sql/build.gradle b/solr/modules/sql/build.gradle
new file mode 100644
index 0000000..fe23ccc
--- /dev/null
+++ b/solr/modules/sql/build.gradle
@@ -0,0 +1,69 @@
+/*
+ * 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.
+ */
+
+apply plugin: 'java-library'
+
+description = 'SQL Module'
+
+dependencies {
+  implementation project(':solr:core')
+  implementation project(':solr:solrj')
+
+  implementation 'org.slf4j:slf4j-api'
+
+  implementation 'com.google.guava:guava'
+
+  // SQL Parser via Calcite
+  implementation ('org.apache.calcite:calcite-core', {
+    exclude group: 'org.apache.calcite.avatica', module: 'avatica-metrics'
+    exclude group: 'com.google.guava', module: 'guava' // TODO remove this to 
keep versions in sync
+    exclude group: 'com.fasterxml.jackson.dataformat', module: 
'jackson-dataformat-yaml'
+    exclude group: 'com.google.uzaygezen', module: 'uzaygezen-core'
+    exclude group: 'com.yahoo.datasketches', module: 'sketches-core'
+    exclude group: 'org.apache.commons', module: 'commons-dbcp2'
+    exclude group: 'net.minidev', module: 'json-smart'
+    exclude group: 'net.hydromatic', module: 'aggdesigner-algorithm'
+  })
+  // sub-deps of calcite-core that we reference directly
+  implementation ('org.apache.calcite:calcite-linq4j') { transitive = false }
+  implementation ('org.apache.calcite.avatica:avatica-core') { transitive = 
false }
+  permitUnusedDeclared 'org.apache.calcite.avatica:avatica-core'
+
+  testImplementation project(':solr:test-framework')
+  testImplementation 'org.apache.lucene:lucene-test-framework'
+  testImplementation 'junit:junit'
+
+  testRuntimeOnly project(':solr:modules:analysis-extras')
+
+  testImplementation 'org.apache.commons:commons-lang3'
+}
+
+
+// Copy all the test resource files from core to the build/resources/test 
directory
+// of the SQL module so we can avoid duplication of the test resource files 
like
+// schemas and SolrConfigs. This can be improved later by making the test 
classes
+// load the resources from core directories directly.
+task copySolrCoreTestResources(type: Copy) {
+  from(project(':solr:core').sourceSets.test.resources.srcDirs) {
+    exclude '**/*.java'
+  }
+  into sourceSets.test.output.resourcesDir
+}
+
+tasks.processTestResources.configure {
+  dependsOn copySolrCoreTestResources
+}
diff --git a/solr/core/src/java/org/apache/solr/handler/CalciteJDBCStream.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteJDBCStream.java
similarity index 98%
rename from solr/core/src/java/org/apache/solr/handler/CalciteJDBCStream.java
rename to 
solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteJDBCStream.java
index fd76cbf..4fa6db8 100644
--- a/solr/core/src/java/org/apache/solr/handler/CalciteJDBCStream.java
+++ 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteJDBCStream.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.solr.handler;
+package org.apache.solr.handler.sql;
 
 import java.io.IOException;
 import java.sql.Array;
diff --git 
a/solr/core/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
similarity index 100%
rename from 
solr/core/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
rename to 
solr/modules/sql/src/java/org/apache/solr/handler/sql/CalciteSolrDriver.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/LimitStream.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/LimitStream.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/LimitStream.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/LimitStream.java
diff --git a/solr/core/src/java/org/apache/solr/handler/SQLHandler.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
similarity index 96%
rename from solr/core/src/java/org/apache/solr/handler/SQLHandler.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
index 82a8bf9..1cd785b 100644
--- a/solr/core/src/java/org/apache/solr/handler/SQLHandler.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SQLHandler.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.solr.handler;
+package org.apache.solr.handler.sql;
 
 import java.io.IOException;
 import java.lang.invoke.MethodHandles;
@@ -38,7 +38,8 @@ import org.apache.solr.common.params.ModifiableSolrParams;
 import org.apache.solr.common.params.SolrParams;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.SolrCore;
-import org.apache.solr.handler.sql.CalciteSolrDriver;
+import org.apache.solr.handler.RequestHandlerBase;
+import org.apache.solr.handler.StreamHandler;
 import org.apache.solr.request.SolrQueryRequest;
 import org.apache.solr.response.SolrQueryResponse;
 import org.apache.solr.security.AuthorizationContext;
@@ -62,10 +63,12 @@ public class SQLHandler extends RequestHandlerBase 
implements SolrCoreAware, Per
     CoreContainer coreContainer = core.getCoreContainer();
 
     if(coreContainer.isZooKeeperAware()) {
-      defaultZkhost = 
core.getCoreContainer().getZkController().getZkServerAddress();
+      defaultZkhost = coreContainer.getZkController().getZkServerAddress();
       defaultWorkerCollection = core.getCoreDescriptor().getCollectionName();
       isCloud = true;
     }
+
+    
CalciteSolrDriver.INSTANCE.setSolrClientCache(coreContainer.getSolrClientCache());
   }
 
   @Override
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrAggregate.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrAggregate.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrAggregate.java
rename to 
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrAggregate.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrEnumerator.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
rename to 
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrEnumerator.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrFilter.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrFilter.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrFilter.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrMethod.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrMethod.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrMethod.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrProject.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrProject.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrProject.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrProject.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrRel.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRel.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrRel.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRel.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrRules.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrRules.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrSchema.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSchema.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrSchema.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSchema.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrSort.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSort.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrSort.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrSort.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrTable.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrTable.java
rename to solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTable.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTableScan.java
similarity index 100%
rename from solr/core/src/java/org/apache/solr/handler/sql/SolrTableScan.java
rename to 
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrTableScan.java
diff --git 
a/solr/core/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
similarity index 100%
rename from 
solr/core/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
rename to 
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverter.java
diff --git 
a/solr/core/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverterRule.java
 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverterRule.java
similarity index 100%
rename from 
solr/core/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverterRule.java
rename to 
solr/modules/sql/src/java/org/apache/solr/handler/sql/SolrToEnumerableConverterRule.java
diff --git a/solr/core/src/java/org/apache/solr/handler/sql/package-info.java 
b/solr/modules/sql/src/java/org/apache/solr/handler/sql/package-info.java
similarity index 92%
rename from solr/core/src/java/org/apache/solr/handler/sql/package-info.java
rename to 
solr/modules/sql/src/java/org/apache/solr/handler/sql/package-info.java
index 5aef90d..e4ce787 100644
--- a/solr/core/src/java/org/apache/solr/handler/sql/package-info.java
+++ b/solr/modules/sql/src/java/org/apache/solr/handler/sql/package-info.java
@@ -16,6 +16,6 @@
  */
 
 /**
- * Classes related to Apache Calcite implementation in {@link 
org.apache.solr.handler.SQLHandler}
+ * Classes related to Apache Calcite implementation in {@link 
org.apache.solr.handler.sql.SQLHandler}
  */
-package org.apache.solr.handler.sql;
\ No newline at end of file
+package org.apache.solr.handler.sql;
diff --git a/solr/core/src/test-files/log4j2.xml 
b/solr/modules/sql/src/test-files/log4j2.xml
similarity index 100%
copy from solr/core/src/test-files/log4j2.xml
copy to solr/modules/sql/src/test-files/log4j2.xml
diff --git a/solr/core/src/test-files/solr/configsets/sql/conf/schema.xml 
b/solr/modules/sql/src/test-files/solr/configsets/sql/conf/schema.xml
similarity index 100%
rename from solr/core/src/test-files/solr/configsets/sql/conf/schema.xml
rename to solr/modules/sql/src/test-files/solr/configsets/sql/conf/schema.xml
diff --git a/solr/core/src/test-files/solr/configsets/sql/conf/solrconfig.xml 
b/solr/modules/sql/src/test-files/solr/configsets/sql/conf/solrconfig.xml
similarity index 100%
rename from solr/core/src/test-files/solr/configsets/sql/conf/solrconfig.xml
rename to 
solr/modules/sql/src/test-files/solr/configsets/sql/conf/solrconfig.xml
diff --git 
a/solr/core/src/test/org/apache/solr/handler/sql/SQLWithAuthzEnabledTest.java 
b/solr/modules/sql/src/test/org/apache/solr/handler/sql/SQLWithAuthzEnabledTest.java
similarity index 100%
rename from 
solr/core/src/test/org/apache/solr/handler/sql/SQLWithAuthzEnabledTest.java
rename to 
solr/modules/sql/src/test/org/apache/solr/handler/sql/SQLWithAuthzEnabledTest.java
diff --git a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java 
b/solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandler.java
similarity index 99%
rename from solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
rename to 
solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandler.java
index 453f3f4..4fcd6d6 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSQLHandler.java
+++ b/solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandler.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.solr.handler;
+package org.apache.solr.handler.sql;
 
 import java.io.IOException;
 import java.time.Instant;
diff --git 
a/solr/core/src/test/org/apache/solr/handler/TestSQLHandlerNonCloud.java 
b/solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandlerNonCloud.java
similarity index 98%
rename from 
solr/core/src/test/org/apache/solr/handler/TestSQLHandlerNonCloud.java
rename to 
solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandlerNonCloud.java
index 4043e4c..b0e5b3f 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestSQLHandlerNonCloud.java
+++ 
b/solr/modules/sql/src/test/org/apache/solr/handler/sql/TestSQLHandlerNonCloud.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.solr.handler;
+package org.apache.solr.handler.sql;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/solr/packaging/build.gradle b/solr/packaging/build.gradle
index dc8eb4b..dd25017 100644
--- a/solr/packaging/build.gradle
+++ b/solr/packaging/build.gradle
@@ -58,7 +58,8 @@ dependencies {
    ":solr:modules:langid",
    ":solr:modules:ltr",
    ":solr:modules:s3-repository",
-   ":solr:modules:scripting"
+   ":solr:modules:scripting",
+   ":solr:modules:sql"
   ].each { moduleName ->
     modules project(path: moduleName, configuration: "packaging")
   }
diff --git 
a/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
 
b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
index d291270..fb8adfc 100644
--- 
a/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
+++ 
b/solr/solr-ref-guide/modules/configuration-guide/pages/implicit-requesthandlers.adoc
@@ -249,7 +249,7 @@ SQL:: SQL query support.
 [cols="3*.",frame=none,grid=cols,options="header"]
 |===
 |API Endpoint |Class & Javadocs |Paramset
-|`solr/<collection>/sql` 
|{solr-javadocs}/core/org/apache/solr/handler/SQLHandler.html[SQLHandler] 
|`_SQL`
+|`solr/<collection>/sql` 
|{solr-javadocs}/modules/sql/org/apache/solr/handler/sql/SQLHandler.html[SQLHandler]
 |`_SQL`
 |===
 
 Streaming Expressions:: Distributed stream processing.
diff --git a/solr/solr-ref-guide/modules/query-guide/pages/sql-query.adoc 
b/solr/solr-ref-guide/modules/query-guide/pages/sql-query.adoc
index 7c234e3..d5fe9db 100644
--- a/solr/solr-ref-guide/modules/query-guide/pages/sql-query.adoc
+++ b/solr/solr-ref-guide/modules/query-guide/pages/sql-query.adoc
@@ -21,7 +21,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-Solr's SQL Query support brings the power of SQL to SolrCloud.
+The Solr SQL module brings the power of SQL querying to Solr. The SQL module 
needs to be xref:configuration-guide:solr-modules.adoc[installed] to use.
 
 The SQL interface seamlessly combines SQL with Solr's full-text search 
capabilities.
 Both MapReduce style and JSON Facet API aggregations are supported, which 
means that SQL querying can be used to support both *high query volume* and 
*high cardinality* use cases.
diff --git a/solr/solrj/build.gradle b/solr/solrj/build.gradle
index 71f102d..1621fa6 100644
--- a/solr/solrj/build.gradle
+++ b/solr/solrj/build.gradle
@@ -62,6 +62,7 @@ dependencies {
   testImplementation project(':solr:test-framework')
   testImplementation project(':solr:core')
   testImplementation project(':solr:solrj')
+  testRuntimeOnly project(':solr:modules:sql')
 
   testImplementation 'org.apache.lucene:lucene-analysis-common'
   testImplementation 'org.apache.lucene:lucene-core'
diff --git a/solr/test-framework/build.gradle b/solr/test-framework/build.gradle
index 90e77a0..569f0e2 100644
--- a/solr/test-framework/build.gradle
+++ b/solr/test-framework/build.gradle
@@ -36,7 +36,7 @@ dependencies {
   api 'org.apache.lucene:lucene-test-framework'
   implementation 'org.apache.lucene:lucene-core'
   implementation 'org.apache.lucene:lucene-queries'
-  implementation "org.apache.lucene:lucene-suggest"
+  implementation 'org.apache.lucene:lucene-suggest'
 
   implementation('org.apache.zookeeper:zookeeper', {
     exclude group: "org.apache.yetus", module: "audience-annotations"
diff --git a/solr/core/src/test/org/apache/solr/schema/SortableBinaryField.java 
b/solr/test-framework/src/java/org/apache/solr/schema/SortableBinaryField.java
similarity index 100%
rename from solr/core/src/test/org/apache/solr/schema/SortableBinaryField.java
rename to 
solr/test-framework/src/java/org/apache/solr/schema/SortableBinaryField.java
diff --git a/versions.lock b/versions.lock
index 616ee17..1821637 100644
--- a/versions.lock
+++ b/versions.lock
@@ -35,7 +35,7 @@ com.google.cloud:google-cloud-storage:2.2.3 (2 constraints: 
6e1c99f3)
 com.google.code.gson:gson:2.8.9 (6 constraints: f25833c8)
 com.google.errorprone:error_prone_annotations:2.10.0 (4 constraints: 3038d4ba)
 com.google.guava:failureaccess:1.0.1 (2 constraints: f9199e37)
-com.google.guava:guava:31.0.1-jre (19 constraints: 722c2e36)
+com.google.guava:guava:31.0.1-jre (17 constraints: 850e5ccb)
 com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava (2 
constraints: 4b35b0a0)
 com.google.http-client:google-http-client:1.41.0 (11 constraints: 17bf6b7e)
 com.google.http-client:google-http-client-apache-v2:1.41.0 (2 constraints: 
af201c75)

Reply via email to