target "Compare Target Platform - Nightly" with source requirements

location "http://download.eclipse.org/releases/2020-03/" eclipse-2020-03 {
	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
	org.eclipse.jgit.http.apache.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/I20200203200403/repository/" orbit{
	org.apache.commons.io lazy
	org.apache.commons.io.source lazy
	com.google.inject lazy
	com.google.guava [27.0.0,28.0.0)
	com.google.guava.source [27.0.0,28.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)
}
