diff options
| -rw-r--r-- | .classpath | 26 | ||||
| -rw-r--r-- | build.xml | 6 | ||||
| -rw-r--r-- | ivy.xml | 78 | ||||
| -rw-r--r-- | source/net/yacy/cora/federate/solr/responsewriter/GrepHTMLResponseWriter.java | 3 | ||||
| -rw-r--r-- | source/net/yacy/cora/federate/solr/responsewriter/HTMLResponseWriter.java | 3 | ||||
| -rwxr-xr-x | test/jetty-solr-dependency-guard.sh | 74 | ||||
| -rw-r--r-- | test/jetty/RelocateJettyPackages.java | 9 | ||||
| -rwxr-xr-x | test/solr9-jetty-bridge-spike.sh | 4 |
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> @@ -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}" @@ -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." |
