diff --git a/atmos/src/test/java/org/jclouds/atmosonline/saas/config/AtmosStorageRestClientModuleTest.java b/atmos/src/test/java/org/jclouds/atmosonline/saas/config/AtmosStorageRestClientModuleTest.java
index fe71cbb9fc..319cff64e6 100644
--- a/atmos/src/test/java/org/jclouds/atmosonline/saas/config/AtmosStorageRestClientModuleTest.java
+++ b/atmos/src/test/java/org/jclouds/atmosonline/saas/config/AtmosStorageRestClientModuleTest.java
@@ -26,13 +26,13 @@ package org.jclouds.atmosonline.saas.config;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
-import org.bouncycastle.util.encoders.Base64;
import org.jclouds.atmosonline.saas.handlers.AtmosStorageClientErrorRetryHandler;
import org.jclouds.atmosonline.saas.handlers.ParseAtmosStorageErrorFromXmlContent;
import org.jclouds.atmosonline.saas.reference.AtmosStorageConstants;
import org.jclouds.concurrent.WithinThreadExecutorService;
import org.jclouds.concurrent.config.ExecutorServiceModule;
import org.jclouds.date.internal.SimpleDateFormatDateService;
+import org.jclouds.encryption.internal.Base64;
import org.jclouds.http.functions.config.ParserModule;
import org.jclouds.http.handlers.DelegatingErrorHandler;
import org.jclouds.http.handlers.DelegatingRetryHandler;
@@ -62,7 +62,7 @@ public class AtmosStorageRestClientModuleTest {
bindConstant().annotatedWith(Jsr330.named(AtmosStorageConstants.PROPERTY_EMCSAAS_UID))
.to("uid");
bindConstant().annotatedWith(Jsr330.named(AtmosStorageConstants.PROPERTY_EMCSAAS_KEY))
- .to(new String(Base64.encode("key".getBytes())));
+ .to(new String(Base64.encodeBytes("key".getBytes())));
bindConstant().annotatedWith(
Jsr330.named(AtmosStorageConstants.PROPERTY_EMCSAAS_SESSIONINTERVAL)).to("2");
}
diff --git a/atmos/src/test/java/org/jclouds/atmosonline/saas/internal/StubAtmosStorageAsyncClient.java b/atmos/src/test/java/org/jclouds/atmosonline/saas/internal/StubAtmosStorageAsyncClient.java
index 43c2a1d0cf..3f0beb0e29 100644
--- a/atmos/src/test/java/org/jclouds/atmosonline/saas/internal/StubAtmosStorageAsyncClient.java
+++ b/atmos/src/test/java/org/jclouds/atmosonline/saas/internal/StubAtmosStorageAsyncClient.java
@@ -215,7 +215,7 @@ public class StubAtmosStorageAsyncClient implements AtmosStorageAsyncClient {
String container = path.substring(0, path.indexOf('/'));
String blobName = path.substring(path.indexOf('/') + 1);
try {
- blobStore.blobMetadata(container, blobName);
+ blobStore.blobMetadata(container, blobName).get();
return true;
} catch (KeyNotFoundException e) {
return false;
diff --git a/core/src/main/java/org/jclouds/http/HttpUtils.java b/core/src/main/java/org/jclouds/http/HttpUtils.java
index 14c6fe5866..2526172d80 100644
--- a/core/src/main/java/org/jclouds/http/HttpUtils.java
+++ b/core/src/main/java/org/jclouds/http/HttpUtils.java
@@ -170,7 +170,7 @@ public class HttpUtils {
String account = matcher.group(2);
String key = matcher.group(3);
return URI
- .create(String.format("%s://%s:%s@%s", scheme, account, urlEncode(key), rest));
+ .create(String.format("%s://%s:%s@%s", scheme, urlEncode(account), urlEncode(key), rest));
} else {
throw new IllegalArgumentException("bad syntax");
}
diff --git a/core/src/test/java/org/jclouds/domain/CredentialsTest.java b/core/src/test/java/org/jclouds/domain/CredentialsTest.java
index 5c1ac78eb1..aa856de7ab 100644
--- a/core/src/test/java/org/jclouds/domain/CredentialsTest.java
+++ b/core/src/test/java/org/jclouds/domain/CredentialsTest.java
@@ -40,7 +40,13 @@ public class CredentialsTest {
.create("blobstore://account:Base64==@azureblob/container-hyphen/prefix"));
assertEquals(creds.account, "account");
assertEquals(creds.key, "Base64==");
-
+ }
+
+ public void testAtmos() {
+ Credentials creds = Credentials.parse(URI
+ .create("blobstore://domain%2Fuser:Base64%3D%3D@azureblob/container-hyphen/prefix"));
+ assertEquals(creds.account, "domain/user");
+ assertEquals(creds.key, "Base64==");
}
public void testCloudFiles() {
diff --git a/core/src/test/java/org/jclouds/util/HttpUtilsTest.java b/core/src/test/java/org/jclouds/util/HttpUtilsTest.java
index 0c1e32403c..abcf7414c0 100644
--- a/core/src/test/java/org/jclouds/util/HttpUtilsTest.java
+++ b/core/src/test/java/org/jclouds/util/HttpUtilsTest.java
@@ -50,6 +50,13 @@ public class HttpUtilsTest extends PerformanceTest {
assertEquals(HttpUtils.urlEncode("/read-tests/ tep", '/'), "/read-tests/%20tep");
}
+ public void testAtmos() {
+ URI creds = HttpUtils
+ .createUri("blobstore://domain/user:Base64==@azureblob/container-hyphen/prefix");
+ assertEquals(creds, URI
+ .create("blobstore://domain%2Fuser:Base64%3D%3D@azureblob/container-hyphen/prefix"));
+ }
+
public void testAzure() {
URI creds = HttpUtils
.createUri("blobstore://account:Base64==@azureblob/container-hyphen/prefix");
diff --git a/pom.xml b/pom.xml
index 381ca6e458..3243c76a18 100644
--- a/pom.xml
+++ b/pom.xml
@@ -46,6 +46,7 @@
scriptbuilder
aws
azure
+ atmos
mezeo
nirvanix
rackspace
diff --git a/tools/vfs/pom.xml b/tools/vfs/pom.xml
index 410d0c4192..811fa94c54 100644
--- a/tools/vfs/pom.xml
+++ b/tools/vfs/pom.xml
@@ -57,6 +57,11 @@
jclouds-aws
${project.version}
+
+ ${project.groupId}
+ jclouds-atmos
+ ${project.version}
+
${project.groupId}
jclouds-azure
diff --git a/tools/vfs/src/main/resources/jclouds.properties b/tools/vfs/src/main/resources/jclouds.properties
index 9dbb7e82e7..dda19bcb6c 100644
--- a/tools/vfs/src/main/resources/jclouds.properties
+++ b/tools/vfs/src/main/resources/jclouds.properties
@@ -21,9 +21,11 @@
# under the License.
# ====================================================================
#
+atmos.contextbuilder=org.jclouds.atmosonline.saas.blobstore.AtmosBlobStoreContextBuilder
+atmos.propertiesbuilder=org.jclouds.atmosonline.saas.AtmosStoragePropertiesBuilder
azureblob.contextbuilder=org.jclouds.azure.storage.blob.blobstore.AzureBlobStoreContextBuilder
azureblob.propertiesbuilder=org.jclouds.azure.storage.blob.AzureBlobPropertiesBuilder
cloudfiles.contextbuilder=org.jclouds.rackspace.cloudfiles.blobstore.CloudFilesBlobStoreContextBuilder
cloudfiles.propertiesbuilder=org.jclouds.rackspace.cloudfiles.CloudFilesPropertiesBuilder
s3.contextbuilder=org.jclouds.aws.s3.blobstore.S3BlobStoreContextBuilder
-s3.propertiesbuilder=org.jclouds.aws.s3.S3PropertiesBuilder
\ No newline at end of file
+s3.propertiesbuilder=org.jclouds.aws.s3.S3PropertiesBuilder
diff --git a/tools/vfs/src/test/resources/jclouds.properties b/tools/vfs/src/test/resources/jclouds.properties
index 7c2e244c6f..ed3294bf95 100644
--- a/tools/vfs/src/test/resources/jclouds.properties
+++ b/tools/vfs/src/test/resources/jclouds.properties
@@ -21,6 +21,8 @@
# under the License.
# ====================================================================
#
+atmos.contextbuilder=org.jclouds.atmosonline.saas.blobstore.AtmosBlobStoreContextBuilder
+atmos.propertiesbuilder=org.jclouds.atmosonline.saas.AtmosStoragePropertiesBuilder
azureblob.contextbuilder=org.jclouds.azure.storage.blob.blobstore.AzureBlobStoreContextBuilder
azureblob.propertiesbuilder=org.jclouds.azure.storage.blob.AzureBlobPropertiesBuilder
cloudfiles.contextbuilder=org.jclouds.rackspace.cloudfiles.blobstore.CloudFilesBlobStoreContextBuilder
@@ -28,4 +30,4 @@ cloudfiles.propertiesbuilder=org.jclouds.rackspace.cloudfiles.CloudFilesProperti
s3.contextbuilder=org.jclouds.aws.s3.blobstore.S3BlobStoreContextBuilder
s3.propertiesbuilder=org.jclouds.aws.s3.S3PropertiesBuilder
stub.contextbuilder=org.jclouds.blobstore.integration.StubBlobStoreContextBuilder
-stub.propertiesbuilder=org.jclouds.blobstore.integration.StubPropertiesBuilder
\ No newline at end of file
+stub.propertiesbuilder=org.jclouds.blobstore.integration.StubPropertiesBuilder
diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java b/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java
index 42725208e7..e8c93e2469 100644
--- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java
+++ b/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java
@@ -67,10 +67,10 @@ public class InternetServiceLiveTest {
services.add(is);
PublicIpAddress ip = is.getPublicIpAddress();
// current bug in terremark
- // for (int port : new int[] { 80, 8080 }) {
- // services.add(tmClient.addInternetServiceToExistingIp(ip.getId(), "test-" + port,
- // Protocol.HTTP, port));
- // }
+// for (int port : new int[] { 80, 8080 }) {
+// services.add(tmClient.addInternetServiceToExistingIp(ip.getId(), "test-" + port,
+// Protocol.HTTP, port));
+// }
print(tmClient.getInternetServicesOnPublicIp(ip.getId()));
}