diff --git a/changelog/unreleased/SOLR-17161-separate-jetty-solrj.yml b/changelog/unreleased/SOLR-17161-separate-jetty-solrj.yml new file mode 100644 index 00000000000..219a0ba6871 --- /dev/null +++ b/changelog/unreleased/SOLR-17161-separate-jetty-solrj.yml @@ -0,0 +1,9 @@ +title: Separate out a new solrj-jetty module, meaning users can opt in to the jetty http client only if they need it. Also makes ConcurrentUpdateBaseSolrClient client independent. +type: changed +authors: + - name: Jan Høydahl + - name: David Smiley + - name: Kevin Risden +links: + - name: SOLR-17161 + url: https://issues.apache.org/jira/browse/SOLR-17161 diff --git a/gradle/maven/defaults-maven.gradle b/gradle/maven/defaults-maven.gradle index fa47290feef..2b2da08d198 100644 --- a/gradle/maven/defaults-maven.gradle +++ b/gradle/maven/defaults-maven.gradle @@ -28,6 +28,7 @@ configure(rootProject) { ":solr:cross-dc-manager", ":solr:core", ":solr:solrj", + ":solr:solrj-jetty", ":solr:solrj-streaming", ":solr:solrj-zookeeper", ":solr:test-framework", diff --git a/settings.gradle b/settings.gradle index 08cee48a39a..dfbc62b5654 100644 --- a/settings.gradle +++ b/settings.gradle @@ -38,6 +38,7 @@ includeBuild("build-tools/missing-doclet") include ":platform" include "solr:api" include "solr:solrj" +include "solr:solrj-jetty" include "solr:solrj-zookeeper" include "solr:solrj-streaming" include "solr:core" diff --git a/solr/benchmark/build.gradle b/solr/benchmark/build.gradle index 48c97747f04..eeb67b7dbf7 100644 --- a/solr/benchmark/build.gradle +++ b/solr/benchmark/build.gradle @@ -44,6 +44,7 @@ dependencies { implementation project(':solr:test-framework') implementation project(':solr:core') implementation project(':solr:solrj') + implementation project(':solr:solrj-jetty') implementation project(':solr:solrj-streaming') implementation libs.apache.lucene.core diff --git a/solr/core/build.gradle b/solr/core/build.gradle index 7662b8af3b6..ea97b09eba6 100644 --- a/solr/core/build.gradle +++ b/solr/core/build.gradle @@ -48,6 +48,7 @@ dependencies { api project(':solr:api') api project(':solr:solrj') + implementation project(':solr:solrj-jetty') api project(':solr:solrj-zookeeper') api project(':solr:solrj-streaming') diff --git a/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java b/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java index 1b281abf802..dc0b5d77556 100644 --- a/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java +++ b/solr/core/src/java/org/apache/solr/update/StreamingSolrClients.java @@ -151,8 +151,9 @@ public void handleError(Throwable ex) { } @Override - public void onSuccess(Response resp, InputStream respBody) { - req.trackRequestResult(resp, respBody, true); + public void onSuccess(Object responseMetadata, InputStream respBody) { + Response jettyResponse = (Response) responseMetadata; + req.trackRequestResult(jettyResponse, respBody, true); } static class Builder extends ConcurrentUpdateJettySolrClient.Builder { diff --git a/solr/cross-dc-manager/build.gradle b/solr/cross-dc-manager/build.gradle index f037f8b85f9..e6b120190f2 100644 --- a/solr/cross-dc-manager/build.gradle +++ b/solr/cross-dc-manager/build.gradle @@ -46,6 +46,7 @@ dependencies { runtimeOnly libs.lmax.disruptor testImplementation project(':solr:test-framework') + testImplementation project(':solr:solrj-jetty') testImplementation libs.apache.lucene.testframework testImplementation libs.carrotsearch.randomizedtesting.runner testImplementation libs.junit.junit diff --git a/solr/cross-dc-manager/gradle.lockfile b/solr/cross-dc-manager/gradle.lockfile index 0525d371c69..6d9a1f75569 100644 --- a/solr/cross-dc-manager/gradle.lockfile +++ b/solr/cross-dc-manager/gradle.lockfile @@ -157,11 +157,11 @@ org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=compileClasspath,jarValidation org.eclipse.jetty.ee10:jetty-ee10-servlets:12.0.27=solrPlatformLibs org.eclipse.jetty.ee10:jetty-ee10-webapp:12.0.27=solrPlatformLibs org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/analysis-extras/build.gradle b/solr/modules/analysis-extras/build.gradle index f7fa13c8f76..5b4d13a038f 100644 --- a/solr/modules/analysis-extras/build.gradle +++ b/solr/modules/analysis-extras/build.gradle @@ -28,7 +28,7 @@ dependencies { implementation libs.apache.lucene.analysis.icu runtimeOnly libs.apache.lucene.analysis.morfologik implementation libs.apache.lucene.analysis.opennlp - + implementation libs.onnxruntime runtimeOnly libs.apache.lucene.analysis.smartcn runtimeOnly libs.apache.lucene.analysis.stempel diff --git a/solr/modules/analysis-extras/gradle.lockfile b/solr/modules/analysis-extras/gradle.lockfile index dbe29ed75be..468e0bf930f 100644 --- a/solr/modules/analysis-extras/gradle.lockfile +++ b/solr/modules/analysis-extras/gradle.lockfile @@ -132,22 +132,22 @@ org.carrot2:morfologik-stemming:2.1.9=jarValidation,runtimeClasspath,runtimeLibs org.codehaus.woodstox:stax2-api:4.2.2=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/clustering/gradle.lockfile b/solr/modules/clustering/gradle.lockfile index b24313a58e9..30dc522b34a 100644 --- a/solr/modules/clustering/gradle.lockfile +++ b/solr/modules/clustering/gradle.lockfile @@ -120,22 +120,22 @@ org.carrot2:carrot2-core:4.8.1=compileClasspath,jarValidation,runtimeClasspath,r org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/cross-dc/build.gradle b/solr/modules/cross-dc/build.gradle index bfcb128ce59..4d90227db79 100644 --- a/solr/modules/cross-dc/build.gradle +++ b/solr/modules/cross-dc/build.gradle @@ -32,6 +32,7 @@ dependencies { api project(':solr:core') implementation project(':solr:solrj') implementation project(':solr:solrj-zookeeper') + implementation project(':solr:solrj-jetty') implementation libs.slf4j.api implementation libs.apache.kafka.clients diff --git a/solr/modules/cuvs/gradle.lockfile b/solr/modules/cuvs/gradle.lockfile index f5acba5c1d9..b7bbc6672ae 100644 --- a/solr/modules/cuvs/gradle.lockfile +++ b/solr/modules/cuvs/gradle.lockfile @@ -121,22 +121,22 @@ org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/extraction/gradle.lockfile b/solr/modules/extraction/gradle.lockfile index 6d2d54df0c6..1d826f5a82d 100644 --- a/solr/modules/extraction/gradle.lockfile +++ b/solr/modules/extraction/gradle.lockfile @@ -125,9 +125,9 @@ org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/gcs-repository/gradle.lockfile b/solr/modules/gcs-repository/gradle.lockfile index d06f7741d3b..12be94a7176 100644 --- a/solr/modules/gcs-repository/gradle.lockfile +++ b/solr/modules/gcs-repository/gradle.lockfile @@ -172,22 +172,22 @@ org.codehaus.woodstox:stax2-api:4.2.2=apiHelper,jarValidation,runtimeClasspath,r org.conscrypt:conscrypt-openjdk-uber:2.5.2=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/jwt-auth/build.gradle b/solr/modules/jwt-auth/build.gradle index 7cf05aa2cef..80cb694fb3a 100644 --- a/solr/modules/jwt-auth/build.gradle +++ b/solr/modules/jwt-auth/build.gradle @@ -19,12 +19,21 @@ apply plugin: 'java-library' description = 'JWT / OpenID Connect / OAuth2 authentication plugin' +// This is a hacky way to use permitTestUnusedDeclared with bom declared dependencies. +// See https://github.com/gradle-dependency-analyze/gradle-dependency-analyze/issues/108 +configurations { + constraintsOnly + permitTestUnusedDeclared.extendsFrom constraintsOnly + implementation.extendsFrom constraintsOnly +} + dependencies { - implementation platform(project(':platform')) - implementation platform(libs.fasterxml.jackson.bom) + constraintsOnly platform(project(':platform')) + constraintsOnly platform(libs.fasterxml.jackson.bom) implementation project(':solr:core') implementation project(':solr:solrj') + implementation project(':solr:solrj-jetty') implementation libs.bc.jose4j diff --git a/solr/modules/langid/gradle.lockfile b/solr/modules/langid/gradle.lockfile index 3977ee35d6c..9a63aaa0d63 100644 --- a/solr/modules/langid/gradle.lockfile +++ b/solr/modules/langid/gradle.lockfile @@ -122,22 +122,22 @@ org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/language-models/gradle.lockfile b/solr/modules/language-models/gradle.lockfile index 219a3da0757..99e1a7c62c7 100644 --- a/solr/modules/language-models/gradle.lockfile +++ b/solr/modules/language-models/gradle.lockfile @@ -134,22 +134,22 @@ org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/ltr/gradle.lockfile b/solr/modules/ltr/gradle.lockfile index 27d3b90b3e6..a8952d51b54 100644 --- a/solr/modules/ltr/gradle.lockfile +++ b/solr/modules/ltr/gradle.lockfile @@ -120,22 +120,22 @@ org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/opentelemetry/gradle.lockfile b/solr/modules/opentelemetry/gradle.lockfile index 3ab5d6b9260..5212ab9c137 100644 --- a/solr/modules/opentelemetry/gradle.lockfile +++ b/solr/modules/opentelemetry/gradle.lockfile @@ -153,22 +153,22 @@ org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/s3-repository/gradle.lockfile b/solr/modules/s3-repository/gradle.lockfile index 27fa7ef3dc5..d5527e8ea27 100644 --- a/solr/modules/s3-repository/gradle.lockfile +++ b/solr/modules/s3-repository/gradle.lockfile @@ -157,28 +157,28 @@ org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClass org.eclipse.jetty.ee10:jetty-ee10-servlets:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-webapp:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty.websocket:jetty-websocket-core-client:12.0.12=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.websocket:jetty-websocket-core-common:12.0.12=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.websocket:jetty-websocket-core-server:12.0.12=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.websocket:jetty-websocket-jetty-api:12.0.12=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.websocket:jetty-websocket-jetty-common:12.0.12=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-ee:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-xml:12.0.27=jarValidation,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=apiHelper,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/scripting/gradle.lockfile b/solr/modules/scripting/gradle.lockfile index 84b57b5c595..17c9ca30769 100644 --- a/solr/modules/scripting/gradle.lockfile +++ b/solr/modules/scripting/gradle.lockfile @@ -119,22 +119,22 @@ org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/modules/sql/gradle.lockfile b/solr/modules/sql/gradle.lockfile index b092272424c..3476553f483 100644 --- a/solr/modules/sql/gradle.lockfile +++ b/solr/modules/sql/gradle.lockfile @@ -143,22 +143,22 @@ org.codehaus.janino:janino:3.1.11=jarValidation,runtimeClasspath,runtimeLibs,tes org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-client:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath diff --git a/solr/solr-ref-guide/build.gradle b/solr/solr-ref-guide/build.gradle index 2893ab70b4d..3876671f080 100644 --- a/solr/solr-ref-guide/build.gradle +++ b/solr/solr-ref-guide/build.gradle @@ -546,6 +546,7 @@ dependencies { // For the SolrJ examples testImplementation project(":solr:core") testImplementation project(":solr:solrj") + testImplementation project(":solr:solrj-jetty") testRuntimeOnly project(":solr:modules:sql") testImplementation project(":solr:test-framework") testImplementation libs.junit.junit diff --git a/solr/solr-ref-guide/modules/deployment-guide/pages/basic-authentication-plugin.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/basic-authentication-plugin.adoc index 9121f0046fd..f84361e0e94 100644 --- a/solr/solr-ref-guide/modules/deployment-guide/pages/basic-authentication-plugin.adoc +++ b/solr/solr-ref-guide/modules/deployment-guide/pages/basic-authentication-plugin.adoc @@ -339,6 +339,8 @@ It also doesn't work with the many `SolrClient` methods which don't consume `Sol HttpJettySolrClient & HttpJdkSolrClient support setting the credentials at the client level when building it. This will ensure all requests issued with this particular client get the Basic Authentication headers set. +NOTE: The examples below use `HttpJettySolrClient`, which requires the `solr-solrj-jetty` maven dependency. + [source,java] ---- var client = new HttpJettySolrClient.Builder(solrUrl) diff --git a/solr/solr-ref-guide/modules/deployment-guide/pages/solrj.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/solrj.adoc index c96421826cc..40f2dea68d9 100644 --- a/solr/solr-ref-guide/modules/deployment-guide/pages/solrj.adoc +++ b/solr/solr-ref-guide/modules/deployment-guide/pages/solrj.adoc @@ -54,6 +54,32 @@ For projects built with Gradle, place the following in your `build.gradle`: compile group: 'org.apache.solr', name: 'solr-solrj', version: '{solr-full-version}' ---- +==== Optional Jetty Module + +If you want to use Jetty-based HTTP clients (`HttpJettySolrClient`, `ConcurrentUpdateJettySolrClient`, +`LBJettySolrClient`, or `CloudJettySolrClient`), you need to add the maven dependency `solr-solrj-jetty`: + +[source,xml,subs="verbatim,attributes"] +---- + + org.apache.solr + solr-solrj-jetty + {solr-full-version} + +---- + +For Gradle: + +[source,groovy,subs="attributes"] +---- +compile group: 'org.apache.solr', name: 'solrj-solrj-jetty', version: '{solr-full-version}' +---- + +Alternatively, you can use `HttpJdkSolrClient` from the base `solr-solrj` artifact, +which uses Java's built-in HTTP client and has no additional dependencies. + +==== Other Optional Modules + If you want to use `CloudSolrClient` _and_ have it talk directly to ZooKeeper, you will need to add a dependency on the `solr-solrj-zookeeper` artifact. If you want to build and use xref:query-guide:streaming-expressions.adoc[Streaming Expressions] classes in your Java code, you will need to add a dependency on the `solr-solrj-streaming` artifact. @@ -95,11 +121,11 @@ Requests are sent in the form of {solr-javadocs}/solrj/org/apache/solr/client/so `SolrClient` has a few concrete implementations, each geared towards a different usage-pattern or resiliency model: -- {solr-javadocs}/solrj/org/apache/solr/client/solrj/jetty/HttpJettySolrClient.html[`HttpJettySolrClient`] - a general purpose client based on Jetty HttpClient. Supports HTTP/2 and HTTP/1.1, async, non-blocking. Most used & tested. +- {solr-javadocs}/solrj-jetty/org/apache/solr/client/solrj/jetty/HttpJettySolrClient.html[`HttpJettySolrClient`] - a general purpose client based on Jetty HttpClient. Supports HTTP/2 and HTTP/1.1, async, non-blocking. Most used & tested. - {solr-javadocs}/solrj/org/apache/solr/client/solrj/impl/HttpJdkSolrClient.html[`HttpJdkSolrClient`] - a general purpose client based on JDK HttpClient. Supports HTTP/2 and HTTP/1.1, async, non-blocking. Has no dependencies. - {solr-javadocs}/solrj/org/apache/solr/client/solrj/impl/LBSolrClient.html[`LBSolrClient`] - an internal client that delegates to other clients pointed at different URLs for fail-over/availability. Adjusts the list of "in-service" nodes based on node health. - {solr-javadocs}/solrj/org/apache/solr/client/solrj/impl/CloudSolrClient.html[`CloudSolrClient`] - the ideal client for SolrCloud. Using the "cluster state", it routes requests to the optimal nodes, including splitting out the documents in an UpdateRequest to different nodes. -- {solr-javadocs}/solrj/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClient.html[`ConcurrentUpdateJettySolrClient`] - geared towards indexing-centric workloads. +- {solr-javadocs}/solrj-jetty/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClient.html[`ConcurrentUpdateJettySolrClient`] - geared towards indexing-centric workloads. Buffers documents internally before sending larger batches to Solr. === Common Configuration Options diff --git a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc index c058e7e47c2..5ae6b996e25 100644 --- a/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc +++ b/solr/solr-ref-guide/modules/upgrade-notes/pages/major-changes-in-solr-10.adoc @@ -73,7 +73,7 @@ That no longer happens in Solr 10. It is only used to load a configuration as a * Starting in 10, the Maven POM for SolrJ does not refer to SolrJ modules like ZooKeeper. If you require such functionality, you need to add additional dependencies. -* Classes using Jetty HttpClient have been moved to a new package `org.apache.solr.solrj.jetty`. +* Classes using Jetty HttpClient have been moved to a new package `org.apache.solr.solrj.jetty`. To use them from your application, you need to include the new `solr-solrj-jetty` artifact. The following classes were renamed with some refactorings: `Http2SolrClient` to `HttpJettySolrClient`, `ConcurrentUpdateHttp2SolrClient` to `ConcurrentUpdateJettySolrClient`, `LBHttp2SolrClient` to `LBJettySolrClient`. `CloudHttp2SolrClient.Builder` has moved to `CloudSolrClient`; users should generally have no need to refer to `CloudHttp2SolrClient` or any class/member with "http2" in it. The builder will check if Jetty `HttpClient` is available and use that, otherwise fallback on a JDK based `HttpClient`. diff --git a/solr/solrj-jetty/build.gradle b/solr/solrj-jetty/build.gradle new file mode 100644 index 00000000000..6f3f6eda4e2 --- /dev/null +++ b/solr/solrj-jetty/build.gradle @@ -0,0 +1,67 @@ +/* + * 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. + */ + +plugins { + id 'java-library' +} + +description = 'Solrj-Jetty - Jetty-based HTTP clients for SolrJ' + +dependencies { + // Core dependencies on solr-solrj (without Jetty) + api project(':solr:solrj') + + // Jetty dependencies - moved from solr-solrj + api libs.eclipse.jetty.http2.client + implementation libs.eclipse.jetty.http2.httpclienttransport + implementation libs.eclipse.jetty.http + implementation libs.eclipse.jetty.client + implementation libs.eclipse.jetty.util + implementation libs.eclipse.jetty.io + runtimeOnly libs.eclipse.jetty.alpnjavaclient + + // Inherited from solr-solrj + implementation libs.slf4j.api + + compileOnly libs.stephenc.jcip.annotations + + // Test dependencies + + testImplementation project(':solr:test-framework') + testImplementation project(':solr:core') + testImplementation project(':solr:solrj') + // Access to solrj test classes (e.g., HttpSolrClientTestBase) + testImplementation project(path: ':solr:solrj', configuration: 'testArtifacts') + // Test classes use main classes from this module + testImplementation project(':solr:solrj-jetty') + + testImplementation libs.apache.lucene.testframework + + testImplementation libs.carrotsearch.randomizedtesting.runner + testImplementation libs.junit.junit + testImplementation libs.hamcrest.hamcrest + + testImplementation libs.jakarta.servlet.api + + testImplementation libs.eclipse.jetty.ee10.servlet + testRuntimeOnly(libs.eclipse.jetty.alpnjavaserver, { + exclude group: "org.eclipse.jetty.alpn", module: "alpn-api" + }) + testRuntimeOnly(libs.apache.log4j.slf4j2impl, { + exclude group: "org.apache.logging.log4j", module: "log4j-api" + }) +} diff --git a/solr/solrj-jetty/gradle.lockfile b/solr/solrj-jetty/gradle.lockfile new file mode 100644 index 00000000000..5bfbdee0db7 --- /dev/null +++ b/solr/solrj-jetty/gradle.lockfile @@ -0,0 +1,163 @@ +# This is a Gradle generated file for dependency locking. +# Manual edits can break the build and are not advised. +# This file is expected to be part of source control. +com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.8.3=jarValidation,testCompileClasspath,testRuntimeClasspath +com.carrotsearch:hppc:0.10.0=jarValidation,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-annotations:2.20=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-core:2.20.1=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +com.fasterxml.jackson.core:jackson-databind:2.20.1=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.20.1=jarValidation,testRuntimeClasspath +com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.20.1=jarValidation,testRuntimeClasspath +com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:2.20.1=jarValidation,testRuntimeClasspath +com.fasterxml.jackson:jackson-bom:2.20.1=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +com.fasterxml.woodstox:woodstox-core:7.0.0=jarValidation,testRuntimeClasspath +com.github.ben-manes.caffeine:caffeine:3.2.2=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testRuntimeClasspath +com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor +com.github.stephenc.jcip:jcip-annotations:1.0-1=compileClasspath,compileOnlyHelper,jarValidation +com.google.auto.service:auto-service-annotations:1.0.1=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto.value:auto-value-annotations:1.11.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.auto:auto-common:1.2.2=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotation:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_annotations:2.41.0=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.errorprone:error_prone_check_api:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.errorprone:error_prone_core:2.41.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.googlejavaformat:google-java-format:1.27.0=annotationProcessor,errorprone,testAnnotationProcessor +com.google.guava:failureaccess:1.0.3=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:guava:33.4.8-jre=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.j2objc:j2objc-annotations:3.1=annotationProcessor,errorprone,jarValidation,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,errorprone,testAnnotationProcessor +com.j256.simplemagic:simplemagic:1.17=jarValidation,testRuntimeClasspath +com.jayway.jsonpath:json-path:2.9.0=jarValidation,testRuntimeClasspath +com.tdunning:t-digest:3.3=jarValidation,testRuntimeClasspath +commons-cli:commons-cli:1.10.0=jarValidation,testRuntimeClasspath +commons-codec:commons-codec:1.19.0=jarValidation,testRuntimeClasspath +commons-io:commons-io:2.20.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.dropwizard.metrics:metrics-annotation:4.2.26=jarValidation,testRuntimeClasspath +io.dropwizard.metrics:metrics-core:4.2.26=jarValidation,testRuntimeClasspath +io.dropwizard.metrics:metrics-jetty12-ee10:4.2.26=jarValidation,testRuntimeClasspath +io.dropwizard.metrics:metrics-jetty12:4.2.26=jarValidation,testRuntimeClasspath +io.github.eisop:dataflow-errorprone:3.41.0-eisop1=annotationProcessor,errorprone,testAnnotationProcessor +io.github.java-diff-utils:java-diff-utils:4.12=annotationProcessor,errorprone,testAnnotationProcessor +io.netty:netty-buffer:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-codec-base:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-common:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-handler:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-resolver:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-tcnative-boringssl-static:2.0.70.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-tcnative-classes:2.0.70.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-transport-classes-epoll:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-transport-native-epoll:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-transport-native-unix-common:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.netty:netty-transport:4.2.6.Final=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator:2.22.0-alpha=jarValidation,testRuntimeClasspath +io.opentelemetry.instrumentation:opentelemetry-instrumentation-api:2.22.0=jarValidation,testRuntimeClasspath +io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17:2.22.0-alpha=jarValidation,testRuntimeClasspath +io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java8:2.22.0-alpha=jarValidation,testRuntimeClasspath +io.opentelemetry.semconv:opentelemetry-semconv:1.37.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api-incubator:1.56.0-alpha=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-api:1.56.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-common:1.56.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-context:1.56.0=jarValidation,testCompileClasspath,testRuntimeClasspath +io.opentelemetry:opentelemetry-exporter-prometheus:1.56.0-alpha=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-common:1.56.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-metrics:1.56.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk-trace:1.56.0=jarValidation,testRuntimeClasspath +io.opentelemetry:opentelemetry-sdk:1.56.0=jarValidation,testRuntimeClasspath +io.prometheus:prometheus-metrics-exposition-formats:1.1.0=jarValidation,testRuntimeClasspath +io.prometheus:prometheus-metrics-model:1.1.0=jarValidation,testRuntimeClasspath +io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath +io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,testRuntimeClasspath +jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,testRuntimeClasspath +jakarta.servlet:jakarta.servlet-api:6.1.0=jarValidation,testCompileClasspath,testRuntimeClasspath +jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,testRuntimeClasspath +jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor +junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath +org.antlr:antlr4-runtime:4.13.2=jarValidation,testRuntimeClasspath +org.apache.commons:commons-exec:1.5.0=jarValidation,testRuntimeClasspath +org.apache.commons:commons-lang3:3.20.0=jarValidation,testRuntimeClasspath +org.apache.commons:commons-math3:3.6.1=jarValidation,testRuntimeClasspath +org.apache.curator:curator-client:5.9.0=jarValidation,testCompileClasspath,testRuntimeClasspath +org.apache.curator:curator-framework:5.9.0=jarValidation,testCompileClasspath,testRuntimeClasspath +org.apache.curator:curator-test:5.9.0=jarValidation,testRuntimeClasspath +org.apache.httpcomponents:httpclient:4.5.14=jarValidation,testRuntimeClasspath +org.apache.httpcomponents:httpcore:4.4.16=jarValidation,testRuntimeClasspath +org.apache.httpcomponents:httpmime:4.5.14=jarValidation,testRuntimeClasspath +org.apache.logging.log4j:log4j-api:2.25.3=jarValidation,testRuntimeClasspath +org.apache.logging.log4j:log4j-core:2.25.3=jarValidation,testRuntimeClasspath +org.apache.logging.log4j:log4j-slf4j2-impl:2.25.3=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-analysis-common:10.3.2=jarValidation,testCompileClasspath,testRuntimeClasspath +org.apache.lucene:lucene-analysis-kuromoji:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-analysis-nori:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-analysis-phonetic:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-backward-codecs:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-classification:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-codecs:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-core:10.3.2=jarValidation,testCompileClasspath,testRuntimeClasspath +org.apache.lucene:lucene-expressions:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-facet:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-grouping:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-highlighter:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-join:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-memory:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-misc:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-queries:10.3.2=jarValidation,testCompileClasspath,testRuntimeClasspath +org.apache.lucene:lucene-queryparser:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-sandbox:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-spatial-extras:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-spatial3d:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-suggest:10.3.2=jarValidation,testRuntimeClasspath +org.apache.lucene:lucene-test-framework:10.3.2=jarValidation,testCompileClasspath,testRuntimeClasspath +org.apache.zookeeper:zookeeper-jute:3.9.4=jarValidation,testCompileClasspath,testRuntimeClasspath +org.apache.zookeeper:zookeeper:3.9.4=jarValidation,testCompileClasspath,testRuntimeClasspath +org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath +org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,testRuntimeClasspath +org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-java-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath +org.eclipse.jetty:jetty-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath +org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-server:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,testRuntimeClasspath +org.glassfish.hk2:hk2-api:3.1.1=jarValidation,testRuntimeClasspath +org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,testRuntimeClasspath +org.glassfish.hk2:hk2-utils:3.1.1=jarValidation,testRuntimeClasspath +org.glassfish.hk2:osgi-resource-locator:1.0.3=jarValidation,testRuntimeClasspath +org.glassfish.jersey.containers:jersey-container-jetty-http:2.39.1=jarValidation,testRuntimeClasspath +org.glassfish.jersey.core:jersey-client:3.1.11=jarValidation,testRuntimeClasspath +org.glassfish.jersey.core:jersey-common:3.1.11=jarValidation,testRuntimeClasspath +org.glassfish.jersey.core:jersey-server:3.1.11=jarValidation,testRuntimeClasspath +org.glassfish.jersey.ext:jersey-entity-filtering:3.1.11=jarValidation,testRuntimeClasspath +org.glassfish.jersey.inject:jersey-hk2:3.1.11=jarValidation,testRuntimeClasspath +org.glassfish.jersey.media:jersey-media-json-jackson:3.1.11=jarValidation,testRuntimeClasspath +org.hamcrest:hamcrest:3.0=jarValidation,testCompileClasspath,testRuntimeClasspath +org.javassist:javassist:3.30.2-GA=jarValidation,testRuntimeClasspath +org.jspecify:jspecify:1.0.0=annotationProcessor,apiHelper,errorprone,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath +org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,testRuntimeClasspath +org.junit.platform:junit-platform-commons:1.6.2=jarValidation,testRuntimeClasspath +org.junit:junit-bom:5.6.2=jarValidation,testRuntimeClasspath +org.locationtech.spatial4j:spatial4j:0.8=jarValidation,testRuntimeClasspath +org.opentest4j:opentest4j:1.2.0=jarValidation,testRuntimeClasspath +org.ow2.asm:asm-commons:9.8=jarValidation,testRuntimeClasspath +org.ow2.asm:asm-tree:9.8=jarValidation,testRuntimeClasspath +org.ow2.asm:asm:9.8=jarValidation,testRuntimeClasspath +org.pcollections:pcollections:4.0.1=annotationProcessor,errorprone,testAnnotationProcessor +org.semver4j:semver4j:6.0.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +org.slf4j:jcl-over-slf4j:2.0.17=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath +org.slf4j:slf4j-api:2.0.17=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.xerial.snappy:snappy-java:1.1.10.8=jarValidation,testRuntimeClasspath +empty=apiHelperTest,compileOnlyHelperTest,missingdoclet,permitAggregatorUse,permitTestAggregatorUse,permitTestUnusedDeclared,permitTestUsedUndeclared,permitUnusedDeclared,permitUsedUndeclared,signatures diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/AuthenticationStoreHolder.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/AuthenticationStoreHolder.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/AuthenticationStoreHolder.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/AuthenticationStoreHolder.java diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/CloudJettySolrClient.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/CloudJettySolrClient.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/CloudJettySolrClient.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/CloudJettySolrClient.java diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClient.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClient.java similarity index 85% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClient.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClient.java index 2ac6577d8b2..2275976eefc 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClient.java +++ b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClient.java @@ -19,6 +19,7 @@ import java.io.Closeable; import java.io.IOException; +import java.io.InputStream; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.Locale; @@ -35,6 +36,7 @@ import org.eclipse.jetty.client.InputStreamResponseListener; import org.eclipse.jetty.client.OutputStreamRequestContent; import org.eclipse.jetty.client.Request; +import org.eclipse.jetty.client.Response; import org.eclipse.jetty.http.HttpMethod; /** A ConcurrentUpdate SolrClient using {@link HttpJettySolrClient}. */ @@ -73,9 +75,9 @@ protected ConcurrentUpdateJettySolrClient(Builder builder) { } @Override - protected InputStreamResponseListener doSendUpdateStream( - ConcurrentUpdateBaseSolrClient.Update update) throws IOException, InterruptedException { - InputStreamResponseListener responseListener; + protected StreamingResponse doSendUpdateStream(ConcurrentUpdateBaseSolrClient.Update update) + throws IOException, InterruptedException { + InputStreamResponseListener jettyListener; try (OutStream out = initOutStream(basePath, update.request(), update.collection())) { ConcurrentUpdateBaseSolrClient.Update upd = update; while (upd != null) { @@ -91,9 +93,9 @@ protected InputStreamResponseListener doSendUpdateStream( notifyQueueAndRunnersIfEmptyQueue(); upd = queue.poll(pollQueueTimeMillis, TimeUnit.MILLISECONDS); } - responseListener = out.getResponseListener(); + jettyListener = out.getResponseListener(); } - return responseListener; + return new JettyStreamingResponse(jettyListener); } private static class OutStream implements Closeable { @@ -143,6 +145,40 @@ public InputStreamResponseListener getResponseListener() { } } + /** + * Jetty-specific implementation of StreamingResponse that wraps Jetty's + * InputStreamResponseListener. + */ + private static class JettyStreamingResponse implements StreamingResponse { + private final InputStreamResponseListener listener; + private Response response; + + JettyStreamingResponse(InputStreamResponseListener listener) { + this.listener = listener; + } + + @Override + public int awaitResponse(long timeoutMillis) throws Exception { + response = listener.get(timeoutMillis, TimeUnit.MILLISECONDS); + return response.getStatus(); + } + + @Override + public InputStream getInputStream() { + return listener.getInputStream(); + } + + @Override + public Object getUnderlyingResponse() { + return response; + } + + @Override + public void close() throws IOException { + // Jetty handles cleanup automatically + } + } + private OutStream initOutStream(String baseUrl, UpdateRequest updateRequest, String collection) throws IOException { String contentType = client.getRequestWriter().getUpdateContentType(); diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/HttpJettySolrClient.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/HttpJettySolrClient.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/HttpJettySolrClient.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/HttpJettySolrClient.java diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/HttpListenerFactory.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/HttpListenerFactory.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/HttpListenerFactory.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/HttpListenerFactory.java diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/LBJettySolrClient.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/LBJettySolrClient.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/LBJettySolrClient.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/LBJettySolrClient.java diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/PreemptiveBasicAuthClientCustomizer.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/PreemptiveBasicAuthClientCustomizer.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/PreemptiveBasicAuthClientCustomizer.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/PreemptiveBasicAuthClientCustomizer.java diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/SSLConfig.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/SSLConfig.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/SSLConfig.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/SSLConfig.java diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/SolrBasicAuthentication.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/SolrBasicAuthentication.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/SolrBasicAuthentication.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/SolrBasicAuthentication.java diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/jetty/package-info.java b/solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/package-info.java similarity index 100% rename from solr/solrj/src/java/org/apache/solr/client/solrj/jetty/package-info.java rename to solr/solrj-jetty/src/java/org/apache/solr/client/solrj/jetty/package-info.java diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java similarity index 100% rename from solr/solrj/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java rename to solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientBadInputTest.java diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientMultiCollectionTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientMultiCollectionTest.java similarity index 100% rename from solr/solrj/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientMultiCollectionTest.java rename to solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientMultiCollectionTest.java diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientTest.java similarity index 99% rename from solr/solrj/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientTest.java rename to solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientTest.java index bb2d3c5cef8..9c89cf3d27b 100644 --- a/solr/solrj/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientTest.java +++ b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/ConcurrentUpdateJettySolrClientTest.java @@ -47,7 +47,6 @@ import org.apache.solr.common.util.SolrNamedThreadFactory; import org.apache.solr.embedded.JettyConfig; import org.apache.solr.util.SolrJettyTestRule; -import org.eclipse.jetty.client.Response; import org.eclipse.jetty.ee10.servlet.ServletHolder; import org.junit.BeforeClass; import org.junit.ClassRule; @@ -363,7 +362,7 @@ public void handleError(Throwable ex) { } @Override - public void onSuccess(Response resp, InputStream respBody) { + public void onSuccess(Object responseMetadata, InputStream respBody) { successCounter.incrementAndGet(); } diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java similarity index 100% rename from solr/solrj/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java rename to solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientCompatibilityTest.java diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java similarity index 100% rename from solr/solrj/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java rename to solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientProxyTest.java diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientTest.java b/solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientTest.java similarity index 100% rename from solr/solrj/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientTest.java rename to solr/solrj-jetty/src/test/org/apache/solr/client/solrj/jetty/HttpJettySolrClientTest.java diff --git a/solr/solrj-streaming/build.gradle b/solr/solrj-streaming/build.gradle index 4ea3110e203..ee33ad8041a 100644 --- a/solr/solrj-streaming/build.gradle +++ b/solr/solrj-streaming/build.gradle @@ -21,6 +21,7 @@ description = 'Solrj-Streaming - SolrJ requiring Streaming Expressions' dependencies { implementation project(':solr:solrj') + implementation project(':solr:solrj-jetty') // declare dependencies we use even though already declared by solrj-core implementation libs.slf4j.api diff --git a/solr/solrj-zookeeper/build.gradle b/solr/solrj-zookeeper/build.gradle index c4c776095d1..e04f230b30e 100644 --- a/solr/solrj-zookeeper/build.gradle +++ b/solr/solrj-zookeeper/build.gradle @@ -31,6 +31,7 @@ dependencies { } implementation project(':solr:solrj') + implementation project(':solr:solrj-jetty') implementation project(':solr:api') implementation libs.slf4j.api diff --git a/solr/solrj/build.gradle b/solr/solrj/build.gradle index 70106db2a80..f2a9e8b0445 100644 --- a/solr/solrj/build.gradle +++ b/solr/solrj/build.gradle @@ -36,14 +36,6 @@ dependencies { implementation libs.slf4j.api runtimeOnly libs.slf4j.jcloverslf4j - api libs.eclipse.jetty.http2.client - implementation libs.eclipse.jetty.http2.httpclienttransport - implementation libs.eclipse.jetty.http - implementation libs.eclipse.jetty.client - implementation libs.eclipse.jetty.util - implementation libs.eclipse.jetty.io - runtimeOnly libs.eclipse.jetty.alpnjavaclient - compileOnly libs.stephenc.jcip.annotations testImplementation libs.apache.httpcomponents.httpclient @@ -52,6 +44,7 @@ dependencies { testImplementation project(':solr:test-framework') testImplementation project(':solr:core') testImplementation project(':solr:solrj') + testImplementation project(':solr:solrj-jetty') // ideally ZK centric tests move to solrj-zookeeper but sometimes we depend on ZK here anyway testImplementation project(':solr:solrj-zookeeper') @@ -73,13 +66,28 @@ dependencies { testImplementation libs.jakarta.servlet.api + // Jetty test dependencies - needed for solrj's own tests + // Client libraries + testImplementation libs.eclipse.jetty.http2.client + permitTestUnusedDeclared libs.eclipse.jetty.http2.client + testImplementation libs.eclipse.jetty.client + permitTestUnusedDeclared libs.eclipse.jetty.client + testImplementation libs.eclipse.jetty.http + permitTestUnusedDeclared libs.eclipse.jetty.http + // Server libraries testImplementation libs.eclipse.jetty.server + permitTestUnusedDeclared libs.eclipse.jetty.server testImplementation libs.eclipse.jetty.ee10.servlet + permitTestUnusedDeclared libs.eclipse.jetty.ee10.servlet testImplementation libs.eclipse.jetty.ee10.webapp + permitTestUnusedDeclared libs.eclipse.jetty.ee10.webapp testRuntimeOnly(libs.eclipse.jetty.alpnjavaserver, { exclude group: "org.eclipse.jetty.alpn", module: "alpn-api" }) testImplementation libs.eclipse.jetty.session + permitTestUnusedDeclared libs.eclipse.jetty.session + permitTestUnusedDeclared libs.jakarta.servlet.api + testImplementation(libs.mockito.core, { exclude group: "net.bytebuddy", module: "byte-buddy-agent" }) @@ -162,3 +170,22 @@ sourceSets { } } } + +// Configuration to share test classes with other modules (solrj-jetty) +configurations { + testArtifacts { + canBeConsumed = true + canBeResolved = false + } +} + +// Create a JAR of test classes +task testJar(type: Jar) { + archiveClassifier = 'tests' + from sourceSets.test.output +} + +// Make test classes available as an artifact +artifacts { + testArtifacts testJar +} diff --git a/solr/solrj/gradle.lockfile b/solr/solrj/gradle.lockfile index 2af80f358a8..2da955a56c5 100644 --- a/solr/solrj/gradle.lockfile +++ b/solr/solrj/gradle.lockfile @@ -86,7 +86,7 @@ io.sgr:s2-geometry-library-java:1.0.0=jarValidation,testRuntimeClasspath io.swagger.core.v3:swagger-annotations-jakarta:2.2.22=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath jakarta.annotation:jakarta.annotation-api:2.1.1=jarValidation,testRuntimeClasspath jakarta.inject:jakarta.inject-api:2.0.1=jarValidation,testRuntimeClasspath -jakarta.servlet:jakarta.servlet-api:6.1.0=jarValidation,testCompileClasspath,testRuntimeClasspath +jakarta.servlet:jakarta.servlet-api:6.1.0=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath jakarta.validation:jakarta.validation-api:3.0.2=jarValidation,testRuntimeClasspath jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor @@ -133,27 +133,27 @@ org.apache.zookeeper:zookeeper:3.9.4=jarValidation,permitTestUnusedDeclared,test org.apiguardian:apiguardian-api:1.1.2=jarValidation,testRuntimeClasspath org.checkerframework:checker-qual:3.33.0=spotless865458226 org.codehaus.woodstox:stax2-api:4.2.2=jarValidation,testRuntimeClasspath -org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.ee10:jetty-ee10-webapp:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-common:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.ee10:jetty-ee10-servlet:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.ee10:jetty-ee10-webapp:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client-transport:12.0.27=jarValidation,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-client:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-common:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty.http2:jetty-http2-hpack:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty.http2:jetty-http2-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-client:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-alpn-java-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-client:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-ee:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-http:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-io:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-client:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-ee:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-http:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-io:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath -org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-server:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-util:12.0.27=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath -org.eclipse.jetty:jetty-xml:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-security:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-server:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-session:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-util:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath +org.eclipse.jetty:jetty-xml:12.0.27=jarValidation,permitTestUnusedDeclared,testCompileClasspath,testRuntimeClasspath org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,testRuntimeClasspath org.glassfish.hk2:hk2-api:3.1.1=jarValidation,testRuntimeClasspath org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,testRuntimeClasspath @@ -183,7 +183,6 @@ org.ow2.asm:asm:9.8=jarValidation,testRuntimeClasspath org.pcollections:pcollections:4.0.1=annotationProcessor,errorprone,testAnnotationProcessor org.semver4j:semver4j:6.0.0=apiHelper,jarValidation,runtimeClasspath,testRuntimeClasspath org.slf4j:jcl-over-slf4j:2.0.17=jarValidation,runtimeClasspath,testRuntimeClasspath -org.slf4j:slf4j-api:2.0.13=permitTestUnusedDeclared -org.slf4j:slf4j-api:2.0.17=apiHelper,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath +org.slf4j:slf4j-api:2.0.17=apiHelper,compileClasspath,jarValidation,permitTestUnusedDeclared,runtimeClasspath,testCompileClasspath,testRuntimeClasspath org.xerial.snappy:snappy-java:1.1.10.8=jarValidation,testRuntimeClasspath empty=apiHelperTest,compileOnlyHelperTest,missingdoclet,openApiSpecFile,permitAggregatorUse,permitTestAggregatorUse,permitTestUsedUndeclared,permitUnusedDeclared,permitUsedUndeclared,signatures diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java index 16bac664891..25f24de0ed8 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/ConcurrentUpdateBaseSolrClient.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.InputStream; import java.lang.invoke.MethodHandles; +import java.net.HttpURLConnection; import java.util.ArrayDeque; import java.util.Iterator; import java.util.Queue; @@ -42,9 +43,6 @@ import org.apache.solr.common.util.IOUtils; import org.apache.solr.common.util.NamedList; import org.apache.solr.common.util.SolrNamedThreadFactory; -import org.eclipse.jetty.client.InputStreamResponseListener; -import org.eclipse.jetty.client.Response; -import org.eclipse.jetty.http.HttpStatus; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -246,15 +244,14 @@ void sendUpdateStream() throws Exception { break; } - InputStreamResponseListener responseListener = null; + StreamingResponse responseListener = null; responseListener = doSendUpdateStream(update); // just wait for the headers, so the idle timeout is sensible - Response response = responseListener.get(idleTimeoutMillis, TimeUnit.MILLISECONDS); + int statusCode = responseListener.awaitResponse(idleTimeoutMillis); rspBody = responseListener.getInputStream(); - int statusCode = response.getStatus(); - if (statusCode != HttpStatus.OK_200) { + if (statusCode != HttpURLConnection.HTTP_OK) { SolrException solrExc; Object remoteError = null; // parse out the metadata from the SolrException @@ -271,7 +268,7 @@ void sendUpdateStream() throws Exception { handleError(solrExc); } else { - onSuccess(response, rspBody); + onSuccess(responseListener.getUnderlyingResponse(), rspBody); } stallDetection.incrementProcessedCount(); @@ -290,7 +287,7 @@ void sendUpdateStream() throws Exception { } } - protected abstract InputStreamResponseListener doSendUpdateStream(Update update) + protected abstract StreamingResponse doSendUpdateStream(Update update) throws IOException, InterruptedException; private void consumeFully(InputStream is) { @@ -550,9 +547,11 @@ public void handleError(Throwable ex) { /** * Intended to be used as an extension point for doing post-processing after a request completes. * + * @param responseMetadata implementation-specific response object (e.g., Jetty Response), may be + * null * @param respBody the body of the response, subclasses must not close this stream. */ - public void onSuccess(Response resp, InputStream respBody) { + public void onSuccess(Object responseMetadata, InputStream respBody) { // no-op by design, override to add functionality } @@ -773,4 +772,52 @@ public HttpSolrClientBase getClient() { return client; } } + + /** + * Abstraction for streaming HTTP response handling in {@link ConcurrentUpdateBaseSolrClient}. + * This allows the base class to work with different HTTP client implementations without direct + * dependencies on specific client libraries (e.g., Jetty, JDK HttpClient). + * + *

Implementations should wrap the underlying HTTP client's response mechanism and provide + * access to response status and body stream. + */ + public interface StreamingResponse extends AutoCloseable { + + /** + * Wait for response headers to arrive and return the HTTP status code. + * + * @param timeoutMillis maximum time to wait in milliseconds + * @return HTTP status code (e.g., 200, 404, 500) + * @throws Exception if timeout occurs, connection fails, or other error + */ + int awaitResponse(long timeoutMillis) throws Exception; + + /** + * Get the response body as an InputStream for parsing. + * + *

This should be called after {@link #awaitResponse(long)} has successfully returned. + * + * @return response body stream, never null + */ + InputStream getInputStream(); + + /** + * Get the underlying implementation-specific response object. + * + *

This is used by the {@link ConcurrentUpdateBaseSolrClient#onSuccess(Object, InputStream)} + * hook method to allow subclasses access to implementation-specific metadata. The returned + * object type depends on the HTTP client implementation being used. + * + * @return underlying response object (implementation-specific), may be null + */ + Object getUnderlyingResponse(); + + /** + * Release resources associated with this response. + * + * @throws IOException if cleanup fails + */ + @Override + void close() throws IOException; + } } diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientCustomizer.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientCustomizer.java index 98dc2d57564..e61213df8c5 100644 --- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientCustomizer.java +++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/SolrClientCustomizer.java @@ -22,8 +22,9 @@ * A config hook for post-configuration of a {@linkplain SolrClient} by its builder. It is not * supported by all builders. * + *

Implementations can be specified via system property in some client builders. + * * @param type of SolrClient this customizer targets - * @see org.apache.solr.client.solrj.jetty.HttpJettySolrClient#CLIENT_CUSTOMIZER_SYSPROP * @lucene.experimental */ public interface SolrClientCustomizer { diff --git a/solr/test-framework/build.gradle b/solr/test-framework/build.gradle index dfe4044e476..9a6ca030350 100644 --- a/solr/test-framework/build.gradle +++ b/solr/test-framework/build.gradle @@ -32,6 +32,7 @@ dependencies { api project(':solr:core') api project(':solr:solrj') + api project(':solr:solrj-jetty') api project(':solr:api') implementation project(':solr:solrj-zookeeper')