<?xml version="1.0" encoding="UTF-8"?>
<cspecExtension
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
	xmlns="http://www.eclipse.org/buckminster/CSpec-1.0">
	<dependencies>
		<dependency name="org.eclipse.emf.parsley.cdo.tests" 
			componentType="osgi.bundle" />
		<dependency name="org.eclipse.emf.parsley.tests" 
			componentType="osgi.bundle" />
		<dependency name="org.eclipse.emf.parsley.dsl.tests" 
			componentType="osgi.bundle" />
		<dependency name="org.eclipse.emf.parsley.tests.swtbot.feature" 
			componentType="eclipse.feature" />
		<dependency name="org.eclipse.emf.parsley.tests.swtbot.cdo.feature" 
			componentType="eclipse.feature" />
		<dependency name="org.eclipse.emf.parsley.examples.mail.product.site" 
			componentType="eclipse.feature" />
		<dependency name="org.eclipse.emf.parsley.examples.eclipse4.product.feature" 
			componentType="eclipse.feature" />
		<dependency name="org.eclipse.emf.parsley.examples.cdo.product.feature" 
			componentType="eclipse.feature" />
		<dependency name="org.eclipse.emf.parsley.examples.firstexample" 
			componentType="osgi.bundle" />
	</dependencies>
    <actions>
    	<public name="run.findbugs" actor="ant">
	       <actorProperties>
	           <property key="buildFile" value="findbugs.ant"/>
	           <property key="targets" value="findbugs"/>
	       </actorProperties>
	       <prerequisites>
	           <attribute name="site.p2" 
	           		alias="site.p2.repository"/>
	       </prerequisites>
	       <products alias="action.output" base="${buckminster.output.root}/findbugs/"/>
	   </public>
        <public name="eclipse-install-test-indigo" actor="ant">
            <actorProperties>
                <property key="buildFile" value="eclipse-install-test/eclipse-install-test.ant"/>
                <property key="targets" value="test.install.in.indigo"/>
            </actorProperties>
            <prerequisites alias="repository">
                <attribute name="site.p2" />
            </prerequisites>
        </public>
        <public name="eclipse-install-test-juno" actor="ant">
            <actorProperties>
                <property key="buildFile" value="eclipse-install-test/eclipse-install-test.ant"/>
                <property key="targets" value="test.install.in.juno"/>
            </actorProperties>
            <prerequisites alias="repository">
                <attribute name="site.p2" />
            </prerequisites>
        </public>
        <public name="eclipse-install-test-kepler" actor="ant">
            <actorProperties>
                <property key="buildFile" value="eclipse-install-test/eclipse-install-test.ant"/>
                <property key="targets" value="test.install.in.kepler"/>
            </actorProperties>
            <prerequisites alias="repository">
                <attribute name="site.p2" />
            </prerequisites>
        </public>
    </actions>
    <groups>
        <public name="eclipse-install-test">
            <attribute name="eclipse-install-test-indigo"/>
            <attribute name="eclipse-install-test-juno"/>
            <attribute name="eclipse-install-test-kepler"/>
        </public>
    </groups>
</cspecExtension>
