<?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.
-->
<plugin
   id="parse-tika"
   name="Tika Parser Plug-in"
   version="1.0.0"
   provider-name="nutch.org">

   <runtime>
      <library name="parse-tika.jar">
         <export name="*"/>
      </library>
      <!-- dependencies of Tika (tika-parsers) -->
      <library name="animal-sniffer-annotations-1.17.jar"/>
      <library name="ant-1.10.5.jar"/>
      <library name="ant-launcher-1.10.5.jar"/>
      <library name="apache-mime4j-core-0.8.3.jar"/>
      <library name="apache-mime4j-dom-0.8.3.jar"/>
      <library name="asm-7.2-beta.jar"/>
      <library name="bcmail-jdk15on-1.62.jar"/>
      <library name="bcpkix-jdk15on-1.62.jar"/>
      <library name="bcprov-jdk15on-1.62.jar"/>
      <library name="boilerpipe-1.1.0.jar"/>
      <library name="bzip2-0.9.1.jar"/>
      <library name="c3p0-0.9.5.4.jar"/>
      <library name="cdm-4.5.5.jar"/>
      <library name="checker-qual-2.8.1.jar"/>
      <library name="codemodel-2.3.2.jar"/>
      <library name="commons-csv-1.7.jar"/>
      <library name="commons-exec-1.3.jar"/>
      <library name="commons-io-2.6.jar"/>
      <library name="commons-logging-1.2.jar"/>
      <library name="commons-math3-3.6.1.jar"/>
      <library name="curvesapi-1.05.jar"/>
      <library name="cxf-rt-rs-client-3.3.2.jar"/>
      <library name="cxf-rt-security-3.3.2.jar"/>
      <library name="dec-0.1.2.jar"/>
      <library name="dtd-parser-1.4.1.jar"/>
      <library name="ehcache-core-2.6.2.jar"/>
      <library name="error_prone_annotations-2.3.2.jar"/>
      <library name="failureaccess-1.0.1.jar"/>
      <library name="FastInfoset-1.2.16.jar"/>
      <library name="fontbox-2.0.16.jar"/>
      <library name="geoapi-3.0.1.jar"/>
      <library name="grib-4.5.5.jar"/>
      <library name="gson-2.8.5.jar"/>
      <library name="guava-28.0-jre.jar"/>
      <library name="httpmime-4.5.9.jar"/>
      <library name="httpservices-4.5.5.jar"/>
      <library name="isoparser-1.1.22.jar"/>
      <library name="istack-commons-runtime-3.0.8.jar"/>
      <library name="istack-commons-tools-3.0.8.jar"/>
      <library name="j2objc-annotations-1.3.jar"/>
      <library name="jackcess-3.0.1.jar"/>
      <library name="jackcess-encrypt-3.0.0.jar"/>
      <library name="jai-imageio-core-1.4.0.jar"/>
      <library name="jakarta.activation-1.2.1.jar"/>
      <library name="jakarta.activation-api-1.2.1.jar"/>
      <library name="jakarta.ws.rs-api-2.1.5.jar"/>
      <library name="jakarta.xml.bind-api-2.3.2.jar"/>
      <library name="java-libpst-0.8.1.jar"/>
      <library name="javax.annotation-api-1.3.2.jar"/>
      <library name="jaxb-runtime-2.3.2.jar"/>
      <library name="jaxb-xjc-2.3.2.jar"/>
      <library name="jbig2-imageio-3.0.2.jar"/>
      <library name="jcip-annotations-1.0.jar"/>
      <library name="jcl-over-slf4j-1.7.26.jar"/>
      <library name="jcommander-1.35.jar"/>
      <library name="jdom2-2.0.6.jar"/>
      <library name="jempbox-1.8.16.jar"/>
      <library name="jhighlight-1.0.3.jar"/>
      <library name="jmatio-1.5.jar"/>
      <library name="jna-5.3.1.jar"/>
      <library name="joda-time-2.2.jar"/>
      <library name="json-simple-1.1.1.jar"/>
      <library name="jsoup-1.12.1.jar"/>
      <library name="jsr305-3.0.2.jar"/>
      <library name="jul-to-slf4j-1.7.26.jar"/>
      <library name="juniversalchardet-1.0.3.jar"/>
      <library name="junrar-4.0.0.jar"/>
      <library name="listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar"/>
      <library name="mchange-commons-java-0.2.15.jar"/>
      <library name="metadata-extractor-2.11.0.jar"/>
      <library name="netcdf4-4.5.5.jar"/>
      <library name="openjson-1.0.11.jar"/>
      <library name="opennlp-tools-1.9.1.jar"/>
      <library name="parso-2.0.11.jar"/>
      <library name="pdfbox-2.0.16.jar"/>
      <library name="pdfbox-tools-2.0.16.jar"/>
      <library name="poi-4.0.1.jar"/>
      <library name="poi-ooxml-4.0.1.jar"/>
      <library name="poi-ooxml-schemas-4.0.1.jar"/>
      <library name="poi-scratchpad-4.0.1.jar"/>
      <library name="quartz-2.2.0.jar"/>
      <library name="relaxng-datatype-2.3.2.jar"/>
      <library name="rngom-2.3.2.jar"/>
      <library name="rome-1.12.1.jar"/>
      <library name="rome-utils-1.12.1.jar"/>
      <library name="sentiment-analysis-parser-0.1.jar"/>
      <library name="sis-feature-0.8.jar"/>
      <library name="sis-metadata-0.8.jar"/>
      <library name="sis-netcdf-0.8.jar"/>
      <library name="sis-referencing-0.8.jar"/>
      <library name="sis-storage-0.8.jar"/>
      <library name="sis-utility-0.8.jar"/>
      <library name="stax2-api-3.1.4.jar"/>
      <library name="stax-ex-1.8.1.jar"/>
      <library name="tagsoup-1.2.1.jar"/>
      <library name="tika-parsers-1.22.jar"/>
      <library name="txw2-2.3.2.jar"/>
      <library name="udunits-4.5.5.jar"/>
      <library name="unit-api-1.0.jar"/>
      <library name="vorbis-java-core-0.8.jar"/>
      <library name="vorbis-java-tika-0.8.jar"/>
      <library name="woodstox-core-5.0.3.jar"/>
      <library name="xercesImpl-2.12.0.jar"/>
      <library name="xmlbeans-3.0.2.jar"/>
      <library name="xmlschema-core-2.2.4.jar"/>
      <library name="xmpcore-5.1.3.jar"/>
      <library name="xsom-2.3.2.jar"/>
      <library name="xz-1.8.jar"/>
      <!-- end of dependencies of Tika (tika-parsers) -->
   </runtime>

   <requires>
      <import plugin="nutch-extensionpoints"/>
   </requires>

   <extension point="org.apache.nutch.parse.Parser"
              id="org.apache.nutch.parse.tika"
              name="TikaParser">

      <implementation id="org.apache.nutch.parse.tika.TikaParser"
                      class="org.apache.nutch.parse.tika.TikaParser">
       <parameter name="contentType" value="*"/>
      </implementation>

   </extension>

</plugin>
