diff --git a/core/src/main/java/org/jclouds/util/Utils.java b/core/src/main/java/org/jclouds/util/Utils.java new file mode 100644 index 0000000000..23b75726b3 --- /dev/null +++ b/core/src/main/java/org/jclouds/util/Utils.java @@ -0,0 +1,333 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + */ + +package org.jclouds.util; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.lang.reflect.InvocationTargetException; +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Map.Entry; +import java.util.regex.Pattern; + +import javax.annotation.Nullable; + +import org.jclouds.PropertiesBuilder; +import org.jclouds.domain.Credentials; +import org.jclouds.rest.Providers; +import org.jclouds.rest.RestContextBuilder; + +import com.google.common.base.Supplier; +import com.google.common.io.OutputSupplier; +import com.google.inject.Module; +import com.google.inject.ProvisionException; +import com.google.inject.util.Modules; + +/** + * General utilities used in jclouds code. + * + *

note

Please look for locations of new utility methods + * + * @author Adrian Cole + */ +@Deprecated +public class Utils { + + /** + * + * @see Throwables2.propagateAuthorizationOrOriginalException + */ + @Deprecated + public static T propagateAuthorizationOrOriginalException(Exception e) { + return Throwables2. propagateAuthorizationOrOriginalException(e); + } + + /** + * + * @see Lists2#multiMax + */ + @Deprecated + @SuppressWarnings("unchecked") + public static List multiMax(Comparator ordering, Iterable iterable) { + return Lists2. multiMax(ordering, iterable); + } + + /** + * + * @see Throwables2#propagateOrNull + */ + @Deprecated + public static T propagateOrNull(Exception from) { + return Throwables2. propagateOrNull(from); + } + + /** + * + * @see Throwables2#getFirstThrowableOfType(Throwable, Class) + */ + @Deprecated + @SuppressWarnings("unchecked") + public static T getFirstThrowableOfType(Throwable from, Class clazz) { + return Throwables2. getFirstThrowableOfType(from, clazz); + } + + /** + * + * @see Throwables2#getFirstThrowableOfType(ProvisionException, Class) + */ + @Deprecated + public static T getFirstThrowableOfType(ProvisionException e, Class clazz) { + return Throwables2. getFirstThrowableOfType(e, clazz); + } + + /** + * + * @see Strings2#replaceTokens + */ + @Deprecated + public static String replaceTokens(String value, Iterable> tokenValues) { + return Strings2.replaceTokens(value, tokenValues); + } + + /** + * + * @see Strings2#replaceAll(String,Pattern, String) + */ + @Deprecated + public static String replaceAll(String returnVal, Pattern pattern, String replace) { + return Strings2.replaceAll(returnVal, pattern, replace); + } + + /** + * + * @see Strings2#replaceAll(String,char,Pattern, String) + */ + @Deprecated + public static String replaceAll(String input, char ifMatch, Pattern pattern, String replacement) { + return Strings2.replaceAll(input, ifMatch, pattern, replacement); + } + + /** + * + * @see Strings2#replaceAll(String,char, String) + */ + @Deprecated + public static String replaceAll(String input, char match, String replacement) { + return Strings2.replaceAll(input, match, replacement); + } + + /** + * + * @see Suppliers2#newOutputStreamSupplier + */ + @Deprecated + public static OutputSupplier newOutputStreamSupplier(final OutputStream output) { + return Suppliers2.newOutputStreamSupplier(output); + } + + /** + * + * @see Assertions#eventuallyTrue + */ + @Deprecated + public static boolean eventuallyTrue(Supplier assertion, long inconsistencyMillis) + throws InterruptedException { + return Assertions.eventuallyTrue(assertion, inconsistencyMillis); + } + + /** + * + * @see Strings2#toStringAndClose + */ + @Deprecated + public static String toStringAndClose(InputStream input) throws IOException { + return Strings2.toStringAndClose(input); + } + + /** + * + * @see Strings2#toInputStream + */ + @Deprecated + public static InputStream toInputStream(String in) { + return Strings2.toInputStream(in); + } + + /** + * + * @see Strings2#encodeString(String, String) + */ + @Deprecated + public static byte[] encodeString(String str, String charsetName) { + return Strings2.encodeString(str, charsetName); + } + + /** + * + * @see Strings2#encodeString(String) + */ + @Deprecated + public static byte[] encodeString(String str) { + return Strings2.encodeString(str); + } + + /** + * + * @see Strings2#replaceTokens(String,Map) + */ + @Deprecated + public static String replaceTokens(String input, Map replacements) { + return Strings2.replaceTokens(input, replacements); + } + + /** + * + * @see Preconditions2#checkNotEmpty(String) + */ + @Deprecated + public static void checkNotEmpty(String nullableString) { + Preconditions2.checkNotEmpty(nullableString); + } + + /** + * + * @see Preconditions2#checkNotEmpty(String,String) + */ + @Deprecated + public static void checkNotEmpty(String nullableString, String message) { + Preconditions2.checkNotEmpty(nullableString, message); + } + + /** + * + * @see Providers#getSupportedProviders + */ + @Deprecated + public static Iterable getSupportedProviders() { + return Providers.getSupportedProviders(); + } + + /** + * + * @see Providers#getSupportedProvidersOfType + */ + @SuppressWarnings("unchecked") + @Deprecated + public static Iterable getSupportedProvidersOfType(Class type) { + return Providers.getSupportedProvidersOfType(type); + } + + /** + * + * @see Providers#getSupportedProvidersOfTypeInProperties + */ + @SuppressWarnings("unchecked") + @Deprecated + public static Iterable getSupportedProvidersOfTypeInProperties( + final Class type, final Properties properties) { + return Providers.getSupportedProvidersOfTypeInProperties(type, properties); + } + + /** + * + * @see Providers#resolveContextBuilderClass + */ + @Deprecated + @SuppressWarnings("unchecked") + public static Class> resolveContextBuilderClass(String provider, + Properties properties) throws ClassNotFoundException, IllegalArgumentException, SecurityException, + InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException { + return Providers. resolveContextBuilderClass(provider, properties); + } + + /** + * + * @see Providers#initContextBuilder + */ + @Deprecated + public static RestContextBuilder initContextBuilder( + Class> contextBuilderClass, @Nullable Class sync, @Nullable Class async, + Properties properties) throws ClassNotFoundException, IllegalArgumentException, SecurityException, + InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException { + return Providers. initContextBuilder(contextBuilderClass, sync, async, properties); + } + + /** + * + * @see Providers#resolvePropertiesBuilderClass + */ + @Deprecated + @SuppressWarnings("unchecked") + public static Class resolvePropertiesBuilderClass(String providerName, Properties props) + throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException, + NoSuchMethodException { + return Providers.resolvePropertiesBuilderClass(providerName, props); + } + + /** + * + * @see Modules#modulesForProviderInProperties + */ + @Deprecated + public static Iterable modulesForProviderInProperties(String providerName, Properties props) { + return Modules2.modulesForProviderInProperties(providerName, props); + } + + /** + * + * @see Modules#modulesFromProperty + */ + @Deprecated + public static Iterable modulesFromProperty(Properties props, String property) { + return Modules2.modulesFromProperty(props, property); + } + + /** + * + * @see Modules#modulesFromCommaDelimitedString + */ + @Deprecated + public static Iterable modulesFromCommaDelimitedString(String moduleClasses) { + return Modules2.modulesFromCommaDelimitedString(moduleClasses); + } + + /** + * + * @see CredentialUtils#isPrivateKeyCredential + */ + @Deprecated + public static boolean isPrivateKeyCredential(Credentials credentials) { + return CredentialUtils.isPrivateKeyCredential(credentials); + } + + /** + * + * @see CredentialUtils#overrideCredentialsIfSupplied + */ + @Deprecated + public static Credentials overrideCredentialsIfSupplied(Credentials defaultCredentials, + @Nullable Credentials overridingCredentials) { + return CredentialUtils.overrideCredentialsIfSupplied(defaultCredentials, overridingCredentials); + } + +} diff --git a/sandbox/cloudwatch/pom.xml b/sandbox-apis/cloudwatch/pom.xml similarity index 100% rename from sandbox/cloudwatch/pom.xml rename to sandbox-apis/cloudwatch/pom.xml diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchAsyncClient.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchAsyncClient.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchAsyncClient.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchAsyncClient.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchClient.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchClient.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchClient.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchClient.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchContextBuilder.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchContextBuilder.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchContextBuilder.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchContextBuilder.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchPropertiesBuilder.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchPropertiesBuilder.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchPropertiesBuilder.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/CloudWatchPropertiesBuilder.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/config/CloudWatchRestClientModule.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/config/CloudWatchRestClientModule.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/config/CloudWatchRestClientModule.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/config/CloudWatchRestClientModule.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/domain/Datapoint.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/domain/Datapoint.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/domain/Datapoint.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/domain/Datapoint.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/domain/StandardUnit.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/domain/StandardUnit.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/domain/StandardUnit.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/domain/StandardUnit.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/functions/ISO8601Format.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/functions/ISO8601Format.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/functions/ISO8601Format.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/functions/ISO8601Format.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/xml/DatapointHandler.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/xml/DatapointHandler.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/xml/DatapointHandler.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/xml/DatapointHandler.java diff --git a/sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/xml/GetMetricStatisticsResponseHandler.java b/sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/xml/GetMetricStatisticsResponseHandler.java similarity index 100% rename from sandbox/cloudwatch/src/main/java/org/jclouds/cloudwatch/xml/GetMetricStatisticsResponseHandler.java rename to sandbox-apis/cloudwatch/src/main/java/org/jclouds/cloudwatch/xml/GetMetricStatisticsResponseHandler.java diff --git a/sandbox/cloudwatch/src/test/java/org/jclouds/cloudwatch/CloudWatchAsyncClientTest.java b/sandbox-apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/CloudWatchAsyncClientTest.java similarity index 100% rename from sandbox/cloudwatch/src/test/java/org/jclouds/cloudwatch/CloudWatchAsyncClientTest.java rename to sandbox-apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/CloudWatchAsyncClientTest.java diff --git a/sandbox/cloudwatch/src/test/java/org/jclouds/cloudwatch/CloudWatchClientLiveTest.java b/sandbox-apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/CloudWatchClientLiveTest.java similarity index 100% rename from sandbox/cloudwatch/src/test/java/org/jclouds/cloudwatch/CloudWatchClientLiveTest.java rename to sandbox-apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/CloudWatchClientLiveTest.java diff --git a/sandbox/cloudwatch/src/test/java/org/jclouds/cloudwatch/xml/GetMetricStatisticsResponseHandlerTest.java b/sandbox-apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/xml/GetMetricStatisticsResponseHandlerTest.java similarity index 100% rename from sandbox/cloudwatch/src/test/java/org/jclouds/cloudwatch/xml/GetMetricStatisticsResponseHandlerTest.java rename to sandbox-apis/cloudwatch/src/test/java/org/jclouds/cloudwatch/xml/GetMetricStatisticsResponseHandlerTest.java diff --git a/sandbox/cloudwatch/src/test/resources/get_metric_statistics.xml b/sandbox-apis/cloudwatch/src/test/resources/get_metric_statistics.xml similarity index 100% rename from sandbox/cloudwatch/src/test/resources/get_metric_statistics.xml rename to sandbox-apis/cloudwatch/src/test/resources/get_metric_statistics.xml diff --git a/sandbox/cloudwatch/src/test/resources/log4j.xml b/sandbox-apis/cloudwatch/src/test/resources/log4j.xml similarity index 100% rename from sandbox/cloudwatch/src/test/resources/log4j.xml rename to sandbox-apis/cloudwatch/src/test/resources/log4j.xml diff --git a/sandbox/deltacloud/README.txt b/sandbox-apis/deltacloud/README.txt similarity index 100% rename from sandbox/deltacloud/README.txt rename to sandbox-apis/deltacloud/README.txt diff --git a/sandbox/deltacloud/pom.xml b/sandbox-apis/deltacloud/pom.xml similarity index 93% rename from sandbox/deltacloud/pom.xml rename to sandbox-apis/deltacloud/pom.xml index a00f83cf1a..f88012a746 100644 --- a/sandbox/deltacloud/pom.xml +++ b/sandbox-apis/deltacloud/pom.xml @@ -30,17 +30,13 @@ 1.0-SNAPSHOT ../../project/pom.xml - org.jclouds - jclouds-deltacloud + org.jclouds.api + deltacloud jclouds deltacloud core jclouds components to access deltacloud - - jclouds-googlecode-deploy - http://jclouds.googlecode.com/svn/repo - jclouds-rimu-snapshots-nexus https://oss.sonatype.org/content/repositories/snapshots @@ -60,19 +56,19 @@ - ${project.groupId} + org.jclouds jclouds-core ${project.version} - ${project.groupId} + org.jclouds jclouds-core ${project.version} test-jar test - ${project.groupId} + org.jclouds jclouds-jsch ${project.version} test @@ -84,7 +80,7 @@ test - ${project.groupId} + org.jclouds jclouds-log4j ${project.version} test diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudAsyncClient.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudAsyncClient.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudAsyncClient.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudAsyncClient.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudClient.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudClient.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudClient.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudClient.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudContextBuilder.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudContextBuilder.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudContextBuilder.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudContextBuilder.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudPropertiesBuilder.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudPropertiesBuilder.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudPropertiesBuilder.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/DeltacloudPropertiesBuilder.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/HardwareProfiles.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/HardwareProfiles.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/HardwareProfiles.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/HardwareProfiles.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Images.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Images.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Images.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Images.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/InstanceStates.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/InstanceStates.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/InstanceStates.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/InstanceStates.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Instances.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Instances.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Instances.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Instances.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Realms.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Realms.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Realms.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/collections/Realms.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/config/DeltacloudRestClientModule.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/config/DeltacloudRestClientModule.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/config/DeltacloudRestClientModule.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/config/DeltacloudRestClientModule.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Architecture.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Architecture.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Architecture.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Architecture.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/DeltacloudCollection.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/DeltacloudCollection.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/DeltacloudCollection.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/DeltacloudCollection.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/EnumHardwareProperty.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/EnumHardwareProperty.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/EnumHardwareProperty.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/EnumHardwareProperty.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Feature.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Feature.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Feature.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Feature.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/FixedHardwareProperty.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/FixedHardwareProperty.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/FixedHardwareProperty.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/FixedHardwareProperty.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareParameter.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareParameter.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareParameter.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareParameter.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareProfile.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareProfile.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareProfile.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareProfile.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareProperty.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareProperty.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareProperty.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/HardwareProperty.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Image.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Image.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Image.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Image.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Instance.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Instance.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Instance.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Instance.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/InstanceAction.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/InstanceAction.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/InstanceAction.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/InstanceAction.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/InstanceState.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/InstanceState.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/InstanceState.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/InstanceState.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/ParameterizedHardwareProperty.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/ParameterizedHardwareProperty.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/ParameterizedHardwareProperty.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/ParameterizedHardwareProperty.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/RangeHardwareProperty.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/RangeHardwareProperty.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/RangeHardwareProperty.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/RangeHardwareProperty.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Realm.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Realm.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Realm.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Realm.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/RealmState.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/RealmState.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/RealmState.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/RealmState.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Transition.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Transition.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Transition.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/Transition.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/TransitionAutomatically.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/TransitionAutomatically.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/TransitionAutomatically.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/TransitionAutomatically.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/TransitionOnAction.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/TransitionOnAction.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/TransitionOnAction.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/TransitionOnAction.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/internal/BaseHardwareProperty.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/internal/BaseHardwareProperty.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/domain/internal/BaseHardwareProperty.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/domain/internal/BaseHardwareProperty.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/functions/ReturnVoidOnRedirectedDelete.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/functions/ReturnVoidOnRedirectedDelete.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/functions/ReturnVoidOnRedirectedDelete.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/functions/ReturnVoidOnRedirectedDelete.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/handlers/DeltacloudErrorHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/handlers/DeltacloudErrorHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/handlers/DeltacloudErrorHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/handlers/DeltacloudErrorHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/handlers/DeltacloudRedirectionRetryHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/handlers/DeltacloudRedirectionRetryHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/handlers/DeltacloudRedirectionRetryHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/handlers/DeltacloudRedirectionRetryHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/options/CreateInstanceOptions.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/options/CreateInstanceOptions.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/options/CreateInstanceOptions.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/options/CreateInstanceOptions.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/DeltacloudCollectionHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/DeltacloudCollectionHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/DeltacloudCollectionHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/DeltacloudCollectionHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/DeltacloudCollectionsHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/DeltacloudCollectionsHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/DeltacloudCollectionsHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/DeltacloudCollectionsHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwareProfileHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwareProfileHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwareProfileHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwareProfileHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwareProfilesHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwareProfilesHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwareProfilesHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwareProfilesHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwarePropertyHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwarePropertyHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwarePropertyHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/HardwarePropertyHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/ImageHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/ImageHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/ImageHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/ImageHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/ImagesHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/ImagesHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/ImagesHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/ImagesHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstanceHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstanceHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstanceHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstanceHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstanceStatesHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstanceStatesHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstanceStatesHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstanceStatesHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstancesHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstancesHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstancesHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/InstancesHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/RealmHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/RealmHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/RealmHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/RealmHandler.java diff --git a/sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/RealmsHandler.java b/sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/RealmsHandler.java similarity index 100% rename from sandbox/deltacloud/src/main/java/org/jclouds/deltacloud/xml/RealmsHandler.java rename to sandbox-apis/deltacloud/src/main/java/org/jclouds/deltacloud/xml/RealmsHandler.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/DeltacloudAsyncClientTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/DeltacloudAsyncClientTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/DeltacloudAsyncClientTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/DeltacloudAsyncClientTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/DeltacloudClientLiveTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/DeltacloudClientLiveTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/DeltacloudClientLiveTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/DeltacloudClientLiveTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/ReadOnlyDeltacloudClientLiveTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/ReadOnlyDeltacloudClientLiveTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/ReadOnlyDeltacloudClientLiveTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/ReadOnlyDeltacloudClientLiveTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/handlers/DeltacloudErrorHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/handlers/DeltacloudErrorHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/handlers/DeltacloudErrorHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/handlers/DeltacloudErrorHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/handlers/DeltacloudRedirectionRetryHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/handlers/DeltacloudRedirectionRetryHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/handlers/DeltacloudRedirectionRetryHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/handlers/DeltacloudRedirectionRetryHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/options/CreateInstanceOptionsTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/options/CreateInstanceOptionsTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/options/CreateInstanceOptionsTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/options/CreateInstanceOptionsTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/DeltacloudCollectionsHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/DeltacloudCollectionsHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/DeltacloudCollectionsHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/DeltacloudCollectionsHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/HardwareProfileHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/HardwareProfileHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/HardwareProfileHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/HardwareProfileHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/HardwareProfilesHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/HardwareProfilesHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/HardwareProfilesHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/HardwareProfilesHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/ImageHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/ImageHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/ImageHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/ImageHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/ImagesHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/ImagesHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/ImagesHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/ImagesHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstanceHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstanceHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstanceHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstanceHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstanceStatesHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstanceStatesHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstanceStatesHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstanceStatesHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstancesHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstancesHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstancesHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/InstancesHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/RealmHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/RealmHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/RealmHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/RealmHandlerTest.java diff --git a/sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/RealmsHandlerTest.java b/sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/RealmsHandlerTest.java similarity index 100% rename from sandbox/deltacloud/src/test/java/org/jclouds/deltacloud/xml/RealmsHandlerTest.java rename to sandbox-apis/deltacloud/src/test/java/org/jclouds/deltacloud/xml/RealmsHandlerTest.java diff --git a/sandbox/deltacloud/src/test/resources/links.xml b/sandbox-apis/deltacloud/src/test/resources/links.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/links.xml rename to sandbox-apis/deltacloud/src/test/resources/links.xml diff --git a/sandbox/deltacloud/src/test/resources/log4j.xml b/sandbox-apis/deltacloud/src/test/resources/log4j.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/log4j.xml rename to sandbox-apis/deltacloud/src/test/resources/log4j.xml diff --git a/sandbox/deltacloud/src/test/resources/test_get_hardware_profile.xml b/sandbox-apis/deltacloud/src/test/resources/test_get_hardware_profile.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_get_hardware_profile.xml rename to sandbox-apis/deltacloud/src/test/resources/test_get_hardware_profile.xml diff --git a/sandbox/deltacloud/src/test/resources/test_get_image.xml b/sandbox-apis/deltacloud/src/test/resources/test_get_image.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_get_image.xml rename to sandbox-apis/deltacloud/src/test/resources/test_get_image.xml diff --git a/sandbox/deltacloud/src/test/resources/test_get_instance.xml b/sandbox-apis/deltacloud/src/test/resources/test_get_instance.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_get_instance.xml rename to sandbox-apis/deltacloud/src/test/resources/test_get_instance.xml diff --git a/sandbox/deltacloud/src/test/resources/test_get_realm.xml b/sandbox-apis/deltacloud/src/test/resources/test_get_realm.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_get_realm.xml rename to sandbox-apis/deltacloud/src/test/resources/test_get_realm.xml diff --git a/sandbox/deltacloud/src/test/resources/test_get_states.xml b/sandbox-apis/deltacloud/src/test/resources/test_get_states.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_get_states.xml rename to sandbox-apis/deltacloud/src/test/resources/test_get_states.xml diff --git a/sandbox/deltacloud/src/test/resources/test_list_hardware_profiles.xml b/sandbox-apis/deltacloud/src/test/resources/test_list_hardware_profiles.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_list_hardware_profiles.xml rename to sandbox-apis/deltacloud/src/test/resources/test_list_hardware_profiles.xml diff --git a/sandbox/deltacloud/src/test/resources/test_list_images.xml b/sandbox-apis/deltacloud/src/test/resources/test_list_images.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_list_images.xml rename to sandbox-apis/deltacloud/src/test/resources/test_list_images.xml diff --git a/sandbox/deltacloud/src/test/resources/test_list_instances.xml b/sandbox-apis/deltacloud/src/test/resources/test_list_instances.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_list_instances.xml rename to sandbox-apis/deltacloud/src/test/resources/test_list_instances.xml diff --git a/sandbox/deltacloud/src/test/resources/test_list_realms.xml b/sandbox-apis/deltacloud/src/test/resources/test_list_realms.xml similarity index 100% rename from sandbox/deltacloud/src/test/resources/test_list_realms.xml rename to sandbox-apis/deltacloud/src/test/resources/test_list_realms.xml diff --git a/sandbox/libvirt/README.txt b/sandbox-apis/libvirt/README.txt similarity index 100% rename from sandbox/libvirt/README.txt rename to sandbox-apis/libvirt/README.txt diff --git a/sandbox/libvirt/TODO b/sandbox-apis/libvirt/TODO similarity index 100% rename from sandbox/libvirt/TODO rename to sandbox-apis/libvirt/TODO diff --git a/sandbox/libvirt/pom.xml b/sandbox-apis/libvirt/pom.xml similarity index 92% rename from sandbox/libvirt/pom.xml rename to sandbox-apis/libvirt/pom.xml index 7c86843a0e..cdec0dd68f 100644 --- a/sandbox/libvirt/pom.xml +++ b/sandbox-apis/libvirt/pom.xml @@ -28,7 +28,8 @@ 1.0-SNAPSHOT ../../project/pom.xml - jclouds-libvirt + org.jclouds.api + libvirt jclouds example components for a libvirt provider @@ -44,6 +45,12 @@ libvirt 0.4.6 + + commons-io + commons-io + 1.4 + + com.sun.jna jna @@ -56,19 +63,19 @@ 0.3 - ${project.groupId} + org.jclouds jclouds-core ${project.version} test-jar test - ${project.groupId} + org.jclouds jclouds-compute ${project.version} - ${project.groupId} + org.jclouds jclouds-compute ${project.version} test-jar @@ -81,13 +88,13 @@ test - ${project.groupId} + org.jclouds jclouds-log4j ${project.version} test - ${project.groupId} + org.jclouds jclouds-jsch ${project.version} test diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/Datacenter.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/Datacenter.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/Datacenter.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/Datacenter.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/Image.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/Image.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/Image.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/Image.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/LibvirtConstants.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/LibvirtConstants.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/LibvirtConstants.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/LibvirtConstants.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeService.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeService.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeService.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeService.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextBuilder.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextBuilder.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextBuilder.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextBuilder.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextSpec.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextSpec.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextSpec.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextSpec.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtPropertiesBuilder.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtPropertiesBuilder.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtPropertiesBuilder.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/LibvirtPropertiesBuilder.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/domain/LibvirtComputeServiceContextModule.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/domain/LibvirtComputeServiceContextModule.java similarity index 64% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/domain/LibvirtComputeServiceContextModule.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/domain/LibvirtComputeServiceContextModule.java index c8932334f8..ec12a707f2 100644 --- a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/domain/LibvirtComputeServiceContextModule.java +++ b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/domain/LibvirtComputeServiceContextModule.java @@ -19,18 +19,18 @@ package org.jclouds.libvirt.compute.domain; +import static com.google.common.base.Predicates.notNull; +import static com.google.common.collect.Iterables.filter; +import static com.google.common.collect.Iterables.transform; import static org.jclouds.libvirt.LibvirtConstants.PROPERTY_LIBVIRT_DOMAIN_DIR; import java.io.File; -import java.io.IOException; -import java.io.StringReader; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.net.URI; -import java.util.Collection; import javax.inject.Named; import javax.inject.Singleton; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.xpath.XPathExpressionException; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.WildcardFileFilter; @@ -40,8 +40,8 @@ import org.jclouds.compute.config.ComputeServiceAdapterContextModule; import org.jclouds.compute.domain.Hardware; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.TemplateBuilder; -import org.jclouds.compute.suppliers.DefaultLocationSupplier; import org.jclouds.domain.Location; +import org.jclouds.http.functions.ParseSax; import org.jclouds.libvirt.Datacenter; import org.jclouds.libvirt.Image; import org.jclouds.libvirt.compute.functions.DatacenterToLocation; @@ -49,32 +49,30 @@ import org.jclouds.libvirt.compute.functions.DomainToHardware; import org.jclouds.libvirt.compute.functions.DomainToNodeMetadata; import org.jclouds.libvirt.compute.functions.LibvirtImageToImage; import org.jclouds.libvirt.compute.strategy.LibvirtComputeServiceAdapter; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.location.Provider; +import org.jclouds.location.suppliers.OnlyLocationOrFirstZone; import org.libvirt.Connect; import org.libvirt.Domain; import org.libvirt.LibvirtException; -import org.xml.sax.InputSource; +import org.xml.sax.Attributes; import org.xml.sax.SAXException; -import com.google.common.base.Charsets; import com.google.common.base.Function; import com.google.common.base.Supplier; import com.google.common.collect.Iterables; -import com.google.common.io.Files; import com.google.inject.Injector; import com.google.inject.Key; import com.google.inject.Provides; import com.google.inject.TypeLiteral; import com.google.inject.name.Names; -import com.jamesmurty.utils.XMLBuilder; /** * * @author Adrian Cole */ public class LibvirtComputeServiceContextModule extends - ComputeServiceAdapterContextModule { - + ComputeServiceAdapterContextModule { + public LibvirtComputeServiceContextModule() { super(Connect.class, Connect.class); } @@ -85,7 +83,7 @@ public class LibvirtComputeServiceContextModule extends bind(new TypeLiteral>() { }).to(LibvirtComputeServiceAdapter.class); bind(new TypeLiteral>() { - }).to(DefaultLocationSupplier.class); + }).to(OnlyLocationOrFirstZone.class); bind(new TypeLiteral>() { }).to(DomainToNodeMetadata.class); bind(new TypeLiteral>() { @@ -101,7 +99,7 @@ public class LibvirtComputeServiceContextModule extends @Provides @Singleton protected Connect createConnection(@Provider URI endpoint, @Named(Constants.PROPERTY_IDENTITY) String identity, - @Named(Constants.PROPERTY_CREDENTIAL) String credential) throws LibvirtException { + @Named(Constants.PROPERTY_CREDENTIAL) String credential) throws LibvirtException { // ConnectAuth connectAuth = null; return new Connect(endpoint.toASCIIString()); } @@ -109,7 +107,8 @@ public class LibvirtComputeServiceContextModule extends @Override protected TemplateBuilder provideTemplate(Injector injector, TemplateBuilder template) { String domainDir = injector.getInstance(Key.get(String.class, Names.named(PROPERTY_LIBVIRT_DOMAIN_DIR))); - String hardwareId = searchForHardwareIdInDomainDir(domainDir); + String hardwareId = searchForHardwareIdInDomainDir(domainDir, injector.getInstance(ParseSax.Factory.class), + injector.getProvider(UUIDHandler.class)); String image = searchForImageIdInDomainDir(domainDir); return template.hardwareId(hardwareId).imageId(image); } @@ -120,24 +119,56 @@ public class LibvirtComputeServiceContextModule extends } @SuppressWarnings("unchecked") - private String searchForHardwareIdInDomainDir(String domainDir) { + private String searchForHardwareIdInDomainDir(String domainDir, final ParseSax.Factory factory, + final javax.inject.Provider provider) { - Collection xmlDomains = FileUtils.listFiles(new File(domainDir), new WildcardFileFilter("*.xml"), null); - String uuid = ""; - try { - String fromXML = Files.toString(Iterables.get(xmlDomains, 0), Charsets.UTF_8); - XMLBuilder builder = XMLBuilder.parse(new InputSource(new StringReader(fromXML))); - uuid = builder.xpathFind("/domain/uuid").getElement().getTextContent(); - } catch (IOException e) { - e.printStackTrace(); - } catch (ParserConfigurationException e) { - e.printStackTrace(); - } catch (SAXException e) { - e.printStackTrace(); - } catch (XPathExpressionException e) { - e.printStackTrace(); + // TODO: remove commons-io dependency + return Iterables. getLast(filter(transform(FileUtils.listFiles(new File(domainDir), + new WildcardFileFilter("*.xml"), null), new Function() { + + @Override + public String apply(File input) { + try { + return factory.create(provider.get()).parse(new FileInputStream(input)); + } catch (FileNotFoundException e) { + // log error. + return null; + } + } + + }), notNull())); + } + + public static class UUIDHandler extends ParseSax.HandlerWithResult { + private StringBuilder currentText = new StringBuilder(); + + private boolean inDomain; + private String uuid; + + public String getResult() { + return uuid; + } + + @Override + public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException { + if (qName.equals("domain")) { + inDomain = true; + } + } + + @Override + public void endElement(String uri, String localName, String qName) { + if (qName.equalsIgnoreCase("uuid") && inDomain) { + this.uuid = currentText.toString(); + } else if (qName.equalsIgnoreCase("domain")) { + inDomain = false; + } + currentText = new StringBuilder(); + } + + public void characters(char ch[], int start, int length) { + currentText.append(ch, start, length); } - return uuid; } /* diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DatacenterToLocation.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DatacenterToLocation.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DatacenterToLocation.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DatacenterToLocation.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DomainToHardware.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DomainToHardware.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DomainToHardware.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DomainToHardware.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DomainToNodeMetadata.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DomainToNodeMetadata.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DomainToNodeMetadata.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/DomainToNodeMetadata.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/LibvirtImageToImage.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/LibvirtImageToImage.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/LibvirtImageToImage.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/LibvirtImageToImage.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/LibvirtNodeToLocation.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/LibvirtNodeToLocation.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/LibvirtNodeToLocation.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/functions/LibvirtNodeToLocation.java diff --git a/sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/strategy/LibvirtComputeServiceAdapter.java b/sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/strategy/LibvirtComputeServiceAdapter.java similarity index 100% rename from sandbox/libvirt/src/main/java/org/jclouds/libvirt/compute/strategy/LibvirtComputeServiceAdapter.java rename to sandbox-apis/libvirt/src/main/java/org/jclouds/libvirt/compute/strategy/LibvirtComputeServiceAdapter.java diff --git a/sandbox/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextBuilderTest.java b/sandbox-apis/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextBuilderTest.java similarity index 100% rename from sandbox/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextBuilderTest.java rename to sandbox-apis/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtComputeServiceContextBuilderTest.java diff --git a/sandbox/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtComputeServiceLiveTest.java b/sandbox-apis/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtComputeServiceLiveTest.java similarity index 100% rename from sandbox/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtComputeServiceLiveTest.java rename to sandbox-apis/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtComputeServiceLiveTest.java diff --git a/sandbox/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtExperimentLiveTest.java b/sandbox-apis/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtExperimentLiveTest.java similarity index 100% rename from sandbox/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtExperimentLiveTest.java rename to sandbox-apis/libvirt/src/test/java/org/jclouds/libvirt/compute/LibvirtExperimentLiveTest.java diff --git a/sandbox/libvirt/src/test/resources/log4j.xml b/sandbox-apis/libvirt/src/test/resources/log4j.xml similarity index 100% rename from sandbox/libvirt/src/test/resources/log4j.xml rename to sandbox-apis/libvirt/src/test/resources/log4j.xml diff --git a/sandbox/nova-ec2/pom.xml b/sandbox-apis/nova-ec2/pom.xml similarity index 100% rename from sandbox/nova-ec2/pom.xml rename to sandbox-apis/nova-ec2/pom.xml diff --git a/sandbox/nova-ec2/src/main/java/org/jclouds/nova/ec2/NovaEC2PropertiesBuilder.java b/sandbox-apis/nova-ec2/src/main/java/org/jclouds/nova/ec2/NovaEC2PropertiesBuilder.java similarity index 100% rename from sandbox/nova-ec2/src/main/java/org/jclouds/nova/ec2/NovaEC2PropertiesBuilder.java rename to sandbox-apis/nova-ec2/src/main/java/org/jclouds/nova/ec2/NovaEC2PropertiesBuilder.java diff --git a/sandbox/nova-ec2/src/test/java/org/jclouds/nova/ec2/compute/NovaEC2ComputeServiceLiveTest.java b/sandbox-apis/nova-ec2/src/test/java/org/jclouds/nova/ec2/compute/NovaEC2ComputeServiceLiveTest.java similarity index 100% rename from sandbox/nova-ec2/src/test/java/org/jclouds/nova/ec2/compute/NovaEC2ComputeServiceLiveTest.java rename to sandbox-apis/nova-ec2/src/test/java/org/jclouds/nova/ec2/compute/NovaEC2ComputeServiceLiveTest.java diff --git a/sandbox/nova-ec2/src/test/java/org/jclouds/nova/ec2/compute/NovaEC2TemplateBuilderLiveTest.java b/sandbox-apis/nova-ec2/src/test/java/org/jclouds/nova/ec2/compute/NovaEC2TemplateBuilderLiveTest.java similarity index 100% rename from sandbox/nova-ec2/src/test/java/org/jclouds/nova/ec2/compute/NovaEC2TemplateBuilderLiveTest.java rename to sandbox-apis/nova-ec2/src/test/java/org/jclouds/nova/ec2/compute/NovaEC2TemplateBuilderLiveTest.java diff --git a/sandbox/mezeo/pcs2/core/README.txt b/sandbox-apis/pcs/README.txt similarity index 100% rename from sandbox/mezeo/pcs2/core/README.txt rename to sandbox-apis/pcs/README.txt diff --git a/sandbox-apis/pcs/pom.xml b/sandbox-apis/pcs/pom.xml new file mode 100644 index 0000000000..8792919684 --- /dev/null +++ b/sandbox-apis/pcs/pom.xml @@ -0,0 +1,122 @@ + + + + + 4.0.0 + + org.jclouds + jclouds-project + 1.0-SNAPSHOT + ../../project/pom.xml + + org.jclouds.api + pcs + jclouds mezeo cloud storage platform v2 core + jclouds Core components to access mezeo pcs2 + + + + jclouds-sona-snapshots-nexus + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + + FIXME + 2 + FIXME + FIXME + + + + org.jclouds + jclouds-core + ${project.version} + + + org.jclouds + jclouds-core + ${project.version} + test-jar + test + + + log4j + log4j + 1.2.14 + test + + + org.jclouds + jclouds-log4j + ${project.version} + test + + + + + live + + + + org.apache.maven.plugins + maven-surefire-plugin + :%s/ + + integration + integration-test + + test + + + + + test.pcs.endpoint + ${test.pcs.endpoint} + + + test.pcs.apiversion + ${test.pcs.apiversion} + + + test.pcs.identity + ${test.pcs.identity} + + + test.pcs.credential + ${test.pcs.credential} + + + + + + + + + + + + + diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/PCSAsyncClient.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/PCSAsyncClient.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/PCSAsyncClient.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/PCSAsyncClient.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/PCSClient.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/PCSClient.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/PCSClient.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/PCSClient.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/PCSCloudAsyncClient.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/PCSCloudAsyncClient.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/PCSCloudAsyncClient.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/PCSCloudAsyncClient.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/PCSContextBuilder.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/PCSContextBuilder.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/PCSContextBuilder.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/PCSContextBuilder.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/binders/BindContainerNameToXmlPayload.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/binders/BindContainerNameToXmlPayload.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/binders/BindContainerNameToXmlPayload.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/binders/BindContainerNameToXmlPayload.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/binders/BindFileInfoToXmlPayload.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/binders/BindFileInfoToXmlPayload.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/binders/BindFileInfoToXmlPayload.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/binders/BindFileInfoToXmlPayload.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/binders/BindPCSFileToMultipartForm.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/binders/BindPCSFileToMultipartForm.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/binders/BindPCSFileToMultipartForm.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/binders/BindPCSFileToMultipartForm.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/BlobToFileInfo.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/BlobToFileInfo.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/BlobToFileInfo.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/BlobToFileInfo.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/BlobToPCSFile.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/BlobToPCSFile.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/BlobToPCSFile.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/BlobToPCSFile.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/FileInfoToBlobMetadata.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/FileInfoToBlobMetadata.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/FileInfoToBlobMetadata.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/FileInfoToBlobMetadata.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/PCSFileToBlob.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/PCSFileToBlob.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/PCSFileToBlob.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/blobstore/functions/PCSFileToBlob.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/config/PCSObjectModule.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/config/PCSObjectModule.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/config/PCSObjectModule.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/config/PCSObjectModule.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/config/PCSRestClientModule.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/config/PCSRestClientModule.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/config/PCSRestClientModule.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/config/PCSRestClientModule.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/ContainerInfo.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/ContainerInfo.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/ContainerInfo.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/ContainerInfo.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/ContainerList.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/ContainerList.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/ContainerList.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/ContainerList.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/FileInfo.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/FileInfo.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/FileInfo.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/FileInfo.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/FileInfoWithMetadata.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/FileInfoWithMetadata.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/FileInfoWithMetadata.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/FileInfoWithMetadata.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/MutableFileInfo.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/MutableFileInfo.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/MutableFileInfo.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/MutableFileInfo.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/MutableResourceInfo.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/MutableResourceInfo.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/MutableResourceInfo.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/MutableResourceInfo.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/PCSFile.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/PCSFile.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/PCSFile.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/PCSFile.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/ResourceInfo.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/ResourceInfo.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/ResourceInfo.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/ResourceInfo.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ContainerInfoImpl.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ContainerInfoImpl.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ContainerInfoImpl.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ContainerInfoImpl.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ContainerListImpl.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ContainerListImpl.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ContainerListImpl.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ContainerListImpl.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/FileInfoImpl.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/FileInfoImpl.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/FileInfoImpl.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/FileInfoImpl.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/FileInfoWithMetadataImpl.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/FileInfoWithMetadataImpl.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/FileInfoWithMetadataImpl.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/FileInfoWithMetadataImpl.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/MutableFileInfoImpl.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/MutableFileInfoImpl.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/MutableFileInfoImpl.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/MutableFileInfoImpl.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/MutableResourceInfoImpl.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/MutableResourceInfoImpl.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/MutableResourceInfoImpl.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/MutableResourceInfoImpl.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/PCSFileImpl.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/PCSFileImpl.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/PCSFileImpl.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/PCSFileImpl.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ResourceInfoImpl.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ResourceInfoImpl.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ResourceInfoImpl.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/domain/internal/ResourceInfoImpl.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Contacts.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Contacts.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Contacts.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Contacts.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Metacontainers.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Metacontainers.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Metacontainers.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Metacontainers.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Projects.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Projects.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Projects.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Projects.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Recyclebin.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Recyclebin.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Recyclebin.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Recyclebin.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/RootContainer.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/RootContainer.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/RootContainer.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/RootContainer.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Shares.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Shares.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Shares.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Shares.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Tags.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Tags.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Tags.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/Tags.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/WebDAV.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/WebDAV.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/endpoints/WebDAV.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/endpoints/WebDAV.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/functions/AddMetadataItemIntoMap.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/functions/AddMetadataItemIntoMap.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/functions/AddMetadataItemIntoMap.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/functions/AddMetadataItemIntoMap.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/functions/ReturnFalseIfContainerNotFound.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/functions/ReturnFalseIfContainerNotFound.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/functions/ReturnFalseIfContainerNotFound.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/functions/ReturnFalseIfContainerNotFound.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/functions/ReturnTrueIfContainerAlreadyExists.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/functions/ReturnTrueIfContainerAlreadyExists.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/functions/ReturnTrueIfContainerAlreadyExists.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/functions/ReturnTrueIfContainerAlreadyExists.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/handlers/PCSClientErrorRetryHandler.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/handlers/PCSClientErrorRetryHandler.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/handlers/PCSClientErrorRetryHandler.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/handlers/PCSClientErrorRetryHandler.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/options/PutBlockOptions.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/options/PutBlockOptions.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/options/PutBlockOptions.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/options/PutBlockOptions.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/xml/CloudXlinkHandler.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/xml/CloudXlinkHandler.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/xml/CloudXlinkHandler.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/xml/CloudXlinkHandler.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/xml/ContainerHandler.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/xml/ContainerHandler.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/xml/ContainerHandler.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/xml/ContainerHandler.java diff --git a/sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/xml/FileHandler.java b/sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/xml/FileHandler.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/main/java/org/jclouds/mezeo/pcs2/xml/FileHandler.java rename to sandbox-apis/pcs/src/main/java/org/jclouds/mezeo/pcs2/xml/FileHandler.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/PCSAsyncClientTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/PCSAsyncClientTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/PCSAsyncClientTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/PCSAsyncClientTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/PCSClientLiveTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/PCSClientLiveTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/PCSClientLiveTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/PCSClientLiveTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/PCSCloudTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/PCSCloudTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/PCSCloudTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/PCSCloudTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/ProvidersInPropertiesTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/ProvidersInPropertiesTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/ProvidersInPropertiesTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/ProvidersInPropertiesTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/binders/BindContainerNameToXmlPayloadTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/binders/BindContainerNameToXmlPayloadTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/binders/BindContainerNameToXmlPayloadTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/binders/BindContainerNameToXmlPayloadTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/binders/BindFileInfoToXmlPayloadTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/binders/BindFileInfoToXmlPayloadTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/binders/BindFileInfoToXmlPayloadTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/binders/BindFileInfoToXmlPayloadTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/functions/AddMetadataAndReturnIdTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/functions/AddMetadataAndReturnIdTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/functions/AddMetadataAndReturnIdTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/functions/AddMetadataAndReturnIdTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/functions/AssembleBlobFromBlobMetadataCallTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/functions/AssembleBlobFromBlobMetadataCallTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/functions/AssembleBlobFromBlobMetadataCallTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/functions/AssembleBlobFromBlobMetadataCallTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/internal/StubPCSAsyncClient.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/internal/StubPCSAsyncClient.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/internal/StubPCSAsyncClient.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/internal/StubPCSAsyncClient.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/options/PutBlockOptionsTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/options/PutBlockOptionsTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/options/PutBlockOptionsTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/options/PutBlockOptionsTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/xml/CloudXlinkHanderTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/xml/CloudXlinkHanderTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/xml/CloudXlinkHanderTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/xml/CloudXlinkHanderTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/xml/ContainerHandlerTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/xml/ContainerHandlerTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/xml/ContainerHandlerTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/xml/ContainerHandlerTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/xml/FileMetadataHandlerTest.java b/sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/xml/FileMetadataHandlerTest.java similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/java/org/jclouds/mezeo/pcs2/xml/FileMetadataHandlerTest.java rename to sandbox-apis/pcs/src/test/java/org/jclouds/mezeo/pcs2/xml/FileMetadataHandlerTest.java diff --git a/sandbox/mezeo/pcs2/core/src/test/resources/discovery.xml b/sandbox-apis/pcs/src/test/resources/discovery.xml similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/resources/discovery.xml rename to sandbox-apis/pcs/src/test/resources/discovery.xml diff --git a/sandbox/mezeo/pcs2/core/src/test/resources/log4j.xml b/sandbox-apis/pcs/src/test/resources/log4j.xml similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/resources/log4j.xml rename to sandbox-apis/pcs/src/test/resources/log4j.xml diff --git a/sandbox/mezeo/pcs2/core/src/test/resources/test_file_metadata.xml b/sandbox-apis/pcs/src/test/resources/test_file_metadata.xml similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/resources/test_file_metadata.xml rename to sandbox-apis/pcs/src/test/resources/test_file_metadata.xml diff --git a/sandbox/mezeo/pcs2/core/src/test/resources/test_root_container.xml b/sandbox-apis/pcs/src/test/resources/test_root_container.xml similarity index 100% rename from sandbox/mezeo/pcs2/core/src/test/resources/test_root_container.xml rename to sandbox-apis/pcs/src/test/resources/test_root_container.xml diff --git a/sandbox/simpledb/pom.xml b/sandbox-apis/simpledb/pom.xml similarity index 100% rename from sandbox/simpledb/pom.xml rename to sandbox-apis/simpledb/pom.xml diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBAsyncClient.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBAsyncClient.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBAsyncClient.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBAsyncClient.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBClient.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBClient.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBClient.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBClient.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBContextBuilder.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBContextBuilder.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBContextBuilder.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBContextBuilder.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBPropertiesBuilder.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBPropertiesBuilder.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBPropertiesBuilder.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/SimpleDBPropertiesBuilder.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/binders/BindAttributesToIndexedFormParams.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/binders/BindAttributesToIndexedFormParams.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/binders/BindAttributesToIndexedFormParams.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/binders/BindAttributesToIndexedFormParams.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/config/SimpleDBRestClientModule.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/config/SimpleDBRestClientModule.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/config/SimpleDBRestClientModule.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/config/SimpleDBRestClientModule.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/domain/AttributePair.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/domain/AttributePair.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/domain/AttributePair.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/domain/AttributePair.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/domain/DomainMetadata.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/domain/DomainMetadata.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/domain/DomainMetadata.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/domain/DomainMetadata.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/domain/Item.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/domain/Item.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/domain/Item.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/domain/Item.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/domain/ListDomainsResponse.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/domain/ListDomainsResponse.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/domain/ListDomainsResponse.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/domain/ListDomainsResponse.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/options/ListDomainsOptions.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/options/ListDomainsOptions.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/options/ListDomainsOptions.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/options/ListDomainsOptions.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/package-info.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/package-info.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/package-info.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/package-info.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/reference/SimpleDBParameters.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/reference/SimpleDBParameters.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/reference/SimpleDBParameters.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/reference/SimpleDBParameters.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/reference/package-info.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/reference/package-info.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/reference/package-info.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/reference/package-info.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/xml/ItemsHandler.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/xml/ItemsHandler.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/xml/ItemsHandler.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/xml/ItemsHandler.java diff --git a/sandbox/simpledb/src/main/java/org/jclouds/simpledb/xml/ListDomainsResponseHandler.java b/sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/xml/ListDomainsResponseHandler.java similarity index 100% rename from sandbox/simpledb/src/main/java/org/jclouds/simpledb/xml/ListDomainsResponseHandler.java rename to sandbox-apis/simpledb/src/main/java/org/jclouds/simpledb/xml/ListDomainsResponseHandler.java diff --git a/sandbox/simpledb/src/test/java/org/jclouds/simpledb/ProvidersInPropertiesTest.java b/sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/ProvidersInPropertiesTest.java similarity index 100% rename from sandbox/simpledb/src/test/java/org/jclouds/simpledb/ProvidersInPropertiesTest.java rename to sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/ProvidersInPropertiesTest.java diff --git a/sandbox/simpledb/src/test/java/org/jclouds/simpledb/SimpleDBAsyncClientTest.java b/sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/SimpleDBAsyncClientTest.java similarity index 100% rename from sandbox/simpledb/src/test/java/org/jclouds/simpledb/SimpleDBAsyncClientTest.java rename to sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/SimpleDBAsyncClientTest.java diff --git a/sandbox/simpledb/src/test/java/org/jclouds/simpledb/SimpleDBClientLiveTest.java b/sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/SimpleDBClientLiveTest.java similarity index 100% rename from sandbox/simpledb/src/test/java/org/jclouds/simpledb/SimpleDBClientLiveTest.java rename to sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/SimpleDBClientLiveTest.java diff --git a/sandbox/simpledb/src/test/java/org/jclouds/simpledb/options/ListDomainsOptionsTest.java b/sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/options/ListDomainsOptionsTest.java similarity index 100% rename from sandbox/simpledb/src/test/java/org/jclouds/simpledb/options/ListDomainsOptionsTest.java rename to sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/options/ListDomainsOptionsTest.java diff --git a/sandbox/simpledb/src/test/java/org/jclouds/simpledb/xml/ListDomainsResponseHandlerTest.java b/sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/xml/ListDomainsResponseHandlerTest.java similarity index 100% rename from sandbox/simpledb/src/test/java/org/jclouds/simpledb/xml/ListDomainsResponseHandlerTest.java rename to sandbox-apis/simpledb/src/test/java/org/jclouds/simpledb/xml/ListDomainsResponseHandlerTest.java diff --git a/sandbox/simpledb/src/test/resources/list_domains.xml b/sandbox-apis/simpledb/src/test/resources/list_domains.xml similarity index 100% rename from sandbox/simpledb/src/test/resources/list_domains.xml rename to sandbox-apis/simpledb/src/test/resources/list_domains.xml diff --git a/sandbox/simpledb/src/test/resources/log4j.xml b/sandbox-apis/simpledb/src/test/resources/log4j.xml similarity index 100% rename from sandbox/simpledb/src/test/resources/log4j.xml rename to sandbox-apis/simpledb/src/test/resources/log4j.xml diff --git a/sandbox/sqs/pom.xml b/sandbox-apis/sqs/pom.xml similarity index 100% rename from sandbox/sqs/pom.xml rename to sandbox-apis/sqs/pom.xml diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/SQSAsyncClient.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/SQSAsyncClient.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/SQSAsyncClient.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/SQSAsyncClient.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/SQSClient.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/SQSClient.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/SQSClient.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/SQSClient.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/SQSContextBuilder.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/SQSContextBuilder.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/SQSContextBuilder.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/SQSContextBuilder.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/SQSPropertiesBuilder.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/SQSPropertiesBuilder.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/SQSPropertiesBuilder.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/SQSPropertiesBuilder.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/config/SQSRestClientModule.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/config/SQSRestClientModule.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/config/SQSRestClientModule.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/config/SQSRestClientModule.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/domain/Queue.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/domain/Queue.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/domain/Queue.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/domain/Queue.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/functions/QueueLocation.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/functions/QueueLocation.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/functions/QueueLocation.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/functions/QueueLocation.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/options/CreateQueueOptions.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/options/ListQueuesOptions.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/options/ListQueuesOptions.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/options/ListQueuesOptions.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/options/ListQueuesOptions.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/package-info.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/package-info.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/package-info.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/package-info.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/reference/SQSParameters.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/reference/SQSParameters.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/reference/SQSParameters.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/reference/SQSParameters.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/reference/package-info.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/reference/package-info.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/reference/package-info.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/reference/package-info.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/xml/ListQueuesResponseHandler.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/ListQueuesResponseHandler.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/xml/ListQueuesResponseHandler.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/ListQueuesResponseHandler.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/xml/MD5Handler.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/MD5Handler.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/xml/MD5Handler.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/MD5Handler.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/xml/QueueHandler.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/QueueHandler.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/xml/QueueHandler.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/QueueHandler.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/xml/RegexListQueuesResponseHandler.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/RegexListQueuesResponseHandler.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/xml/RegexListQueuesResponseHandler.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/RegexListQueuesResponseHandler.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/xml/RegexMD5Handler.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/RegexMD5Handler.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/xml/RegexMD5Handler.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/RegexMD5Handler.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/xml/RegexQueueHandler.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/RegexQueueHandler.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/xml/RegexQueueHandler.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/RegexQueueHandler.java diff --git a/sandbox/sqs/src/main/java/org/jclouds/sqs/xml/internal/BaseRegexQueueHandler.java b/sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/internal/BaseRegexQueueHandler.java similarity index 100% rename from sandbox/sqs/src/main/java/org/jclouds/sqs/xml/internal/BaseRegexQueueHandler.java rename to sandbox-apis/sqs/src/main/java/org/jclouds/sqs/xml/internal/BaseRegexQueueHandler.java diff --git a/sandbox/sqs/src/test/java/org/jclouds/sqs/SQSAsyncClientTest.java b/sandbox-apis/sqs/src/test/java/org/jclouds/sqs/SQSAsyncClientTest.java similarity index 100% rename from sandbox/sqs/src/test/java/org/jclouds/sqs/SQSAsyncClientTest.java rename to sandbox-apis/sqs/src/test/java/org/jclouds/sqs/SQSAsyncClientTest.java diff --git a/sandbox/sqs/src/test/java/org/jclouds/sqs/SQSClientLiveTest.java b/sandbox-apis/sqs/src/test/java/org/jclouds/sqs/SQSClientLiveTest.java similarity index 100% rename from sandbox/sqs/src/test/java/org/jclouds/sqs/SQSClientLiveTest.java rename to sandbox-apis/sqs/src/test/java/org/jclouds/sqs/SQSClientLiveTest.java diff --git a/sandbox/sqs/src/test/java/org/jclouds/sqs/config/SQSRestClientModuleTest.java b/sandbox-apis/sqs/src/test/java/org/jclouds/sqs/config/SQSRestClientModuleTest.java similarity index 100% rename from sandbox/sqs/src/test/java/org/jclouds/sqs/config/SQSRestClientModuleTest.java rename to sandbox-apis/sqs/src/test/java/org/jclouds/sqs/config/SQSRestClientModuleTest.java diff --git a/sandbox/sqs/src/test/java/org/jclouds/sqs/options/CreateQueueOptionsTest.java b/sandbox-apis/sqs/src/test/java/org/jclouds/sqs/options/CreateQueueOptionsTest.java similarity index 100% rename from sandbox/sqs/src/test/java/org/jclouds/sqs/options/CreateQueueOptionsTest.java rename to sandbox-apis/sqs/src/test/java/org/jclouds/sqs/options/CreateQueueOptionsTest.java diff --git a/sandbox/sqs/src/test/java/org/jclouds/sqs/options/ListQueuesOptionsTest.java b/sandbox-apis/sqs/src/test/java/org/jclouds/sqs/options/ListQueuesOptionsTest.java similarity index 100% rename from sandbox/sqs/src/test/java/org/jclouds/sqs/options/ListQueuesOptionsTest.java rename to sandbox-apis/sqs/src/test/java/org/jclouds/sqs/options/ListQueuesOptionsTest.java diff --git a/sandbox/sqs/src/test/java/org/jclouds/sqs/xml/ListQueuesResponseHandlerTest.java b/sandbox-apis/sqs/src/test/java/org/jclouds/sqs/xml/ListQueuesResponseHandlerTest.java similarity index 100% rename from sandbox/sqs/src/test/java/org/jclouds/sqs/xml/ListQueuesResponseHandlerTest.java rename to sandbox-apis/sqs/src/test/java/org/jclouds/sqs/xml/ListQueuesResponseHandlerTest.java diff --git a/sandbox/sqs/src/test/resources/list_queues.xml b/sandbox-apis/sqs/src/test/resources/list_queues.xml similarity index 100% rename from sandbox/sqs/src/test/resources/list_queues.xml rename to sandbox-apis/sqs/src/test/resources/list_queues.xml diff --git a/sandbox/sqs/src/test/resources/log4j.xml b/sandbox-apis/sqs/src/test/resources/log4j.xml similarity index 100% rename from sandbox/sqs/src/test/resources/log4j.xml rename to sandbox-apis/sqs/src/test/resources/log4j.xml diff --git a/sandbox/vsphere/README.txt b/sandbox-apis/vi/README.txt similarity index 100% rename from sandbox/vsphere/README.txt rename to sandbox-apis/vi/README.txt diff --git a/sandbox/vsphere/TODO b/sandbox-apis/vi/TODO similarity index 100% rename from sandbox/vsphere/TODO rename to sandbox-apis/vi/TODO diff --git a/sandbox/vsphere/pom.xml b/sandbox-apis/vi/pom.xml similarity index 77% rename from sandbox/vsphere/pom.xml rename to sandbox-apis/vi/pom.xml index b4ff48cc99..5a12e9b42c 100644 --- a/sandbox/vsphere/pom.xml +++ b/sandbox-apis/vi/pom.xml @@ -28,17 +28,23 @@ 1.0-SNAPSHOT ../../project/pom.xml - jclouds-vsphere - jclouds example components for a vijava lib for vSphere + org.jclouds.api + vi + jclouds example components for a vijava lib for VI 4 (VMware Infrastructure) trmkrun-ccc,test.trmk-924 - test:///default - 1.0 - FIXME - FIXME + test:///default + 1.0 + FIXME + FIXME + + commons-io + commons-io + 1.4 + org.jvnet.hudson vijava @@ -50,19 +56,19 @@ 0.3 - ${project.groupId} + org.jclouds jclouds-core ${project.version} test-jar test - ${project.groupId} + org.jclouds jclouds-compute ${project.version} - ${project.groupId} + org.jclouds jclouds-compute ${project.version} test-jar @@ -75,13 +81,13 @@ test - ${project.groupId} + org.jclouds jclouds-log4j ${project.version} test - ${project.groupId} + org.jclouds jclouds-jsch ${project.version} test @@ -106,20 +112,20 @@ - test.libvirt.endpoint - ${test.libvirt.endpoint} + test.vi.endpoint + ${test.vi.endpoint} - test.libvirt.apiversion - ${test.libvirt.apiversion} + test.vi.apiversion + ${test.vi.apiversion} - test.libvirt.identity - ${test.libvirt.identity} + test.vi.identity + ${test.vi.identity} - test.libvirt.credential - ${test.libvirt.credential} + test.vi.credential + ${test.vi.credential} jclouds.compute.blacklist.nodes diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/Image.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/Image.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/Image.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/Image.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/ViConstants.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/ViConstants.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/ViConstants.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/ViConstants.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/ViComputeService.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/ViComputeService.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/ViComputeService.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/ViComputeService.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/ViComputeServiceContextBuilder.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/ViComputeServiceContextBuilder.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/ViComputeServiceContextBuilder.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/ViComputeServiceContextBuilder.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/ViComputeServiceContextSpec.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/ViComputeServiceContextSpec.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/ViComputeServiceContextSpec.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/ViComputeServiceContextSpec.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/ViPropertiesBuilder.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/ViPropertiesBuilder.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/ViPropertiesBuilder.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/ViPropertiesBuilder.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/config/ViComputeServiceContextModule.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/config/ViComputeServiceContextModule.java similarity index 60% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/config/ViComputeServiceContextModule.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/config/ViComputeServiceContextModule.java index 16ffdc6999..8cece2eab7 100644 --- a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/config/ViComputeServiceContextModule.java +++ b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/config/ViComputeServiceContextModule.java @@ -19,18 +19,19 @@ package org.jclouds.vi.compute.config; +import static com.google.common.base.Predicates.notNull; +import static com.google.common.collect.Iterables.filter; +import static com.google.common.collect.Iterables.transform; + import java.io.File; -import java.io.IOException; -import java.io.StringReader; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.net.MalformedURLException; import java.net.URI; import java.rmi.RemoteException; -import java.util.Collection; import javax.inject.Named; import javax.inject.Singleton; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.xpath.XPathExpressionException; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.WildcardFileFilter; @@ -40,27 +41,25 @@ import org.jclouds.compute.config.ComputeServiceAdapterContextModule; import org.jclouds.compute.domain.Hardware; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.TemplateBuilder; -import org.jclouds.compute.suppliers.DefaultLocationSupplier; import org.jclouds.domain.Location; -import org.jclouds.rest.annotations.Provider; +import org.jclouds.http.functions.ParseSax; +import org.jclouds.location.Provider; +import org.jclouds.location.suppliers.OnlyLocationOrFirstZone; import org.jclouds.vi.Image; import org.jclouds.vi.compute.functions.DatacenterToLocation; import org.jclouds.vi.compute.functions.ViImageToImage; import org.jclouds.vi.compute.functions.VirtualMachineToHardware; import org.jclouds.vi.compute.functions.VirtualMachineToNodeMetadata; import org.jclouds.vi.compute.strategy.ViComputeServiceAdapter; -import org.xml.sax.InputSource; +import org.xml.sax.Attributes; import org.xml.sax.SAXException; -import com.google.common.base.Charsets; import com.google.common.base.Function; import com.google.common.base.Supplier; import com.google.common.collect.Iterables; -import com.google.common.io.Files; import com.google.inject.Injector; import com.google.inject.Provides; import com.google.inject.TypeLiteral; -import com.jamesmurty.utils.XMLBuilder; import com.vmware.vim25.mo.Datacenter; import com.vmware.vim25.mo.ServiceInstance; import com.vmware.vim25.mo.VirtualMachine; @@ -70,9 +69,9 @@ import com.vmware.vim25.mo.VirtualMachine; * @author Adrian Cole */ public class ViComputeServiceContextModule - extends - ComputeServiceAdapterContextModule { - + extends + ComputeServiceAdapterContextModule { + public ViComputeServiceContextModule() { super(ServiceInstance.class, ServiceInstance.class); } @@ -83,7 +82,7 @@ public class ViComputeServiceContextModule bind(new TypeLiteral>() { }).to(ViComputeServiceAdapter.class); bind(new TypeLiteral>() { - }).to(DefaultLocationSupplier.class); + }).to(OnlyLocationOrFirstZone.class); bind(new TypeLiteral>() { }).to(VirtualMachineToNodeMetadata.class); bind(new TypeLiteral>() { @@ -97,8 +96,8 @@ public class ViComputeServiceContextModule @Provides @Singleton protected ServiceInstance createConnection(@Provider URI endpoint, - @Named(Constants.PROPERTY_IDENTITY) String identity, @Named(Constants.PROPERTY_CREDENTIAL) String credential) - throws RemoteException, MalformedURLException { + @Named(Constants.PROPERTY_IDENTITY) String identity, @Named(Constants.PROPERTY_CREDENTIAL) String credential) + throws RemoteException, MalformedURLException { return new ServiceInstance(endpoint.toURL(), identity, credential, true); } @@ -106,9 +105,9 @@ public class ViComputeServiceContextModule protected TemplateBuilder provideTemplate(Injector injector, TemplateBuilder template) { // String domainDir = injector.getInstance(Key.get(String.class, // Names.named(PROPERTY_LIBVIRT_DOMAIN_DIR))); -// String domainDir = ""; -// String hardwareId = searchForHardwareIdInDomainDir(domainDir); -// String image = searchForImageIdInDomainDir(domainDir); + // String domainDir = ""; + // String hardwareId = searchForHardwareIdInDomainDir(domainDir); + // String image = searchForImageIdInDomainDir(domainDir); return template.hardwareId("vm-1221").imageId("winNetEnterprise64Guest"); } @@ -118,24 +117,56 @@ public class ViComputeServiceContextModule } @SuppressWarnings("unchecked") - private String searchForHardwareIdInDomainDir(String domainDir) { + private String searchForHardwareIdInDomainDir(String domainDir, final ParseSax.Factory factory, + final javax.inject.Provider provider) { + + //TODO: remove commons-io dependency + return Iterables.getLast(filter(transform(FileUtils.listFiles(new File(domainDir), new WildcardFileFilter("*.xml"), null), + new Function() { - Collection xmlDomains = FileUtils.listFiles(new File(domainDir), new WildcardFileFilter("*.xml"), null); - String uuid = ""; - try { - String fromXML = Files.toString(Iterables.get(xmlDomains, 0), Charsets.UTF_8); - XMLBuilder builder = XMLBuilder.parse(new InputSource(new StringReader(fromXML))); - uuid = builder.xpathFind("/domain/uuid").getElement().getTextContent(); - } catch (IOException e) { - e.printStackTrace(); - } catch (ParserConfigurationException e) { - e.printStackTrace(); - } catch (SAXException e) { - e.printStackTrace(); - } catch (XPathExpressionException e) { - e.printStackTrace(); + @Override + public String apply(File input) { + try { + return factory.create(provider.get()).parse(new FileInputStream(input)); + } catch (FileNotFoundException e) { + // log error. + return null; + } + } + + }), notNull())); + } + + public static class UUIDHandler extends ParseSax.HandlerWithResult { + private StringBuilder currentText = new StringBuilder(); + + private boolean inDomain; + private String uuid; + + public String getResult() { + return uuid; + } + + @Override + public void startElement(String uri, String localName, String qName, Attributes attrs) throws SAXException { + if (qName.equals("domain")) { + inDomain = true; + } + } + + @Override + public void endElement(String uri, String localName, String qName) { + if (qName.equalsIgnoreCase("uuid") && inDomain) { + this.uuid = currentText.toString(); + } else if (qName.equalsIgnoreCase("domain")) { + inDomain = false; + } + currentText = new StringBuilder(); + } + + public void characters(char ch[], int start, int length) { + currentText.append(ch, start, length); } - return uuid; } /* diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/functions/DatacenterToLocation.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/functions/DatacenterToLocation.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/functions/DatacenterToLocation.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/functions/DatacenterToLocation.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/functions/ViImageToImage.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/functions/ViImageToImage.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/functions/ViImageToImage.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/functions/ViImageToImage.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/functions/VirtualMachineToHardware.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/functions/VirtualMachineToHardware.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/functions/VirtualMachineToHardware.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/functions/VirtualMachineToHardware.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/functions/VirtualMachineToNodeMetadata.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/functions/VirtualMachineToNodeMetadata.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/functions/VirtualMachineToNodeMetadata.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/functions/VirtualMachineToNodeMetadata.java diff --git a/sandbox/vsphere/src/main/java/org/jclouds/vi/compute/strategy/ViComputeServiceAdapter.java b/sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/strategy/ViComputeServiceAdapter.java similarity index 100% rename from sandbox/vsphere/src/main/java/org/jclouds/vi/compute/strategy/ViComputeServiceAdapter.java rename to sandbox-apis/vi/src/main/java/org/jclouds/vi/compute/strategy/ViComputeServiceAdapter.java diff --git a/sandbox/vsphere/src/test/java/org/jclouds/vi/compute/ViComputeServiceContextBuilderTest.java b/sandbox-apis/vi/src/test/java/org/jclouds/vi/compute/ViComputeServiceContextBuilderTest.java similarity index 100% rename from sandbox/vsphere/src/test/java/org/jclouds/vi/compute/ViComputeServiceContextBuilderTest.java rename to sandbox-apis/vi/src/test/java/org/jclouds/vi/compute/ViComputeServiceContextBuilderTest.java diff --git a/sandbox/vsphere/src/test/java/org/jclouds/vi/compute/ViComputeServiceLiveTest.java b/sandbox-apis/vi/src/test/java/org/jclouds/vi/compute/ViComputeServiceLiveTest.java similarity index 100% rename from sandbox/vsphere/src/test/java/org/jclouds/vi/compute/ViComputeServiceLiveTest.java rename to sandbox-apis/vi/src/test/java/org/jclouds/vi/compute/ViComputeServiceLiveTest.java diff --git a/sandbox/vsphere/src/test/java/org/jclouds/vi/compute/ViExperimentLiveTest.java b/sandbox-apis/vi/src/test/java/org/jclouds/vi/compute/ViExperimentLiveTest.java similarity index 100% rename from sandbox/vsphere/src/test/java/org/jclouds/vi/compute/ViExperimentLiveTest.java rename to sandbox-apis/vi/src/test/java/org/jclouds/vi/compute/ViExperimentLiveTest.java diff --git a/sandbox/vsphere/src/test/resources/log4j.xml b/sandbox-apis/vi/src/test/resources/log4j.xml similarity index 100% rename from sandbox/vsphere/src/test/resources/log4j.xml rename to sandbox-apis/vi/src/test/resources/log4j.xml diff --git a/sandbox/ning/pom.xml b/sandbox-drivers/asynchttpclient/pom.xml similarity index 62% rename from sandbox/ning/pom.xml rename to sandbox-drivers/asynchttpclient/pom.xml index d24559668c..877831cf0e 100644 --- a/sandbox/ning/pom.xml +++ b/sandbox-drivers/asynchttpclient/pom.xml @@ -23,26 +23,45 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - jclouds-extensions-project org.jclouds + jclouds-project 1.0-SNAPSHOT + ../../project/pom.xml - jclouds-ning + org.jclouds.driver + jclouds-asynchttpclient jclouds Ning Http Client jar Ning Http client - - scm:svn:http://jclouds.googlecode.com/svn/trunk - scm:svn:https://jclouds.googlecode.com/svn/trunk - http://jclouds.googlecode.com/svn/trunk - + + + + jclouds-sona-snapshots-nexus + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + org.jclouds + jclouds-core + ${project.version} + + + org.jclouds + jclouds-core + ${project.version} + test-jar + test + com.ning async-http-client - 1.4.0 + 1.4.1 org.mortbay.jetty diff --git a/sandbox/ning/src/main/java/org/jclouds/http/ning/NingHttpCommandExecutorService.java b/sandbox-drivers/asynchttpclient/src/main/java/org/jclouds/http/ning/NingHttpCommandExecutorService.java similarity index 100% rename from sandbox/ning/src/main/java/org/jclouds/http/ning/NingHttpCommandExecutorService.java rename to sandbox-drivers/asynchttpclient/src/main/java/org/jclouds/http/ning/NingHttpCommandExecutorService.java diff --git a/sandbox/ning/src/main/java/org/jclouds/http/ning/config/NingHttpCommandExecutorServiceModule.java b/sandbox-drivers/asynchttpclient/src/main/java/org/jclouds/http/ning/config/NingHttpCommandExecutorServiceModule.java similarity index 100% rename from sandbox/ning/src/main/java/org/jclouds/http/ning/config/NingHttpCommandExecutorServiceModule.java rename to sandbox-drivers/asynchttpclient/src/main/java/org/jclouds/http/ning/config/NingHttpCommandExecutorServiceModule.java diff --git a/sandbox/ning/src/test/java/org/jclouds/http/ning/NingHttpCommandExecutorServiceTest.java b/sandbox-drivers/asynchttpclient/src/test/java/org/jclouds/http/ning/NingHttpCommandExecutorServiceTest.java similarity index 100% rename from sandbox/ning/src/test/java/org/jclouds/http/ning/NingHttpCommandExecutorServiceTest.java rename to sandbox-drivers/asynchttpclient/src/test/java/org/jclouds/http/ning/NingHttpCommandExecutorServiceTest.java diff --git a/sandbox/ning/src/test/resources/test.jks b/sandbox-drivers/asynchttpclient/src/test/resources/test.jks similarity index 100% rename from sandbox/ning/src/test/resources/test.jks rename to sandbox-drivers/asynchttpclient/src/test/resources/test.jks diff --git a/sandbox/aws-simpledb/pom.xml b/sandbox-providers/aws-simpledb/pom.xml similarity index 100% rename from sandbox/aws-simpledb/pom.xml rename to sandbox-providers/aws-simpledb/pom.xml diff --git a/sandbox/aws-simpledb/src/main/java/org/jclouds/aws/simpledb/SimpleDBPropertiesBuilder.java b/sandbox-providers/aws-simpledb/src/main/java/org/jclouds/aws/simpledb/SimpleDBPropertiesBuilder.java similarity index 100% rename from sandbox/aws-simpledb/src/main/java/org/jclouds/aws/simpledb/SimpleDBPropertiesBuilder.java rename to sandbox-providers/aws-simpledb/src/main/java/org/jclouds/aws/simpledb/SimpleDBPropertiesBuilder.java diff --git a/sandbox/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/AWSSimpleDBClientLiveTest.java b/sandbox-providers/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/AWSSimpleDBClientLiveTest.java similarity index 100% rename from sandbox/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/AWSSimpleDBClientLiveTest.java rename to sandbox-providers/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/AWSSimpleDBClientLiveTest.java diff --git a/sandbox/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/ProvidersInPropertiesTest.java b/sandbox-providers/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/ProvidersInPropertiesTest.java similarity index 100% rename from sandbox/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/ProvidersInPropertiesTest.java rename to sandbox-providers/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/ProvidersInPropertiesTest.java diff --git a/sandbox/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/SimpleDBAsyncClientTest.java b/sandbox-providers/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/SimpleDBAsyncClientTest.java similarity index 100% rename from sandbox/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/SimpleDBAsyncClientTest.java rename to sandbox-providers/aws-simpledb/src/test/java/org/jclouds/aws/simpledb/SimpleDBAsyncClientTest.java diff --git a/sandbox/boxdotnet/pom.xml b/sandbox-providers/boxdotnet/pom.xml similarity index 50% rename from sandbox/boxdotnet/pom.xml rename to sandbox-providers/boxdotnet/pom.xml index fada127582..ac40c82e08 100644 --- a/sandbox/boxdotnet/pom.xml +++ b/sandbox-providers/boxdotnet/pom.xml @@ -31,46 +31,37 @@ org.jclouds jclouds-project 1.0-SNAPSHOT - ../project/pom.xml + ../../project/pom.xml - org.jclouds - jclouds-boxdotnet + org.jclouds.provider + boxdotnet jclouds BoxDotNet core jclouds components to access BoxDotNet - - - scm:svn:http://jclouds.googlecode.com/svn/trunk/boxdotnet - scm:svn:https://jclouds.googlecode.com/svn/trunk/boxdotnet - http://jclouds.googlecode.com/svn/trunk/boxdotnet - - - jclouds-googlecode-deploy - http://jclouds.googlecode.com/svn/repo - - - jclouds-rimu-snapshots-nexus + jclouds-sona-snapshots-nexus https://oss.sonatype.org/content/repositories/snapshots true - + - + - apiKey - authToken + https://www.box.net/api/1.0/rest + 1.0 + FIXME + FIXME - ${project.groupId} + org.jclouds jclouds-core ${project.version} - ${project.groupId} + org.jclouds jclouds-core ${project.version} test-jar @@ -83,10 +74,53 @@ test - ${project.groupId} + org.jclouds jclouds-log4j ${project.version} test + + + live + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration + integration-test + + test + + + + + test.boxdotnet.endpoint + ${test.boxdotnet.endpoint} + + + test.boxdotnet.apiversion + ${test.boxdotnet.apiversion} + + + test.boxdotnet.identity + ${test.boxdotnet.identity} + + + test.boxdotnet.credential + ${test.boxdotnet.credential} + + + + + + + + + + + diff --git a/sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetAsyncClient.java b/sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetAsyncClient.java similarity index 100% rename from sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetAsyncClient.java rename to sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetAsyncClient.java diff --git a/sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetClient.java b/sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetClient.java similarity index 100% rename from sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetClient.java rename to sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetClient.java diff --git a/sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetContextBuilder.java b/sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetContextBuilder.java similarity index 100% rename from sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetContextBuilder.java rename to sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetContextBuilder.java diff --git a/sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetPropertiesBuilder.java b/sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetPropertiesBuilder.java similarity index 100% rename from sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetPropertiesBuilder.java rename to sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/BoxDotNetPropertiesBuilder.java diff --git a/sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/config/BoxDotNetRestClientModule.java b/sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/config/BoxDotNetRestClientModule.java similarity index 100% rename from sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/config/BoxDotNetRestClientModule.java rename to sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/config/BoxDotNetRestClientModule.java diff --git a/sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/handlers/BoxDotNetErrorHandler.java b/sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/handlers/BoxDotNetErrorHandler.java similarity index 100% rename from sandbox/boxdotnet/src/main/java/org/jclouds/boxdotnet/handlers/BoxDotNetErrorHandler.java rename to sandbox-providers/boxdotnet/src/main/java/org/jclouds/boxdotnet/handlers/BoxDotNetErrorHandler.java diff --git a/sandbox/boxdotnet/src/test/java/org/jclouds/boxdotnet/BoxDotNetAsyncClientTest.java b/sandbox-providers/boxdotnet/src/test/java/org/jclouds/boxdotnet/BoxDotNetAsyncClientTest.java similarity index 100% rename from sandbox/boxdotnet/src/test/java/org/jclouds/boxdotnet/BoxDotNetAsyncClientTest.java rename to sandbox-providers/boxdotnet/src/test/java/org/jclouds/boxdotnet/BoxDotNetAsyncClientTest.java diff --git a/sandbox/boxdotnet/src/test/java/org/jclouds/boxdotnet/BoxDotNetClientLiveTest.java b/sandbox-providers/boxdotnet/src/test/java/org/jclouds/boxdotnet/BoxDotNetClientLiveTest.java similarity index 100% rename from sandbox/boxdotnet/src/test/java/org/jclouds/boxdotnet/BoxDotNetClientLiveTest.java rename to sandbox-providers/boxdotnet/src/test/java/org/jclouds/boxdotnet/BoxDotNetClientLiveTest.java diff --git a/sandbox/boxdotnet/src/test/resources/log4j.xml b/sandbox-providers/boxdotnet/src/test/resources/log4j.xml similarity index 100% rename from sandbox/boxdotnet/src/test/resources/log4j.xml rename to sandbox-providers/boxdotnet/src/test/resources/log4j.xml diff --git a/sandbox-providers/ibmdev/pom.xml b/sandbox-providers/ibmdev/pom.xml new file mode 100644 index 0000000000..b42f2a31e7 --- /dev/null +++ b/sandbox-providers/ibmdev/pom.xml @@ -0,0 +1,144 @@ + + + + 4.0.0 + + org.jclouds + jclouds-project + 1.0-SNAPSHOT + ../../project/pom.xml + + org.jclouds.provider + ibmdev + jclouds IBMDeveloperCloud core + jclouds components to access IBMDeveloperCloud + + + + jclouds-sona-snapshots-nexus + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + + https://www-147.ibm.com/computecloud/enterprise/api/rest + 20100331 + FIXME + FIXME + + + + org.jclouds + jclouds-core + ${project.version} + + + org.jclouds + jclouds-core + ${project.version} + test-jar + test + + + org.jclouds + jclouds-compute + ${project.version} + + + org.jclouds + jclouds-compute + ${project.version} + test-jar + test + + + log4j + log4j + 1.2.14 + test + + + org.jclouds + jclouds-log4j + ${project.version} + test + + + org.jclouds + jclouds-jsch + ${project.version} + test + + + + + live + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration + integration-test + + test + + + + + test.ibmdev.endpoint + ${test.ibmdev.endpoint} + + + test.ibmdev.apiversion + ${test.ibmdev.apiversion} + + + test.ibmdev.identity + ${test.ibmdev.identity} + + + test.ibmdev.credential + ${test.ibmdev.credential} + + + + + + + + + + + + diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudAsyncClient.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudAsyncClient.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudAsyncClient.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudAsyncClient.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudClient.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudClient.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudClient.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudClient.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudContextBuilder.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudContextBuilder.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudContextBuilder.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudContextBuilder.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudPropertiesBuilder.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudPropertiesBuilder.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudPropertiesBuilder.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/IBMDeveloperCloudPropertiesBuilder.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudBindComputeStrategiesByClass.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudBindComputeStrategiesByClass.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudBindComputeStrategiesByClass.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudBindComputeStrategiesByClass.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudBindComputeSuppliersByClass.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudBindComputeSuppliersByClass.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudBindComputeSuppliersByClass.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudBindComputeSuppliersByClass.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceContextModule.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceContextModule.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceContextModule.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceContextModule.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceDependenciesModule.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceDependenciesModule.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceDependenciesModule.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceDependenciesModule.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/functions/InstanceToNodeMetadata.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/functions/InstanceToNodeMetadata.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/functions/InstanceToNodeMetadata.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/functions/InstanceToNodeMetadata.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/options/IBMDeveloperCloudTemplateOptions.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/options/IBMDeveloperCloudTemplateOptions.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/options/IBMDeveloperCloudTemplateOptions.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/options/IBMDeveloperCloudTemplateOptions.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/CreateKeyPairEncodeTagIntoNameRunNodesAndAddToSet.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/CreateKeyPairEncodeTagIntoNameRunNodesAndAddToSet.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/CreateKeyPairEncodeTagIntoNameRunNodesAndAddToSet.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/CreateKeyPairEncodeTagIntoNameRunNodesAndAddToSet.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudAddNodeWithTagStrategy.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudAddNodeWithTagStrategy.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudAddNodeWithTagStrategy.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudAddNodeWithTagStrategy.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudDestroyNodeStrategy.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudDestroyNodeStrategy.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudDestroyNodeStrategy.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudDestroyNodeStrategy.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudGetNodeMetadataStrategy.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudGetNodeMetadataStrategy.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudGetNodeMetadataStrategy.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudGetNodeMetadataStrategy.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudLifeCycleStrategy.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudLifeCycleStrategy.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudLifeCycleStrategy.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudLifeCycleStrategy.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudListNodesStrategy.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudListNodesStrategy.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudListNodesStrategy.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/strategy/IBMDeveloperCloudListNodesStrategy.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudHardwareSupplier.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudHardwareSupplier.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudHardwareSupplier.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudHardwareSupplier.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudImageSupplier.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudImageSupplier.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudImageSupplier.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudImageSupplier.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudLocationSupplier.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudLocationSupplier.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudLocationSupplier.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/compute/suppliers/IBMDeveloperCloudLocationSupplier.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/config/IBMDeveloperCloudParserModule.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/config/IBMDeveloperCloudParserModule.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/config/IBMDeveloperCloudParserModule.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/config/IBMDeveloperCloudParserModule.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/config/IBMDeveloperCloudRestClientModule.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/config/IBMDeveloperCloudRestClientModule.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/config/IBMDeveloperCloudRestClientModule.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/config/IBMDeveloperCloudRestClientModule.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Address.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Address.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Address.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Address.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Image.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Image.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Image.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Image.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Instance.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Instance.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Instance.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Instance.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/InstanceType.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/InstanceType.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/InstanceType.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/InstanceType.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Key.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Key.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Key.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Key.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Location.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Location.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Location.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Location.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Offering.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Offering.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Offering.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Offering.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Price.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Price.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Price.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Price.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/StorageOffering.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/StorageOffering.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/StorageOffering.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/StorageOffering.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Volume.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Volume.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Volume.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/domain/Volume.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/GetFirstInstanceInList.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/GetFirstInstanceInList.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/GetFirstInstanceInList.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/GetFirstInstanceInList.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseAddressFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseAddressFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseAddressFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseAddressFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseAddressesFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseAddressesFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseAddressesFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseAddressesFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseExpirationTimeFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseExpirationTimeFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseExpirationTimeFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseExpirationTimeFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseImageFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseImageFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseImageFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseImageFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseImagesFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseImagesFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseImagesFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseImagesFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseInstanceFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseInstanceFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseInstanceFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseInstanceFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseInstancesFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseInstancesFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseInstancesFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseInstancesFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseKeysFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseKeysFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseKeysFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseKeysFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseLongFromDate.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseLongFromDate.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseLongFromDate.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseLongFromDate.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseUtils.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseUtils.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseUtils.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseUtils.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseVolumeFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseVolumeFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseVolumeFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseVolumeFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseVolumesFromJson.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseVolumesFromJson.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseVolumesFromJson.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/functions/ParseVolumesFromJson.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/handlers/IBMDeveloperCloudErrorHandler.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/handlers/IBMDeveloperCloudErrorHandler.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/handlers/IBMDeveloperCloudErrorHandler.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/handlers/IBMDeveloperCloudErrorHandler.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/options/CreateInstanceOptions.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/options/CreateInstanceOptions.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/options/CreateInstanceOptions.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/options/CreateInstanceOptions.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/options/RestartInstanceOptions.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/options/RestartInstanceOptions.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/options/RestartInstanceOptions.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/options/RestartInstanceOptions.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/AddressFree.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/AddressFree.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/AddressFree.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/AddressFree.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceActive.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceActive.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceActive.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceActive.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceActiveOrFailed.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceActiveOrFailed.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceActiveOrFailed.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceActiveOrFailed.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceRemovedOrNotFound.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceRemovedOrNotFound.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceRemovedOrNotFound.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/InstanceRemovedOrNotFound.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/VolumeUnmounted.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/VolumeUnmounted.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/VolumeUnmounted.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/predicates/VolumeUnmounted.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/reference/IBMDeveloperCloudConstants.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/reference/IBMDeveloperCloudConstants.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/reference/IBMDeveloperCloudConstants.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/reference/IBMDeveloperCloudConstants.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/xml/LocationHandler.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/xml/LocationHandler.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/xml/LocationHandler.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/xml/LocationHandler.java diff --git a/sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/xml/LocationsHandler.java b/sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/xml/LocationsHandler.java similarity index 100% rename from sandbox/ibmdev/src/main/java/org/jclouds/ibmdev/xml/LocationsHandler.java rename to sandbox-providers/ibmdev/src/main/java/org/jclouds/ibmdev/xml/LocationsHandler.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/IBMDeveloperCloudAsyncClientTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/IBMDeveloperCloudAsyncClientTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/IBMDeveloperCloudAsyncClientTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/IBMDeveloperCloudAsyncClientTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/IBMDeveloperCloudClientLiveTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/IBMDeveloperCloudClientLiveTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/IBMDeveloperCloudClientLiveTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/IBMDeveloperCloudClientLiveTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/ProvidersInPropertiesTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/ProvidersInPropertiesTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/ProvidersInPropertiesTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/ProvidersInPropertiesTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/compute/IBMDeveloperCloudComputeServiceLiveTestDisabled.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/compute/IBMDeveloperCloudComputeServiceLiveTestDisabled.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/compute/IBMDeveloperCloudComputeServiceLiveTestDisabled.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/compute/IBMDeveloperCloudComputeServiceLiveTestDisabled.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/compute/IBMDeveloperCloudTemplateBuilderLiveTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/compute/IBMDeveloperCloudTemplateBuilderLiveTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/compute/IBMDeveloperCloudTemplateBuilderLiveTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/compute/IBMDeveloperCloudTemplateBuilderLiveTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceDependenciesModuleTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceDependenciesModuleTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceDependenciesModuleTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/compute/config/IBMDeveloperCloudComputeServiceDependenciesModuleTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseAddressFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseAddressFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseAddressFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseAddressFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseAddressesFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseAddressesFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseAddressesFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseAddressesFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseExpirationTimeFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseExpirationTimeFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseExpirationTimeFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseExpirationTimeFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseImageFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseImageFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseImageFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseImageFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseImagesFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseImagesFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseImagesFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseImagesFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseInstanceFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseInstanceFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseInstanceFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseInstanceFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseInstancesFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseInstancesFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseInstancesFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseInstancesFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseKeyFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseKeyFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseKeyFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseKeyFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseKeysFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseKeysFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseKeysFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseKeysFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseStorageOfferingsFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseStorageOfferingsFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseStorageOfferingsFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseStorageOfferingsFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseVolumeFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseVolumeFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseVolumeFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseVolumeFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseVolumesFromJsonTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseVolumesFromJsonTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseVolumesFromJsonTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/functions/ParseVolumesFromJsonTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/xml/LocationHandlerTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/xml/LocationHandlerTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/xml/LocationHandlerTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/xml/LocationHandlerTest.java diff --git a/sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/xml/LocationsHandlerTest.java b/sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/xml/LocationsHandlerTest.java similarity index 100% rename from sandbox/ibmdev/src/test/java/org/jclouds/ibmdev/xml/LocationsHandlerTest.java rename to sandbox-providers/ibmdev/src/test/java/org/jclouds/ibmdev/xml/LocationsHandlerTest.java diff --git a/sandbox/ibmdev/src/test/resources/address.json b/sandbox-providers/ibmdev/src/test/resources/address.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/address.json rename to sandbox-providers/ibmdev/src/test/resources/address.json diff --git a/sandbox/ibmdev/src/test/resources/addresses.json b/sandbox-providers/ibmdev/src/test/resources/addresses.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/addresses.json rename to sandbox-providers/ibmdev/src/test/resources/addresses.json diff --git a/sandbox/ibmdev/src/test/resources/image.json b/sandbox-providers/ibmdev/src/test/resources/image.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/image.json rename to sandbox-providers/ibmdev/src/test/resources/image.json diff --git a/sandbox/ibmdev/src/test/resources/images.json b/sandbox-providers/ibmdev/src/test/resources/images.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/images.json rename to sandbox-providers/ibmdev/src/test/resources/images.json diff --git a/sandbox/ibmdev/src/test/resources/instance.json b/sandbox-providers/ibmdev/src/test/resources/instance.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/instance.json rename to sandbox-providers/ibmdev/src/test/resources/instance.json diff --git a/sandbox/ibmdev/src/test/resources/instances.json b/sandbox-providers/ibmdev/src/test/resources/instances.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/instances.json rename to sandbox-providers/ibmdev/src/test/resources/instances.json diff --git a/sandbox/ibmdev/src/test/resources/key.json b/sandbox-providers/ibmdev/src/test/resources/key.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/key.json rename to sandbox-providers/ibmdev/src/test/resources/key.json diff --git a/sandbox/ibmdev/src/test/resources/keys.json b/sandbox-providers/ibmdev/src/test/resources/keys.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/keys.json rename to sandbox-providers/ibmdev/src/test/resources/keys.json diff --git a/sandbox/ibmdev/src/test/resources/location.xml b/sandbox-providers/ibmdev/src/test/resources/location.xml similarity index 100% rename from sandbox/ibmdev/src/test/resources/location.xml rename to sandbox-providers/ibmdev/src/test/resources/location.xml diff --git a/sandbox/ibmdev/src/test/resources/log4j.xml b/sandbox-providers/ibmdev/src/test/resources/log4j.xml similarity index 100% rename from sandbox/ibmdev/src/test/resources/log4j.xml rename to sandbox-providers/ibmdev/src/test/resources/log4j.xml diff --git a/sandbox/ibmdev/src/test/resources/storage-offerings.json b/sandbox-providers/ibmdev/src/test/resources/storage-offerings.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/storage-offerings.json rename to sandbox-providers/ibmdev/src/test/resources/storage-offerings.json diff --git a/sandbox/ibmdev/src/test/resources/volume.json b/sandbox-providers/ibmdev/src/test/resources/volume.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/volume.json rename to sandbox-providers/ibmdev/src/test/resources/volume.json diff --git a/sandbox/ibmdev/src/test/resources/volumes.json b/sandbox-providers/ibmdev/src/test/resources/volumes.json similarity index 100% rename from sandbox/ibmdev/src/test/resources/volumes.json rename to sandbox-providers/ibmdev/src/test/resources/volumes.json diff --git a/sandbox/rimuhosting/README.txt b/sandbox-providers/rimuhosting/README.txt similarity index 100% rename from sandbox/rimuhosting/README.txt rename to sandbox-providers/rimuhosting/README.txt diff --git a/sandbox/rimuhosting/pom.xml b/sandbox-providers/rimuhosting/pom.xml similarity index 96% rename from sandbox/rimuhosting/pom.xml rename to sandbox-providers/rimuhosting/pom.xml index 88161c190a..996784a35d 100644 --- a/sandbox/rimuhosting/pom.xml +++ b/sandbox-providers/rimuhosting/pom.xml @@ -24,11 +24,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - org.jclouds.provider - jclouds-providers-project + org.jclouds + jclouds-project 1.0-SNAPSHOT - ../../providers/pom.xml + ../../project/pom.xml + org.jclouds.provider rimuhosting jclouds RimuHosting provider ComputeService implementation of RimuHosting datacenters diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingAsyncClient.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingAsyncClient.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingAsyncClient.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingAsyncClient.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingClient.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingClient.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingClient.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingClient.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingContextBuilder.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingContextBuilder.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingContextBuilder.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingContextBuilder.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingPropertiesBuilder.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingPropertiesBuilder.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingPropertiesBuilder.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/RimuHostingPropertiesBuilder.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/CreateServerOptions.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/CreateServerOptions.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/CreateServerOptions.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/CreateServerOptions.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/RimuHostingJsonBinder.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/RimuHostingJsonBinder.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/RimuHostingJsonBinder.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/RimuHostingJsonBinder.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/RimuHostingRebootJsonBinder.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/RimuHostingRebootJsonBinder.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/RimuHostingRebootJsonBinder.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/binder/RimuHostingRebootJsonBinder.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingBindComputeStrategiesByClass.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingBindComputeStrategiesByClass.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingBindComputeStrategiesByClass.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingBindComputeStrategiesByClass.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingBindComputeSuppliersByClass.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingBindComputeSuppliersByClass.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingBindComputeSuppliersByClass.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingBindComputeSuppliersByClass.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceContextModule.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceContextModule.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceContextModule.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceContextModule.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceDependenciesModule.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceDependenciesModule.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceDependenciesModule.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceDependenciesModule.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/functions/ServerToNodeMetadata.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/functions/ServerToNodeMetadata.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/functions/ServerToNodeMetadata.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/functions/ServerToNodeMetadata.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingAddNodeWithTagStrategy.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingAddNodeWithTagStrategy.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingAddNodeWithTagStrategy.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingAddNodeWithTagStrategy.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingDestroyNodeStrategy.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingDestroyNodeStrategy.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingDestroyNodeStrategy.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingDestroyNodeStrategy.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingGetNodeMetadataStrategy.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingGetNodeMetadataStrategy.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingGetNodeMetadataStrategy.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingGetNodeMetadataStrategy.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingLifeCycleStrategy.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingLifeCycleStrategy.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingLifeCycleStrategy.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingLifeCycleStrategy.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingListNodesStrategy.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingListNodesStrategy.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingListNodesStrategy.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/strategy/RimuHostingListNodesStrategy.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingDefaultLocationSupplier.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingDefaultLocationSupplier.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingDefaultLocationSupplier.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingDefaultLocationSupplier.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingHardwareSupplier.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingHardwareSupplier.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingHardwareSupplier.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingHardwareSupplier.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingImageSupplier.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingImageSupplier.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingImageSupplier.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingImageSupplier.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingLocationSupplier.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingLocationSupplier.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingLocationSupplier.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/compute/suppliers/RimuHostingLocationSupplier.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/CloneOptions.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/CloneOptions.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/CloneOptions.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/CloneOptions.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/CreateOptions.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/CreateOptions.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/CreateOptions.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/CreateOptions.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/IpRequestData.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/IpRequestData.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/IpRequestData.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/IpRequestData.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/NewServerData.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/NewServerData.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/NewServerData.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/NewServerData.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/PostData.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/PostData.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/PostData.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/data/PostData.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/BillingData.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/BillingData.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/BillingData.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/BillingData.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/DataCenter.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/DataCenter.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/DataCenter.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/DataCenter.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/DataTransferAllowance.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/DataTransferAllowance.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/DataTransferAllowance.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/DataTransferAllowance.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/Image.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/Image.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/Image.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/Image.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/IpAddresses.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/IpAddresses.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/IpAddresses.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/IpAddresses.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/MetaData.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/MetaData.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/MetaData.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/MetaData.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/NewServerResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/NewServerResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/NewServerResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/NewServerResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/PricingPlan.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/PricingPlan.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/PricingPlan.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/PricingPlan.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ResizeResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ResizeResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ResizeResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ResizeResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ResizeResult.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ResizeResult.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ResizeResult.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ResizeResult.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/Server.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/Server.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/Server.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/Server.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ServerInfo.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ServerInfo.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ServerInfo.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ServerInfo.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ServerParameters.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ServerParameters.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ServerParameters.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/ServerParameters.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingError.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingError.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingError.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingError.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingTimestamp.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingTimestamp.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingTimestamp.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RimuHostingTimestamp.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RunningState.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RunningState.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RunningState.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/RunningState.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/ServerType.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/ServerType.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/ServerType.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/domain/internal/ServerType.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/filters/RimuHostingAuthentication.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/filters/RimuHostingAuthentication.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/filters/RimuHostingAuthentication.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/filters/RimuHostingAuthentication.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseDestroyResponseFromJsonResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseDestroyResponseFromJsonResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseDestroyResponseFromJsonResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseDestroyResponseFromJsonResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseImagesFromJsonResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseImagesFromJsonResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseImagesFromJsonResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseImagesFromJsonResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParsePricingPlansFromJsonResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParsePricingPlansFromJsonResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParsePricingPlansFromJsonResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParsePricingPlansFromJsonResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseRimuHostingException.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseRimuHostingException.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseRimuHostingException.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseRimuHostingException.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServerFromJsonResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServerFromJsonResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServerFromJsonResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServerFromJsonResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServerInfoFromJsonResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServerInfoFromJsonResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServerInfoFromJsonResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServerInfoFromJsonResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServersFromJsonResponse.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServersFromJsonResponse.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServersFromJsonResponse.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/functions/ParseServersFromJsonResponse.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/predicates/ServerDestroyed.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/predicates/ServerDestroyed.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/predicates/ServerDestroyed.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/predicates/ServerDestroyed.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/predicates/ServerRunning.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/predicates/ServerRunning.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/predicates/ServerRunning.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/predicates/ServerRunning.java diff --git a/sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/reference/RimuHostingConstants.java b/sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/reference/RimuHostingConstants.java similarity index 100% rename from sandbox/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/reference/RimuHostingConstants.java rename to sandbox-providers/rimuhosting/src/main/java/org/jclouds/rimuhosting/miro/reference/RimuHostingConstants.java diff --git a/sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/ProvidersInPropertiesTest.java b/sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/ProvidersInPropertiesTest.java similarity index 100% rename from sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/ProvidersInPropertiesTest.java rename to sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/ProvidersInPropertiesTest.java diff --git a/sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/RimuHostingAsyncClientTest.java b/sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/RimuHostingAsyncClientTest.java similarity index 100% rename from sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/RimuHostingAsyncClientTest.java rename to sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/RimuHostingAsyncClientTest.java diff --git a/sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/RimuHostingClientLiveTest.java b/sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/RimuHostingClientLiveTest.java similarity index 100% rename from sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/RimuHostingClientLiveTest.java rename to sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/RimuHostingClientLiveTest.java diff --git a/sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/RimuHostingComputeServiceLiveTest.java b/sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/RimuHostingComputeServiceLiveTest.java similarity index 100% rename from sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/RimuHostingComputeServiceLiveTest.java rename to sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/RimuHostingComputeServiceLiveTest.java diff --git a/sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/RimuHostingTemplateBuilderLiveTest.java b/sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/RimuHostingTemplateBuilderLiveTest.java similarity index 100% rename from sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/RimuHostingTemplateBuilderLiveTest.java rename to sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/RimuHostingTemplateBuilderLiveTest.java diff --git a/sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceContextModuleTest.java b/sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceContextModuleTest.java similarity index 100% rename from sandbox/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceContextModuleTest.java rename to sandbox-providers/rimuhosting/src/test/java/org/jclouds/rimuhosting/miro/compute/config/RimuHostingComputeServiceContextModuleTest.java diff --git a/sandbox/rimuhosting/src/test/resources/log4j.xml b/sandbox-providers/rimuhosting/src/test/resources/log4j.xml similarity index 100% rename from sandbox/rimuhosting/src/test/resources/log4j.xml rename to sandbox-providers/rimuhosting/src/test/resources/log4j.xml diff --git a/sandbox/savvis/pom.xml b/sandbox-providers/savvis/pom.xml similarity index 93% rename from sandbox/savvis/pom.xml rename to sandbox-providers/savvis/pom.xml index 96a0fc417c..55883005cc 100644 --- a/sandbox/savvis/pom.xml +++ b/sandbox-providers/savvis/pom.xml @@ -30,15 +30,15 @@ 1.0-SNAPSHOT ../../project/pom.xml - org.jclouds - jclouds-savvis + org.jclouds.provider + savvis jclouds savvis core jclouds components to access savvis - jclouds-rimu-snapshots-nexus + jclouds-sonatype-snapshots-nexus https://oss.sonatype.org/content/repositories/snapshots true @@ -56,33 +56,33 @@ - ${project.groupId} + org.jclouds jclouds-vcloud ${project.version} - ${project.groupId} + org.jclouds jclouds-core ${project.version} test-jar test - ${project.groupId} + org.jclouds jclouds-compute ${project.version} test-jar test - ${project.groupId} + org.jclouds jclouds-vcloud ${project.version} test-jar test - ${project.groupId} + org.jclouds jclouds-jsch ${project.version} test @@ -94,7 +94,7 @@ test - ${project.groupId} + org.jclouds jclouds-log4j ${project.version} test diff --git a/sandbox/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCAsyncClient.java b/sandbox-providers/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCAsyncClient.java similarity index 100% rename from sandbox/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCAsyncClient.java rename to sandbox-providers/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCAsyncClient.java diff --git a/sandbox/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCClient.java b/sandbox-providers/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCClient.java similarity index 100% rename from sandbox/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCClient.java rename to sandbox-providers/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCClient.java diff --git a/sandbox/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCContextBuilder.java b/sandbox-providers/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCContextBuilder.java similarity index 100% rename from sandbox/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCContextBuilder.java rename to sandbox-providers/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCContextBuilder.java diff --git a/sandbox/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCPropertiesBuilder.java b/sandbox-providers/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCPropertiesBuilder.java similarity index 100% rename from sandbox/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCPropertiesBuilder.java rename to sandbox-providers/savvis/src/main/java/org/jclouds/savvis/SymphonyVPDCPropertiesBuilder.java diff --git a/sandbox/savvis/src/main/java/org/jclouds/savvis/compute/config/SymphonyVPDCComputeServiceContextModule.java b/sandbox-providers/savvis/src/main/java/org/jclouds/savvis/compute/config/SymphonyVPDCComputeServiceContextModule.java similarity index 100% rename from sandbox/savvis/src/main/java/org/jclouds/savvis/compute/config/SymphonyVPDCComputeServiceContextModule.java rename to sandbox-providers/savvis/src/main/java/org/jclouds/savvis/compute/config/SymphonyVPDCComputeServiceContextModule.java diff --git a/sandbox/savvis/src/main/java/org/jclouds/savvis/config/SymphonyVPDCRestClientModule.java b/sandbox-providers/savvis/src/main/java/org/jclouds/savvis/config/SymphonyVPDCRestClientModule.java similarity index 100% rename from sandbox/savvis/src/main/java/org/jclouds/savvis/config/SymphonyVPDCRestClientModule.java rename to sandbox-providers/savvis/src/main/java/org/jclouds/savvis/config/SymphonyVPDCRestClientModule.java diff --git a/sandbox/savvis/src/main/java/org/jclouds/savvis/handlers/SymphonyVPDCErrorHandler.java b/sandbox-providers/savvis/src/main/java/org/jclouds/savvis/handlers/SymphonyVPDCErrorHandler.java similarity index 100% rename from sandbox/savvis/src/main/java/org/jclouds/savvis/handlers/SymphonyVPDCErrorHandler.java rename to sandbox-providers/savvis/src/main/java/org/jclouds/savvis/handlers/SymphonyVPDCErrorHandler.java diff --git a/sandbox/savvis/src/test/java/org/jclouds/savvis/SymphonyVPDCAsyncClientTest.java b/sandbox-providers/savvis/src/test/java/org/jclouds/savvis/SymphonyVPDCAsyncClientTest.java similarity index 100% rename from sandbox/savvis/src/test/java/org/jclouds/savvis/SymphonyVPDCAsyncClientTest.java rename to sandbox-providers/savvis/src/test/java/org/jclouds/savvis/SymphonyVPDCAsyncClientTest.java diff --git a/sandbox/savvis/src/test/java/org/jclouds/savvis/SymphonyVPDCClientLiveTest.java b/sandbox-providers/savvis/src/test/java/org/jclouds/savvis/SymphonyVPDCClientLiveTest.java similarity index 100% rename from sandbox/savvis/src/test/java/org/jclouds/savvis/SymphonyVPDCClientLiveTest.java rename to sandbox-providers/savvis/src/test/java/org/jclouds/savvis/SymphonyVPDCClientLiveTest.java diff --git a/sandbox/savvis/src/test/java/org/jclouds/savvis/handlers/SymphonyVPDCErrorHandlerTest.java b/sandbox-providers/savvis/src/test/java/org/jclouds/savvis/handlers/SymphonyVPDCErrorHandlerTest.java similarity index 100% rename from sandbox/savvis/src/test/java/org/jclouds/savvis/handlers/SymphonyVPDCErrorHandlerTest.java rename to sandbox-providers/savvis/src/test/java/org/jclouds/savvis/handlers/SymphonyVPDCErrorHandlerTest.java diff --git a/sandbox/nirvanix/sdn/core/README.txt b/sandbox-providers/sdn/README.txt similarity index 100% rename from sandbox/nirvanix/sdn/core/README.txt rename to sandbox-providers/sdn/README.txt diff --git a/sandbox-providers/sdn/pom.xml b/sandbox-providers/sdn/pom.xml new file mode 100644 index 0000000000..68d803f6e9 --- /dev/null +++ b/sandbox-providers/sdn/pom.xml @@ -0,0 +1,135 @@ + + + + + 4.0.0 + + org.jclouds + jclouds-project + 1.0-SNAPSHOT + ../../project/pom.xml + + org.jclouds.provider + sdn + jclouds nirvanix storage delivery network core + jclouds Core components to access nirvanix sdn + + + + + jclouds-sona-snapshots-nexus + https://oss.sonatype.org/content/repositories/snapshots + + true + + + + + + http://services.nirvanix.com + 2.5.6 + FIXME + FIXME + + + + org.jclouds + jclouds-core + ${project.version} + + + org.jclouds + jclouds-core + ${project.version} + test-jar + test + + + org.jclouds + jclouds-blobstore + ${project.version} + + + org.jclouds + jclouds-blobstore + ${project.version} + test-jar + test + + + log4j + log4j + 1.2.14 + test + + + org.jclouds + jclouds-log4j + ${project.version} + test + + + + + live + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration + integration-test + + test + + + + + test.sdn.endpoint + ${test.sdn.endpoint} + + + test.sdn.apiversion + ${test.sdn.apiversion} + + + test.sdn.identity + ${test.sdn.identity} + + + test.sdn.credential + ${test.sdn.credential} + + + + + + + + + + + + + diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNAsyncClient.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNAsyncClient.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNAsyncClient.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNAsyncClient.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNAuthAsyncClient.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNAuthAsyncClient.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNAuthAsyncClient.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNAuthAsyncClient.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNClient.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNClient.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNClient.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNClient.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNContextBuilder.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNContextBuilder.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNContextBuilder.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNContextBuilder.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNPropertiesBuilder.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNPropertiesBuilder.java similarity index 95% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNPropertiesBuilder.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNPropertiesBuilder.java index a56bc7af0c..4316dbdd89 100644 --- a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SDNPropertiesBuilder.java +++ b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SDNPropertiesBuilder.java @@ -34,7 +34,7 @@ public class SDNPropertiesBuilder extends PropertiesBuilder { @Override protected Properties defaultProperties() { Properties properties = super.defaultProperties(); - properties.setProperty(Constants.PROPERTY_API_VERSION, "TODO"); + properties.setProperty(Constants.PROPERTY_API_VERSION, "2.5.6"); properties.setProperty(Constants.PROPERTY_ENDPOINT, "http://services.nirvanix.com"); return properties; } diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SessionToken.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SessionToken.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/SessionToken.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/SessionToken.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/binders/BindMetadataToQueryParams.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/binders/BindMetadataToQueryParams.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/binders/BindMetadataToQueryParams.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/binders/BindMetadataToQueryParams.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/config/SDNAuthRestClientModule.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/config/SDNAuthRestClientModule.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/config/SDNAuthRestClientModule.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/config/SDNAuthRestClientModule.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/config/SDNRestClientModule.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/config/SDNRestClientModule.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/config/SDNRestClientModule.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/config/SDNRestClientModule.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/domain/UploadInfo.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/domain/UploadInfo.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/domain/UploadInfo.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/domain/UploadInfo.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/filters/AddSessionTokenToRequest.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/filters/AddSessionTokenToRequest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/filters/AddSessionTokenToRequest.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/filters/AddSessionTokenToRequest.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/filters/InsertUserContextIntoPath.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/filters/InsertUserContextIntoPath.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/filters/InsertUserContextIntoPath.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/filters/InsertUserContextIntoPath.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseMetadataFromJsonResponse.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseMetadataFromJsonResponse.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseMetadataFromJsonResponse.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseMetadataFromJsonResponse.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseSessionTokenFromJsonResponse.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseSessionTokenFromJsonResponse.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseSessionTokenFromJsonResponse.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseSessionTokenFromJsonResponse.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseUploadInfoFromJsonResponse.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseUploadInfoFromJsonResponse.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseUploadInfoFromJsonResponse.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/functions/ParseUploadInfoFromJsonResponse.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/reference/SDNConstants.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/reference/SDNConstants.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/reference/SDNConstants.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/reference/SDNConstants.java diff --git a/sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/reference/SDNQueryParams.java b/sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/reference/SDNQueryParams.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/main/java/org/jclouds/nirvanix/sdn/reference/SDNQueryParams.java rename to sandbox-providers/sdn/src/main/java/org/jclouds/nirvanix/sdn/reference/SDNQueryParams.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/ProvidersInPropertiesTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/ProvidersInPropertiesTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/ProvidersInPropertiesTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/ProvidersInPropertiesTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/SDNAsyncClientTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/SDNAsyncClientTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/SDNAsyncClientTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/SDNAsyncClientTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/SDNAuthAsyncClientTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/SDNAuthAsyncClientTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/SDNAuthAsyncClientTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/SDNAuthAsyncClientTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/SDNAuthenticationLiveTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/SDNAuthenticationLiveTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/SDNAuthenticationLiveTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/SDNAuthenticationLiveTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/SDNClientLiveTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/SDNClientLiveTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/SDNClientLiveTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/SDNClientLiveTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/binders/BindMetadataToQueryParamsTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/binders/BindMetadataToQueryParamsTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/binders/BindMetadataToQueryParamsTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/binders/BindMetadataToQueryParamsTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/filters/AddSessionTokenToRequestTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/filters/AddSessionTokenToRequestTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/filters/AddSessionTokenToRequestTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/filters/AddSessionTokenToRequestTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/filters/InsertUserContextIntoPathTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/filters/InsertUserContextIntoPathTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/filters/InsertUserContextIntoPathTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/filters/InsertUserContextIntoPathTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseMetadataFromJsonResponseTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseMetadataFromJsonResponseTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseMetadataFromJsonResponseTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseMetadataFromJsonResponseTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseSessionTokenFromJsonResponseTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseSessionTokenFromJsonResponseTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseSessionTokenFromJsonResponseTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseSessionTokenFromJsonResponseTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseUploadInfoFromJsonResponseTest.java b/sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseUploadInfoFromJsonResponseTest.java similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseUploadInfoFromJsonResponseTest.java rename to sandbox-providers/sdn/src/test/java/org/jclouds/nirvanix/sdn/functions/ParseUploadInfoFromJsonResponseTest.java diff --git a/sandbox/nirvanix/sdn/core/src/test/resources/authtoken.json b/sandbox-providers/sdn/src/test/resources/authtoken.json similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/resources/authtoken.json rename to sandbox-providers/sdn/src/test/resources/authtoken.json diff --git a/sandbox/nirvanix/sdn/core/src/test/resources/log4j.xml b/sandbox-providers/sdn/src/test/resources/log4j.xml similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/resources/log4j.xml rename to sandbox-providers/sdn/src/test/resources/log4j.xml diff --git a/sandbox/nirvanix/sdn/core/src/test/resources/login.json b/sandbox-providers/sdn/src/test/resources/login.json similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/resources/login.json rename to sandbox-providers/sdn/src/test/resources/login.json diff --git a/sandbox/nirvanix/sdn/core/src/test/resources/metadata.json b/sandbox-providers/sdn/src/test/resources/metadata.json similarity index 100% rename from sandbox/nirvanix/sdn/core/src/test/resources/metadata.json rename to sandbox-providers/sdn/src/test/resources/metadata.json diff --git a/sandbox/twitter/.gitignore b/sandbox-providers/twitter/.gitignore similarity index 100% rename from sandbox/twitter/.gitignore rename to sandbox-providers/twitter/.gitignore diff --git a/sandbox/twitter/README.txt b/sandbox-providers/twitter/README.txt similarity index 100% rename from sandbox/twitter/README.txt rename to sandbox-providers/twitter/README.txt diff --git a/sandbox/twitter/pom.xml b/sandbox-providers/twitter/pom.xml similarity index 92% rename from sandbox/twitter/pom.xml rename to sandbox-providers/twitter/pom.xml index dd0bd6abb6..d1c95f5559 100644 --- a/sandbox/twitter/pom.xml +++ b/sandbox-providers/twitter/pom.xml @@ -30,19 +30,15 @@ 1.0-SNAPSHOT ../../project/pom.xml - org.jclouds - jclouds-twitter + org.jclouds.provider + twitter jclouds twitter core jclouds components to access twitter - jclouds-googlecode-deploy - http://jclouds.googlecode.com/svn/repo - - - jclouds-rimu-snapshots-nexus + jclouds-sona-snapshots-nexus https://oss.sonatype.org/content/repositories/snapshots true @@ -59,12 +55,12 @@ - ${project.groupId} + org.jclouds jclouds-core ${project.version} - ${project.groupId} + org.jclouds jclouds-core ${project.version} test-jar @@ -77,7 +73,7 @@ test - ${project.groupId} + org.jclouds jclouds-log4j ${project.version} test diff --git a/sandbox/twitter/src/main/java/org/jclouds/twitter/Twitter.java b/sandbox-providers/twitter/src/main/java/org/jclouds/twitter/Twitter.java similarity index 100% rename from sandbox/twitter/src/main/java/org/jclouds/twitter/Twitter.java rename to sandbox-providers/twitter/src/main/java/org/jclouds/twitter/Twitter.java diff --git a/sandbox/twitter/src/main/java/org/jclouds/twitter/TwitterAsyncClient.java b/sandbox-providers/twitter/src/main/java/org/jclouds/twitter/TwitterAsyncClient.java similarity index 100% rename from sandbox/twitter/src/main/java/org/jclouds/twitter/TwitterAsyncClient.java rename to sandbox-providers/twitter/src/main/java/org/jclouds/twitter/TwitterAsyncClient.java diff --git a/sandbox/twitter/src/main/java/org/jclouds/twitter/TwitterClient.java b/sandbox-providers/twitter/src/main/java/org/jclouds/twitter/TwitterClient.java similarity index 100% rename from sandbox/twitter/src/main/java/org/jclouds/twitter/TwitterClient.java rename to sandbox-providers/twitter/src/main/java/org/jclouds/twitter/TwitterClient.java diff --git a/sandbox/twitter/src/main/java/org/jclouds/twitter/TwitterContextBuilder.java b/sandbox-providers/twitter/src/main/java/org/jclouds/twitter/TwitterContextBuilder.java similarity index 100% rename from sandbox/twitter/src/main/java/org/jclouds/twitter/TwitterContextBuilder.java rename to sandbox-providers/twitter/src/main/java/org/jclouds/twitter/TwitterContextBuilder.java diff --git a/sandbox/twitter/src/main/java/org/jclouds/twitter/TwitterPropertiesBuilder.java b/sandbox-providers/twitter/src/main/java/org/jclouds/twitter/TwitterPropertiesBuilder.java similarity index 100% rename from sandbox/twitter/src/main/java/org/jclouds/twitter/TwitterPropertiesBuilder.java rename to sandbox-providers/twitter/src/main/java/org/jclouds/twitter/TwitterPropertiesBuilder.java diff --git a/sandbox/twitter/src/main/java/org/jclouds/twitter/config/TwitterRestClientModule.java b/sandbox-providers/twitter/src/main/java/org/jclouds/twitter/config/TwitterRestClientModule.java similarity index 100% rename from sandbox/twitter/src/main/java/org/jclouds/twitter/config/TwitterRestClientModule.java rename to sandbox-providers/twitter/src/main/java/org/jclouds/twitter/config/TwitterRestClientModule.java diff --git a/sandbox/twitter/src/main/java/org/jclouds/twitter/domain/Status.java b/sandbox-providers/twitter/src/main/java/org/jclouds/twitter/domain/Status.java similarity index 100% rename from sandbox/twitter/src/main/java/org/jclouds/twitter/domain/Status.java rename to sandbox-providers/twitter/src/main/java/org/jclouds/twitter/domain/Status.java diff --git a/sandbox/twitter/src/main/java/org/jclouds/twitter/domain/User.java b/sandbox-providers/twitter/src/main/java/org/jclouds/twitter/domain/User.java similarity index 100% rename from sandbox/twitter/src/main/java/org/jclouds/twitter/domain/User.java rename to sandbox-providers/twitter/src/main/java/org/jclouds/twitter/domain/User.java diff --git a/sandbox/twitter/src/test/java/org/jclouds/twitter/TwitterAsyncClientTest.java b/sandbox-providers/twitter/src/test/java/org/jclouds/twitter/TwitterAsyncClientTest.java similarity index 100% rename from sandbox/twitter/src/test/java/org/jclouds/twitter/TwitterAsyncClientTest.java rename to sandbox-providers/twitter/src/test/java/org/jclouds/twitter/TwitterAsyncClientTest.java diff --git a/sandbox/twitter/src/test/java/org/jclouds/twitter/TwitterClientLiveTest.java b/sandbox-providers/twitter/src/test/java/org/jclouds/twitter/TwitterClientLiveTest.java similarity index 100% rename from sandbox/twitter/src/test/java/org/jclouds/twitter/TwitterClientLiveTest.java rename to sandbox-providers/twitter/src/test/java/org/jclouds/twitter/TwitterClientLiveTest.java diff --git a/sandbox/twitter/src/test/resources/log4j.xml b/sandbox-providers/twitter/src/test/resources/log4j.xml similarity index 100% rename from sandbox/twitter/src/test/resources/log4j.xml rename to sandbox-providers/twitter/src/test/resources/log4j.xml diff --git a/sandbox/twitter/src/test/resources/test_mentions.json b/sandbox-providers/twitter/src/test/resources/test_mentions.json similarity index 100% rename from sandbox/twitter/src/test/resources/test_mentions.json rename to sandbox-providers/twitter/src/test/resources/test_mentions.json diff --git a/sandbox/ibmdev/pom.xml b/sandbox/ibmdev/pom.xml deleted file mode 100644 index f838e698d2..0000000000 --- a/sandbox/ibmdev/pom.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - 4.0.0 - - org.jclouds - jclouds-project - 1.0-SNAPSHOT - ../project/pom.xml - - org.jclouds - jclouds-ibmdev - jclouds IBMDeveloperCloud core - jclouds components to access IBMDeveloperCloud - - - scm:svn:http://jclouds.googlecode.com/svn/trunk/ibmdevelopercloud - scm:svn:https://jclouds.googlecode.com/svn/trunk/ibmdevelopercloud - http://jclouds.googlecode.com/svn/trunk/ibmdevelopercloud - - - - - - jclouds-googlecode-deploy - http://jclouds.googlecode.com/svn/repo - - - jclouds-rimu-snapshots-nexus - https://oss.sonatype.org/content/repositories/snapshots - - - - - - - ${jclouds.ibmdev.user} - ${jclouds.ibmdev.password} - https://www-147.ibm.com/computecloud/enterprise/api/rest - - - - ${project.groupId} - jclouds-core - ${project.version} - - - ${project.groupId} - jclouds-core - ${project.version} - test-jar - test - - - log4j - log4j - 1.2.14 - test - - - ${project.groupId} - jclouds-log4j - ${project.version} - test - - - ${project.groupId} - jclouds-jsch - ${project.version} - test - - - ${project.groupId} - jclouds-compute - ${project.version} - - - ${project.groupId} - jclouds-compute - ${project.version} - test-jar - test - - - diff --git a/sandbox/jets3t/README.txt b/sandbox/jets3t/README.txt deleted file mode 100644 index fb9f604c32..0000000000 --- a/sandbox/jets3t/README.txt +++ /dev/null @@ -1,27 +0,0 @@ -==== - - Copyright (C) 2010 Cloud Conscious, LLC. - - ==================================================================== - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ==================================================================== -==== - -# -# A JetS3t (http://jets3t.s3.amazonaws.com/) S3Service implementation using -# jclouds. Can be used on Google App Engine. -# -# Expects jets3t to be present on your application's classpath. -# -# TODO: Supported features. -# TODO: Usage example. \ No newline at end of file diff --git a/sandbox/jets3t/pom.xml b/sandbox/jets3t/pom.xml deleted file mode 100644 index 2e6ba26685..0000000000 --- a/sandbox/jets3t/pom.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - 4.0.0 - - org.jclouds - jclouds-aws-extensions-project - 1.0-SNAPSHOT - - jclouds-jets3t - jclouds JetS3t Adapter - JetS3t plug-in implemented by JClouds - - - scm:svn:http://jclouds.googlecode.com/svn/trunk - scm:svn:https://jclouds.googlecode.com/svn/trunk - http://jclouds.googlecode.com/svn/trunk - - - - - net.java.dev.jets3t - jets3t - 0.7.1 - provided - - - diff --git a/sandbox/jets3t/src/main/java/org/jclouds/aws/s3/jets3t/JCloudsS3Service.java b/sandbox/jets3t/src/main/java/org/jclouds/aws/s3/jets3t/JCloudsS3Service.java deleted file mode 100755 index a1a3efbfbd..0000000000 --- a/sandbox/jets3t/src/main/java/org/jclouds/aws/s3/jets3t/JCloudsS3Service.java +++ /dev/null @@ -1,356 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.aws.s3.jets3t; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import org.jclouds.aws.s3.S3Client; -import org.jclouds.aws.s3.blobstore.S3AsyncBlobStore; -import org.jclouds.aws.s3.domain.ListBucketResponse; -import org.jclouds.aws.s3.domain.ObjectMetadata; -import org.jclouds.aws.s3.options.CopyObjectOptions; -import org.jclouds.aws.s3.options.ListBucketOptions; -import org.jclouds.aws.s3.options.PutObjectOptions; -import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; -import org.jclouds.http.options.GetOptions; -import org.jets3t.service.S3ObjectsChunk; -import org.jets3t.service.S3Service; -import org.jets3t.service.S3ServiceException; -import org.jets3t.service.acl.AccessControlList; -import org.jets3t.service.model.S3Bucket; -import org.jets3t.service.model.S3BucketLoggingStatus; -import org.jets3t.service.model.S3Object; -import org.jets3t.service.security.AWSCredentials; - -import com.google.common.base.Throwables; -import com.google.common.collect.ImmutableList; -import com.google.inject.Module; - -/** - * A JetS3t S3Service implemented by JClouds - * - * @author Adrian Cole - * @author James Murty - */ -public class JCloudsS3Service extends S3Service { - - private static final long serialVersionUID = 1L; - - private final BlobStoreContext context; - private final S3Client connection; - - /** - * Initializes a JClouds context to S3. - * - * @param awsCredentials - * - credentials to access S3 - * @param modules - * - Module that configures a FutureHttpClient, if not specified, default is - * URLFetchServiceClientModule - * @throws S3ServiceException - */ - protected JCloudsS3Service(AWSCredentials awsCredentials, Module... modules) throws S3ServiceException { - super(awsCredentials); - context = new BlobStoreContextFactory().createContext("s3", awsCredentials.getAccessKey(), awsCredentials - .getSecretKey(), ImmutableList. copyOf(modules)); - connection = (S3Client) context.getProviderSpecificContext().getApi(); - } - - @Override - public int checkBucketStatus(final String bucketName) throws S3ServiceException { - // TODO Unimplemented - throw new UnsupportedOperationException(); - } - - /** - * {@inheritDoc} - */ - @SuppressWarnings("unchecked") - @Override - protected Map copyObjectImpl(String sourceBucketName, String sourceObjectKey, String destinationBucketName, - String destinationObjectKey, AccessControlList acl, Map destinationMetadata, Calendar ifModifiedSince, - Calendar ifUnmodifiedSince, String[] ifMatchTags, String[] ifNoneMatchTags) throws S3ServiceException { - try { - CopyObjectOptions options = Util.convertCopyObjectOptions(acl, destinationMetadata, ifModifiedSince, - ifUnmodifiedSince, ifMatchTags, ifNoneMatchTags); - ObjectMetadata jcObjectMetadata = connection.copyObject(sourceBucketName, sourceObjectKey, - destinationBucketName, destinationObjectKey, options); - - Map map = new HashMap(); - // Result fields returned when copy is successful. - map.put("Last-Modified", jcObjectMetadata.getLastModified()); - map.put("ETag", jcObjectMetadata.getETag()); - return map; - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error copying object", e); - } - } - - @Override - protected S3Bucket createBucketImpl(String bucketName, String location, AccessControlList acl) - throws S3ServiceException { - if (location != null) - throw new UnsupportedOperationException("Bucket location is not yet supported"); - if (acl != null) - throw new UnsupportedOperationException("Bucket ACL is not yet supported"); - - try { - if (connection.putBucketInRegion(null, bucketName)) { - // Bucket created. - } - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error creating bucket: " + bucketName, e); - } - return new S3Bucket(bucketName); - } - - /** - * {@inheritDoc} - * - * @see S3AsyncBlobStore#deleteContainer(String) - */ - @Override - protected void deleteBucketImpl(String bucketName) throws S3ServiceException { - try { - connection.deleteBucketIfEmpty(bucketName); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error deleting bucket: " + bucketName, e); - } - } - - /** - * {@inheritDoc} - * - * @see S3AsyncBlobStore#removeBlob(String, String) - */ - @Override - protected void deleteObjectImpl(String bucketName, String objectKey) throws S3ServiceException { - try { - connection.deleteObject(bucketName, objectKey); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException(String.format("error deleting object: %1$s:%2$s", bucketName, objectKey), e); - } - } - - @Override - protected AccessControlList getBucketAclImpl(String bucketName) throws S3ServiceException { - try { - org.jclouds.aws.s3.domain.AccessControlList jcACL = connection.getBucketACL(bucketName); - return Util.convertAccessControlList(jcACL); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error getting bucket's ACL: " + bucketName, e); - } - } - - @Override - protected String getBucketLocationImpl(String bucketName) throws S3ServiceException { - // TODO Unimplemented - throw new UnsupportedOperationException(); - } - - @Override - protected S3BucketLoggingStatus getBucketLoggingStatusImpl(String bucketName) throws S3ServiceException { - // TODO Unimplemented - throw new UnsupportedOperationException(); - } - - @Override - protected AccessControlList getObjectAclImpl(String bucketName, String objectKey) throws S3ServiceException { - try { - org.jclouds.aws.s3.domain.AccessControlList jcACL = connection.getObjectACL(bucketName, objectKey); - return Util.convertAccessControlList(jcACL); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error getting object's ACL", e); - } - } - - @Override - protected S3Object getObjectDetailsImpl(String bucketName, String objectKey, Calendar ifModifiedSince, - Calendar ifUnmodifiedSince, String[] ifMatchTags, String[] ifNoneMatchTags) throws S3ServiceException { - try { - if (ifModifiedSince != null) - throw new IllegalArgumentException("ifModifiedSince"); - if (ifUnmodifiedSince != null) - throw new IllegalArgumentException("ifUnmodifiedSince"); - if (ifMatchTags != null) - throw new IllegalArgumentException("ifMatchTags"); - if (ifNoneMatchTags != null) - throw new IllegalArgumentException("ifNoneMatchTags"); - - return Util.convertObjectHead(connection.headObject(bucketName, objectKey)); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException(String.format("error retrieving object head: %1$s:%2$s", bucketName, objectKey), - e); - } - } - - @Override - protected S3Object getObjectImpl(String bucketName, String objectKey, Calendar ifModifiedSince, - Calendar ifUnmodifiedSince, String[] ifMatchTags, String[] ifNoneMatchTags, Long byteRangeStart, - Long byteRangeEnd) throws S3ServiceException { - try { - GetOptions options = Util.convertGetObjectOptions(ifModifiedSince, ifUnmodifiedSince, ifMatchTags, - ifNoneMatchTags); - return Util.convertObject(connection.getObject(bucketName, objectKey, options)); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException(String.format("error retrieving object: %1$s:%2$s", bucketName, objectKey), e); - } - } - - @Override - public boolean isBucketAccessible(String bucketName) throws S3ServiceException { - // TODO Unimplemented - throw new UnsupportedOperationException(); - } - - @Override - protected boolean isRequesterPaysBucketImpl(String bucketName) throws S3ServiceException { - // TODO Unimplemented - throw new UnsupportedOperationException(); - } - - @Override - protected S3Bucket[] listAllBucketsImpl() throws S3ServiceException { - try { - Set jcBucketList = connection.listOwnedBuckets(); - return Util.convertBuckets(jcBucketList); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error listing buckets", e); - } - } - - @Override - protected S3ObjectsChunk listObjectsChunkedImpl(String bucketName, String prefix, String delimiter, - long maxListingLength, String priorLastKey, boolean completeListing) throws S3ServiceException { - try { - List jsObjects = new ArrayList(); - List commonPrefixes = new ArrayList(); - ListBucketResponse jcBucket = null; - do { - ListBucketOptions options = Util.convertListObjectOptions(prefix, priorLastKey, delimiter, - (int) maxListingLength); - - jcBucket = connection.listBucket(bucketName, options); - - jsObjects.addAll(Arrays.asList(Util.convertObjectHeads(jcBucket))); - commonPrefixes.addAll(jcBucket.getCommonPrefixes()); - if (jcBucket.isTruncated()) { - priorLastKey = jsObjects.get(jsObjects.size() - 1).getKey(); - } else { - priorLastKey = null; - } - } while (completeListing && jcBucket.isTruncated()); // Build entire listing if requested - - return new S3ObjectsChunk( - prefix, // Return the supplied prefix, not the one in the S3 - // response. - jcBucket.getDelimiter(), (S3Object[]) jsObjects.toArray(new S3Object[jsObjects.size()]), - (String[]) commonPrefixes.toArray(new String[commonPrefixes.size()]), priorLastKey); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error listing objects in bucket " + bucketName, e); - } - } - - @Override - protected S3Object[] listObjectsImpl(String bucketName, String prefix, String delimiter, long maxListingLength) - throws S3ServiceException { - try { - return listObjectsChunked(bucketName, prefix, delimiter, maxListingLength, null, true).getObjects(); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error listing objects in bucket " + bucketName, e); - } - } - - @Override - protected void putBucketAclImpl(String bucketName, AccessControlList jsACL) throws S3ServiceException { - try { - org.jclouds.aws.s3.domain.AccessControlList jcACL = Util.convertAccessControlList(jsACL); - connection.putBucketACL(bucketName, jcACL); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error putting bucket's ACL: " + bucketName, e); - } - } - - @Override - protected void putObjectAclImpl(String bucketName, String objectKey, AccessControlList jsACL) - throws S3ServiceException { - try { - org.jclouds.aws.s3.domain.AccessControlList jcACL = Util.convertAccessControlList(jsACL); - connection.putObjectACL(bucketName, objectKey, jcACL); - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error putting object's ACL", e); - } - } - - @Override - protected S3Object putObjectImpl(String bucketName, S3Object jsObject) throws S3ServiceException { - try { - PutObjectOptions options = Util.convertPutObjectOptions(jsObject.getAcl()); - org.jclouds.aws.s3.domain.S3Object jcObject = Util.convertObject(jsObject, connection.newS3Object()); - String eTag = connection.putObject(bucketName, jcObject, options); - jsObject.setETag(eTag); - return jsObject; - } catch (Exception e) { - Throwables.propagateIfPossible(e, S3ServiceException.class); - throw new S3ServiceException("error putting object", e); - } - } - - @Override - protected void setBucketLoggingStatusImpl(String bucketName, S3BucketLoggingStatus status) throws S3ServiceException { - // TODO Unimplemented - throw new UnsupportedOperationException(); - - } - - @Override - protected void setRequesterPaysBucketImpl(String bucketName, boolean requesterPays) throws S3ServiceException { - // TODO Unimplemented - throw new UnsupportedOperationException(); - - } - - protected org.jets3t.service.model.S3Owner getAccountOwnerImpl() throws org.jets3t.service.S3ServiceException { - // TODO Unimplemented - throw new UnsupportedOperationException(); - - } - -} diff --git a/sandbox/jets3t/src/main/java/org/jclouds/aws/s3/jets3t/Util.java b/sandbox/jets3t/src/main/java/org/jclouds/aws/s3/jets3t/Util.java deleted file mode 100755 index 6b2e75b9f3..0000000000 --- a/sandbox/jets3t/src/main/java/org/jclouds/aws/s3/jets3t/Util.java +++ /dev/null @@ -1,343 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.aws.s3.jets3t; - -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.Map.Entry; - -import javax.ws.rs.core.MediaType; - -import org.jclouds.aws.s3.domain.CannedAccessPolicy; -import org.jclouds.aws.s3.domain.CanonicalUser; -import org.jclouds.aws.s3.domain.ListBucketResponse; -import org.jclouds.aws.s3.domain.ObjectMetadata; -import org.jclouds.aws.s3.domain.ObjectMetadata.StorageClass; -import org.jclouds.aws.s3.options.CopyObjectOptions; -import org.jclouds.aws.s3.options.ListBucketOptions; -import org.jclouds.aws.s3.options.PutObjectOptions; -import org.jclouds.date.DateService; -import org.jclouds.date.internal.SimpleDateFormatDateService; -import org.jclouds.http.options.GetOptions; -import org.jets3t.service.S3ServiceException; -import org.jets3t.service.acl.AccessControlList; -import org.jets3t.service.acl.CanonicalGrantee; -import org.jets3t.service.acl.EmailAddressGrantee; -import org.jets3t.service.acl.GrantAndPermission; -import org.jets3t.service.acl.GranteeInterface; -import org.jets3t.service.acl.GroupGrantee; -import org.jets3t.service.acl.Permission; -import org.jets3t.service.model.S3Bucket; -import org.jets3t.service.model.S3Object; -import org.jets3t.service.model.S3Owner; -import org.jets3t.service.utils.RestUtils; - -import com.google.common.collect.Maps; - -/** - * Convert between jCloud and JetS3t objects. - * - * @author James Murty - */ -public class Util { - - public static S3Bucket convertBucket(org.jclouds.aws.s3.domain.BucketMetadata jcBucketMD) { - S3Bucket jsBucket = new S3Bucket(jcBucketMD.getName()); - if (jcBucketMD.getOwner() != null) { - jsBucket.setOwner(new S3Owner(jcBucketMD.getOwner().getId(), jcBucketMD.getOwner().getDisplayName())); - } - return jsBucket; - } - - public static S3Bucket[] convertBuckets(Set jcBucketMDs) { - List jsBuckets = new ArrayList(jcBucketMDs.size()); - for (org.jclouds.aws.s3.domain.BucketMetadata jcBucketMD : jcBucketMDs) { - jsBuckets.add(convertBucket(jcBucketMD)); - } - return (S3Bucket[]) jsBuckets.toArray(new S3Bucket[jsBuckets.size()]); - } - - public static S3Object[] convertObjectHeads(ListBucketResponse jcBucket) { - List jsObjects = new ArrayList(jcBucket.size()); - for (ObjectMetadata jcObjectMD : jcBucket) { - jsObjects.add(convertObjectHead(jcObjectMD)); - } - return (S3Object[]) jsObjects.toArray(new S3Object[jsObjects.size()]); - } - - public static S3Object convertObjectHead(ObjectMetadata jcObjectMD) { - S3Object jsObject = new S3Object(jcObjectMD.getKey()); - if (jcObjectMD.getOwner() != null) { - jsObject.setOwner(new S3Owner(jcObjectMD.getOwner().getId(), jcObjectMD.getOwner().getDisplayName())); - } - jsObject.setContentLength(jcObjectMD.getSize()); - jsObject.setContentDisposition(jcObjectMD.getContentDisposition()); - jsObject.setContentEncoding(jcObjectMD.getContentEncoding()); - jsObject.setLastModifiedDate(jcObjectMD.getLastModified()); - jsObject.setETag(jcObjectMD.getETag()); - jsObject.setMd5Hash(jcObjectMD.getContentMD5()); - jsObject.addAllMetadata(jcObjectMD.getUserMetadata()); - jsObject.addMetadata(S3Object.METADATA_HEADER_DATE, jcObjectMD.getLastModified()); - return jsObject; - } - - public static S3Object convertObject(org.jclouds.aws.s3.domain.S3Object jcObject) { - S3Object jsObject = convertObjectHead(jcObject.getMetadata()); - if (jcObject.getPayload().getInput() != null) { - jsObject.setDataInputStream(jcObject.getPayload().getInput()); - } - return jsObject; - } - - public static S3Object[] convertObjects(List jcObjects) { - List jsObjects = new ArrayList(jcObjects.size()); - for (org.jclouds.aws.s3.domain.S3Object jcObject : jcObjects) { - jsObjects.add(convertObject(jcObject)); - } - return (S3Object[]) jsObjects.toArray(new S3Object[jsObjects.size()]); - } - - @SuppressWarnings("unchecked") - public static org.jclouds.aws.s3.domain.S3Object convertObject(S3Object jsObject, - org.jclouds.aws.s3.domain.S3Object jcObject) throws S3ServiceException { - if (jsObject.getDataInputStream() != null) { - jcObject.setPayload(jsObject.getDataInputStream()); - } else { - jcObject.setPayload(""); // Must explicitly set data for empty jClouds objects. - } - jcObject.getPayload().setContentLength(jsObject.getContentLength()); - - jcObject.getMetadata().setKey(jsObject.getKey()); - jcObject.getMetadata().setCacheControl((String) jsObject.getMetadata("Cache-Control")); - jcObject.getMetadata().setContentDisposition(jsObject.getContentDisposition()); - jcObject.getMetadata().setContentEncoding(jsObject.getContentEncoding()); - jcObject.getMetadata().setLastModified(jsObject.getLastModifiedDate()); - if (jsObject.getStorageClass() != null) - jcObject.getMetadata().setStorageClass(StorageClass.valueOf(jsObject.getStorageClass())); - - if (jsObject.getMd5HashAsHex() != null) { - jcObject.getMetadata().setETag(jsObject.getMd5HashAsHex()); - } - - if (jsObject.getOwner() != null) { - jcObject.getMetadata().setOwner(new CanonicalUser(jsObject.getOwner().getId())); - } - - if (jsObject.getContentType() != null) { - jcObject.getMetadata().setContentType(jsObject.getContentType()); - } else { - // Must always provide a content type for jClouds objects. - jcObject.getMetadata().setContentType(MediaType.APPLICATION_OCTET_STREAM); - jsObject.setContentType(MediaType.APPLICATION_OCTET_STREAM); - } - - // User metadata - DateService dateService = new SimpleDateFormatDateService(); - for (Object maybeUserMetadataObj : jsObject.getMetadataMap().entrySet()) { - String name = ((Entry) maybeUserMetadataObj).getKey(); - Object value = ((Entry) maybeUserMetadataObj).getValue(); - if (!RestUtils.HTTP_HEADER_METADATA_NAMES.contains(name.toLowerCase())) { - if (value instanceof Date) { - value = dateService.rfc822DateFormat((Date) value); - } - jcObject.getMetadata().getUserMetadata().put(name, (String) value); - } - } - - return jcObject; - } - - public static GetOptions convertGetObjectOptions(Calendar ifModifiedSince, Calendar ifUnmodifiedSince, - String[] ifMatchTags, String[] ifNoneMatchTags) throws UnsupportedEncodingException { - GetOptions options = new GetOptions(); - if (ifModifiedSince != null) { - options.ifModifiedSince(ifModifiedSince.getTime()); - } - if (ifUnmodifiedSince != null) { - options.ifUnmodifiedSince(ifUnmodifiedSince.getTime()); - } - // TODO: options.ifETagMatches should accept multiple match tags - if (ifMatchTags != null && ifMatchTags.length > 0) { - options.ifETagMatches(ifMatchTags[0]); - } - // TODO: options.ifETagDoesntMatch should accept multiple match tags - if (ifNoneMatchTags != null && ifNoneMatchTags.length > 0) { - options.ifETagDoesntMatch(ifNoneMatchTags[0]); - } - return options; - } - - public static ListBucketOptions convertListObjectOptions(String prefix, String marker, String delimiter, - Integer maxKeys) throws UnsupportedEncodingException { - ListBucketOptions options = new ListBucketOptions(); - if (prefix != null) { - options.withPrefix(prefix); - } - if (marker != null) { - options.afterMarker(marker); - } - if (maxKeys != null) { - options.maxResults(maxKeys); - } - if (delimiter != null) { - options.delimiter(delimiter); - } - return options; - } - - public static CannedAccessPolicy convertACLToCannedAccessPolicy(AccessControlList acl) { - if (acl == null) { - return null; - } else if (acl == AccessControlList.REST_CANNED_AUTHENTICATED_READ) { - return CannedAccessPolicy.AUTHENTICATED_READ; - } else if (acl == AccessControlList.REST_CANNED_PRIVATE) { - return CannedAccessPolicy.PRIVATE; - } else if (acl == AccessControlList.REST_CANNED_PUBLIC_READ) { - return CannedAccessPolicy.PUBLIC_READ; - } else if (acl == AccessControlList.REST_CANNED_PUBLIC_READ_WRITE) { - return CannedAccessPolicy.PUBLIC_READ_WRITE; - } - throw new IllegalArgumentException("Only 'canned' AccessControlList options are supported: " + acl); - } - - public static AccessControlList convertAccessControlList(org.jclouds.aws.s3.domain.AccessControlList jcACL) { - AccessControlList jsACL = new AccessControlList(); - if (jcACL.getOwner() != null) { - jsACL.setOwner(new S3Owner(jcACL.getOwner().getId(), jcACL.getOwner().getDisplayName())); - } - for (org.jclouds.aws.s3.domain.AccessControlList.Grant jcGrant : jcACL.getGrants()) { - Permission jsPermission = null; - org.jclouds.aws.s3.domain.AccessControlList.Permission jcPerm = jcGrant.getPermission(); - if (org.jclouds.aws.s3.domain.AccessControlList.Permission.FULL_CONTROL == jcPerm) { - jsPermission = Permission.PERMISSION_FULL_CONTROL; - } else if (org.jclouds.aws.s3.domain.AccessControlList.Permission.READ == jcPerm) { - jsPermission = Permission.PERMISSION_READ; - } else if (org.jclouds.aws.s3.domain.AccessControlList.Permission.READ_ACP == jcPerm) { - jsPermission = Permission.PERMISSION_READ_ACP; - } else if (org.jclouds.aws.s3.domain.AccessControlList.Permission.WRITE == jcPerm) { - jsPermission = Permission.PERMISSION_WRITE; - } else if (org.jclouds.aws.s3.domain.AccessControlList.Permission.WRITE_ACP == jcPerm) { - jsPermission = Permission.PERMISSION_WRITE_ACP; - } - - GranteeInterface jsGrantee = null; - org.jclouds.aws.s3.domain.AccessControlList.Grantee jcGrantee = jcGrant.getGrantee(); - if (jcGrantee instanceof org.jclouds.aws.s3.domain.AccessControlList.EmailAddressGrantee) { - jsGrantee = new EmailAddressGrantee(jcGrantee.getIdentifier()); - } else if (jcGrantee instanceof org.jclouds.aws.s3.domain.AccessControlList.CanonicalUserGrantee) { - jsGrantee = new CanonicalGrantee(jcGrantee.getIdentifier()); - } else if (jcGrantee instanceof org.jclouds.aws.s3.domain.AccessControlList.GroupGrantee) { - jsGrantee = new GroupGrantee(jcGrantee.getIdentifier()); - } - - jsACL.grantPermission(jsGrantee, jsPermission); - } - return jsACL; - } - - @SuppressWarnings("unchecked") - public static org.jclouds.aws.s3.domain.AccessControlList convertAccessControlList(AccessControlList jsACL) { - org.jclouds.aws.s3.domain.AccessControlList jcACL = new org.jclouds.aws.s3.domain.AccessControlList(); - if (jsACL.getOwner() != null) { - jcACL.setOwner(new org.jclouds.aws.s3.domain.CanonicalUser(jsACL.getOwner().getId())); - } - Iterator jsGrantAndPermissionIter = jsACL.getGrants().iterator(); - while (jsGrantAndPermissionIter.hasNext()) { - GrantAndPermission jsGrantAndPermission = (GrantAndPermission) jsGrantAndPermissionIter.next(); - - org.jclouds.aws.s3.domain.AccessControlList.Permission jcPermission = null; - Permission jsPerm = jsGrantAndPermission.getPermission(); - if (Permission.PERMISSION_FULL_CONTROL == jsPerm) { - jcPermission = org.jclouds.aws.s3.domain.AccessControlList.Permission.FULL_CONTROL; - } else if (Permission.PERMISSION_READ == jsPerm) { - jcPermission = org.jclouds.aws.s3.domain.AccessControlList.Permission.READ; - } else if (Permission.PERMISSION_READ_ACP == jsPerm) { - jcPermission = org.jclouds.aws.s3.domain.AccessControlList.Permission.READ_ACP; - } else if (Permission.PERMISSION_WRITE == jsPerm) { - jcPermission = org.jclouds.aws.s3.domain.AccessControlList.Permission.WRITE; - } else if (Permission.PERMISSION_WRITE_ACP == jsPerm) { - jcPermission = org.jclouds.aws.s3.domain.AccessControlList.Permission.WRITE_ACP; - } - - org.jclouds.aws.s3.domain.AccessControlList.Grantee jcGrantee = null; - GranteeInterface jsGrantee = jsGrantAndPermission.getGrantee(); - if (jsGrantee instanceof EmailAddressGrantee) { - jcGrantee = new org.jclouds.aws.s3.domain.AccessControlList.EmailAddressGrantee(jsGrantee.getIdentifier()); - } else if (jsGrantee instanceof CanonicalGrantee) { - jcGrantee = new org.jclouds.aws.s3.domain.AccessControlList.CanonicalUserGrantee(jsGrantee.getIdentifier()); - } else if (jsGrantee instanceof GroupGrantee) { - jcGrantee = new org.jclouds.aws.s3.domain.AccessControlList.GroupGrantee( - org.jclouds.aws.s3.domain.AccessControlList.GroupGranteeURI.fromURI(jsGrantee.getIdentifier())); - } - - jcACL.addPermission(jcGrantee, jcPermission); - } - return jcACL; - } - - public static PutObjectOptions convertPutObjectOptions(AccessControlList acl) { - PutObjectOptions options = new PutObjectOptions(); - if (acl != null) { - options.withAcl(convertACLToCannedAccessPolicy(acl)); - } - return options; - } - - @SuppressWarnings("unchecked") - public static CopyObjectOptions convertCopyObjectOptions(AccessControlList acl, Map destinationMetadata, - Calendar ifModifiedSince, Calendar ifUnmodifiedSince, String[] ifMatchTags, String[] ifNoneMatchTags) - throws UnsupportedEncodingException { - CopyObjectOptions options = new CopyObjectOptions(); - if (acl != null) { - options.overrideAcl(convertACLToCannedAccessPolicy(acl)); - } - if (ifModifiedSince != null) { - options.ifSourceModifiedSince(ifModifiedSince.getTime()); - } - if (ifUnmodifiedSince != null) { - options.ifSourceUnmodifiedSince(ifUnmodifiedSince.getTime()); - } - // TODO: options.ifETagMatches should accept multiple match tags - if (ifMatchTags != null && ifMatchTags.length > 0) { - options.ifSourceETagMatches(ifMatchTags[0]); - } - // TODO: options.ifETagDoesntMatch should accept multiple match tags - if (ifNoneMatchTags != null && ifNoneMatchTags.length > 0) { - options.ifSourceETagDoesntMatch(ifNoneMatchTags[0]); - } - if (destinationMetadata != null) { - Map newMetadata = Maps.newHashMap(); - for (Object maybeUserMetadataObj : destinationMetadata.entrySet()) { - String name = ((Entry) maybeUserMetadataObj).getKey(); - String value = ((Entry) maybeUserMetadataObj).getValue(); - newMetadata.put(name, value); - } - options.overrideMetadataWith(newMetadata); - } - return options; - } - -} diff --git a/sandbox/jets3t/src/test/java/org/jclouds/aws/s3/jets3t/JCloudsS3ServiceLiveTest.java b/sandbox/jets3t/src/test/java/org/jclouds/aws/s3/jets3t/JCloudsS3ServiceLiveTest.java deleted file mode 100755 index d4c51b7fdf..0000000000 --- a/sandbox/jets3t/src/test/java/org/jclouds/aws/s3/jets3t/JCloudsS3ServiceLiveTest.java +++ /dev/null @@ -1,678 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.aws.s3.jets3t; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; -import static org.testng.Assert.assertNotNull; -import static org.testng.Assert.assertNull; -import static org.testng.Assert.assertTrue; -import static org.testng.Assert.fail; - -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.security.NoSuchAlgorithmException; -import java.util.Iterator; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeoutException; - -import javax.ws.rs.core.MediaType; - -import org.jclouds.aws.s3.S3Client; -import org.jclouds.aws.s3.domain.ListBucketResponse; -import org.jclouds.aws.s3.domain.AccessControlList.GroupGranteeURI; -import org.jclouds.aws.s3.domain.AccessControlList.Permission; -import org.jclouds.blobstore.domain.Blob; -import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest; -import org.jclouds.util.Utils; -import org.jets3t.service.S3ObjectsChunk; -import org.jets3t.service.S3Service; -import org.jets3t.service.S3ServiceException; -import org.jets3t.service.acl.AccessControlList; -import org.jets3t.service.acl.GrantAndPermission; -import org.jets3t.service.acl.GroupGrantee; -import org.jets3t.service.model.S3Bucket; -import org.jets3t.service.model.S3Object; -import org.jets3t.service.multithread.CreateObjectsEvent; -import org.jets3t.service.multithread.S3ServiceEventAdaptor; -import org.jets3t.service.multithread.S3ServiceEventListener; -import org.jets3t.service.multithread.S3ServiceMulti; -import org.jets3t.service.security.AWSCredentials; -import org.testng.ITestContext; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; - -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; - -/** - * Tests to cover JCloudsS3Service - * - * @author James Murty - * @author Adrian Cole - */ -@Test(groups = { "live" }, testName = "jets3t.JCloudsS3ServiceIntegrationTest") -public class JCloudsS3ServiceLiveTest extends BaseBlobStoreIntegrationTest { - AWSCredentials credentials; - S3Service service; - - public S3Client getApi() { - return (S3Client) context.getProviderSpecificContext().getApi(); - } - - /** - * overridden only to get access to the amazon credentials used for jets3t initialization. - * - * @throws S3ServiceException - */ - @BeforeClass(groups = { "live" }, dependsOnMethods = "setUpResourcesOnThisThread") - protected void createLiveS3Context(ITestContext testContext) throws S3ServiceException { - - String identity = System.getProperty("jclouds.test.identity"); - String credential = System.getProperty("jclouds.test.credential"); - - if (identity != null) { - credentials = new AWSCredentials(identity, credential); - service = new JCloudsS3Service(credentials); - } else { - assert false : "credentials not present"; - } - } - - @Test - public void testCreateBucketImpl() throws S3ServiceException, InterruptedException, ExecutionException, - TimeoutException { - String bucketName = getContainerName(); - try { - S3Bucket bucket = service.createBucket(new S3Bucket(bucketName)); - assertEquals(bucket.getName(), bucketName); - assertTrue(getApi().bucketExists(bucketName)); - } finally { - returnContainer(bucketName); - } - } - - @Test - public void testDeleteBucketImpl() throws S3ServiceException, InterruptedException, ExecutionException, - TimeoutException { - final String bucketName = getContainerName(); - service.deleteBucket(bucketName); - assertConsistencyAware(new Runnable() { - public void run() { - assertFalse(getApi().bucketExists(bucketName)); - } - }); - } - - @Test - public void testDeleteObjectImpl() throws InterruptedException, ExecutionException, TimeoutException, - S3ServiceException, IOException { - String bucketName = getContainerName(); - try { - String objectKey = "key-testDeleteObjectImpl"; - String objectValue = "test"; - Blob blob = context.getAsyncBlobStore().newBlob(objectKey); - blob.setPayload(objectValue); - addBlobToContainer(bucketName, blob); - - service.deleteObject(bucketName, objectKey); - } finally { - returnContainer(bucketName); - } - } - - @Test - public void testGetObjectDetailsImpl() throws InterruptedException, ExecutionException, TimeoutException, - S3ServiceException, IOException { - String bucketName = getContainerName(); - try { - String objectKey = "key-testGetObjectDetailsImpl".toLowerCase(); - String objectValue = "test"; - String metadataName = "metadata-name-1"; - String metadataValue = "metadata-value-1"; - - Blob blob = context.getAsyncBlobStore().newBlob(objectKey); - blob.setPayload(objectValue); - blob.getMetadata().getUserMetadata().put(metadataName, metadataValue); - addBlobToContainer(bucketName, blob); - - S3Object objectDetails = service.getObjectDetails(new S3Bucket(bucketName), objectKey); - - // TODO null keys from s3object! assertEquals(objectDetails.getKey(), objectKey); - assertEquals(objectDetails.getContentLength(), 4); - assertNull(objectDetails.getDataInputStream()); - assertEquals(objectDetails.getMetadata(metadataName), metadataValue); - } finally { - returnContainer(bucketName); - } - } - - @Test - public void testGetObjectImpl() throws InterruptedException, ExecutionException, TimeoutException, - S3ServiceException, IOException { - String bucketName = getContainerName(); - try { - String objectKey = "key-testGetObjectImpl".toLowerCase(); - String objectValue = "test"; - String metadataName = "metadata-name-2"; - String metadataValue = "metadata-value-2"; - - Blob blob = context.getAsyncBlobStore().newBlob(objectKey); - blob.setPayload(objectValue); - blob.getMetadata().getUserMetadata().put(metadataName, metadataValue); - addBlobToContainer(bucketName, blob); - - S3Object object = service.getObject(new S3Bucket(bucketName), objectKey); - - // TODO null keys from s3object! assertEquals(object.getKey(), objectKey); - assertNotNull(object.getDataInputStream()); - assertEquals(Utils.toStringAndClose(object.getDataInputStream()), objectValue); - assertEquals(object.getContentLength(), objectValue.length()); - assertEquals(object.getMetadata(metadataName), metadataValue); - - // TODO: Test conditional gets - } finally { - returnContainer(bucketName); - } - } - - @Test - public void testListAllBucketsImpl() throws InterruptedException, ExecutionException, TimeoutException, - S3ServiceException { - String bucketName = getContainerName(); - try { - // Ensure there is at least 1 bucket in S3 identity to list and compare. - S3Bucket[] jsBuckets = service.listAllBuckets(); - - Set jcBuckets = getApi().listOwnedBuckets(); - - assert jsBuckets.length == jcBuckets.size(); - - Iterator jcBucketsIter = jcBuckets.iterator(); - for (S3Bucket jsBucket : jsBuckets) { - assert jcBucketsIter.hasNext(); - - org.jclouds.aws.s3.domain.BucketMetadata jcBucket = jcBucketsIter.next(); - assert jsBucket.getName().equals(jcBucket.getName()); - } - } finally { - returnContainer(bucketName); - } - } - - @Test - public void testListObjectsChunkedImpl() throws InterruptedException, ExecutionException, TimeoutException, - IOException, S3ServiceException { - String bucketName = getContainerName(); - try { - addBlobToContainer(bucketName, "item1/subobject2"); - addBlobToContainer(bucketName, "item2"); - addBlobToContainer(bucketName, "object1"); - addBlobToContainer(bucketName, "object2/subobject1"); - - S3ObjectsChunk chunk; - - // Normal complete listing - chunk = service.listObjectsChunked(bucketName, null, null, 1000, null, true); - assertEquals(chunk.getObjects().length, 4); - assertEquals(chunk.getCommonPrefixes().length, 0); - assertNull(chunk.getDelimiter()); - assertNull(chunk.getPrefix()); - assertNull(chunk.getPriorLastKey()); - - // Partial listing - chunk = service.listObjectsChunked(bucketName, null, null, 2, null, false); - assertEquals(chunk.getObjects().length, 2); - assertEquals(chunk.getCommonPrefixes().length, 0); - assertNull(chunk.getDelimiter()); - assertNull(chunk.getPrefix()); - assertEquals(chunk.getPriorLastKey(), "item2"); - - // Complete listing, in two chunks - chunk = service.listObjectsChunked(bucketName, null, null, 2, null, true); - assertEquals(chunk.getObjects().length, 4); - assertEquals(chunk.getCommonPrefixes().length, 0); - assertNull(chunk.getDelimiter()); - assertNull(chunk.getPrefix()); - assertNull(chunk.getPriorLastKey()); - - // Partial listing with marker - chunk = service.listObjectsChunked(bucketName, null, null, 1000, "item1/subobject2", true); - assertEquals(chunk.getObjects().length, 3); - assertEquals(chunk.getCommonPrefixes().length, 0); - assertNull(chunk.getDelimiter()); - assertNull(chunk.getPrefix()); - assertNull(chunk.getPriorLastKey()); - - // Partial listing with marker - chunk = service.listObjectsChunked(bucketName, null, null, 1000, "object1", true); - assertEquals(chunk.getObjects().length, 1); - assertEquals(chunk.getCommonPrefixes().length, 0); - assertNull(chunk.getDelimiter()); - assertNull(chunk.getPrefix()); - assertNull(chunk.getPriorLastKey()); - - // Prefix test - chunk = service.listObjectsChunked(bucketName, "item", null, 1000, null, true); - assertEquals(chunk.getObjects().length, 2); - assertEquals(chunk.getCommonPrefixes().length, 0); - assertNull(chunk.getDelimiter()); - assertEquals(chunk.getPrefix(), "item"); - assertNull(chunk.getPriorLastKey()); - - // Delimiter test - chunk = service.listObjectsChunked(bucketName, null, "/", 1000, null, true); - assertEquals(chunk.getObjects().length, 2); - assertEquals(chunk.getCommonPrefixes().length, 2); - assertEquals(chunk.getDelimiter(), "/"); - assertNull(chunk.getPrefix()); - assertNull(chunk.getPriorLastKey()); - - // Prefix & delimiter test - chunk = service.listObjectsChunked(bucketName, "item", "/", 1000, null, true); - assertEquals(chunk.getObjects().length, 1); - assertEquals(chunk.getCommonPrefixes().length, 1); - assertEquals(chunk.getDelimiter(), "/"); - assertEquals(chunk.getPrefix(), "item"); - assertNull(chunk.getPriorLastKey()); - } finally { - returnContainer(bucketName); - } - } - - @Test - public void testListObjectsImpl() throws InterruptedException, ExecutionException, TimeoutException, IOException, - S3ServiceException { - String bucketName = null; - try { - bucketName = getContainerName(); - addBlobToContainer(bucketName, "item1/subobject2"); - addBlobToContainer(bucketName, "item2"); - addBlobToContainer(bucketName, "object1"); - addBlobToContainer(bucketName, "object2/subobject1"); - - S3Object[] objects; - - // Normal complete listing - objects = service.listObjects(bucketName, null, null, 1000); - assertEquals(objects.length, 4); - - // Complete listing, in two chunks - objects = service.listObjects(bucketName, null, null, 2); - assertEquals(objects.length, 4); - assertEquals(objects[0].getKey(), "item1/subobject2"); - assertEquals(objects[3].getKey(), "object2/subobject1"); - - // Prefix test - objects = service.listObjects(bucketName, "item", null, 1000); - assertEquals(objects.length, 2); - - // Delimiter test - objects = service.listObjects(bucketName, null, "/", 1000); - assertEquals(objects.length, 2); - assertEquals(objects[0].getKey(), "item2"); - assertEquals(objects[1].getKey(), "object1"); - - // Prefix & delimiter test - objects = service.listObjects(bucketName, "item", "/", 1000); - assertEquals(objects.length, 1); - assertEquals(objects[0].getKey(), "item2"); - } finally { - returnContainer(bucketName); - } - } - - @Test - public void testPutObjectImpl() throws S3ServiceException, InterruptedException, ExecutionException, - TimeoutException, NoSuchAlgorithmException, IOException { - String bucketName = getContainerName(); - try { - String objectKey = "putObject"; - - S3Object requestObject, jsResultObject; - org.jclouds.aws.s3.domain.S3Object jcObject; - - // Upload empty object - requestObject = new S3Object(objectKey); - jsResultObject = service.putObject(new S3Bucket(bucketName), requestObject); - jcObject = getApi().getObject(bucketName, objectKey); - // TODO null keys from s3object! assertEquals(jcObject.getKey(), objectKey); - assertEquals(jcObject.getMetadata().getSize(), new Long(0)); - assertEquals(jcObject.getMetadata().getContentType(), MediaType.APPLICATION_OCTET_STREAM); - assertEquals(jsResultObject.getKey(), requestObject.getKey()); - assertEquals(jsResultObject.getContentLength(), 0); - assertEquals(jsResultObject.getContentType(), MediaType.APPLICATION_OCTET_STREAM); - - // Upload unicode-named object - requestObject = new S3Object("₪n₪₪₪d₪-object"); - jsResultObject = service.putObject(new S3Bucket(bucketName), requestObject); - jcObject = getApi().getObject(bucketName, requestObject.getKey()); - // TODO null keys from s3object! assertEquals(jcObject.getKey(), requestObject.getKey()); - assertEquals(jcObject.getMetadata().getSize(), new Long(0)); - assertEquals(jcObject.getMetadata().getContentType(), MediaType.APPLICATION_OCTET_STREAM); - assertEquals(jsResultObject.getKey(), requestObject.getKey()); - assertEquals(jsResultObject.getContentLength(), 0); - assertEquals(jsResultObject.getContentType(), MediaType.APPLICATION_OCTET_STREAM); - - // Upload string object - String data = "This is my ₪n₪₪₪d₪ data"; - requestObject = new S3Object(objectKey, data); - jsResultObject = service.putObject(new S3Bucket(bucketName), requestObject); - jcObject = getApi().getObject(bucketName, objectKey); - assertEquals(jcObject.getMetadata().getSize(), new Long(data.getBytes("UTF-8").length)); - assertTrue(jcObject.getMetadata().getContentType().startsWith("text/plain")); - assertEquals(jsResultObject.getContentLength(), data.getBytes("UTF-8").length); - assertTrue(jsResultObject.getContentType().startsWith("text/plain")); - - // Upload object with metadata - requestObject = new S3Object(objectKey); - requestObject.addMetadata("x-amz-meta-" + "my-metadata-1", "value-1"); - jsResultObject = service.putObject(new S3Bucket(bucketName), requestObject); - jcObject = getApi().getObject(bucketName, objectKey); - assertEquals(jcObject.getMetadata().getUserMetadata().get("my-metadata-1"), "value-1"); - assertEquals(jsResultObject.getMetadata("x-amz-meta-" + "my-metadata-1"), "value-1"); - - // Upload object with canned public-read ACL - requestObject = new S3Object(objectKey); - requestObject.setAcl(AccessControlList.REST_CANNED_PUBLIC_READ); - jsResultObject = service.putObject(new S3Bucket(bucketName), requestObject); - org.jclouds.aws.s3.domain.AccessControlList jcACL = getApi().getObjectACL(bucketName, objectKey); - assertTrue(jcACL.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ)); - assertTrue(jcACL.hasPermission(jcACL.getOwner().getId(), Permission.FULL_CONTROL)); - assertEquals(jcACL.getGrants().size(), 2); - - // TODO : Any way to test a URL lookup that works for live and stub testing? - // URL publicUrl = new URL( - // "http://" + bucketName + ".s3.amazonaws.com:80/" + requestObject.getKey()); - // assertEquals(((HttpURLClient) publicUrl.openClient()).getResponseCode(), 200); - - // Upload object and check MD5 - requestObject = new S3Object(objectKey); - data = "Here is some d₪t₪ for you"; - requestObject.setDataInputStream(new ByteArrayInputStream(data.getBytes("UTF-8"))); - jsResultObject = service.putObject(new S3Bucket(bucketName), requestObject); - jcObject = getApi().getObject(bucketName, objectKey); - assertTrue(jsResultObject.verifyData(data.getBytes("UTF-8"))); - assertEquals(jsResultObject.getETag(), jcObject.getMetadata().getETag().replaceAll("\"", "")); - } finally { - returnContainer(bucketName); - } - } - - @Test - @SuppressWarnings("unchecked") - public void testCopyObjectImpl() throws InterruptedException, ExecutionException, TimeoutException, IOException, - S3ServiceException { - String bucketName = getContainerName(); - try { - String data = "This is my data"; - String sourceObjectKey = "₪riginalObject"; // Notice the use of non-ASCII - String destinationObjectKey = "d₪stinationObject"; // characters here. - String metadataName = "metadata-name"; - String sourceMetadataValue = "souce-metadata-value"; - String destinationMetadataValue = "destination-metadata-value"; - - Blob blob = context.getAsyncBlobStore().newBlob(sourceObjectKey); - blob.setPayload(data); - blob.getMetadata().getUserMetadata().put(metadataName, sourceMetadataValue); - addBlobToContainer(bucketName, blob); - - S3Object destinationObject; - Map copyResult; - org.jclouds.aws.s3.domain.S3Object jcDestinationObject; - - // Copy with metadata and ACL retained - destinationObject = new S3Object(destinationObjectKey); - copyResult = service.copyObject(bucketName, sourceObjectKey, bucketName, destinationObject, false); - jcDestinationObject = getApi().getObject(bucketName, destinationObject.getKey()); - // TODO null keys from s3object! assertEquals(jcDestinationObject.getKey(), - // destinationObjectKey); - assertEquals(jcDestinationObject.getMetadata().getUserMetadata().get(metadataName), sourceMetadataValue); - assertEquals(copyResult.get("ETag"), jcDestinationObject.getMetadata().getETag()); - // Test destination ACL is unchanged (ie private) - org.jclouds.aws.s3.domain.AccessControlList jcACL = getApi().getObjectACL(bucketName, - destinationObject.getKey()); - assertEquals(jcACL.getGrants().size(), 1); - assertTrue(jcACL.hasPermission(jcACL.getOwner().getId(), Permission.FULL_CONTROL)); - - // Copy with metadata replaced - destinationObject = new S3Object(destinationObjectKey); - destinationObject.addMetadata("x-amz-meta-" + metadataName, destinationMetadataValue); - copyResult = service.copyObject(bucketName, sourceObjectKey, bucketName, destinationObject, true); - jcDestinationObject = getApi().getObject(bucketName, destinationObject.getKey()); - assertEquals(jcDestinationObject.getMetadata().getUserMetadata().get(metadataName), destinationMetadataValue); - // Test destination ACL is unchanged (ie private) - jcACL = getApi().getObjectACL(bucketName, destinationObject.getKey()); - assertEquals(jcACL.getGrants().size(), 1); - assertTrue(jcACL.hasPermission(jcACL.getOwner().getId(), Permission.FULL_CONTROL)); - - // Copy with ACL modified - destinationObject = new S3Object(destinationObjectKey); - destinationObject.setAcl(AccessControlList.REST_CANNED_PUBLIC_READ); - copyResult = service.copyObject(bucketName, sourceObjectKey, bucketName, destinationObject, false); - // Test destination ACL is changed (ie public-read) - jcACL = getApi().getObjectACL(bucketName, destinationObject.getKey()); - assertEquals(jcACL.getGrants().size(), 2); - assertTrue(jcACL.hasPermission(jcACL.getOwner().getId(), Permission.FULL_CONTROL)); - assertTrue(jcACL.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ)); - - } finally { - returnContainer(bucketName); - } - } - - @Test - @SuppressWarnings("unchecked") - public void testPutAndGetBucketAclImpl() throws InterruptedException, ExecutionException, TimeoutException, - S3ServiceException { - String bucketName = getContainerName(); - try { - S3Bucket bucket = new S3Bucket(bucketName); - AccessControlList acl = null; - - // Confirm bucket is created private by default. - acl = service.getBucketAcl(bucket); - final String ownerId = acl.getOwner().getId(); - assertEquals(acl.getGrants().size(), 1); - GrantAndPermission gap = (GrantAndPermission) Iterables.find(acl.getGrants(), - new Predicate() { - public boolean apply(GrantAndPermission gap) { - return gap.getGrantee().getIdentifier().equals(ownerId); - } - }); - assertNotNull(gap); - assertEquals(gap.getPermission(), org.jets3t.service.acl.Permission.PERMISSION_FULL_CONTROL); - - // Add read access for public, and read-acp access for authenticated users. - acl.grantPermission(GroupGrantee.ALL_USERS, org.jets3t.service.acl.Permission.PERMISSION_READ); - acl.grantPermission(GroupGrantee.AUTHENTICATED_USERS, org.jets3t.service.acl.Permission.PERMISSION_READ_ACP); - service.putBucketAcl(bucketName, acl); - acl = service.getBucketAcl(bucket); - assertEquals(acl.getGrants().size(), 3); - gap = (GrantAndPermission) Iterables.find(acl.getGrants(), new Predicate() { - public boolean apply(GrantAndPermission gap) { - return gap.getGrantee().getIdentifier().equals(ownerId); - } - }); - assertEquals(gap.getPermission(), org.jets3t.service.acl.Permission.PERMISSION_FULL_CONTROL); - gap = (GrantAndPermission) Iterables.find(acl.getGrants(), new Predicate() { - public boolean apply(GrantAndPermission gap) { - return gap.getGrantee().getIdentifier().equals(GroupGrantee.ALL_USERS.getIdentifier()); - } - }); - assertEquals(gap.getPermission(), org.jets3t.service.acl.Permission.PERMISSION_READ); - gap = (GrantAndPermission) Iterables.find(acl.getGrants(), new Predicate() { - public boolean apply(GrantAndPermission gap) { - return gap.getGrantee().getIdentifier().equals(GroupGrantee.AUTHENTICATED_USERS.getIdentifier()); - } - }); - assertEquals(gap.getPermission(), org.jets3t.service.acl.Permission.PERMISSION_READ_ACP); - } finally { - // need to delete this container as we've modified its acls - destroyContainer(bucketName); - } - } - - @Test - @SuppressWarnings("unchecked") - public void testGetAndPutObjectAclImpl() throws InterruptedException, ExecutionException, TimeoutException, - S3ServiceException, NoSuchAlgorithmException, IOException { - String bucketName = getContainerName(); - try { - S3Bucket bucket = new S3Bucket(bucketName); - S3Object object = new S3Object("testGetAndPutObjectAclImpl", "my data"); - AccessControlList acl = null; - - // Create default object. - service.putObject(bucket, object); - - // Confirm object is created private by default. - acl = service.getObjectAcl(bucket, object.getKey()); - final String ownerId = acl.getOwner().getId(); - assertEquals(acl.getGrants().size(), 1); - GrantAndPermission gap = (GrantAndPermission) Iterables.find(acl.getGrants(), - new Predicate() { - public boolean apply(GrantAndPermission gap) { - return gap.getGrantee().getIdentifier().equals(ownerId); - } - }); - assertNotNull(gap); - assertEquals(gap.getPermission(), org.jets3t.service.acl.Permission.PERMISSION_FULL_CONTROL); - - // Add read access for public, and read-acp access for authenticated users. - acl.grantPermission(GroupGrantee.ALL_USERS, org.jets3t.service.acl.Permission.PERMISSION_READ); - acl.grantPermission(GroupGrantee.AUTHENTICATED_USERS, org.jets3t.service.acl.Permission.PERMISSION_READ_ACP); - service.putObjectAcl(bucketName, object.getKey(), acl); - acl = service.getObjectAcl(bucket, object.getKey()); - assertEquals(acl.getGrants().size(), 3); - gap = (GrantAndPermission) Iterables.find(acl.getGrants(), new Predicate() { - public boolean apply(GrantAndPermission gap) { - return gap.getGrantee().getIdentifier().equals(ownerId); - } - }); - assertEquals(gap.getPermission(), org.jets3t.service.acl.Permission.PERMISSION_FULL_CONTROL); - gap = (GrantAndPermission) Iterables.find(acl.getGrants(), new Predicate() { - public boolean apply(GrantAndPermission gap) { - return gap.getGrantee().getIdentifier().equals(GroupGrantee.ALL_USERS.getIdentifier()); - } - }); - assertEquals(gap.getPermission(), org.jets3t.service.acl.Permission.PERMISSION_READ); - gap = (GrantAndPermission) Iterables.find(acl.getGrants(), new Predicate() { - public boolean apply(GrantAndPermission gap) { - return gap.getGrantee().getIdentifier().equals(GroupGrantee.AUTHENTICATED_USERS.getIdentifier()); - } - }); - assertEquals(gap.getPermission(), org.jets3t.service.acl.Permission.PERMISSION_READ_ACP); - } finally { - returnContainer(bucketName); - } - } - - @Test - public void testMultiService() throws S3ServiceException, NoSuchAlgorithmException, IOException, - InterruptedException, ExecutionException, TimeoutException { - int OBJECT_COUNT = 50; - int OBJECT_SIZE = 1024; // 1 KB - - byte[] dataBuffer = new byte[OBJECT_SIZE]; - - String bucketName = getContainerName(); - try { - S3Bucket bucket = new S3Bucket(bucketName); - S3Object[] objects = new S3Object[OBJECT_COUNT]; - - for (int i = 0; i < objects.length; i++) { - InputStream dataInputStream = new ByteArrayInputStream(dataBuffer); - objects[i] = new S3Object("testMultiServiceObject" + i); - objects[i].setDataInputStream(dataInputStream); - objects[i].setContentLength(dataBuffer.length); - } - - final long[] countOfUploadCompletions = new long[1]; - S3ServiceEventListener eventListener = new S3ServiceEventAdaptor() { - @Override - public synchronized void s3ServiceEventPerformed(CreateObjectsEvent event) { - if (CreateObjectsEvent.EVENT_STARTED == event.getEventCode()) { - // Do nothing - } else if (CreateObjectsEvent.EVENT_COMPLETED == event.getEventCode()) { - // Do nothing - } else if (CreateObjectsEvent.EVENT_ERROR == event.getEventCode()) { - fail("Upload should not result in error", event.getErrorCause()); - } else if (CreateObjectsEvent.EVENT_IGNORED_ERRORS == event.getEventCode()) { - fail("Upload should not result in ignored errors: " + event.getIgnoredErrors()); - } else if (CreateObjectsEvent.EVENT_CANCELLED == event.getEventCode()) { - fail("Upload should not be cancelled"); - } else if (CreateObjectsEvent.EVENT_IN_PROGRESS == event.getEventCode()) { - countOfUploadCompletions[0] = event.getThreadWatcher().getCompletedThreads(); - } - } - }; - - S3ServiceMulti multiService = new S3ServiceMulti(service, eventListener); - multiService.putObjects(bucket, objects); - - assertEquals(countOfUploadCompletions[0], OBJECT_COUNT); - ListBucketResponse theBucket = getApi().listBucket(bucketName); - assertEquals(theBucket.size(), OBJECT_COUNT); - - } finally { - returnContainer(bucketName); - } - } - - @Test(enabled = false) - public void testCheckBucketStatus() { - fail("Not yet implemented"); - } - - @Test(enabled = false) - public void testGetBucketLocationImpl() { - fail("Not yet implemented"); - } - - @Test(enabled = false) - public void testGetBucketLoggingStatus() { - fail("Not yet implemented"); - } - - @Test(enabled = false) - public void testSetBucketLoggingStatusImpl() { - fail("Not yet implemented"); - } - - @Test(enabled = false) - public void testSetRequesterPaysBucketImpl() { - fail("Not yet implemented"); - } - - @Test(enabled = false) - public void testIsBucketAccessible() { - fail("Not yet implemented"); - } - - @Test(enabled = false) - public void testIsRequesterPaysBucketImpl() { - fail("Not yet implemented"); - } - -} diff --git a/sandbox/mezeo/pcs2/core/.gitignore b/sandbox/mezeo/pcs2/core/.gitignore deleted file mode 100644 index 29ab48c469..0000000000 --- a/sandbox/mezeo/pcs2/core/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -# use glob syntax. -syntax: glob -target -.settings -.classpath -.project -jclouds-pcs2.iml -jclouds-pcs2.ipr -jclouds-pcs2.iws \ No newline at end of file diff --git a/sandbox/mezeo/pcs2/core/pom.xml b/sandbox/mezeo/pcs2/core/pom.xml deleted file mode 100644 index 80f6c05325..0000000000 --- a/sandbox/mezeo/pcs2/core/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - 4.0.0 - - org.jclouds - jclouds-pcs2-project - 1.0-SNAPSHOT - - jclouds-pcs2 - jclouds mezeo cloud storage platform v2 core - jclouds Core components to access mezeo pcs2 - - - scm:svn:http://jclouds.googlecode.com/svn/trunk/mezo/pcs2/core - scm:svn:https://jclouds.googlecode.com/svn/trunk/mezo/pcs2/core - http://jclouds.googlecode.com/svn/trunk/mezo/pcs2/core - - - - - ${project.groupId} - jclouds-blobstore - ${project.version} - - - ${project.groupId} - jclouds-blobstore - ${project.version} - test-jar - test - - - - diff --git a/sandbox/mezeo/pcs2/pom.xml b/sandbox/mezeo/pcs2/pom.xml deleted file mode 100644 index 6daf1a2c95..0000000000 --- a/sandbox/mezeo/pcs2/pom.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - jclouds-mezeo-project - org.jclouds - 1.0-SNAPSHOT - ../pom.xml - - 4.0.0 - jclouds-pcs2-project - pom - jclouds mezeo cloud storage platform v2 project - - core - - - org.jclouds.mezeo.pcs2.blobstore.integration.PCSTestInitializer - ${jclouds.mezeo.pcs2.user} - ${jclouds.mezeo.pcs2.password} - ${jclouds.mezeo.pcs2.endpoint} - - - - ${project.groupId} - jclouds-core - ${project.version} - - - ${project.groupId} - jclouds-core - ${project.version} - test-jar - test - - - diff --git a/sandbox/mezeo/pom.xml b/sandbox/mezeo/pom.xml deleted file mode 100644 index 1271f86ed4..0000000000 --- a/sandbox/mezeo/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - jclouds-project - org.jclouds - 1.0-SNAPSHOT - ../project/pom.xml - - 4.0.0 - jclouds-mezeo-project - pom - jclouds mezeo project - - pcs2 - - - - ${project.groupId} - jclouds-core - ${project.version} - test-jar - test - - - log4j - log4j - 1.2.14 - test - - - ${project.groupId} - jclouds-log4j - ${project.version} - test - - - diff --git a/sandbox/nirvanix/pom.xml b/sandbox/nirvanix/pom.xml deleted file mode 100644 index 3983ede9e1..0000000000 --- a/sandbox/nirvanix/pom.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - jclouds-project - org.jclouds - 1.0-SNAPSHOT - ../project/pom.xml - - 4.0.0 - jclouds-nirvanix-project - pom - jclouds nirvanix project - - sdn - - - - ${project.groupId} - jclouds-core - ${project.version} - - - ${project.groupId} - jclouds-core - ${project.version} - test-jar - test - - - log4j - log4j - 1.2.14 - test - - - ${project.groupId} - jclouds-log4j - ${project.version} - test - - - diff --git a/sandbox/nirvanix/sdn/core/.gitignore b/sandbox/nirvanix/sdn/core/.gitignore deleted file mode 100644 index 3b9f3849e2..0000000000 --- a/sandbox/nirvanix/sdn/core/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ -# use glob syntax. -syntax: glob -target -.settings -.classpath -.project -jclouds-sdn.iml -jclouds-sdn.ipr -jclouds-sdn.iws \ No newline at end of file diff --git a/sandbox/nirvanix/sdn/core/pom.xml b/sandbox/nirvanix/sdn/core/pom.xml deleted file mode 100644 index 390c70cd24..0000000000 --- a/sandbox/nirvanix/sdn/core/pom.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - 4.0.0 - - org.jclouds - jclouds-sdn-project - 1.0-SNAPSHOT - - jclouds-sdn - jclouds nirvanix storage delivery network core - jclouds Core components to access nirvanix sdn - - - scm:svn:http://jclouds.googlecode.com/svn/trunk/mezo/sdn/core - scm:svn:https://jclouds.googlecode.com/svn/trunk/mezo/sdn/core - http://jclouds.googlecode.com/svn/trunk/mezo/sdn/core - - - - - ${project.groupId} - jclouds-blobstore - ${project.version} - - - ${project.groupId} - jclouds-blobstore - ${project.version} - test-jar - test - - - - diff --git a/sandbox/nirvanix/sdn/pom.xml b/sandbox/nirvanix/sdn/pom.xml deleted file mode 100644 index a8ac06dc1c..0000000000 --- a/sandbox/nirvanix/sdn/pom.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - jclouds-nirvanix-project - org.jclouds - 1.0-SNAPSHOT - ../pom.xml - - 4.0.0 - jclouds-sdn-project - pom - jclouds nirvanix storage delivery network project - - core - - - org.jclouds.nirvanix.sdn.integration.SDNTestInitializer - ${jclouds.nirvanix.sdn.username} - ${jclouds.nirvanix.sdn.password} - ${jclouds.nirvanix.sdn.appname} - ${jclouds.nirvanix.sdn.appkey} - - - diff --git a/sandbox/vfs/README.txt b/sandbox/vfs/README.txt deleted file mode 100755 index 433c39db54..0000000000 --- a/sandbox/vfs/README.txt +++ /dev/null @@ -1,25 +0,0 @@ -==== - - Copyright (C) 2010 Cloud Conscious, LLC. - - ==================================================================== - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ==================================================================== -==== - -# -# this is a simple command line client that obtains the contents of a container -# 1. execute 'mvn install' to build the sample -# 2. invoke the jar, passing your credentials and the container you wish to get -# ex. -# java -jar target/jclouds-vfs-jar-with-dependencies.jar blobstore://account:key@service/container diff --git a/sandbox/vfs/pom.xml b/sandbox/vfs/pom.xml deleted file mode 100644 index b2d3aed49e..0000000000 --- a/sandbox/vfs/pom.xml +++ /dev/null @@ -1,205 +0,0 @@ - - - - - 4.0.0 - - org.jclouds - jclouds-tools-project - 1.0-SNAPSHOT - - jclouds-vfs - jclouds blobstore-vfs integration - jclouds blobstore integration with apache commons vfs - - blobstore://${jclouds.aws.accesskeyid}:${jclouds.aws.secretaccesskey}@s3/jclouds-getpath - - - - - - org.apache.commons - commons-vfs - 2.0-SNAPSHOT - - - - - commons-logging - commons-logging - 1.1 - - - commons-httpclient - commons-httpclient - 3.1 - - - - org.apache.commons - commons-vfs - 2.0-SNAPSHOT - test-jar - test - - - junit - junit - 3.8.2 - test - - - - ${project.groupId} - jclouds-blobstore - ${project.version} - - - org.jclouds.provider - aws-s3 - ${project.version} - - - ${project.groupId} - jclouds-atmos - ${project.version} - - - ${project.groupId} - jclouds-azure - ${project.version} - - - ${project.groupId} - jclouds-rackspace - ${project.version} - - - ${project.groupId} - jclouds-log4j - ${project.version} - - - log4j - log4j - 1.2.14 - - - - - - apache.snapshots.https - Apache Snapshot Repository - https://repository.apache.org/content/repositories/snapshots - - false - - - - - - ${project.artifactId} - - - - maven-surefire-plugin - 2.4.3 - - - - test.basedir - target/test-data - - - test.basedir.res - target/test-data - - - - - - maven-jar-plugin - - - - org.jclouds.vfs.tools.blobstore.BlobStoreShell - - - - - - maven-assembly-plugin - - - package - - single - - - - jar-with-dependencies - - - - org.jclouds.vfs.tools.blobstore.BlobStoreShell - - - - - - - - - - - - live - - - - maven-surefire-plugin - - - - test.basedir - target/test-data - - - test.blobstore.uri - ${test.blobstore.uri} - - - - **/*TestCase.java - - - none - - - - - - - - - diff --git a/sandbox/vfs/samples/vfs-ant/README.txt b/sandbox/vfs/samples/vfs-ant/README.txt deleted file mode 100755 index 9a170d2b82..0000000000 --- a/sandbox/vfs/samples/vfs-ant/README.txt +++ /dev/null @@ -1,28 +0,0 @@ -==== - - Copyright (C) 2010 Cloud Conscious, LLC. - - ==================================================================== - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ==================================================================== -==== - - this is a simple ant script that copyies a remote zip file to a blobstore container - 1. export ANT_OPTS to include log4j.xml as the property 'log4j.configuration' - - ex. export ANT_OPTS="-Dlog4j.configuration=file://`pwd`/log4j.xml" - 2. find or download a copy of jclouds-vfs-1.0-SNAPSHOT-jar-with-dependencies.jar - - ex. ~/.m2/repository/org/jclouds/jclouds-vfs/1.0-SNAPSHOT/jclouds-vfs-1.0-SNAPSHOT-jar-with-dependencies.jar - - ex. curl http://jclouds.rimuhosting.com/maven2/snapshots/org/jclouds/jclouds-vfs/1.0-SNAPSHOT/jclouds-vfs-1.0-20091215.023231-1-jar-with-dependencies.jar >jclouds-vfs-all.jar - 3. invoke ant, adding the library above, and passing the property 'jclouds.blobstore.url' which corresponds to the provider you wish - - ex. ant -lib ~/.m2/repository/org/jclouds/jclouds-vfs/1.0-SNAPSHOT/jclouds-vfs-1.0-SNAPSHOT-jar-with-dependencies.jar -Djclouds.blobstore.url=blobstore://user:hex_key@cloudfiles - - ex. ant -lib ~/.m2/repository/org/jclouds/jclouds-vfs/1.0-SNAPSHOT/jclouds-vfs-1.0-SNAPSHOT-jar-with-dependencies.jar -Djclouds.blobstore.url=blobstore://hex_uid:base64_key@atmos diff --git a/sandbox/vfs/samples/vfs-ant/build.xml b/sandbox/vfs/samples/vfs-ant/build.xml deleted file mode 100644 index 904a506a24..0000000000 --- a/sandbox/vfs/samples/vfs-ant/build.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/sandbox/vfs/samples/vfs-ant/log4j.xml b/sandbox/vfs/samples/vfs-ant/log4j.xml deleted file mode 100755 index 19ff60f8a2..0000000000 --- a/sandbox/vfs/samples/vfs-ant/log4j.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileName.java b/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileName.java deleted file mode 100644 index 50a58902de..0000000000 --- a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileName.java +++ /dev/null @@ -1,83 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore; - -import org.apache.commons.vfs.FileName; -import org.apache.commons.vfs.FileType; -import org.apache.commons.vfs.provider.GenericFileName; - -/** - * - * @author Adrian Cole - */ -public class BlobStoreFileName extends GenericFileName { - - private static final int DEFAULT_PORT = 443; - - private final String container; - private String uriWithoutAuth; - - protected BlobStoreFileName(final String service, final String identity, final String key, - final String path, final FileType type, final String container) { - super("blobstore", service, DEFAULT_PORT, DEFAULT_PORT, identity, key, path, type); - this.container = container; - } - - /** - * Returns the container name. - */ - public String getContainer() { - return container; - } - - @Override - protected void appendRootUri(final StringBuffer buffer, boolean addPassword) { - super.appendRootUri(buffer, addPassword); - buffer.append('/'); - buffer.append(getContainer()); - } - - @Override - public FileName createName(final String path, FileType type) { - return new BlobStoreFileName(getService(), getUserName(), getPassword(), path, type, - getContainer()); - } - - @Override - public String getFriendlyURI() { - if (uriWithoutAuth != null) { - return uriWithoutAuth; - } - - StringBuffer sb = new StringBuffer(120); - sb.append(getScheme()); - sb.append("://"); - sb.append(getService()); - sb.append("/"); - sb.append(getContainer()); - sb.append(getPath()); - uriWithoutAuth = sb.toString(); - return uriWithoutAuth; - } - - public String getService() { - return getHostName(); - } -} diff --git a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileNameParser.java b/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileNameParser.java deleted file mode 100644 index 1bf4ee932d..0000000000 --- a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileNameParser.java +++ /dev/null @@ -1,81 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore; - -import java.net.URI; - -import org.apache.commons.vfs.FileName; -import org.apache.commons.vfs.FileSystemException; -import org.apache.commons.vfs.FileType; -import org.apache.commons.vfs.provider.URLFileNameParser; -import org.apache.commons.vfs.provider.UriParser; -import org.apache.commons.vfs.provider.VfsComponentContext; -import org.jclouds.domain.Credentials; -import org.jclouds.http.HttpUtils; - -/** - * @author Adrian Cole - */ -public class BlobStoreFileNameParser extends URLFileNameParser { - public static final BlobStoreFileNameParser INSTANCE = new BlobStoreFileNameParser(); - - public static BlobStoreFileNameParser getInstance() { - return INSTANCE; - } - - public BlobStoreFileNameParser() { - super(443); - } - - public FileName parseUri(final VfsComponentContext context, FileName base, String filename) - throws FileSystemException { - - // if there are unencoded characters in the password, things break. - URI uri = HttpUtils.createUri(filename); - - filename = uri.toASCIIString(); - - Credentials creds = Credentials.parse(uri); - - StringBuffer name = new StringBuffer(); - - // Extract the scheme and authority parts - Authority auth = extractToPath(filename, name); - - // Decode and adjust separators - UriParser.canonicalizePath(name, 0, name.length(), this); - UriParser.fixSeparators(name); - - // Extract the container - String container = UriParser.extractFirstElement(name); - if (container == null || container.length() == 0) { - throw new FileSystemException("vfs.provider.blobstore/missing-container-name.error", - filename); - } - - // Normalise the path. Do this after extracting the container name - FileType fileType = UriParser.normalisePath(name); - String path = name.toString(); - - return new BlobStoreFileName(auth.hostName, creds.identity, creds.credential, path, fileType, - container); - } - -} diff --git a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileObject.java b/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileObject.java deleted file mode 100644 index ca6914e0bd..0000000000 --- a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileObject.java +++ /dev/null @@ -1,366 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore; - -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkState; -import static org.jclouds.blobstore.util.BlobStoreUtils.newBlob; -import static org.jclouds.util.Patterns.LEADING_SLASHES; -import static org.jclouds.util.Patterns.TRAILING_SLASHES; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.io.RandomAccessFile; -import java.nio.channels.Channels; -import java.util.Map; -import java.util.NoSuchElementException; -import java.util.Set; -import java.util.regex.Pattern; - -import org.apache.commons.vfs.FileName; -import org.apache.commons.vfs.FileNotFolderException; -import org.apache.commons.vfs.FileObject; -import org.apache.commons.vfs.FileSystemException; -import org.apache.commons.vfs.FileType; -import org.apache.commons.vfs.FileTypeHasNoContentException; -import org.apache.commons.vfs.NameScope; -import org.apache.commons.vfs.RandomAccessContent; -import org.apache.commons.vfs.provider.AbstractFileObject; -import org.apache.commons.vfs.util.FileObjectUtils; -import org.apache.commons.vfs.util.MonitorOutputStream; -import org.apache.commons.vfs.util.RandomAccessMode; -import org.apache.log4j.Logger; -import org.jclouds.blobstore.BlobStore; -import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.ContainerNotFoundException; -import org.jclouds.blobstore.KeyNotFoundException; -import org.jclouds.blobstore.domain.Blob; -import org.jclouds.blobstore.domain.BlobMetadata; -import org.jclouds.blobstore.domain.StorageMetadata; -import org.jclouds.blobstore.domain.StorageType; -import org.jclouds.blobstore.options.ListContainerOptions; -import org.jclouds.blobstore.strategy.internal.ConcatenateContainerLists; -import org.jclouds.io.Payloads; -import org.jclouds.util.Utils; - -import com.google.common.base.Predicate; -import com.google.common.base.Throwables; -import com.google.common.collect.Iterables; -import com.google.common.collect.Sets; - -/** - * @author Adrian Cole - */ -public class BlobStoreFileObject extends AbstractFileObject { - private final BlobStoreContext context; - private final ConcatenateContainerLists lister; - private final String container; - private StorageMetadata metadata; - private static final Logger logger = Logger.getLogger(BlobStoreFileObject.class); - private static final Pattern UNDESCRIBED = Pattern.compile("[^/]*//*"); - - public BlobStoreFileObject(FileName fileName, BlobStoreFileSystem fileSystem, BlobStoreContext context, - String container) throws FileSystemException { - super(fileName, fileSystem); - this.context = checkNotNull(context, "context"); - this.container = checkNotNull(container, "container"); - this.lister = checkNotNull(new ConcatenateContainerLists(context.getBlobStore()), "lister"); - - } - - private class BlobStoreOutputStream extends MonitorOutputStream { - - private final BlobStore context; - private final Blob blob; - private final File file; - - public BlobStoreOutputStream(File file, BlobStore context, Blob blob) throws FileNotFoundException { - super(Channels.newOutputStream(new RandomAccessFile(file, "rw").getChannel())); - this.context = context; - this.file = file; - this.blob = blob; - } - - protected void onClose() throws IOException { - try { - blob.setPayload(file); - Payloads.calculateMD5(blob); - logger.info(String.format(">> put: %s/%s %d bytes", getContainer(), getNameTrimLeadingSlashes(), blob - .getPayload().getContentMetadata().getContentLength())); - String tag = context.putBlob(getContainer(), blob); - logger.info(String.format("<< tag %s: %s/%s", tag, getContainer(), getNameTrimLeadingSlashes())); - } finally { - file.delete(); - } - } - } - - public static File allocateFile() throws IOException { - return File.createTempFile("jclouds.", ".blobstore"); - } - - @Override - protected long doGetContentSize() throws Exception { - if (metadata == null && metadata.getType() == StorageType.BLOB) - getMetadataAtPath(getNameTrimLeadingSlashes()); - - if (metadata != null && metadata.getType() == StorageType.BLOB) { - BlobMetadata blobMd = BlobMetadata.class.cast(metadata); - return blobMd.getContentMetadata().getContentLength() != null ? blobMd.getContentMetadata().getContentLength() - : 0; - } - return 0; - } - - @Override - protected InputStream doGetInputStream() throws Exception { - if (!getType().hasContent()) { - throw new FileSystemException("vfs.provider/read-not-file.error", getName()); - } - if (metadata != null && metadata.getType() != StorageType.BLOB) { - throw new FileTypeHasNoContentException(getName()); - } - logger.info(String.format(">> get: %s/%s", getContainer(), getNameTrimLeadingSlashes())); - Blob blob = getBlobStore().getBlob(getContainer(), getNameTrimLeadingSlashes()); - return blob.getPayload().getInput(); - } - - String getNameTrimLeadingSlashes() { - return Utils.replaceAll(getName().getPath(), LEADING_SLASHES, ""); - } - - @Override - protected FileType doGetType() throws Exception { - if (metadata == null) - return FileType.IMAGINARY; - if (getNameTrimLeadingSlashes().equals("") || getName().getParent() == null) - return FileType.FOLDER; - return (metadata.getType() == StorageType.BLOB) ? FileType.FILE : FileType.FOLDER; - } - - @Override - protected FileObject[] doListChildrenResolved() throws Exception { - // if metadata is null, then the path does not exist, as doAttach would have certainly set - // this. - doAttach(); - if (metadata == null) - throw new FileNotFolderException(getName()); - ListContainerOptions options = new ListContainerOptions(); - String name = getNameTrimLeadingSlashes(); - if (!name.equals("") && !name.equals("/")) { - options.inDirectory(name + "/"); - logger.info(String.format(">> list: %s[%s]", getContainer(), name)); - } else { - logger.info(String.format(">> list: %s", getContainer())); - } - Iterable list = lister.execute(getContainer(), options); - Set children = Sets.newHashSet(); - loop: for (StorageMetadata md : list) { - if (!md.getName().equals("")) { - if (name.equals(md.getName()) && md.getType() != StorageType.BLOB) { - continue loop; - } - String childName = Utils.replaceAll(md.getName(), UNDESCRIBED, ""); - BlobStoreFileObject fo = (BlobStoreFileObject) FileObjectUtils - .getAbstractFileObject(getFileSystem() - .resolveFile( - getFileSystem().getFileSystemManager().resolveName(getName(), childName, - NameScope.CHILD))); - children.add(fo); - } - } - logger.info(String.format("<< list: %s", children)); - return children.toArray(new BlobStoreFileObject[] {}); - } - - @Override - public FileObject[] getChildren() throws FileSystemException { - if (metadata != null && metadata.getType() == StorageType.BLOB) - throw new FileNotFolderException(getName()); - if (metadata == null) { - try { - FileType type = doGetType(); - if (type == FileType.FILE) { - throw new FileNotFolderException(getName()); - } - } catch (Exception ex) { - Throwables.propagateIfPossible(ex, FileNotFolderException.class); - throw new FileNotFolderException(getName(), ex); - } - } - return super.getChildren(); - } - - /** - * Lists the children of the file. - */ - protected String[] doListChildren() throws Exception { - // use doListChildrenResolved for performance - return null; - } - - @Override - protected void doDelete() throws Exception { - logger.info(String.format(">> delete: %s/%s", getContainer(), getNameTrimLeadingSlashes())); - if (metadata != null) - deleteBasedOnType(); - else - deleteBlob(getNameTrimLeadingSlashes()); - } - - private void deleteBasedOnType() { - if (metadata.getType() != StorageType.CONTAINER) { - deleteBlob(metadata.getProviderId()); - } else { - getBlobStore().deleteContainer(getContainer()); - logger.info(String.format("<< deleted container: %s", getContainer())); - } - } - - private void deleteBlob(String id) { - getBlobStore().removeBlob(getContainer(), getNameTrimLeadingSlashes()); - logger.info(String.format("<< deleted blob: %s/%s", getContainer(), getNameTrimLeadingSlashes())); - } - - @Override - protected OutputStream doGetOutputStream(boolean bAppend) throws Exception { - File file = allocateFile(); - checkState(file != null, "file was null"); - if (metadata != null) { - return new BlobStoreOutputStream(file, getBlobStore(), newBlob(getBlobStore(), metadata)); - } else { - return new BlobStoreOutputStream(file, getBlobStore(), getBlobStore().newBlob(getNameTrimLeadingSlashes())); - } - } - - @Override - protected void doCreateFolder() throws Exception { - logger.info(String.format(">> put folder: %s/%s", getContainer(), getNameTrimLeadingSlashes())); - getBlobStore().createDirectory(getContainer(), getNameTrimLeadingSlashes()); - } - - @Override - protected void doAttach() throws Exception { - String name = getNameTrimLeadingSlashes(); - if (name.equals("")) { - logger.info(String.format(">> head: %s", getContainer())); - getContainer(name); - } else { - logger.info(String.format(">> head: %s/%s", getContainer(), name)); - try { - getMetadataAtPath(name); - } catch (KeyNotFoundException e) { - tryDirectoryAtPath(name); - } - } - } - - private void getContainer(String name) { - metadata = Iterables.find(getBlobStore().list(), new Predicate() { - @Override - public boolean apply(StorageMetadata input) { - return input.getType() == StorageType.CONTAINER && input.getName().equals(container); - } - }); - logger.info(String.format("<< container: %s/%s", container, name)); - } - - private void getMetadataAtPath(String name) { - metadata = getBlobStore().blobMetadata(getContainer(), name); - if (metadata.getType() != StorageType.BLOB) { - logger.info(String.format("<< dir: %s/%s", getContainer(), name)); - } else { - logger.info(String.format("<< blob: %s/%s", getContainer(), name)); - } - } - - private void tryDirectoryAtPath(final String name) { - ListContainerOptions options = new ListContainerOptions(); - if (getName().getParent() != null) { - String dir = trimLeadingAndTrailingSlashes(getName().getParent().getPath()); - if (!dir.equals("")) - options.inDirectory(dir); - } - try { - metadata = Iterables.find(lister.execute(getContainer(), options), new Predicate() { - @Override - public boolean apply(StorageMetadata input) { - return input.getType() != StorageType.BLOB && input.getName().equals(name); - } - }); - logger.info(String.format("<< dir: %s/%s", getContainer(), name)); - } catch (NoSuchElementException nse) { - metadata = null; - logger.info(String.format("<< not found: %s/%s", getContainer(), name)); - } catch (ContainerNotFoundException cnfe) { - metadata = null; - logger.info(String.format("<< not found: %s", getContainer())); - } - } - - public String trimLeadingAndTrailingSlashes(String in) { - return Utils.replaceAll(Utils.replaceAll(in, LEADING_SLASHES, ""), TRAILING_SLASHES, ""); - } - - @Override - protected RandomAccessContent doGetRandomAccessContent(final RandomAccessMode mode) throws Exception { - return new BlobStoreRandomAccessContent(this, mode); - } - - protected void doDetach() throws Exception { - metadata = null; - } - - @Override - protected long doGetLastModifiedTime() throws Exception { - if (metadata == null || metadata.getLastModified() == null) { - getMetadataAtPath(getNameTrimLeadingSlashes()); - } - return metadata.getLastModified() != null ? metadata.getLastModified().getTime() : super.doGetLastModifiedTime(); - } - - @SuppressWarnings("unchecked") - @Override - protected Map doGetAttributes() throws Exception { - if (metadata == null || metadata.getUserMetadata() == null) { - getMetadataAtPath(getNameTrimLeadingSlashes()); - } - return metadata.getUserMetadata() != null ? metadata.getUserMetadata() : super.doGetAttributes(); - } - - @Override - protected void doSetAttribute(String atttrName, Object value) throws Exception { - if (metadata == null || metadata.getUserMetadata() == null) { - metadata.getUserMetadata().put(atttrName, value.toString()); - } - super.doSetAttribute(atttrName, value); - } - - public BlobStore getBlobStore() { - return context.getBlobStore(); - } - - public String getContainer() { - return container; - } -} diff --git a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileProvider.java b/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileProvider.java deleted file mode 100644 index 59b60716d4..0000000000 --- a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileProvider.java +++ /dev/null @@ -1,102 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore; - -import java.net.URI; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Properties; - -import org.apache.commons.vfs.Capability; -import org.apache.commons.vfs.FileName; -import org.apache.commons.vfs.FileSystem; -import org.apache.commons.vfs.FileSystemConfigBuilder; -import org.apache.commons.vfs.FileSystemException; -import org.apache.commons.vfs.FileSystemOptions; -import org.apache.commons.vfs.UserAuthenticationData; -import org.apache.commons.vfs.provider.AbstractOriginatingFileProvider; -import org.apache.commons.vfs.provider.http.HttpFileSystemConfigBuilder; -import org.apache.commons.vfs.util.UserAuthenticatorUtils; -import org.jclouds.blobstore.BlobStoreContext; -import org.jclouds.blobstore.BlobStoreContextFactory; -import org.jclouds.http.HttpUtils; -import org.jclouds.logging.log4j.config.Log4JLoggingModule; - -import com.google.common.collect.ImmutableList; -import com.google.inject.Module; - -/** - * @author Adrian Cole - */ -public class BlobStoreFileProvider extends AbstractOriginatingFileProvider { - - public final static Collection capabilities = Collections - .unmodifiableCollection(Arrays.asList(Capability.CREATE, Capability.DELETE, - Capability.GET_TYPE, Capability.GET_LAST_MODIFIED, Capability.LIST_CHILDREN, - Capability.READ_CONTENT, Capability.URI, Capability.WRITE_CONTENT, - Capability.RANDOM_ACCESS_READ, Capability.ATTRIBUTES)); - - public final static UserAuthenticationData.Type[] AUTHENTICATOR_TYPES = new UserAuthenticationData.Type[] { - UserAuthenticationData.USERNAME, UserAuthenticationData.PASSWORD }; - - private final Iterable modules; - - public BlobStoreFileProvider() { - this(ImmutableList. of(new Log4JLoggingModule())); - } - - public BlobStoreFileProvider(Iterable modules) { - this.modules = modules; - setFileNameParser(new BlobStoreFileNameParser()); - } - - protected FileSystem doCreateFileSystem(final FileName name, - final FileSystemOptions fileSystemOptions) throws FileSystemException { - BlobStoreFileName rootName = (BlobStoreFileName) name; - UserAuthenticationData authData = null; - BlobStoreContext context; - try { - String uriToParse = rootName.getFriendlyURI(); - authData = UserAuthenticatorUtils.authenticate(fileSystemOptions, AUTHENTICATOR_TYPES); - URI location = HttpUtils.createUri(uriToParse); - context = new BlobStoreContextFactory().createContext(location.getHost(), - UserAuthenticatorUtils.toString(UserAuthenticatorUtils.getData(authData, - UserAuthenticationData.USERNAME, UserAuthenticatorUtils.toChar(rootName - .getUserName()))), UserAuthenticatorUtils - .toString(UserAuthenticatorUtils.getData(authData, - UserAuthenticationData.PASSWORD, UserAuthenticatorUtils - .toChar(rootName.getPassword()))), modules, - new Properties()); - } finally { - UserAuthenticatorUtils.cleanup(authData); - } - - return new BlobStoreFileSystem(rootName, context, fileSystemOptions); - } - - public FileSystemConfigBuilder getConfigBuilder() { - return HttpFileSystemConfigBuilder.getInstance(); - } - - public Collection getCapabilities() { - return capabilities; - } -} diff --git a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileSystem.java b/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileSystem.java deleted file mode 100644 index 448ec3529f..0000000000 --- a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreFileSystem.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Collection; - -import org.apache.commons.vfs.FileName; -import org.apache.commons.vfs.FileObject; -import org.apache.commons.vfs.FileSystemException; -import org.apache.commons.vfs.FileSystemOptions; -import org.apache.commons.vfs.provider.AbstractFileSystem; -import org.jclouds.blobstore.BlobStoreContext; - -/** - * @author Adrian Cole - */ -public class BlobStoreFileSystem extends AbstractFileSystem { - final BlobStoreContext context; - final String container; - - public BlobStoreFileSystem(BlobStoreFileName fileName, BlobStoreContext context, - FileSystemOptions fileSystemOptions) throws FileSystemException { - super(fileName, null, fileSystemOptions); - this.container = checkNotNull(fileName.getContainer(), "fileName.getContainer()"); - checkArgument(!container.equals(""), "container must not be an empty String"); - this.context = checkNotNull(context, "context"); - } - - @SuppressWarnings("unchecked") - protected void addCapabilities(Collection caps) { - caps.addAll(BlobStoreFileProvider.capabilities); - } - - protected FileObject createFile(FileName fileName) throws Exception { - return new BlobStoreFileObject(fileName, this, context, container); - } -} diff --git a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreRandomAccessContent.java b/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreRandomAccessContent.java deleted file mode 100644 index 0b8ea49086..0000000000 --- a/sandbox/vfs/src/main/java/org/jclouds/vfs/provider/blobstore/BlobStoreRandomAccessContent.java +++ /dev/null @@ -1,113 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore; - -import java.io.DataInputStream; -import java.io.FilterInputStream; -import java.io.IOException; -import java.io.InputStream; - -import org.apache.commons.vfs.FileSystemException; -import org.apache.commons.vfs.provider.AbstractRandomAccessStreamContent; -import org.apache.commons.vfs.util.RandomAccessMode; -import org.jclouds.blobstore.options.GetOptions; - -/** - * @author Adrian Cole - */ -public class BlobStoreRandomAccessContent extends AbstractRandomAccessStreamContent { - private final BlobStoreFileObject fileObject; - - protected long filePointer = 0; - private DataInputStream dis = null; - - BlobStoreRandomAccessContent(final BlobStoreFileObject fileObject, RandomAccessMode mode) { - super(mode); - this.fileObject = fileObject; - } - - public long getFilePointer() throws IOException { - return filePointer; - } - - public void seek(long pos) throws IOException { - if (pos == filePointer) { - // no change - return; - } - - if (pos < 0) { - throw new FileSystemException("vfs.provider/random-access-invalid-position.error", - new Object[] { new Long(pos) }); - } - if (dis != null) { - close(); - } - - filePointer = pos; - } - - protected DataInputStream getDataInputStream() throws IOException { - if (dis != null) { - return dis; - } - - dis = new DataInputStream(new FilterInputStream((InputStream) fileObject.getBlobStore() - .getBlob(fileObject.getContainer(), fileObject.getNameTrimLeadingSlashes(), - new GetOptions().startAt(filePointer)).getPayload().getInput()) { - public int read() throws IOException { - int ret = super.read(); - if (ret > -1) { - filePointer++; - } - return ret; - } - - public int read(byte b[]) throws IOException { - int ret = super.read(b); - if (ret > -1) { - filePointer += ret; - } - return ret; - } - - public int read(byte b[], int off, int len) throws IOException { - int ret = super.read(b, off, len); - if (ret > -1) { - filePointer += ret; - } - return ret; - } - }); - - return dis; - } - - public void close() throws IOException { - if (dis != null) { - dis.close(); - dis = null; - } - } - - public long length() throws IOException { - return fileObject.getContent().getSize(); - } -} \ No newline at end of file diff --git a/sandbox/vfs/src/main/java/org/jclouds/vfs/tools/blobstore/BlobStoreShell.java b/sandbox/vfs/src/main/java/org/jclouds/vfs/tools/blobstore/BlobStoreShell.java deleted file mode 100644 index 7058d945d9..0000000000 --- a/sandbox/vfs/src/main/java/org/jclouds/vfs/tools/blobstore/BlobStoreShell.java +++ /dev/null @@ -1,423 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.tools.blobstore; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; -import java.net.URI; -import java.text.DateFormat; -import java.util.Date; -import java.util.List; -import java.util.StringTokenizer; - -import org.apache.commons.vfs.FileContent; -import org.apache.commons.vfs.FileObject; -import org.apache.commons.vfs.FileSystemException; -import org.apache.commons.vfs.FileSystemManager; -import org.apache.commons.vfs.FileType; -import org.apache.commons.vfs.FileUtil; -import org.apache.commons.vfs.Selectors; -import org.apache.commons.vfs.VFS; -import org.apache.commons.vfs.cache.SoftRefFilesCache; -import org.apache.commons.vfs.impl.DefaultFileSystemManager; -import org.jclouds.http.HttpUtils; -import org.jclouds.vfs.provider.blobstore.BlobStoreFileProvider; - -import com.google.common.collect.Lists; - -/** - * A simple command-line shell for performing file operations. Adapted from original file: - * org.apache.commons.vfs.example.Shell written by Adam - * Murdoch and Gary D. Gregory. - * - * @author Adrian Cole - * @author Adam Murdoch - * @author Gary D. Gregory - */ -public class BlobStoreShell { - public static String INVALID_SYNTAX = "Invalid parameters. Syntax is: blobstore://identity:key@service/container"; - - private final DefaultFileSystemManager remoteMgr; - private FileObject remoteCwd; - - private final FileSystemManager mgr; - private FileObject cwd; - - private final BufferedReader reader; - - public static void main(String... args) { - - if (args.length != 1) - throw new IllegalArgumentException(INVALID_SYNTAX); - URI location; - try { - location = HttpUtils.createUri(args[0]); - checkArgument(location.getScheme().equals("blobstore"), "wrong scheme"); - } catch (IllegalArgumentException e) { - throw new IllegalArgumentException(String.format("%s%n%s", e.getMessage(), INVALID_SYNTAX)); - } - try { - (new BlobStoreShell(args[0])).go(); - } catch (Exception e) { - e.printStackTrace(); - System.exit(1); - } - System.exit(0); - } - - private BlobStoreShell(String uri) throws FileSystemException { - remoteMgr = new DefaultFileSystemManager(); - remoteMgr.setFilesCache(new SoftRefFilesCache()); - remoteMgr.addProvider("blobstore", new BlobStoreFileProvider()); - remoteMgr.init(); - remoteCwd = remoteMgr.resolveFile(checkNotNull(uri, "uri")); - mgr = VFS.getManager(); - cwd = mgr.resolveFile(System.getProperty("user.dir")); - reader = new BufferedReader(new InputStreamReader(System.in)); - } - - private void go() throws Exception { - System.out.println("BlobStore Shell [ 1.0 ]"); - while (true) { - final String[] cmd = nextCommand(); - if (cmd == null) { - return; - } - if (cmd.length == 0) { - continue; - } - final String cmdName = cmd[0]; - if (cmdName.equalsIgnoreCase("exit") || cmdName.equalsIgnoreCase("quit")) { - return; - } - try { - handleCommand(cmd); - } catch (final Exception e) { - System.err.println("Command failed:"); - e.printStackTrace(System.err); - } - } - } - - /** - * Handles a command. - */ - private void handleCommand(final String[] cmd) throws Exception { - final String cmdName = cmd[0]; - if (cmdName.equalsIgnoreCase("cat")) { - cat(cmd); - } else if (cmdName.equalsIgnoreCase("cd")) { - cd(cmd); - } else if (cmdName.equalsIgnoreCase("lcd")) { - lcd(cmd); - } else if (cmdName.equalsIgnoreCase("cp")) { - cp(cmd); - } else if (cmdName.equalsIgnoreCase("put")) { - put(cmd); - } else if (cmdName.equalsIgnoreCase("get")) { - get(cmd); - } else if (cmdName.equalsIgnoreCase("help")) { - help(); - } else if (cmdName.equalsIgnoreCase("ls")) { - ls(cmd); - } else if (cmdName.equalsIgnoreCase("lls")) { - lls(cmd); - } else if (cmdName.equalsIgnoreCase("pwd")) { - pwd(); - } else if (cmdName.equalsIgnoreCase("lpwd")) { - lpwd(); - } else if (cmdName.equalsIgnoreCase("rm")) { - rm(cmd); - } else if (cmdName.equalsIgnoreCase("touch")) { - touch(cmd); - } else { - System.err.println("Unknown command \"" + cmdName + "\"."); - } - } - - /** - * Does a 'help' command. - */ - private void help() { - System.out.println("Commands:"); - System.out - .println("cat Displays the contents of a file on the remote machine."); - System.out.println("cd [folder] Changes current folder on the remote machine."); - System.out.println("lcd [folder] Changes current folder on the local machine."); - System.out.println("cp Copies a file or folder on the remote machine."); - System.out - .println("put Copies a file or folder on the local machine to remote one."); - System.out - .println("get Copies a file or folder on the remote machine to local one."); - System.out.println("help Shows this message on the remote machine."); - System.out - .println("ls [-R] [path] Lists contents of a file or folder on the remote machine."); - System.out - .println("lls [-R] [path] Lists contents of a file or folder on the local machine."); - System.out.println("pwd Displays current folder on the remote machine."); - System.out.println("lpwd Displays current folder on the local machine."); - System.out.println("rm Deletes a file or folder on the remote machine."); - System.out - .println("touch Sets the last-modified time of a file on the remote machine."); - System.out.println("exit Exits this program."); - System.out.println("quit Exits this program."); - } - - /** - * Does an 'rm' command. - */ - private void rm(final String[] cmd) throws Exception { - if (cmd.length < 2) { - throw new Exception("USAGE: rm "); - } - - final FileObject file = remoteMgr.resolveFile(remoteCwd, cmd[1]); - file.delete(Selectors.SELECT_SELF); - } - - /** - * Does a 'cp' command. - */ - private void cp(final String[] cmd) throws Exception { - if (cmd.length < 3) { - throw new Exception("USAGE: cp "); - } - - FileObject src = remoteMgr.resolveFile(remoteCwd, cmd[1]); - FileObject dest = remoteMgr.resolveFile(remoteCwd, cmd[2]); - if (dest.exists() && dest.getType() == FileType.FOLDER) { - dest = dest.resolveFile(src.getName().getBaseName()); - } - - dest.copyFrom(src, Selectors.SELECT_ALL); - } - - /** - * Does a 'get' command. - */ - private void get(final String[] cmd) throws Exception { - if (cmd.length < 3) { - throw new Exception("USAGE: get "); - } - - FileObject src = remoteMgr.resolveFile(remoteCwd, cmd[1]); - FileObject dest = mgr.resolveFile(cwd, cmd[2]); - if (dest.exists() && dest.getType() == FileType.FOLDER) { - dest = dest.resolveFile(src.getName().getBaseName()); - } - - dest.copyFrom(src, Selectors.SELECT_ALL); - } - - /** - * Does a 'put' command. - */ - private void put(final String[] cmd) throws Exception { - if (cmd.length < 3) { - throw new Exception("USAGE: put "); - } - - FileObject src = mgr.resolveFile(cwd, cmd[2]); - FileObject dest = remoteMgr.resolveFile(remoteCwd, cmd[1]); - if (dest.exists() && dest.getType() == FileType.FOLDER) { - dest = dest.resolveFile(src.getName().getBaseName()); - } - - dest.copyFrom(src, Selectors.SELECT_ALL); - } - - /** - * Does a 'cat' command. - */ - private void cat(final String[] cmd) throws Exception { - if (cmd.length < 2) { - throw new Exception("USAGE: cat "); - } - - // Locate the file - final FileObject file = remoteMgr.resolveFile(remoteCwd, cmd[1]); - - // Dump the contents to System.out - FileUtil.writeContent(file, System.out); - System.out.println(); - } - - /** - * Does a 'pwd' command. - */ - private void pwd() { - System.out.println("Current remote folder is " + remoteCwd.getName().getFriendlyURI()); - } - - /** - * Does a 'lpwd' command. - */ - private void lpwd() { - System.out.println("Current local folder is " + cwd.getName().getFriendlyURI()); - } - - /** - * Does a 'cd' command. If the target directory does not exist, a message is printed to - * System.err. - */ - private void cd(final String[] cmd) throws Exception { - final String path; - if (cmd.length > 1) { - path = cmd[1]; - } else { - path = System.getProperty("user.home"); - } - - // Locate and validate the folder - FileObject tmp = remoteMgr.resolveFile(remoteCwd, path); - if (tmp.exists()) { - remoteCwd = tmp; - } else { - System.out.println("Folder does not exist: " + tmp.getName().getFriendlyURI()); - } - System.out.println("Current remote folder is " + remoteCwd.getName().getFriendlyURI()); - } - - /** - * Does a 'lcd' command. If the target directory does not exist, a message is printed to - * System.err. - */ - private void lcd(final String[] cmd) throws Exception { - final String path; - if (cmd.length > 1) { - path = cmd[1]; - } else { - path = System.getProperty("user.home"); - } - - // Locate and validate the folder - FileObject tmp = mgr.resolveFile(cwd, path); - if (tmp.exists()) { - cwd = tmp; - } else { - System.out.println("Folder does not exist: " + tmp.getName().getFriendlyURI()); - } - System.out.println("Current local folder is " + cwd.getName().getFriendlyURI()); - } - - /** - * Does an 'ls' command. - */ - private void ls(final String[] cmd) throws FileSystemException { - ls(remoteMgr, remoteCwd, cmd); - } - - /** - * Does an 'lls' command. - */ - private void lls(final String[] cmd) throws FileSystemException { - ls(mgr, cwd, cmd); - } - - private void ls(FileSystemManager mg, FileObject wd, final String[] cmd) - throws FileSystemException { - int pos = 1; - final boolean recursive; - if (cmd.length > pos && cmd[pos].equals("-R")) { - recursive = true; - pos++; - } else { - recursive = false; - } - - final FileObject file; - if (cmd.length > pos) { - file = mg.resolveFile(wd, cmd[pos]); - } else { - file = wd; - } - - if (file.getType() == FileType.FOLDER) { - // List the contents - System.out.println("Contents of " + file.getName().getFriendlyURI()); - listChildren(file, recursive, ""); - } else { - // Stat the file - System.out.println(file.getName()); - final FileContent content = file.getContent(); - System.out.println("Size: " + content.getSize() + " bytes."); - final DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, - DateFormat.MEDIUM); - final String lastMod = dateFormat.format(new Date(content.getLastModifiedTime())); - System.out.println("Last modified: " + lastMod); - } - } - - /** - * Does a 'touch' command. - */ - private void touch(final String[] cmd) throws Exception { - if (cmd.length < 2) { - throw new Exception("USAGE: touch "); - } - final FileObject file = remoteMgr.resolveFile(remoteCwd, cmd[1]); - if (!file.exists()) { - file.createFile(); - } - file.getContent().setLastModifiedTime(System.currentTimeMillis()); - } - - /** - * Lists the children of a folder. - */ - private void listChildren(final FileObject dir, final boolean recursive, final String prefix) - throws FileSystemException { - final FileObject[] children = dir.getChildren(); - for (int i = 0; i < children.length; i++) { - final FileObject child = children[i]; - System.out.print(prefix); - System.out.print(child.getName().getBaseName()); - if (child.getType() == FileType.FOLDER) { - System.out.println("/"); - if (recursive) { - listChildren(child, recursive, prefix + " "); - } - } else { - System.out.println(); - } - } - } - - /** - * Returns the next command, split into tokens. - */ - private String[] nextCommand() throws IOException { - System.out.print("> "); - final String line = reader.readLine(); - if (line == null) { - return null; - } - final List cmd = Lists.newArrayList(); - final StringTokenizer tokens = new StringTokenizer(line); - while (tokens.hasMoreTokens()) { - cmd.add(tokens.nextToken()); - } - return (String[]) cmd.toArray(new String[cmd.size()]); - } -} diff --git a/sandbox/vfs/src/main/resources/org/apache/commons/vfs/impl/providers.xml b/sandbox/vfs/src/main/resources/org/apache/commons/vfs/impl/providers.xml deleted file mode 100644 index a0370f63e5..0000000000 --- a/sandbox/vfs/src/main/resources/org/apache/commons/vfs/impl/providers.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/BlobStoreProviderTestCase.java b/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/BlobStoreProviderTestCase.java deleted file mode 100644 index aa0075db75..0000000000 --- a/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/BlobStoreProviderTestCase.java +++ /dev/null @@ -1,117 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore.test; - -import java.io.IOException; - -import junit.framework.Test; - -import org.apache.commons.vfs.AllFileSelector; -import org.apache.commons.vfs.FileContent; -import org.apache.commons.vfs.FileObject; -import org.apache.commons.vfs.FileSystemException; -import org.apache.commons.vfs.FileSystemManager; -import org.apache.commons.vfs.impl.DefaultFileSystemManager; -import org.apache.commons.vfs.test.AbstractProviderTestConfig; -import org.jclouds.blobstore.BlobStore; -import org.jclouds.logging.log4j.config.Log4JLoggingModule; -import org.jclouds.util.Utils; -import org.jclouds.vfs.provider.blobstore.BlobStoreFileObject; -import org.jclouds.vfs.provider.blobstore.BlobStoreFileProvider; - -import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableList; -import com.google.common.io.CharStreams; -import com.google.inject.Module; - -/** - * @author Adrian Cole - */ -public class BlobStoreProviderTestCase extends AbstractProviderTestConfig { - private static final String TEST_URI = "test.blobstore.uri"; - - public static Test suite() throws Exception { - return new BlobStoreProviderTestSuite(new BlobStoreProviderTestCase()); - } - - /** - * Prepares the file system manager. - */ - public void prepare(final DefaultFileSystemManager manager) throws Exception { - manager.addProvider("blobstore", new BlobStoreFileProvider(ImmutableList - . of(new Log4JLoggingModule()))); - } - - /** - * Returns the base folder for tests. - */ - public FileObject getBaseTestFolder(final FileSystemManager manager) throws Exception { - String uri = System.getProperty(TEST_URI, "blobstore://identity:key@stub/stub"); - return setUpTests(manager, uri); - } - - private FileObject setUpTests(final FileSystemManager manager, String uri) - throws FileSystemException, IOException { - FileObject base = manager.resolveFile(uri); - FileObject writeTests = base.resolveFile("write-tests"); - FileObject readTests = base.resolveFile("read-tests"); - - if (base instanceof BlobStoreFileObject) { - BlobStore blobStore = ((BlobStoreFileObject) base).getBlobStore(); - String container = ((BlobStoreFileObject) base).getContainer(); - blobStore.clearContainer(container); - } else { - writeTests.delete(new AllFileSelector()); - readTests.delete(new AllFileSelector()); - } - - writeTests.createFolder(); - readTests.createFolder(); - for (String name : new String[] { "file1.txt", "file%25.txt", "file space.txt" }) { - writeFile(readTests, name, FILE1_CONTENT); - } - writeFile(readTests, "empty.txt", ""); - FileObject dir = readTests.resolveFile("dir1"); - dir.createFolder(); - write3Files(dir); - for (String subdirName : new String[] { "subdir1", "subdir2", "subdir3" }) { - FileObject subdir = dir.resolveFile(subdirName); - subdir.createFolder(); - write3Files(subdir); - } - return base; - } - - private void write3Files(FileObject base) throws IOException { - for (String name : new String[] { "file1.txt", "file2.txt", "file3.txt" }) { - writeFile(base, name, TEST_FILE_CONTENT); - } - } - - private void writeFile(FileObject base, String name, String value) throws FileSystemException, - IOException { - FileObject file = base.resolveFile(name); - FileContent content = file.getContent(); - CharStreams.write(value, CharStreams.newWriterSupplier(Utils.newOutputStreamSupplier(content - .getOutputStream()), Charsets.UTF_8)); - content.close(); - } - -} diff --git a/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/BlobStoreProviderTestSuite.java b/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/BlobStoreProviderTestSuite.java deleted file mode 100644 index eed2fc3c56..0000000000 --- a/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/BlobStoreProviderTestSuite.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore.test; - -import org.apache.commons.vfs.test.ContentTests; -import org.apache.commons.vfs.test.LastModifiedTests; -import org.apache.commons.vfs.test.NamingTests; -import org.apache.commons.vfs.test.ProviderCacheStrategyTests; -import org.apache.commons.vfs.test.ProviderDeleteTests; -import org.apache.commons.vfs.test.ProviderRandomReadTests; -import org.apache.commons.vfs.test.ProviderRandomReadWriteTests; -import org.apache.commons.vfs.test.ProviderReadTests; -import org.apache.commons.vfs.test.ProviderRenameTests; -import org.apache.commons.vfs.test.ProviderTestConfig; -import org.apache.commons.vfs.test.ProviderTestSuite; -import org.apache.commons.vfs.test.ProviderWriteAppendTests; -import org.apache.commons.vfs.test.ProviderWriteTests; -import org.apache.commons.vfs.test.UriTests; -import org.apache.commons.vfs.test.UrlStructureTests; -import org.apache.commons.vfs.test.UrlTests; - -/** - * @author Adrian Cole - */ -public class BlobStoreProviderTestSuite extends ProviderTestSuite { - - public BlobStoreProviderTestSuite(ProviderTestConfig providerConfig) throws Exception { - super(providerConfig, "", false, false); - } - - /** - * Adds base tests - excludes the nested test cases. - */ - protected void addBaseTests() throws Exception { - addTests(ProviderCacheStrategyTests.class); - addTests(UriTests.class); - addTests(NamingTests.class); - addTests(ContentTests.class); - addTests(ProviderReadTests.class); - addTests(ProviderRandomReadTests.class); - addTests(ProviderWriteTests.class); - addTests(ProviderWriteAppendTests.class); - addTests(ProviderRandomReadWriteTests.class); - addTests(ProviderRenameTests.class); - addTests(ProviderDeleteTests.class); - addTests(LastModifiedTests.class); - addTests(UrlTests.class); - addTests(UrlStructureTests.class); - // The class loader test requires the classes be uploaded to the webdav repo. - // addTests(VfsClassLoaderTests.class); - } -} \ No newline at end of file diff --git a/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/FileNameTestCase.java b/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/FileNameTestCase.java deleted file mode 100644 index 7371b89213..0000000000 --- a/sandbox/vfs/src/test/java/org/jclouds/vfs/provider/blobstore/test/FileNameTestCase.java +++ /dev/null @@ -1,159 +0,0 @@ -/** - * - * Copyright (C) 2010 Cloud Conscious, LLC. - * - * ==================================================================== - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ==================================================================== - */ - -package org.jclouds.vfs.provider.blobstore.test; - -import org.apache.commons.AbstractVfsTestCase; -import org.apache.commons.vfs.FileSystemException; -import org.jclouds.vfs.provider.blobstore.BlobStoreFileName; -import org.jclouds.vfs.provider.blobstore.BlobStoreFileNameParser; - -/** - * @author Adrian Cole - */ -public class FileNameTestCase extends AbstractVfsTestCase { - /** - * Tests parsing a URI into its parts. - */ - public void testParseUriNoCreds() throws Exception { - try { - // Simple name - BlobStoreFileName name = (BlobStoreFileName) BlobStoreFileNameParser.getInstance() - .parseUri(null, null, "blobstore://service/container/file"); - assertEquals("blobstore", name.getScheme()); - assertNull(name.getUserName()); - assertNull(name.getPassword()); - assertEquals("service", name.getHostName()); - assertEquals(443, name.getPort()); - assertEquals(name.getDefaultPort(), name.getPort()); - assertEquals("container", name.getContainer()); - assertEquals("/file", name.getPath()); - assertEquals("blobstore://service/container/", name.getRootURI()); - assertEquals("blobstore://service/container/file", name.getURI()); - fail(); - } catch (NullPointerException e) { - - } - try { - - // Name with no path - BlobStoreFileName name = (BlobStoreFileName) BlobStoreFileNameParser.getInstance() - .parseUri(null, null, "blobstore://service/container"); - assertEquals("blobstore", name.getScheme()); - assertNull(name.getUserName()); - assertNull(name.getPassword()); - assertEquals("service", name.getHostName()); - assertEquals(443, name.getPort()); - assertEquals("container", name.getContainer()); - assertEquals("/", name.getPath()); - assertEquals("blobstore://service/container/", name.getRootURI()); - assertEquals("blobstore://service/container/", name.getURI()); - fail(); - } catch (NullPointerException e) { - - } - } - - public void testParseUri() throws Exception { - // Name with username - BlobStoreFileName name = (BlobStoreFileName) BlobStoreFileNameParser.getInstance().parseUri( - null, null, "blobstore://user@service/container/file"); - assertEquals("blobstore", name.getScheme()); - assertEquals("user", name.getUserName()); - assertNull(name.getPassword()); - assertEquals("service", name.getHostName()); - assertEquals(443, name.getPort()); - assertEquals("container", name.getContainer()); - assertEquals("/file", name.getPath()); - assertEquals("blobstore://user@service/container/", name.getRootURI()); - assertEquals("blobstore://user@service/container/file", name.getURI()); - - // Name with extension - name = (BlobStoreFileName) BlobStoreFileNameParser.getInstance().parseUri(null, null, - "blobstore://user@service/container/file.txt"); - assertEquals("blobstore", name.getScheme()); - assertEquals("user", name.getUserName()); - assertNull(name.getPassword()); - assertEquals("service", name.getHostName()); - assertEquals(443, name.getPort()); - assertEquals("container", name.getContainer()); - assertEquals("/file.txt", name.getPath()); - assertEquals("file.txt", name.getBaseName()); - assertEquals("txt", name.getExtension()); - assertEquals("blobstore://user@service/container/", name.getRootURI()); - assertEquals("blobstore://user@service/container/file.txt", name.getURI()); - - // Name look likes extension, but isnt - name = (BlobStoreFileName) BlobStoreFileNameParser.getInstance().parseUri(null, null, - "blobstore://user@service/container/.bashrc"); - assertEquals("blobstore", name.getScheme()); - assertEquals("user", name.getUserName()); - assertNull(name.getPassword()); - assertEquals("service", name.getHostName()); - assertEquals(443, name.getPort()); - assertEquals("container", name.getContainer()); - assertEquals("/.bashrc", name.getPath()); - assertEquals(".bashrc", name.getBaseName()); - assertEquals("", name.getExtension()); - assertEquals("blobstore://user@service/container/", name.getRootURI()); - assertEquals("blobstore://user@service/container/.bashrc", name.getURI()); - } - - /** - * Tests error handling in URI parser. - */ - public void disabledTestBadlyFormedUri() throws Exception { - // Does not start with blobstore:// - testBadlyFormedUri("blobstore:", "vfs.provider/missing-double-slashes.error"); - testBadlyFormedUri("blobstore:/", "vfs.provider/missing-double-slashes.error"); - testBadlyFormedUri("blobstore:a", "vfs.provider/missing-double-slashes.error"); - - // Missing service - testBadlyFormedUri("blobstore://", "vfs.provider/missing-hostname.error"); - testBadlyFormedUri("blobstore://:21/container", "vfs.provider/missing-hostname.error"); - testBadlyFormedUri("blobstore:///container", "vfs.provider/missing-hostname.error"); - - // Empty port - testBadlyFormedUri("blobstore://host:", "vfs.provider/missing-port.error"); - testBadlyFormedUri("blobstore://host:/container", "vfs.provider/missing-port.error"); - testBadlyFormedUri("blobstore://host:port/container/file", "vfs.provider/missing-port.error"); - - // Missing absolute path - testBadlyFormedUri("blobstore://host:90a", "vfs.provider/missing-hostname-path-sep.error"); - testBadlyFormedUri("blobstore://host?a", "vfs.provider/missing-hostname-path-sep.error"); - - // Missing container name - testBadlyFormedUri("blobstore://host", "vfs.provider.blobstore/missing-container-name.error"); - testBadlyFormedUri("blobstore://host/", "vfs.provider.blobstore/missing-container-name.error"); - testBadlyFormedUri("blobstore://host:9090/", - "vfs.provider.blobstore/missing-container-name.error"); - } - - /** - * Tests that parsing a URI fails with the expected error. - */ - private void testBadlyFormedUri(final String uri, final String errorMsg) { - try { - BlobStoreFileNameParser.getInstance().parseUri(null, null, uri); - fail(); - } catch (final FileSystemException e) { - assertSameMessage(errorMsg, uri, e); - } - } -} diff --git a/sandbox/vfs/src/test/resources/log4j.xml b/sandbox/vfs/src/test/resources/log4j.xml deleted file mode 100755 index 5565d6a945..0000000000 --- a/sandbox/vfs/src/test/resources/log4j.xml +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file