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); }
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); } } }
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); } } } } } }
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));
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));
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 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(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(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); }
/** * @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; } }
private Request helpProcessMessage(RequestMessage message, SessionAwareCache<PreparedPlan> cache, DQPWorkContext workContext) throws TeiidComponentException, TeiidProcessingException { Request request = null; if (cache != null) { request = new PreparedStatementRequest(cache); } else { request = new Request(); } ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class); workContext.getVDB().addAttchment(ConnectorManagerRepository.class, repo); Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(new AutoGenDataService()); request.initialize(message, Mockito.mock(BufferManager.class), new FakeDataManager(), new FakeTransactionService(), TEMP_TABLE_STORE, workContext, null); DefaultAuthorizationValidator drav = new DefaultAuthorizationValidator(); request.setAuthorizationValidator(drav); request.processRequest(); return request; }
@Test public void testFindRequiresSource() throws Exception { String modelName = "model"; //$NON-NLS-1$ String functionName = "fakeFunction"; //$NON-NLS-1$ ArrayList<String> bindings = new ArrayList<String>(); bindings.add(modelName); VDBMetaData vdb = Mockito.mock(VDBMetaData.class); ModelMetaData model = Mockito.mock(ModelMetaData.class); Mockito.stub(vdb.getModel(modelName)).toReturn(model); Mockito.stub(model.getSourceNames()).toReturn(bindings); BasicSourceCapabilities basicSourceCapabilities = new BasicSourceCapabilities(); basicSourceCapabilities.setFunctionSupport(functionName, true); ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class); ConnectorManager cm = Mockito.mock(ConnectorManager.class); Mockito.stub(cm.getCapabilities()).toThrow(new TranslatorException()); Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(cm); CachedFinder finder = new CachedFinder(repo, vdb); // Test SourceCapabilities actual = finder.findCapabilities(modelName); assertNotNull(actual); //$NON-NLS-1$ assertFalse(finder.isValid(modelName)); }
@Test public void testFind() throws Exception { String modelName = "model"; //$NON-NLS-1$ String functionName = "fakeFunction"; //$NON-NLS-1$ BasicSourceCapabilities caps = new BasicSourceCapabilities(); caps.setFunctionSupport("fakeFunction", true); //$NON-NLS-1$ ArrayList<String> bindings = new ArrayList<String>(); bindings.add(modelName); VDBMetaData vdb = Mockito.mock(VDBMetaData.class); ModelMetaData model = Mockito.mock(ModelMetaData.class); Mockito.stub(vdb.getModel(modelName)).toReturn(model); Mockito.stub(model.getSourceNames()).toReturn(bindings); BasicSourceCapabilities basicSourceCapabilities = new BasicSourceCapabilities(); basicSourceCapabilities.setFunctionSupport(functionName, true); ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class); ConnectorManager cm = Mockito.mock(ConnectorManager.class); Mockito.stub(cm.getCapabilities()).toReturn(basicSourceCapabilities); Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(cm); CachedFinder finder = new CachedFinder(repo, vdb); // Test SourceCapabilities actual = finder.findCapabilities(modelName); assertEquals("Did not get expected capabilities", true, actual.supportsFunction(functionName)); //$NON-NLS-1$ assertTrue(finder.isValid(modelName)); }
ConnectorManager cm = cmr.getConnectorManager(sourceName); if (cm.getExecutionFactory().isSourceRequired() && vdb.getStatus() == Status.ACTIVE) { severity = Severity.ERROR;
public ReplaceResult updateSource(String sourceName, String translatorName, String dsName) throws AdminProcessingException{ synchronized (this.vdb) { ConnectorManagerRepository cmr = vdb.getAttachment(ConnectorManagerRepository.class); ConnectorManager cr = cmr.getConnectorManager(sourceName); if(cr == null) { throw new AdminProcessingException(RuntimePlugin.Event.TEIID40091, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40091, sourceName, this.vdb.getName(), this.vdb.getVersion()));
Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(new AutoGenDataService());
private void helpSetupDataTierManager() { FakeBufferService bs = new FakeBufferService(); rm = new DQPCore(); rm.setTransactionService(new FakeTransactionService()); rm.setBufferManager(bs.getBufferManager()); CacheConfiguration config = new CacheConfiguration(); config.setMaxAgeInSeconds(-1); rm.setResultsetCache(new SessionAwareCache<CachedResults>("resultset", new DefaultCacheFactory(config), SessionAwareCache.Type.RESULTSET, 0)); rm.setPreparedPlanCache(new SessionAwareCache<PreparedPlan>("preparedplan", new DefaultCacheFactory(config), SessionAwareCache.Type.PREPAREDPLAN, 0)); rm.start(new DQPConfiguration()); ConnectorManagerRepository repo = Mockito.mock(ConnectorManagerRepository.class); Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(connectorManager); vdb.addAttchment(ConnectorManagerRepository.class, repo); dtm = new DataTierManagerImpl(rm,bs.getBufferManager(), true); }
ConnectorManager connectorManager = cmr.getConnectorManager(aqr.getConnectorName()); if (connectorManager == null) {
ConnectorManager connectorManager = cmr.getConnectorManager(aqr.getConnectorName()); if (connectorManager == null) {
Mockito.stub(repo.getConnectorManager(Mockito.anyString())).toReturn(agds); BufferManagerImpl bm = BufferManagerFactory.createBufferManager(); bm.setInlineLobs(false);