<?xml version="1.0" ?>

<!--
   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.
-->

<ivy-module version="1.0">
  <info organisation="org.apache.nutch" module="${ant.project.name}">
    <license name="Apache 2.0"/>
    <ivyauthor name="Apache Nutch Team" url="http://nutch.apache.org"/>
    <description>
        Apache Nutch
    </description>
  </info>

  <configurations>
    <include file="../../../ivy/ivy-configurations.xml"/>
  </configurations>

  <publications>
    <!--get the artifact from our module name-->
    <artifact conf="master"/>
  </publications>

  <dependencies>
    <dependency org="org.apache.tika" name="tika-parsers" rev="1.22" conf="*->default">
      <!-- exclusions of dependencies provided in Nutch core (ivy/ivy.xml) -->
      <exclude org="org.apache.tika" name="tika-core" />
      <exclude org="org.apache.httpcomponents" name="httpclient" />
      <exclude org="org.apache.httpcomponents" name="httpcore" />
      <exclude org="commons-lang" name="commons-lang" />
      <exclude org="org.apache.commons" name="commons-lang3" />
      <exclude org="org.apache.commons" name="commons-codec" />
      <exclude org="commons-codec" name="commons-codec" /><!-- older versions are published with org=commons-codec -->
      <exclude org="org.apache.commons" name="commons-collections4" />
      <exclude org="org.apache.commons" name="commons-compress" />
      <exclude org="org.apache.cxf" name="cxf-core" />
      <exclude org="org.apache.cxf" name="cxf-rt-transports-http" />
      <exclude org="org.apache.cxf" name="cxf-rt-frontend-jaxrs" />
      <exclude org="com.fasterxml.jackson.core" name="jackson-core" />
      <exclude org="com.fasterxml.jackson.core" name="jackson-databind" />
      <exclude org="com.fasterxml.jackson.core" name="jackson-annotations" />
      <exclude org="com.google.protobuf" name="protobuf-java" />
      <exclude org="org.slf4j" name="slf4j-log4j12" />
      <exclude org="org.slf4j" name="slf4j-api" />
      <exclude org="xml-apis" name="xml-apis" /><!-- must be provided in core as it is used also by tika-core -->
    </dependency>
  </dependencies>
  
</ivy-module>
