<?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.28.2</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>
    <!-- some conflict with slf4j with 4.12.0
        causes failure in testForkParser -->
    <pax.exam.version>4.11.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>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <version>${log4j2.version}</version>
    </dependency>

    <!-- Test dependencies -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-junit4</artifactId>
      <version>${pax.exam.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.ops4j.base</groupId>
          <artifactId>ops4j-base-store</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.ops4j.base</groupId>
          <artifactId>ops4j-base-lang</artifactId>
        </exclusion>
      </exclusions>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-container-native</artifactId>
      <version>${pax.exam.version}</version>
      <exclusions>
        <exclusion>
          <groupId>org.ops4j.base</groupId>
          <artifactId>ops4j-base-util-property</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.ops4j.base</groupId>
          <artifactId>ops4j-base-lang</artifactId>
        </exclusion>
      </exclusions>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.base</groupId>
      <artifactId>ops4j-base-util-property</artifactId>
      <version>1.5.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.base</groupId>
      <artifactId>ops4j-base-lang</artifactId>
      <version>1.5.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.framework</artifactId>
      <version>7.0.1</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.6.1</version>
      <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>${osgi.core.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.service.cm</artifactId>
      <version>1.6.0</version>
      <scope>test</scope>
    </dependency>

    <!-- use non-log4j slf4j backend to prevent main classloader from loading log4j classes -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <scope>test</scope>
    </dependency>
    
    <dependency>
	    <groupId>org.glassfish.jaxb</groupId>
	    <artifactId>jaxb-runtime</artifactId>
	    <version>${jaxb.version}</version>
	    <scope>test</scope>
	</dependency>
	<dependency>
	    <groupId>com.sun.xml.fastinfoset</groupId>
	    <artifactId>FastInfoset</artifactId>
	    <version>2.0.0</version>
	    <scope>test</scope>
	</dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>${maven.bundle.version}</version>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <_runsystempackages>com.sun.xml.bind.marshaller, com.sun.xml.internal.bind.marshaller</_runsystempackages>
            <!--  The file below and the _include entry may be removed once Tika targets OpenJDK 9.0 or above -->
            <_include>src/main/resources/META-INF/MANIFEST.MF</_include>
            <Bundle-Activator>
              org.apache.tika.parser.internal.Activator
            </Bundle-Activator>
            <Embed-Dependency>*;scope=compile;artifactId=tika-parsers|
              commons-compress|
              xz|
              commons-codec|
              commons-csv|
              commons-io|
              commons-exec|
              commons-collections4|
              dd-plist|
              junrar|
              pdfbox|
              pdfbox-tools|
              pdfbox-debugger|
              pdfbox-preflight|
              xmpbox|
              fontbox|
              jempbox|
              bcmail-jdk15on|
              bcprov-jdk15on|
              bcpkix-jdk15on|
              poi|
              poi-scratchpad|
              poi-ooxml|
              poi-ooxml-lite|
              log4j-core|
              log4j-api|
              commons-math3|
              curvesapi|
              xmlbeans|
              jackcess|
              jackcess-encrypt|
              commons-lang3|
              tagsoup|
              asm|
              juniversalchardet|
              vorbis-java-core|
              vorbis-java-tika|
              isoparser|
              metadata-extractor|
              xmpcore-shaded|
              json-simple|
              boilerpipe|
              rome|
              rome-utils|
              jdom2|
              sentiment-analysis-parser|
              opennlp-tools|
              geoapi|
              sis-metadata|
              sis-netcdf|
              sis-utility|
              sis-storage|
              unit-api|
              apache-mime4j-core|
              apache-mime4j-dom|
              jhighlight|
              java-libpst|
              netcdf4|
              grib|
              cdm|
              parso|
              httpservices|
              jcip-annotations|
              jmatio|
              guava|
              age-predictor-api|
              SparseBitSet
            </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.*,
	      org.apache.tika.metadata.serialization.*,
            </Export-Package>
            <Import-Package>
              !org.junit,
              !org.junit.*,
              !junit.*,
              !org.apache.ctakes.*,
              !org.apache.uima.*,
	      !org.apache.solr.client.solrj.*,
	      !org.apache.solr.common.*,
	      !org.apache.spark.api.java.*,
	      !org.apache.spark.ml.*,
	      !org.apache.spark.mllib.*,
	      !org.apache.spark.sql.*,
	          org.apache.tika.mime,
              org.apache.tika.fork,
              android.util;resolution:=optional,
              com.adobe.xmp;resolution:=optional,
              com.adobe.xmp.impl;resolution:=optional,
              com.adobe.xmp.options;resolution:=optional,
              com.dd.plist;resolution:=optional,
              com.adobe.xmp.properties;resolution:=optional,
              com.github.luben.zstd;resolution:=optional,
              com.github.javaparser;resolution:=optional,
              com.github.javaparser.ast;resolution:=optional,
              com.github.javaparser.ast.body;resolution:=optional,
              com.github.javaparser.ast.expr;resolution:=optional,
              com.github.javaparser.ast.nodeTypes;resolution:=optional,
              com.github.javaparser.ast.type;resolution:=optional,
              com.github.javaparser.utils;resolution:=optional,
              com.github.openjson;resolution:=optional,
              com.github.jaiimageio.*;resolution:=optional,
              com.google.appengine.api.*;resolution:=optional,
              com.google.apphosting.api.*;resolution:=optional,
              com.google.common.util.concurrent.internal;resolution:=optional,
              com.google.errorprone.annotations;resolution:=optional,
              com.google.errorprone.annotations.concurrent;resolution:=optional,
              com.google.protobuf;resolution:=optional,
              com.ibm.icu.text;resolution:=optional,
              com.parso;resolution:=optional,
              com.sleepycat.je;resolution:=optional,
              com.sun.javadoc;resolution:=optional,
              com.sun.org.apache.xalan.internal;resolution:=optional,
              com.sun.org.apache.xml.internal.resolver;resolution:=optional,
              com.sun.org.apache.xml.internal.resolver.tools;resolution:=optional,
              com.sun.org.apache.xpath.internal.jaxp;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,
              de.rototor.pdfbox.graphics2d;resolution:=optional,
              edu.mit.ll.mitie;resolution:=optional,
              edu.stanford.nlp.*;resolution:=optional,
              edu.wisc.ssec.mcidas;resolution:=optional,
              edu.wisc.ssec.mcidas.adde;resolution:=optional,
  	          edu.usc.irds.agepredictor.spark.authorage;resolution:=optional,
              javax.activation;resolution:=optional,
              javax.annotation;resolution:=optional,
              javax.annotation.meta;resolution:=optional,
              javax.mail;resolution:=optional,
              javax.mail.internet;resolution:=optional,
              javax.net.ssl;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,
              javax.xml.bind;resolution:=optional,
              javax.xml.bind.annotation;resolution:=optional,
              javax.xml.bind.annotation.adapters;resolution:=optional,
              javax.xml.bind.attachment;resolution:=optional,
              javax.xml.bind.helpers;resolution:=optional,
              javax.xml.bind.util;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,
	            opennlp.tools.authorage;resolution:=optional,
              net.didion.jwnl;resolution:=optional,
              net.sf.saxon;resolution:=optional,
              net.sf.saxon.dom;resolution:=optional,
              net.sf.saxon.lib;resolution:=optional,
              net.sf.saxon.ma.map;resolution:=optional,
              net.sf.saxon.om;resolution:=optional,
              net.sf.saxon.query;resolution:=optional,
              net.sf.saxon.sxpath;resolution:=optional,
              net.sf.saxon.trans;resolution:=optional,
              net.sf.saxon.tree.wrapper;resolution:=optional,
              net.sf.saxon.type;resolution:=optional,
              net.sf.saxon.value;resolution:=optional,
              org.apache.batik.anim.dom;resolution:=optional,
              org.apache.batik.bridge;resolution:=optional,
              org.apache.batik.dom;resolution:=optional,
              org.apache.batik.ext.awt;resolution:=optional,
              org.apache.batik.ext.awt.image.renderable;resolution:=optional,
              org.apache.batik.gvt;resolution:=optional,
              org.apache.batik.parser;resolution:=optional,
              org.apache.batik.svggen;resolution:=optional,
              org.apache.batik.util;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.logging.log4j;resolution:=optional,
              org.apache.logging.log4j.util;resolution:=optional,
              org.apache.logging.log4j.util.internal;resolution:=optional,
              org.apache.logging.log4j.spi;resolution:=optional,
              org.apache.maven.model;resolution:=optional,
              org.apache.maven.plugin;resolution:=optional,
              org.apache.maven.plugin.logging;resolution:=optional,
              org.apache.maven.project;resolution:=optional,
              org.apache.pdfbox.debugger;resolution:=optional,
              org.apache.pdfbox.preflight.*;resolution:=optional,
              org.apache.sis;resolution:=optional,
              org.apache.sis.coverage;resolution:=optional,
              org.apache.sis.coverage.grid;resolution:=optional,
              org.apache.sis.distance;resolution:=optional,
              org.apache.sis.feature;resolution:=optional,
              org.apache.sis.feature.builder;resolution:=optional,
              org.apache.sis.filter;resolution:=optional,
              org.apache.sis.geometry;resolution:=optional,
              org.apache.sis.image;resolution:=optional,
              org.apache.sis.internal.coverage;resolution:=optional,
              org.apache.sis.internal.coverage.j2d;resolution:=optional,
              org.apache.sis.internal.feature;resolution:=optional,
              org.apache.sis.internal.filter;resolution:=optional,
              org.apache.sis.internal.geoapi.filter;resolution:=optional,
              org.apache.sis.internal.referencing;resolution:=optional,
              org.apache.sis.internal.referencing.j2d;resolution:=optional,
              org.apache.sis.internal.referencing.provider;resolution:=optional,
              org.apache.sis.io.wkt;resolution:=optional,
              org.apache.sis.parameter;resolution:=optional,
              org.apache.sis.referencing;resolution:=optional,
              org.apache.sis.referencing.crs;resolution:=optional,
              org.apache.sis.referencing.cs;resolution:=optional,
              org.apache.sis.referencing.datum;resolution:=optional,
              org.apache.sis.referencing.factory;resolution:=optional,
              org.apache.sis.referencing.operation;resolution:=optional,
              org.apache.sis.referencing.operation.builder;resolution:=optional,
              org.apache.sis.referencing.operation.matrix;resolution:=optional,
              org.apache.sis.referencing.operation.transform;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.impl;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.signature;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.asn1.bsi;resolution:=optional,
              org.bouncycastle.asn1.cmp;resolution:=optional,
              org.bouncycastle.asn1.cms;resolution:=optional,
              org.bouncycastle.asn1.cms.ecc;resolution:=optional,
              org.bouncycastle.asn1.crmf;resolution:=optional,
              org.bouncycastle.asn1.cryptlib;resolution:=optional,
              org.bouncycastle.asn1.cryptopro;resolution:=optional,
              org.bouncycastle.asn1.dvcs;resolution:=optional,
              org.bouncycastle.asn1.eac;resolution:=optional,
              org.bouncycastle.asn1.ess;resolution:=optional,
              org.bouncycastle.asn1.est;resolution:=optional,
              org.bouncycastle.asn1.sec;resolution:=optional,
              org.bouncycastle.asn1.smime;resolution:=optional,
              org.bouncycastle.asn1.tsp;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.oer;resolution:=optional,
              org.bouncycastle.oer.its;resolution:=optional,
              org.bouncycastle.oer.its.template;resolution:=optional,
              org.bouncycastle.operator;resolution:=optional,
              org.bouncycastle.operator.bc;resolution:=optional,
              org.bouncycastle.tsp;resolution:=optional,
              org.brotli.dec;resolution:=optional,
              org.checkerframework.checker.nullness.qual;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.jaxen.util;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.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.slf4j.helpers;resolution:=optional,
              org.sqlite;resolution:=optional,
              org.w3c.dom;resolution:=optional,
              org.w3c.dom.ranges;resolution:=optional,
              org.w3c.dom.svg;resolution:=optional,
              org.w3c.dom.traversal;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.java2d.cmm.kcms;resolution:=optional,
              sun.misc;resolution:=optional,
              sun.nio.ch;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,
	          com.google.gson.reflect;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,
              org.apache.commons.logging;resolution:=optional,
              *
            </Import-Package>
          </instructions>
          <createDependencyReducedPom>true</createDependencyReducedPom>
        </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>
        <version>${forbiddenapis.version}</version>
        <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>
              <descriptors>
                <descriptor>test-bundles.xml</descriptor>
              </descriptors>
              <finalName>test</finalName>
              <attach>false</attach>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${maven.failsafe.version}</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <additionalClasspathElements>
          	<additionalClasspathElement>${project.build.directory}/test-bundles/jdk9plus</additionalClasspathElement>
          </additionalClasspathElements>
          <systemPropertyVariables>
            <org.ops4j.pax.logging.DefaultServiceLog.level>
              INFO
            </org.ops4j.pax.logging.DefaultServiceLog.level>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>${rat.version}</version>
        <configuration>
          <excludes>
            <exclude>src/main/resources/META-INF/MANIFEST.MF</exclude>
          </excludes>
        </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>
