blob: 8dfdc418169e5deda66c9d7b03e65d305a6c26ea [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-osgi</artifactId>
<version>3.17.0-SNAPSHOT</version>
</parent>
<artifactId>jena-osgi</artifactId>
<packaging>bundle</packaging>
<name>Apache Jena - OSGi bundle</name>
<description>
Embedding the main Jena modules (iri/core/arq/tdb) in a single OSGi bundle.
</description>
<!--
Most of the job is done by maven-bundle-plugin (see below).
It inspects the embedded/shadowed class files from jena-* to
generate the correct Import/Export-Package statements.
SCOPES:
<scope>provided</scope> are explicitly picked up
by maven-bundle-plugin below to be shadowed within the bundle. These
are the non-OSGi bundles we want to package, e.g. Jena
and any dependencies that are not easily available as
bundles..
Those without <scope> (e.g. compile) below are already
OSGi bundles and will become runtime dependencies of
the jena-osgi bundle when used through Maven. Their
transitive dependencies (e.g. jsonld-java depends on
jackson-core) are not explicitly listed here.
Note that many OSGi users don't use Maven
and would have to find those dependencies
themselves. See ../jena-osgi-test/ for
example.
To avoid duplicates of non-bundle and bundle dependencies,
e.g. httpcore vs. httpcore-osgi, there are several
<excludes> below - as not everyone
follows the <scope>provided</scope> pattern.
Use mvn dependency:tree to inspect what dependencies are
exposed in the end, and unzip -t target/*.jar to inspect
what becomes bundled in the bundle.
Explore META-INF/MANFEST.MF in the jar to see what
Import and Export the maven-bundle-plugin has figured out,
usually the details figured out through code
introspections are correct - if verbose.
-->
<dependencies>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-arq</artifactId>
<version>3.17.0-SNAPSHOT</version>
<scope>provided</scope>
<exclusions>
<!-- These are all embedded within httpclient-osgi -->
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-core</artifactId>
<version>3.17.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-rdfconnection</artifactId>
<version>3.17.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-shaded-guava</artifactId>
<version>3.17.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-commonsrdf</artifactId>
<version>3.17.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-tdb</artifactId>
<version>3.17.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-tdb2</artifactId>
<version>3.17.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!--
NOTE: Also update
src/main/resources/META-INF/services/org.apache.jena.sys.JenaSubsystemLifecycle
to the concatenation of the different Jena modules' JenaSubsystemLifecycle
(order does not matter). See JENA-1139 for details.
-->
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>jena-iri</artifactId>
<version>3.17.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<!-- OSGi versions of Jena dependencies -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-osgi</artifactId>
<version>${ver.httpclient-osgi}</version>
<exclusions>
<!-- These are all embedded within httpclient-osgi -->
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-cache</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>fluent-hc</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore-osgi</artifactId>
<version>${ver.httpcore-osgi}</version>
<exclusions>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore-nio</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.jsonld-java</groupId>
<artifactId>jsonld-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<exclusions>
<!-- Use httpclient-osgi instead -->
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${ver.slf4j}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-rdf-api</artifactId>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<version>5.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<!-- re-enable extensions here for older Mavens -->
<extensions>true</extensions>
<configuration>
<instructions>
<Export-Package>org.apache.jena.*,!org.apache.jena.ext.*</Export-Package>
<Embed-Dependency>artifactId=jena*;inline=true</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Import-Package>
org.osgi.framework.*,
!sun.io,
!org.apache.avalon.framework.logger,
!com.ibm.uvm.tools,
!com.sun.jdmk.comm,
!org.apache.log,
!org.apache.jena.ext.*,
!org.checkerframework.checker.*,
!com.google.errorprone.annotations.*,
!com.google.appengine.api,
!com.google.apphosting.api,
org.apache.logging.*;resolution:=optional,
sun.misc;resolution:=optional,
*
</Import-Package>
<!--
<Import-Package>org.osgi.framework.*,!sun.io,!org.apache.avalon.framework.logger,!com.ibm.uvm.tools,!com.sun.jdmk.comm,!org.apache.log,!org.apache.xml.*,!org.apache.jena.ext.*,sun.misc;resolution:=optional,*</Import-Package>
-->
<Private-Package>org.apache.jena.ext.*</Private-Package>
<Bundle-Activator>org.apache.jena.osgi.Activator</Bundle-Activator>
<Provide-Capability>osgi.serviceloader; osgi.serviceloader=org.apache.commons.rdf.api.RDF</Provide-Capability>
<Require-Capability>osgi.extender; filter:="(osgi.extender=osgi.serviceloader.registrar)";resolution:=optional</Require-Capability>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>