package alien4cloud.plugin.mock; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.inject.Inject; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import alien4cloud.model.deployment.matching.MatchingConfiguration; import alien4cloud.model.orchestrators.locations.LocationResourceTemplate; import alien4cloud.orchestrators.plugin.ILocationConfiguratorPlugin; import alien4cloud.orchestrators.plugin.ILocationResourceAccessor; import alien4cloud.orchestrators.plugin.model.PluginArchive; /** * Component that creates location configurer for a mock openstack cloud. */ @Component @Scope("prototype") public class MockLocationConfigurerFactory { @Inject private ApplicationContext applicationContext; public ILocationConfiguratorPlugin newInstance(String locationType) { if (MockOrchestratorFactory.OPENSTACK.equals(locationType)) { return applicationContext.getBean(MockOpenStackLocationConfigurer.class); } if (MockOrchestratorFactory.AWS.equals(locationType)) { return applicationContext.getBean(MockAmazonLocationConfigurer.class); } return new ILocationConfiguratorPlugin() { @Override public List<PluginArchive> pluginArchives() { return new ArrayList<>(); } @Override public List<String> getResourcesTypes() { return new ArrayList<>(); } @Override public Map<String, MatchingConfiguration> getMatchingConfigurations() { return new HashMap<>(); } @Override public List<LocationResourceTemplate> instances(ILocationResourceAccessor resourceAccessor) { return null; } }; } }