mirror of https://github.com/apache/jclouds.git
Issue 440: moved atmos to api groupId
This commit is contained in:
parent
04aa3f6f94
commit
de17424871
|
@ -42,7 +42,7 @@ our compute api supports: aws-ec2, gogrid, cloudservers (generic), cloudservers-
|
|||
to all of these providers
|
||||
|
||||
our blobstore api supports: aws-s3, cloudfiles (generic), cloudfiles-us, cloudfiles-uk,
|
||||
azurestorage, atmosonline (generic), synaptic, peer1-storage,
|
||||
azurestorage, atmos (generic), atmosonline, synaptic, peer1-storage,
|
||||
s3 (generic), walrus(generic), googlestorage, scaleup-storage,
|
||||
ecc-s3, swift (generic), transient (in-mem),
|
||||
filesystem (on-disk)
|
||||
|
|
|
@ -65,8 +65,8 @@
|
|||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<artifactId>jclouds-atmos</artifactId>
|
||||
<groupId>org.jclouds.api</groupId>
|
||||
<artifactId>atmos</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
|
|
|
@ -23,43 +23,36 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<artifactId>jclouds-project</artifactId>
|
||||
<groupId>org.jclouds</groupId>
|
||||
<artifactId>jclouds-project</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
<relativePath>../project/pom.xml</relativePath>
|
||||
<relativePath>../../project/pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>jclouds-atmos</artifactId>
|
||||
<name>jclouds atmosonline components</name>
|
||||
<groupId>org.jclouds.api</groupId>
|
||||
<artifactId>atmos</artifactId>
|
||||
<name>jclouds atmos components</name>
|
||||
<properties>
|
||||
<test.initializer>org.jclouds.atmosonline.saas.blobstore.integration.AtmosStorageTestInitializer</test.initializer>
|
||||
<test.atmosonline.endpoint>https://accesspoint.atmosonline.com</test.atmosonline.endpoint>
|
||||
<test.atmosonline.apiversion>1.3.0</test.atmosonline.apiversion>
|
||||
<test.atmosonline.identity>FIXME</test.atmosonline.identity>
|
||||
<test.atmosonline.credential>FIXME</test.atmosonline.credential>
|
||||
<test.peer1-storage.endpoint>https://cloudonestorage.peer1.com</test.peer1-storage.endpoint>
|
||||
<test.peer1-storage.apiversion>1.3.0</test.peer1-storage.apiversion>
|
||||
<test.peer1-storage.identity>FIXME</test.peer1-storage.identity>
|
||||
<test.peer1-storage.credential>FIXME</test.peer1-storage.credential>
|
||||
<test.synaptic.endpoint>https://storage.synaptic.att.com</test.synaptic.endpoint>
|
||||
<test.synaptic.apiversion>1.3.0</test.synaptic.apiversion>
|
||||
<test.synaptic.identity>FIXME</test.synaptic.identity>
|
||||
<test.synaptic.credential>FIXME</test.synaptic.credential>
|
||||
<test.initializer>org.jclouds.atmos.blobstore.integration.AtmosStorageTestInitializer</test.initializer>
|
||||
<test.atmos.endpoint>https://accesspoint.atmos.com</test.atmos.endpoint>
|
||||
<test.atmos.apiversion>1.3.0</test.atmos.apiversion>
|
||||
<test.atmos.identity>FIXME</test.atmos.identity>
|
||||
<test.atmos.credential>FIXME</test.atmos.credential>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<groupId>org.jclouds</groupId>
|
||||
<artifactId>jclouds-blobstore</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<groupId>org.jclouds</groupId>
|
||||
<artifactId>jclouds-blobstore</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>test-jar</type>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>${project.groupId}</groupId>
|
||||
<groupId>org.jclouds</groupId>
|
||||
<artifactId>jclouds-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>test-jar</type>
|
||||
|
@ -96,52 +89,20 @@
|
|||
<configuration>
|
||||
<systemProperties>
|
||||
<property>
|
||||
<name>test.atmosonline.endpoint</name>
|
||||
<value>${test.atmosonline.endpoint}</value>
|
||||
<name>test.atmos.endpoint</name>
|
||||
<value>${test.atmos.endpoint}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.atmosonline.apiversion</name>
|
||||
<value>${test.atmosonline.apiversion}</value>
|
||||
<name>test.atmos.apiversion</name>
|
||||
<value>${test.atmos.apiversion}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.atmosonline.identity</name>
|
||||
<value>${test.atmosonline.identity}</value>
|
||||
<name>test.atmos.identity</name>
|
||||
<value>${test.atmos.identity}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.atmosonline.credential</name>
|
||||
<value>${test.atmosonline.credential}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.peer1-storage.endpoint</name>
|
||||
<value>${test.peer1-storage.endpoint}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.peer1-storage.apiversion</name>
|
||||
<value>${test.peer1-storage.apiversion}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.peer1-storage.identity</name>
|
||||
<value>${test.peer1-storage.identity}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.peer1-storage.credential</name>
|
||||
<value>${test.peer1-storage.credential}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.synaptic.endpoint</name>
|
||||
<value>${test.synaptic.endpoint}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.synaptic.apiversion</name>
|
||||
<value>${test.synaptic.apiversion}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.synaptic.identity</name>
|
||||
<value>${test.synaptic.identity}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.synaptic.credential</name>
|
||||
<value>${test.synaptic.credential}</value>
|
||||
<name>test.atmos.credential</name>
|
||||
<value>${test.atmos.credential}</value>
|
||||
</property>
|
||||
<property>
|
||||
<name>test.initializer</name>
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas;
|
||||
package org.jclouds.atmos;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
|
@ -32,19 +32,19 @@ import javax.ws.rs.PathParam;
|
|||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import org.jclouds.atmosonline.saas.binders.BindMetadataToHeaders;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmosonline.saas.filters.SignRequest;
|
||||
import org.jclouds.atmosonline.saas.functions.AtmosObjectName;
|
||||
import org.jclouds.atmosonline.saas.functions.ParseDirectoryListFromContentAndHeaders;
|
||||
import org.jclouds.atmosonline.saas.functions.ParseObjectFromHeadersAndHttpContent;
|
||||
import org.jclouds.atmosonline.saas.functions.ParseSystemMetadataFromHeaders;
|
||||
import org.jclouds.atmosonline.saas.functions.ReturnEndpointIfAlreadyExists;
|
||||
import org.jclouds.atmosonline.saas.options.ListOptions;
|
||||
import org.jclouds.atmos.binders.BindMetadataToHeaders;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.jclouds.atmos.filters.SignRequest;
|
||||
import org.jclouds.atmos.functions.AtmosObjectName;
|
||||
import org.jclouds.atmos.functions.ParseDirectoryListFromContentAndHeaders;
|
||||
import org.jclouds.atmos.functions.ParseObjectFromHeadersAndHttpContent;
|
||||
import org.jclouds.atmos.functions.ParseSystemMetadataFromHeaders;
|
||||
import org.jclouds.atmos.functions.ReturnEndpointIfAlreadyExists;
|
||||
import org.jclouds.atmos.options.ListOptions;
|
||||
import org.jclouds.blobstore.functions.ThrowContainerNotFoundOn404;
|
||||
import org.jclouds.blobstore.functions.ThrowKeyNotFoundOn404;
|
||||
import org.jclouds.http.options.GetOptions;
|
||||
|
@ -65,21 +65,21 @@ import com.google.common.util.concurrent.ListenableFuture;
|
|||
* Provides asynchronous access to EMC Atmos Online Storage resources via their REST API.
|
||||
* <p/>
|
||||
*
|
||||
* @see AtmosStorageClient
|
||||
* @see AtmosClient
|
||||
* @see <a href="https://community.emc.com/community/labs/atmos_online" />
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@RequestFilters(SignRequest.class)
|
||||
@SkipEncoding('/')
|
||||
@Path("/rest/namespace")
|
||||
public interface AtmosStorageAsyncClient {
|
||||
public interface AtmosAsyncClient {
|
||||
/**
|
||||
* Creates a default implementation of AtmosObject
|
||||
*/
|
||||
AtmosObject newObject();
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#listDirectories
|
||||
* @see AtmosClient#listDirectories
|
||||
*/
|
||||
@GET
|
||||
@ResponseParser(ParseDirectoryListFromContentAndHeaders.class)
|
||||
|
@ -87,7 +87,7 @@ public interface AtmosStorageAsyncClient {
|
|||
ListenableFuture<BoundedSet<? extends DirectoryEntry>> listDirectories(ListOptions... options);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#listDirectory
|
||||
* @see AtmosClient#listDirectory
|
||||
*/
|
||||
@GET
|
||||
@Path("/{directoryName}/")
|
||||
|
@ -98,7 +98,7 @@ public interface AtmosStorageAsyncClient {
|
|||
@PathParam("directoryName") String directoryName, ListOptions... options);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#createDirectory
|
||||
* @see AtmosClient#createDirectory
|
||||
*/
|
||||
@POST
|
||||
@Path("/{directoryName}/")
|
||||
|
@ -108,7 +108,7 @@ public interface AtmosStorageAsyncClient {
|
|||
ListenableFuture<URI> createDirectory(@PathParam("directoryName") String directoryName);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#createFile
|
||||
* @see AtmosClient#createFile
|
||||
*/
|
||||
@POST
|
||||
@Path("/{parent}/{name}")
|
||||
|
@ -118,7 +118,7 @@ public interface AtmosStorageAsyncClient {
|
|||
@PathParam("name") @ParamParser(AtmosObjectName.class) @BinderParam(BindMetadataToHeaders.class) AtmosObject object);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#updateFile
|
||||
* @see AtmosClient#updateFile
|
||||
*/
|
||||
@PUT
|
||||
@Path("/{parent}/{name}")
|
||||
|
@ -129,7 +129,7 @@ public interface AtmosStorageAsyncClient {
|
|||
@PathParam("name") @ParamParser(AtmosObjectName.class) @BinderParam(BindMetadataToHeaders.class) AtmosObject object);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#readFile
|
||||
* @see AtmosClient#readFile
|
||||
*/
|
||||
@GET
|
||||
@ResponseParser(ParseObjectFromHeadersAndHttpContent.class)
|
||||
|
@ -139,7 +139,7 @@ public interface AtmosStorageAsyncClient {
|
|||
ListenableFuture<AtmosObject> readFile(@PathParam("path") String path, GetOptions... options);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#headFile
|
||||
* @see AtmosClient#headFile
|
||||
*/
|
||||
@HEAD
|
||||
@ResponseParser(ParseObjectFromHeadersAndHttpContent.class)
|
||||
|
@ -149,7 +149,7 @@ public interface AtmosStorageAsyncClient {
|
|||
ListenableFuture<AtmosObject> headFile(@PathParam("path") String path);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#getSystemMetadata
|
||||
* @see AtmosClient#getSystemMetadata
|
||||
*/
|
||||
@HEAD
|
||||
@ResponseParser(ParseSystemMetadataFromHeaders.class)
|
||||
|
@ -160,7 +160,7 @@ public interface AtmosStorageAsyncClient {
|
|||
ListenableFuture<SystemMetadata> getSystemMetadata(@PathParam("path") String path);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#getUserMetadata
|
||||
* @see AtmosClient#getUserMetadata
|
||||
*/
|
||||
@HEAD
|
||||
@ResponseParser(ParseSystemMetadataFromHeaders.class)
|
||||
|
@ -171,7 +171,7 @@ public interface AtmosStorageAsyncClient {
|
|||
ListenableFuture<UserMetadata> getUserMetadata(@PathParam("path") String path);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#deletePath
|
||||
* @see AtmosClient#deletePath
|
||||
*/
|
||||
@DELETE
|
||||
@ExceptionParser(ReturnVoidOnNotFoundOr404.class)
|
||||
|
@ -180,7 +180,7 @@ public interface AtmosStorageAsyncClient {
|
|||
ListenableFuture<Void> deletePath(@PathParam("path") String path);
|
||||
|
||||
/**
|
||||
* @see AtmosStorageClient#pathExists
|
||||
* @see AtmosClient#pathExists
|
||||
*/
|
||||
@HEAD
|
||||
@ExceptionParser(ReturnFalseOnNotFoundOr404.class)
|
|
@ -17,17 +17,17 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas;
|
||||
package org.jclouds.atmos;
|
||||
|
||||
import java.net.URI;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmosonline.saas.options.ListOptions;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.jclouds.atmos.options.ListOptions;
|
||||
import org.jclouds.concurrent.Timeout;
|
||||
import org.jclouds.http.options.GetOptions;
|
||||
|
||||
|
@ -35,12 +35,12 @@ import org.jclouds.http.options.GetOptions;
|
|||
* Provides access to EMC Atmos Online Storage resources via their REST API.
|
||||
* <p/>
|
||||
*
|
||||
* @see AtmosStorageAsyncClient
|
||||
* @see AtmosAsyncClient
|
||||
* @see <a href="https://community.emc.com/community/labs/atmos_online" />
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Timeout(duration = 300, timeUnit = TimeUnit.SECONDS)
|
||||
public interface AtmosStorageClient {
|
||||
public interface AtmosClient {
|
||||
/**
|
||||
* Creates a default implementation of AtmosObject
|
||||
*/
|
|
@ -17,13 +17,13 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas;
|
||||
package org.jclouds.atmos;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.jclouds.atmosonline.saas.blobstore.config.AtmosBlobStoreContextModule;
|
||||
import org.jclouds.atmosonline.saas.config.AtmosStorageRestClientModule;
|
||||
import org.jclouds.atmos.blobstore.config.AtmosBlobStoreContextModule;
|
||||
import org.jclouds.atmos.config.AtmosRestClientModule;
|
||||
import org.jclouds.blobstore.BlobStoreContextBuilder;
|
||||
import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule;
|
||||
import org.jclouds.logging.jdk.config.JDKLoggingModule;
|
||||
|
@ -44,11 +44,11 @@ import com.google.inject.Module;
|
|||
* @author Adrian Cole, Andrew Newdigate
|
||||
* @see AtmosBlobStoreContext
|
||||
*/
|
||||
public class AtmosStorageContextBuilder extends
|
||||
BlobStoreContextBuilder<AtmosStorageClient, AtmosStorageAsyncClient> {
|
||||
public class AtmosContextBuilder extends
|
||||
BlobStoreContextBuilder<AtmosClient, AtmosAsyncClient> {
|
||||
|
||||
public AtmosStorageContextBuilder(Properties props) {
|
||||
super(AtmosStorageClient.class, AtmosStorageAsyncClient.class, props);
|
||||
public AtmosContextBuilder(Properties props) {
|
||||
super(AtmosClient.class, AtmosAsyncClient.class, props);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -58,6 +58,6 @@ public class AtmosStorageContextBuilder extends
|
|||
|
||||
@Override
|
||||
protected void addClientModule(List<Module> modules) {
|
||||
modules.add(new AtmosStorageRestClientModule());
|
||||
modules.add(new AtmosRestClientModule());
|
||||
}
|
||||
}
|
|
@ -17,10 +17,10 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas;
|
||||
package org.jclouds.atmos;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosStorageError;
|
||||
import org.jclouds.atmosonline.saas.handlers.ParseAtmosStorageErrorFromXmlContent;
|
||||
import org.jclouds.atmos.domain.AtmosError;
|
||||
import org.jclouds.atmos.handlers.ParseAtmosErrorFromXmlContent;
|
||||
import org.jclouds.http.HttpCommand;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.http.HttpResponseException;
|
||||
|
@ -28,52 +28,52 @@ import org.jclouds.http.HttpResponseException;
|
|||
/**
|
||||
* Encapsulates an Error from Atmos Storage Services.
|
||||
*
|
||||
* @see AtmosStorageError
|
||||
* @see ParseAtmosStorageErrorFromXmlContent
|
||||
* @see AtmosError
|
||||
* @see ParseAtmosErrorFromXmlContent
|
||||
* @author Adrian Cole
|
||||
*
|
||||
*/
|
||||
public class AtmosStorageResponseException extends HttpResponseException {
|
||||
public class AtmosResponseException extends HttpResponseException {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private AtmosStorageError error;
|
||||
private AtmosError error;
|
||||
|
||||
public AtmosStorageResponseException(HttpCommand command, HttpResponse response,
|
||||
AtmosStorageError error) {
|
||||
public AtmosResponseException(HttpCommand command, HttpResponse response,
|
||||
AtmosError error) {
|
||||
super(String.format("command %s failed with code %s, error: %s", command.getCurrentRequest()
|
||||
.getRequestLine(), response.getStatusCode(), error.toString()), command, response);
|
||||
this.setError(error);
|
||||
|
||||
}
|
||||
|
||||
public AtmosStorageResponseException(HttpCommand command, HttpResponse response,
|
||||
AtmosStorageError error, Throwable cause) {
|
||||
public AtmosResponseException(HttpCommand command, HttpResponse response,
|
||||
AtmosError error, Throwable cause) {
|
||||
super(String.format("command %1$s failed with error: %2$s", command.getCurrentRequest()
|
||||
.getRequestLine(), error.toString()), command, response, cause);
|
||||
this.setError(error);
|
||||
|
||||
}
|
||||
|
||||
public AtmosStorageResponseException(String message, HttpCommand command, HttpResponse response,
|
||||
AtmosStorageError error) {
|
||||
public AtmosResponseException(String message, HttpCommand command, HttpResponse response,
|
||||
AtmosError error) {
|
||||
super(message, command, response);
|
||||
this.setError(error);
|
||||
|
||||
}
|
||||
|
||||
public AtmosStorageResponseException(String message, HttpCommand command, HttpResponse response,
|
||||
AtmosStorageError error, Throwable cause) {
|
||||
public AtmosResponseException(String message, HttpCommand command, HttpResponse response,
|
||||
AtmosError error, Throwable cause) {
|
||||
super(message, command, response, cause);
|
||||
this.setError(error);
|
||||
|
||||
}
|
||||
|
||||
public void setError(AtmosStorageError error) {
|
||||
public void setError(AtmosError error) {
|
||||
this.error = error;
|
||||
}
|
||||
|
||||
public AtmosStorageError getError() {
|
||||
public AtmosError getError() {
|
||||
return error;
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.binders;
|
||||
package org.jclouds.atmos.binders;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
@ -25,7 +25,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
|||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.rest.Binder;
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.binders;
|
||||
package org.jclouds.atmos.binders;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
@ -26,7 +26,7 @@ import java.util.Map;
|
|||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.utils.ModifyRequest;
|
||||
import org.jclouds.rest.Binder;
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore;
|
||||
package org.jclouds.atmos.blobstore;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -32,18 +32,18 @@ import javax.inject.Provider;
|
|||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.Constants;
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageAsyncClient;
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageClient;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobStoreListOptionsToListOptions;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.DirectoryEntryListToResourceMetadataList;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.ObjectToBlob;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.ObjectToBlobMetadata;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.options.ListOptions;
|
||||
import org.jclouds.atmosonline.saas.util.AtmosStorageUtils;
|
||||
import org.jclouds.atmos.AtmosAsyncClient;
|
||||
import org.jclouds.atmos.AtmosClient;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobStoreListOptionsToListOptions;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmos.blobstore.functions.DirectoryEntryListToResourceMetadataList;
|
||||
import org.jclouds.atmos.blobstore.functions.ObjectToBlob;
|
||||
import org.jclouds.atmos.blobstore.functions.ObjectToBlobMetadata;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.options.ListOptions;
|
||||
import org.jclouds.atmos.util.AtmosUtils;
|
||||
import org.jclouds.blobstore.BlobStoreContext;
|
||||
import org.jclouds.blobstore.domain.Blob;
|
||||
import org.jclouds.blobstore.domain.BlobMetadata;
|
||||
|
@ -68,8 +68,8 @@ import com.google.common.util.concurrent.ListenableFuture;
|
|||
*/
|
||||
@Singleton
|
||||
public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
||||
private final AtmosStorageAsyncClient async;
|
||||
private final AtmosStorageClient sync;
|
||||
private final AtmosAsyncClient async;
|
||||
private final AtmosClient sync;
|
||||
private final ObjectToBlob object2Blob;
|
||||
private final ObjectToBlobMetadata object2BlobMd;
|
||||
private final BlobToObject blob2Object;
|
||||
|
@ -82,8 +82,8 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
@Inject
|
||||
AtmosAsyncBlobStore(BlobStoreContext context, BlobUtils blobUtils,
|
||||
@Named(Constants.PROPERTY_USER_THREADS) ExecutorService service, Supplier<Location> defaultLocation,
|
||||
@Memoized Supplier<Set<? extends Location>> locations, AtmosStorageAsyncClient async,
|
||||
AtmosStorageClient sync, ObjectToBlob object2Blob, ObjectToBlobMetadata object2BlobMd,
|
||||
@Memoized Supplier<Set<? extends Location>> locations, AtmosAsyncClient async,
|
||||
AtmosClient sync, ObjectToBlob object2Blob, ObjectToBlobMetadata object2BlobMd,
|
||||
BlobToObject blob2Object, BlobStoreListOptionsToListOptions container2ContainerListOptions,
|
||||
DirectoryEntryListToResourceMetadataList container2ResourceList, Crypto crypto,
|
||||
BlobToHttpGetOptions blob2ObjectGetOptions, Provider<FetchBlobMetadata> fetchBlobMetadataProvider) {
|
||||
|
@ -102,7 +102,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#headFile}
|
||||
* This implementation invokes {@link AtmosAsyncClient#headFile}
|
||||
*/
|
||||
@Override
|
||||
public ListenableFuture<BlobMetadata> blobMetadata(String container, String key) {
|
||||
|
@ -115,7 +115,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#createDirectory}
|
||||
* This implementation invokes {@link AtmosAsyncClient#createDirectory}
|
||||
* <p/>
|
||||
* Note location is ignored
|
||||
*/
|
||||
|
@ -131,7 +131,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#createDirectory}
|
||||
* This implementation invokes {@link AtmosAsyncClient#createDirectory}
|
||||
*/
|
||||
@Override
|
||||
public ListenableFuture<Void> createDirectory(String container, String directory) {
|
||||
|
@ -145,8 +145,8 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#deletePath} followed by
|
||||
* {@link AtmosStorageAsyncClient#pathExists} until it is true.
|
||||
* This implementation invokes {@link AtmosAsyncClient#deletePath} followed by
|
||||
* {@link AtmosAsyncClient#pathExists} until it is true.
|
||||
*/
|
||||
protected boolean deleteAndVerifyContainerGone(final String container) {
|
||||
sync.deletePath(container + "/");
|
||||
|
@ -154,7 +154,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#pathExists}
|
||||
* This implementation invokes {@link AtmosAsyncClient#pathExists}
|
||||
*/
|
||||
@Override
|
||||
public ListenableFuture<Boolean> containerExists(String container) {
|
||||
|
@ -162,7 +162,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#pathExists}
|
||||
* This implementation invokes {@link AtmosAsyncClient#pathExists}
|
||||
*/
|
||||
@Override
|
||||
public ListenableFuture<Boolean> directoryExists(String container, String directory) {
|
||||
|
@ -178,7 +178,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#pathExists}
|
||||
* This implementation invokes {@link AtmosAsyncClient#pathExists}
|
||||
*
|
||||
* @param container
|
||||
* container
|
||||
|
@ -191,7 +191,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#readFile}
|
||||
* This implementation invokes {@link AtmosAsyncClient#readFile}
|
||||
*/
|
||||
@Override
|
||||
public ListenableFuture<Blob> getBlob(String container, String key, org.jclouds.blobstore.options.GetOptions options) {
|
||||
|
@ -201,7 +201,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#listDirectories}
|
||||
* This implementation invokes {@link AtmosAsyncClient#listDirectories}
|
||||
*/
|
||||
@Override
|
||||
public ListenableFuture<PageSet<? extends StorageMetadata>> list() {
|
||||
|
@ -209,12 +209,12 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#listDirectory}
|
||||
* This implementation invokes {@link AtmosAsyncClient#listDirectory}
|
||||
*/
|
||||
@Override
|
||||
public ListenableFuture<PageSet<? extends StorageMetadata>> list(String container,
|
||||
org.jclouds.blobstore.options.ListContainerOptions options) {
|
||||
container = AtmosStorageUtils.adjustContainerIfDirOptionPresent(container, options);
|
||||
container = AtmosUtils.adjustContainerIfDirOptionPresent(container, options);
|
||||
ListOptions nativeOptions = container2ContainerListOptions.apply(options);
|
||||
ListenableFuture<BoundedSet<? extends DirectoryEntry>> returnVal = async.listDirectory(container, nativeOptions);
|
||||
ListenableFuture<PageSet<? extends StorageMetadata>> list = Futures.compose(returnVal, container2ResourceList,
|
||||
|
@ -224,7 +224,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#createFile}
|
||||
* This implementation invokes {@link AtmosAsyncClient#createFile}
|
||||
* <p/>
|
||||
* Since there is no etag support in atmos, we just return the path.
|
||||
*/
|
||||
|
@ -234,7 +234,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
|
||||
@Override
|
||||
public String call() throws Exception {
|
||||
return AtmosStorageUtils.putBlob(sync, crypto, blob2Object, container, blob);
|
||||
return AtmosUtils.putBlob(sync, crypto, blob2Object, container, blob);
|
||||
|
||||
}
|
||||
|
||||
|
@ -243,7 +243,7 @@ public class AtmosAsyncBlobStore extends BaseAsyncBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#deletePath}
|
||||
* This implementation invokes {@link AtmosAsyncClient#deletePath}
|
||||
*/
|
||||
@Override
|
||||
public ListenableFuture<Void> removeBlob(String container, String key) {
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore;
|
||||
package org.jclouds.atmos.blobstore;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static org.jclouds.blobstore.util.BlobStoreUtils.cleanRequest;
|
||||
|
@ -27,9 +27,9 @@ import java.lang.reflect.Method;
|
|||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageAsyncClient;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmos.AtmosAsyncClient;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.blobstore.BlobRequestSigner;
|
||||
import org.jclouds.blobstore.domain.Blob;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
|
@ -42,20 +42,20 @@ import org.jclouds.rest.internal.RestAnnotationProcessor;
|
|||
*/
|
||||
@Singleton
|
||||
public class AtmosBlobRequestSigner implements BlobRequestSigner {
|
||||
private final RestAnnotationProcessor<AtmosStorageAsyncClient> processor;
|
||||
private final RestAnnotationProcessor<AtmosAsyncClient> processor;
|
||||
private final BlobToObject blobToObject;
|
||||
private final Method getMethod;
|
||||
private final Method deleteMethod;
|
||||
private final Method createMethod;
|
||||
|
||||
@Inject
|
||||
public AtmosBlobRequestSigner(RestAnnotationProcessor<AtmosStorageAsyncClient> processor, BlobToObject blobToObject)
|
||||
public AtmosBlobRequestSigner(RestAnnotationProcessor<AtmosAsyncClient> processor, BlobToObject blobToObject)
|
||||
throws SecurityException, NoSuchMethodException {
|
||||
this.processor = checkNotNull(processor, "processor");
|
||||
this.blobToObject = checkNotNull(blobToObject, "blobToObject");
|
||||
this.getMethod = AtmosStorageAsyncClient.class.getMethod("readFile", String.class, GetOptions[].class);
|
||||
this.deleteMethod = AtmosStorageAsyncClient.class.getMethod("deletePath", String.class);
|
||||
this.createMethod = AtmosStorageAsyncClient.class.getMethod("createFile", String.class, AtmosObject.class);
|
||||
this.getMethod = AtmosAsyncClient.class.getMethod("readFile", String.class, GetOptions[].class);
|
||||
this.deleteMethod = AtmosAsyncClient.class.getMethod("deletePath", String.class);
|
||||
this.createMethod = AtmosAsyncClient.class.getMethod("createFile", String.class, AtmosObject.class);
|
||||
|
||||
}
|
||||
|
||||
|
@ -78,4 +78,4 @@ public class AtmosBlobRequestSigner implements BlobRequestSigner {
|
|||
return checkNotNull(container, "container") + "/" + checkNotNull(name, "name");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore;
|
||||
package org.jclouds.atmos.blobstore;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -27,15 +27,15 @@ import javax.inject.Inject;
|
|||
import javax.inject.Provider;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageAsyncClient;
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageClient;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobStoreListOptionsToListOptions;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.DirectoryEntryListToResourceMetadataList;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.ObjectToBlob;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.ObjectToBlobMetadata;
|
||||
import org.jclouds.atmosonline.saas.options.ListOptions;
|
||||
import org.jclouds.atmosonline.saas.util.AtmosStorageUtils;
|
||||
import org.jclouds.atmos.AtmosAsyncClient;
|
||||
import org.jclouds.atmos.AtmosClient;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobStoreListOptionsToListOptions;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmos.blobstore.functions.DirectoryEntryListToResourceMetadataList;
|
||||
import org.jclouds.atmos.blobstore.functions.ObjectToBlob;
|
||||
import org.jclouds.atmos.blobstore.functions.ObjectToBlobMetadata;
|
||||
import org.jclouds.atmos.options.ListOptions;
|
||||
import org.jclouds.atmos.util.AtmosUtils;
|
||||
import org.jclouds.blobstore.BlobStoreContext;
|
||||
import org.jclouds.blobstore.domain.Blob;
|
||||
import org.jclouds.blobstore.domain.BlobMetadata;
|
||||
|
@ -57,7 +57,7 @@ import com.google.common.base.Supplier;
|
|||
*/
|
||||
@Singleton
|
||||
public class AtmosBlobStore extends BaseBlobStore {
|
||||
private final AtmosStorageClient sync;
|
||||
private final AtmosClient sync;
|
||||
private final ObjectToBlob object2Blob;
|
||||
private final ObjectToBlobMetadata object2BlobMd;
|
||||
private final BlobToObject blob2Object;
|
||||
|
@ -69,7 +69,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
|
||||
@Inject
|
||||
AtmosBlobStore(BlobStoreContext context, BlobUtils blobUtils, Supplier<Location> defaultLocation,
|
||||
@Memoized Supplier<Set<? extends Location>> locations, AtmosStorageClient sync, ObjectToBlob object2Blob,
|
||||
@Memoized Supplier<Set<? extends Location>> locations, AtmosClient sync, ObjectToBlob object2Blob,
|
||||
ObjectToBlobMetadata object2BlobMd, BlobToObject blob2Object,
|
||||
BlobStoreListOptionsToListOptions container2ContainerListOptions,
|
||||
DirectoryEntryListToResourceMetadataList container2ResourceList, Crypto crypto,
|
||||
|
@ -88,7 +88,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#headFile}
|
||||
* This implementation invokes {@link AtmosClient#headFile}
|
||||
*/
|
||||
@Override
|
||||
public BlobMetadata blobMetadata(String container, String key) {
|
||||
|
@ -96,8 +96,8 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageAsyncClient#deletePath} followed by
|
||||
* {@link AtmosStorageAsyncClient#pathExists} until it is true.
|
||||
* This implementation invokes {@link AtmosAsyncClient#deletePath} followed by
|
||||
* {@link AtmosAsyncClient#pathExists} until it is true.
|
||||
*/
|
||||
protected boolean deleteAndVerifyContainerGone(final String container) {
|
||||
sync.deletePath(container + "/");
|
||||
|
@ -105,7 +105,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#createDirectory}
|
||||
* This implementation invokes {@link AtmosClient#createDirectory}
|
||||
*
|
||||
* @param location
|
||||
* currently ignored
|
||||
|
@ -119,7 +119,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#createDirectory}
|
||||
* This implementation invokes {@link AtmosClient#createDirectory}
|
||||
*
|
||||
* @param container
|
||||
* directory name
|
||||
|
@ -138,7 +138,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#pathExists}
|
||||
* This implementation invokes {@link AtmosClient#pathExists}
|
||||
*/
|
||||
@Override
|
||||
public boolean containerExists(String container) {
|
||||
|
@ -146,7 +146,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#pathExists}
|
||||
* This implementation invokes {@link AtmosClient#pathExists}
|
||||
*/
|
||||
@Override
|
||||
public boolean directoryExists(String container, String directory) {
|
||||
|
@ -154,7 +154,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#pathExists}
|
||||
* This implementation invokes {@link AtmosClient#pathExists}
|
||||
*
|
||||
* @param container
|
||||
* container
|
||||
|
@ -167,7 +167,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#readFile}
|
||||
* This implementation invokes {@link AtmosClient#readFile}
|
||||
*/
|
||||
@Override
|
||||
public Blob getBlob(String container, String key, org.jclouds.blobstore.options.GetOptions options) {
|
||||
|
@ -176,7 +176,7 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#listDirectories}
|
||||
* This implementation invokes {@link AtmosClient#listDirectories}
|
||||
*/
|
||||
@Override
|
||||
public PageSet<? extends StorageMetadata> list() {
|
||||
|
@ -184,12 +184,12 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#listDirectory}
|
||||
* This implementation invokes {@link AtmosClient#listDirectory}
|
||||
*/
|
||||
@Override
|
||||
public PageSet<? extends StorageMetadata> list(String container,
|
||||
org.jclouds.blobstore.options.ListContainerOptions options) {
|
||||
container = AtmosStorageUtils.adjustContainerIfDirOptionPresent(container, options);
|
||||
container = AtmosUtils.adjustContainerIfDirOptionPresent(container, options);
|
||||
ListOptions nativeOptions = container2ContainerListOptions.apply(options);
|
||||
// until includeMeta() option works for namespace interface
|
||||
PageSet<? extends StorageMetadata> list = container2ResourceList.apply(sync.listDirectory(container,
|
||||
|
@ -198,17 +198,17 @@ public class AtmosBlobStore extends BaseBlobStore {
|
|||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#createFile}
|
||||
* This implementation invokes {@link AtmosClient#createFile}
|
||||
* <p/>
|
||||
* Since there is no etag support in atmos, we just return the path.
|
||||
*/
|
||||
@Override
|
||||
public String putBlob(final String container, final Blob blob) {
|
||||
return AtmosStorageUtils.putBlob(sync, crypto, blob2Object, container, blob);
|
||||
return AtmosUtils.putBlob(sync, crypto, blob2Object, container, blob);
|
||||
}
|
||||
|
||||
/**
|
||||
* This implementation invokes {@link AtmosStorageClient#deletePath}
|
||||
* This implementation invokes {@link AtmosClient#deletePath}
|
||||
*/
|
||||
@Override
|
||||
public void removeBlob(String container, String key) {
|
|
@ -17,18 +17,18 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.config;
|
||||
package org.jclouds.atmos.blobstore.config;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageAsyncClient;
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageClient;
|
||||
import org.jclouds.atmosonline.saas.blobstore.AtmosAsyncBlobStore;
|
||||
import org.jclouds.atmosonline.saas.blobstore.AtmosBlobRequestSigner;
|
||||
import org.jclouds.atmosonline.saas.blobstore.AtmosBlobStore;
|
||||
import org.jclouds.atmosonline.saas.blobstore.strategy.FindMD5InUserMetadata;
|
||||
import org.jclouds.atmos.AtmosAsyncClient;
|
||||
import org.jclouds.atmos.AtmosClient;
|
||||
import org.jclouds.atmos.blobstore.AtmosAsyncBlobStore;
|
||||
import org.jclouds.atmos.blobstore.AtmosBlobRequestSigner;
|
||||
import org.jclouds.atmos.blobstore.AtmosBlobStore;
|
||||
import org.jclouds.atmos.blobstore.strategy.FindMD5InUserMetadata;
|
||||
import org.jclouds.blobstore.AsyncBlobStore;
|
||||
import org.jclouds.blobstore.BlobRequestSigner;
|
||||
import org.jclouds.blobstore.BlobStore;
|
||||
|
@ -65,7 +65,7 @@ public class AtmosBlobStoreContextModule extends AbstractModule {
|
|||
bind(AsyncBlobStore.class).to(AtmosAsyncBlobStore.class).in(Scopes.SINGLETON);
|
||||
bind(BlobStore.class).to(AtmosBlobStore.class).in(Scopes.SINGLETON);
|
||||
bind(BlobStoreContext.class).to(
|
||||
new TypeLiteral<BlobStoreContextImpl<AtmosStorageClient, AtmosStorageAsyncClient>>() {
|
||||
new TypeLiteral<BlobStoreContextImpl<AtmosClient, AtmosAsyncClient>>() {
|
||||
}).in(Scopes.SINGLETON);
|
||||
bind(ContainsValueInListStrategy.class).to(FindMD5InUserMetadata.class);
|
||||
bind(BlobRequestSigner.class).to(AtmosBlobRequestSigner.class);
|
|
@ -17,15 +17,15 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.jclouds.blobstore.domain.BlobMetadata;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
|
@ -58,4 +58,4 @@ public class BlobMetadataToObject implements Function<BlobMetadata, AtmosObject>
|
|||
return factory.create(blob2ContentMd.apply(from), blob2SysMd.apply(from), userMd);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -32,11 +32,11 @@ import com.google.common.base.Function;
|
|||
*/
|
||||
@Singleton
|
||||
public class BlobStoreListOptionsToListOptions implements
|
||||
Function<ListContainerOptions, org.jclouds.atmosonline.saas.options.ListOptions> {
|
||||
Function<ListContainerOptions, org.jclouds.atmos.options.ListOptions> {
|
||||
@Override
|
||||
public org.jclouds.atmosonline.saas.options.ListOptions apply(ListContainerOptions from) {
|
||||
public org.jclouds.atmos.options.ListOptions apply(ListContainerOptions from) {
|
||||
checkNotNull(from, "set options to instance NONE instead of passing null");
|
||||
org.jclouds.atmosonline.saas.options.ListOptions httpOptions = new org.jclouds.atmosonline.saas.options.ListOptions();
|
||||
org.jclouds.atmos.options.ListOptions httpOptions = new org.jclouds.atmos.options.ListOptions();
|
||||
if (from.getMarker() != null) {
|
||||
httpOptions.token(from.getMarker());
|
||||
}
|
||||
|
@ -48,4 +48,4 @@ public class BlobStoreListOptionsToListOptions implements
|
|||
}
|
||||
return httpOptions;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,12 +17,12 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.MutableContentMetadata;
|
||||
import org.jclouds.atmosonline.saas.domain.internal.DelegatingMutableContentMetadata;
|
||||
import org.jclouds.atmos.domain.MutableContentMetadata;
|
||||
import org.jclouds.atmos.domain.internal.DelegatingMutableContentMetadata;
|
||||
import org.jclouds.blobstore.domain.BlobMetadata;
|
||||
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
|
||||
import org.jclouds.http.HttpUtils;
|
||||
|
@ -40,4 +40,4 @@ public class BlobToContentMetadata implements Function<BlobMetadata, MutableCont
|
|||
return new DelegatingMutableContentMetadata(base.getName(), to.getContentMetadata());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,14 +17,14 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.blobstore.domain.Blob;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
|
@ -49,4 +49,4 @@ public class BlobToObject implements Function<Blob, AtmosObject> {
|
|||
object.setAllHeaders(from.getAllHeaders());
|
||||
return object;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,12 +17,12 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.blobstore.domain.BlobMetadata;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
|
@ -38,4 +38,4 @@ public class BlobToSystemMetadata implements Function<BlobMetadata, SystemMetada
|
|||
.getContentMetadata().getContentLength() : 0, FileType.REGULAR, "root");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,14 +17,14 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.blobstore.domain.PageSet;
|
||||
import org.jclouds.blobstore.domain.StorageMetadata;
|
||||
import org.jclouds.blobstore.domain.StorageType;
|
||||
|
@ -70,4 +70,4 @@ public class DirectoryEntryListToResourceMetadataList implements
|
|||
}), from.getToken());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,14 +17,14 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.blobstore.domain.Blob;
|
||||
import org.jclouds.blobstore.domain.Blob.Factory;
|
||||
import org.jclouds.http.HttpUtils;
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
@ -26,9 +26,9 @@ import java.util.Map.Entry;
|
|||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmosonline.saas.functions.AtmosObjectName;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.atmos.functions.AtmosObjectName;
|
||||
import org.jclouds.blobstore.domain.MutableBlobMetadata;
|
||||
import org.jclouds.blobstore.domain.StorageType;
|
||||
import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl;
|
||||
|
@ -75,4 +75,4 @@ public class ObjectToBlobMetadata implements Function<AtmosObject, MutableBlobMe
|
|||
to.setUserMetadata(lowerKeyMetadata);
|
||||
return to;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.strategy;
|
||||
package org.jclouds.atmos.blobstore.strategy;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static org.jclouds.concurrent.FutureIterables.awaitCompletion;
|
||||
|
@ -36,8 +36,8 @@ import javax.inject.Named;
|
|||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.Constants;
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageAsyncClient;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmos.AtmosAsyncClient;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.blobstore.domain.BlobMetadata;
|
||||
import org.jclouds.blobstore.functions.ObjectMD5;
|
||||
import org.jclouds.blobstore.internal.BlobRuntimeException;
|
||||
|
@ -63,7 +63,7 @@ public class FindMD5InUserMetadata implements ContainsValueInListStrategy {
|
|||
protected Logger logger = Logger.NULL;
|
||||
protected final ObjectMD5 objectMD5;
|
||||
protected final ListBlobsInContainer getAllBlobMetadata;
|
||||
private final AtmosStorageAsyncClient client;
|
||||
private final AtmosAsyncClient client;
|
||||
private final ExecutorService userExecutor;
|
||||
/**
|
||||
* maximum duration of an blob Request
|
||||
|
@ -74,7 +74,7 @@ public class FindMD5InUserMetadata implements ContainsValueInListStrategy {
|
|||
|
||||
@Inject
|
||||
FindMD5InUserMetadata(@Named(Constants.PROPERTY_USER_THREADS) ExecutorService userExecutor, ObjectMD5 objectMD5,
|
||||
ListBlobsInContainer getAllBlobMetadata, AtmosStorageAsyncClient client) {
|
||||
ListBlobsInContainer getAllBlobMetadata, AtmosAsyncClient client) {
|
||||
this.objectMD5 = objectMD5;
|
||||
this.getAllBlobMetadata = getAllBlobMetadata;
|
||||
this.client = client;
|
|
@ -17,10 +17,10 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.config;
|
||||
package org.jclouds.atmos.config;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.MutableContentMetadata;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.MutableContentMetadata;
|
||||
import org.jclouds.blobstore.config.BlobStoreObjectModule;
|
||||
|
||||
import com.google.inject.AbstractModule;
|
||||
|
@ -48,4 +48,4 @@ public class AtmosObjectModule extends AbstractModule {
|
|||
return factory.create((MutableContentMetadata) null);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.config;
|
||||
package org.jclouds.atmos.config;
|
||||
|
||||
import org.jclouds.json.config.GsonModule.DateAdapter;
|
||||
import org.jclouds.json.config.GsonModule.Iso8601DateAdapter;
|
||||
|
@ -29,7 +29,7 @@ import com.google.inject.AbstractModule;
|
|||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class AtmosStorageParserModule extends AbstractModule {
|
||||
public class AtmosParserModule extends AbstractModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
|
@ -17,17 +17,17 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.config;
|
||||
package org.jclouds.atmos.config;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.inject.Named;
|
||||
|
||||
import org.jclouds.Constants;
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageAsyncClient;
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageClient;
|
||||
import org.jclouds.atmosonline.saas.handlers.AtmosStorageClientErrorRetryHandler;
|
||||
import org.jclouds.atmosonline.saas.handlers.ParseAtmosStorageErrorFromXmlContent;
|
||||
import org.jclouds.atmos.AtmosAsyncClient;
|
||||
import org.jclouds.atmos.AtmosClient;
|
||||
import org.jclouds.atmos.handlers.AtmosClientErrorRetryHandler;
|
||||
import org.jclouds.atmos.handlers.ParseAtmosErrorFromXmlContent;
|
||||
import org.jclouds.date.DateService;
|
||||
import org.jclouds.date.TimeStamp;
|
||||
import org.jclouds.http.HttpErrorHandler;
|
||||
|
@ -51,14 +51,14 @@ import com.google.inject.Provides;
|
|||
*/
|
||||
@ConfiguresRestClient
|
||||
@RequiresHttp
|
||||
public class AtmosStorageRestClientModule extends RestClientModule<AtmosStorageClient, AtmosStorageAsyncClient> {
|
||||
public AtmosStorageRestClientModule() {
|
||||
super(AtmosStorageClient.class, AtmosStorageAsyncClient.class);
|
||||
public class AtmosRestClientModule extends RestClientModule<AtmosClient, AtmosAsyncClient> {
|
||||
public AtmosRestClientModule() {
|
||||
super(AtmosClient.class, AtmosAsyncClient.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
install(new AtmosStorageParserModule());
|
||||
install(new AtmosParserModule());
|
||||
install(new AtmosObjectModule());
|
||||
super.configure();
|
||||
}
|
||||
|
@ -85,14 +85,14 @@ public class AtmosStorageRestClientModule extends RestClientModule<AtmosStorageC
|
|||
|
||||
@Override
|
||||
protected void bindErrorHandlers() {
|
||||
bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseAtmosStorageErrorFromXmlContent.class);
|
||||
bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(ParseAtmosStorageErrorFromXmlContent.class);
|
||||
bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(ParseAtmosStorageErrorFromXmlContent.class);
|
||||
bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseAtmosErrorFromXmlContent.class);
|
||||
bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(ParseAtmosErrorFromXmlContent.class);
|
||||
bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(ParseAtmosErrorFromXmlContent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindRetryHandlers() {
|
||||
bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(AtmosStorageClientErrorRetryHandler.class);
|
||||
bind(HttpRetryHandler.class).annotatedWith(ClientError.class).to(AtmosClientErrorRetryHandler.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
/**
|
||||
* When an Atmos Storage request is in error, the client receives an error response.
|
||||
|
@ -27,18 +27,18 @@ package org.jclouds.atmosonline.saas.domain;
|
|||
* @author Adrian Cole
|
||||
*
|
||||
*/
|
||||
public class AtmosStorageError {
|
||||
public class AtmosError {
|
||||
private final int code;
|
||||
private final String message;
|
||||
private String stringSigned;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AtmosStorageError [code=" + code + ", message=" + message
|
||||
return "AtmosError [code=" + code + ", message=" + message
|
||||
+ (stringSigned != null ? (", stringSigned=" + stringSigned) : "") + "]";
|
||||
}
|
||||
|
||||
public AtmosStorageError(int code, String message) {
|
||||
public AtmosError(int code, String message) {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
|
@ -17,11 +17,11 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.internal.AtmosObjectImpl.AtmosObjectFactory;
|
||||
import org.jclouds.atmos.domain.internal.AtmosObjectImpl.AtmosObjectFactory;
|
||||
import org.jclouds.io.PayloadEnclosing;
|
||||
|
||||
import com.google.common.collect.Multimap;
|
||||
|
@ -55,4 +55,4 @@ public interface AtmosObject extends PayloadEnclosing, Comparable<AtmosObject> {
|
|||
Multimap<String, String> getAllHeaders();
|
||||
|
||||
void setAllHeaders(Multimap<String, String> allHeaders);
|
||||
}
|
||||
}
|
|
@ -17,13 +17,13 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.internal.BoundedLinkedHashSet;
|
||||
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
|
||||
|
||||
import com.google.inject.ImplementedBy;
|
||||
|
||||
|
@ -38,4 +38,4 @@ public interface BoundedSet<T> extends Set<T> {
|
|||
@Nullable
|
||||
String getToken();
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
/**
|
||||
* Metadata of a Atmos Online object
|
||||
|
@ -95,4 +95,4 @@ public class DirectoryEntry implements Comparable<DirectoryEntry> {
|
|||
return "DirectoryEntry [type=" + type + ", objectid=" + objectid + ", objname=" + objname
|
||||
+ "]";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
public enum FileType {
|
||||
|
|
@ -17,9 +17,9 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.internal.DelegatingMutableContentMetadata;
|
||||
import org.jclouds.atmos.domain.internal.DelegatingMutableContentMetadata;
|
||||
|
||||
import com.google.inject.ImplementedBy;
|
||||
|
||||
|
@ -35,4 +35,4 @@ public interface MutableContentMetadata extends org.jclouds.io.MutableContentMet
|
|||
|
||||
public void setName(String name);
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
@ -168,4 +168,4 @@ public class SystemMetadata extends DirectoryEntry {
|
|||
return "[type=" + getType() + ", id=" + getObjectID() + ", name=" + getObjectName() + "]";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
import java.net.URI;
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain;
|
||||
package org.jclouds.atmos.domain;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -118,4 +118,4 @@ public class UserMetadata {
|
|||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain.internal;
|
||||
package org.jclouds.atmos.domain.internal;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -25,10 +25,10 @@ import javax.inject.Inject;
|
|||
import javax.inject.Provider;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.MutableContentMetadata;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.MutableContentMetadata;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.jclouds.http.internal.PayloadEnclosingImpl;
|
||||
import org.jclouds.io.Payload;
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain.internal;
|
||||
package org.jclouds.atmos.domain.internal;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -25,7 +25,7 @@ import java.util.LinkedHashSet;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
|
||||
import com.google.common.collect.Iterables;
|
||||
|
||||
|
@ -80,4 +80,4 @@ public class BoundedLinkedHashSet<T> extends LinkedHashSet<T> implements Bounded
|
|||
return "[token=" + token + ", contents=" + super.toString() + "]";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,9 +17,9 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.domain.internal;
|
||||
package org.jclouds.atmos.domain.internal;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.MutableContentMetadata;
|
||||
import org.jclouds.atmos.domain.MutableContentMetadata;
|
||||
import org.jclouds.io.payloads.BaseMutableContentMetadata;
|
||||
|
||||
import com.google.common.collect.Multimap;
|
||||
|
@ -157,4 +157,4 @@ public class DelegatingMutableContentMetadata implements MutableContentMetadata
|
|||
delegate.setPropertiesFromHttpHeaders(headers);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.filters;
|
||||
package org.jclouds.atmos.filters;
|
||||
|
||||
import static org.jclouds.Constants.LOGGER_SIGNATURE;
|
||||
import static org.jclouds.Constants.PROPERTY_CREDENTIAL;
|
||||
|
@ -35,7 +35,7 @@ import javax.inject.Provider;
|
|||
import javax.inject.Singleton;
|
||||
import javax.ws.rs.core.HttpHeaders;
|
||||
|
||||
import org.jclouds.atmosonline.saas.reference.AtmosStorageHeaders;
|
||||
import org.jclouds.atmos.reference.AtmosHeaders;
|
||||
import org.jclouds.crypto.Crypto;
|
||||
import org.jclouds.crypto.CryptoStreams;
|
||||
import org.jclouds.date.TimeStamp;
|
||||
|
@ -93,14 +93,14 @@ public class SignRequest implements HttpRequestFilter {
|
|||
@Override
|
||||
public HttpRequest filter(HttpRequest request) throws HttpException {
|
||||
Builder<String, String> builder = ImmutableMap.builder();
|
||||
builder.put(AtmosStorageHeaders.UID, uid);
|
||||
builder.put(AtmosHeaders.UID, uid);
|
||||
String date = timeStampProvider.get();
|
||||
builder.put(HttpHeaders.DATE, date);
|
||||
if (request.getHeaders().containsKey(AtmosStorageHeaders.DATE))
|
||||
builder.put(AtmosStorageHeaders.DATE, date);
|
||||
if (request.getHeaders().containsKey(AtmosHeaders.DATE))
|
||||
builder.put(AtmosHeaders.DATE, date);
|
||||
request = ModifyRequest.replaceHeaders(request, Multimaps.forMap(builder.build()));
|
||||
String signature = calculateSignature(createStringToSign(request));
|
||||
request = ModifyRequest.replaceHeader(request, AtmosStorageHeaders.SIGNATURE, signature);
|
||||
request = ModifyRequest.replaceHeader(request, AtmosHeaders.SIGNATURE, signature);
|
||||
utils.logRequest(signatureLog, request, "<<");
|
||||
return request;
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ public class SignRequest implements HttpRequestFilter {
|
|||
// TreeSet == Sort the headers alphabetically.
|
||||
Set<String> headers = new TreeSet<String>(request.getHeaders().keySet());
|
||||
for (String header : headers) {
|
||||
if (header.startsWith("x-emc-") && !header.equals(AtmosStorageHeaders.SIGNATURE)) {
|
||||
if (header.startsWith("x-emc-") && !header.equals(AtmosHeaders.SIGNATURE)) {
|
||||
// Convert all header names to lowercase.
|
||||
toSign.append(header.toLowerCase()).append(":");
|
||||
// For headers with values that span multiple lines, convert them into one line by
|
||||
|
@ -188,4 +188,4 @@ public class SignRequest implements HttpRequestFilter {
|
|||
toSign.append(request.getEndpoint().getRawPath().toLowerCase()).append("\n");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,14 +17,14 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
|
||||
|
@ -44,4 +44,4 @@ public class AtmosObjectName implements Function<Object, String> {
|
|||
: object.getSystemMetadata().getObjectName(), "objectName");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -25,11 +25,11 @@ import javax.inject.Inject;
|
|||
import javax.inject.Provider;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.internal.BoundedLinkedHashSet;
|
||||
import org.jclouds.atmosonline.saas.reference.AtmosStorageHeaders;
|
||||
import org.jclouds.atmosonline.saas.xml.ListDirectoryResponseHandler;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
|
||||
import org.jclouds.atmos.reference.AtmosHeaders;
|
||||
import org.jclouds.atmos.xml.ListDirectoryResponseHandler;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.http.functions.ParseSax;
|
||||
import org.jclouds.http.functions.ParseSax.Factory;
|
||||
|
@ -58,7 +58,7 @@ public class ParseDirectoryListFromContentAndHeaders implements Function<HttpRes
|
|||
*/
|
||||
public BoundedSet<DirectoryEntry> apply(HttpResponse from) {
|
||||
checkNotNull(from, "http response");
|
||||
String token = from.getFirstHeaderOrNull(AtmosStorageHeaders.TOKEN);
|
||||
String token = from.getFirstHeaderOrNull(AtmosHeaders.TOKEN);
|
||||
return new BoundedLinkedHashSet<DirectoryEntry>(factory.create(listHandlerProvider.get()).parse(
|
||||
from.getPayload().getInput()), token);
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static org.jclouds.http.HttpUtils.attemptToParseSizeAndRangeFromHeaders;
|
||||
|
@ -25,7 +25,7 @@ import static org.jclouds.http.HttpUtils.attemptToParseSizeAndRangeFromHeaders;
|
|||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.blobstore.functions.ParseSystemAndUserMetadataFromHeaders;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
|
||||
|
@ -69,4 +69,4 @@ public class ParseObjectFromHeadersAndHttpContent implements Function<HttpRespon
|
|||
object.getContentMetadata().setContentLength(attemptToParseSizeAndRangeFromHeaders(from));
|
||||
return object;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -26,9 +26,9 @@ import java.util.Map;
|
|||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmosonline.saas.reference.AtmosStorageHeaders;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.reference.AtmosHeaders;
|
||||
import org.jclouds.crypto.CryptoStreams;
|
||||
import org.jclouds.date.DateService;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
|
@ -50,7 +50,7 @@ public class ParseSystemMetadataFromHeaders implements Function<HttpResponse, Sy
|
|||
|
||||
public SystemMetadata apply(HttpResponse from) {
|
||||
checkNotNull(from, "http response");
|
||||
String meta = checkNotNull(from.getFirstHeaderOrNull(AtmosStorageHeaders.META), AtmosStorageHeaders.META);
|
||||
String meta = checkNotNull(from.getFirstHeaderOrNull(AtmosHeaders.META), AtmosHeaders.META);
|
||||
Map<String, String> metaMap = Maps.newHashMap();
|
||||
String[] metas = meta.split(", ");
|
||||
for (String entry : metas) {
|
||||
|
@ -68,4 +68,4 @@ public class ParseSystemMetadataFromHeaders implements Function<HttpResponse, Sy
|
|||
"policyname"), Long.parseLong(checkNotNull(metaMap.get("size"), "size")),
|
||||
FileType.fromValue(checkNotNull(metaMap.get("type"), "type")), checkNotNull(metaMap.get("uid"), "uid"));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
|
||||
|
@ -26,8 +26,8 @@ import java.util.Set;
|
|||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmosonline.saas.reference.AtmosStorageHeaders;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.jclouds.atmos.reference.AtmosHeaders;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
|
@ -58,17 +58,17 @@ public class ParseUserMetadataFromHeaders implements Function<HttpResponse, User
|
|||
checkNotNull(from, "http response");
|
||||
|
||||
Map<String, String> meta = Maps.filterKeys(
|
||||
getMetaMap(checkNotNull(from.getFirstHeaderOrNull(AtmosStorageHeaders.META), AtmosStorageHeaders.META)),
|
||||
getMetaMap(checkNotNull(from.getFirstHeaderOrNull(AtmosHeaders.META), AtmosHeaders.META)),
|
||||
filter);
|
||||
|
||||
Map<String, String> listableMeta = (from.getFirstHeaderOrNull(AtmosStorageHeaders.LISTABLE_META) != null) ? getMetaMap(from
|
||||
.getFirstHeaderOrNull(AtmosStorageHeaders.LISTABLE_META)) : ImmutableMap.<String, String> of();
|
||||
Map<String, String> listableMeta = (from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_META) != null) ? getMetaMap(from
|
||||
.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_META)) : ImmutableMap.<String, String> of();
|
||||
|
||||
Iterable<String> tags = (from.getFirstHeaderOrNull(AtmosStorageHeaders.TAGS) != null) ? Splitter.on(", ").split(
|
||||
from.getFirstHeaderOrNull(AtmosStorageHeaders.TAGS)) : ImmutableSet.<String> of();
|
||||
Iterable<String> tags = (from.getFirstHeaderOrNull(AtmosHeaders.TAGS) != null) ? Splitter.on(", ").split(
|
||||
from.getFirstHeaderOrNull(AtmosHeaders.TAGS)) : ImmutableSet.<String> of();
|
||||
|
||||
Iterable<String> listableTags = (from.getFirstHeaderOrNull(AtmosStorageHeaders.LISTABLE_TAGS) != null) ? Splitter
|
||||
.on(", ").split(from.getFirstHeaderOrNull(AtmosStorageHeaders.LISTABLE_TAGS)) : ImmutableSet.<String> of();
|
||||
Iterable<String> listableTags = (from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_TAGS) != null) ? Splitter
|
||||
.on(", ").split(from.getFirstHeaderOrNull(AtmosHeaders.LISTABLE_TAGS)) : ImmutableSet.<String> of();
|
||||
|
||||
return new UserMetadata(meta, listableMeta, tags, listableTags);
|
||||
}
|
||||
|
@ -82,4 +82,4 @@ public class ParseUserMetadataFromHeaders implements Function<HttpResponse, User
|
|||
}
|
||||
return metaMap.build();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static org.jclouds.util.Throwables2.propagateOrNull;
|
||||
|
@ -60,4 +60,4 @@ public class ReturnEndpointIfAlreadyExists implements Function<Exception, URI>,
|
|||
return this;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,14 +17,14 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.handlers;
|
||||
package org.jclouds.atmos.handlers;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.inject.Named;
|
||||
|
||||
import org.jclouds.Constants;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosStorageError;
|
||||
import org.jclouds.atmosonline.saas.util.AtmosStorageUtils;
|
||||
import org.jclouds.atmos.domain.AtmosError;
|
||||
import org.jclouds.atmos.util.AtmosUtils;
|
||||
import org.jclouds.http.HttpCommand;
|
||||
import org.jclouds.http.HttpException;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
|
@ -40,13 +40,13 @@ import com.google.inject.Inject;
|
|||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class AtmosStorageClientErrorRetryHandler implements HttpRetryHandler {
|
||||
private final AtmosStorageUtils utils;
|
||||
public class AtmosClientErrorRetryHandler implements HttpRetryHandler {
|
||||
private final AtmosUtils utils;
|
||||
private final BackoffLimitedRetryHandler backoffHandler;
|
||||
|
||||
@Inject
|
||||
public AtmosStorageClientErrorRetryHandler(BackoffLimitedRetryHandler backoffHandler,
|
||||
AtmosStorageUtils utils) {
|
||||
public AtmosClientErrorRetryHandler(BackoffLimitedRetryHandler backoffHandler,
|
||||
AtmosUtils utils) {
|
||||
this.backoffHandler = backoffHandler;
|
||||
this.utils = utils;
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ public class AtmosStorageClientErrorRetryHandler implements HttpRetryHandler {
|
|||
// Content can be null in the case of HEAD requests
|
||||
if (content != null) {
|
||||
try {
|
||||
AtmosStorageError error = utils.parseAtmosStorageErrorFromContent(command, response,
|
||||
AtmosError error = utils.parseAtmosErrorFromContent(command, response,
|
||||
new String(content));
|
||||
if (error.getCode() == 1016) {
|
||||
return backoffHandler.shouldRetryRequest(command, response);
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.handlers;
|
||||
package org.jclouds.atmos.handlers;
|
||||
|
||||
import static org.jclouds.http.HttpUtils.releasePayload;
|
||||
|
||||
|
@ -30,9 +30,9 @@ import javax.annotation.Resource;
|
|||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageResponseException;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosStorageError;
|
||||
import org.jclouds.atmosonline.saas.util.AtmosStorageUtils;
|
||||
import org.jclouds.atmos.AtmosResponseException;
|
||||
import org.jclouds.atmos.domain.AtmosError;
|
||||
import org.jclouds.atmos.util.AtmosUtils;
|
||||
import org.jclouds.blobstore.ContainerNotFoundException;
|
||||
import org.jclouds.blobstore.KeyAlreadyExistsException;
|
||||
import org.jclouds.blobstore.KeyNotFoundException;
|
||||
|
@ -47,19 +47,19 @@ import org.jclouds.util.Strings2;
|
|||
/**
|
||||
* This will parse and set an appropriate exception on the command object.
|
||||
*
|
||||
* @see AtmosStorageError
|
||||
* @see AtmosError
|
||||
* @author Adrian Cole
|
||||
*
|
||||
*/
|
||||
@Singleton
|
||||
public class ParseAtmosStorageErrorFromXmlContent implements HttpErrorHandler {
|
||||
public class ParseAtmosErrorFromXmlContent implements HttpErrorHandler {
|
||||
@Resource
|
||||
protected Logger logger = Logger.NULL;
|
||||
|
||||
private final AtmosStorageUtils utils;
|
||||
private final AtmosUtils utils;
|
||||
|
||||
@Inject
|
||||
public ParseAtmosStorageErrorFromXmlContent(AtmosStorageUtils utils) {
|
||||
public ParseAtmosErrorFromXmlContent(AtmosUtils utils) {
|
||||
this.utils = utils;
|
||||
}
|
||||
|
||||
|
@ -69,12 +69,12 @@ public class ParseAtmosStorageErrorFromXmlContent implements HttpErrorHandler {
|
|||
public void handleError(HttpCommand command, HttpResponse response) {
|
||||
Exception exception = new HttpResponseException(command, response);
|
||||
try {
|
||||
AtmosStorageError error = null;
|
||||
AtmosError error = null;
|
||||
if (response.getPayload() != null) {
|
||||
try {
|
||||
String content = Strings2.toStringAndClose(response.getPayload().getInput());
|
||||
if (content != null && content.indexOf('<') >= 0) {
|
||||
error = utils.parseAtmosStorageErrorFromContent(command, response, Strings2.toInputStream(content));
|
||||
error = utils.parseAtmosErrorFromContent(command, response, Strings2.toInputStream(content));
|
||||
} else {
|
||||
exception = content != null ? new HttpResponseException(command, response, content) : exception;
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ public class ParseAtmosStorageErrorFromXmlContent implements HttpErrorHandler {
|
|||
}
|
||||
break;
|
||||
default:
|
||||
exception = error != null ? new AtmosStorageResponseException(command, response, error)
|
||||
exception = error != null ? new AtmosResponseException(command, response, error)
|
||||
: new HttpResponseException(command, response);
|
||||
|
||||
}
|
||||
|
@ -118,4 +118,4 @@ public class ParseAtmosStorageErrorFromXmlContent implements HttpErrorHandler {
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.options;
|
||||
package org.jclouds.atmos.options;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static com.google.common.base.Preconditions.checkState;
|
|
@ -17,16 +17,16 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.reference;
|
||||
package org.jclouds.atmos.reference;
|
||||
|
||||
/**
|
||||
* Query parameters common to AtmosStorage apis.
|
||||
* Query parameters common to Atmos apis.
|
||||
*
|
||||
* @see <a href="https://community.emc.com/community/labs/atmos_online" />
|
||||
* @author Adrian Cole
|
||||
*
|
||||
*/
|
||||
public interface AtmosStorageHeaders {
|
||||
public interface AtmosHeaders {
|
||||
|
||||
public static final String SIGNATURE = "x-emc-signature";
|
||||
public static final String LISTABLE_META = "x-emc-listable-meta";
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.util;
|
||||
package org.jclouds.atmos.util;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
||||
|
@ -25,11 +25,11 @@ import java.io.InputStream;
|
|||
import javax.inject.Inject;
|
||||
import javax.inject.Provider;
|
||||
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageClient;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosStorageError;
|
||||
import org.jclouds.atmosonline.saas.filters.SignRequest;
|
||||
import org.jclouds.atmosonline.saas.xml.ErrorHandler;
|
||||
import org.jclouds.atmos.AtmosClient;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmos.domain.AtmosError;
|
||||
import org.jclouds.atmos.filters.SignRequest;
|
||||
import org.jclouds.atmos.xml.ErrorHandler;
|
||||
import org.jclouds.blobstore.domain.Blob;
|
||||
import org.jclouds.crypto.Crypto;
|
||||
import org.jclouds.http.HttpCommand;
|
||||
|
@ -46,7 +46,7 @@ import com.google.common.base.Supplier;
|
|||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class AtmosStorageUtils {
|
||||
public class AtmosUtils {
|
||||
|
||||
@Inject
|
||||
SignRequest signer;
|
||||
|
@ -57,9 +57,9 @@ public class AtmosStorageUtils {
|
|||
@Inject
|
||||
Provider<ErrorHandler> errorHandlerProvider;
|
||||
|
||||
public AtmosStorageError parseAtmosStorageErrorFromContent(HttpCommand command, HttpResponse response,
|
||||
public AtmosError parseAtmosErrorFromContent(HttpCommand command, HttpResponse response,
|
||||
InputStream content) throws HttpException {
|
||||
AtmosStorageError error = (AtmosStorageError) factory.create(errorHandlerProvider.get()).parse(content);
|
||||
AtmosError error = (AtmosError) factory.create(errorHandlerProvider.get()).parse(content);
|
||||
if (error.getCode() == 1032) {
|
||||
error.setStringSigned(signer.createStringToSign(command.getCurrentRequest()));
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ public class AtmosStorageUtils {
|
|||
|
||||
}
|
||||
|
||||
public static String putBlob(final AtmosStorageClient sync, Crypto crypto, BlobToObject blob2Object,
|
||||
public static String putBlob(final AtmosClient sync, Crypto crypto, BlobToObject blob2Object,
|
||||
String container, Blob blob) {
|
||||
final String path = container + "/" + blob.getMetadata().getName();
|
||||
deleteAndEnsureGone(sync, path);
|
||||
|
@ -75,7 +75,7 @@ public class AtmosStorageUtils {
|
|||
return path;
|
||||
}
|
||||
|
||||
public static void deleteAndEnsureGone(final AtmosStorageClient sync, final String path) {
|
||||
public static void deleteAndEnsureGone(final AtmosClient sync, final String path) {
|
||||
try {
|
||||
if (!Assertions.eventuallyTrue(new Supplier<Boolean>() {
|
||||
public Boolean get() {
|
||||
|
@ -90,9 +90,9 @@ public class AtmosStorageUtils {
|
|||
}
|
||||
}
|
||||
|
||||
public AtmosStorageError parseAtmosStorageErrorFromContent(HttpCommand command, HttpResponse response, String content)
|
||||
public AtmosError parseAtmosErrorFromContent(HttpCommand command, HttpResponse response, String content)
|
||||
throws HttpException {
|
||||
return parseAtmosStorageErrorFromContent(command, response, new ByteArrayInputStream(content.getBytes()));
|
||||
return parseAtmosErrorFromContent(command, response, new ByteArrayInputStream(content.getBytes()));
|
||||
}
|
||||
|
||||
public static String adjustContainerIfDirOptionPresent(String container,
|
||||
|
@ -107,4 +107,4 @@ public class AtmosStorageUtils {
|
|||
}
|
||||
return container;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,9 +17,9 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.xml;
|
||||
package org.jclouds.atmos.xml;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosStorageError;
|
||||
import org.jclouds.atmos.domain.AtmosError;
|
||||
import org.jclouds.http.functions.ParseSax;
|
||||
|
||||
/**
|
||||
|
@ -27,14 +27,14 @@ import org.jclouds.http.functions.ParseSax;
|
|||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class ErrorHandler extends ParseSax.HandlerWithResult<AtmosStorageError> {
|
||||
public class ErrorHandler extends ParseSax.HandlerWithResult<AtmosError> {
|
||||
|
||||
private StringBuilder currentText = new StringBuilder();
|
||||
private int code;
|
||||
private String message;
|
||||
|
||||
public AtmosStorageError getResult() {
|
||||
return new AtmosStorageError(code, message);
|
||||
public AtmosError getResult() {
|
||||
return new AtmosError(code, message);
|
||||
}
|
||||
|
||||
public void endElement(String uri, String name, String qName) {
|
|
@ -17,12 +17,12 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.xml;
|
||||
package org.jclouds.atmos.xml;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.http.functions.ParseSax;
|
||||
|
||||
import com.google.common.collect.Sets;
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas;
|
||||
package org.jclouds.atmos;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
|
@ -28,15 +28,15 @@ import java.util.Properties;
|
|||
|
||||
import javax.ws.rs.core.HttpHeaders;
|
||||
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmosonline.saas.config.AtmosStorageRestClientModule;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.filters.SignRequest;
|
||||
import org.jclouds.atmosonline.saas.functions.ParseDirectoryListFromContentAndHeaders;
|
||||
import org.jclouds.atmosonline.saas.functions.ParseObjectFromHeadersAndHttpContent;
|
||||
import org.jclouds.atmosonline.saas.functions.ParseSystemMetadataFromHeaders;
|
||||
import org.jclouds.atmosonline.saas.functions.ReturnEndpointIfAlreadyExists;
|
||||
import org.jclouds.atmosonline.saas.options.ListOptions;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmos.config.AtmosRestClientModule;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.filters.SignRequest;
|
||||
import org.jclouds.atmos.functions.ParseDirectoryListFromContentAndHeaders;
|
||||
import org.jclouds.atmos.functions.ParseObjectFromHeadersAndHttpContent;
|
||||
import org.jclouds.atmos.functions.ParseSystemMetadataFromHeaders;
|
||||
import org.jclouds.atmos.functions.ReturnEndpointIfAlreadyExists;
|
||||
import org.jclouds.atmos.options.ListOptions;
|
||||
import org.jclouds.blobstore.binders.BindBlobToMultipartFormTest;
|
||||
import org.jclouds.blobstore.functions.ThrowContainerNotFoundOn404;
|
||||
import org.jclouds.blobstore.functions.ThrowKeyNotFoundOn404;
|
||||
|
@ -61,18 +61,18 @@ import com.google.inject.Module;
|
|||
import com.google.inject.TypeLiteral;
|
||||
|
||||
/**
|
||||
* Tests behavior of {@code AtmosStorageAsyncClient}
|
||||
* Tests behavior of {@code AtmosAsyncClient}
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire
|
||||
@Test(groups = "unit", testName = "AtmosStorageAsyncClientTest")
|
||||
public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyncClient> {
|
||||
@Test(groups = "unit", testName = "AtmosAsyncClientTest")
|
||||
public class AtmosAsyncClientTest extends RestClientTest<AtmosAsyncClient> {
|
||||
|
||||
private BlobToObject blobToObject;
|
||||
|
||||
public void testListDirectories() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("listDirectories", Array
|
||||
Method method = AtmosAsyncClient.class.getMethod("listDirectories", Array
|
||||
.newInstance(ListOptions.class, 0).getClass());
|
||||
HttpRequest request = processor.createRequest(method);
|
||||
|
||||
|
@ -88,7 +88,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testListDirectory() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("listDirectory", String.class, Array.newInstance(
|
||||
Method method = AtmosAsyncClient.class.getMethod("listDirectory", String.class, Array.newInstance(
|
||||
ListOptions.class, 0).getClass());
|
||||
HttpRequest request = processor.createRequest(method, "directory");
|
||||
|
||||
|
@ -104,7 +104,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testListDirectoriesOptions() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("listDirectories", Array
|
||||
Method method = AtmosAsyncClient.class.getMethod("listDirectories", Array
|
||||
.newInstance(ListOptions.class, 0).getClass());
|
||||
HttpRequest request = processor.createRequest(method, new ListOptions().limit(1).token("asda"));
|
||||
|
||||
|
@ -120,7 +120,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testListDirectoryOptions() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("listDirectory", String.class, Array.newInstance(
|
||||
Method method = AtmosAsyncClient.class.getMethod("listDirectory", String.class, Array.newInstance(
|
||||
ListOptions.class, 0).getClass());
|
||||
HttpRequest request = processor.createRequest(method, "directory", new ListOptions().limit(1).token("asda"));
|
||||
|
||||
|
@ -136,7 +136,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testCreateDirectory() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("createDirectory", String.class);
|
||||
Method method = AtmosAsyncClient.class.getMethod("createDirectory", String.class);
|
||||
HttpRequest request = processor.createRequest(method, "dir");
|
||||
|
||||
assertRequestLineEquals(request, "POST https://accesspoint.atmosonline.com/rest/namespace/dir/ HTTP/1.1");
|
||||
|
@ -151,7 +151,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testCreateFile() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("createFile", String.class, AtmosObject.class);
|
||||
Method method = AtmosAsyncClient.class.getMethod("createFile", String.class, AtmosObject.class);
|
||||
HttpRequest request = processor.createRequest(method, "dir", blobToObject
|
||||
.apply(BindBlobToMultipartFormTest.TEST_BLOB));
|
||||
|
||||
|
@ -167,7 +167,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testUpdateFile() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("updateFile", String.class, AtmosObject.class);
|
||||
Method method = AtmosAsyncClient.class.getMethod("updateFile", String.class, AtmosObject.class);
|
||||
HttpRequest request = processor.createRequest(method, "dir", blobToObject
|
||||
.apply(BindBlobToMultipartFormTest.TEST_BLOB));
|
||||
|
||||
|
@ -183,7 +183,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testReadFile() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("readFile", String.class, GetOptions[].class);
|
||||
Method method = AtmosAsyncClient.class.getMethod("readFile", String.class, GetOptions[].class);
|
||||
HttpRequest request = processor.createRequest(method, "dir/file");
|
||||
|
||||
assertRequestLineEquals(request, "GET https://accesspoint.atmosonline.com/rest/namespace/dir/file HTTP/1.1");
|
||||
|
@ -198,7 +198,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testGetSystemMetadata() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("getSystemMetadata", String.class);
|
||||
Method method = AtmosAsyncClient.class.getMethod("getSystemMetadata", String.class);
|
||||
HttpRequest request = processor.createRequest(method, "dir/file");
|
||||
|
||||
assertRequestLineEquals(request, "HEAD https://accesspoint.atmosonline.com/rest/namespace/dir/file HTTP/1.1");
|
||||
|
@ -213,7 +213,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testDeletePath() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("deletePath", String.class);
|
||||
Method method = AtmosAsyncClient.class.getMethod("deletePath", String.class);
|
||||
HttpRequest request = processor.createRequest(method, "dir/file");
|
||||
|
||||
assertRequestLineEquals(request, "DELETE https://accesspoint.atmosonline.com/rest/namespace/dir/file HTTP/1.1");
|
||||
|
@ -228,7 +228,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
public void testNewObject() throws SecurityException, NoSuchMethodException, IOException {
|
||||
Method method = AtmosStorageAsyncClient.class.getMethod("newObject");
|
||||
Method method = AtmosAsyncClient.class.getMethod("newObject");
|
||||
assertEquals(method.getReturnType(), AtmosObject.class);
|
||||
}
|
||||
|
||||
|
@ -239,8 +239,8 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
}
|
||||
|
||||
@Override
|
||||
protected TypeLiteral<RestAnnotationProcessor<AtmosStorageAsyncClient>> createTypeLiteral() {
|
||||
return new TypeLiteral<RestAnnotationProcessor<AtmosStorageAsyncClient>>() {
|
||||
protected TypeLiteral<RestAnnotationProcessor<AtmosAsyncClient>> createTypeLiteral() {
|
||||
return new TypeLiteral<RestAnnotationProcessor<AtmosAsyncClient>>() {
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -253,12 +253,12 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
|
||||
@Override
|
||||
protected Module createModule() {
|
||||
return new TestAtmosStorageRestClientModule();
|
||||
return new TestAtmosRestClientModule();
|
||||
}
|
||||
|
||||
@RequiresHttp
|
||||
@ConfiguresRestClient
|
||||
private static final class TestAtmosStorageRestClientModule extends AtmosStorageRestClientModule {
|
||||
private static final class TestAtmosRestClientModule extends AtmosRestClientModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
super.configure();
|
||||
|
@ -272,7 +272,7 @@ public class AtmosStorageAsyncClientTest extends RestClientTest<AtmosStorageAsyn
|
|||
|
||||
@Override
|
||||
public RestContextSpec<?, ?> createContextSpec() {
|
||||
return new RestContextFactory().createContextSpec("atmosonline", "identity", "credential", new Properties());
|
||||
return new RestContextFactory().createContextSpec("atmos", "identity", "credential", new Properties());
|
||||
}
|
||||
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas;
|
||||
package org.jclouds.atmos;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
|
@ -28,12 +28,12 @@ import java.security.SecureRandom;
|
|||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmosonline.saas.options.ListOptions;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.options.ListOptions;
|
||||
import org.jclouds.blobstore.KeyAlreadyExistsException;
|
||||
import org.jclouds.blobstore.KeyNotFoundException;
|
||||
import org.jclouds.blobstore.integration.internal.BaseBlobStoreIntegrationTest;
|
||||
|
@ -50,23 +50,23 @@ import com.google.common.collect.Iterables;
|
|||
import com.google.common.collect.Sets;
|
||||
|
||||
/**
|
||||
* Tests behavior of {@code AtmosStorageClient}
|
||||
* Tests behavior of {@code AtmosClient}
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live", sequential = true)
|
||||
public class AtmosStorageClientLiveTest extends BaseBlobStoreIntegrationTest {
|
||||
public class AtmosClientLiveTest extends BaseBlobStoreIntegrationTest {
|
||||
|
||||
public AtmosStorageClient getApi() {
|
||||
return (AtmosStorageClient) context.getProviderSpecificContext().getApi();
|
||||
public AtmosClient getApi() {
|
||||
return (AtmosClient) context.getProviderSpecificContext().getApi();
|
||||
}
|
||||
|
||||
private static final class HeadMatches implements Runnable {
|
||||
private final AtmosStorageClient connection;
|
||||
private final AtmosClient connection;
|
||||
private final String name;
|
||||
private final String metadataValue;
|
||||
|
||||
private HeadMatches(AtmosStorageClient connection, String name, String metadataValue) {
|
||||
private HeadMatches(AtmosClient connection, String name, String metadataValue) {
|
||||
this.connection = connection;
|
||||
this.name = name;
|
||||
this.metadataValue = metadataValue;
|
||||
|
@ -82,12 +82,12 @@ public class AtmosStorageClientLiveTest extends BaseBlobStoreIntegrationTest {
|
|||
}
|
||||
|
||||
private static final class ObjectMatches implements Runnable {
|
||||
private final AtmosStorageClient connection;
|
||||
private final AtmosClient connection;
|
||||
private final String name;
|
||||
private final String metadataValue;
|
||||
private final String compare;
|
||||
|
||||
private ObjectMatches(AtmosStorageClient connection, String name, String metadataValue, String compare) {
|
||||
private ObjectMatches(AtmosClient connection, String name, String metadataValue, String compare) {
|
||||
this.connection = connection;
|
||||
this.name = name;
|
||||
this.metadataValue = metadataValue;
|
||||
|
@ -237,14 +237,14 @@ public class AtmosStorageClientLiveTest extends BaseBlobStoreIntegrationTest {
|
|||
assertEventually(new HeadMatches(getApi(), privateDirectory + "/" + name, metadataValue));
|
||||
}
|
||||
|
||||
private static void verifyHeadObject(AtmosStorageClient connection, String path, String metadataValue)
|
||||
private static void verifyHeadObject(AtmosClient connection, String path, String metadataValue)
|
||||
throws InterruptedException, ExecutionException, TimeoutException, IOException {
|
||||
AtmosObject getBlob = connection.headFile(path);
|
||||
assertEquals(Strings2.toStringAndClose(getBlob.getPayload().getInput()), "");
|
||||
verifyMetadata(metadataValue, getBlob);
|
||||
}
|
||||
|
||||
private static void verifyObject(AtmosStorageClient connection, String path, String compare, String metadataValue)
|
||||
private static void verifyObject(AtmosClient connection, String path, String compare, String metadataValue)
|
||||
throws InterruptedException, ExecutionException, TimeoutException, IOException {
|
||||
AtmosObject getBlob = connection.readFile(path);
|
||||
assertEquals(Strings2.toStringAndClose(getBlob.getPayload().getInput()), compare);
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas;
|
||||
package org.jclouds.atmos;
|
||||
|
||||
import org.jclouds.blobstore.util.BlobStoreUtils;
|
||||
import org.jclouds.rest.Providers;
|
||||
|
@ -36,15 +36,13 @@ public class ProvidersInPropertiesTest {
|
|||
@Test
|
||||
public void testSupportedProviders() {
|
||||
Iterable<String> providers = Providers.getSupportedProviders();
|
||||
assert Iterables.contains(providers, "atmosonline") : providers;
|
||||
assert Iterables.contains(providers, "synaptic") : providers;
|
||||
assert Iterables.contains(providers, "atmos") : providers;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSupportedBlobStoreProviders() {
|
||||
Iterable<String> providers = BlobStoreUtils.getSupportedProviders();
|
||||
assert Iterables.contains(providers, "atmosonline") : providers;
|
||||
assert Iterables.contains(providers, "synaptic") : providers;
|
||||
assert Iterables.contains(providers, "atmos") : providers;
|
||||
}
|
||||
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.binders;
|
||||
package org.jclouds.atmos.binders;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
|
@ -26,7 +26,7 @@ import java.net.URI;
|
|||
|
||||
import javax.ws.rs.HttpMethod;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.io.Payload;
|
||||
import org.jclouds.io.Payloads;
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.binders;
|
||||
package org.jclouds.atmos.binders;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
|
@ -26,7 +26,7 @@ import java.net.URI;
|
|||
|
||||
import javax.ws.rs.HttpMethod;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.testng.annotations.Test;
|
||||
|
|
@ -17,16 +17,16 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore;
|
||||
package org.jclouds.atmos.blobstore;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Properties;
|
||||
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageAsyncClient;
|
||||
import org.jclouds.atmosonline.saas.config.AtmosStorageRestClientModule;
|
||||
import org.jclouds.atmosonline.saas.filters.SignRequest;
|
||||
import org.jclouds.atmos.AtmosAsyncClient;
|
||||
import org.jclouds.atmos.config.AtmosRestClientModule;
|
||||
import org.jclouds.atmos.filters.SignRequest;
|
||||
import org.jclouds.blobstore.BlobRequestSigner;
|
||||
import org.jclouds.blobstore.domain.Blob;
|
||||
import org.jclouds.blobstore.domain.Blob.Factory;
|
||||
|
@ -52,7 +52,7 @@ import com.google.inject.TypeLiteral;
|
|||
*/
|
||||
// NOTE:without testName, this will not call @Before* and fail w/NPE during surefire
|
||||
@Test(groups = "unit", testName = "AtmosBlobRequestSignerTest")
|
||||
public class AtmosBlobRequestSignerTest extends RestClientTest<AtmosStorageAsyncClient> {
|
||||
public class AtmosBlobRequestSignerTest extends RestClientTest<AtmosAsyncClient> {
|
||||
|
||||
private BlobRequestSigner signer;
|
||||
private Factory blobFactory;
|
||||
|
@ -120,19 +120,19 @@ public class AtmosBlobRequestSignerTest extends RestClientTest<AtmosStorageAsync
|
|||
}
|
||||
|
||||
@Override
|
||||
protected TypeLiteral<RestAnnotationProcessor<AtmosStorageAsyncClient>> createTypeLiteral() {
|
||||
return new TypeLiteral<RestAnnotationProcessor<AtmosStorageAsyncClient>>() {
|
||||
protected TypeLiteral<RestAnnotationProcessor<AtmosAsyncClient>> createTypeLiteral() {
|
||||
return new TypeLiteral<RestAnnotationProcessor<AtmosAsyncClient>>() {
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Module createModule() {
|
||||
return new TestAtmosStorageRestClientModule();
|
||||
return new TestAtmosRestClientModule();
|
||||
}
|
||||
|
||||
@RequiresHttp
|
||||
@ConfiguresRestClient
|
||||
private static final class TestAtmosStorageRestClientModule extends AtmosStorageRestClientModule {
|
||||
private static final class TestAtmosRestClientModule extends AtmosRestClientModule {
|
||||
@Override
|
||||
protected void configure() {
|
||||
super.configure();
|
||||
|
@ -146,7 +146,7 @@ public class AtmosBlobRequestSignerTest extends RestClientTest<AtmosStorageAsync
|
|||
|
||||
@Override
|
||||
public RestContextSpec<?, ?> createContextSpec() {
|
||||
return new RestContextFactory().createContextSpec("atmosonline", "identity", "credential", new Properties());
|
||||
return new RestContextFactory().createContextSpec("atmos", "identity", "credential", new Properties());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,11 +17,11 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.config;
|
||||
package org.jclouds.atmos.blobstore.config;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import org.jclouds.atmosonline.saas.blobstore.strategy.FindMD5InUserMetadata;
|
||||
import org.jclouds.atmos.blobstore.strategy.FindMD5InUserMetadata;
|
||||
import org.jclouds.blobstore.BlobStoreContext;
|
||||
import org.jclouds.blobstore.internal.BlobStoreContextImpl;
|
||||
import org.jclouds.blobstore.strategy.ContainsValueInListStrategy;
|
||||
|
@ -41,7 +41,7 @@ import com.google.inject.Module;
|
|||
public class AtmosBlobStoreModuleTest {
|
||||
|
||||
Injector createInjector() {
|
||||
return new RestContextFactory().createContextBuilder("atmosonline", "uid", "key",
|
||||
return new RestContextFactory().createContextBuilder("atmos", "uid", "key",
|
||||
ImmutableSet.<Module> of(new MockModule(), new NullLoggingModule())).buildInjector();
|
||||
}
|
||||
|
||||
|
@ -57,4 +57,4 @@ public class AtmosBlobStoreModuleTest {
|
|||
assertEquals(valueList.getClass(), FindMD5InUserMetadata.class);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
|
@ -30,8 +30,8 @@ import com.google.common.base.Function;
|
|||
*/
|
||||
@Singleton
|
||||
public class ListOptionsToBlobStoreListOptions implements
|
||||
Function<org.jclouds.atmosonline.saas.options.ListOptions[], ListContainerOptions> {
|
||||
public ListContainerOptions apply(org.jclouds.atmosonline.saas.options.ListOptions[] optionsList) {
|
||||
Function<org.jclouds.atmos.options.ListOptions[], ListContainerOptions> {
|
||||
public ListContainerOptions apply(org.jclouds.atmos.options.ListOptions[] optionsList) {
|
||||
ListContainerOptions options = new ListContainerOptions();
|
||||
if (optionsList.length != 0) {
|
||||
if (optionsList[0].getToken() != null) {
|
||||
|
@ -46,4 +46,4 @@ public class ListOptionsToBlobStoreListOptions implements
|
|||
}
|
||||
return options;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
|
@ -17,14 +17,14 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.functions;
|
||||
package org.jclouds.atmos.blobstore.functions;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmosonline.saas.domain.internal.BoundedLinkedHashSet;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
|
||||
import org.jclouds.blobstore.domain.StorageMetadata;
|
||||
import org.jclouds.blobstore.domain.StorageType;
|
||||
|
||||
|
@ -53,4 +53,4 @@ public class ResourceMetadataListToDirectoryEntryList
|
|||
}), from.getNextMarker());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import org.jclouds.blobstore.integration.internal.BaseBlobSignerLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
@ -29,4 +29,4 @@ import org.testng.annotations.Test;
|
|||
@Test(groups = { "live" })
|
||||
public class AtmosBlobSignerLiveTest extends BaseBlobSignerLiveTest {
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
|
@ -32,7 +32,7 @@ import org.testng.annotations.Test;
|
|||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live")
|
||||
public class AtmosStorageContainerIntegrationLiveTest extends BaseContainerIntegrationTest {
|
||||
public class AtmosContainerIntegrationLiveTest extends BaseContainerIntegrationTest {
|
||||
|
||||
@Override
|
||||
public void testListContainerMaxResults() throws InterruptedException,
|
||||
|
@ -49,4 +49,4 @@ public class AtmosStorageContainerIntegrationLiveTest extends BaseContainerInteg
|
|||
// atmos doesn't support MD5
|
||||
assertEquals(metadata.getContentMetadata().getContentMD5(), null);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import org.jclouds.blobstore.integration.internal.BaseContainerLiveTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
@ -26,6 +26,6 @@ import org.testng.annotations.Test;
|
|||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = { "live" })
|
||||
public class AtmosStorageContainerLiveTest extends BaseContainerLiveTest {
|
||||
public class AtmosContainerLiveTest extends BaseContainerLiveTest {
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
@ -29,7 +29,7 @@ import org.testng.annotations.Test;
|
|||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live")
|
||||
public class AtmosStorageInputStreamMapIntegrationLiveTest extends BaseInputStreamMapIntegrationTest {
|
||||
public class AtmosInputStreamMapIntegrationLiveTest extends BaseInputStreamMapIntegrationTest {
|
||||
|
||||
@Override
|
||||
@Test(enabled = false)
|
||||
|
@ -83,4 +83,4 @@ public class AtmosStorageInputStreamMapIntegrationLiveTest extends BaseInputStre
|
|||
// TODO not reliable NPE
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
|
@ -35,7 +35,7 @@ import org.testng.annotations.Test;
|
|||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = { "integration", "live" })
|
||||
public class AtmosStorageIntegrationLiveTest extends BaseBlobIntegrationTest {
|
||||
public class AtmosIntegrationLiveTest extends BaseBlobIntegrationTest {
|
||||
|
||||
@DataProvider(name = "delete")
|
||||
// no unicode support
|
||||
|
@ -125,4 +125,4 @@ public class AtmosStorageIntegrationLiveTest extends BaseBlobIntegrationTest {
|
|||
// TODO
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
|
@ -29,9 +29,9 @@ import org.testng.annotations.Test;
|
|||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = { "live" })
|
||||
public class AtmosStorageLiveTest extends BaseBlobLiveTest {
|
||||
public class AtmosLiveTest extends BaseBlobLiveTest {
|
||||
protected void checkMD5(String container, String name, byte[] md5) {
|
||||
// atmos does not support content-md5 yet
|
||||
assertEquals(context.getBlobStore().blobMetadata(container, name).getContentMetadata().getContentMD5(), null);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
@ -30,7 +30,7 @@ import org.testng.annotations.Test;
|
|||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live")
|
||||
public class AtmosStorageMapIntegrationLiveTest extends BaseBlobMapIntegrationTest {
|
||||
public class AtmosMapIntegrationLiveTest extends BaseBlobMapIntegrationTest {
|
||||
|
||||
@Override
|
||||
// NO support for Content-MD5, so contains cannot work
|
||||
|
@ -38,4 +38,4 @@ public class AtmosStorageMapIntegrationLiveTest extends BaseBlobMapIntegrationTe
|
|||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import org.jclouds.blobstore.integration.internal.BaseServiceIntegrationTest;
|
||||
import org.testng.annotations.Test;
|
||||
|
@ -26,6 +26,6 @@ import org.testng.annotations.Test;
|
|||
* @author Adrian Cole
|
||||
*/
|
||||
@Test(groups = "live")
|
||||
public class AtmosStorageServiceIntegrationLiveTest extends BaseServiceIntegrationTest {
|
||||
public class AtmosServiceIntegrationLiveTest extends BaseServiceIntegrationTest {
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.blobstore.integration;
|
||||
package org.jclouds.atmos.blobstore.integration;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
|
@ -33,8 +33,8 @@ import com.google.inject.Module;
|
|||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class AtmosStorageTestInitializer extends TransientBlobStoreTestInitializer {
|
||||
public AtmosStorageTestInitializer() {
|
||||
public class AtmosTestInitializer extends TransientBlobStoreTestInitializer {
|
||||
public AtmosTestInitializer() {
|
||||
provider = "synaptic";
|
||||
}
|
||||
|
||||
|
@ -45,4 +45,4 @@ public class AtmosStorageTestInitializer extends TransientBlobStoreTestInitializ
|
|||
new Log4JLoggingModule()), setupProperties(endpoint, apiversion, identity, credential));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.filters;
|
||||
package org.jclouds.atmos.filters;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
|
@ -30,8 +30,8 @@ import java.util.Properties;
|
|||
import javax.ws.rs.core.HttpHeaders;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
|
||||
import org.jclouds.atmosonline.saas.config.AtmosStorageRestClientModule;
|
||||
import org.jclouds.atmosonline.saas.reference.AtmosStorageHeaders;
|
||||
import org.jclouds.atmos.config.AtmosRestClientModule;
|
||||
import org.jclouds.atmos.reference.AtmosHeaders;
|
||||
import org.jclouds.date.TimeStamp;
|
||||
import org.jclouds.http.HttpRequest;
|
||||
import org.jclouds.http.RequiresHttp;
|
||||
|
@ -85,26 +85,26 @@ public class SignRequestTest {
|
|||
void testFilter() throws IOException, NoSuchAlgorithmException, InvalidKeyException {
|
||||
HttpRequest request = newRequest(inputHeaders().build());
|
||||
request = filter.filter(request);
|
||||
assertEquals(request.getFirstHeaderOrNull(AtmosStorageHeaders.SIGNATURE), EXPECTED_SIGNATURE);
|
||||
assertEquals(request.getFirstHeaderOrNull(AtmosHeaders.SIGNATURE), EXPECTED_SIGNATURE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testFilterReplacesOldValues() throws IOException, NoSuchAlgorithmException, InvalidKeyException {
|
||||
HttpRequest request = newRequest(inputHeaders().put(AtmosStorageHeaders.SIGNATURE, "foo")
|
||||
.put(HttpHeaders.DATE, "foo").put(AtmosStorageHeaders.DATE, "foo").put(AtmosStorageHeaders.UID, "foo")
|
||||
HttpRequest request = newRequest(inputHeaders().put(AtmosHeaders.SIGNATURE, "foo")
|
||||
.put(HttpHeaders.DATE, "foo").put(AtmosHeaders.DATE, "foo").put(AtmosHeaders.UID, "foo")
|
||||
.build());
|
||||
request = filter.filter(request);
|
||||
assertEquals(request.getFirstHeaderOrNull(AtmosStorageHeaders.SIGNATURE), EXPECTED_SIGNATURE);
|
||||
assertEquals(request.getFirstHeaderOrNull(AtmosHeaders.SIGNATURE), EXPECTED_SIGNATURE);
|
||||
}
|
||||
|
||||
@BeforeClass
|
||||
protected void createFilter() {
|
||||
Injector injector = new RestContextFactory()
|
||||
.createContextBuilder(
|
||||
"atmosonline",
|
||||
"atmos",
|
||||
UID,
|
||||
KEY,
|
||||
ImmutableSet.<Module> of(new MockModule(), new TestAtmosStorageRestClientModule(),
|
||||
ImmutableSet.<Module> of(new MockModule(), new TestAtmosRestClientModule(),
|
||||
new NullLoggingModule()), new Properties()).buildInjector();
|
||||
|
||||
filter = injector.getInstance(SignRequest.class);
|
||||
|
@ -113,7 +113,7 @@ public class SignRequestTest {
|
|||
|
||||
@RequiresHttp
|
||||
@ConfiguresRestClient
|
||||
private static final class TestAtmosStorageRestClientModule extends AtmosStorageRestClientModule {
|
||||
private static final class TestAtmosRestClientModule extends AtmosRestClientModule {
|
||||
|
||||
@Override
|
||||
protected void configure() {
|
||||
|
@ -137,19 +137,19 @@ public class SignRequestTest {
|
|||
protected Builder<String, String> preconstructedHeaders() {
|
||||
Builder<String, String> builder = inputHeaders();
|
||||
builder.put(HttpHeaders.DATE, DEFAULT_DATE);
|
||||
builder.put(AtmosStorageHeaders.UID, UID);
|
||||
builder.put(AtmosHeaders.UID, UID);
|
||||
return builder;
|
||||
}
|
||||
|
||||
protected Builder<String, String> inputHeaders() {
|
||||
Builder<String, String> builder = ImmutableMultimap.builder();
|
||||
builder.put(AtmosStorageHeaders.LISTABLE_META, "part4/part7/part8=quick");
|
||||
builder.put(AtmosStorageHeaders.META, "part1=buy");
|
||||
builder.put(AtmosHeaders.LISTABLE_META, "part4/part7/part8=quick");
|
||||
builder.put(AtmosHeaders.META, "part1=buy");
|
||||
builder.put(HttpHeaders.ACCEPT, "*/*");
|
||||
builder.put(AtmosStorageHeaders.USER_ACL, "john=FULL_CONTROL,mary=WRITE");
|
||||
builder.put(AtmosStorageHeaders.GROUP_ACL, "other=NONE");
|
||||
builder.put(AtmosStorageHeaders.DATE, DEFAULT_DATE);
|
||||
builder.put(AtmosHeaders.USER_ACL, "john=FULL_CONTROL,mary=WRITE");
|
||||
builder.put(AtmosHeaders.GROUP_ACL, "other=NONE");
|
||||
builder.put(AtmosHeaders.DATE, DEFAULT_DATE);
|
||||
builder.put(HttpHeaders.HOST, "10.5.115.118");
|
||||
return builder;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -17,16 +17,16 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject.Factory;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.AtmosObject.Factory;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.google.inject.Guice;
|
|
@ -17,17 +17,17 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmosonline.saas.domain.internal.BoundedLinkedHashSet;
|
||||
import org.jclouds.atmosonline.saas.reference.AtmosStorageHeaders;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.atmos.domain.internal.BoundedLinkedHashSet;
|
||||
import org.jclouds.atmos.reference.AtmosHeaders;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.http.functions.BaseHandlerTest;
|
||||
import org.jclouds.io.Payloads;
|
||||
|
@ -52,7 +52,7 @@ public class ParseDirectoryListFromContentAndHeadersTest extends BaseHandlerTest
|
|||
|
||||
public void testWithToken() {
|
||||
HttpResponse response = new HttpResponse(200, "ok", Payloads.newPayload(getClass().getResourceAsStream(
|
||||
"/list_basic.xml")), ImmutableMultimap.of(AtmosStorageHeaders.TOKEN, "token"));
|
||||
"/list_basic.xml")), ImmutableMultimap.of(AtmosHeaders.TOKEN, "token"));
|
||||
|
||||
BoundedSet<DirectoryEntry> result = createFn().apply(response);
|
||||
assertEquals(result, new BoundedLinkedHashSet<DirectoryEntry>(values(), "token"));
|
|
@ -17,12 +17,12 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.reference.AtmosStorageHeaders;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.reference.AtmosHeaders;
|
||||
import org.jclouds.http.HttpResponse;
|
||||
import org.jclouds.io.Payloads;
|
||||
import org.testng.annotations.Test;
|
||||
|
@ -39,13 +39,13 @@ import com.google.inject.Guice;
|
|||
public class ParseObjectFromHeadersAndHttpContentTest {
|
||||
|
||||
static final HttpResponse RESPONSE = new HttpResponse(200, "ok", Payloads.newStringPayload(""),
|
||||
ImmutableMultimap.of(AtmosStorageHeaders.TAGS, "tag1, tag2", AtmosStorageHeaders.LISTABLE_TAGS,
|
||||
"listabletag1, listabletag2", AtmosStorageHeaders.META,
|
||||
ImmutableMultimap.of(AtmosHeaders.TAGS, "tag1, tag2", AtmosHeaders.LISTABLE_TAGS,
|
||||
"listabletag1, listabletag2", AtmosHeaders.META,
|
||||
"meta1=foo1, content-md5=1f3870be274f6c49b3e31a0c6728957f, atime=2009-10-12T16:09:42Z, mtime=2009-10-19T04:37:00Z,"
|
||||
+ " ctime=2009-10-19T04:37:00Z, itime=2009-10-12T16:09:42Z, type=directory, uid=root, "
|
||||
+ "gid=rootr, objectid=4980cdb2b010109b04a44f7bb83f5f04ad354c638ae5, "
|
||||
+ "objname=e913e09366364e9ba384b8fead643d43, size=4096, nlink=1, policyname=default",
|
||||
AtmosStorageHeaders.LISTABLE_META, "listablemeta1=listablefoo1, listablemeta2=listablefoo2"));
|
||||
AtmosHeaders.LISTABLE_META, "listablemeta1=listablefoo1, listablemeta2=listablefoo2"));
|
||||
|
||||
public static final AtmosObject EXPECTED;
|
||||
|
|
@ -17,12 +17,12 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.crypto.CryptoStreams;
|
||||
import org.jclouds.date.DateService;
|
||||
import org.jclouds.date.internal.SimpleDateFormatDateService;
|
|
@ -17,11 +17,11 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
|
@ -1,4 +1,4 @@
|
|||
package org.jclouds.atmosonline.saas.functions;
|
||||
package org.jclouds.atmos.functions;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.internal;
|
||||
package org.jclouds.atmos.internal;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static com.google.common.util.concurrent.Futures.immediateFailedFuture;
|
||||
|
@ -31,18 +31,18 @@ import javax.inject.Inject;
|
|||
import javax.inject.Named;
|
||||
|
||||
import org.jclouds.Constants;
|
||||
import org.jclouds.atmosonline.saas.AtmosStorageAsyncClient;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobMetadataToObject;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.ListOptionsToBlobStoreListOptions;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.ObjectToBlob;
|
||||
import org.jclouds.atmosonline.saas.blobstore.functions.ResourceMetadataListToDirectoryEntryList;
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosObject;
|
||||
import org.jclouds.atmosonline.saas.domain.BoundedSet;
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.SystemMetadata;
|
||||
import org.jclouds.atmosonline.saas.domain.UserMetadata;
|
||||
import org.jclouds.atmosonline.saas.options.ListOptions;
|
||||
import org.jclouds.atmos.AtmosAsyncClient;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobMetadataToObject;
|
||||
import org.jclouds.atmos.blobstore.functions.BlobToObject;
|
||||
import org.jclouds.atmos.blobstore.functions.ListOptionsToBlobStoreListOptions;
|
||||
import org.jclouds.atmos.blobstore.functions.ObjectToBlob;
|
||||
import org.jclouds.atmos.blobstore.functions.ResourceMetadataListToDirectoryEntryList;
|
||||
import org.jclouds.atmos.domain.AtmosObject;
|
||||
import org.jclouds.atmos.domain.BoundedSet;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.SystemMetadata;
|
||||
import org.jclouds.atmos.domain.UserMetadata;
|
||||
import org.jclouds.atmos.options.ListOptions;
|
||||
import org.jclouds.blobstore.TransientAsyncBlobStore;
|
||||
import org.jclouds.blobstore.domain.Blob;
|
||||
import org.jclouds.blobstore.domain.BlobMetadata;
|
||||
|
@ -55,11 +55,11 @@ import com.google.common.base.Throwables;
|
|||
import com.google.common.util.concurrent.ListenableFuture;
|
||||
|
||||
/**
|
||||
* Implementation of {@link AtmosStorageAsyncClient} which keeps all data in a local Map object.
|
||||
* Implementation of {@link AtmosAsyncClient} which keeps all data in a local Map object.
|
||||
*
|
||||
* @author Adrian Cole
|
||||
*/
|
||||
public class StubAtmosStorageAsyncClient implements AtmosStorageAsyncClient {
|
||||
public class StubAtmosAsyncClient implements AtmosAsyncClient {
|
||||
private final HttpGetOptionsListToGetOptions httpGetOptionsConverter;
|
||||
private final TransientAsyncBlobStore blobStore;
|
||||
private final AtmosObject.Factory objectProvider;
|
||||
|
@ -71,7 +71,7 @@ public class StubAtmosStorageAsyncClient implements AtmosStorageAsyncClient {
|
|||
private final ExecutorService service;
|
||||
|
||||
@Inject
|
||||
private StubAtmosStorageAsyncClient(TransientAsyncBlobStore blobStore, AtmosObject.Factory objectProvider,
|
||||
private StubAtmosAsyncClient(TransientAsyncBlobStore blobStore, AtmosObject.Factory objectProvider,
|
||||
HttpGetOptionsListToGetOptions httpGetOptionsConverter, ObjectToBlob object2Blob, BlobToObject blob2Object,
|
||||
BlobMetadataToObject blob2ObjectInfo, ListOptionsToBlobStoreListOptions container2ContainerListOptions,
|
||||
@Named(Constants.PROPERTY_USER_THREADS) ExecutorService service,
|
|
@ -17,7 +17,7 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.options;
|
||||
package org.jclouds.atmos.options;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
|
@ -17,13 +17,13 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.xml;
|
||||
package org.jclouds.atmos.xml;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.AtmosStorageError;
|
||||
import org.jclouds.atmos.domain.AtmosError;
|
||||
import org.jclouds.http.functions.BaseHandlerTest;
|
||||
import org.jclouds.http.functions.ParseSax;
|
||||
import org.testng.annotations.Test;
|
||||
|
@ -37,16 +37,16 @@ import org.testng.annotations.Test;
|
|||
@Test(groups = "unit", testName = "ErrorHandlerTest")
|
||||
public class ErrorHandlerTest extends BaseHandlerTest {
|
||||
|
||||
ParseSax<AtmosStorageError> createParser() {
|
||||
ParseSax<AtmosStorageError> parser = (ParseSax<AtmosStorageError>) factory.create(injector
|
||||
ParseSax<AtmosError> createParser() {
|
||||
ParseSax<AtmosError> parser = (ParseSax<AtmosError>) factory.create(injector
|
||||
.getInstance(ErrorHandler.class));
|
||||
return parser;
|
||||
}
|
||||
|
||||
public void testApplyInputStream() {
|
||||
InputStream is = getClass().getResourceAsStream("/error.xml");
|
||||
ParseSax<AtmosStorageError> parser = createParser();
|
||||
AtmosStorageError result = parser.parse(is);
|
||||
ParseSax<AtmosError> parser = createParser();
|
||||
AtmosError result = parser.parse(is);
|
||||
assertEquals(result.getCode(), 1003);
|
||||
}
|
||||
}
|
|
@ -17,15 +17,15 @@
|
|||
* ====================================================================
|
||||
*/
|
||||
|
||||
package org.jclouds.atmosonline.saas.xml;
|
||||
package org.jclouds.atmos.xml;
|
||||
|
||||
import static org.testng.Assert.assertEquals;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.util.Set;
|
||||
|
||||
import org.jclouds.atmosonline.saas.domain.DirectoryEntry;
|
||||
import org.jclouds.atmosonline.saas.domain.FileType;
|
||||
import org.jclouds.atmos.domain.DirectoryEntry;
|
||||
import org.jclouds.atmos.domain.FileType;
|
||||
import org.jclouds.http.functions.BaseHandlerTest;
|
||||
import org.jclouds.http.functions.ParseSax;
|
||||
import org.testng.annotations.Test;
|
|
@ -45,5 +45,6 @@
|
|||
<module>vcloud</module>
|
||||
<module>vcloudexpress</module>
|
||||
<module>elasticstack</module>
|
||||
<module>atmos</module>
|
||||
</modules>
|
||||
</project>
|
||||
|
|
|
@ -147,6 +147,10 @@ stub.contextbuilder=org.jclouds.compute.stub.StubComputeServiceContextBuilder
|
|||
# example of where to change your endpoint
|
||||
# bluelock.endpoint=https://express3.bluelock.com/api
|
||||
|
||||
atmos.contextbuilder=org.jclouds.atmos.AtmosContextBuilder
|
||||
atmos.endpoint=https://accesspoint.atmosonline.com
|
||||
atmos.apiversion=1.3.0
|
||||
|
||||
atmosonline.contextbuilder=org.jclouds.atmosonline.saas.AtmosStorageContextBuilder
|
||||
atmosonline.endpoint=https://accesspoint.atmosonline.com
|
||||
atmosonline.apiversion=1.3.0
|
||||
|
|
Loading…
Reference in New Issue