<?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="nutch">
		<license name="Apache 2.0"
			url="http://www.apache.org/licenses/LICENSE-2.0.txt/" />
		<ivyauthor name="Apache Nutch Team" url="http://nutch.apache.org" />
		<description homepage="http://nutch.apache.org">Nutch is an open source web-search
			software. It builds on
			Hadoop, Tika and Solr, adding web-specifics,
			such as a crawler, a link-graph
			database etc.
		</description>
	</info>
	
	<configurations>
		<include file="${basedir}/ivy/ivy-configurations.xml" />
	</configurations>
	
	<publications>
		<!--get the artifact from our module name -->
		<artifact conf="master" />
	</publications>
	
	<dependencies>
		<dependency org="org.slf4j" name="slf4j-api" rev="1.6.1"
			conf="*->master" />
		<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.6.1"
			conf="*->master" />
		
		<dependency org="log4j" name="log4j" rev="1.2.15" conf="*->master" />
		
		<dependency org="commons-lang" name="commons-lang" rev="2.6"
			conf="*->default" />
		<dependency org="commons-collections" name="commons-collections"
			rev="3.1" conf="*->default" />
		<dependency org="commons-httpclient" name="commons-httpclient"
			rev="3.1" conf="*->master" />
		<dependency org="commons-codec" name="commons-codec" rev="1.3"
			conf="*->default" />
                <dependency org="org.apache.commons" name="commons-compress" rev="1.9" 
                        conf="*->default" />	
		<dependency org="org.apache.hadoop" name="hadoop-core" rev="1.2.0"
			conf="*->default">
			<exclude org="hsqldb" name="hsqldb" />
			<exclude org="net.sf.kosmosfs" name="kfs" />
			<exclude org="net.java.dev.jets3t" name="jets3t" />
			<exclude org="org.eclipse.jdt" name="core" />
			<exclude org="org.mortbay.jetty" name="jsp-*" />
			<exclude org="ant" name="ant" />
		</dependency>

		<dependency org="org.apache.tika" name="tika-core" rev="1.8" />
		<dependency org="com.ibm.icu" name="icu4j" rev="55.1" />

		<dependency org="xerces" name="xercesImpl" rev="2.9.1" />
		<dependency org="xerces" name="xmlParserAPIs" rev="2.6.2" />
		<dependency org="oro" name="oro" rev="2.0.8" />

		<dependency org="com.google.guava" name="guava" rev="11.0.2" />
		<dependency org="com.google.code.crawler-commons" name="crawler-commons"
			rev="0.5" />
                <dependency org="org.apache.cxf" name="cxf" rev="3.0.4"/>
                <dependency org="org.apache.cxf" name="cxf-rt-frontend-jaxws" rev="3.0.4"/>
                <dependency org="org.apache.cxf" name="cxf-rt-frontend-jaxrs" rev="3.0.4"/>
                <dependency org="org.apache.cxf" name="cxf-rt-transports-http" rev="3.0.4"/>
                <dependency org="org.apache.cxf" name="cxf-rt-transports-http-jetty" rev="3.0.4"/>
                <dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.5.1" /> 
                <dependency org="com.fasterxml.jackson.dataformat" name="jackson-dataformat-cbor" rev="2.5.1" />
                <dependency org="com.fasterxml.jackson.jaxrs" name="jackson-jaxrs-json-provider" rev="2.5.1" />	

		<!--Configuration: test -->

		<!--artifacts needed for testing -->
		<dependency org="junit" name="junit" rev="4.11" conf="test->default" />

		<dependency org="org.apache.hadoop" name="hadoop-test" rev="1.2.0"
			conf="test->default" />

		<dependency org="org.mortbay.jetty" name="jetty-client"
			rev="6.1.22" conf="test->default" />

		<dependency org="org.mortbay.jetty" name="jetty" rev="6.1.22"
			conf="test->default" />
		<dependency org="org.mortbay.jetty" name="jetty-util" rev="6.1.22"
			conf="test->default" />

		<!--global exclusion -->
		<exclude module="jmxtools" />
		<exclude module="jms" />
		<exclude module="jmxri" />

	</dependencies>

</ivy-module>
