Java 类javax.sql.CommonDataSource 实例源码

项目:spring-boot-data-source-decorator    文件:DataSourceNameResolver.java   
public String resolveDataSourceName(CommonDataSource dataSource) {
    if (dataSources == null) {
        this.dataSources = applicationContext.getBeansOfType(DataSource.class);
    }
    return dataSources.entrySet()
            .stream()
            .filter(entry -> {
                DataSource candidate = entry.getValue();
                if (candidate instanceof DecoratedDataSource) {
                    return matchesDataSource((DecoratedDataSource) candidate, dataSource);
                }
                return candidate == dataSource;
            })
            .findFirst()
            .map(Entry::getKey)
            .orElse("dataSource");
}
项目:org.ops4j.pax.transx    文件:TransxDataSource.java   
public boolean isWrapperFor(Class<?> iface) throws SQLException {
    if (iface.isInstance(this)) {
        return true;
    }
    CommonDataSource cds = getUnwrappedDataSource();
    if (iface.isInstance(cds)) {
        return true;
    }
    if (cds instanceof DataSource) {
        DataSource ds = (DataSource) cds;
        if (ds.isWrapperFor(iface)) {
            return true;
        }
    }
    return false;
}
项目:org.ops4j.pax.transx    文件:TransxDataSource.java   
public <T> T unwrap(Class<T> iface) throws SQLException {
    if (iface.isInstance(this)) {
        return iface.cast(this);
    }
    CommonDataSource cds = getUnwrappedDataSource();
    if (iface.isInstance(cds)) {
        return iface.cast(cds);
    }
    if (cds instanceof DataSource) {
        DataSource ds = (DataSource) cds;
        if (ds.isWrapperFor(iface)) {
            return ds.unwrap(iface);
        }
    }
    throw new SQLException("Not a wrapper for " + iface.getName());
}
项目:requery    文件:TimeConversionsTest.java   
@Before
public void setup() throws SQLException {
    Platform platform = new HSQL();
    CommonDataSource dataSource = DatabaseType.getDataSource(platform);
    EntityModel model = Models.MODEL2;

    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setEntityCache(new EmptyEntityCache())
        .setWriteExecutor(Executors.newSingleThreadExecutor())
        .build();

    SchemaModifier tables = new SchemaModifier(configuration);
    tables.createTables(TableCreationMode.DROP_CREATE);
    data = new EntityDataStore<>(configuration);
}
项目:requery    文件:JPAModelTest.java   
@Before
public void setup() throws SQLException {
    CommonDataSource dataSource = DatabaseType.getDataSource(new H2());
    EntityModel model = Models.JPA;

    CachingProvider provider = Caching.getCachingProvider();
    CacheManager cacheManager = provider.getCacheManager();
    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setEntityCache(new EntityCacheBuilder(model)
            .useReferenceCache(true)
            .useSerializableCache(true)
            .useCacheManager(cacheManager)
            .build())
        .build();
    data = new EntityDataStore<>(configuration);
    SchemaModifier tables = new SchemaModifier(configuration);
    tables.dropTables();
    TableCreationMode mode = TableCreationMode.CREATE;
    System.out.println(tables.createTablesString(mode));
    tables.createTables(mode);
}
项目:requery    文件:UpsertTest.java   
@Before
public void setup() throws SQLException {
    CommonDataSource dataSource = DatabaseType.getDataSource(platform);
    EntityModel model = Models.MODEL3;

    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setEntityCache(new EmptyEntityCache())
        .setWriteExecutor(Executors.newSingleThreadExecutor())
        .build();

    SchemaModifier tables = new SchemaModifier(configuration);
    tables.createTables(TableCreationMode.DROP_CREATE);
    System.out.println(tables.createTablesString(TableCreationMode.DROP_CREATE));
    data = new EntityDataStore<>(configuration);
}
项目:requery    文件:ReactorTest.java   
@Before
public void setup() throws SQLException {
    Platform platform = new HSQL();
    CommonDataSource dataSource = DatabaseType.getDataSource(platform);
    EntityModel model = io.requery.test.model.Models.DEFAULT;

    CachingProvider provider = Caching.getCachingProvider();
    CacheManager cacheManager = provider.getCacheManager();
    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setWriteExecutor(Executors.newSingleThreadExecutor())
        .setEntityCache(new EntityCacheBuilder(model)
            .useReferenceCache(true)
            .useSerializableCache(true)
            .useCacheManager(cacheManager)
            .build())
        .build();

    SchemaModifier tables = new SchemaModifier(configuration);
    tables.createTables(TableCreationMode.DROP_CREATE);
    data = new ReactorEntityStore<>(new EntityDataStore<Persistable>(configuration));
}
项目:requery    文件:StatelessTest.java   
@Before
public void setup() throws SQLException {
    CommonDataSource dataSource = DatabaseType.getDataSource(platform);
    EntityModel model = Models.STATELESS;

    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setEntityCache(new EmptyEntityCache())
        .setWriteExecutor(Executors.newSingleThreadExecutor())
        .build();

    SchemaModifier tables = new SchemaModifier(configuration);
    tables.createTables(TableCreationMode.DROP_CREATE);
    System.out.println(tables.createTablesString(TableCreationMode.DROP_CREATE));
    data = new EntityDataStore<>(configuration);
}
项目:requery    文件:AutoValueModelTest.java   
@Before
public void setup() throws SQLException {
    CommonDataSource dataSource = DatabaseType.getDataSource(new SQLite());
    EntityModel model = Models.AUTOVALUE;
    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setEntityCache(new EntityCacheBuilder(model)
            .useReferenceCache(true)
            .build())
        .build();
    data = new EntityDataStore<>(configuration);
    SchemaModifier tables = new SchemaModifier(configuration);
    tables.dropTables();
    TableCreationMode mode = TableCreationMode.CREATE_NOT_EXISTS;
    System.out.println(tables.createTablesString(mode));
    tables.createTables(mode);
}
项目:requery    文件:ReactiveTest.java   
@Before
public void setup() throws SQLException {
    Platform platform = new HSQL();
    CommonDataSource dataSource = DatabaseType.getDataSource(platform);
    EntityModel model = io.requery.test.model.Models.DEFAULT;

    CachingProvider provider = Caching.getCachingProvider();
    CacheManager cacheManager = provider.getCacheManager();
    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setWriteExecutor(Executors.newSingleThreadExecutor())
        .setEntityCache(new EntityCacheBuilder(model)
            .useReferenceCache(true)
            .useSerializableCache(true)
            .useCacheManager(cacheManager)
            .build())
        .build();

    SchemaModifier tables = new SchemaModifier(configuration);
    tables.createTables(TableCreationMode.DROP_CREATE);
    data = ReactiveSupport.toReactiveStore(new EntityDataStore<Persistable>(configuration));
}
项目:requery    文件:RxTest.java   
@Before
public void setup() throws SQLException {
    Platform platform = new HSQL();
    CommonDataSource dataSource = DatabaseType.getDataSource(platform);
    EntityModel model = io.requery.test.model.Models.DEFAULT;

    CachingProvider provider = Caching.getCachingProvider();
    CacheManager cacheManager = provider.getCacheManager();
    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setWriteExecutor(Executors.newSingleThreadExecutor())
        .setEntityCache(new EntityCacheBuilder(model)
            .useReferenceCache(true)
            .useSerializableCache(true)
            .useCacheManager(cacheManager)
            .build())
        .build();

    SchemaModifier tables = new SchemaModifier(configuration);
    tables.createTables(TableCreationMode.DROP_CREATE);
    data = RxSupport.toReactiveStore(new EntityDataStore<Persistable>(configuration));
}
项目:requery    文件:SchemaModifierTest.java   
@Before
public void setup() throws SQLException {
    CommonDataSource dataSource = DatabaseType.getDataSource(platform);
    EntityModel model = io.requery.test.model.Models.DEFAULT;

    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setStatementCacheSize(10)
        .setBatchUpdateSize(50)
        .setWriteExecutor(Executors.newSingleThreadExecutor())
        .build();

    schemaModifier = new SchemaModifier(configuration);
    try {
        schemaModifier.dropTables();
    } catch (Exception e) {
        // expected if 'drop if exists' not supported (so ignore in that case)
        if (!platform.supportsIfExists()) {
            throw e;
        }
    }
    schemaModifier.createTables(TableCreationMode.CREATE);
}
项目:clearpool    文件:DataSourceUtils.java   
public static CommonDataSource getJDBCDataSource(String clazz, String url, String user,
    String password) {
  if (url == null) {
    throw new ConnectionPoolException("url is null");
  }
  Driver driver;
  try {
    if (clazz == null) {
      clazz = JdbcUtils.getDriverClassName(url);
    }
    driver = JdbcUtils.createDriver(clazz);
  } catch (SQLException e) {
    throw new ConnectionPoolException(e);
  }
  Properties connectProperties = new Properties();
  if (user != null) {
    connectProperties.put("user", user);
  }
  if (password != null) {
    connectProperties.put("password", password);
  }
  return new JDBCDataSource(clazz, url, driver, connectProperties);
}
项目:tomee    文件:DbcpDataSourceCreator.java   
@Override
public CommonDataSource pool(final String name, final String driver, final Properties properties) {
    properties.setProperty("name", name);

    final String xa = String.class.cast(properties.remove("XaDataSource"));
    if (xa == null && !properties.containsKey("JdbcDriver")) {
        properties.setProperty("driverClassName", driver);
    }

    final BasicDataSource ds = build(BasicDataSource.class, properties);
    ds.setDriverClassName(driver);
    if (xa != null) {
        ds.setDelegate(XADataSourceResource.proxy(Thread.currentThread().getContextClassLoader(), xa));
    }
    return ds;
}
项目:tomee    文件:CustomPoolDataSourceTest.java   
@Override
public CommonDataSource pool(final String name, final String driver, final Properties properties) {
    return (CustomDataSource) Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
        new Class<?>[]{CustomDataSource.class},
        new InvocationHandler() {
            @Override
            public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
                if (method.getName().equals("name")) {
                    return properties.getProperty("Name");
                }
                if ("hashCode".equals(method.getName())) {
                    return properties.hashCode(); // don't care
                }
                return null;
            }
        });
}
项目:org.ops4j.pax.transx    文件:ManagedDataSourceBuilder.java   
private static AbstractJdbcManagedConnectionFactory<?, ?, ?> create(CommonDataSource dataSource) {
    if (dataSource instanceof XADataSource) {
        return new XADataSourceMCF((XADataSource) dataSource);
    }
    else if (dataSource instanceof ConnectionPoolDataSource) {
        return new ConnectionPoolDataSourceMCF((ConnectionPoolDataSource) dataSource);
    }
    else if (dataSource instanceof DataSource) {
        return new LocalDataSourceMCF((DataSource) dataSource);
    }
    else {
        throw new UnsupportedOperationException();
    }
}
项目:requery    文件:ConfigurationBuilder.java   
private static ConnectionProvider createConnectionProvider(CommonDataSource dataSource) {
    if(dataSource instanceof ConnectionPoolDataSource) {
        return new PooledConnectionProvider((ConnectionPoolDataSource)dataSource);
    } else if (dataSource instanceof DataSource) {
        return new DataSourceConnectionProvider((DataSource)dataSource);
    } else {
        throw new IllegalArgumentException("unsupported dataSource " + dataSource);
    }
}
项目:requery    文件:JacksonTest.java   
@Before
public void setup() throws SQLException {
    CommonDataSource dataSource = DatabaseType.getDataSource(new SQLite());
    EntityModel model = Models.MODEL3;
    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        .setEntityCache(new WeakEntityCache())
        .setWriteExecutor(Executors.newSingleThreadExecutor())
        .build();

    SchemaModifier tables = new SchemaModifier(configuration);
    tables.createTables(TableCreationMode.DROP_CREATE);
    data = new EntityDataStore<>(configuration);
}
项目:requery    文件:ParameterizedFunctionalTest.java   
@Before
public void setup() throws SQLException {
    CommonDataSource dataSource = DatabaseType.getDataSource(platform);
    EntityModel model = Models.DEFAULT;

    CachingProvider provider = Caching.getCachingProvider();
    CacheManager cacheManager = provider.getCacheManager();
    Configuration configuration = new ConfigurationBuilder(dataSource, model)
        .useDefaultLogging()
        // work around bug reusing prepared statements in xerial sqlite
        .setStatementCacheSize(platform instanceof SQLite ? 0 : 10)
        .setBatchUpdateSize(50)
        .setEntityCache(new EntityCacheBuilder(model)
            .useReferenceCache(true)
            .useSerializableCache(true)
            .useCacheManager(cacheManager)
            .build())
        .build();
    data = new EntityDataStore<>(configuration);
    SchemaModifier tables = new SchemaModifier(configuration);
    try {
        tables.dropTables();
    } catch (Exception e) {
        // expected if 'drop if exists' not supported (so ignore in that case)
        if (!platform.supportsIfExists()) {
            throw e;
        }
    }
    TableCreationMode mode = TableCreationMode.CREATE;
    System.out.println(tables.createTablesString(mode));
    tables.createTables(mode);
}
项目:clearpool    文件:ConnectionPool.java   
@Override
public String get03_DriverClassName() {
  CommonDataSource dataSource = this.pool.getCfgVO().getDataSource();
  if (dataSource instanceof JDBCDataSource) {
    JDBCDataSource jdbcDataSource = (JDBCDataSource) dataSource;
    String clazz = jdbcDataSource.getClazz();
    if (clazz != null) {
      return clazz;
    }
  }
  return "-";
}
项目:clearpool    文件:ConnectionPool.java   
@Override
public String get04_Url() {
  CommonDataSource dataSource = this.pool.getCfgVO().getDataSource();
  if (dataSource instanceof JDBCDataSource) {
    JDBCDataSource jdbcDataSource = (JDBCDataSource) dataSource;
    String url = jdbcDataSource.getUrl();
    if (url != null) {
      return url;
    }
  }
  return "-";
}
项目:tomee    文件:TomEEDataSourceCreator.java   
@Override
public CommonDataSource pool(final String name, final String driver, final Properties properties) {
    final PoolConfiguration config = build(TomEEPoolProperties.class, createProperties(name, properties));
    final TomEEDataSource ds = new TomEEDataSource(config, name);
    recipes.put(ds, recipes.remove(config));
    return ds;
}
项目:tomee    文件:TomEEDataSourceCreator.java   
@Override
protected void doDestroy(final CommonDataSource dataSource) throws Throwable {
    final org.apache.tomcat.jdbc.pool.DataSource ds = (org.apache.tomcat.jdbc.pool.DataSource) dataSource;
    if (ds instanceof TomEEDataSource) {
        ((TomEEDataSource) ds).internalJMXUnregister();
    }
    ds.close(true);
}
项目:tomee    文件:DbcpDataSourceCreator.java   
@Override
public DataSource managed(final String name, final CommonDataSource ds) {
    final TransactionManager transactionManager = OpenEJB.getTransactionManager();
    if (ds instanceof XADataSource) {
        return new ManagedXADataSource(ds, transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
    }
    return new ManagedDataSource(DataSource.class.cast(ds), transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
}
项目:tomee    文件:DbcpManagedDataSource.java   
public DbcpManagedDataSource(final String name, final CommonDataSource dataSource) {
    super(name);
    this.ds = dataSource;
    if (XADataSource.class.isInstance(dataSource)) {
        setXaDataSourceInstance(XADataSource.class.cast(ds));
    }
}
项目:tomee    文件:PoolDataSourceCreator.java   
@Override
public DataSource managed(final String name, final CommonDataSource ds) {
    final TransactionManager transactionManager = OpenEJB.getTransactionManager();
    if (ds instanceof XADataSource) {
        return new ManagedXADataSource(ds, transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
    }
    return new ManagedDataSource(DataSource.class.cast(ds), transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
}
项目:tomee    文件:PoolDataSourceCreator.java   
@Override
public DataSource poolManagedWithRecovery(final String name, final XAResourceWrapper xaResourceWrapper, final String driver, final Properties properties) {
    final TransactionManager transactionManager = new TransactionManagerWrapper(OpenEJB.getTransactionManager(), name, xaResourceWrapper);
    final CommonDataSource ds = pool(name, driver, properties);
    if (ds instanceof XADataSource) {
        return new ManagedXADataSource(ds, transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
    }
    return new ManagedDataSource(DataSource.class.cast(ds), transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
}
项目:tomee    文件:FlushableDataSourceHandler.java   
private void createANewDelegate() {
    final CommonDataSource old = delegate.get();
    try {
        final ObjectRecipe recipe = new ObjectRecipe(DataSourceFactory.class.getName(), "create", FACTORY_ARGS);
        recipe.allow(Option.CASE_INSENSITIVE_PROPERTIES);
        recipe.allow(Option.IGNORE_MISSING_PROPERTIES);
        recipe.allow(Option.NAMED_PARAMETERS);
        recipe.allow(Option.PRIVATE_PROPERTIES);
        recipe.setAllProperties(config.properties);

        recipe.setProperty("resettableHandler", resettableHandler);
        recipe.setProperty("flushableHandler", this);

        updateDataSource(CommonDataSource.class.cast(recipe.create()));
    } catch (final Exception e) {
        LOGGER.error("Can't recreate the datasource, keeping old one", e);
        return;
    }

    if (DataSourceFactory.knows(old)) {
        try {
            DataSourceFactory.destroy(old);
        } catch (final Throwable t) {
            //Ignore
        }
    }
}
项目:tomee    文件:FlushableDataSourceHandler.java   
public void updateDataSource(final CommonDataSource ds) { // order is important, check DataSourceFactory
    CommonDataSource current = ds;
    while (Proxy.isProxyClass(current.getClass())) {
        final InvocationHandler handler = Proxy.getInvocationHandler(current);
        if (FlushableDataSourceHandler.class.isInstance(handler) ||
            ResettableDataSourceHandler.class.isInstance(handler)) {
            current = DelegatableHandler.class.cast(handler).getDelegate();
        } else {
            break;
        }
    }
    delegate.set(current);
}
项目:tomee    文件:ResettableDataSourceHandler.java   
public ResettableDataSourceHandler(final CommonDataSource ds, final String value, final String methods) {
    this.delegate.set(ds);

    if (!"*".equals(methods)) {
        this.retryMethods.addAll(asList(methods == null ? new String[]{"getConnection", "getXAConnection"} : methods.split(" *, *")));
    }

    final Runnable recreate = new Runnable() {
        @Override
        public void run() {
            try {
                Flushable.class.cast(delegate.get()).flush();
            } catch (final IOException ioe) {
                LOGGER.error("Can't flush connection pool: " + ioe.getMessage());
            }
        }
    };

    RetryStrategy tmp;
    if (value.equals("true")) {
        tmp = new CountRetryStrategy(recreate, 1);
    } else if (value.startsWith("retry(") && value.endsWith(")")) {
        tmp = new CountRetryStrategy(recreate, Integer.parseInt(value.substring("retry(".length(), value.length() - 1)));
    } else {
        try {
            tmp = new CountRetryStrategy(recreate, Integer.parseInt(value.trim()));
        } catch (final NumberFormatException nfe) {
            try {
                tmp = RetryStrategy.class.cast(Thread.currentThread().getContextClassLoader().loadClass(value)
                    .getConstructor(Runnable.class, String.class).newInstance(recreate, value));
            } catch (final InstantiationException | IllegalAccessException | ClassNotFoundException | NoSuchMethodException | InvocationTargetException e) {
                throw new IllegalArgumentException("Unknown retry strategy: " + value, e);
            }
        }
    }
    strategy = tmp;
}
项目:tomee    文件:DataSourceHelper.java   
public static void setUrl(final CommonDataSource dataSource, final String url) throws Exception {
    // TODO This is a big whole and we will need to rework this
    if (url.contains("jdbc:derby:")) {
        DataSourceHelper.setUrl(dataSource, url.replace("jdbc:derby:", ""), dataSource.getClass().getClassLoader(), "org.apache.derby.jdbc.EmbeddedDataSource", "setDatabaseName");
    } else {
        DataSourceHelper.setUrl(dataSource, url, dataSource.getClass().getClassLoader(), "org.hsqldb.jdbc.JDBCDataSource", "setDatabase");
    }
}
项目:tomee    文件:SimpleDataSourceCreator.java   
@Override
public DataSource managed(final String name, final CommonDataSource ds) {
    final TransactionManager transactionManager = OpenEJB.getTransactionManager();
    if (XADataSource.class.isInstance(ds)) {
        return new ManagedXADataSource(XADataSource.class.cast(ds), transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
    }
    return new ManagedDataSource(DataSource.class.cast(ds), transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
}
项目:tomee    文件:ManagedConnection.java   
public ManagedConnection(final CommonDataSource ds,
                         final TransactionManager txMgr,
                         final TransactionSynchronizationRegistry txRegistry,
                         final String user, final String password) {
    transactionManager = txMgr;
    registry = txRegistry;
    closed = false;
    key = new Key(ds, user, password);
}
项目:tomee    文件:ManagedConnection.java   
private Key(final CommonDataSource ds, final String user, final String pwd) {
    this.ds = ds;
    this.user = user;
    this.pwd = pwd;

    int result = ds.hashCode();
    result = 31 * result + (user != null ? user.hashCode() : 0);
    result = 31 * result + (pwd != null ? pwd.hashCode() : 0);
    hash = result;
}
项目:tomee    文件:JTADataSourceWrapperFactory.java   
public CommonDataSource create() {
    final TransactionManager transactionManager = OpenEJB.getTransactionManager();

    CommonDataSource cds = findDelegate();
    if (cds instanceof XADataSource) {
        cds = new ManagedXADataSource(cds, transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
    } else {
        cds = new ManagedDataSource(DataSource.class.cast(cds), transactionManager, SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
    }

    if (logSql) {
        cds = DataSourceFactory.makeItLogging(cds, logPackages);
    }
    return cds;
}
项目:tomee    文件:PersistenceUnitInfoImpl.java   
public void setJtaDataSource(final CommonDataSource jtaDataSource) {
    if (XADataSource.class.isInstance(jtaDataSource)) {
        this.jtaDataSource = new DataSourceXADataSource(
                jtaDataSource, OpenEJB.getTransactionManager(), SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
    } else {
        this.jtaDataSource = DataSource.class.cast(jtaDataSource);
    }
}
项目:tomee    文件:PersistenceUnitInfoImpl.java   
public void setNonJtaDataSource(final CommonDataSource nonJtaDataSource) {
    if (XADataSource.class.isInstance(nonJtaDataSource)) {
        this.nonJtaDataSource = new DataSourceXADataSource(
                nonJtaDataSource, OpenEJB.getTransactionManager(), SystemInstance.get().getComponent(TransactionSynchronizationRegistry.class));
    } else {
        this.nonJtaDataSource = DataSource.class.cast(nonJtaDataSource);
    }
}
项目:tomee    文件:FlushableDataSourceHandlerTest.java   
@Test
public void checkIt() throws IOException {
    assertThat(ds, instanceOf(Flushable.class));
    assertThat(ds, instanceOf(DataSource.class));
    final FlushableDataSourceHandler handler = FlushableDataSourceHandler.class.cast(Proxy.getInvocationHandler(ds));
    final CommonDataSource delegate = handler.getDelegate();
    assertNotNull(delegate);
    assertFalse(BasicDataSource.class.cast(delegate).isClosed());
    Flushable.class.cast(ds).flush();
    assertTrue(BasicDataSource.class.cast(delegate).isClosed());
    final CommonDataSource newDelegate = handler.getDelegate();
    assertFalse(BasicDataSource.class.cast(newDelegate).isClosed());
    assertNotSame(newDelegate, delegate);
}
项目:spliceengine    文件:Wrapper41DataSource.java   
public CommonDataSource   getWrappedObject() throws SQLException
{
    if ( _embedded != null ) { return _embedded; }
    else if ( _netclient != null ) { return _netclient; }
    else if ( _ecpds != null ) { return _ecpds; }
    else if ( _exads != null ) { return _exads; }
    else if ( _ccpds != null ) { return _ccpds; }
    else if ( _cxads != null ) { return _cxads; }
    else { throw nothingWrapped(); }
}
项目:spring-boot-data-source-decorator    文件:DataSourceNameResolver.java   
private boolean matchesDataSource(DecoratedDataSource decoratedCandidate, CommonDataSource dataSource) {
    return decoratedCandidate.getRealDataSource() == dataSource
            || decoratedCandidate.getDecoratingChain().stream()
            .map(DataSourceDecorationStage::getDataSource)
            .anyMatch(candidate -> candidate == dataSource);
}