Author: steve.ebersole(a)jboss.com
Date: 2010-08-31 14:57:54 -0400 (Tue, 31 Aug 2010)
New Revision: 20295
Modified:
core/trunk/core/src/main/java/org/hibernate/cfg/SettingsFactory.java
Log:
HHH-5520 - Per org.hibernate.cache.RegionFactory javadocs, implementors should be allowed
to use no-arg constructor
Modified: core/trunk/core/src/main/java/org/hibernate/cfg/SettingsFactory.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/cfg/SettingsFactory.java 2010-08-31
18:44:56 UTC (rev 20294)
+++ core/trunk/core/src/main/java/org/hibernate/cfg/SettingsFactory.java 2010-08-31
18:57:54 UTC (rev 20295)
@@ -24,6 +24,7 @@
package org.hibernate.cfg;
import java.io.Serializable;
+import java.lang.reflect.Constructor;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
@@ -368,8 +369,8 @@
return new org.hibernate.bytecode.cglib.BytecodeProviderImpl();
}
else {
- log.debug( "using cglib as bytecode provider by default" );
- return new org.hibernate.bytecode.cglib.BytecodeProviderImpl();
+ log.debug( "using javassist as bytecode provider by default" );
+ return new org.hibernate.bytecode.javassist.BytecodeProviderImpl();
}
}
@@ -404,9 +405,19 @@
}
log.info( "Cache region factory : " + regionFactoryClassName );
try {
- return ( RegionFactory ) ReflectHelper.classForName( regionFactoryClassName )
- .getConstructor( new Class[] { Properties.class } )
- .newInstance( new Object[] { properties } );
+ try {
+ return (RegionFactory) ReflectHelper.classForName( regionFactoryClassName )
+ .getConstructor( Properties.class )
+ .newInstance( properties );
+ }
+ catch ( NoSuchMethodException nsme ) {
+ // no constructor accepting Properties found, try no arg constructor
+ log.debug(
+ regionFactoryClassName + " did not provide constructor accepting
java.util.Properties; " +
+ "attempting no-arg constructor."
+ );
+ return (RegionFactory) ReflectHelper.classForName( regionFactoryClassName
).newInstance();
+ }
}
catch ( Exception e ) {
throw new HibernateException( "could not instantiate RegionFactory [" +
regionFactoryClassName + "]", e );
@@ -429,9 +440,9 @@
protected BatcherFactory createBatcherFactory(Properties properties, int batchSize) {
String batcherClass = properties.getProperty(Environment.BATCH_STRATEGY);
if (batcherClass==null) {
- return batchSize==0 ?
- (BatcherFactory) new NonBatchingBatcherFactory() :
- (BatcherFactory) new BatchingBatcherFactory();
+ return batchSize == 0
+ ? new NonBatchingBatcherFactory()
+ : new BatchingBatcherFactory();
}
else {
log.info("Batcher factory: " + batcherClass);
Show replies by date