mirror of https://github.com/apache/jclouds.git
made rest context factory work with credentials present in properties
This commit is contained in:
parent
c443309801
commit
504f93e8b1
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
package org.jclouds.rest;
|
||||
|
||||
import static com.google.common.base.Preconditions.checkArgument;
|
||||
import static com.google.common.base.Preconditions.checkNotNull;
|
||||
import static com.google.common.collect.Iterables.toArray;
|
||||
import static org.jclouds.util.Utils.initContextBuilder;
|
||||
|
@ -97,6 +98,12 @@ public class RestContextFactory {
|
|||
this.credential = credential;
|
||||
this.sync = sync;
|
||||
this.async = async;
|
||||
checkArgument(RestContextBuilder.class.isAssignableFrom(contextBuilderClass),
|
||||
contextBuilderClass.getName() + " is not a subclass of "
|
||||
+ RestContextBuilder.class.getName());
|
||||
checkArgument(PropertiesBuilder.class.isAssignableFrom(propertiesBuilderClass),
|
||||
propertiesBuilderClass.getName() + " is not a subclass of "
|
||||
+ PropertiesBuilder.class.getName());
|
||||
this.propertiesBuilderClass = propertiesBuilderClass;
|
||||
this.contextBuilderClass = contextBuilderClass;
|
||||
}
|
||||
|
@ -182,7 +189,8 @@ public class RestContextFactory {
|
|||
}
|
||||
|
||||
/**
|
||||
* @see RestContextFactory#createContextBuilder(String, Properties, Iterable<? extends Module>, Properties)
|
||||
* @see RestContextFactory#createContextBuilder(String, Properties, Iterable<? extends Module>,
|
||||
* Properties)
|
||||
*/
|
||||
public <S, A> RestContextBuilder<S, A> createContextBuilder(String provider, Properties overrides) {
|
||||
return createContextBuilder(provider, overrides.getProperty("jclouds.identity"), overrides
|
||||
|
@ -244,6 +252,32 @@ public class RestContextFactory {
|
|||
return createContextBuilder(contextSpec, wiring, _overrides);
|
||||
}
|
||||
|
||||
public static Properties toProperties(ContextSpec<?, ?> contextSpec) {
|
||||
checkNotNull(contextSpec, "contextSpec");
|
||||
|
||||
Properties props = new Properties();
|
||||
|
||||
props.setProperty(contextSpec.provider + ".endpoint", contextSpec.endpoint);
|
||||
props.setProperty(contextSpec.provider + ".apiversion", contextSpec.apiVersion);
|
||||
props.setProperty(contextSpec.provider + ".identity", contextSpec.identity);
|
||||
if (contextSpec.credential != null)
|
||||
props.setProperty(contextSpec.provider + ".credential", contextSpec.credential);
|
||||
if (contextSpec.sync != null) {
|
||||
props.setProperty(contextSpec.provider + ".sync", contextSpec.sync.getName());
|
||||
props.setProperty(contextSpec.provider + ".async", checkNotNull(contextSpec.async,
|
||||
"contextSpec.async").getName());
|
||||
} else {
|
||||
|
||||
props.setProperty(contextSpec.provider + ".contextbuilder", checkNotNull(
|
||||
contextSpec.contextBuilderClass, "contextSpec.contextBuilderClass").getName());
|
||||
|
||||
props.setProperty(contextSpec.provider + ".propertiesbuilder", checkNotNull(
|
||||
contextSpec.propertiesBuilderClass, "contextSpec.propertiesBuilderClass")
|
||||
.getName());
|
||||
}
|
||||
return props;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <A, S> ContextSpec<S, A> createContextSpec(String providerName, String identity,
|
||||
String credential, Properties _overrides) {
|
||||
|
|
|
@ -121,4 +121,54 @@ public class RestContextImpl<S, A> implements RestContext<S, A> {
|
|||
public String getProvider() {
|
||||
return provider;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((apiVersion == null) ? 0 : apiVersion.hashCode());
|
||||
result = prime * result + ((endpoint == null) ? 0 : endpoint.hashCode());
|
||||
result = prime * result + ((identity == null) ? 0 : identity.hashCode());
|
||||
result = prime * result + ((provider == null) ? 0 : provider.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
RestContextImpl other = (RestContextImpl) obj;
|
||||
if (apiVersion == null) {
|
||||
if (other.apiVersion != null)
|
||||
return false;
|
||||
} else if (!apiVersion.equals(other.apiVersion))
|
||||
return false;
|
||||
if (endpoint == null) {
|
||||
if (other.endpoint != null)
|
||||
return false;
|
||||
} else if (!endpoint.equals(other.endpoint))
|
||||
return false;
|
||||
if (identity == null) {
|
||||
if (other.identity != null)
|
||||
return false;
|
||||
} else if (!identity.equals(other.identity))
|
||||
return false;
|
||||
if (provider == null) {
|
||||
if (other.provider != null)
|
||||
return false;
|
||||
} else if (!provider.equals(other.provider))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "RestContextImpl [provider=" + provider + ", endpoint=" + endpoint + ", apiVersion="
|
||||
+ apiVersion + ", identity=" + identity + "]";
|
||||
}
|
||||
}
|
||||
|
|
|
@ -383,7 +383,8 @@ public class Utils {
|
|||
return (Class<RestContextBuilder<S, A>>) (contextBuilderClassName != null ? Class
|
||||
.forName(contextBuilderClassName) : RestContextBuilder.class);
|
||||
} else {
|
||||
checkArgument(contextBuilderClassName != null, "please configure contextbuilder class");
|
||||
checkArgument(contextBuilderClassName != null,
|
||||
"please configure contextbuilder class for " + provider);
|
||||
return (Class<RestContextBuilder<S, A>>) Class.forName(contextBuilderClassName);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue