@Override public JdbcStringBasedStoreConfiguration create() { return new JdbcStringBasedStoreConfiguration(attributes.protect(), async.create(), singletonStore.create(), connectionFactory != null ? connectionFactory.create() : null, table.create()); }
@Override public Builder<?> read(T template) { super.read(template); Class<? extends ConnectionFactoryConfigurationBuilder<?>> cfb = (Class<? extends ConnectionFactoryConfigurationBuilder<?>>) ConfigurationUtils.builderFor(template .connectionFactory()); connectionFactory(cfb); connectionFactory.read(template.connectionFactory()); return this; } }
@Override public void validate() { super.validate(); boolean manageConnectionFactory = attributes.attribute(MANAGE_CONNECTION_FACTORY).get(); if (manageConnectionFactory && connectionFactory == null) { throw log.missingConnectionFactory(); } else if (!manageConnectionFactory && connectionFactory != null) { throw log.unmanagedConnectionFactory(); } if (connectionFactory != null) { connectionFactory.validate(); } }
private void testConnectionPoolLoaded(Class connectionPoolType) throws Exception { storeBuilder = TestCacheManagerFactory .getDefaultCacheConfiguration(false) .persistence() .addStore(JdbcStringBasedStoreConfigurationBuilder.class); factoryBuilder = UnitTestDatabaseManager.configureUniqueConnectionFactory(storeBuilder); ConnectionFactoryConfiguration factoryConfiguration = factoryBuilder.create(); factory.start(factoryConfiguration, Thread.currentThread().getContextClassLoader()); Field field = factory.getClass().getDeclaredField("connectionPool"); field.setAccessible(true); ConnectionPool connectionPool = (ConnectionPool) field.get(factory); assert connectionPool != null; assert connectionPoolType.isInstance(connectionPool); } }
private void testNoDriverClassFound() throws Exception { storeBuilder = TestCacheManagerFactory .getDefaultCacheConfiguration(false) .persistence() .addStore(JdbcStringBasedStoreConfigurationBuilder.class); factoryBuilder = UnitTestDatabaseManager.configureBrokenConnectionFactory(storeBuilder); ConnectionFactoryConfiguration factoryConfiguration = factoryBuilder.create(); factory.start(factoryConfiguration, Thread.currentThread().getContextClassLoader()); }
public void start() throws PersistenceException { JdbcStringBasedStoreConfigurationBuilder storeBuilder = TestCacheManagerFactory .getDefaultCacheConfiguration(false) .persistence() .addStore(JdbcStringBasedStoreConfigurationBuilder.class); simpleFactory = new SimpleConnectionFactory(); simpleFactory.start(UnitTestDatabaseManager.configureSimpleConnectionFactory(storeBuilder).create(), Thread.currentThread().getContextClassLoader()); }
private void testValuesNoOverrides() throws Exception { storeBuilder = TestCacheManagerFactory .getDefaultCacheConfiguration(false) .persistence() .addStore(JdbcStringBasedStoreConfigurationBuilder.class); factoryBuilder = UnitTestDatabaseManager.configureUniqueConnectionFactory(storeBuilder); ConnectionFactoryConfiguration factoryConfiguration = factoryBuilder.create(); factory.start(factoryConfiguration, Thread.currentThread().getContextClassLoader()); int hardcodedMaxPoolSize = factory.getMaxPoolSize(); Set<Connection> connections = new HashSet<>(); for (int i = 0; i < hardcodedMaxPoolSize; i++) { connections.add(factory.getConnection()); } assert connections.size() == hardcodedMaxPoolSize; assert factory.getNumBusyConnectionsAllUsers() == hardcodedMaxPoolSize; for (Connection conn : connections) { conn.close(); } long start = System.currentTimeMillis(); while (System.currentTimeMillis() - start < 2000) { if (factory.getNumBusyConnectionsAllUsers() == 0) break; } //this must happen eventually assert factory.getNumBusyConnectionsAllUsers() == 0; }
@BeforeClass public void createConnection() throws Exception { JdbcStringBasedStoreConfigurationBuilder storeBuilder = TestCacheManagerFactory .getDefaultCacheConfiguration(false) .persistence() .addStore(JdbcStringBasedStoreConfigurationBuilder.class); UnitTestDatabaseManager.setDialect(storeBuilder); UnitTestDatabaseManager.buildTableManipulation(storeBuilder.table()); ConnectionFactoryConfiguration factoryConfiguration = UnitTestDatabaseManager.configureUniqueConnectionFactory(storeBuilder).create(); if (factoryConfiguration instanceof SimpleConnectionFactoryConfiguration) { SimpleConnectionFactoryConfiguration simpleConfiguration = (SimpleConnectionFactoryConfiguration) factoryConfiguration; connectionFactory = ConnectionFactory.getConnectionFactory(SimpleConnectionFactory.class); connectionFactory.start(simpleConfiguration, connectionFactory.getClass().getClassLoader()); connection = connectionFactory.getConnection(); } else if (factoryConfiguration instanceof PooledConnectionFactoryConfiguration) { PooledConnectionFactoryConfiguration pooledConfiguration = (PooledConnectionFactoryConfiguration) factoryConfiguration; connectionFactory = ConnectionFactory.getConnectionFactory(PooledConnectionFactory.class); connectionFactory.start(pooledConfiguration, connectionFactory.getClass().getClassLoader()); connection = connectionFactory.getConnection(); } tableManager = TableManagerFactory.getManager(connectionFactory, storeBuilder.create()); tableManager.setCacheName("aName"); }
public void testConnectionLeakGuessDialect() throws Exception { JdbcStringBasedStoreConfigurationBuilder storeBuilder = TestCacheManagerFactory .getDefaultCacheConfiguration(false) .persistence() .addStore(JdbcStringBasedStoreConfigurationBuilder.class); UnitTestDatabaseManager.buildTableManipulation(storeBuilder.table()); PooledConnectionFactory connectionFactory = new PooledConnectionFactory(); ConnectionFactoryConfiguration config = UnitTestDatabaseManager .configureUniqueConnectionFactory(storeBuilder).create(); connectionFactory.start(config, Thread.currentThread().getContextClassLoader()); // JdbcStringBasedStoreConfiguration defaults to null dialect, so dialect and versions must be guessed TableManager tableManager = TableManagerFactory.getManager(connectionFactory, storeBuilder.create()); tableManager.setCacheName("GuessDialect"); tableManager.start(); UnitTestDatabaseManager.verifyConnectionLeaks(connectionFactory); tableManager.stop(); connectionFactory.stop(); }
static ConfigurationBuilder createCacheStoreConfig(String mapperName, boolean wrap, boolean preload) { ConfigurationBuilder cfg = TestCacheManagerFactory.getDefaultCacheConfiguration(false); JdbcStringBasedStoreConfigurationBuilder store = cfg .persistence() .addStore(JdbcStringBasedStoreConfigurationBuilder.class) .fetchPersistentState(true) .preload(preload) .key2StringMapper(mapperName); UnitTestDatabaseManager.buildTableManipulation(store.table()); if (wrap) { ConnectionFactoryConfigurationBuilder<?> tmp = UnitTestDatabaseManager.configureUniqueConnectionFactory(new ConfigurationBuilder().persistence().addStore(JdbcStringBasedStoreConfigurationBuilder.class)); store.connectionFactory(new SharedConnectionFactoryConfigurationBuilder(store)).read((PooledConnectionFactoryConfiguration)tmp.create()); } else { UnitTestDatabaseManager.configureUniqueConnectionFactory(store); } return cfg; }