package alien4cloud.orchestrators.services; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Component; import alien4cloud.dao.IGenericSearchDAO; import alien4cloud.dao.model.GetMultipleDataResult; import alien4cloud.model.orchestrators.Orchestrator; import alien4cloud.orchestrators.plugin.IOrchestratorPluginFactory; import alien4cloud.plugin.AbstractPluginLinker; import alien4cloud.plugin.model.PluginUsage; import alien4cloud.utils.MapUtil; import com.google.common.collect.Lists; /** * Keeps track of the orchestrator plugins and usages. */ @Component public class OrchestratorFactoriesRegistry extends AbstractPluginLinker<IOrchestratorPluginFactory> { @Resource(name = "alien-es-dao") private IGenericSearchDAO alienDAO; @Override public List<PluginUsage> usage(String pluginId) { // query the list of orchestrators that uses the given plugin GetMultipleDataResult<Orchestrator> dataResult = alienDAO.search(Orchestrator.class, null, MapUtil.newHashMap(new String[] { "pluginId" }, new String[][] { new String[] { pluginId } }), Integer.MAX_VALUE); List<PluginUsage> usages = Lists.newArrayList(); for (Orchestrator orchestrator : dataResult.getData()) { usages.add(new PluginUsage(orchestrator.getId(), orchestrator.getName(), Orchestrator.class.getSimpleName())); } return usages; } }