aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2022-03-29 13:30:58 +0200
committerGitHub <noreply@github.com>2022-03-29 13:30:58 +0200
commit84ba77ae7d59a04d6aa33cd1270af35cd1398e2d (patch)
tree1990ea50eab6f3f6dd28d0b8d382b3db977de976
parent322e58f2f45288bb9522aff6ef434a24fee255f2 (diff)
parent81758a3041005db5be1eaebe9ed171177b08f39c (diff)
Merge pull request #21859 from vespa-engine/remove-jersey-media-bundles_3
Remove jersey media bundles 3 [run-systemtest]
-rw-r--r--cloud-tenant-base-dependencies-enforcer/pom.xml5
-rw-r--r--configserver/pom.xml44
-rw-r--r--configserver/src/main/java/com/fasterxml/jackson/jaxrs/json/package-info.java5
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/serviceview/StateRequestHandler.java2
-rw-r--r--container-dependencies-enforcer/pom.xml4
-rw-r--r--container-dependency-versions/pom.xml4
-rw-r--r--container-disc/pom.xml4
-rw-r--r--dist/vespa.spec1
-rw-r--r--jaxrs_client_utils/pom.xml5
-rw-r--r--jaxrs_client_utils/src/main/java/com/yahoo/vespa/jaxrs/client/VespaJerseyJaxRsClientFactory.java2
-rw-r--r--orchestrator/pom.xml30
-rw-r--r--vespa_jersey2/pom.xml42
12 files changed, 99 insertions, 49 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 @@
<javax.validation-api.version>1.1.0.Final</javax.validation-api.version>
<javax.ws.rs-api.version>2.0.1</javax.ws.rs-api.version>
<jersey2.version>2.25</jersey2.version>
- <mimepull.version>1.9.6</mimepull.version>
</properties>
<build>
@@ -123,13 +122,9 @@
<include>org.glassfish.jersey.core:jersey-client:[${jersey2.version}]:jar:provided</include>
<include>org.glassfish.jersey.core:jersey-common:[${jersey2.version}]:jar:provided</include>
<include>org.glassfish.jersey.core:jersey-server:[${jersey2.version}]:jar:provided</include>
- <include>org.glassfish.jersey.ext:jersey-entity-filtering:[${jersey2.version}]:jar:provided</include>
<include>org.glassfish.jersey.ext:jersey-proxy-client:[${jersey2.version}]:jar:provided</include>
- <include>org.glassfish.jersey.media:jersey-media-json-jackson:[${jersey2.version}]:jar:provided</include>
- <include>org.glassfish.jersey.media:jersey-media-multipart:[${jersey2.version}]:jar:provided</include>
<include>org.javassist:javassist:[${javassist.version}]:jar:provided</include>
<include>org.json:json:[${org.json.version}]:jar:provided</include>
- <include>org.jvnet.mimepull:mimepull:[${mimepull.version}]:jar:provided</include>
<include>org.slf4j:jcl-over-slf4j:[${slf4j.version}]:jar:provided</include>
<include>org.slf4j:log4j-over-slf4j:[${slf4j.version}]:jar:provided</include>
<include>org.slf4j:slf4j-api:[${slf4j.version}]:jar:provided</include>
diff --git a/configserver/pom.xml b/configserver/pom.xml
index 8e604b930f6..110099421d1 100644
--- a/configserver/pom.xml
+++ b/configserver/pom.xml
@@ -194,11 +194,39 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <!-- Do not remove, as long as this is provided by jdisc and configserver uses jersey-client -->
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <!-- Do not remove, as long as this is provided by jdisc and configserver uses jersey-client -->
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-json-provider</artifactId>
+ <exclusions>
+ <exclusion>
+ <!-- Conflicts with javax.activation:javax.activation-api:1.2.0, which is "exported" via jdisc_core. -->
+ <groupId>jakarta.activation</groupId>
+ <artifactId>jakarta.activation-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- Conflicts with javax.xml.bind:jaxb-api:2.3, which is "exported" via jdisc_core.-->
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
</dependency>
@@ -245,6 +273,17 @@
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
+ <exclusions>
+ <!-- Prevent embedding deps provided by jdisc -->
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-core</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<!-- Not needed by configserver, but by controller. Also pulls in mimepull. -->
@@ -260,6 +299,11 @@
<groupId>com.yahoo.vespa</groupId>
<artifactId>bundle-plugin</artifactId>
<extensions>true</extensions>
+ <configuration>
+ <!-- TODO Vespa 8: remove importPackage when the jackson-jaxrs-json-provider bundle is no longer installed in jdisc -->
+ <!-- added to ensure using the same class as orchestrator, core-dump-reporter, provision-controller and controller-clients -->
+ <importPackage>com.fasterxml.jackson.jaxrs.json;version="[2.12.6,3)"</importPackage>
+ </configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
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;
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<StateRequestHandl
.newBuilder()
.property(ClientProperties.CONNECT_TIMEOUT, 10000)
.property(ClientProperties.READ_TIMEOUT, 10000)
+ .register(JacksonJsonProvider.class)
.register((ClientRequestFilter) ctx -> ctx.getHeaders().put(HttpHeaders.USER_AGENT, List.of(USER_AGENT)))
.build();
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 @@
<include>org.glassfish.jersey.core:jersey-client:[${jersey2.version}]:jar:provided</include>
<include>org.glassfish.jersey.core:jersey-common:[${jersey2.version}]:jar:provided</include>
<include>org.glassfish.jersey.core:jersey-server:[${jersey2.version}]:jar:provided</include>
- <include>org.glassfish.jersey.ext:jersey-entity-filtering:[${jersey2.version}]:jar:provided</include>
<include>org.glassfish.jersey.ext:jersey-proxy-client:[${jersey2.version}]:jar:provided</include>
- <include>org.glassfish.jersey.media:jersey-media-json-jackson:[${jersey2.version}]:jar:provided</include>
- <include>org.glassfish.jersey.media:jersey-media-multipart:[${jersey2.version}]:jar:provided</include>
<include>org.javassist:javassist:[${javassist.version}]:jar:provided</include>
<include>org.json:json:[${org.json.version}]:jar:provided</include>
- <include>org.jvnet.mimepull:mimepull:[${mimepull.version}]:jar:provided</include>
<include>org.slf4j:jcl-over-slf4j:[${slf4j.version}]:jar:provided</include>
<include>org.slf4j:log4j-over-slf4j:[${slf4j.version}]:jar:provided</include>
<include>org.slf4j:slf4j-api:[${slf4j.version}]:jar:provided</include>
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 @@
<version>${org.json.version}</version>
</dependency>
<dependency>
+ <!-- TODO Vespa 8: remove! No longer installed in jdisc -->
<groupId>org.jvnet.mimepull</groupId>
<artifactId>mimepull</artifactId>
- <version>${mimepull.version}</version>
+ <version>1.9.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -431,7 +432,6 @@
<javax.validation-api.version>1.1.0.Final</javax.validation-api.version>
<javax.ws.rs-api.version>2.0.1</javax.ws.rs-api.version>
<jersey2.version>2.25</jersey2.version>
- <mimepull.version>1.9.6</mimepull.version>
<!-- Not a dependency. Only included to allow the versions-maven-plugin to check for updates of itself -->
<versions-maven-plugin.version>2.8.1</versions-maven-plugin.version>
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, <!-- needed by jersey-media-json-jackson -->
jersey-guava-${jersey2.version}.jar,
- jersey-media-json-jackson-${jersey2.version}.jar,
- jersey-media-multipart-${jersey2.version}.jar,
- mimepull-${mimepull.version}.jar, <!-- needed by media-multipart -->
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/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
@@ -18,6 +18,11 @@
<dependencies>
<!-- provided -->
<dependency>
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-json-provider</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>com.yahoo.vespa</groupId>
<artifactId>vespajlib</artifactId>
<version>${project.version}</version>
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();
}
diff --git a/orchestrator/pom.xml b/orchestrator/pom.xml
index d3af2d8f1d9..839342574d5 100644
--- a/orchestrator/pom.xml
+++ b/orchestrator/pom.xml
@@ -17,6 +17,24 @@
<name>${project.artifactId}</name>
<dependencies>
<dependency>
+ <!-- Provided by the configserver bundle -->
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-json-provider</artifactId>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <!-- Conflicts with javax.activation:javax.activation-api:1.2.0, which is "exported" via jdisc_core. -->
+ <groupId>jakarta.activation</groupId>
+ <artifactId>jakarta.activation-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- Conflicts with javax.xml.bind:jaxb-api:2.3, which is "exported" via jdisc_core.-->
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
<groupId>com.yahoo.vespa</groupId>
<artifactId>container-dev</artifactId>
<version>${project.version}</version>
@@ -93,18 +111,10 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <!-- Provided by the configserver bundle -->
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-proxy-client</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.glassfish.jersey.core</groupId>
- <artifactId>jersey-common</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.ws.rs</groupId>
- <artifactId>javax.ws.rs-api</artifactId>
- </exclusion>
- </exclusions>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
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
@@ -20,26 +20,6 @@
<artifactId>javax.ws.rs-api</artifactId>
</dependency>
<dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-json-jackson</artifactId>
- <exclusions>
- <exclusion>
- <!-- Conflicts with javax.activation:javax.activation-api:1.2.0, which is "exported" via jdisc_core. -->
- <groupId>jakarta.activation</groupId>
- <artifactId>jakarta.activation-api</artifactId>
- </exclusion>
- <exclusion>
- <!-- Conflicts with javax.xml.bind:jaxb-api:2.3, which is "exported" via jdisc_core.-->
- <groupId>jakarta.xml.bind</groupId>
- <artifactId>jakarta.xml.bind-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.glassfish.jersey.media</groupId>
- <artifactId>jersey-media-multipart</artifactId>
- </dependency>
- <dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-proxy-client</artifactId>
</dependency>
@@ -57,9 +37,7 @@
</dependency>
<dependency>
- <!-- Previously pulled in by jersey-container-servlet-core. Contains packages imported by
- jersey-entity-filtering, which is used by jersey-media-json-jackson, which is used by hosted Vespa
- framework bundles, July 2021. -->
+ <!-- TODO Vespa 8: Remove, contains packages imported by only one user app (March 2022) -->
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<exclusions>
@@ -76,6 +54,24 @@
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
+
+ <dependency>
+ <!-- TODO: try to remove! Previously pulled in by jersey-media-json-jackson. -->
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-json-provider</artifactId>
+ <exclusions>
+ <exclusion>
+ <!-- Conflicts with javax.activation:javax.activation-api:1.2.0, which is "exported" via jdisc_core. -->
+ <groupId>jakarta.activation</groupId>
+ <artifactId>jakarta.activation-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <!-- Conflicts with javax.xml.bind:jaxb-api:2.3, which is "exported" via jdisc_core.-->
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
<build>