summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2022-06-07 16:26:34 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2022-06-08 13:44:26 +0200
commit2af24a81aa7c2351e6e2a7dd22419dd65b0be79b (patch)
treea1e107b7d680f09047f474c3aecf446d8c94241c
parent5b69de35fb321ccd52757f4dac75df52f1c711d8 (diff)
Package spifly and asm dependencies into container-spifly bundle
-rw-r--r--CMakeLists.txt1
-rw-r--r--application/pom.xml4
-rw-r--r--container-disc/pom.xml16
-rw-r--r--container-spifly/.gitignore1
-rw-r--r--container-spifly/CMakeLists.txt2
-rw-r--r--container-spifly/README.md1
-rw-r--r--container-spifly/pom.xml105
-rw-r--r--dist/vespa.spec3
-rw-r--r--jdisc_jetty/pom.xml5
-rw-r--r--pom.xml1
10 files changed, 117 insertions, 22 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1172da5de1b..66c3d0fb2dd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,6 +69,7 @@ add_subdirectory(container-messagebus)
add_subdirectory(container-search)
add_subdirectory(container-search-gui)
add_subdirectory(container-search-and-docproc)
+add_subdirectory(container-spifly)
add_subdirectory(cloud-tenant-cd)
add_subdirectory(clustercontroller-apps)
add_subdirectory(clustercontroller-core)
diff --git a/application/pom.xml b/application/pom.xml
index 6fbd2a5867b..b31776eb5f9 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -67,10 +67,6 @@
<version>${project.version}</version>
<scope>compile</scope>
<exclusions>
- <exclusion>
- <groupId>org.apache.aries.spifly</groupId>
- <artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId>
- </exclusion>
</exclusions>
</dependency>
<dependency>
diff --git a/container-disc/pom.xml b/container-disc/pom.xml
index 283d33964df..569241c0986 100644
--- a/container-disc/pom.xml
+++ b/container-disc/pom.xml
@@ -207,27 +207,21 @@
linguistics-components-jar-with-dependencies.jar,
vespaclient-container-plugin-jar-with-dependencies.jar,
vespa-athenz-jar-with-dependencies.jar,
- container-apache-http-client-bundle-jar-with-dependencies.jar, <!-- Apache http client repackaged as bundle -->
+
+ <!-- Apache http client repackaged as bundle -->
+ container-apache-http-client-bundle-jar-with-dependencies.jar,
<!-- Vespa security utils with necessary 3rd party bundles -->
security-utils.jar,
bcpkix-jdk15on-${bouncycastle.version}.jar,
bcprov-jdk15on-${bouncycastle.version}.jar,
- <!-- Jetty -->
<!-- TODO Vespa 8: embed these in container-core/disc, saving a lot of dep management. -->
<!-- Check if those listed in container-dep-versions are not used by hosted apps! -->
javax.servlet-api-3.1.0.jar,
- <!-- Spifly (required for OSGi service loader used by Jetty) -->
- <!-- TODO: embed these in container-core/disc, not used across bundles -->
- org.apache.aries.spifly.dynamic.bundle-${spifly.version}.jar,
- asm-${asm.version}.jar,
- asm-analysis-${asm.version}.jar,
- asm-commons-${asm.version}.jar,
- asm-tree-${asm.version}.jar,
- asm-util-${asm.version}.jar,
- <!-- Spifly end -->
+ <!-- Aries SPIFly repackaged -->
+ container-spifly.jar,
jackson-annotations-${jackson2.version}.jar,
jackson-core-${jackson2.version}.jar,
diff --git a/container-spifly/.gitignore b/container-spifly/.gitignore
new file mode 100644
index 00000000000..916e17c097a
--- /dev/null
+++ b/container-spifly/.gitignore
@@ -0,0 +1 @@
+dependency-reduced-pom.xml
diff --git a/container-spifly/CMakeLists.txt b/container-spifly/CMakeLists.txt
new file mode 100644
index 00000000000..cd4b4a43488
--- /dev/null
+++ b/container-spifly/CMakeLists.txt
@@ -0,0 +1,2 @@
+# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+install_jar(container-spifly.jar)
diff --git a/container-spifly/README.md b/container-spifly/README.md
new file mode 100644
index 00000000000..4477c6dabb9
--- /dev/null
+++ b/container-spifly/README.md
@@ -0,0 +1 @@
+Repackaging of SPIFly with ASM embedded
diff --git a/container-spifly/pom.xml b/container-spifly/pom.xml
new file mode 100644
index 00000000000..19051999aaf
--- /dev/null
+++ b/container-spifly/pom.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>container-spifly</artifactId>
+ <packaging>jar</packaging>
+ <parent>
+ <groupId>com.yahoo.vespa</groupId>
+ <artifactId>parent</artifactId>
+ <version>7-SNAPSHOT</version>
+ <relativePath>../parent/pom.xml</relativePath>
+ </parent>
+
+ <properties>
+ <relocation-pkg-prefix>com.yahoo.vespa.spifly.repackaged</relocation-pkg-prefix>
+ </properties>
+
+ <dependencies>
+ <!-- Required for ServiceLoader to function in OSGi environment. ServiceLoader is used by Jetty -->
+ <dependency>
+ <groupId>org.apache.aries.spifly</groupId>
+ <artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <minimizeJar>false</minimizeJar>
+ <filters>
+ <filter>
+ <artifact>*:*</artifact>
+ <excludes>
+ <exclude>module-info.class</exclude>
+ <exclude>META-INF/*</exclude>
+ </excludes>
+ </filter>
+ </filters>
+ <relocations>
+ <relocation>
+ <pattern>org.apache.aries.spifly</pattern>
+ <shadedPattern>${relocation-pkg-prefix}.spifly</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>aQute</pattern>
+ <shadedPattern>${relocation-pkg-prefix}.aQute</shadedPattern>
+ </relocation>
+ <relocation>
+ <pattern>org.objectweb.asm</pattern>
+ <shadedPattern>${relocation-pkg-prefix}.asm</shadedPattern>
+ </relocation>
+ </relocations>
+ <transformers>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+ <manifestEntries>
+ <Bundle-Name>container-spifly</Bundle-Name>
+ <Bundle-SymbolicName>container-spifly</Bundle-SymbolicName>
+ <Bundle-Version>${spifly.version}</Bundle-Version>
+ <Export-Package>
+ ${relocation-pkg-prefix}.spifly;version="${spifly.version}",
+ ${relocation-pkg-prefix}.spifly.dynamic;version="${spifly.version}",
+ ${relocation-pkg-prefix}.spifly.weaver;version="${spifly.version}"
+ </Export-Package>
+ <Import-Package>
+ org.osgi.framework;version="[1.7,2)",
+ org.osgi.framework.hooks.weaving;version="[1.0,2)",
+ org.osgi.framework.wiring;version="[1.1,2)",
+ org.osgi.util.tracker;version="[1.5,2)"
+ </Import-Package>
+ <Require-Capability>osgi.ee</Require-Capability>
+ <Provide-Capability>
+ osgi.extender;osgi.extender="osgi.serviceloader.registrar";version:Version="1.0",
+ osgi.extender;osgi.extender="osgi.serviceloader.processor";version:Version="1.0";uses:="${relocation-pkg-prefix}.spifly"
+ </Provide-Capability>
+ <Bundle-Activator>
+ ${relocation-pkg-prefix}.spifly.dynamic.DynamicWeavingActivator
+ </Bundle-Activator>
+ </manifestEntries>
+ </transformer>
+ </transformers>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/dist/vespa.spec b/dist/vespa.spec
index 42c63b00abd..7688ad5e800 100644
--- a/dist/vespa.spec
+++ b/dist/vespa.spec
@@ -896,7 +896,6 @@ fi
%dir %{_prefix}
%dir %{_prefix}/lib
%dir %{_prefix}/lib/jars
-%{_prefix}/lib/jars/asm-*.jar
%{_prefix}/lib/jars/application-model-jar-with-dependencies.jar
%{_prefix}/lib/jars/bcpkix-jdk15on-*.jar
%{_prefix}/lib/jars/bcprov-jdk15on-*.jar
@@ -909,6 +908,7 @@ fi
%{_prefix}/lib/jars/container-disc-jar-with-dependencies.jar
%{_prefix}/lib/jars/container-search-and-docproc-jar-with-dependencies.jar
%{_prefix}/lib/jars/container-search-gui-jar-with-dependencies.jar
+%{_prefix}/lib/jars/container-spifly.jar
%{_prefix}/lib/jars/docprocs-jar-with-dependencies.jar
%{_prefix}/lib/jars/flags-jar-with-dependencies.jar
%{_prefix}/lib/jars/hosted-zone-api-jar-with-dependencies.jar
@@ -920,7 +920,6 @@ fi
%{_prefix}/lib/jars/linguistics-components-jar-with-dependencies.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
%{_prefix}/lib/jars/security-utils.jar
%{_prefix}/lib/jars/standalone-container-jar-with-dependencies.jar
%{_prefix}/lib/jars/vespa-athenz-jar-with-dependencies.jar
diff --git a/jdisc_jetty/pom.xml b/jdisc_jetty/pom.xml
index 375958550f2..62a09da97a9 100644
--- a/jdisc_jetty/pom.xml
+++ b/jdisc_jetty/pom.xml
@@ -15,11 +15,6 @@
<version>8-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
- <dependency>
- <!-- Required for ServiceLoader to function in OSGi environment. ServiceLoader is used by Jetty -->
- <groupId>org.apache.aries.spifly</groupId>
- <artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId>
- </dependency>
</dependencies>
<build>
<plugins>
diff --git a/pom.xml b/pom.xml
index 3a41ee3b1ec..c1980ce4825 100644
--- a/pom.xml
+++ b/pom.xml
@@ -64,6 +64,7 @@
<module>container-search-and-docproc</module>
<module>container-search</module>
<module>container-search-gui</module>
+ <module>container-spifly</module>
<module>container-test</module>
<module>controller-api</module>
<module>controller-server</module>