Refactor how session factory Configuration is built up

git-svn-id: https://svn.jboss.org/repos/hibernate/core/trunk@14361 1b8cb986-b30d-0410-93ca-fae66ebed9b2
This commit is contained in:
Brian Stansberry 2008-02-25 20:14:52 +00:00
parent 65dada846c
commit bae1559748
3 changed files with 44 additions and 51 deletions

View File

@ -29,6 +29,9 @@ import org.hibernate.cfg.Environment;
import org.hibernate.cfg.Mappings;
import org.hibernate.dialect.Dialect;
import org.hibernate.junit.functional.FunctionalTestCase;
import org.hibernate.transaction.CMTTransactionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Provides common configuration setups for cache testing.
@ -37,6 +40,8 @@ import org.hibernate.junit.functional.FunctionalTestCase;
*/
public abstract class CacheTestCaseBase extends FunctionalTestCase {
private static final Logger log = LoggerFactory.getLogger( CacheTestCaseBase.class );
private static final String PREFER_IPV4STACK = "java.net.preferIPv4Stack";
private String preferIPv4Stack;
@ -50,7 +55,7 @@ public abstract class CacheTestCaseBase extends FunctionalTestCase {
}
public String[] getMappings() {
return new String[] { "cache/jbc2/functional/Item.hbm.xml" };
return new String[] { "cache/jbc2/functional/Item.hbm.xml", "cache/jbc2/functional/Customer.hbm.xml", "cache/jbc2/functional/Contact.hbm.xml" };
}
public void configure(Configuration cfg) {
@ -65,7 +70,8 @@ public abstract class CacheTestCaseBase extends FunctionalTestCase {
cfg.setProperty(Environment.USE_QUERY_CACHE, String.valueOf(getUseQueryCache()));
cfg.setProperty(Environment.CONNECTION_PROVIDER, org.hibernate.test.tm.ConnectionProviderImpl.class.getName());
cfg.setProperty(Environment.TRANSACTION_MANAGER_STRATEGY, org.hibernate.test.tm.TransactionManagerLookupImpl.class.getName());
cfg.setProperty( Environment.TRANSACTION_STRATEGY, CMTTransactionFactory.class.getName() );
configureCacheFactory(cfg);
}
@ -74,38 +80,16 @@ public abstract class CacheTestCaseBase extends FunctionalTestCase {
}
/**
* The cache provider to be tested.
* Apply any region-factory specific configurations.
*
* @return The cache provider.
* @param the Configuration to update.
*/
protected void configureCacheFactory(Configuration cfg) {
if (getConfigResourceKey() != null) {
cfg.setProperty(getConfigResourceKey(), getConfigResourceLocation());
}
}
protected abstract void configureCacheFactory(Configuration cfg);
protected abstract Class<? extends RegionFactory> getCacheRegionFactory();
protected abstract boolean getUseQueryCache();
/**
* For provider-specific configuration, the name of the property key the
* provider expects.
*
* @return The provider-specific config key.
*/
protected String getConfigResourceKey() {
return Environment.CACHE_REGION_FACTORY;
}
/**
* For provider-specific configuration, the resource location of that config
* resource.
*
* @return The config resource location.
*/
protected abstract String getConfigResourceLocation();
@Override
public void afterConfigurationBuilt(Mappings mappings, Dialect dialect) {
@ -130,5 +114,14 @@ public abstract class CacheTestCaseBase extends FunctionalTestCase {
}
protected void sleep(long ms) {
try {
Thread.sleep(ms);
}
catch (InterruptedException e) {
log.warn("Interrupted during sleep", e);
}
}
}

View File

@ -28,19 +28,18 @@ import junit.framework.Test;
import org.hibernate.cache.RegionFactory;
import org.hibernate.cache.jbc2.JBossCacheRegionFactory;
import org.hibernate.cache.jbc2.builder.SharedCacheInstanceManager;
import org.hibernate.cfg.Configuration;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
/**
* FIXME Move to hibernate-testsuite project and rename class x- "Disabled"
* Basic functional test of a optimistic locking entity + query cache.
*
* @author Brian Stansberry
*/
public class OptimisticJBossCacheTest extends AbstractQueryCacheFunctionalTestCase {
// note that a lot of the fucntionality here is intended to be used
// in creating specific tests for each CacheProvider that would extend
// from a base test case (this) for common requirement testing...
private static final String JBC_CONFIG = "org/hibernate/test/cache/jbc2/functional/optimistic-treecache.xml";
public OptimisticJBossCacheTest(String x) {
super(x);
}
@ -51,14 +50,15 @@ public class OptimisticJBossCacheTest extends AbstractQueryCacheFunctionalTestCa
protected Class<? extends RegionFactory> getCacheRegionFactory() {
return JBossCacheRegionFactory.class;
}
}
protected String getConfigResourceKey() {
return SharedCacheInstanceManager.CACHE_RESOURCE_PROP;
}
protected String getConfigResourceLocation() {
return "org/hibernate/test/cache/jbc2/functional/optimistic-treecache.xml";
/**
* Apply any region-factory specific configurations.
*
* @param the Configuration to update.
*/
protected void configureCacheFactory(Configuration cfg) {
cfg.setProperty(SharedCacheInstanceManager.CACHE_RESOURCE_PROP, JBC_CONFIG);
}
}

View File

@ -28,19 +28,18 @@ import junit.framework.Test;
import org.hibernate.cache.RegionFactory;
import org.hibernate.cache.jbc2.JBossCacheRegionFactory;
import org.hibernate.cache.jbc2.builder.SharedCacheInstanceManager;
import org.hibernate.cfg.Configuration;
import org.hibernate.junit.functional.FunctionalTestClassTestSuite;
/**
* FIXME Move to hibernate-testsuite project and rename class x- "Disabled"
* Basic functional test of a pessimistic locking entity + query cache.
*
* @author Brian Stansberry
*/
public class PessimisticJBossCacheTest extends AbstractQueryCacheFunctionalTestCase {
// note that a lot of the fucntionality here is intended to be used
// in creating specific tests for each CacheProvider that would extend
// from a base test case (this) for common requirement testing...
private static final String JBC_CONFIG = "org/hibernate/test/cache/jbc2/functional/pessimistic-treecache.xml";
public PessimisticJBossCacheTest(String x) {
super(x);
}
@ -51,14 +50,15 @@ public class PessimisticJBossCacheTest extends AbstractQueryCacheFunctionalTestC
protected Class<? extends RegionFactory> getCacheRegionFactory() {
return JBossCacheRegionFactory.class;
}
}
protected String getConfigResourceKey() {
return SharedCacheInstanceManager.CACHE_RESOURCE_PROP;
}
protected String getConfigResourceLocation() {
return "org/hibernate/test/cache/jbc2/functional/pessimistic-treecache.xml";
/**
* Apply any region-factory specific configurations.
*
* @param the Configuration to update.
*/
protected void configureCacheFactory(Configuration cfg) {
cfg.setProperty(SharedCacheInstanceManager.CACHE_RESOURCE_PROP, JBC_CONFIG);
}
}