diff --git a/pom.xml b/pom.xml
index 9b1fbbe..336ddc3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
com.github.mihaicostin
hibernate-l2-memcached
- 1.1.0
+ 4.3.11.0
hibernate-l2-memcached
A library for using Memcached as a second level distributed cache in Hibernate.
https://github.com/mihaicostin/hibernate-l2-memcached
diff --git a/src/main/java/com/mc/hibernate/memcached/MemcachedRegionFactory.java b/src/main/java/com/mc/hibernate/memcached/MemcachedRegionFactory.java
index 1a805b4..d9d9c4a 100644
--- a/src/main/java/com/mc/hibernate/memcached/MemcachedRegionFactory.java
+++ b/src/main/java/com/mc/hibernate/memcached/MemcachedRegionFactory.java
@@ -83,8 +83,7 @@ public long nextTimestamp() {
}
public EntityRegion buildEntityRegion(String regionName, Properties properties, CacheDataDescription metadata) throws CacheException {
- return new MemcachedEntityRegion(getCache(regionName), settings,
- metadata, properties, client);
+ return new MemcachedEntityRegion(getCache(regionName), settings, metadata, properties, client);
}
public NaturalIdRegion buildNaturalIdRegion(String regionName, Properties properties, CacheDataDescription metadata) throws CacheException {
@@ -96,11 +95,11 @@ public CollectionRegion buildCollectionRegion(String regionName, Properties prop
}
public QueryResultsRegion buildQueryResultsRegion(String regionName, Properties properties) throws CacheException {
- return new MemcachedQueryResultsRegion(getCache(regionName));
+ return new MemcachedQueryResultsRegion(getCache(regionName), properties);
}
public TimestampsRegion buildTimestampsRegion(String regionName, Properties properties) throws CacheException {
- return new MemcachedTimestampsRegion(getCache(regionName));
+ return new MemcachedTimestampsRegion(getCache(regionName), properties);
}
protected MemcacheClientFactory getMemcachedClientFactory(Config config) {
diff --git a/src/main/java/com/mc/hibernate/memcached/region/AbstractMemcachedRegion.java b/src/main/java/com/mc/hibernate/memcached/region/AbstractMemcachedRegion.java
index 0510064..79f3e15 100644
--- a/src/main/java/com/mc/hibernate/memcached/region/AbstractMemcachedRegion.java
+++ b/src/main/java/com/mc/hibernate/memcached/region/AbstractMemcachedRegion.java
@@ -21,13 +21,19 @@
import java.util.Collections;
import java.util.Map;
+import java.util.Properties;
public abstract class AbstractMemcachedRegion implements Region {
+ private static final int DEFAULT_CACHE_LOCK_TIMEOUT = 60000;
+ private final int lockTimeout;
+
protected MemcachedCache cache;
- AbstractMemcachedRegion(MemcachedCache cache) {
+ AbstractMemcachedRegion(MemcachedCache cache, Properties properties) {
this.cache = cache;
+ String property = properties.getProperty("hibernate.memcached.cacheLockTimeout", String.valueOf(DEFAULT_CACHE_LOCK_TIMEOUT));
+ this.lockTimeout = Integer.decode(property);
}
public String getName() {
@@ -73,7 +79,7 @@ public long nextTimestamp() {
* @return timeout in ms
*/
public int getTimeout() {
- return cache.getTimeoutSeconds() * 1000;
+ return lockTimeout;
}
public MemcachedCache getCache() {
diff --git a/src/main/java/com/mc/hibernate/memcached/region/MemcachedCollectionRegion.java b/src/main/java/com/mc/hibernate/memcached/region/MemcachedCollectionRegion.java
index eae23da..be6217f 100644
--- a/src/main/java/com/mc/hibernate/memcached/region/MemcachedCollectionRegion.java
+++ b/src/main/java/com/mc/hibernate/memcached/region/MemcachedCollectionRegion.java
@@ -40,7 +40,7 @@ public class MemcachedCollectionRegion extends AbstractMemcachedRegion implement
private final Settings settings;
public MemcachedCollectionRegion(MemcachedCache cache, Settings settings, CacheDataDescription metadata, Properties properties, Memcache client) {
- super(cache);
+ super(cache, properties);
this.metadata = metadata;
this.settings = settings;
}
diff --git a/src/main/java/com/mc/hibernate/memcached/region/MemcachedEntityRegion.java b/src/main/java/com/mc/hibernate/memcached/region/MemcachedEntityRegion.java
index 03437b9..f029456 100644
--- a/src/main/java/com/mc/hibernate/memcached/region/MemcachedEntityRegion.java
+++ b/src/main/java/com/mc/hibernate/memcached/region/MemcachedEntityRegion.java
@@ -43,7 +43,7 @@ public class MemcachedEntityRegion extends AbstractMemcachedRegion implements En
private final Settings settings;
public MemcachedEntityRegion(MemcachedCache cache, Settings settings, CacheDataDescription metadata, Properties properties, Memcache client) {
- super(cache);
+ super(cache, properties);
this.metadata = metadata;
this.settings = settings;
}
diff --git a/src/main/java/com/mc/hibernate/memcached/region/MemcachedNaturalIdRegion.java b/src/main/java/com/mc/hibernate/memcached/region/MemcachedNaturalIdRegion.java
index 39dfcc0..fe77dc2 100644
--- a/src/main/java/com/mc/hibernate/memcached/region/MemcachedNaturalIdRegion.java
+++ b/src/main/java/com/mc/hibernate/memcached/region/MemcachedNaturalIdRegion.java
@@ -41,7 +41,7 @@ public class MemcachedNaturalIdRegion extends AbstractMemcachedRegion implements
private final Settings settings;
public MemcachedNaturalIdRegion(MemcachedCache cache, Settings settings, CacheDataDescription metadata, Properties properties, Memcache client) {
- super(cache);
+ super(cache, properties);
this.metadata = metadata;
this.settings = settings;
}
diff --git a/src/main/java/com/mc/hibernate/memcached/region/MemcachedQueryResultsRegion.java b/src/main/java/com/mc/hibernate/memcached/region/MemcachedQueryResultsRegion.java
index 8d03ab8..cd966de 100644
--- a/src/main/java/com/mc/hibernate/memcached/region/MemcachedQueryResultsRegion.java
+++ b/src/main/java/com/mc/hibernate/memcached/region/MemcachedQueryResultsRegion.java
@@ -22,12 +22,14 @@
import com.mc.hibernate.memcached.MemcachedCache;
+import java.util.Properties;
+
public class MemcachedQueryResultsRegion extends AbstractMemcachedRegion implements QueryResultsRegion {
private final Logger log = LoggerFactory.getLogger(MemcachedQueryResultsRegion.class);
- public MemcachedQueryResultsRegion(MemcachedCache cache) {
- super(cache);
+ public MemcachedQueryResultsRegion(MemcachedCache cache, Properties properties) {
+ super(cache, properties);
}
public Object get(Object key) throws CacheException {
diff --git a/src/main/java/com/mc/hibernate/memcached/region/MemcachedTimestampsRegion.java b/src/main/java/com/mc/hibernate/memcached/region/MemcachedTimestampsRegion.java
index db789cc..ca14e98 100644
--- a/src/main/java/com/mc/hibernate/memcached/region/MemcachedTimestampsRegion.java
+++ b/src/main/java/com/mc/hibernate/memcached/region/MemcachedTimestampsRegion.java
@@ -22,12 +22,14 @@
import com.mc.hibernate.memcached.MemcachedCache;
+import java.util.Properties;
+
public class MemcachedTimestampsRegion extends AbstractMemcachedRegion implements TimestampsRegion {
private final Logger log = LoggerFactory.getLogger(MemcachedTimestampsRegion.class);
- public MemcachedTimestampsRegion(MemcachedCache cache) {
- super(cache);
+ public MemcachedTimestampsRegion(MemcachedCache cache, Properties properties) {
+ super(cache, properties);
}
public Object get(Object key) throws CacheException {