From 300fde890974220aa6532087bb195884cee29ae7 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Sun, 20 Mar 2022 23:03:40 +0100 Subject: Remove jersey-media-* and related bundles. --- cloud-tenant-base-dependencies-enforcer/pom.xml | 5 --- container-dependencies-enforcer/pom.xml | 4 --- container-dependency-versions/pom.xml | 4 +-- container-disc/pom.xml | 4 --- dist/vespa.spec | 1 - vespa_jersey2/pom.xml | 42 +++++++++++-------------- 6 files changed, 21 insertions(+), 39 deletions(-) diff --git a/cloud-tenant-base-dependencies-enforcer/pom.xml b/cloud-tenant-base-dependencies-enforcer/pom.xml index bb54509852a..77a3a9958ec 100644 --- a/cloud-tenant-base-dependencies-enforcer/pom.xml +++ b/cloud-tenant-base-dependencies-enforcer/pom.xml @@ -50,7 +50,6 @@ 1.1.0.Final 2.0.1 2.25 - 1.9.6 @@ -123,13 +122,9 @@ org.glassfish.jersey.core:jersey-client:[${jersey2.version}]:jar:provided org.glassfish.jersey.core:jersey-common:[${jersey2.version}]:jar:provided org.glassfish.jersey.core:jersey-server:[${jersey2.version}]:jar:provided - org.glassfish.jersey.ext:jersey-entity-filtering:[${jersey2.version}]:jar:provided org.glassfish.jersey.ext:jersey-proxy-client:[${jersey2.version}]:jar:provided - org.glassfish.jersey.media:jersey-media-json-jackson:[${jersey2.version}]:jar:provided - org.glassfish.jersey.media:jersey-media-multipart:[${jersey2.version}]:jar:provided org.javassist:javassist:[${javassist.version}]:jar:provided org.json:json:[${org.json.version}]:jar:provided - org.jvnet.mimepull:mimepull:[${mimepull.version}]:jar:provided org.slf4j:jcl-over-slf4j:[${slf4j.version}]:jar:provided org.slf4j:log4j-over-slf4j:[${slf4j.version}]:jar:provided org.slf4j:slf4j-api:[${slf4j.version}]:jar:provided diff --git a/container-dependencies-enforcer/pom.xml b/container-dependencies-enforcer/pom.xml index 3ce00e5d08a..7465d486013 100644 --- a/container-dependencies-enforcer/pom.xml +++ b/container-dependencies-enforcer/pom.xml @@ -106,13 +106,9 @@ org.glassfish.jersey.core:jersey-client:[${jersey2.version}]:jar:provided org.glassfish.jersey.core:jersey-common:[${jersey2.version}]:jar:provided org.glassfish.jersey.core:jersey-server:[${jersey2.version}]:jar:provided - org.glassfish.jersey.ext:jersey-entity-filtering:[${jersey2.version}]:jar:provided org.glassfish.jersey.ext:jersey-proxy-client:[${jersey2.version}]:jar:provided - org.glassfish.jersey.media:jersey-media-json-jackson:[${jersey2.version}]:jar:provided - org.glassfish.jersey.media:jersey-media-multipart:[${jersey2.version}]:jar:provided org.javassist:javassist:[${javassist.version}]:jar:provided org.json:json:[${org.json.version}]:jar:provided - org.jvnet.mimepull:mimepull:[${mimepull.version}]:jar:provided org.slf4j:jcl-over-slf4j:[${slf4j.version}]:jar:provided org.slf4j:log4j-over-slf4j:[${slf4j.version}]:jar:provided org.slf4j:slf4j-api:[${slf4j.version}]:jar:provided diff --git a/container-dependency-versions/pom.xml b/container-dependency-versions/pom.xml index 6e06791dc1c..451068763be 100644 --- a/container-dependency-versions/pom.xml +++ b/container-dependency-versions/pom.xml @@ -298,9 +298,10 @@ ${org.json.version} + org.jvnet.mimepull mimepull - ${mimepull.version} + 1.9.6 org.slf4j @@ -431,7 +432,6 @@ 1.1.0.Final 2.0.1 2.25 - 1.9.6 2.8.1 diff --git a/container-disc/pom.xml b/container-disc/pom.xml index 1c3115900de..732f873d9a0 100644 --- a/container-disc/pom.xml +++ b/container-disc/pom.xml @@ -252,11 +252,7 @@ javax.ws.rs-api-${javax.ws.rs-api.version}.jar, jersey-client-${jersey2.version}.jar, jersey-common-${jersey2.version}.jar, - jersey-entity-filtering-${jersey2.version}.jar, jersey-guava-${jersey2.version}.jar, - jersey-media-json-jackson-${jersey2.version}.jar, - jersey-media-multipart-${jersey2.version}.jar, - mimepull-${mimepull.version}.jar, jersey-server-${jersey2.version}.jar, jersey-proxy-client-${jersey2.version}.jar, osgi-resource-locator-1.0.1.jar, diff --git a/dist/vespa.spec b/dist/vespa.spec index e4eb2ab7643..e13f06ed0f5 100644 --- a/dist/vespa.spec +++ b/dist/vespa.spec @@ -899,7 +899,6 @@ fi %{_prefix}/lib/jars/alpn-*.jar %{_prefix}/lib/jars/http2-*.jar %{_prefix}/lib/jars/jetty-*.jar -%{_prefix}/lib/jars/mimepull-*.jar %{_prefix}/lib/jars/model-evaluation-jar-with-dependencies.jar %{_prefix}/lib/jars/model-integration-jar-with-dependencies.jar %{_prefix}/lib/jars/org.apache.aries.spifly.dynamic.bundle-*.jar diff --git a/vespa_jersey2/pom.xml b/vespa_jersey2/pom.xml index c27555ab3d6..f8904378901 100644 --- a/vespa_jersey2/pom.xml +++ b/vespa_jersey2/pom.xml @@ -19,26 +19,6 @@ javax.ws.rs javax.ws.rs-api - - org.glassfish.jersey.media - jersey-media-json-jackson - - - - jakarta.activation - jakarta.activation-api - - - - jakarta.xml.bind - jakarta.xml.bind-api - - - - - org.glassfish.jersey.media - jersey-media-multipart - org.glassfish.jersey.ext jersey-proxy-client @@ -57,9 +37,7 @@ - + org.glassfish.jersey.core jersey-server @@ -76,6 +54,24 @@ javax.validation validation-api + + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + + + + jakarta.activation + jakarta.activation-api + + + + jakarta.xml.bind + jakarta.xml.bind-api + + + -- cgit v1.2.3 From b347245d3274ca3f5d712cd0ceb70f147ca2a963 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Sat, 26 Mar 2022 01:06:10 +0100 Subject: Ensure that jackson-core and jackson-annotations are not embedded. - Both are provided by Jdisc, and will remain so for Vespa 8 --- configserver/pom.xml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/configserver/pom.xml b/configserver/pom.xml index 8e604b930f6..2ca2cbb4741 100644 --- a/configserver/pom.xml +++ b/configserver/pom.xml @@ -193,6 +193,18 @@ ${project.version} provided + + + com.fasterxml.jackson.core + jackson-annotations + provided + + + + com.fasterxml.jackson.core + jackson-core + provided + com.fasterxml.jackson.core jackson-databind @@ -245,6 +257,17 @@ org.glassfish.jersey.media jersey-media-json-jackson + + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-core + + -- cgit v1.2.3 From 22cb37a5950ba8f7e90351ba74d2a81e6a2d5cb1 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Sat, 26 Mar 2022 01:34:47 +0100 Subject: Add explicit dep to jackson-jaxrs-json-provider, used here. --- configserver/pom.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/configserver/pom.xml b/configserver/pom.xml index 2ca2cbb4741..c4e643a90cd 100644 --- a/configserver/pom.xml +++ b/configserver/pom.xml @@ -210,6 +210,22 @@ jackson-databind provided + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + + + + jakarta.activation + jakarta.activation-api + + + + jakarta.xml.bind + jakarta.xml.bind-api + + + org.apache.commons commons-compress -- cgit v1.2.3 From c71a7ddd941328880964f63cb810343e73b92641 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Wed, 23 Mar 2022 19:27:08 +0100 Subject: Register JacksonJsonProvider explicitly to serviceview handler. When using the embedded jersey client and jersey-media-json-jackson, the client does not find the appropriate MessageBodyReader. --- .../src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java b/configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java index d3c19bb0ba5..30975be61e2 100644 --- a/configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.serviceview; +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.container.jdisc.ThreadedHttpRequestHandler; @@ -41,6 +42,7 @@ public class StateRequestHandler extends RestApiRequestHandler ctx.getHeaders().put(HttpHeaders.USER_AGENT, List.of(USER_AGENT))) .build(); -- cgit v1.2.3 From 5e92c61534cbcbc6405f6dd8aa963a627ed523bd Mon Sep 17 00:00:00 2001 From: gjoranv Date: Mon, 28 Mar 2022 01:33:06 +0200 Subject: Register JacksonJsonProvider explicitly. - When using jersey embedded in configserver, the client could not find the appropriate MessageBodyReader. --- jaxrs_client_utils/pom.xml | 5 +++++ .../com/yahoo/vespa/jaxrs/client/VespaJerseyJaxRsClientFactory.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/jaxrs_client_utils/pom.xml b/jaxrs_client_utils/pom.xml index cd83e4c8713..13f2237e088 100644 --- a/jaxrs_client_utils/pom.xml +++ b/jaxrs_client_utils/pom.xml @@ -17,6 +17,11 @@ ${project.artifactId} + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + provided + com.yahoo.vespa vespajlib diff --git a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/VespaJerseyJaxRsClientFactory.java b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/VespaJerseyJaxRsClientFactory.java index 36b5dd52adc..5ea390dc290 100644 --- a/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/VespaJerseyJaxRsClientFactory.java +++ b/jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/VespaJerseyJaxRsClientFactory.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.jaxrs.client; import ai.vespa.util.http.VespaClientBuilderFactory; +import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.yahoo.vespa.applicationmodel.HostName; import org.glassfish.jersey.client.ClientProperties; import org.glassfish.jersey.client.HttpUrlConnectorProvider; @@ -33,6 +34,7 @@ public class VespaJerseyJaxRsClientFactory implements JaxRsClientFactory, AutoCl .property(ClientProperties.SUPPRESS_HTTP_COMPLIANCE_VALIDATION, true) // Allow empty PUT .property(HttpUrlConnectorProvider.SET_METHOD_WORKAROUND, true) // Allow e.g. PATCH method. .property(ClientProperties.FOLLOW_REDIRECTS, true) + .register(JacksonJsonProvider.class) .register((ClientRequestFilter) context -> context.getHeaders().put(HttpHeaders.USER_AGENT, List.of(userAgent))) .build(); } -- cgit v1.2.3 From ca814dad4b4435a636fad5fbd6aef73bb1ed1c22 Mon Sep 17 00:00:00 2001 From: gjoranv Date: Mon, 28 Mar 2022 01:26:40 +0200 Subject: Use jersey-proxy-client provided by the configserver bundle. - As a result, the Import-Package for org.glassfish.jersey.internal.util is replaced by importing org.glassfish.jersey.client.proxy, already exported by configserver. --- orchestrator/pom.xml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/orchestrator/pom.xml b/orchestrator/pom.xml index d3af2d8f1d9..5dd35467739 100644 --- a/orchestrator/pom.xml +++ b/orchestrator/pom.xml @@ -95,16 +95,7 @@ org.glassfish.jersey.ext jersey-proxy-client - - - org.glassfish.jersey.core - jersey-common - - - javax.ws.rs - javax.ws.rs-api - - + provided com.fasterxml.jackson.core -- cgit v1.2.3 From 6b142d105fff21bdd9b5f5a116d9a7f9d9aa697f Mon Sep 17 00:00:00 2001 From: gjoranv Date: Mon, 28 Mar 2022 02:15:35 +0200 Subject: Add explicit dep to jackson-jaxrs-json-provider - This bundle will be removed from vespa_jersey2 soon --- orchestrator/pom.xml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/orchestrator/pom.xml b/orchestrator/pom.xml index 5dd35467739..839342574d5 100644 --- a/orchestrator/pom.xml +++ b/orchestrator/pom.xml @@ -16,6 +16,24 @@ container-plugin ${project.artifactId} + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + provided + + + + jakarta.activation + jakarta.activation-api + + + + jakarta.xml.bind + jakarta.xml.bind-api + + + com.yahoo.vespa container-dev @@ -93,6 +111,7 @@ provided + org.glassfish.jersey.ext jersey-proxy-client provided -- cgit v1.2.3 From 81758a3041005db5be1eaebe9ed171177b08f39c Mon Sep 17 00:00:00 2001 From: gjoranv Date: Mon, 28 Mar 2022 23:05:45 +0200 Subject: Export and import com.fasterxml.jackson.jaxrs.json to ... 1. ensure using the same classloader as the dependent bundles (orchestrator, core-dump-reporter, provision-controller and controller-clients) 2. allow removing the jackson-jaxrs-json-provider bundle from jdisc --- configserver/pom.xml | 5 +++++ .../src/main/java/com/fasterxml/jackson/jaxrs/json/package-info.java | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 configserver/src/main/java/com/fasterxml/jackson/jaxrs/json/package-info.java diff --git a/configserver/pom.xml b/configserver/pom.xml index c4e643a90cd..110099421d1 100644 --- a/configserver/pom.xml +++ b/configserver/pom.xml @@ -299,6 +299,11 @@ com.yahoo.vespa bundle-plugin true + + + + com.fasterxml.jackson.jaxrs.json;version="[2.12.6,3)" + org.apache.maven.plugins diff --git a/configserver/src/main/java/com/fasterxml/jackson/jaxrs/json/package-info.java b/configserver/src/main/java/com/fasterxml/jackson/jaxrs/json/package-info.java new file mode 100644 index 00000000000..4ea1e169f0f --- /dev/null +++ b/configserver/src/main/java/com/fasterxml/jackson/jaxrs/json/package-info.java @@ -0,0 +1,5 @@ +@ExportPackage(version = @Version(major = 2, minor = 12, micro = 6)) +package com.fasterxml.jackson.jaxrs.json; + +import com.yahoo.osgi.annotation.ExportPackage; +import com.yahoo.osgi.annotation.Version; -- cgit v1.2.3