# Licensed to the Apache Software Foundation (ASF) under the terms of ASLv2 (http://www.apache.org/licenses/LICENSE-2.0).

-buildpath: \
	${^-buildpath},\
	osgi.core;version=6.0.0,\
	osgi.cmpn,\
	org.apache.felix.dependencymanager,\
	org.apache.ace.test;version=latest,\
	aws-common;version=1.5.0.beta_6,\
	aws-ec2;version=1.5.0.beta_6,\
	bcprov.jdk14;version=1.40.0,\
	org.apache.commons.io;version=2.0,\
	ec2;version=1.5.0.beta_6,\
	com.google.gson;version=2.2,\
	com.google.guava;version=12.0,\
	com.google.inject;version=3.0,\
	com.google.inject.assistedinject;version=3.0,\
	com.vaadin,\
	javax.inject;version=1,\
	jclouds-bouncycastle;version=1.5.0.beta_6,\
	jclouds-compute;version=1.5.0.beta_6,\
	jclouds-core;version=1.5.0.beta_6,\
	jclouds-scriptbuilder;version=1.5.0.beta_6,\
	jclouds-slf4j;version=1.5.0.beta_6,\
	jclouds-sshj;version=1.5.0.beta_6,\
	com.sun.jersey.core;version=1.13.0,\
	jsr305,\
	aopalliance;version=1.0,\
	jsr250.api;version=1.0,\
	oauth;version=2010.5.27,\
	rocoto;version=6.1,\
	net.schmizz.sshj;version=0.8.1,\
	org.apache.ace.webui.vaadin;version=latest,\
	org.apache.ace.client.repository.api;version=latest,\
	slf4j.api;version=1.6.4
-sub: *.bnd
