org.jclouds.vcloud.config
Class CommonVCloudRestClientModule<S extends CommonVCloudClient,A extends CommonVCloudAsyncClient>

java.lang.Object
  extended by com.google.inject.AbstractModule
      extended by org.jclouds.rest.config.RestClientModule<S,A>
          extended by org.jclouds.vcloud.config.CommonVCloudRestClientModule<S,A>
All Implemented Interfaces:
com.google.inject.Module

public class CommonVCloudRestClientModule<S extends CommonVCloudClient,A extends CommonVCloudAsyncClient>
extends org.jclouds.rest.config.RestClientModule<S,A>

Configures the VCloud authentication service connection, including logging and http transport.

Author:
Adrian Cole

Nested Class Summary
static class CommonVCloudRestClientModule.OrgCatalogItemSupplier
           
static class CommonVCloudRestClientModule.OrgCatalogSupplier
           
static class CommonVCloudRestClientModule.OrgMapSupplier
           
static class CommonVCloudRestClientModule.OrgVDCSupplier
           
static class CommonVCloudRestClientModule.URItoVDC
           
static class CommonVCloudRestClientModule.WriteableCatalog
           
 
Field Summary
protected  AtomicReference<org.jclouds.rest.AuthorizationException> authException
           
protected  org.jclouds.logging.Logger logger
           
 
Fields inherited from class org.jclouds.rest.config.RestClientModule
asyncClientType, delegates, syncClientType
 
Constructor Summary
CommonVCloudRestClientModule(Class<S> syncClientType, Class<A> asyncClientType)
           
CommonVCloudRestClientModule(Class<S> syncClientType, Class<A> asyncClientType, Map<Class<?>,Class<?>> delegateMap)
           
 
Method Summary
protected  void bindErrorHandlers()
           
protected  void configure()
           
protected  URI findDefaultNetworkForVDC(VDC vDC, Map<String,ReferenceType> networks, com.google.inject.Injector injector)
           
protected  URI provideAuthenticationURI(VCloudVersionsAsyncClient versionService, String version)
           
protected  URI provideCatalog(Org org, String user, CommonVCloudRestClientModule.WriteableCatalog writableCatalog)
           
protected  String provideCatalogName(com.google.common.base.Supplier<Map<String,Map<String,? extends Catalog>>> catalogs)
           
protected  URI provideDefaultNetwork(URI defaultVDC, com.google.inject.Injector injector)
           
protected  URI provideDefaultTasksList(Org org)
           
protected  URI provideDefaultVDC(Org org, String defaultVDC)
           
protected  String provideDefaultVDCName(com.google.common.base.Supplier<Map<String,String>> vDCtoOrgSupplier)
           
protected  Org provideOrg(CommonVCloudClient discovery)
           
protected  URI provideOrg(Iterable<ReferenceType> orgs)
           
protected  com.google.common.base.Supplier<Map<String,Map<String,? extends Catalog>>> provideOrgCatalogItemMapSupplierCache(long seconds, CommonVCloudRestClientModule.OrgCatalogSupplier supplier)
           
protected  com.google.common.base.Supplier<Map<String,Map<String,Map<String,? extends CatalogItem>>>> provideOrgCatalogItemSupplierCache(long seconds, CommonVCloudRestClientModule.OrgCatalogItemSupplier supplier)
           
protected  com.google.common.base.Supplier<Map<String,? extends Org>> provideOrgMapCache(long seconds, CommonVCloudRestClientModule.OrgMapSupplier supplier)
           
protected  String provideOrgName(Iterable<ReferenceType> orgs)
           
protected  Iterable<ReferenceType> provideOrgs(com.google.common.base.Supplier<VCloudSession> cache, String user)
           
protected  com.google.common.base.Supplier<Map<String,Map<String,? extends VDC>>> provideOrgVDCSupplierCache(long seconds, CommonVCloudRestClientModule.OrgVDCSupplier supplier)
           
protected  com.google.common.base.Supplier<Map<URI,? extends VDC>> provideURIToVDC(long seconds, CommonVCloudRestClientModule.URItoVDC supplier)
           
protected  VCloudVersionsAsyncClient provideVCloudVersions(org.jclouds.rest.AsyncClientFactory factory)
           
protected  com.google.common.base.Supplier<Map<String,ReferenceType>> provideVDCtoORG(long seconds, org.jclouds.vcloud.config.CommonVCloudRestClientModule.OrgNameToOrgSupplier supplier)
           
protected  com.google.common.base.Supplier<Map<String,String>> provideVDCtoORG(long seconds, com.google.common.base.Supplier<Map<String,? extends Org>> orgToVDCSupplier)
           
protected  com.google.common.base.Predicate<URI> successTester(com.google.inject.Injector injector, long completed)
           
 
Methods inherited from class org.jclouds.rest.config.RestClientModule
bindAsyncClient, bindClient, bindRetryHandlers
 
Methods inherited from class com.google.inject.AbstractModule
addError, addError, addError, bind, bind, bind, bindConstant, binder, bindInterceptor, bindListener, bindScope, configure, convertToTypes, currentStage, getMembersInjector, getMembersInjector, getProvider, getProvider, install, requestInjection, requestStaticInjection, requireBinding, requireBinding
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected org.jclouds.logging.Logger logger

authException

protected AtomicReference<org.jclouds.rest.AuthorizationException> authException
Constructor Detail

CommonVCloudRestClientModule

public CommonVCloudRestClientModule(Class<S> syncClientType,
                                    Class<A> asyncClientType)

CommonVCloudRestClientModule

public CommonVCloudRestClientModule(Class<S> syncClientType,
                                    Class<A> asyncClientType,
                                    Map<Class<?>,Class<?>> delegateMap)
Method Detail

configure

protected void configure()
Overrides:
configure in class org.jclouds.rest.config.RestClientModule<S extends CommonVCloudClient,A extends CommonVCloudAsyncClient>

provideVDCtoORG

@Provides
@Singleton
protected com.google.common.base.Supplier<Map<String,String>> provideVDCtoORG(@Named(value="jclouds.session-interval")
                                                                                                 long seconds,
                                                                                                 com.google.common.base.Supplier<Map<String,? extends Org>> orgToVDCSupplier)

provideDefaultVDC

@Provides
@Singleton
protected URI provideDefaultVDC(Org org,
                                                   String defaultVDC)

provideDefaultVDCName

@Provides
@Singleton
protected String provideDefaultVDCName(com.google.common.base.Supplier<Map<String,String>> vDCtoOrgSupplier)

provideCatalog

@Provides
@Singleton
protected URI provideCatalog(Org org,
                                                @Named(value="jclouds.identity")
                                                String user,
                                                CommonVCloudRestClientModule.WriteableCatalog writableCatalog)

provideOrgMapCache

@Provides
@Singleton
protected com.google.common.base.Supplier<Map<String,? extends Org>> provideOrgMapCache(@Named(value="jclouds.session-interval")
                                                                                                           long seconds,
                                                                                                           CommonVCloudRestClientModule.OrgMapSupplier supplier)

provideOrg

@Provides
@Singleton
protected URI provideOrg(Iterable<ReferenceType> orgs)

provideOrgName

@Provides
@Singleton
protected String provideOrgName(Iterable<ReferenceType> orgs)

provideVDCtoORG

@Provides
@Singleton
protected com.google.common.base.Supplier<Map<String,ReferenceType>> provideVDCtoORG(@Named(value="jclouds.session-interval")
                                                                                                        long seconds,
                                                                                                        org.jclouds.vcloud.config.CommonVCloudRestClientModule.OrgNameToOrgSupplier supplier)

provideURIToVDC

@Provides
@Singleton
protected com.google.common.base.Supplier<Map<URI,? extends VDC>> provideURIToVDC(@Named(value="jclouds.session-interval")
                                                                                                     long seconds,
                                                                                                     CommonVCloudRestClientModule.URItoVDC supplier)

provideOrgs

@Provides
@Singleton
protected Iterable<ReferenceType> provideOrgs(com.google.common.base.Supplier<VCloudSession> cache,
                                                                 @Named(value="jclouds.identity")
                                                                 String user)

provideAuthenticationURI

@Provides
@Singleton
protected URI provideAuthenticationURI(VCloudVersionsAsyncClient versionService,
                                                          @Named(value="jclouds.api-version")
                                                          String version)
                                throws InterruptedException,
                                       ExecutionException,
                                       TimeoutException
Throws:
InterruptedException
ExecutionException
TimeoutException

provideVCloudVersions

@Provides
@Singleton
protected VCloudVersionsAsyncClient provideVCloudVersions(org.jclouds.rest.AsyncClientFactory factory)

provideCatalogName

@Provides
@Singleton
protected String provideCatalogName(com.google.common.base.Supplier<Map<String,Map<String,? extends Catalog>>> catalogs)

provideDefaultNetwork

@Provides
@Singleton
protected URI provideDefaultNetwork(URI defaultVDC,
                                                       com.google.inject.Injector injector)

findDefaultNetworkForVDC

protected URI findDefaultNetworkForVDC(VDC vDC,
                                       Map<String,ReferenceType> networks,
                                       com.google.inject.Injector injector)

provideOrg

@Provides
@Singleton
protected Org provideOrg(CommonVCloudClient discovery)

successTester

@Provides
@Singleton
protected com.google.common.base.Predicate<URI> successTester(com.google.inject.Injector injector,
                                                                                 @Named(value="jclouds.vcloud.timeout.task-complete")
                                                                                 long completed)

provideOrgCatalogItemMapSupplierCache

@Provides
@Singleton
protected com.google.common.base.Supplier<Map<String,Map<String,? extends Catalog>>> provideOrgCatalogItemMapSupplierCache(@Named(value="jclouds.session-interval")
                                                                                                                                              long seconds,
                                                                                                                                              CommonVCloudRestClientModule.OrgCatalogSupplier supplier)

provideOrgVDCSupplierCache

@Provides
@Singleton
protected com.google.common.base.Supplier<Map<String,Map<String,? extends VDC>>> provideOrgVDCSupplierCache(@Named(value="jclouds.session-interval")
                                                                                                                               long seconds,
                                                                                                                               CommonVCloudRestClientModule.OrgVDCSupplier supplier)

provideOrgCatalogItemSupplierCache

@Provides
@Singleton
protected com.google.common.base.Supplier<Map<String,Map<String,Map<String,? extends CatalogItem>>>> provideOrgCatalogItemSupplierCache(@Named(value="jclouds.session-interval")
                                                                                                                                                           long seconds,
                                                                                                                                                           CommonVCloudRestClientModule.OrgCatalogItemSupplier supplier)

provideDefaultTasksList

@Provides
@Singleton
protected URI provideDefaultTasksList(Org org)

bindErrorHandlers

protected void bindErrorHandlers()
Overrides:
bindErrorHandlers in class org.jclouds.rest.config.RestClientModule<S extends CommonVCloudClient,A extends CommonVCloudAsyncClient>


Copyright © 2009-2011 jclouds. All Rights Reserved.