<?xml version='1.0' encoding='UTF-8'?>
<ivy-module xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd" version="2.0">

    <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' ext='jar' type='src'/>
    </publications>

    <dependencies>
        <dependency org="org.eclipse.virgo.mirrored" name='org.eclipse.osgi' rev='${org.eclipse.osgi}' conf='compile->compile' />
        <dependency org="org.eclipse.virgo.mirrored" name='org.eclipse.osgi.services' rev='${org.eclipse.osgi.services}' conf='compile->compile' />
        <dependency org="org.eclipse.virgo.mirrored" name='org.eclipse.equinox.region' rev='${org.eclipse.equinox.region}' conf='compile->compile' />
        <dependency org='org.eclipse.virgo.medic' name='org.eclipse.virgo.medic' rev='${org.eclipse.virgo.medic}' conf='aspects, compile->runtime'/>
        <dependency org="org.eclipse.virgo.kernel" name="org.eclipse.virgo.kernel.osgi" rev="latest.integration" conf="compile->compile"/>
        <dependency org="org.eclipse.virgo.nano" name="org.eclipse.virgo.nano.core" rev="${org.eclipse.virgo.nano}" conf="compile->compile"/>
        <dependency org='org.eclipse.virgo.util' name='org.eclipse.virgo.util.osgi' rev='${org.eclipse.virgo.util}' conf='compile->compile' />
        <dependency org='org.eclipse.virgo.util' name='org.eclipse.virgo.util.osgi.manifest' rev='${org.eclipse.virgo.util}' conf='compile->compile' />
        <dependency org='org.eclipse.virgo.util' name='org.eclipse.virgo.util.parser.launcher' rev='${org.eclipse.virgo.util}' conf='compile->compile' />
		<!-- TEST -->
		<dependency org="org.junit" name="com.springsource.org.junit" rev="${org.junit}" conf="test->runtime"/>
        <dependency org="org.eclipse.virgo.mirrored" name="org.slf4j.nop" rev="${org.slf4j.nop}" conf="test->runtime"/>
        <dependency org="org.easymock" name="com.springsource.org.easymock" rev="${org.easymock}" conf="test->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.test' name='org.eclipse.virgo.test.stubs' rev='${org.eclipse.virgo.test}' conf='test->runtime'/>
        
        <exclude org="org.eclipse.osgi"/>
        
        <override org="org.slf4j" rev="${org.slf4j.nop}"/>
    </dependencies>

</ivy-module>
