summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.classpath26
-rw-r--r--build.xml6
-rw-r--r--ivy.xml78
-rw-r--r--source/net/yacy/cora/federate/solr/responsewriter/GrepHTMLResponseWriter.java3
-rw-r--r--source/net/yacy/cora/federate/solr/responsewriter/HTMLResponseWriter.java3
-rwxr-xr-xtest/jetty-solr-dependency-guard.sh74
-rw-r--r--test/jetty/RelocateJettyPackages.java9
-rwxr-xr-xtest/solr9-jetty-bridge-spike.sh4
8 files changed, 117 insertions, 86 deletions
diff --git a/.classpath b/.classpath
index 3430bee69..ae62baa74 100644
--- a/.classpath
+++ b/.classpath
@@ -12,17 +12,19 @@
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
- <classpathentry kind="lib" path="lib/solr9-bridge-solr-core-9.0.0.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-solr-solrj-9.0.0.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-solr-scripting-9.0.0.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-jetty-client-9.4.58.v20250814.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-jetty-http-9.4.58.v20250814.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-jetty-io-9.4.58.v20250814.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-jetty-util-9.4.58.v20250814.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-http2-client-9.4.58.v20250814.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-http2-common-9.4.58.v20250814.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-http2-http-client-transport-9.4.58.v20250814.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-slf4j-api-1.7.36.jar"/>
- <classpathentry kind="lib" path="lib/solr9-bridge-slf4j-jdk14-1.7.36.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-solr-api-9.10.1.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-solr-core-9.10.1.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-solr-scripting-9.10.1.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-solr-solrj-9.10.1.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-solr-solrj-streaming-9.10.1.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-solr-solrj-zookeeper-9.10.1.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-jetty-alpn-java-client-10.0.26.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-jetty-client-10.0.26.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-jetty-http-10.0.26.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-jetty-io-10.0.26.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-jetty-util-10.0.26.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-http2-client-10.0.26.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-http2-common-10.0.26.jar"/>
+ <classpathentry kind="lib" path="lib/solr9-bridge-http2-http-client-transport-10.0.26.jar"/>
<classpathentry kind="output" path="gen"/>
</classpath>
diff --git a/build.xml b/build.xml
index 3be9c4a17..cabc0e5aa 100644
--- a/build.xml
+++ b/build.xml
@@ -107,7 +107,7 @@
<mkdir dir="${ivy.compile.stage}" />
<ivy:retrieve conf="compile" type="jar,bundle" pathid="compile.path" pattern="${ivy.compile.stage}/[artifact]-[revision].[ext]" />
<delete failonerror="false">
- <fileset dir="${lib}" includes="javax.servlet-api-*.jar,jetty-*.jar" />
+ <fileset dir="${lib}" includes="javax.servlet-api-*.jar,jetty-*.jar,lucene-*.jar" />
</delete>
<copy todir="${ivy.lib.dir}" overwrite="true">
<fileset dir="${ivy.compile.stage}" includes="**/*" />
@@ -198,10 +198,10 @@
<fileset dir="${lib}" includes="solr9-bridge-*.jar" />
</path>
- <target name="build-solr9-bridge" depends="init,resolve" description="build the private Solr 9.0 Jetty and SLF4J 1.7 island">
+ <target name="build-solr9-bridge" depends="init,resolve" description="build the private Solr 9.10 Jetty 10 island">
<delete dir="${solr9.bridge.tool}" failonerror="false"/>
<delete failonerror="false">
- <fileset dir="${lib}" includes="solr9-bridge-*.jar,solr-core-9.0.0.jar,solr-solrj-9.0.0.jar,solr-scripting-9.0.0.jar,http2-*.jar,slf4j-*-1.7.36.jar" />
+ <fileset dir="${lib}" includes="solr9-bridge-*.jar,solr-*.jar,http2-*.jar,jetty-*-10.0.26.jar,slf4j-*-1.7.36.jar" />
</delete>
<mkdir dir="${solr9.bridge.tool}"/>
<javac srcdir="test/jetty" destdir="${solr9.bridge.tool}"
diff --git a/ivy.xml b/ivy.xml
index 558394ab3..25cd0a882 100644
--- a/ivy.xml
+++ b/ivy.xml
@@ -16,7 +16,9 @@
<dependency org="com.cybozu.labs" name="langdetect" rev="1.1-20120112" conf="compile->master"/>
<dependency org="com.drewnoakes" name="metadata-extractor" rev="2.20.0" />
<dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.22.1"/>
+ <dependency org="com.fasterxml.jackson.dataformat" name="jackson-dataformat-cbor" rev="2.22.1"/>
<dependency org="com.github.ben-manes.caffeine" name="caffeine" rev="3.2.4"/>
+ <dependency org="com.carrotsearch" name="hppc" rev="0.10.0"/>
<dependency org="com.google.guava" name="guava" rev="33.6.0-jre" conf="compile->master"/>
<dependency org="com.google.guava" name="failureaccess" rev="1.0.3" />
<dependency org="com.ibm.icu" name="icu4j" rev="78.3"/>
@@ -53,19 +55,26 @@
<dependency org="org.apache.httpcomponents" name="httpmime" rev="4.5.14"/>
<dependency org="org.apache.james" name="apache-mime4j-core" rev="0.8.14" conf="compile->master"/>
<dependency org="org.apache.james" name="apache-mime4j-dom" rev="0.8.14" conf="compile->master"/>
- <dependency org="org.apache.lucene" name="lucene-analysis-common" rev="9.0.0"/>
- <dependency org="org.apache.lucene" name="lucene-backward-codecs" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-classification" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-codecs" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-grouping" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-highlighter" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-join" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-memory" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-misc" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-queries" rev="9.0.0" />
- <dependency org="org.apache.lucene" name="lucene-queryparser" rev="9.0.0" conf="compile->master"/>
- <dependency org="org.apache.lucene" name="lucene-spatial-extras" rev="9.0.0" conf="compile->master"/>
- <dependency org="org.apache.lucene" name="lucene-suggest" rev="9.0.0"/>
+ <dependency org="jakarta.ws.rs" name="jakarta.ws.rs-api" rev="3.1.0" conf="compile->master"/>
+ <!-- Solr 9.10 initializes its Jersey API resources even in embedded mode. -->
+ <dependency org="org.glassfish.jersey.core" name="jersey-common" rev="3.1.11"/>
+ <dependency org="org.glassfish.jersey.core" name="jersey-server" rev="3.1.11"/>
+ <dependency org="org.glassfish.jersey.inject" name="jersey-hk2" rev="3.1.11"/>
+ <dependency org="org.glassfish.jersey.media" name="jersey-media-json-jackson" rev="3.1.11"/>
+ <dependency org="org.apache.lucene" name="lucene-analysis-common" rev="9.12.3"/>
+ <dependency org="org.apache.lucene" name="lucene-backward-codecs" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-classification" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-codecs" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-expressions" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-grouping" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-highlighter" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-join" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-memory" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-misc" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-queries" rev="9.12.3" />
+ <dependency org="org.apache.lucene" name="lucene-queryparser" rev="9.12.3" conf="compile->master"/>
+ <dependency org="org.apache.lucene" name="lucene-spatial-extras" rev="9.12.3" conf="compile->master"/>
+ <dependency org="org.apache.lucene" name="lucene-suggest" rev="9.12.3"/>
<dependency org="org.apache.pdfbox" name="pdfbox" rev="3.0.7" />
<dependency org="org.apache.poi" name="poi" rev="5.5.1" />
@@ -73,22 +82,25 @@
<!--
Solr is embedded and its Jetty-backed runner and HTTP/2 clients are not used directly by YaCy.
- Keep Solr's Jetty 9 runtime family out of the embedded-server classpath so Jetty can
+ Keep Solr's Jetty 10 runtime family out of the embedded-server classpath so Jetty can
be migrated independently. The master configuration already omits transitives; the
explicit excludes preserve that boundary if the configuration mapping changes later.
-->
- <dependency org="org.apache.solr" name="solr-core" rev="9.0.0" conf="solr9-bridge->master">
+ <dependency org="org.apache.solr" name="solr-core" rev="9.10.1" conf="solr9-bridge->master">
<exclude org="org.eclipse.jetty" module="*"/>
<exclude org="org.eclipse.jetty.http2" module="*"/>
</dependency>
- <dependency org="org.apache.solr" name="solr-scripting" rev="9.0.0" conf="solr9-bridge->master">
+ <dependency org="org.apache.solr" name="solr-api" rev="9.10.1" conf="solr9-bridge->master"/>
+ <dependency org="org.apache.solr" name="solr-scripting" rev="9.10.1" conf="solr9-bridge->master">
<exclude org="org.eclipse.jetty" module="*"/>
<exclude org="org.eclipse.jetty.http2" module="*"/>
</dependency>
- <dependency org="org.apache.solr" name="solr-solrj" rev="9.0.0" conf="solr9-bridge->master">
+ <dependency org="org.apache.solr" name="solr-solrj" rev="9.10.1" conf="solr9-bridge->master">
<exclude org="org.eclipse.jetty" module="*"/>
<exclude org="org.eclipse.jetty.http2" module="*"/>
</dependency>
+ <dependency org="org.apache.solr" name="solr-solrj-streaming" rev="9.10.1" conf="solr9-bridge->master"/>
+ <dependency org="org.apache.solr" name="solr-solrj-zookeeper" rev="9.10.1" conf="solr9-bridge->master"/>
<dependency org="org.apache.zookeeper" name="zookeeper" rev="3.9.5" conf="compile->master" />
<dependency org="org.bitlet" name="weupnp" rev="0.1.4" />
<dependency org="org.bouncycastle" name="bcmail-jdk18on" rev="1.84" />
@@ -96,7 +108,7 @@
<!-- Jetty 12 Core and EE8 form the public embedded-server runtime. -->
<dependency org="org.eclipse.jetty" name="jetty-http" rev="12.0.37" conf="compile->default"/>
<dependency org="org.eclipse.jetty" name="jetty-io" rev="12.0.37" conf="compile->default"/>
- <dependency org="org.eclipse.jetty" name="jetty-client" rev="9.4.58.v20250814" conf="solr9-bridge->master"/>
+ <dependency org="org.eclipse.jetty" name="jetty-client" rev="10.0.26" conf="solr9-bridge->master"/>
<dependency org="org.eclipse.jetty" name="jetty-proxy" rev="12.0.37" conf="compile->default"/>
<dependency org="org.eclipse.jetty" name="jetty-security" rev="12.0.37" conf="compile->default"/>
<dependency org="org.eclipse.jetty" name="jetty-server" rev="12.0.37" conf="compile->default"/>
@@ -116,19 +128,20 @@
<dependency org="org.eclipse.jetty.ee8" name="jetty-ee8-webapp" rev="12.0.37" conf="compile->default">
<exclude org="org.eclipse.jetty.toolchain" module="jetty-servlet-api"/>
</dependency>
- <!-- Private Solr bridge inputs remain on Jetty 9. -->
- <dependency org="org.eclipse.jetty" name="jetty-http" rev="9.4.58.v20250814" conf="solr9-bridge->master"/>
- <dependency org="org.eclipse.jetty" name="jetty-io" rev="9.4.58.v20250814" conf="solr9-bridge->master"/>
- <dependency org="org.eclipse.jetty" name="jetty-util" rev="9.4.58.v20250814" conf="solr9-bridge->master" />
+ <!-- Private Solr bridge inputs remain on Jetty 10. -->
+ <dependency org="org.eclipse.jetty" name="jetty-alpn-java-client" rev="10.0.26" conf="solr9-bridge->master"/>
+ <dependency org="org.eclipse.jetty" name="jetty-http" rev="10.0.26" conf="solr9-bridge->master"/>
+ <dependency org="org.eclipse.jetty" name="jetty-io" rev="10.0.26" conf="solr9-bridge->master"/>
+ <dependency org="org.eclipse.jetty" name="jetty-util" rev="10.0.26" conf="solr9-bridge->master" />
<!--
- Temporary Solr 9.0 runtime bridge: CoreContainer eagerly constructs an
+ Temporary Solr 9.10 runtime bridge: CoreContainer eagerly constructs an
Http2SolrClient for its shard/update handlers even in standalone mode.
- YaCy source must not use these clients. Remove this Jetty 9 island only
- after the relocated Solr 9.0 bridge replaces these unrelocated jars.
+ YaCy source must not use these clients. Remove this Jetty 10 island only
+ after the relocated Solr 9.10 bridge replaces these unrelocated jars.
-->
- <dependency org="org.eclipse.jetty.http2" name="http2-client" rev="9.4.58.v20250814" conf="solr9-bridge->master"/>
- <dependency org="org.eclipse.jetty.http2" name="http2-common" rev="9.4.58.v20250814" conf="solr9-bridge->master"/>
- <dependency org="org.eclipse.jetty.http2" name="http2-http-client-transport" rev="9.4.58.v20250814" conf="solr9-bridge->master"/>
+ <dependency org="org.eclipse.jetty.http2" name="http2-client" rev="10.0.26" conf="solr9-bridge->master"/>
+ <dependency org="org.eclipse.jetty.http2" name="http2-common" rev="10.0.26" conf="solr9-bridge->master"/>
+ <dependency org="org.eclipse.jetty.http2" name="http2-http-client-transport" rev="10.0.26" conf="solr9-bridge->master"/>
<dependency org="org.jsoup" name="jsoup" rev="1.22.2" />
<dependency org="org.jwat" name="jwat-warc" rev="1.2.1">
<exclude module="bcprov-jdk15to18" />
@@ -136,24 +149,19 @@
<dependency org="org.locationtech.spatial4j" name="spatial4j" rev="0.8"/>
<dependency org="org.rrd4j" name="rrd4j" rev="3.10"/>
<!--
- YaCy and the public Jetty runtime use SLF4J 2 with JUL as their single
- provider. Solr 9.0.0 directly references the removed SLF4J 1.7
- StaticLoggerBinder API, so its API and JUL binding are relocated into
- the private Solr bridge instead of being exposed on this classpath.
+ YaCy, Jetty and Solr 9.10 use SLF4J 2 with JUL as their single provider.
-->
<dependency org="org.slf4j" name="slf4j-api" rev="2.0.17" conf="compile->master" force="true"/>
<dependency org="org.slf4j" name="jcl-over-slf4j" rev="2.0.17" conf="compile->master"/>
<dependency org="org.slf4j" name="log4j-over-slf4j" rev="2.0.17" conf="compile->master"/>
<dependency org="org.slf4j" name="slf4j-jdk14" rev="2.0.17" conf="compile->master"/>
- <dependency org="org.slf4j" name="slf4j-api" rev="1.7.36" conf="solr9-bridge->master"/>
- <dependency org="org.slf4j" name="slf4j-jdk14" rev="1.7.36" conf="solr9-bridge->master"/>
<!-- This does not match langdetect.jar from pre-ivy -->
<dependency org="org.tukaani" name="xz" rev="1.12"/>
<dependency org="oro" name="oro" rev="2.0.8"/>
<dependency org="junit" name="junit" rev="4.13.2" conf="test->default"/>
<dependency org="org.hamcrest" name="hamcrest-core" rev="3.0" conf="test->default"/>
- <!-- Build-time bytecode relocation for the private Solr 9.0 Jetty client island. -->
+ <!-- Build-time bytecode relocation for the private Solr 9.10 Jetty client island. -->
<dependency org="org.ow2.asm" name="asm" rev="9.9" conf="solr9-bridge-tool->master"/>
<dependency org="org.ow2.asm" name="asm-commons" rev="9.9" conf="solr9-bridge-tool->master"/>
<dependency org="com.github.luben" name="zstd-jni" rev="1.5.7-11"></dependency>
diff --git a/source/net/yacy/cora/federate/solr/responsewriter/GrepHTMLResponseWriter.java b/source/net/yacy/cora/federate/solr/responsewriter/GrepHTMLResponseWriter.java
index d662c119c..73e280542 100644
--- a/source/net/yacy/cora/federate/solr/responsewriter/GrepHTMLResponseWriter.java
+++ b/source/net/yacy/cora/federate/solr/responsewriter/GrepHTMLResponseWriter.java
@@ -244,8 +244,7 @@ public class GrepHTMLResponseWriter implements QueryResponseWriter, SolrjRespons
private void writeApiLink(final Writer writer, final SolrParams solrParams) throws IOException {
final NamedList<Object> paramsList = solrParams.toNamedList();
paramsList.remove("wt");
- @SuppressWarnings("deprecation")
- String xmlquery = dqp.matcher("select?" + SolrParams.toSolrParams(paramsList).toString()).replaceAll("%22");
+ String xmlquery = dqp.matcher("select?" + paramsList.toSolrParams().toString()).replaceAll("%22");
writer.write("<div id=\"api\"><a href=\"" + xmlquery + "\"><img src=\"../env/grafics/api.png\" width=\"60\" height=\"40\" alt=\"API\" /></a>\n");
writer.write("<span>This search result can also be retrieved as XML. Click the API icon to see an example call to the search rss API.</span></div>\n");
diff --git a/source/net/yacy/cora/federate/solr/responsewriter/HTMLResponseWriter.java b/source/net/yacy/cora/federate/solr/responsewriter/HTMLResponseWriter.java
index 8e03fb832..ea16a2c1c 100644
--- a/source/net/yacy/cora/federate/solr/responsewriter/HTMLResponseWriter.java
+++ b/source/net/yacy/cora/federate/solr/responsewriter/HTMLResponseWriter.java
@@ -125,8 +125,7 @@ public class HTMLResponseWriter implements QueryResponseWriter, SolrjResponseWri
final NamedList<Object> paramsList = solrParams.toNamedList();
paramsList.remove("wt");
- @SuppressWarnings("deprecation")
- final String xmlquery = dqp.matcher("select?" + SolrParams.toSolrParams(paramsList).toString() + "&core=" + coreName).replaceAll("%22");
+ final String xmlquery = dqp.matcher("select?" + paramsList.toSolrParams().toString() + "&core=" + coreName).replaceAll("%22");
writer.write("<div id=\"api\"><a href=\"" + xmlquery + "\"><img src=\"../env/grafics/api.png\" width=\"60\" height=\"40\" alt=\"API\" /></a>\n");
writer.write("<span>This search result can also be retrieved as XML. Click the API icon to see this page as XML.</span></div>\n");
diff --git a/test/jetty-solr-dependency-guard.sh b/test/jetty-solr-dependency-guard.sh
index 9347c4fd7..daa1cbabe 100755
--- a/test/jetty-solr-dependency-guard.sh
+++ b/test/jetty-solr-dependency-guard.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
-# Guard the production Jetty 12 classpath while Solr 9's Jetty 9 client remains
+# Guard the production Jetty 12 classpath while Solr 9's Jetty 10 client remains
# relocated into a private package and out of YaCy source code.
set -eu
@@ -42,6 +42,19 @@ grep -E 'name="jetty-client".*conf="solr9-bridge->master"' ivy.xml >/dev/null 2>
fail "jetty-client must only be a direct input of the Solr 9 bridge"
server_jetty_version=12.0.37
+bridge_jetty_version=10.0.26
+solr_version=9.10.1
+lucene_version=9.12.3
+
+for artifact in core api scripting solrj solrj-streaming solrj-zookeeper; do
+ grep -E "org=\"org.apache.solr\" name=\"solr-$artifact\" rev=\"$solr_version\" conf=\"solr9-bridge->master\"" ivy.xml >/dev/null 2>&1 || \
+ fail "solr-$artifact $solr_version must be an explicit Solr bridge input"
+done
+
+for artifact in analysis-common backward-codecs classification codecs expressions grouping highlighter join memory misc queries queryparser spatial-extras suggest; do
+ grep -E "org=\"org.apache.lucene\" name=\"lucene-$artifact\" rev=\"$lucene_version\"" ivy.xml >/dev/null 2>&1 || \
+ fail "lucene-$artifact must be on version $lucene_version"
+done
for artifact in jetty-http jetty-io jetty-proxy jetty-security jetty-server jetty-util; do
grep -E "org=\"org.eclipse.jetty\" name=\"$artifact\" rev=\"$server_jetty_version\" conf=\"compile->default\"" ivy.xml >/dev/null 2>&1 || \
@@ -57,13 +70,13 @@ if grep -E 'org="org.eclipse.jetty.compression"|name="jetty-compression-' ivy.xm
fi
if grep -E 'conf="jetty12-migration|rev="9\.4\.58\.v20250814" conf="compile' ivy.xml >/dev/null 2>&1; then
- fail "ivy.xml still contains an isolated migration configuration or public Jetty 9 dependency"
+ fail "ivy.xml still contains an isolated migration configuration or obsolete public Jetty dependency"
fi
if grep -R -n -E --include='*.java' \
'(Jetty9HttpServerImpl|AbstractRemoteHandler|YaCyLoginService|YaCySecurityHandler|YaCyDigestCredential|YacyDomainHandler|InetPathAccessHandler)' \
source >/dev/null 2>&1; then
- fail "obsolete Jetty 9 adapter references remain in production source"
+ fail "obsolete pre-Jetty-12 adapter references remain in production source"
fi
for artifact in http2-client http2-common http2-http-client-transport; do
@@ -71,10 +84,9 @@ for artifact in http2-client http2-common http2-http-client-transport; do
fail "$artifact must only be an input of the Solr 9 bridge"
done
-for artifact in slf4j-api slf4j-jdk14; do
- grep -E "name=\"$artifact\" rev=\"1.7.36\" conf=\"solr9-bridge->master\"" ivy.xml >/dev/null 2>&1 || \
- fail "$artifact 1.7.36 must only be an input of the Solr 9 bridge"
-done
+if grep -E 'name="slf4j-(api|jdk14)" rev="1\.7\.36"' ivy.xml >/dev/null 2>&1; then
+ fail "Solr 9.10 must use YaCy's shared SLF4J 2 runtime"
+fi
grep -E 'org="org.eclipse.jetty.toolchain" name="jetty-servlet-api" rev="4.0.9"' ivy.xml >/dev/null 2>&1 || \
fail "Jetty's EE8 Servlet 4 API must be an explicit dependency"
@@ -100,6 +112,18 @@ if [ -d lib ]; then
[ "$public_jetty_count" -gt 0 ] || \
fail "no production Jetty $server_jetty_version artifacts found"
+ public_lucene_count=0
+ for artifact in lib/lucene-*.jar; do
+ [ -e "$artifact" ] || continue
+ public_lucene_count=$((public_lucene_count + 1))
+ case $(basename "$artifact") in
+ *-"$lucene_version".jar) ;;
+ *) fail "Lucene artifact is not on version $lucene_version: $artifact" ;;
+ esac
+ done
+ [ "$public_lucene_count" -gt 0 ] || \
+ fail "no Lucene $lucene_version artifacts found"
+
servlet_api_count=0
for artifact in lib/*servlet-api-*.jar; do
[ -e "$artifact" ] || continue
@@ -121,6 +145,7 @@ if [ -d lib ]; then
'jetty-ee9-*.jar' \
'jetty-ee10-*.jar' \
'jetty-ee11-*.jar' \
+ 'solr-api-*.jar' \
'solr-core-*.jar' \
'solr-solrj-*.jar' \
'solr-scripting-*.jar' \
@@ -133,20 +158,24 @@ if [ -d lib ]; then
done
for artifact in \
- solr-core-9.0.0 \
- solr-solrj-9.0.0 \
- solr-scripting-9.0.0 \
- jetty-client-9.4.58.v20250814 \
- jetty-http-9.4.58.v20250814 \
- jetty-io-9.4.58.v20250814 \
- jetty-util-9.4.58.v20250814 \
- http2-client-9.4.58.v20250814 \
- http2-common-9.4.58.v20250814 \
- http2-http-client-transport-9.4.58.v20250814 \
- slf4j-api-1.7.36 \
- slf4j-jdk14-1.7.36; do
+ solr-api-$solr_version \
+ solr-core-$solr_version \
+ solr-scripting-$solr_version \
+ solr-solrj-$solr_version \
+ solr-solrj-streaming-$solr_version \
+ solr-solrj-zookeeper-$solr_version \
+ jetty-alpn-java-client-$bridge_jetty_version \
+ jetty-client-$bridge_jetty_version \
+ jetty-http-$bridge_jetty_version \
+ jetty-io-$bridge_jetty_version \
+ jetty-util-$bridge_jetty_version \
+ http2-client-$bridge_jetty_version \
+ http2-common-$bridge_jetty_version \
+ http2-http-client-transport-$bridge_jetty_version; do
jar="lib/solr9-bridge-$artifact.jar"
[ -f "$jar" ] || fail "missing generated bridge artifact: $jar"
+ grep -F "<classpathentry kind=\"lib\" path=\"$jar\"/>" .classpath >/dev/null 2>&1 || \
+ fail "Eclipse classpath is missing generated bridge artifact: $jar"
if jar tf "$jar" | grep '^org/eclipse/jetty/' >/dev/null 2>&1; then
fail "unrelocated Jetty class in $jar"
fi
@@ -154,12 +183,9 @@ if [ -d lib ]; then
fail "unrelocated Jetty reference in $jar"
fi
if jar tf "$jar" | grep '^org/slf4j/' >/dev/null 2>&1; then
- fail "unrelocated SLF4J class in $jar"
- fi
- if zipgrep -a -E 'org(/|\.)slf4j' "$jar" >/dev/null 2>&1; then
- fail "unrelocated SLF4J reference in $jar"
+ fail "bridge artifact must not bundle SLF4J classes: $jar"
fi
done
fi
-echo "PASS: production Jetty 12 and the relocated Solr 9 Jetty 9 dependencies are separated."
+echo "PASS: production Jetty 12 and the relocated Solr 9 Jetty 10 dependencies are separated."
diff --git a/test/jetty/RelocateJettyPackages.java b/test/jetty/RelocateJettyPackages.java
index 01939f5d2..b85e24273 100644
--- a/test/jetty/RelocateJettyPackages.java
+++ b/test/jetty/RelocateJettyPackages.java
@@ -2,9 +2,8 @@
* Build-time bytecode relocator for the Jetty 12 migration.
*
* This is deliberately a small build tool, not YaCy runtime code. It keeps
- * Solr's public packages unchanged while moving its private Jetty 9 linkage
- * below net.yacy.solr9.jetty and its SLF4J 1.7 linkage below
- * net.yacy.solr9.slf4j.
+ * Solr's public packages unchanged while moving its private Jetty 10 linkage
+ * below net.yacy.solr9.jetty.
*/
package net.yacy.test.jetty;
@@ -29,9 +28,7 @@ public final class RelocateJettyPackages {
private static final Relocation[] RELOCATIONS = {
new Relocation("org/eclipse/jetty", "net/yacy/solr9/jetty",
- "org.eclipse.jetty", "net.yacy.solr9.jetty"),
- new Relocation("org/slf4j", "net/yacy/solr9/slf4j",
- "org.slf4j", "net.yacy.solr9.slf4j")
+ "org.eclipse.jetty", "net.yacy.solr9.jetty")
};
private RelocateJettyPackages() {
diff --git a/test/solr9-jetty-bridge-spike.sh b/test/solr9-jetty-bridge-spike.sh
index 00eb0ff5c..510d9fc84 100755
--- a/test/solr9-jetty-bridge-spike.sh
+++ b/test/solr9-jetty-bridge-spike.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
-# Exercise the generated Solr 9.0 bridge. Run `ant compile` first. An optional
+# Exercise the generated Solr 9.10 bridge. Run `ant compile` first. An optional
# JETTY12_CLASSPATH verifies coexistence with already resolved Jetty 12 jars.
set -eu
@@ -36,4 +36,4 @@ javac --release 17 -cp "$classpath" -d "$work" \
java -cp "$work:$classpath" org.junit.runner.JUnitCore \
net.yacy.cora.federate.solr.connector.EmbeddedSolrConnectorTest
-echo "PASS: integrated Solr 9.0 bridge starts, updates, queries and closes."
+echo "PASS: integrated Solr 9.10 bridge starts, updates, queries and closes."