<?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.tika</groupId>
    <artifactId>tika-parent</artifactId>
    <version>1.14</version>
    <relativePath>../tika-parent/pom.xml</relativePath>
  </parent>

  <artifactId>tika-bundle</artifactId>
  <packaging>bundle</packaging>
  <name>Apache Tika OSGi bundle</name>
  <description>
    OSGi bundle that contains the tika-parsers component and all its
    upstream dependencies that aren't OSGI bundles by themselves. This
    bundle exports no packages, only the Parser and Detector services
    from the tika-parsers component.
  </description>
  <url>http://tika.apache.org/</url>

  <properties>
    <pax.exam.version>4.4.0</pax.exam.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>tika-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>tika-parsers</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>

    <!-- Test dependencies -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-junit4</artifactId>
      <version>${pax.exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-container-native</artifactId>
      <version>${pax.exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.framework</artifactId>
      <version>4.6.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-link-assembly</artifactId>
      <version>${pax.exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.url</groupId>
      <artifactId>pax-url-aether</artifactId>
      <version>2.3.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>5.0.0</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <_runsystempackages>com.sun.xml.bind.marshaller, com.sun.xml.internal.bind.marshaller</_runsystempackages>
            <Bundle-Activator>
              org.apache.tika.parser.internal.Activator
            </Bundle-Activator>
            <Embed-Dependency>
              tika-parsers;inline=true,
              commons-compress, xz, commons-codec, commons-csv,
              commons-io, commons-exec, commons-collections4, junrar,
              pdfbox,pdfbox-tools,pdfbox-debugger,fontbox,jempbox,bcmail-jdk15on,bcprov-jdk15on,bcpkix-jdk15on,
              poi,poi-scratchpad,poi-ooxml,poi-ooxml-schemas,
              curvesapi,
              xmlbeans,
              jackcess,
              commons-lang,
              tagsoup,
              asm,
              juniversalchardet,
              vorbis-java-core, vorbis-java-tika,
              isoparser,
              metadata-extractor, xmpcore, json-simple,
              boilerpipe, rome, rome-utils, opennlp-tools, opennlp-maxent,
              geoapi, sis-metadata, sis-netcdf, sis-utility,
              sis-storage, apache-mime4j-core, apache-mime4j-dom,
              jsr-275, jhighlight, java-libpst, jwnl,
              netcdf4, grib, cdm, httpservices, jcip-annotations,
              jmatio, guava
            </Embed-Dependency>
            <Embed-Transitive>true</Embed-Transitive>
            <Bundle-DocURL>${project.url}</Bundle-DocURL>
            <Export-Package>
              !org.apache.tika.parser,
              !org.apache.tika.parser.external,
              org.apache.tika.parser.*,
            </Export-Package>
            <Import-Package>
              !org.junit,
              !org.junit.*,
              !junit.*,
              !org.apache.ctakes.*,
              !org.apache.uima.*,
              *,
              org.apache.tika.fork,
              android.util;resolution:=optional,
              com.adobe.xmp;resolution:=optional,
              com.adobe.xmp.properties;resolution:=optional,
              com.google.protobuf;resolution:=optional,
              com.ibm.icu.text;resolution:=optional,
              com.sleepycat.je;resolution:=optional,
              com.sun.javadoc;resolution:=optional,
              com.sun.xml.bind.marshaller;resolution:=optional,
              com.sun.xml.internal.bind.marshaller;resolution:=optional,
              com.sun.msv.datatype;resolution:=optional,
              com.sun.msv.datatype.xsd;resolution:=optional,
              com.sun.tools.javadoc;resolution:=optional,
              edu.wisc.ssec.mcidas;resolution:=optional,
              edu.wisc.ssec.mcidas.adde;resolution:=optional,
              javax.activation;resolution:=optional,
              javax.annotation;resolution:=optional,
              javax.mail;resolution:=optional,
              javax.mail.internet;resolution:=optional,
              javax.servlet.annotation;resolution:=optional,
              javax.servlet;resolution:=optional,
              javax.servlet.http;resolution:=optional,
              javax.measure.converter;resolution:=optional,
              javax.ws.rs.core;resolution:=optional,
              net.sf.ehcache;resolution:=optional,
              nu.xom;resolution:=optional,
              opendap.dap.http;resolution:=optional,
              opendap.dap;resolution:=optional,
              opendap.dap.parser;resolution:=optional,
              opennlp.maxent;resolution:=optional,
              opennlp.tools.namefind;resolution:=optional,
              net.didion.jwnl;resolution:=optional,
              org.apache.cxf.jaxrs.client;resolution:=optional,
              org.apache.cxf.jaxrs.ext.multipart;resolution:=optional,
              org.apache.commons.exec;resolution:=optional,
              org.apache.commons.io;resolution:=optional,
              org.apache.commons.httpclient;resolution:=optional,
              org.apache.commons.httpclient.auth;resolution:=optional,
              org.apache.commons.httpclient.methods;resolution:=optional,
              org.apache.commons.httpclient.params;resolution:=optional,
              org.apache.commons.httpclient.protocol;resolution:=optional,
              org.apache.commons.httpclient.util;resolution:=optional,
              org.apache.commons.vfs2;resolution:=optional,
              org.apache.commons.vfs2.provider;resolution:=optional,
              org.apache.commons.vfs2.util;resolution:=optional,
              org.apache.crimson.jaxp;resolution:=optional,
              org.apache.jcp.xml.dsig.internal.dom;resolution:=optional,
              org.apache.sis;resolution:=optional,
              org.apache.sis.distance;resolution:=optional,
              org.apache.sis.geometry;resolution:=optional,
              org.apache.tools.ant;resolution:=optional,
              org.apache.tools.ant.taskdefs;resolution:=optional,
              org.apache.tools.ant.types;resolution:=optional,
              org.apache.xerces.parsers;resolution:=optional,
              org.apache.xerces.util;resolution:=optional,
              org.apache.xerces.xni;resolution:=optional,
              org.apache.xerces.xni.parser;resolution:=optional,
              org.apache.xml.resolver;resolution:=optional,
              org.apache.xml.resolver.tools;resolution:=optional,
              org.apache.xml.security;resolution:=optional,
              org.apache.xml.security.c14n;resolution:=optional,
              org.apache.xml.security.utils;resolution:=optional,
              org.apache.xmlbeans.impl.xpath.saxon;resolution:=optional,
              org.apache.xmlbeans.impl.xquery.saxon;resolution:=optional,
              org.bouncycastle.cert;resolution:=optional,
              org.bouncycastle.cert.jcajce;resolution:=optional,
              org.bouncycastle.cert.ocsp;resolution:=optional,
              org.bouncycastle.cms.bc;resolution:=optional,
              org.bouncycastle.operator;resolution:=optional,
              org.bouncycastle.operator.bc;resolution:=optional,
              org.bouncycastle.tsp;resolution:=optional,
              org.cyberneko.html.xercesbridge;resolution:=optional,
              org.etsi.uri.x01903.v14;resolution:=optional,
              org.ibex.nestedvm;resolution:=optional,
              org.gjt.xpp;resolution:=optional,
              org.jaxen;resolution:=optional,
              org.jaxen.dom4j;resolution:=optional,
              org.jaxen.pattern;resolution:=optional,
              org.jaxen.saxpath;resolution:=optional,
              org.jdom;resolution:=optional,
              org.jdom.input;resolution:=optional,
              org.jdom.output;resolution:=optional,
              org.jdom2;resolution:=optional,
              org.jdom2.input;resolution:=optional,
              org.jdom2.input.sax;resolution:=optional,
              org.jdom2.output;resolution:=optional,
              org.jdom2.filter;resolution:=optional,
              org.json.simple;resolution:=optional,
              org.json;resolution:=optional,
              org.openxmlformats.schemas.officeDocument.x2006.math;resolution:=optional,
              org.openxmlformats.schemas.schemaLibrary.x2006.main;resolution:=optional,
              org.osgi.framework;resolution:=optional,
              org.quartz;resolution:=optional,
              org.quartz.impl;resolution:=optional,
              org.slf4j;resolution:=optional,
              org.sqlite;resolution:=optional,
              org.w3c.dom;resolution:=optional,
              org.relaxng.datatype;resolution:=optional,
              org.xml.sax;resolution:=optional,
              org.xml.sax.ext;resolution:=optional,
              org.xml.sax.helpers;resolution:=optional,
              org.xmlpull.v1;resolution:=optional,
              com.microsoft.schemas.office.powerpoint;resolution:=optional,
              com.microsoft.schemas.office.word;resolution:=optional,              sun.misc;resolution:=optional,
              ucar.units;resolution:=optional,
              ucar.httpservices;resolution:=optional,
              ucar.nc2.util;resolution:=optional,
              ucar.nc2.util.cache;resolution:=optional,
              ucar.nc2.dataset;resolution:=optional,
              ucar.nc2;resolution:=optional,
              ucar.nc2.constants;resolution:=optional,
              ucar.nc2.dt;resolution:=optional,
              ucar.nc2.dt.grid;resolution:=optional,
              ucar.nc2.ft;resolution:=optional,
              ucar.nc2.iosp;resolution:=optional,
              ucar.nc2.iosp.hdf4;resolution:=optional,
              ucar.nc2.ncml;resolution:=optional,
              ucar.nc2.stream;resolution:=optional,
              ucar.nc2.time;resolution:=optional,
              ucar.nc2.units;resolution:=optional,
              ucar.nc2.wmo;resolution:=optional,
              ucar.nc2.write;resolution:=optional,
              ucar.ma2;resolution:=optional,
              ucar.grib;resolution:=optional,
              ucar.grib.grib1;resolution:=optional,
              ucar.grib.grib2;resolution:=optional,
              ucar.grid;resolution:=optional,
              ucar.unidata.geoloc;resolution:=optional,
              ucar.unidata.geoloc.projection;resolution:=optional,
              ucar.unidata.geoloc.projection.proj4;resolution:=optional,
              ucar.unidata.geoloc.projection.sat;resolution:=optional,
              ucar.unidata.io;resolution:=optional,
              ucar.unidata.util;resolution:=optional,
              com.jmatio.io;resolution:=optional,
              com.google.gson;resolution:=optional,
              visad;resolution:=optional,
              visad.data;resolution:=optional,
              visad.data.vis5d;resolution:=optional,
              visad.jmet;resolution:=optional,
              visad.util;resolution:=optional,
              colorspace;resolution:=optional,
              com.sun.jna;resolution:=optional,
              com.sun.jna.ptr;resolution:=optional,
              icc;resolution:=optional,
              jj2000.j2k.codestream;resolution:=optional,
              jj2000.j2k.codestream.reader;resolution:=optional,
              jj2000.j2k.decoder;resolution:=optional,
              jj2000.j2k.entropy.decoder;resolution:=optional,
              jj2000.j2k.fileformat.reader;resolution:=optional,
              jj2000.j2k.image;resolution:=optional,
              jj2000.j2k.image.invcomptransf;resolution:=optional,
              jj2000.j2k.image.output;resolution:=optional,
              jj2000.j2k.io;resolution:=optional,
              jj2000.j2k.quantization.dequantizer;resolution:=optional,
              jj2000.j2k.roi;resolution:=optional,
              jj2000.j2k.util;resolution:=optional,
              jj2000.j2k.wavelet.synthesis;resolution:=optional,
              org.itadaki.bzip2;resolution:=optional,
              org.jsoup;resolution:=optional,
              org.jsoup.nodes;resolution:=optional,
              org.jsoup.select;resolution:=optional,
              thredds.featurecollection;resolution:=optional,
              thredds.filesystem;resolution:=optional,
              thredds.inventory;resolution:=optional,
              thredds.inventory.filter;resolution:=optional,
              thredds.inventory.partition;resolution:=optional,
              com.beust.jcommander;resolution:=optional,
              com.google.common.base;resolution:=optional,
              com.google.common.math;resolution:=optional,
              org.apache.http;resolution:=optional,
              org.apache.http.client.utils;resolution:=optional,
              org.joda.time;resolution:=optional,
              org.joda.time.chrono;resolution:=optional,
              org.joda.time.field;resolution:=optional,
              org.joda.time.format;resolution:=optional,
              sun.reflect.generics.reflectiveObjects;resolution:=optional,
              org.apache.http.auth;resolution:=optional,
              org.apache.http.client;resolution:=optional,
              org.apache.http.client.entity;resolution:=optional,
              org.apache.http.client.methods;resolution:=optional,
              org.apache.http.conn;resolution:=optional,
              org.apache.http.conn.scheme;resolution:=optional,
              org.apache.http.cookie;resolution:=optional,
              org.apache.http.entity;resolution:=optional,
              org.apache.http.impl.client;resolution:=optional,
              org.apache.http.impl.conn;resolution:=optional,
              org.apache.http.message;resolution:=optional,
              org.apache.http.params;resolution:=optional,
              org.apache.http.protocol;resolution:=optional,
              org.apache.http.util;resolution:=optional
            </Import-Package>
          </instructions>
        </configuration>
      </plugin>
      <!-- TIKA-763: Workaround to avoid including LGPL classes -->
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>unpack-dependencies</goal>
            </goals>
            <configuration>
              <includeArtifactIds>netcdf</includeArtifactIds>
              <excludes>
                ucar/nc2/iosp/fysat/Fysat*.class,
                ucar/nc2/dataset/transform/VOceanSG1*class,
                ucar/unidata/geoloc/vertical/OceanSG*.class,
                META-INF/**,CHANGES,README
              </excludes>
              <outputDirectory>
                ${project.build.directory}/classes
              </outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- The Tika Bundle has no java code of its own, so no need to do -->
      <!--  any forbidden API checking against it (it gets confused...) -->
      <plugin>
        <groupId>de.thetaphi</groupId>
        <artifactId>forbiddenapis</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptor>test-bundles.xml</descriptor>
              <finalName>test</finalName>
              <attach>false</attach>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.10</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <systemPropertyVariables>
            <org.ops4j.pax.logging.DefaultServiceLog.level>
              WARN
            </org.ops4j.pax.logging.DefaultServiceLog.level>
          </systemPropertyVariables>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <organization>
    <name>The Apache Software Founation</name>
    <url>http://www.apache.org</url>
  </organization>
  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/TIKA</url>
  </issueManagement>
  <ciManagement>
    <system>Jenkins</system>
    <url>https://builds.apache.org/job/Tika-trunk/</url>
  </ciManagement>
</project>  