diff --git a/.classpath b/.classpath
index 23fb3b56a..2dd69c909 100644
--- a/.classpath
+++ b/.classpath
@@ -1,10 +1,37 @@
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
index 97c950f78..862bb3d6d 100644
--- a/.project
+++ b/.project
@@ -1,34 +1,16 @@
spring-data-redis
-
-
-
+ Spring Data Redis
+
+
+ org.eclipse.jdt.core.javanature
+
org.eclipse.jdt.core.javabuilder
-
-
+
-
- com.springsource.sts.gradle.core.nature
- org.eclipse.jdt.core.javanature
-
-
-
- 1309881117241
-
- 10
-
- org.eclipse.ui.ide.orFilterMatcher
-
-
- org.eclipse.ui.ide.multiFilter
- 1.0-projectRelativePath-equals-true-false-E:docs
-
-
-
-
-
+
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 429280cd1..953c45070 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,13 @@
-#Tue Jul 05 18:51:57 EEST 2011
+#
+#Fri Jul 15 15:16:09 EEST 2011
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
diff --git a/gradle.properties b/gradle.properties
index d3ecb7b24..60bb9953d 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -5,8 +5,8 @@ log4jVersion = 1.2.16
slf4jVersion = 1.6.1
# Common libraries
-springVersion = 3.0.5.RELEASE
-jacksonVersion = 1.6.4
+springVersion = 3.1.0.M2
+jacksonVersion = 1.8.3
# Testing
junitVersion = 4.8.1
@@ -20,7 +20,7 @@ rjcVersion= 0.6.4
# Manifest properties
## OSGi ranges
-spring.range = "[3.0.0, 4.0.0)"
+spring.range = "[3.1.0, 4.0.0)"
jedis.range = "[2.0.0, 2.0.0]"
jackson.range = "[1.6, 2.0.0)"
rjc.range = "[0.6.4, 0.6.4]"
diff --git a/src/main/java/org/springframework/data/redis/cache/RedisCache.java b/src/main/java/org/springframework/data/redis/cache/RedisCache.java
new file mode 100644
index 000000000..2e34accf8
--- /dev/null
+++ b/src/main/java/org/springframework/data/redis/cache/RedisCache.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2011 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.data.redis.cache;
+
+import java.util.Arrays;
+import java.util.Set;
+
+import org.springframework.cache.Cache;
+import org.springframework.cache.interceptor.DefaultValueWrapper;
+import org.springframework.dao.DataAccessException;
+import org.springframework.data.redis.connection.RedisConnection;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisCallback;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+import org.springframework.data.redis.support.collections.DefaultRedisSet;
+import org.springframework.data.redis.support.collections.RedisSet;
+import org.springframework.util.Assert;
+
+/**
+ * Cache implementation on top of Redis.
+ *
+ * @author Costin Leau
+ */
+@SuppressWarnings("unchecked")
+public class RedisCache implements Cache {
+
+ private final String name;
+ private final RedisSet