[infinispan-commits] Infinispan SVN: r2192 - in trunk: cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory and 6 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed Aug 11 06:48:48 EDT 2010
Author: mircea.markus
Date: 2010-08-11 06:48:47 -0400 (Wed, 11 Aug 2010)
New Revision: 2192
Modified:
trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/AbstractJdbcCacheStoreConfig.java
trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/AbstractNonDelegatingJdbcCacheStoreConfig.java
trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/PooledConnectionFactory.java
trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStore.java
trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapper.java
trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java
trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreConfig.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfigTest.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest.java
trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest2.java
trunk/cachestore/jdbc/src/test/resources/log4j.xml
trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java
trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStoreConfig.java
Log:
migrated 2186 to trunk
Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/AbstractJdbcCacheStoreConfig.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/AbstractJdbcCacheStoreConfig.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/AbstractJdbcCacheStoreConfig.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -67,4 +67,11 @@
result.connectionFactoryConfig = connectionFactoryConfig.clone();
return result;
}
+
+ @Override
+ public String toString() {
+ return "AbstractJdbcCacheStoreConfig{" +
+ "connectionFactoryConfig=" + connectionFactoryConfig +
+ "} " + super.toString();
+ }
}
Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/AbstractNonDelegatingJdbcCacheStoreConfig.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/AbstractNonDelegatingJdbcCacheStoreConfig.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/AbstractNonDelegatingJdbcCacheStoreConfig.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -161,4 +161,14 @@
result.tableManipulation = tableManipulation.clone();
return result;
}
+
+ @Override
+ public String toString() {
+ return "AbstractNonDelegatingJdbcCacheStoreConfig{" +
+ "lockConcurrencyLevel=" + lockConcurrencyLevel +
+ ", lockAcquistionTimeout=" + lockAcquistionTimeout +
+ ", tableManipulation=" + tableManipulation +
+ ", manageConnectionFactory=" + manageConnectionFactory +
+ "} " + super.toString();
+ }
}
Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/PooledConnectionFactory.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/PooledConnectionFactory.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/connectionfactory/PooledConnectionFactory.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -84,7 +84,7 @@
try {
DataSources.destroy(pooledDataSource);
if (log.isTraceEnabled()) {
- log.debug("Sucessfully stopped PooledConnectionFactory.");
+ log.debug("Successfully stopped PooledConnectionFactory.");
}
}
catch (SQLException sqle) {
@@ -95,16 +95,9 @@
@Override
public Connection getConnection() throws CacheLoaderException {
try {
- if (log.isTraceEnabled()) {
- log.trace("DataSource before checkout (NumBusyConnectionsAllUsers) : " + pooledDataSource.getNumBusyConnectionsAllUsers());
- log.trace("DataSource before checkout (NumConnectionsAllUsers) : " + pooledDataSource.getNumConnectionsAllUsers());
- }
+ logBefore(true);
Connection connection = pooledDataSource.getConnection();
- if (log.isTraceEnabled()) {
- log.trace("DataSource after checkout (NumBusyConnectionsAllUsers) : " + pooledDataSource.getNumBusyConnectionsAllUsers());
- log.trace("DataSource after checkout (NumConnectionsAllUsers) : " + pooledDataSource.getNumConnectionsAllUsers());
- log.trace("Connection checked out: " + connection);
- }
+ logAfter(connection, true);
return connection;
} catch (SQLException e) {
throw new CacheLoaderException("Failed obtaining connection from PooledDataSource", e);
@@ -113,12 +106,35 @@
@Override
public void releaseConnection(Connection conn) {
+ logBefore(false);
JdbcUtil.safeClose(conn);
+ logAfter(conn, false);
}
public ComboPooledDataSource getPooledDataSource() {
return pooledDataSource;
}
+ private void logBefore(boolean checkout) {
+ if (log.isTraceEnabled()) {
+ String operation = checkout ? "checkout" : "release";
+ try {
+ log.trace("DataSource before " + operation + " (NumBusyConnectionsAllUsers) : " + pooledDataSource.getNumBusyConnectionsAllUsers() + ", (NumConnectionsAllUsers) : " + pooledDataSource.getNumConnectionsAllUsers());
+ } catch (SQLException e) {
+ log.warn("Unexpected", e);
+ }
+ }
+ }
+ private void logAfter(Connection connection, boolean checkout) {
+ if (log.isTraceEnabled()) {
+ String operation = checkout ? "checkout" : "release";
+ try {
+ log.trace("DataSource after " + operation + " (NumBusyConnectionsAllUsers) : " + pooledDataSource.getNumBusyConnectionsAllUsers() + ", (NumConnectionsAllUsers) : " + pooledDataSource.getNumConnectionsAllUsers());
+ } catch (SQLException e) {
+ log.warn("Unexpected", e);
+ }
+ log.trace("Connection " + operation + " : " + connection);
+ }
+ }
}
Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStore.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStore.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStore.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -33,6 +33,8 @@
import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
import org.infinispan.loaders.jdbc.stringbased.JdbcStringBasedCacheStore;
import org.infinispan.marshall.StreamingMarshaller;
+import org.infinispan.util.logging.Log;
+import org.infinispan.util.logging.LogFactory;
import java.io.ObjectInput;
import java.io.ObjectOutput;
@@ -66,6 +68,8 @@
@CacheLoaderMetadata(configurationClass = JdbcMixedCacheStoreConfig.class)
public class JdbcMixedCacheStore extends AbstractCacheStore {
+ private static Log log = LogFactory.getLog(JdbcMixedCacheStore.class);
+
private JdbcMixedCacheStoreConfig config;
private JdbcBinaryCacheStore binaryCacheStore = new JdbcBinaryCacheStore();
private JdbcStringBasedCacheStore stringBasedCacheStore = new JdbcStringBasedCacheStore();
@@ -112,6 +116,10 @@
public Set<InternalCacheEntry> loadAll() throws CacheLoaderException {
Set<InternalCacheEntry> fromBuckets = binaryCacheStore.loadAll();
Set<InternalCacheEntry> fromStrings = stringBasedCacheStore.loadAll();
+ if (log.isTraceEnabled()) {
+ log.trace("Loaded from bucket: " + fromBuckets);
+ log.trace("Loaded from string: " + fromStrings);
+ }
fromBuckets.addAll(fromStrings);
return fromBuckets;
}
Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapper.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapper.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/DefaultKey2StringMapper.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -26,23 +26,23 @@
* primitive wrappers(e.g. Integer, Long etc).
*
* @author Mircea.Markus at jboss.com
+ * @deprecated since 4.1 when {@link org.infinispan.loaders.jdbc.stringbased.DefaultTwoWayKey2StringMapper}
+ * which is a replacement this implementation.
*/
-public class DefaultKey2StringMapper implements Key2StringMapper {
+public class DefaultKey2StringMapper implements TwoWayKey2StringMapper {
/**
* Returns true if this is an primitive wrapper, false otherwise.
*/
public boolean isSupportedType(Class key) {
- return key == String.class ||
- key == Short.class ||
- key == Byte.class ||
- key == Long.class ||
- key == Integer.class ||
- key == Double.class ||
- key == Float.class ||
- key == Boolean.class;
+ return DefaultTwoWayKey2StringMapper.isPrimitive(key);
}
+ @Override
+ public Object getKeyMapping(String key) {
+ return null;
+ }
+
/**
* Returns key.toString. As key being a primitive wrapper, this will ensure that it is unique.
*/
@@ -52,4 +52,5 @@
}
return key.toString();
}
+
}
Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStore.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -22,6 +22,7 @@
package org.infinispan.loaders.jdbc.stringbased;
import org.infinispan.Cache;
+import org.infinispan.config.Configuration;
import org.infinispan.container.entries.InternalCacheEntry;
import org.infinispan.container.entries.InternalCacheValue;
import org.infinispan.io.ByteBuffer;
@@ -62,10 +63,20 @@
* {@link org.infinispan.loaders.jdbc.binary.JdbcBinaryCacheStore}} whenever it is possible, as is has a better performance.
* One scenario in which this is not possible to use it though, is when you can't write an {@link Key2StringMapper}} to map the
* keys to to string objects (e.g. when you don't have control over the types of the keys, for whatever reason).
+ * <p/>
+ * <b>Preload</b>.In order to support preload functionality the store needs to read the string keys from the database and transform them
+ * into the corresponding key objects. {@link org.infinispan.loaders.jdbc.stringbased.Key2StringMapper} only supports
+ * key to string transformation(one way); in order to be able to use preload one needs to specify an
+ * {@link org.infinispan.loaders.jdbc.stringbased.TwoWayKey2StringMapper}, which extends {@link org.infinispan.loaders.jdbc.stringbased.Key2StringMapper} and
+ * allows bidirectional transformation.
+ * <p/>
+ * <b>Rehashing</b>. When a node leaves/joins, Infinispan moves around persistent state as part of rehashing process.
+ * For this it needs access to the underlaying key objects, so if distribution is used, the mapper needs to be an
+ * {@link org.infinispan.loaders.jdbc.stringbased.TwoWayKey2StringMapper} otherwise the cache won't start (same constraint as with preloading).
*
* @author Mircea.Markus at jboss.com
* @see Key2StringMapper
- * @see DefaultKey2StringMapper
+ * @see DefaultTwoWayKey2StringMapper
*/
@CacheLoaderMetadata(configurationClass = JdbcStringBasedCacheStoreConfig.class)
public class JdbcStringBasedCacheStore extends LockSupportCacheStore {
@@ -95,11 +106,19 @@
super.start();
if (config.isManageConnectionFactory()) {
String connectionFactoryClass = config.getConnectionFactoryConfig().getConnectionFactoryClass();
+ if (log.isTraceEnabled()) log.trace("Using managed connection factory: " + connectionFactoryClass);
ConnectionFactory connectionFactory = ConnectionFactory.getConnectionFactory(connectionFactoryClass);
connectionFactory.start(config.getConnectionFactoryConfig());
doConnectionFactoryInitialization(connectionFactory);
}
this.key2StringMapper = config.getKey2StringMapper();
+ if (log.isTraceEnabled()) log.trace("Using key2StringMapper: " + key2StringMapper.getClass().getName());
+ if (isUsingPreload()) {
+ enforceTwoWayMapper("preload");
+ }
+ if (isDistributed()) {
+ enforceTwoWayMapper("distribution/rehashing");
+ }
dmHelper = new DataManipulationHelper(connectionFactory, tableManipulation, marshaller) {
@Override
@@ -111,31 +130,34 @@
public void loadAllProcess(ResultSet rs, Set<InternalCacheEntry> result) throws SQLException, CacheLoaderException {
InputStream inputStream = rs.getBinaryStream(1);
InternalCacheValue icv = (InternalCacheValue) JdbcUtil.unmarshall(getMarshaller(), inputStream);
- Object key = rs.getObject(2);
+ String keyStr = rs.getString(2);
+ Object key = ((TwoWayKey2StringMapper) key2StringMapper).getKeyMapping(keyStr);
result.add(icv.toInternalCacheEntry(key));
}
@Override
public void loadAllKeysProcess(ResultSet rs, Set<Object> keys, Set<Object> keysToExclude) throws SQLException, CacheLoaderException {
- Object k = rs.getObject(1);
- if (includeKey(k, keysToExclude)) keys.add(k);
+ String keyStr = rs.getString(1);
+ Object key = ((TwoWayKey2StringMapper) key2StringMapper).getKeyMapping(keyStr);
+ if (includeKey(key, keysToExclude)) {
+ keys.add(key);
+ }
}
@Override
public void toStreamProcess(ResultSet rs, InputStream is, ObjectOutput objectOutput) throws CacheLoaderException, SQLException, IOException {
InternalCacheValue icv = (InternalCacheValue) JdbcUtil.unmarshall(getMarshaller(), is);
- Object key = rs.getObject(2);
+ String key = rs.getString(2);//key is a string
marshaller.objectToObjectStream(icv.toInternalCacheEntry(key), objectOutput);
}
public boolean fromStreamProcess(Object objFromStream, PreparedStatement ps, ObjectInput objectInput) throws SQLException, CacheLoaderException {
if (objFromStream instanceof InternalCacheEntry) {
InternalCacheEntry se = (InternalCacheEntry) objFromStream;
- String key = key2StringMapper.getStringMapping(se.getKey());
ByteBuffer buffer = JdbcUtil.marshall(getMarshaller(), se.toInternalCacheValue());
ps.setBinaryStream(1, buffer.getStream(), buffer.getLength());
ps.setLong(2, se.getExpiryTime());
- ps.setString(3, key);
+ ps.setString(3, (String) se.getKey());
return true;
} else {
return false;
@@ -148,6 +170,7 @@
public void stop() throws CacheLoaderException {
tableManipulation.stop();
if (config.isManageConnectionFactory()) {
+ if (log.isTraceEnabled()) log.trace("Stopping mananged connection factory: " + connectionFactory);
connectionFactory.stop();
}
}
@@ -260,7 +283,6 @@
}
}
-
@Override
protected InternalCacheEntry loadLockSafe(Object key, String lockingKey) throws CacheLoaderException {
Connection conn = null;
@@ -296,6 +318,7 @@
}
}
+
public Class<? extends CacheLoaderConfig> getConfigurationClass() {
return JdbcStringBasedCacheStoreConfig.class;
}
@@ -329,4 +352,23 @@
public TableManipulation getTableManipulation() {
return tableManipulation;
}
+
+ private void enforceTwoWayMapper(String where) throws CacheLoaderException {
+ if (!(key2StringMapper instanceof TwoWayKey2StringMapper)) {
+ String message = "In order for JdbcStringBasedCacheStore to support " + where + ", the Key2StringMapper " +
+ "needs to implement TwoWayKey2StringMapper. You should either make " + key2StringMapper.getClass().getName() +
+ " implement TwoWayKey2StringMapper or disable " + where + ". See [https://jira.jboss.org/browse/ISPN-579] for more details.";
+ log.error(message);
+ throw new CacheLoaderException(message);
+ }
+ }
+
+ public boolean isUsingPreload() {
+ return cache.getConfiguration() != null && cache.getConfiguration().getCacheLoaderManagerConfig() != null &&
+ cache.getConfiguration().getCacheLoaderManagerConfig().isPreload();
+ }
+
+ public boolean isDistributed() {
+ return cache.getConfiguration() != null && cache.getConfiguration().getCacheMode().isDistributed();
+ }
}
Modified: trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreConfig.java
===================================================================
--- trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreConfig.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/main/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreConfig.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -59,7 +59,7 @@
public Key2StringMapper getKey2StringMapper() {
if (key2StringMapper == null) {
try {
- key2StringMapper = DefaultKey2StringMapper.class.newInstance();
+ key2StringMapper = DefaultTwoWayKey2StringMapper.class.newInstance();
} catch (Exception e) {
throw new IllegalStateException("This should never happen", e);
}
@@ -68,7 +68,7 @@
}
/**
- * Name of the class implementing Key2StringMapper. The default value is {@link org.infinispan.loaders.jdbc.stringbased.DefaultKey2StringMapper}
+ * Name of the class implementing Key2StringMapper. The default value is {@link org.infinispan.loaders.jdbc.stringbased.DefaultTwoWayKey2StringMapper}
*
* @see org.infinispan.loaders.jdbc.stringbased.Key2StringMapper
*/
@@ -93,4 +93,11 @@
result.key2StringMapper = key2StringMapper;
return result;
}
+
+ @Override
+ public String toString() {
+ return "JdbcStringBasedCacheStoreConfig{" +
+ "key2StringMapper=" + key2StringMapper +
+ "} " + super.toString();
+ }
}
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfigTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfigTest.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreConfigTest.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -22,7 +22,7 @@
package org.infinispan.loaders.jdbc.mixed;
import org.infinispan.loaders.LockSupportCacheStoreConfig;
-import org.infinispan.loaders.jdbc.stringbased.PersonKey2StringMapper;
+import org.infinispan.loaders.jdbc.stringbased.DefaultTwoWayKey2StringMapper;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -83,8 +83,8 @@
}
public void testKey2StringMapper() {
- config.setKey2StringMapperClass(PersonKey2StringMapper.class.getName());
- assert config.getStringCacheStoreConfig().getKey2StringMapper().getClass().equals(PersonKey2StringMapper.class);
+ config.setKey2StringMapperClass(DefaultTwoWayKey2StringMapper.class.getName());
+ assert config.getStringCacheStoreConfig().getKey2StringMapper().getClass().equals(DefaultTwoWayKey2StringMapper.class);
}
public void testConcurrencyLevel() {
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/mixed/JdbcMixedCacheStoreTest.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -32,6 +32,7 @@
import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactory;
import org.infinispan.loaders.jdbc.connectionfactory.ConnectionFactoryConfig;
import org.infinispan.loaders.jdbc.stringbased.DefaultKey2StringMapper;
+import org.infinispan.loaders.jdbc.stringbased.DefaultTwoWayKey2StringMapper;
import org.infinispan.loaders.jdbc.stringbased.Person;
import org.infinispan.marshall.StreamingMarshaller;
import org.infinispan.marshall.TestObjectStreamMarshaller;
@@ -73,7 +74,7 @@
JdbcMixedCacheStoreConfig cacheStoreConfig = new JdbcMixedCacheStoreConfig(cfc, binaryTm, stringsTm);
cacheStoreConfig.setPurgeSynchronously(true);
- cacheStoreConfig.setKey2StringMapperClass(DefaultKey2StringMapper.class.getName());
+ cacheStoreConfig.setKey2StringMapperClass(DefaultTwoWayKey2StringMapper.class.getName());
cacheStore = new JdbcMixedCacheStore();
cacheStore.init(cacheStoreConfig, new CacheDelegate("aName"), getMarshaller());
cacheStore.start();
@@ -140,14 +141,14 @@
} finally {
marshaller.finishObjectOutput(oo);
out.close();
- cacheStore.clear();
+ cacheStore.clear();
}
assertRowCounts(0, 0);
-
+
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
ObjectInput oi = marshaller.startObjectInput(in, false);
try {
- cacheStore.fromStream(new UnclosableObjectInputStream(oi));
+ cacheStore.fromStream(new UnclosableObjectInputStream(oi));
} finally {
marshaller.finishObjectInput(oi);
in.close();
@@ -170,7 +171,7 @@
cacheStore.store(forth);
assertRowCounts(2, 2);
Set<InternalCacheEntry> entries = cacheStore.loadAll();
- assert entries.size() == 4;
+ assert entries.size() == 4 : "Expected 4 and got: " + entries;
assert entries.contains(first);
assert entries.contains(second);
assert entries.contains(third);
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -44,7 +44,8 @@
TableManipulation tm = UnitTestDatabaseManager.buildDefaultTableManipulation();
JdbcStringBasedCacheStoreConfig config = new JdbcStringBasedCacheStoreConfig(connectionFactoryConfig, tm);
JdbcStringBasedCacheStore stringBasedCacheStore = new JdbcStringBasedCacheStore();
- stringBasedCacheStore.init(config, new CacheDelegate("aName"), getMarshaller());
+ CacheDelegate cache = new CacheDelegate("aName");
+ stringBasedCacheStore.init(config, cache, getMarshaller());
stringBasedCacheStore.start();
return stringBasedCacheStore;
}
Modified: trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest2.java
===================================================================
--- trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest2.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/test/java/org/infinispan/loaders/jdbc/stringbased/JdbcStringBasedCacheStoreTest2.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -61,7 +61,7 @@
tableManipulation = UnitTestDatabaseManager.buildDefaultTableManipulation();
cfc = UnitTestDatabaseManager.getUniqueConnectionFactoryConfig();
JdbcStringBasedCacheStoreConfig config = new JdbcStringBasedCacheStoreConfig(cfc, tableManipulation);
- config.setKey2StringMapperClass(PersonKey2StringMapper.class.getName());
+ config.setKey2StringMapperClass(TwoWayKey2StringMapper.class.getName());
config.setPurgeSynchronously(true);
cacheStore = new JdbcStringBasedCacheStore();
Cache<?, ?> mockCache = EasyMock.createNiceMock(Cache.class);
Modified: trunk/cachestore/jdbc/src/test/resources/log4j.xml
===================================================================
--- trunk/cachestore/jdbc/src/test/resources/log4j.xml 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/cachestore/jdbc/src/test/resources/log4j.xml 2010-08-11 10:48:47 UTC (rev 2192)
@@ -48,6 +48,14 @@
<priority value="INFO"/>
</category>
+ <category name="org.infinispan.loaders">
+ <priority value="TRACE"/>
+ </category>
+
+ <category name="org.infinispan.loaders.jdbc.connectionfactory.PooledConnectionFactory">
+ <priority value="WARN"/>
+ </category>
+
<category name="com.mchange">
<priority value="TRACE"/>
</category>
Modified: trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStore.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -43,6 +43,10 @@
super.start();
if (config == null)
throw new CacheLoaderException("Null config. Possible reason is not calling super.init(...)");
+ if (log.isTraceEnabled()) {
+ log.trace("Starting cache with config:" + config);
+ }
+
locks = new StripedLock(config.getLockConcurrencyLevel());
globalLockTimeoutMillis = config.getLockAcquistionTimeout();
}
Modified: trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStoreConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStoreConfig.java 2010-08-11 09:54:01 UTC (rev 2191)
+++ trunk/core/src/main/java/org/infinispan/loaders/LockSupportCacheStoreConfig.java 2010-08-11 10:48:47 UTC (rev 2192)
@@ -39,4 +39,12 @@
testImmutability("lockAcquistionTimeout");
this.lockAcquistionTimeout = lockAcquistionTimeout;
}
+
+ @Override
+ public String toString() {
+ return "LockSupportCacheStoreConfig{" +
+ "lockConcurrencyLevel=" + lockConcurrencyLevel +
+ ", lockAcquistionTimeout=" + lockAcquistionTimeout +
+ "} " + super.toString();
+ }
}
More information about the infinispan-commits
mailing list