###############################################################################
# Copyright (c) 2011, 2012 Red Hat, Inc. 
# All rights reserved. 
# This program is made available under the terms of the 
# Eclipse Public License v1.0 which accompanies this distribution, 
# and is available at http://www.eclipse.org/legal/epl-v10.html 
#
# Contributors: 
# Red Hat, Inc. - initial API and implementation 
###############################################################################
# associate site(s) - use comma to separate list - to add to the resulting repo 
# TODO: change bpmn2 metamodel download location as soon as an official update site is available
# https://hudson.eclipse.org/hudson/job/bpmn2-nightly/ws/org.eclipse.bpmn2.site/target/site/ should point to an download.eclipse.org update site 
associate.sites=http://download.eclipse.org/graphiti/updates/0.9.0/,https://hudson.eclipse.org/hudson/job/bpmn2-nightly/lastSuccessfulBuild/artifact/org.eclipse.bpmn2.site/target/site/,http://download.eclipse.org/bpmn2-modeler/site/,http://download.eclipse.org/bpel/site/,http://download.eclipse.org/releases/indigo,http://download.eclipse.org/eclipse/updates/3.7
