target "Papyrus Neon" with source requirements

location "http://download.eclipse.org/releases/neon/" eclipse-neon {
 org.eclipse.draw2d.feature.group lazy
 org.eclipse.emf.feature.group lazy
 org.eclipse.emf.mwe2.language.sdk.feature.group lazy
 org.eclipse.emf.mwe2.runtime.sdk.feature.group lazy
 org.eclipse.emf.mwe.core.feature.feature.group lazy
 org.eclipse.emf.mwe.sdk.feature.group lazy
 org.eclipse.emf.mwe.ui.feature.feature.group lazy // remove?
 org.eclipse.emf.validation.ocl.feature.group lazy
 org.eclipse.equinox.executable.feature.group lazy
 org.eclipse.equinox.p2.discovery.feature.feature.group lazy
 org.eclipse.gmf.feature.group lazy
 org.eclipse.gmf.tooling.runtime.feature.group lazy
 org.eclipse.jdt.feature.group lazy
 org.eclipse.m2m.qvt.oml.feature.group lazy
 org.eclipse.m2m.qvt.oml.project lazy // no feature
 org.eclipse.ocl.all.feature.group lazy // no feature group for ocl.ecore alone
 org.eclipse.ocl.common.ui lazy // no feature group or feature
 org.eclipse.ocl.core.sdk.feature.group lazy // necessary?
 org.eclipse.ocl.examples.feature.group lazy 
 org.eclipse.ocl.uml.feature.group lazy
 org.eclipse.papyrus.sdk.feature.feature.group lazy
 org.eclipse.pde.feature.group lazy
 org.eclipse.platform.feature.group lazy
 org.eclipse.rcp.feature.group lazy
 org.eclipse.uml2.feature.group lazy
 org.eclipse.wst.common_core.feature.feature.group lazy
 org.eclipse.wst.xml_core.feature.feature.group lazy
 org.eclipse.xpand.feature.group lazy
 org.eclipse.xsd.feature.group lazy
 org.eclipse.xtend.feature.group lazy
 org.eclipse.xtend.sdk.feature.group lazy
 org.eclipse.xtext.runtime.feature.group lazy
 org.eclipse.xtext.sdk.feature.group lazy
 org.eclipse.xtext.ui.feature.group lazy
 org.eclipse.xtext.xbase.feature.group lazy
 org.eclipse.xtext.xbase.lib.feature.group lazy
 org.eclipse.xwt.feature.feature.group lazy
}

// Only for testing!
location "http://download.eclipse.org/e4/snapshots/org.eclipse.e4.tools/latest/" e4-tools {
	org.eclipse.e4.tools.spies.feature.feature.group lazy
}

location "http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository/" orbit {
 org.apache.batik.bridge [1.6.0,1.7.0)
 org.apache.batik.css [1.6.0,1.7.0)
 org.apache.batik.dom [1.6.0,1.7.0)
 org.apache.batik.dom.svg [1.6.0,1.7.0)
 org.apache.batik.ext.awt [1.6.0,1.7.0)
 org.apache.batik.parser [1.6.0,1.7.0)
 org.apache.batik.pdf [1.6.0,1.7.0)
 org.apache.batik.svggen [1.6.0,1.7.0)
 org.apache.batik.transcoder [1.6.0,1.7.0)
 org.apache.batik.xml [1.6.0,1.7.0)
 org.apache.batik.util [1.6.0,1.7.0)
}

/**
 * EMF Compare with logical model support for EGit
 */
location "http://download.eclipse.org/modeling/emf/compare/updates/logical/emf.compare/integration" {
	org.eclipse.emf.compare.diagram.gmf.feature.group lazy
	org.eclipse.emf.compare.diagram.papyrus.feature.group lazy
	org.eclipse.emf.compare.egit.feature.group lazy
	org.eclipse.emf.compare.feature.group lazy
	org.eclipse.emf.compare.ide.ui.feature.group lazy
	org.eclipse.emf.compare.rcp.ui.feature.group lazy
	org.eclipse.emf.compare.uml2.feature.group lazy
}

location "http://download.eclipse.org/modeling/emf/compare/updates/egit-logical/integration" {
	org.eclipse.egit.feature.group lazy
	org.eclipse.jgit.feature.group lazy
}

/**
 * Dependencies of EMF Compare with logical model support for EGit
 */ 
location "http://download.eclipse.org/cbi/updates/license" {
	org.eclipse.license.feature.group [1.0.1,1.1.0)
}

location "http://download.eclipse.org/tools/orbit/downloads/drops/R20150519210750/repository/" {
	com.google.guava [11.0.2,11.0.3)
	org.junit [4.0.0,5.0.0)
	org.apache.log4j [1.2.0,1.3.0)
	javaewah
	org.apache.commons.compress
	org.kohsuke.args4j
	org.mockito [1.9.0,2.0.0)
	org.hamcrest [1.1.0,2.0.0)
}
