/** * Tests Connection of the data source * * @param dsmInfo The meta information of the data source to be tested. */ public boolean testDataSourceConnection(DataSourceMetaInfo dsmInfo) throws DataSourceException { if (log.isDebugEnabled()) { log.debug("Testing connection of data source: " + dsmInfo.getName()); } DataSourceReader dsReader = DataSourceManager.getInstance().getDataSourceReader(dsmInfo.getDefinition().getType()); try { return dsReader.testDataSourceConnection( DataSourceUtils.elementToString( (Element) dsmInfo.getDefinition().getDsXMLConfiguration())); } catch (DataSourceException e) { log.error(e.getMessage(), e); throw e; } }
private Object createDataSourceObject(DataSourceMetaInfo dsmInfo, boolean isUseDataSourceFactory) throws DataSourceException { DataSourceReader dsReader = DataSourceManager.getInstance().getDataSourceReader(dsmInfo.getDefinition().getType()); if (dsReader == null) { throw new DataSourceException( "A data source reader cannot be found for the type '" + dsmInfo.getDefinition().getType() + "'"); } /* sets the current data source's (tenantId + ":" + name) as a thread local value * so it can be read by data source readers */ DataSourceUtils.setCurrentDataSourceId(this.getTenantId() + ":" + dsmInfo.getName()); return dsReader.createDataSource( DataSourceUtils.elementToString((Element) dsmInfo.getDefinition().getDsXMLConfiguration()), isUseDataSourceFactory); }