private MetadataRepository getMetadataRepository(VDBMetaData vdb, String schemaName) { ModelMetaData model = vdb.getModel(schemaName); return model.getAttachment(MetadataRepository.class); }
private MetadataRepository getMetadataRepository(VDBMetaData vdb, String schemaName) { ModelMetaData model = vdb.getModel(schemaName); return model.getAttachment(MetadataRepository.class); }
private MetadataRepository getMetadataRepository(VDBMetaData vdb, String schemaName) { ModelMetaData model = vdb.getModel(schemaName); return model.getAttachment(MetadataRepository.class); }
@Override public boolean isVisible(String modelName) { ModelMetaData model = getModel(modelName); if (model == null) { return true; } if (!visibilityOverrides.isEmpty()) { Boolean result = visibilityOverrides.get(modelName); if (result != null) { return result; } } return model.isVisible(); }
@Override public boolean isVisible(String modelName) { ModelMetaData model = getModel(modelName); if (model == null) { return true; } if (!visibilityOverrides.isEmpty()) { Boolean result = visibilityOverrides.get(modelName); if (result != null) { return result; } } return model.isVisible(); }
private static boolean isVisible(VDBMetaData vdb, org.teiid.metadata.Schema schema) { String schemaName = schema.getName(); Model model = vdb.getModel(schemaName); if (model == null) { return true; } return model.isVisible(); } }
public MetadataRepository getMetadataRepository(AbstractMetadataRecord target, VDBMetaData vdb) { String modelName = null; while (target.getParent() != null) { target = target.getParent(); } modelName = target.getName(); if (modelName != null) { ModelMetaData model = vdb.getModel(modelName); if (model != null) { return model.getAttachment(MetadataRepository.class); } } return null; }
public MetadataRepository getMetadataRepository(AbstractMetadataRecord target, VDBMetaData vdb) { String modelName = null; while (target.getParent() != null) { target = target.getParent(); } modelName = target.getName(); if (modelName != null) { ModelMetaData model = vdb.getModel(modelName); if (model != null) { return model.getAttachment(MetadataRepository.class); } } return null; }
public MetadataRepository getMetadataRepository(AbstractMetadataRecord target, VDBMetaData vdb) { String modelName = null; while (target.getParent() != null) { target = target.getParent(); } modelName = target.getName(); if (modelName != null) { ModelMetaData model = vdb.getModel(modelName); if (model != null) { return model.getAttachment(MetadataRepository.class); } } return null; }
@Test public void testExcludeImported() throws Exception { VDBMetaData metadata = TestVDBUtility.buildVDB(); assertNotNull(metadata.getModel("model-one")); metadata.setImportedModels(Collections.singleton("model-one")); ByteArrayOutputStream baos = new ByteArrayOutputStream(); VDBMetadataParser.marshell(metadata, baos); baos.close(); VDBMetaData parsed = VDBMetadataParser.unmarshell(new ByteArrayInputStream(baos.toByteArray())); assertNull(parsed.getModel("model-one")); }
continue; ModelMetaData model = vdb.getModel(schema.getName());
@Test public void testSingleReplacementAltName() throws Exception { final QueryMetadataInterface metadata = RealMetadataFactory.exampleMultiBinding(); final String userSql = "SELECT * FROM MultiModel.Phys WHERE foo = 'a'"; //$NON-NLS-1$ final String multiModel = "MultiModel"; //$NON-NLS-1$ final int sources = 2; final List<?>[] expected = new List<?>[] { Arrays.asList(new Object[] { null, null}) }; final HardcodedDataManager dataMgr = new MultiSourceDataManager(); dataMgr.setMustRegisterCommands(false); VDBMetaData vdb = RealMetadataFactory.exampleMultiBindingVDB(); vdb.getModel("MultiModel").addProperty(MultiSourceMetadataWrapper.MULTISOURCE_COLUMN_NAME, "foo"); helpTestMultiSourcePlan(metadata, userSql, multiModel, sources, dataMgr, expected, vdb); }
@Override public void removeSource(String vdbName, String vdbVersion, String modelName, String sourceName) throws AdminException { VDBMetaData vdb = checkVDB(vdbName, vdbVersion); synchronized(vdb) { ModelMetaData model = vdb.getModel(modelName); if (model == null) { throw new AdminProcessingException(RuntimePlugin.Event.TEIID40090, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40090, modelName, vdb.getName(), vdb.getVersion())); } SourceMappingMetadata source = model.getSourceMapping(sourceName); if(source == null) { throw new AdminProcessingException(RuntimePlugin.Event.TEIID40107, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40107, sourceName, modelName, vdb.getName(), vdb.getVersion())); } source = model.getSources().remove(sourceName); if(source == null) { throw new AdminProcessingException(RuntimePlugin.Event.TEIID40091, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40091, sourceName, modelName, vdb.getName(), vdb.getVersion())); } } }
@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)); }
private AtomicRequestMessage createRequest(RequestWorkItem workItem, Command command, String modelName, String connectorBindingId, int nodeID) throws TeiidComponentException { RequestMessage request = workItem.requestMsg; // build the atomic request based on original request + context info AtomicRequestMessage aqr = new AtomicRequestMessage(request, workItem.getDqpWorkContext(), nodeID); aqr.setCommand(command); aqr.setModelName(modelName); aqr.setMaxResultRows(requestMgr.getMaxSourceRows()); aqr.setExceptionOnMaxRows(requestMgr.isExceptionOnMaxSourceRows()); aqr.setPartialResults(request.supportsPartialResults()); aqr.setSerial(requestMgr.getUserRequestSourceConcurrency() == 1); aqr.setTransactionContext(workItem.getTransactionContext()); aqr.setBufferManager(this.getBufferManager()); if (connectorBindingId == null) { VDBMetaData vdb = workItem.getDqpWorkContext().getVDB(); ModelMetaData model = vdb.getModel(modelName); List<String> bindings = model.getSourceNames(); if (bindings == null || bindings.size() != 1) { // this should not happen, but it did occur when setting up the SystemAdmin models throw new TeiidComponentException(QueryPlugin.Event.TEIID30554, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30554, modelName, workItem.getDqpWorkContext().getVdbName(), workItem.getDqpWorkContext().getVdbVersion())); } connectorBindingId = bindings.get(0); Assertion.isNotNull(connectorBindingId, "could not obtain connector id"); //$NON-NLS-1$ } aqr.setConnectorName(connectorBindingId); return aqr; }
private AtomicRequestMessage createRequest(RequestWorkItem workItem, Command command, String modelName, String connectorBindingId, int nodeID) throws TeiidComponentException { RequestMessage request = workItem.requestMsg; // build the atomic request based on original request + context info AtomicRequestMessage aqr = new AtomicRequestMessage(request, workItem.getDqpWorkContext(), nodeID); aqr.setCommand(command); aqr.setModelName(modelName); aqr.setMaxResultRows(requestMgr.getMaxSourceRows()); aqr.setExceptionOnMaxRows(requestMgr.isExceptionOnMaxSourceRows()); aqr.setPartialResults(request.supportsPartialResults()); aqr.setSerial(requestMgr.getUserRequestSourceConcurrency() == 1); aqr.setTransactionContext(workItem.getTransactionContext()); aqr.setBufferManager(this.getBufferManager()); if (connectorBindingId == null) { VDBMetaData vdb = workItem.getDqpWorkContext().getVDB(); ModelMetaData model = vdb.getModel(modelName); List<String> bindings = model.getSourceNames(); if (bindings == null || bindings.size() != 1) { // this should not happen, but it did occur when setting up the SystemAdmin models throw new TeiidComponentException(QueryPlugin.Event.TEIID30554, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30554, modelName, workItem.getDqpWorkContext().getVdbName(), workItem.getDqpWorkContext().getVdbVersion())); } connectorBindingId = bindings.get(0); Assertion.isNotNull(connectorBindingId, "could not obtain connector id"); //$NON-NLS-1$ } aqr.setConnectorName(connectorBindingId); return aqr; }
private AtomicRequestMessage createRequest(RequestWorkItem workItem, Command command, String modelName, String connectorBindingId, int nodeID) throws TeiidComponentException { RequestMessage request = workItem.requestMsg; // build the atomic request based on original request + context info AtomicRequestMessage aqr = new AtomicRequestMessage(request, workItem.getDqpWorkContext(), nodeID); aqr.setCommand(command); aqr.setModelName(modelName); aqr.setMaxResultRows(requestMgr.getMaxSourceRows()); aqr.setExceptionOnMaxRows(requestMgr.isExceptionOnMaxSourceRows()); aqr.setPartialResults(request.supportsPartialResults()); aqr.setSerial(requestMgr.getUserRequestSourceConcurrency() == 1); aqr.setTransactionContext(workItem.getTransactionContext()); aqr.setBufferManager(this.getBufferManager()); if (connectorBindingId == null) { VDBMetaData vdb = workItem.getDqpWorkContext().getVDB(); ModelMetaData model = vdb.getModel(modelName); List<String> bindings = model.getSourceNames(); if (bindings == null || bindings.size() != 1) { // this should not happen, but it did occur when setting up the SystemAdmin models throw new TeiidComponentException(QueryPlugin.Event.TEIID30554, QueryPlugin.Util.gs(QueryPlugin.Event.TEIID30554, modelName, workItem.getDqpWorkContext().getVdbName(), workItem.getDqpWorkContext().getVdbVersion())); } connectorBindingId = bindings.get(0); Assertion.isNotNull(connectorBindingId, "could not obtain connector id"); //$NON-NLS-1$ } aqr.setConnectorName(connectorBindingId); return aqr; }
@Test public void testProcVisibility() throws Exception { TransformationMetadata tm = exampleTransformationMetadata(); VDBMetaData vdb = tm.getVdbMetaData(); vdb.getModel("x").setVisible(false); StoredProcedureInfo spi = tm.getStoredProcedureInfoForProcedure("y"); //$NON-NLS-1$ assertEquals("x1.y", spi.getProcedureCallableName()); spi = tm.getStoredProcedureInfoForProcedure("x.y"); //$NON-NLS-1$ assertEquals("x.y", spi.getProcedureCallableName()); }
@Override public void addSource(String vdbName, String vdbVersion, String modelName, String sourceName, String translatorName, String dsName) throws AdminException { VDBMetaData vdb = checkVDB(vdbName, vdbVersion); synchronized(vdb) { ModelMetaData model = vdb.getModel(modelName); if (model == null) { throw new AdminProcessingException(RuntimePlugin.Event.TEIID40090, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40090, modelName, vdb.getName(), vdb.getVersion())); } if (!model.isSupportsMultiSourceBindings()) { throw new AdminProcessingException(RuntimePlugin.Event.TEIID40108, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40108, modelName, vdb.getName(), vdb.getVersion())); } SourceMappingMetadata source = model.getSourceMapping(sourceName); if(source != null) { throw new AdminProcessingException(RuntimePlugin.Event.TEIID40107, RuntimePlugin.Util.gs(RuntimePlugin.Event.TEIID40107, sourceName, modelName, vdb.getName(), vdb.getVersion())); } SourceMappingMetadata mapping = new SourceMappingMetadata(sourceName, translatorName, dsName); model.addSourceMapping(mapping); } }