@Provides @Singleton protected Supplier<Map<URI, ? extends org.jclouds.vcloud.domain.VDC>> provideURIToVDC( @Named(PROPERTY_SESSION_INTERVAL) long seconds, final URItoVDC supplier) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Map<URI, ? extends org.jclouds.vcloud.domain.VDC>>( authException, seconds, new Supplier<Map<URI, ? extends org.jclouds.vcloud.domain.VDC>>() { @Override public Map<URI, ? extends org.jclouds.vcloud.domain.VDC> get() { return supplier.get(); } }); }
@Provides @Singleton protected Supplier<Map<String, Map<String, Map<String, ? extends org.jclouds.vcloud.domain.CatalogItem>>>> provideOrgCatalogItemSupplierCache( @Named(PROPERTY_SESSION_INTERVAL) long seconds, final OrgCatalogItemSupplier supplier) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Map<String, Map<String, Map<String, ? extends org.jclouds.vcloud.domain.CatalogItem>>>>( authException, seconds, new Supplier<Map<String, Map<String, Map<String, ? extends org.jclouds.vcloud.domain.CatalogItem>>>>() { @Override public Map<String, Map<String, Map<String, ? extends org.jclouds.vcloud.domain.CatalogItem>>> get() { return supplier.get(); } }); }
@Provides @Singleton protected Supplier<Map<RegionAndName, ? extends Image>> provideRegionAndNameToImageSupplierCache( @Named(PROPERTY_SESSION_INTERVAL) long seconds, final RegionAndNameToImageSupplier supplier) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Map<RegionAndName, ? extends Image>>( authException, seconds, new Supplier<Map<RegionAndName, ? extends Image>>() { @Override public Map<RegionAndName, ? extends Image> get() { return supplier.get(); } }); }
@Provides @Singleton protected Supplier<Map<String, ? extends Org>> provideOrgMapCache(@Named(PROPERTY_SESSION_INTERVAL) long seconds, final OrgMapSupplier supplier) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Map<String, ? extends Org>>(authException, seconds, new Supplier<Map<String, ? extends Org>>() { @Override public Map<String, ? extends Org> get() { return supplier.get(); } }); }
@Provides @Singleton protected Supplier<Map<String, Map<String, ? extends org.jclouds.vcloud.domain.Catalog>>> provideOrgCatalogItemMapSupplierCache( @Named(PROPERTY_SESSION_INTERVAL) long seconds, final OrgCatalogSupplier supplier) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Map<String, Map<String, ? extends org.jclouds.vcloud.domain.Catalog>>>( authException, seconds, new Supplier<Map<String, Map<String, ? extends org.jclouds.vcloud.domain.Catalog>>>() { @Override public Map<String, Map<String, ? extends org.jclouds.vcloud.domain.Catalog>> get() { return supplier.get(); } }); }
@Provides @Singleton protected Supplier<Map<String, Map<String, ? extends org.jclouds.vcloud.domain.VDC>>> provideOrgVDCSupplierCache( @Named(PROPERTY_SESSION_INTERVAL) long seconds, final OrgVDCSupplier supplier) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Map<String, Map<String, ? extends org.jclouds.vcloud.domain.VDC>>>( authException, seconds, new Supplier<Map<String, Map<String, ? extends org.jclouds.vcloud.domain.VDC>>>() { @Override public Map<String, Map<String, ? extends org.jclouds.vcloud.domain.VDC>> get() { return supplier.get(); } }); }
@Provides @Singleton protected Supplier<VCloudSession> provideVCloudTokenCache(@Named(PROPERTY_SESSION_INTERVAL) long seconds, final VCloudLoginAsyncClient login) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<VCloudSession>(authException, seconds, new Supplier<VCloudSession>() { @Override public VCloudSession get() { try { return login.login().get(10, TimeUnit.SECONDS); } catch (Exception e) { propagate(e); assert false : e; return null; } } }); } }
@Provides @Singleton protected Supplier<VCloudSession> provideVCloudTokenCache(@Named(PROPERTY_SESSION_INTERVAL) long seconds, final VCloudExpressLoginAsyncClient login) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<VCloudSession>(authException, seconds, new Supplier<VCloudSession>() { @Override public VCloudSession get() { try { return login.login().get(10, TimeUnit.SECONDS); } catch (Exception e) { propagate(e); assert false : e; return null; } } }); }
@Provides @org.jclouds.vcloud.endpoints.Org @Singleton protected Supplier<Map<String, ReferenceType>> provideVDCtoORG(@Named(PROPERTY_SESSION_INTERVAL) long seconds, final OrgNameToOrgSupplier supplier) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Map<String, ReferenceType>>(authException, seconds, new Supplier<Map<String, ReferenceType>>() { @Override public Map<String, ReferenceType> get() { return supplier.get(); } }); }
@Provides @Singleton @org.jclouds.vcloud.endpoints.VDC protected Supplier<Map<String, String>> provideVDCtoORG(@Named(PROPERTY_SESSION_INTERVAL) long seconds, final Supplier<Map<String, ? extends Org>> orgToVDCSupplier) { return new RetryOnTimeOutButNotOnAuthorizationExceptionSupplier<Map<String, String>>(authException, seconds, new Supplier<Map<String, String>>() { @Override public Map<String, String> get() { Map<String, String> returnVal = newLinkedHashMap(); for (Entry<String, ? extends Org> orgr : orgToVDCSupplier.get().entrySet()) { for (String vdc : orgr.getValue().getVDCs().keySet()) { returnVal.put(vdc, orgr.getKey()); } } return returnVal; } }); }