Skip to content

Commit

Permalink
Issue #33 - preparatory work for introducing an extra Access child (u…
Browse files Browse the repository at this point in the history
…sed in case no tenant is supplied). Access interface is now used everywhere instead of AccessImpl.
  • Loading branch information
robert-bor committed May 19, 2013
1 parent 1c8ea88 commit dac8313
Show file tree
Hide file tree
Showing 36 changed files with 87 additions and 89 deletions.
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
package org.javaswift.joss.client.core;

import org.javaswift.joss.command.shared.factory.AccountCommandFactory;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.command.shared.identity.tenant.Tenants;
import org.javaswift.joss.headers.Metadata;
import org.javaswift.joss.headers.account.AccountMetadata;
import org.javaswift.joss.information.AccountInformation;
import org.javaswift.joss.instructions.ListInstructions;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;
import org.javaswift.joss.model.PaginationMap;
import org.javaswift.joss.model.Website;
import org.javaswift.joss.model.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -132,7 +128,7 @@ public AccountCommandFactory getFactory() {
return this.commandFactory;
}

public AccessImpl authenticate() {
public Access authenticate() {
return this.commandFactory.authenticate();
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/javaswift/joss/client/impl/AccountImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
import org.javaswift.joss.client.core.AbstractAccount;
import org.javaswift.joss.command.impl.factory.AccountCommandFactoryImpl;
import org.javaswift.joss.command.shared.identity.AuthenticationCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.model.Access;

public class AccountImpl extends AbstractAccount {

public AccountImpl(AuthenticationCommand command, HttpClient httpClient, AccessImpl access, boolean allowCaching) {
public AccountImpl(AuthenticationCommand command, HttpClient httpClient, Access access, boolean allowCaching) {
super(
new AccountCommandFactoryImpl(httpClient, access, command),
new ContainerFactoryImpl(),
Expand Down
8 changes: 2 additions & 6 deletions src/main/java/org/javaswift/joss/client/impl/ClientImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,7 @@
import org.javaswift.joss.command.impl.factory.AuthenticationCommandFactoryImpl;
import org.javaswift.joss.command.shared.factory.AuthenticationCommandFactory;
import org.javaswift.joss.command.shared.identity.AuthenticationCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.command.shared.identity.tenant.Tenant;
import org.javaswift.joss.command.shared.identity.tenant.Tenants;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Client;
import org.javaswift.joss.model.Access;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -66,7 +62,7 @@ protected AccountImpl createAccount() {
", tenant ID: "+accountConfig.getTenantId()+
", username: " +accountConfig.getUsername()+
", Auth URL: " +accountConfig.getAuthUrl());
AccessImpl access = command.call();
Access access = command.call();
LOG.info("JOSS / Successfully authenticated");
access.setPreferredRegion(accountConfig.getPreferredRegion());
LOG.info("JOSS / Applying preferred region: "+(accountConfig.getPreferredRegion() == null ? "none" : accountConfig.getPreferredRegion()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpRequestBase;
import org.javaswift.joss.command.impl.core.AbstractSecureCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;

public abstract class AbstractAccountCommand<M extends HttpRequestBase, N> extends AbstractSecureCommand<M, N> {

public AbstractAccountCommand(Account account, HttpClient httpClient, AccessImpl access) {
public AbstractAccountCommand(Account account, HttpClient httpClient, Access access) {
super(account, httpClient, getURL(access, account), access.getToken());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusRange;
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusSuccessCondition;
import org.javaswift.joss.command.shared.account.AccountInformationCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.headers.account.AccountBytesUsed;
import org.javaswift.joss.headers.account.AccountContainerCount;
import org.javaswift.joss.headers.account.AccountMetadata;
import org.javaswift.joss.headers.account.AccountObjectCount;
import org.javaswift.joss.information.AccountInformation;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;

import java.io.IOException;

public class AccountInformationCommandImpl extends AbstractAccountCommand<HttpHead, AccountInformation> implements AccountInformationCommand {

public AccountInformationCommandImpl(Account account, HttpClient httpClient, AccessImpl access) {
public AccountInformationCommandImpl(Account account, HttpClient httpClient, Access access) {
super(account, httpClient, access);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusMatch;
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusSuccessCondition;
import org.javaswift.joss.command.shared.account.AccountMetadataCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.headers.Header;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;

import java.util.Collection;

public class AccountMetadataCommandImpl extends AbstractAccountCommand<HttpPost, Object> implements AccountMetadataCommand {

public AccountMetadataCommandImpl(Account account, HttpClient httpClient, AccessImpl access, Collection<? extends Header> headers) {
public AccountMetadataCommandImpl(Account account, HttpClient httpClient, Access access, Collection<? extends Header> headers) {
super(account, httpClient, access);
addHeaders(headers);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusSuccessCondition;
import org.javaswift.joss.command.shared.account.ContainerListElement;
import org.javaswift.joss.command.shared.account.ListContainersCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.instructions.ListInstructions;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;

Expand All @@ -23,7 +23,7 @@ public class ListContainersCommandImpl extends AbstractAccountCommand<HttpGet, C

protected Account account;

public ListContainersCommandImpl(Account account, HttpClient httpClient, AccessImpl access, ListInstructions listInstructions) {
public ListContainersCommandImpl(Account account, HttpClient httpClient, Access access, ListInstructions listInstructions) {
super(account, httpClient, access);
this.account = account;
modifyURI(listInstructions.getQueryParameters());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@
import org.javaswift.joss.command.impl.core.AbstractSecureCommand;
import org.javaswift.joss.command.impl.core.httpstatus.*;
import org.javaswift.joss.command.shared.account.TenantCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.command.shared.identity.tenant.Tenants;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;

import java.io.IOException;

public class TenantCommandImpl extends AbstractSecureCommand<HttpGet, Tenants> implements TenantCommand {

public TenantCommandImpl(Account account, HttpClient httpClient, AccessImpl access, String url) {
public TenantCommandImpl(Account account, HttpClient httpClient, Access access, String url) {
super(account, httpClient, modifyUrl(url), access.getToken());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpRequestBase;
import org.javaswift.joss.command.impl.core.AbstractSecureCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;

public abstract class AbstractContainerCommand<M extends HttpRequestBase, N> extends AbstractSecureCommand<M, N> {

public AbstractContainerCommand(Account account, HttpClient httpClient, AccessImpl access, Container container) {
public AbstractContainerCommand(Account account, HttpClient httpClient, Access access, Container container) {
super(account, httpClient, getURL(access, container), access.getToken());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,20 @@
import org.apache.http.client.methods.HttpHead;
import org.javaswift.joss.command.impl.core.httpstatus.*;
import org.javaswift.joss.command.shared.container.ContainerInformationCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.headers.container.ContainerBytesUsed;
import org.javaswift.joss.headers.container.ContainerMetadata;
import org.javaswift.joss.headers.container.ContainerObjectCount;
import org.javaswift.joss.headers.container.ContainerRights;
import org.javaswift.joss.information.ContainerInformation;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;

import java.io.IOException;

public class ContainerInformationCommandImpl extends AbstractContainerCommand<HttpHead, ContainerInformation> implements ContainerInformationCommand {

public ContainerInformationCommandImpl(Account account, HttpClient httpClient, AccessImpl access, Container container, boolean allowErrorLog) {
public ContainerInformationCommandImpl(Account account, HttpClient httpClient, Access access, Container container, boolean allowErrorLog) {
super(account, httpClient, access, container);
setAllowErrorLog(allowErrorLog);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusMatch;
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusSuccessCondition;
import org.javaswift.joss.command.shared.container.ContainerMetadataCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.headers.Header;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;

import java.util.Collection;

public class ContainerMetadataCommandImpl extends AbstractContainerCommand<HttpPost, Object> implements ContainerMetadataCommand {

public ContainerMetadataCommandImpl(Account account, HttpClient httpClient, AccessImpl access, Container container, Collection<? extends Header> headers) {
public ContainerMetadataCommandImpl(Account account, HttpClient httpClient, Access access, Container container, Collection<? extends Header> headers) {
super(account, httpClient, access, container);
addHeaders(headers);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusMatch;
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusSuccessCondition;
import org.javaswift.joss.command.shared.container.ContainerRightsCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.headers.container.ContainerRights;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;

public class ContainerRightsCommandImpl extends AbstractContainerCommand<HttpPut, String[]> implements ContainerRightsCommand {

public ContainerRightsCommandImpl(Account account, HttpClient httpClient, AccessImpl access, Container container, boolean publicContainer) {
public ContainerRightsCommandImpl(Account account, HttpClient httpClient, Access access, Container container, boolean publicContainer) {
super(account, httpClient, access, container);
setHeader(new ContainerRights(publicContainer));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusMatch;
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusSuccessCondition;
import org.javaswift.joss.command.shared.container.CreateContainerCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;

public class CreateContainerCommandImpl extends AbstractContainerCommand<HttpPut, Object> implements CreateContainerCommand {

public CreateContainerCommandImpl(Account account, HttpClient httpClient, AccessImpl access, Container container) {
public CreateContainerCommandImpl(Account account, HttpClient httpClient, Access access, Container container) {
super(account, httpClient, access, container);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusMatch;
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusSuccessCondition;
import org.javaswift.joss.command.shared.container.DeleteContainerCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;

public class DeleteContainerCommandImpl extends AbstractContainerCommand<HttpDelete, String[]> implements DeleteContainerCommand {

public DeleteContainerCommandImpl(Account account, HttpClient httpClient, AccessImpl access, Container container) {
public DeleteContainerCommandImpl(Account account, HttpClient httpClient, Access access, Container container) {
super(account, httpClient, access, container);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
import org.javaswift.joss.command.impl.core.httpstatus.HttpStatusSuccessCondition;
import org.javaswift.joss.command.shared.container.ListObjectsCommand;
import org.javaswift.joss.command.shared.container.StoredObjectListElement;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.instructions.ListInstructions;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;
import org.javaswift.joss.model.StoredObject;
Expand All @@ -25,7 +25,7 @@ public class ListObjectsCommandImpl extends AbstractContainerCommand<HttpGet, Co

protected Container container;

public ListObjectsCommandImpl(Account account, HttpClient httpClient, AccessImpl access, Container container, ListInstructions listInstructions) {
public ListObjectsCommandImpl(Account account, HttpClient httpClient, Access access, Container container, ListInstructions listInstructions) {
super(account, httpClient, access, container);
this.container = container;
modifyURI(listInstructions.getQueryParameters());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
import org.javaswift.joss.command.shared.account.AccountInformationCommand;
import org.javaswift.joss.command.shared.account.AccountMetadataCommand;
import org.javaswift.joss.command.shared.account.ListContainersCommand;
import org.javaswift.joss.command.shared.account.TenantCommand;
import org.javaswift.joss.command.shared.factory.AccountCommandFactory;
import org.javaswift.joss.command.shared.factory.ContainerCommandFactory;
import org.javaswift.joss.command.shared.identity.AuthenticationCommand;
import org.javaswift.joss.command.shared.account.TenantCommand;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.headers.Header;
import org.javaswift.joss.instructions.ListInstructions;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;

import java.util.Collection;
Expand All @@ -24,12 +24,12 @@ public class AccountCommandFactoryImpl implements AccountCommandFactory {
private final ContainerCommandFactory containerCommandFactory;

private final HttpClient httpClient;
private AccessImpl access;
private Access access;
private final AuthenticationCommand authCommand;
private String publicHost;
private String privateHost;

public AccountCommandFactoryImpl(HttpClient httpClient, AccessImpl access, AuthenticationCommand authCommand) {
public AccountCommandFactoryImpl(HttpClient httpClient, Access access, AuthenticationCommand authCommand) {
this.httpClient = httpClient;
this.access = access;
this.authCommand = authCommand;
Expand Down Expand Up @@ -61,7 +61,7 @@ public String getOriginalHost() {
return access.getPublicURL();
}

public AccessImpl authenticate() {
public Access authenticate() {
return access = authCommand.call();
}

Expand Down Expand Up @@ -99,7 +99,7 @@ public HttpClient getHttpClient() {
return this.httpClient;
}

public AccessImpl getAccess() {
public Access getAccess() {
return this.access;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import org.javaswift.joss.command.shared.container.*;
import org.javaswift.joss.command.shared.factory.ContainerCommandFactory;
import org.javaswift.joss.command.shared.factory.StoredObjectCommandFactory;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.headers.Header;
import org.javaswift.joss.instructions.ListInstructions;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;

Expand Down Expand Up @@ -58,7 +58,7 @@ public HttpClient getHttpClient() {
return accountCommandFactory.getHttpClient();
}

public AccessImpl getAccess() {
public Access getAccess() {
return accountCommandFactory.getAccess();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import org.apache.http.client.HttpClient;
import org.javaswift.joss.command.impl.object.*;
import org.javaswift.joss.command.shared.factory.StoredObjectCommandFactory;
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.command.shared.object.*;
import org.javaswift.joss.headers.Header;
import org.javaswift.joss.instructions.DownloadInstructions;
import org.javaswift.joss.instructions.UploadInstructions;
import org.javaswift.joss.model.Access;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;
import org.javaswift.joss.model.StoredObject;
Expand Down Expand Up @@ -67,7 +67,7 @@ public HttpClient getHttpClient() {
return containerCommandFactory.getHttpClient();
}

public AccessImpl getAccess() {
public Access getAccess() {
return containerCommandFactory.getAccess();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,11 @@
import org.javaswift.joss.command.shared.identity.access.AccessImpl;
import org.javaswift.joss.command.shared.identity.authentication.Authentication;
import org.javaswift.joss.exception.CommandException;
import org.javaswift.joss.model.Access;

import java.io.IOException;

public class AuthenticationCommandImpl extends AbstractCommand<HttpPost, AccessImpl> implements AuthenticationCommand {
public class AuthenticationCommandImpl extends AbstractCommand<HttpPost, Access> implements AuthenticationCommand {

private boolean tenantSupplied;

Expand Down Expand Up @@ -49,7 +50,7 @@ private void setAuthenticationHeader(String tenantName, String tenantId, String
}

@Override
public AccessImpl getReturnObject(HttpResponse response) throws IOException {
public Access getReturnObject(HttpResponse response) throws IOException {
return createObjectMapper(true)
.readValue(response.getEntity().getContent(), AccessImpl.class)
.setTenantSupplied(isTenantSupplied()); // If only this would exist: http://jira.codehaus.org/browse/JACKSON-645
Expand Down
Loading

0 comments on commit dac8313

Please sign in to comment.