package org.infinispan.query.blackbox;
import java.io.InputStream;
import org.infinispan.commons.util.FileLookupFactory;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.configuration.cache.StoreConfigurationBuilder;
import org.infinispan.configuration.parsing.ConfigurationBuilderHolder;
import org.infinispan.configuration.parsing.ParserRegistry;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.persistence.jdbc.configuration.AbstractJdbcStoreConfigurationBuilder;
import org.infinispan.test.fwk.TestCacheManagerFactory;
import org.testng.annotations.Test;
/**
* Testing the ISPN Directory configuration with Async. JDBC CacheStore. The tests are performed for Clustered cache.
*
* @author Anna Manukyan
*/
@Test(groups = "functional", testName = "query.blackbox.ClusteredCacheWithAsyncDirTest")
public class ClusteredCacheWithAsyncDirTest extends ClusteredCacheTest {
@Override
protected void createCacheManagers() throws Exception {
cacheManagers.add(createCacheManager(1));
cacheManagers.add(createCacheManager(2));
waitForClusterToForm();
cache1 = cacheManagers.get(0).getCache("JDBCBased_LocalIndex");
cache2 = cacheManagers.get(1).getCache("JDBCBased_LocalIndex");
}
private EmbeddedCacheManager createCacheManager(int nodeIndex) throws Exception {
InputStream is = FileLookupFactory.newInstance().lookupFileStrict("async-jdbc-store-config.xml",
Thread.currentThread().getContextClassLoader());
ParserRegistry parserRegistry = new ParserRegistry(Thread.currentThread().getContextClassLoader());
ConfigurationBuilderHolder holder = parserRegistry.parse(is);
is.close();
for (ConfigurationBuilder builder : holder.getNamedConfigurationBuilders().values()) {
for (StoreConfigurationBuilder storeBuilder : builder.persistence().stores()) {
if (storeBuilder instanceof AbstractJdbcStoreConfigurationBuilder) {
AbstractJdbcStoreConfigurationBuilder jdbcStoreBuilder = (AbstractJdbcStoreConfigurationBuilder) storeBuilder;
jdbcStoreBuilder.simpleConnection()
.driverClass("org.h2.Driver")
.connectionUrl("jdbc:h2:mem:infinispan_string_based_" + nodeIndex + ";DB_CLOSE_DELAY=-1")
.username("sa");
}
}
}
return TestCacheManagerFactory.createClusteredCacheManager(holder);
}
protected boolean transactionsEnabled() {
return true;
}
}