target "Compare Target Platform - Nightly" with source requirements

location "http://download.eclipse.org/staging/oxygen/" eclipse-oxygen {
	org.eclipse.platform.feature.group lazy
	org.eclipse.sdk.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
	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
}

/*
 * 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 [4.9.0,5.0.0)
	org.eclipse.jgit.feature.group [4.9.0,5.0.0)
}

location papyrusNightly "http://download.eclipse.org/modeling/mdt/papyrus/updates/nightly/oxygen" {
	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 emfCompare "http://download.eclipse.org/modeling/emf/compare/updates/logical/emf.compare/nightly/latest/" {
	org.eclipse.emf.compare.feature.group lazy
	org.eclipse.emf.compare.diagram.gmf.feature.group lazy
	org.eclipse.emf.compare.uml2.feature.group lazy
	org.eclipse.emf.compare.egit.feature.group lazy
	org.eclipse.emf.compare.ide.ui.feature.group lazy
	org.eclipse.emf.compare.rcp.ui.feature.group lazy
}

location orbit "http://download.eclipse.org/tools/orbit/downloads/drops/R20170307180635/repository" {
	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)
}
