target "Compare Target Platform - Nightly" with source requirements

location "http://download.eclipse.org/staging/2018-12/" eclipse-2018-12 {
	org.eclipse.draw2d lazy
	org.eclipse.gef lazy
	org.eclipse.ocl.core.sdk.feature.group lazy
	org.eclipse.ocl.examples.classic.feature.group lazy
	org.eclipse.ocl.examples.feature.group lazy
	org.eclipse.emf.sdk.feature.group lazy
	org.eclipse.xsd.sdk.feature.group lazy
	org.eclipse.sdk.feature.group lazy
	org.eclipse.platform.feature.group lazy
	org.eclipse.rcp.feature.group lazy
	org.eclipse.jdt.feature.group lazy
	org.eclipse.equinox.p2.discovery.feature.feature.group lazy
	org.eclipse.equinox.executable.feature.group lazy
}

/*
 * If changed, this should also be changed in Papyrus Compare's root pom.xml, in the nightly profile
 * Search all references to egit.p2.repo
 */
location "http://download.eclipse.org/egit/updates" EGit {
	org.eclipse.egit.feature.group lazy
	org.eclipse.jgit.feature.group lazy
}

location  "http://download.eclipse.org/modeling/mdt/papyrus/updates/nightly/master" {
	org.eclipse.papyrus.sdk.feature.feature.group lazy
	org.eclipse.papyrus.views.properties.toolsmiths lazy
}

location xwt "http://download.eclipse.org/xwt/updates" {
	org.eclipse.xwt.feature.feature.group [1.3.1,2.0.0)
}

/*
 * If changed, this should also be changed in Papyrus Compare's root pom.xml, in the nightly profile
 * Search all references to emf-compare.p2.repo
 */
location "https://download.eclipse.org/modeling/emf/compare/updates/nightly/latest" emfCompare {
	org.eclipse.emf.compare.source.feature.group lazy
	org.eclipse.emf.compare.diagram.gmf.source.feature.group lazy
	org.eclipse.emf.compare.uml2.source.feature.group lazy
	org.eclipse.emf.compare.egit.source.feature.group lazy
	org.eclipse.emf.compare.ide.ui.source.feature.group lazy
	org.eclipse.emf.compare.rcp.ui.source.feature.group lazy
}

location  "https://download.eclipse.org/tools/orbit/downloads/drops/R20181128170323/repository/" orbit{
	org.apache.commons.io lazy
	org.apache.commons.io.source lazy
	com.google.inject lazy
	com.google.guava [21.0.0,22.0.0)
	com.google.guava.source [21.0.0,22.0.0)
	/* Egit/Jgit */
	javaewah lazy
	org.apache.commons.compress lazy
	org.apache.commons.lang lazy
	org.kohsuke.args4j lazy
	org.mockito [1.9.0,2.0.0)
	org.hamcrest lazy
	org.hamcrest.library lazy
	org.hamcrest.integration lazy
	org.hamcrest.text lazy
	org.objenesis [1.0.0,2.0.0)
}
