All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jclouds.vcloud.VCloudExpressContextBuilder Maven / Gradle / Ivy

The newest version!
/**
 *
 * Copyright (C) 2010 Cloud Conscious, LLC. 
 *
 * ====================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ====================================================================
 */

package org.jclouds.vcloud;

import java.util.List;
import java.util.Properties;

import org.jclouds.compute.ComputeServiceContext;
import org.jclouds.compute.ComputeServiceContextBuilder;
import org.jclouds.compute.internal.ComputeServiceContextImpl;
import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule;
import org.jclouds.logging.jdk.config.JDKLoggingModule;
import org.jclouds.vcloud.compute.config.VCloudExpressComputeServiceContextModule;
import org.jclouds.vcloud.config.VCloudExpressRestClientModule;

import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Module;
import com.google.inject.TypeLiteral;

/**
 * Creates {@link VCloudComputeServiceContext} or {@link Injector} instances based on the most
 * commonly requested arguments.
 * 

* Note that Threadsafe objects will be bound as singletons to the Injector or Context provided. *

*

* If no Modules are specified, the default {@link JDKLoggingModule logging} and * {@link JavaUrlHttpCommandExecutorServiceModule http transports} will be installed. * * @author Adrian Cole * @see VCloudComputeServiceContext */ public class VCloudExpressContextBuilder extends ComputeServiceContextBuilder { public VCloudExpressContextBuilder(Properties props) { super(VCloudExpressClient.class, VCloudExpressAsyncClient.class, props); } @Override protected void addContextModule(List modules) { modules.add(new VCloudExpressComputeServiceContextModule()); } @Override protected void addClientModule(List modules) { modules.add(new VCloudExpressRestClientModule()); } @Override public ComputeServiceContext buildComputeServiceContext() { // need the generic type information return (ComputeServiceContext) this.buildInjector().getInstance( Key.get(new TypeLiteral>() { })); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy