protected List<ConnectorManager> getConnectorManagers(final ModelMetaData model, final ConnectorManagerRepository cmr) { if (model.isSource()) { Collection<SourceMappingMetadata> mappings = model.getSources().values(); List<ConnectorManager> result = new ArrayList<ConnectorManager>(mappings.size()); for (SourceMappingMetadata mapping:mappings) { result.add(cmr.getConnectorManager(mapping.getName())); } return result; } //return a single null to give us something to loop over return Collections.singletonList(null); }
public void createConnectorManager(String sourceName, String translatorName, String jndiName, ExecutionFactoryProvider provider, boolean replace) throws ConnectorManagerException { ConnectorManager cm = getConnectorManager(sourceName); ExecutionFactory<Object, Object> ef = null; if (cm != null) { if (!cm.getTranslatorName().equals(translatorName) || !EquivalenceUtil.areEqual(cm.getConnectionName(), jndiName)) { if (!replace) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31103, sourceName)); } if (cm.getTranslatorName().equals(translatorName)) { ef = cm.getExecutionFactory(); } } else { return; } } if (ef == null) { ef = provider.getExecutionFactory(translatorName); if (ef == null) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31146, translatorName)); } } cm = createConnectorManager(translatorName, jndiName, ef); addConnectorManager(sourceName, cm); }
private boolean dsExists(String dsName, ConnectorManagerRepository cmr) { String baseDsName = VDBStatusChecker.stripContext(dsName); for (ConnectorManager cm : cmr.getConnectorManagers().values()) { if (baseDsName.equals(VDBStatusChecker.stripContext(cm.getConnectionName()))) { return true; } } return false; }
/** * @return true if the datasource is new to the vdb * @throws AdminProcessingException */ public boolean updateSource(String vdbName, String vdbVersion, SourceMappingMetadata mapping, boolean replace) throws AdminProcessingException { String dsName = stripContext(mapping.getConnectionJndiName()); VDBMetaData vdb = getVDBRepository().getLiveVDB(vdbName, vdbVersion); if (vdb == null || vdb.getStatus() == Status.FAILED) { return false; } synchronized (vdb) { ConnectorManagerRepository cmr = vdb.getAttachment(ConnectorManagerRepository.class); ConnectorManager existing = cmr.getConnectorManager(mapping.getName()); try { cmr.createConnectorManager(vdb, cmr.getProvider(), mapping, replace); } catch (TeiidException e) { throw new AdminProcessingException(RuntimePlugin.Event.TEIID40033, e); } if (mapping.getConnectionJndiName() != null && (existing == null || !dsName.equals(existing.getConnectionName()))) { List<Runnable> runnables = new ArrayList<Runnable>(); resourceAdded(dsName, runnables, vdb); return true; } return false; } }
public void createConnectorManager( VDBMetaData deployment, ExecutionFactoryProvider provider, SourceMappingMetadata source, boolean replace) throws ConnectorManagerException { String name = source.getTranslatorName(); String connection = source.getConnectionJndiName(); createConnectorManager(source.getName(), name, connection, provider, replace); }
if (!this.cmr.isShared()) { mergedRepo = new ConnectorManagerRepository(); mergedRepo.getConnectorManagers().putAll(this.cmr.getConnectorManagers()); throw new AssertionError("childVdb does not have a connector manager repository"); //$NON-NLS-1$ if (!this.cmr.isShared()) { for (Map.Entry<String, ConnectorManager> entry : childCmr.getConnectorManagers().entrySet()) { if (mergedRepo.getConnectorManagers().put(entry.getKey(), entry.getValue()) != null) { throw new VirtualDatabaseException(RuntimePlugin.Event.TEIID40086, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40086, vdb.getName(), vdb.getVersion(), vdbImport.getName(), vdbImport.getVersion(), entry.getKey()));
cmr.createConnectorManagers(vdb, this); MetadataStore metadataStore = new MetadataStore(); UDFMetaData udfMetaData = new UDFMetaData();
public void createConnectorManager( VDBMetaData deployment, ExecutionFactoryProvider provider, SourceMappingMetadata source, boolean replace) throws ConnectorManagerException { String name = source.getTranslatorName(); String connection = source.getConnectionJndiName(); createConnectorManager(source.getName(), name, connection, provider, replace); }
private void resourceAdded(String resourceName, List<Runnable> runnables, VDBMetaData vdb) { synchronized (vdb) { ConnectorManagerRepository cmr = vdb.getAttachment(ConnectorManagerRepository.class); boolean usesResourse = false; for (ModelMetaData model:vdb.getModelMetaDatas().values()) { if (!model.hasRuntimeMessages()) { continue; } String sourceName = getSourceName(resourceName, model); if (sourceName == null) { continue; } usesResourse = true; ConnectorManager cm = cmr.getConnectorManager(sourceName); checkStatus(runnables, vdb, model, cm); } if (usesResourse) { updateVDB(runnables, vdb); } } }
public void createConnectorManager(String sourceName, String translatorName, String jndiName, ExecutionFactoryProvider provider, boolean replace) throws ConnectorManagerException { ConnectorManager cm = getConnectorManager(sourceName); ExecutionFactory<Object, Object> ef = null; if (cm != null) { if (!cm.getTranslatorName().equals(translatorName) || !EquivalenceUtil.areEqual(cm.getConnectionName(), jndiName)) { if (!replace) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31103, sourceName)); } if (cm.getTranslatorName().equals(translatorName)) { ef = cm.getExecutionFactory(); } } else { return; } } if (ef == null) { ef = provider.getExecutionFactory(translatorName); if (ef == null) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31146, translatorName)); } } cm = createConnectorManager(translatorName, jndiName, ef); addConnectorManager(sourceName, cm); }
public void createConnectorManager( VDBMetaData deployment, ExecutionFactoryProvider provider, SourceMappingMetadata source, boolean replace) throws ConnectorManagerException { String name = source.getTranslatorName(); String connection = source.getConnectionJndiName(); createConnectorManager(source.getName(), name, connection, provider, replace); }
private UDFMetaData getUDF() { UDFMetaData mergedUDF = new UDFMetaData(); if (this.udf != null) { mergedUDF.addFunctions(this.udf); } for (Schema schema:store.getSchemas().values()) { Collection<FunctionMethod> funcs = schema.getFunctions().values(); mergedUDF.addFunctions(schema.getName(), funcs); } if (this.cmr != null) { //system scoped common source functions for (ConnectorManager cm:this.cmr.getConnectorManagers().values()) { List<FunctionMethod> funcs = cm.getPushDownFunctions(); mergedUDF.addFunctions(CoreConstants.SYSTEM_MODEL, funcs); } } if (this.children != null) { //udf model functions - also scoped to the model for (CompositeVDB child:this.children.values()) { UDFMetaData funcs = child.getUDF(); if (funcs != null) { mergedUDF.addFunctions(funcs); } } } return mergedUDF; }
void validateDataSources(VDBMetaData vdb) { ConnectorManagerRepository cmr = vdb.getAttachment(ConnectorManagerRepository.class); for (ModelMetaData model:vdb.getModelMetaDatas().values()) { if (model.isSource()) { Collection<SourceMappingMetadata> mappings = model.getSourceMappings(); for (SourceMappingMetadata mapping:mappings) { ConnectorManager cm = cmr.getConnectorManager(mapping.getName()); if (cm != null) { String msg = cm.getStausMessage(); if (msg != null && msg.length() > 0) { model.addRuntimeError(msg); model.setMetadataStatus(Model.MetadataStatus.FAILED); LogManager.logInfo(LogConstants.CTX_RUNTIME, msg); } } } } } }
public void createConnectorManager(String sourceName, String translatorName, String jndiName, ExecutionFactoryProvider provider, boolean replace) throws ConnectorManagerException { ConnectorManager cm = getConnectorManager(sourceName); ExecutionFactory<Object, Object> ef = null; if (cm != null) { if (!cm.getTranslatorName().equals(translatorName) || !EquivalenceUtil.areEqual(cm.getConnectionName(), jndiName)) { if (!replace) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31103, sourceName)); } if (cm.getTranslatorName().equals(translatorName)) { ef = cm.getExecutionFactory(); } } else { return; } } if (ef == null) { ef = provider.getExecutionFactory(translatorName); if (ef == null) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31146, translatorName)); } } cm = createConnectorManager(translatorName, jndiName, ef); addConnectorManager(sourceName, cm); }
public void createConnectorManagers(VDBMetaData deployment, ExecutionFactoryProvider provider) throws ConnectorManagerException { for (ModelMetaData model : deployment.getModelMetaDatas().values()) { List<String> sourceNames = model.getSourceNames(); if (sourceNames.size() != new HashSet<String>(sourceNames).size()) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31101, model.getName(), deployment.getName(), deployment.getVersion())); } if (sourceNames.size() > 1 && !model.isSupportsMultiSourceBindings()) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31102, model.getName(), deployment.getName(), deployment.getVersion())); } for (SourceMappingMetadata source : model.getSourceMappings()) { createConnectorManager(deployment, provider, source, false); } } }
for (String sourceName:sourceNames) { ConnectorManager mgr = this.connectorRepo.getConnectorManager(sourceName); if (mgr == null) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30497, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30497, sourceName, modelName, sourceName));
public void createConnectorManagers(VDBMetaData deployment, ExecutionFactoryProvider provider) throws ConnectorManagerException { for (ModelMetaData model : deployment.getModelMetaDatas().values()) { List<String> sourceNames = model.getSourceNames(); if (sourceNames.size() != new HashSet<String>(sourceNames).size()) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31101, model.getName(), deployment.getName(), deployment.getVersion())); } if (sourceNames.size() > 1 && !model.isSupportsMultiSourceBindings()) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31102, model.getName(), deployment.getName(), deployment.getVersion())); } for (SourceMappingMetadata source : model.getSourceMappings()) { createConnectorManager(deployment, provider, source, false); } } }
for (String sourceName:sourceNames) { ConnectorManager mgr = this.connectorRepo.getConnectorManager(sourceName); if (mgr == null) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30497, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30497, sourceName, modelName, sourceName));
public void createConnectorManagers(VDBMetaData deployment, ExecutionFactoryProvider provider) throws ConnectorManagerException { for (ModelMetaData model : deployment.getModelMetaDatas().values()) { List<String> sourceNames = model.getSourceNames(); if (sourceNames.size() != new HashSet<String>(sourceNames).size()) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31101, model.getName(), deployment.getName(), deployment.getVersion())); } if (sourceNames.size() > 1 && !model.isSupportsMultiSourceBindings()) { throw new ConnectorManagerException(QueryPlugin.Util.gs(QueryPlugin.Event.TEIID31102, model.getName(), deployment.getName(), deployment.getVersion())); } for (SourceMappingMetadata source : model.getSourceMappings()) { createConnectorManager(deployment, provider, source, false); } } }
for (String sourceName:sourceNames) { ConnectorManager mgr = this.connectorRepo.getConnectorManager(sourceName); if (mgr == null) { throw new TeiidComponentException(QueryPlugin.Event.TEIID30497, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30497, sourceName, modelName, sourceName));