<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://ivyrep.jayasoft.org/ivy-doc.xsl"?>
<ivy-module
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:noNamespaceSchemaLocation="http://incubator.apache.org/ivy/schemas/ivy.xsd"
		version="1.3">

	<info organisation="${project.organisation}" module="${ant.project.name}"/>

	<configurations>
		<include file="${virgo.build.dir}/common/default-ivy-configurations.xml"/>
	</configurations>

	<publications>
		<artifact name="${ant.project.name}"/>
		<artifact name="${ant.project.name}-sources" type="src" ext="jar"/>
	</publications>

	<dependencies>
		<dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.api" rev="${org.slf4j.api}" conf="compile->runtime"/>
		<dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
		
		<dependency org="org.eclipse.virgo.repository" name="org.eclipse.virgo.repository" rev="${org.eclipse.virgo.repository}" conf="compile->runtime"/>
		<dependency org="org.eclipse.virgo.kernel" name="org.eclipse.virgo.kernel.services" rev="${org.eclipse.virgo.kernel}" conf="server-provided->runtime"/>		
		<dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic" rev="${org.eclipse.virgo.medic}" conf="aspects, server-provided->runtime"/>
		<dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic.core" rev="${org.eclipse.virgo.medic}" conf="aspects, server-provided->runtime"/>
		<dependency org="org.eclipse.virgo.medic" name="org.eclipse.virgo.medic.test" rev="${org.eclipse.virgo.medic}" conf="test->runtime"/>
		<dependency org="org.eclipse.virgo.util" name="org.eclipse.virgo.util.io" rev="${org.eclipse.virgo.util}" conf="test, server-provided->runtime"/>
		<dependency org="org.eclipse.gemini" name="org.eclipse.gemini.web.core" rev="${org.eclipse.gemini.web}" conf="test, server-provided->runtime"/>
		<dependency org="org.eclipse.virgo.util" name="org.eclipse.virgo.util.osgi.manifest" rev="${org.eclipse.virgo.util}" conf="test, server-provided->runtime"/>
		<dependency org="org.eclipse.virgo.util" name="org.eclipse.virgo.util.jmx" rev="${org.eclipse.virgo.util}" conf="aspects->runtime"/>
		<dependency org="org.eclipse.virgo.test" name="org.eclipse.virgo.test.launcher" rev="${org.eclipse.virgo.test}" conf="test, server-provided->runtime"/>
        <dependency org="org.eclipse.gemini" name="org.eclipse.gemini.blueprint.core" rev="${org.eclipse.gemini.blueprint}" conf="test->runtime"/>
		<dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>	
		<dependency org="org.easymock" name="com.springsource.org.easymock" rev="${org.easymock}" conf="test->runtime"/>	
		
		<override org="org.springframework" rev="${org.springframework}"/>
		<!-- Override the version of util so the transitive dependency of Gemini Web is ignored. This avoids the need to update Gemini Web, for example when
		     rippling a util change to web which does not affect Gemini Web. -->
		<override org="org.eclipse.virgo.util" rev="${org.eclipse.virgo.util}" />
        <override org="org.eclipse.virgo.test" rev="${org.eclipse.virgo.test}" />
		
	</dependencies>

</ivy-module>
