use of org.talend.hadoop.distribution.ComponentType in project tbd-studio-se by Talend.
the class DistributionsManager method getDistributionsDelegate.
Map<String, DistributionBean> getDistributionsDelegate() {
if (getServiceName() == null) {
return new HashMap<String, DistributionBean>();
}
final ComponentType type = getComponentType();
// We retrieve all the implementations of the HadoopComponent service.
BundleContext bc = getBundleContext();
Collection<ServiceReference<? extends HadoopComponent>> distributions = new LinkedList<>();
try {
Class<? extends HadoopComponent> clazz = (Class<? extends HadoopComponent>) Class.forName(getServiceName());
distributions.addAll(bc.getServiceReferences(clazz, null));
} catch (InvalidSyntaxException | ClassNotFoundException e) {
CommonExceptionHandler.process(e);
return new HashMap<String, DistributionBean>();
}
Map<String, DistributionBean> disctributionsMap = new HashMap<>();
for (ServiceReference<? extends HadoopComponent> sr : distributions) {
addDistribution(bc, disctributionsMap, type, sr);
}
return disctributionsMap;
}
use of org.talend.hadoop.distribution.ComponentType in project tbd-studio-se by Talend.
the class AbstractDynamicDistributionTemplate method buildModuleGroupsTemplateMap.
protected Map<ComponentType, IDynamicModuleGroupTemplate> buildModuleGroupsTemplateMap() {
Map<ComponentType, IDynamicModuleGroupTemplate> moduleGroupsTemplateMap = new HashMap<>();
DynamicPluginAdapter pluginAdapter = getPluginAdapter();
if (this instanceof HDFSComponent) {
moduleGroupsTemplateMap.put(ComponentType.HDFS, new DynamicHDFSModuleGroupTemplate(pluginAdapter));
}
if (this instanceof HBaseComponent) {
moduleGroupsTemplateMap.put(ComponentType.HBASE, new DynamicHBaseModuleGroupTemplate(pluginAdapter));
}
if (this instanceof HCatalogComponent) {
moduleGroupsTemplateMap.put(ComponentType.HCATALOG, new DynamicHCatalogModuleGroupTemplate(pluginAdapter));
}
if (this instanceof HiveComponent) {
moduleGroupsTemplateMap.put(ComponentType.HIVE, new DynamicHiveModuleGroupTemplate(pluginAdapter));
}
if (this instanceof HiveOnSparkComponent) {
moduleGroupsTemplateMap.put(ComponentType.HIVEONSPARK, new DynamicHiveOnSparkModuleGroupTemplate(pluginAdapter));
}
if (this instanceof MapRDBComponent) {
moduleGroupsTemplateMap.put(ComponentType.MAPRDB, new DynamicMapRDBModuleGroupTemplate(pluginAdapter));
}
if (this instanceof MRComponent) {
moduleGroupsTemplateMap.put(ComponentType.MAPREDUCE, new DynamicMapReduceModuleGroupTemplate(pluginAdapter));
}
if (this instanceof SparkBatchComponent) {
moduleGroupsTemplateMap.put(ComponentType.SPARKBATCH, new DynamicSparkBatchModuleGroupTemplate(pluginAdapter));
}
if (this instanceof SparkStreamingComponent) {
moduleGroupsTemplateMap.put(ComponentType.SPARKSTREAMING, new DynamicSparkStreamingModuleGroupTemplate(pluginAdapter));
}
if (this instanceof SqoopComponent) {
moduleGroupsTemplateMap.put(ComponentType.SQOOP, new DynamicSqoopModuleGroupTemplate(pluginAdapter));
}
if (this instanceof ImpalaComponent) {
moduleGroupsTemplateMap.put(ComponentType.IMPALA, new DynamicImpalaModuleGroupTemplate(pluginAdapter));
}
return moduleGroupsTemplateMap;
}
use of org.talend.hadoop.distribution.ComponentType in project tbd-studio-se by Talend.
the class AbstractDynamicDistributionTemplate method buildNodeModuleGroupsMap.
protected Map<NodeComponentTypeBean, Set<DistributionModuleGroup>> buildNodeModuleGroupsMap(DynamicPluginAdapter pluginAdapter) throws Exception {
Map<NodeComponentTypeBean, Set<DistributionModuleGroup>> nodeModuleGroupsMap = new HashMap<>();
for (Map.Entry<ComponentType, IDynamicModuleGroupTemplate> entry : moduleGroupsTemplateMap.entrySet()) {
Map<NodeComponentTypeBean, Set<DistributionModuleGroup>> groupMap = entry.getValue().getNodeModuleGroups();
if (groupMap != null && !groupMap.isEmpty()) {
for (Map.Entry<NodeComponentTypeBean, Set<DistributionModuleGroup>> groupEntry : groupMap.entrySet()) {
NodeComponentTypeBean key = groupEntry.getKey();
Set<DistributionModuleGroup> existingGroupSet = nodeModuleGroupsMap.get(key);
if (existingGroupSet != null) {
String keyStr = "";
try {
ComponentType componentType = key.getComponentType();
if (componentType != null) {
keyStr = keyStr + componentType.name();
}
keyStr = keyStr + ", " + key.getComponentName();
} catch (Exception e) {
ExceptionHandler.process(e);
} finally {
CommonExceptionHandler.warn(this.getClass().getSimpleName() + " : multiple define of [" + keyStr + "], will merge it.");
}
existingGroupSet.addAll(groupEntry.getValue());
} else {
nodeModuleGroupsMap.put(key, groupEntry.getValue());
}
}
}
}
return nodeModuleGroupsMap;
}
use of org.talend.hadoop.distribution.ComponentType in project tbd-studio-se by Talend.
the class AbstractDynamicCDHDistributionTemplate method buildModuleGroupsTemplateMap.
@Override
protected Map<ComponentType, IDynamicModuleGroupTemplate> buildModuleGroupsTemplateMap() {
Map<ComponentType, IDynamicModuleGroupTemplate> groupTemplateMap = super.buildModuleGroupsTemplateMap();
DynamicPluginAdapter pluginAdapter = getPluginAdapter();
if (this instanceof HiveOnSparkComponent) {
groupTemplateMap.put(ComponentType.HIVEONSPARK, new DynamicCDHHiveOnSparkModuleGroupTemplate(pluginAdapter));
}
if (this instanceof MRComponent) {
groupTemplateMap.put(ComponentType.MAPREDUCE, new DynamicCDHMapReduceModuleGroupTemplate(pluginAdapter));
}
if (this instanceof SparkBatchComponent) {
groupTemplateMap.put(ComponentType.SPARKBATCH, new DynamicCDHSparkBatchModuleGroupTemplate(pluginAdapter));
}
if (this instanceof SparkStreamingComponent) {
groupTemplateMap.put(ComponentType.SPARKSTREAMING, new DynamicCDHSparkStreamingModuleGroupTemplate(pluginAdapter));
}
if (this instanceof SqoopComponent) {
groupTemplateMap.put(ComponentType.SQOOP, new DynamicCDHSqoopModuleGroupTemplate(pluginAdapter));
}
if (this instanceof ImpalaComponent) {
groupTemplateMap.put(ComponentType.IMPALA, new DynamicImpalaModuleGroupTemplate(pluginAdapter));
}
return groupTemplateMap;
}
use of org.talend.hadoop.distribution.ComponentType in project tbd-studio-se by Talend.
the class DistributionVersionModule method getModuleRequiredIf.
public ComponentCondition getModuleRequiredIf() {
ComponentCondition condition;
// The import is needed only if the good version and the good distribution are selected, and
// if the Distribution is shown. The second condition to take the
// USE_EXISTING_CONNECTIOn into account.
final ComponentType componentType = distributionVersion.distribution.componentType;
Expression distributionSelected = new BasicExpression(componentType.getDistributionParameter(), EqualityOperator.EQ, distributionVersion.distribution.name);
Expression distributionVersionSelected = new BasicExpression(componentType.getVersionParameter(), EqualityOperator.EQ, distributionVersion.version);
Expression distributionShown = new ShowExpression(componentType.getDistributionParameter());
condition = new MultiComponentCondition(new SimpleComponentCondition(distributionSelected), BooleanOperator.AND, new MultiComponentCondition(new SimpleComponentCondition(distributionVersionSelected), BooleanOperator.AND, new SimpleComponentCondition(distributionShown)));
if (moduleGroup.getRequiredIf() != null) {
condition = new MultiComponentCondition(condition, BooleanOperator.AND, new NestedComponentCondition(moduleGroup.getRequiredIf()));
}
return condition;
}
Aggregations