| <?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.1.1-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.1.1-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.1.1-SNAPSHOT</version> |
| <scope>provided</scope> |
| </dependency> |
| <!-- xerces is needed - but this is marked as optional as some |
| OSGi frameworks like Karaf will include their own |
| xerces in their boot delegation. |
| |
| See also pull request #134 |
| https://github.com/apache/jena/pull/134#issuecomment-209474708 |
| --> |
| <dependency> |
| <groupId>org.apache.servicemix.bundles</groupId> |
| <artifactId>org.apache.servicemix.bundles.xerces</artifactId> |
| <version>2.11.0_1</version> |
| <optional>true</optional> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.jena</groupId> |
| <artifactId>jena-shaded-guava</artifactId> |
| <version>3.1.1-SNAPSHOT</version> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.jena</groupId> |
| <artifactId>jena-tdb</artifactId> |
| <version>3.1.1-SNAPSHOT</version> |
| <scope>provided</scope> |
| </dependency> |
| <!-- |
| NOTE: Also update |
| src/main/resources/META-INF/services/org.apache.jena.system.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.1.1-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.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-Dependency>artifactId=jena*;inline=true,artifactId=xercesImpl;inline=true,artifactId=xml-apis;inline=true</Embed-Dependency> |
| --> |
| <Embed-Transitive>true</Embed-Transitive> |
| <!-- Do not embed but import Xerces classes via OSGi --> |
| <Import-Package>org.osgi.framework.*,org.apache.xml.*,org.apache.xerces.*;version="2.11.0",!sun.io,!org.apache.avalon.framework.logger,!com.ibm.uvm.tools,!com.sun.jdmk.comm,!org.apache.log,!org.apache.jena.ext.*,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.xerces.*,!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> |
| </instructions> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| |
| </project> |