DATAREDIS-419 - Move project build to Maven.

- Introduce Maven pom.xml.
- Moved Asciidoctor files to src/main/asciidoc.
- Moved notice.txt etc. to src/main/resources.
- Add logback.xml
- Update Makefile to use maven and pick build profiles.
- Update template.mf to pick up versions in pom.xml
- Add build matrix for spring versions to .travis.yml
- Use container based travis infrastructure.
- Update readme.

Original pull request: #167.
This commit is contained in:
Christoph Strobl
2016-01-28 19:31:21 +01:00
committed by Oliver Gierke
parent ab2afcfeef
commit 1e0940d58d
31 changed files with 320 additions and 189 deletions

View File

@@ -1,7 +1,7 @@
[[appendix:schema]]
[appendix]
= Schema
:resourcesDir: ../../main/resources
:resourcesDir: ../../resources
== Core schema

View File

@@ -1,4 +1,3 @@
[[spring-data-keyvalue-reference]]
= Spring Data Redis
Costin Leau, Jennifer Hickey, Christoph Strobl, Thomas Darimont
:revnumber: {version}
@@ -7,14 +6,16 @@ Costin Leau, Jennifer Hickey, Christoph Strobl, Thomas Darimont
:toc-placement!:
:spring-data-commons-docs: https://raw.githubusercontent.com/spring-projects/spring-data-commons/master/src/main/asciidoc
(C) 2011-2014 The original authors.
(C) 2011-2016 The original authors.
NOTE: Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.
toc::[]
include::preface.adoc[]
:leveloffset: +1
include::new-features.adoc[]
:leveloffset: -1
[[introduction]]
= Introduction
@@ -42,3 +43,4 @@ include::reference/redis.adoc[]
include::appendix/introduction.adoc[]
include::appendix/appendix-schema.adoc[]
include::appendix/appendix-command-reference.adoc[]
:leveloffset: -1

View File

@@ -1,6 +1,8 @@
[[new-features]]
= New Features
New and noteworthy in the latest releases.
[[new-in-1-6-0]]
== New in Spring Data Redis 1.6

View File

@@ -0,0 +1,829 @@
SPRING DATA REDIS CHANGELOG
---------------------------
http://projects.spring.io/spring-data-redis/
Commit changelog: http://github.com/spring-projects/spring-data-redis/tree/v[version]
Issues changelog: http://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10604
===========================
Changes in version 1.6.2.RELEASE (2015-12-18)
---------------------------------------------
* DATAREDIS-442 - Upgrade to Spring 4.1.9.
* DATAREDIS-441 - Release 1.6.2 (Gosling).
Changes in version 1.6.1.RELEASE (2015-11-15)
---------------------------------------------
* DATAREDIS-436 - Release 1.6.1 (Gosling).
* DATAREDIS-435 - PubSubResubscribeTests and PubSubTests rely on other tests having already run previously.
* DATAREDIS-417 - ScanCursor throw " java.util.NoSuchElementException".
Changes in version 1.4.4.RELEASE (2015-10-14)
---------------------------------------------
* DATAREDIS-434 - Release 1.4.4 (Evans).
Changes in version 1.6.0.RELEASE (2015-09-01)
---------------------------------------------
* DATAREDIS-429 - Release 1.6 GA (Gosling).
* DATAREDIS-426 - Upgrade to lettuce 3.3.
* DATAREDIS-424 - Update Reference Documentation.
* DATAREDIS-421 - NullPointerException when saving null values.
* DATAREDIS-392 - Jackson2RedisSerializer cannot deserialize ObjectId fields.
Changes in version 1.6.0.RC1 (2015-08-04)
-----------------------------------------
* DATAREDIS-420 - Release 1.6 RC1 (Gosling).
* DATAREDIS-416 - RedisCache.putIfAbsent(…) breaks contract defined by org.springframework.cache.Cache.
* DATAREDIS-414 - Serialization occurs while pooled connection can be released.
* DATAREDIS-413 - Use the latest version of the Spring IO Plugin.
* DATAREDIS-412 - Support for Jedis 2.7.1, 2.7.2 and 2.7.3.
* DATAREDIS-403 - Fix JavaDoc stylesheet.
* DATAREDIS-402 - RedisCache should not expire known keys in case ttl of element is not set.
* DATAREDIS-401 - RedisCacheManager should operate upon RedisOperations instead of RedisTemplate.
* DATAREDIS-348 - Upgrade Lettuce to 3.x release.
Changes in version 1.5.2.RELEASE (2015-07-28)
---------------------------------------------
* DATAREDIS-418 - Release 1.5.2 (Fowler).
* DATAREDIS-416 - RedisCache#putIfAbesent breaks contract defined by o.s.cache.Cache.
* DATAREDIS-412 - Support for Jedis 2.7.1, 2.7.2 and 2.7.3.
Changes in version 1.3.6.RELEASE (2015-07-01)
---------------------------------------------
* DATAREDIS-408 - Release 1.3.6 (Dijkstra).
* DATAREDIS-328 - RedisCacheManager should not instantiate caches in setCacheNames().
Changes in version 1.4.3.RELEASE (2015-07-01)
---------------------------------------------
* DATAREDIS-409 - Release 1.4.3 (Evans).
* DATAREDIS-403 - Fix JavaDoc stylesheet.
* DATAREDIS-383 - Improve JavaDoc of RedisCacheManager.
* DATAREDIS-375 - A transactional RedisCacheManager decorates the cache with the TransactionAwareCacheDecorator twice.
* DATAREDIS-369 - RedisCache zset leak.
* DATAREDIS-332 - @Transactional Using multiple connections.
* DATAREDIS-328 - RedisCacheManager should not instantiate caches in setCacheNames().
Changes in version 1.5.1.RELEASE (2015-06-30)
---------------------------------------------
* DATAREDIS-410 - Release 1.5.1 (Fowler).
* DATAREDIS-403 - Fix JavaDoc stylesheet.
* DATAREDIS-402 - RedisCache should not expire known keys in case ttl of element is not set.
* DATAREDIS-332 - @Transactional Using multiple connections.
Changes in version 1.6.0.M1 (2015-06-02)
----------------------------------------
* DATAREDIS-400 - Release 1.6 M1 (Gosling).
* DATAREDIS-396 - Update Jedis driver to version 2.7.2.
* DATAREDIS-393 - Update Spring Version to 4.1.6.
* DATAREDIS-388 - Upgrade to Jedis 2.7.
* DATAREDIS-378 - Add support for ZRANGEBYLEX.
* DATAREDIS-352 - Enhance range options for zSetOperations.
* DATAREDIS-332 - @Transactional Using multiple connections.
Changes in version 1.5.0.RELEASE (2015-03-23)
---------------------------------------------
* DATAREDIS-385 - Release 1.5 GA.
* DATAREDIS-384 - Remove Java6 build for Travis-CI.
* DATAREDIS-383 - Improve JavaDoc of RedisCacheManager.
* DATAREDIS-380 - Use Redis 2.8.19 for tests.
* DATAREDIS-379 - Update reference documentation.
* DATAREDIS-374 - Adapt JedisConnectionFactory for changes in Jedis 2.7.
Changes in version 1.5.0.RC1 (2015-03-05)
-----------------------------------------
* DATAREDIS-377 - Release 1.5 RC1.
* DATAREDIS-375 - A transactional RedisCacheManager decorates the cache with the TransactionAwareCacheDecorator twice.
* DATAREDIS-372 - Allow easier RedisSentinelConfig.
* DATAREDIS-371 - Upgrade Spring to 4.0.9.RELEASE.
* DATAREDIS-369 - RedisCache zset leak.
* DATAREDIS-364 - Add extension possibility to RedisCacheManager.
* DATAREDIS-363 - Upgrade to jedis to 2.6.2.
* DATAREDIS-361 - Fix gradle docsZip not picking up reference html.
* DATAREDIS-328 - RedisCacheManager should not instantiate caches in setCacheNames().
Changes in version 1.4.2.RELEASE (2015-01-28)
---------------------------------------------
* DATAREDIS-366 - Release 1.4.2.
* DATAREDIS-364 - Add extension possibility to RedisCacheManager.
* DATAREDIS-361 - Fix gradle docsZip not picking up reference html.
* DATAREDIS-356 - Scripts don't try EVAL after EVALSHA fails.
* DATAREDIS-354 - Jackson2JsonRedisSerializer should allow to customise the JavaType for deserialization via getJavaType().
Changes in version 1.3.5.RELEASE (2015-01-27)
---------------------------------------------
* DATAREDIS-365 - Release 1.3.5.
Changes in version 1.5.0.M1 (2014-12-01)
----------------------------------------
* DATAREDIS-360 - Release 1.5 M1.
* DATAREDIS-359 - Fix redis javadoc generation.
* DATAREDIS-356 - Scripts don't try EVAL after EVALSHA fails.
* DATAREDIS-355 - Upgrade to jedis 2.6.1.
* DATAREDIS-354 - Jackson2JsonRedisSerializer should allow to customise the JavaType for deserialization via getJavaType().
* DATAREDIS-351 - Update build to latest redis version.
* DATAREDIS-350 - Upgrade to Jedis 2.6.x.
* DATAREDIS-347 - DefaultScriptExecutor always runs script twice if Exception is thrown.
* DATAREDIS-334 - Provide binary alternative for RedisScriptingCommands.evalSha.
* DATAREDIS-308 - Add Support for HyperLogLog.
* DATAREDIS-288 - ListOperations should support using Collections instead of varargs as input.
* DATAREDIS-197 - Implement Redis bitmap.
* DATAREDIS-106 - Support for open interval for scores for sorted sets.
Changes in version 1.4.1.RELEASE (2014-10-30)
---------------------------------------------
* DATAREDIS-353 - Release 1.4.1.
* DATAREDIS-347 - DefaultScriptExecutor always runs script twice if Exception is thrown.
Changes in version 1.4.0.RELEASE (2014-09-05)
---------------------------------------------
* DATAREDIS-346 - Update to Spring Version 4.0.7.
* DATAREDIS-345 - Release 1.4 GA.
* DATAREDIS-344 - Assert RedisCache works with spring 4.1.
* DATAREDIS-340 - Bulk adding multiple elements to a sorted set is dramatically slow.
* DATAREDIS-336 - Move to Asciidoctor for reference documentation.
Changes in version 1.3.4.RELEASE (2014-08-27)
---------------------------------------------
* DATAREDIS-339 - Release 1.3.4.
* DATAREDIS-337 - MessageListener method should only be invoked once per message.
* DATAREDIS-333 - EvalSha returns incorrect result.
Changes in version 1.4.0.RC1 (2014-08-13)
-----------------------------------------
* DATAREDIS-338 - Release 1.4 RC1.
* DATAREDIS-337 - MessageListener method should only be invoked once per message.
* DATAREDIS-335 - Upgrade to jedis 2.5.2.
* DATAREDIS-333 - EvalSha returns incorrect result.
* DATAREDIS-330 - Add support for redis Sentinel commands.
* DATAREDIS-327 - Improve exception handling for supported clients.
* DATAREDIS-326 - SrpConverters wraps unknown exceptions in RedisSystemException instead of returning null.
* DATAREDIS-325 - RedisConnectionFactory translates exceptions too aggressively.
* DATAREDIS-324 - Add support to configure RedisSentinels for obtaining connection to current master node.
* DATAREDIS-295 - Converting all exceptions to Jedis Exception.
Changes in version 1.3.2.RELEASE (2014-07-28)
---------------------------------------------
* DATAREDIS-331 - Release 1.3.2.
* DATAREDIS-327 - Improve exception handling for supported clients.
* DATAREDIS-326 - SrpConverters wraps unknown exceptions in RedisSystemException instead of returning null.
* DATAREDIS-325 - RedisConnectionFactory translates exceptions too aggressively.
* DATAREDIS-323 - Remove links to forum.spring.io.
* DATAREDIS-295 - Converting all exceptions to Jedis Exception.
Changes in version 1.4.0.M1 (2014-07-10)
----------------------------------------
* DATAREDIS-323 - Remove links to forum.spring.io.
* DATAREDIS-322 - Release 1.4 M1.
* DATAREDIS-321 - Adapt to Spring 4 upgrade.
* DATAREDIS-314 - Add usage of SCAN commands to Collection types.
* DATAREDIS-313 - Overhaul naming and return types of SCAN, HSCAN, SSCAN, ZSCAN operations.
* DATAREDIS-312 - Add travis-ci configuration.
* DATAREDIS-311 - Add test summary output to the build.
* DATAREDIS-310 - Lock of RedisCache is not safe.
* DATAREDIS-309 - Refactor test profiles to support more than 2 versions.
* DATAREDIS-306 - Add support for ZSCAN.
* DATAREDIS-305 - Add support for HSCAN.
* DATAREDIS-296 - Upgrade jedis to recent version.
* DATAREDIS-290 - Add support for 'SCAN' command.
Changes in version 1.3.1.RELEASE (2014-06-30)
---------------------------------------------
* DATAREDIS-320 - Release 1.3.1.
* DATAREDIS-317 - Cannot increment RedisAtomicInteger.
* DATAREDIS-310 - Lock of RedisCache is not safe.
* DATAREDIS-307 - Add missing reference documentation for managed transaction support.
Changes in version 1.3.0.RELEASE (2014-05-20)
---------------------------------------------
* DATAREDIS-303 - Upgrade to Spring 3.2.9.
* DATAREDIS-302 - DecoratingStringHashMapper breaks RetwisJ sample.
* DATAREDIS-301 - Release 1.3 GA.
* DATAREDIS-300 - RedisConnectionUtils: inconsistency with connection open() and close().
* DATAREDIS-299 - Assert compatibility with Spring IO.
Changes in version 1.3.0.RC1 (2014-05-02)
-----------------------------------------
* DATAREDIS-298 - Unneeded jcl-over-slf4j dependency.
* DATAREDIS-297 - Release 1.3 RC1.
* DATAREDIS-296 - Upgrade jedis to recent version.
* DATAREDIS-293 - JedisConnection does not allow bulk adding multiple elements with the same score to a sorted set.
* DATAREDIS-226 - Individual syntax errors on Lettuce transactions are not reported.
* DATAREDIS-73 - add TransactionAware* Driver interfaces.
Changes in version 1.3.0.M1 (2014-03-31)
----------------------------------------
Fix
[DATAREDIS-283] - RedisCacheManager.loadCaches overrides already defined cache names in afterPropertiesSet().
[DATAREDIS-285] - LettuceTemplate.execute should read and convert entire response.
[DATAREDIS-286] - Avoid potential RedisTemplate.expire() overflow.
[DATAREDIS-289] - Avoid NPE in append() in case of pipelining or/and multi/exec calls.
Improvement
[DATAREDIS-184] - Support Redis 2.6 SAVE/NOSAVE arguments to shutdown command.
[DATAREDIS-284] - Add support for zCard to ZSetOperations.
[DATAREDIS-287] - setBit() should return a Boolean.
New Feature
[DATAREDIS-267] - Add support for CLIENT KILL.
[DATAREDIS-268] - Add support for CLIENT LIST.
[DATAREDIS-269] - Add support for CLIENT SETNAME.
[DATAREDIS-270] - Add support for CLIENT GETNAME.
[DATAREDIS-271] - Add support for PSETEX.
[DATAREDIS-277] - Add support for SLAVEOF.
Task
[DATAREDIS-261] - Upgrade commons-pool to commons-pool2.
[DATAREDIS-275] - Rename RedisServerCommands.bgWriteAof to bgReWriteAof.
[DATAREDIS-292] - Release 1.3.0 M1.
Changes in version 1.2.1.GA (2014-03-27)
----------------------------------------
Fix
[DATAREDIS-283] - RedisCacheManager.loadCaches overrides already defined cache names in afterPropertiesSet().
[DATAREDIS-285] - LettuceConnection.execute should fully read response.
[DATAREDIS-286] - Avoid overflow in JedisConnection#expire / #pexpire.
[DATAREDIS-289] - Avoid NPE in DefaultValueOperations#append() in case of pipelining or/and multi/exec calls.
Task
[DATAREDIS-291] - Release Version 1.2.1.
Changes in version 1.3.0.M1 (2014-03-31)
----------------------------------------
Fix
[DATAREDIS-283] - RedisCacheManager.loadCaches overrides already defined cache names in afterPropertiesSet().
[DATAREDIS-285] - LettuceTemplate.execute should read and convert entire response.
[DATAREDIS-286] - Avoid potential RedisTemplate.expire() overflow.
[DATAREDIS-289] - Avoid NPE in append() in case of pipelining or/and multi/exec calls.
Improvement
[DATAREDIS-184] - Support Redis 2.6 SAVE/NOSAVE arguments to shutdown command.
[DATAREDIS-284] - Add support for zCard to ZSetOperations.
[DATAREDIS-287] - setBit() should return a Boolean.
New Feature
[DATAREDIS-267] - Add support for CLIENT KILL.
[DATAREDIS-268] - Add support for CLIENT LIST.
[DATAREDIS-269] - Add support for CLIENT SETNAME.
[DATAREDIS-270] - Add support for CLIENT GETNAME.
[DATAREDIS-271] - Add support for PSETEX.
[DATAREDIS-277] - Add support for SLAVEOF.
Task
[DATAREDIS-261] - Upgrade commons-pool to commons-pool2.
[DATAREDIS-275] - Rename RedisServerCommands.bgWriteAof to bgReWriteAof.
[DATAREDIS-292] - Release 1.3.0 M1.
Changes in version 1.2.1.GA (2014-03-27)
----------------------------------------
Fix
[DATAREDIS-283] - RedisCacheManager.loadCaches overrides already defined cache names in afterPropertiesSet().
[DATAREDIS-285] - LettuceConnection.execute should fully read response.
[DATAREDIS-286] - Avoid overflow in JedisConnection#expire / #pexpire.
[DATAREDIS-289] - Avoid NPE in DefaultValueOperations#append() in case of pipelining or/and multi/exec calls.
Task
[DATAREDIS-291] - Release Version 1.2.1.
Changes in version 1.2.0.GA (2014-03-03)
----------------------------------------
Task
[DATAREDIS-279] - Update reference documentation.
[DATAREDIS-282] - PubSubResubscribeTests should use jedis without pool.
Changes in version 1.2.0.RC1 (2014-02-19)
----------------------------------------
Fix
[DATAREDIS-166] - Intermittent corrupted input/output streams subscribing to both patterns and channels in RMLC
[DATAREDIS-170] - Canceling RMLC SubscriptionTask immediately after start can leave connection open
[DATAREDIS-188] - Infinite loop renaming a non-existent Collection when using Lettuce
[DATAREDIS-246] - RedisCacheManagers getCache method does not match the logical of CompositeCacheManager
Improvement
[DATAREDIS-250] - Upgrade to Spring Framework 3.2.8.
New Feature
[DATAREDIS-206] - Add support for time operation
[DATAREDIS-241] - Add a Jackson2 based RedisSerializer
Task
[DATAREDIS-254] - Clean up codebase to match spring data conventions
[DATAREDIS-260] - Upgrade to latest jedis (2.4.1) release
[DATAREDIS-264] - Update gradle version
[DATAREDIS-265] - Update Java source and target compatibility to Java 6
[DATAREDIS-266] - Overhaul documentation.
Changes in version 1.1.1.RELEASE (2014-01-28)
----------------------------------------
Fix
[DATAREDIS-245] - Prevent excessive Thread creation in unit tests
[DATAREDIS-248] - Fix generics in DecoratingStringHashMapper to be Java 8 compatible
[DATAREDIS-257] - Shutdown the client when DefaultLettucePool is destroyed
Improvement
[DATAREDIS-242] - Listener Container start() Returns Before Container is Really Started
[DATAREDIS-249] - Improve logging for tests in Gradle build
[DATAREDIS-251] - Fix tests to work against Redis 2.8.x
Task
[DATAREDIS-243] - Ensure compatibility with Spring Framework 4.0
[DATAREDIS-247] - Testcases must be locale independent
[DATAREDIS-255] - Release 1.1.1
Changes in version 1.1.0.RELEASE (2013-09-09)
----------------------------------------
No changes
Changes in version 1.1.0.RC1 (2013-08-22)
----------------------------------------
Package o.s.d.redis.core
* Modified RedisTemplate expire and expireAt
to use millisecond precision when available (Redis 2.6+)
* Added RedisTemplate getExpire(key, TimeUnit) method that uses
millisecond precision when available (Redis 2.6+)
Package o.s.d.redis.connection.jedis
* Fixed invalid Jedis connections returning to pool after NPE
Package o.s.d.redis.connection.lettuce
* Modified LettuceConnectionFactory to lazily instantiate connections,
allowing the AppContext to start if Redis is unavailable
Package o.s.d.redis.connection.srp
* Added password to SrpConnectionFactory
* Fixed SrpConnection throwing native Exception from constructor on
connection failure
Package o.s.d.redis.listener
* Fixed MessageListenerAdapter extractMessage returning the whole Message
instead of the Message body when serializer is null
* Added resubscribe on connection failure to RedisMessageListenerContainer
Package o.s.d.redis.support.collections
* Implemented ConcurrentMap replace and remove methods
Changes in version 1.1.0.M2 (2013-08-06)
----------------------------------------
General
* Modified RedisConnection and Operations classes to allow passing multiple
elements to hdel, rpush, lpush, sadd, srem, zadd, and zrem operations
* Added method to RedisTemplate for executing Redis Lua scripts
* Modified RedisTemplate and opsForX classes to allow null serializers for
working with raw data
* Modified RedisConnection impls to convert the connector-specific results of closePipeline
to the same data types as the individual RedisConnection operations
* Modified RedisConnection impls to convert the connector-specific results of transaction exec
to the same data types as the individual RedisConnection operations
* Upgraded to Gradle 1.6
Package o.s.d.redis.cache
* Fixed IlegalMonitorStateException when get or put performed while clearing
Package o.s.d.redis.core
* Added RedisTemplate executePipelined methods for executing commands in a pipeline and
returning deserialized results
* Modified RedisTemplate exec to deserialize results of transaction execution
* Fixed StringRedisConnection not being passed to RedisCallbacks executed through StringRedisTemplate
* Fixed NPE in DefaultZSetOperations methods that return Tuple Set in tx or pipeline
Package o.s.d.redis.connection
* Added missing zRevRangeByScore methods to StringRedisConnection
* Modified StringRedisConnection sUnionStore, sInterStore, and sDiffStore to return Long
* Fixed DefaultStringRedisConnection not passing begin and end to bitCount method
Package o.s.d.redis.connection.jedis
* Fixed ClassCastExceptions closing a pipeline after transaction exec
* Fixed UnsupportedOperationExceptions being wrapped in DataAccessExceptions
* Fixed connections not returning to pool on failed select
* Fixed NPEs on exec/closePipeline that includes move
Package o.s.d.redis.connection.lettuce
* Fixed UnsupportedOperationExceptions being wrapped in DataAccessExceptions
* Fixed NPE calling sort with null SortParams
* Fixed closePipeline returning individual results of ops in a transaction instead of
a List of exec results
* Fixed setBit and setRange executing twice when pipelined
* Modified watch method to throw an UnsupportedOperationException if called in a transaction
* Fixed eval and evalsha suppressing Exceptions with ReturnType Multi
Package o.s.d.redis.connection.srp
* Fixed UnsupportedOperationExceptions being wrapped in DataAccessExceptions
* Fixed NPE calling sort with null SortParams
* Fixed closePipeline returning individual results of ops in a transaction instead of
a List of exec results
* Fixed Exception calling select in a transaction
* Fixed NPE in sort when SortParameters.isAlphabetic() returns null
Package o.s.d.redis.listener
* Removed 5 second wait starting RedisMesssageListenerContainer with no listeners
Package o.s.d.redis.support.atomic
* Added RedisAtomicDouble
Changes in version 1.0.6.RELEASE (2013-08-06)
----------------------------------------
General
* Upgraded to Gradle 1.6
Package o.s.d.redis.cache
* Fixed IlegalMonitorStateException when get or put performed while clearing
Package o.s.d.redis.core
* Fixed StringRedisConnection not being passed to RedisCallbacks executed through StringRedisTemplate
* Fixed NPE in DefaultZSetOperations methods that return Tuple Set in tx or pipeline
Package o.s.d.redis.connection.jedis
* Fixed connections not returning to pool on failed select
* Fixed NPEs on exec/closePipeline that includes move
Package o.s.d.redis.connection.lettuce
* Fixed NPE calling sort with null SortParams
* Fixed setBit and setRange executing twice when pipelined
Package o.s.d.redis.connection.srp
* Fixed NPE calling sort with null SortParams
* Fixed Exception calling select in a transaction
* Fixed NPE in sort when SortParameters.isAlphabetic() returns null
Package o.s.d.redis.listener
* Removed 5 second wait starting RedisMesssageListenerContainer with no listeners
Changes in version 1.1.0.M1 (2013-07-02)
----------------------------------------
General
* Added Redis 2.6 millisecond expiration commands (pexpire, pttl, etc)
* Added Redis 2.6 bit commands (bitop, bitcount)
* Added support for Redis 2.6 scripting
* Added Redis 2.6 incrbyfloat and hincrbyfloat commands
* Added Redis 2.6 dump and restore commands
* Added Redis 2.6 info by section
* Added Redis 2.6 srandmember with count
* Removed RJC due to lack of Redis 2.6 support
* Upgraded JRedis from older fork (https://github.com/anthonylauzon/jredis) to
latest original master (https://github.com/alphazero/jredis)
* Made Jedis dependency optional in the build
Package o.s.d.redis.core
* Changed ValueOperations.multiSetIfAbsent return type from void to Boolean
Package o.s.d.redis.connection
* Changed StringRedisCommands.mSetNX return type from void to Boolean
Package o.s.d.redis.connection.jredis
* Removed base64 key encoding, since binary keys are supported in JRedis upgrade.
Fixes issue where keys method with patterns was not working due to encoding.
* Added JredisPool, since pool impl was removed from JRedis. Also fixes
issue with previous pool where failed connections were not removed.
Package o.s.d.redis.connection.lettuce
* Added LettucePool for optional pooling of blocking/tx Lettuce connections
* Added optional Redis password to LettuceConnectionFactory
* Modified LettuceConnectionFactory to throw RedisConnectionFailureExceptions instead
of native Exceptions
Changes in version 1.0.5.RELEASE (2013-07-02)
---------------------------------------------
General
* Upgraded to SRP 0.7
* Upgraded to Lettuce 2.3.3
Package o.s.d.redis.core
* Fixed left/right pop timeouts converting to 0 seconds (blocking indefinitely)
Package o.s.d.redis.connection.lettuce
* Fixed exec returning empty list instead of null if watched variable modified
Package o.s.d.redis.connection.srp
* Fixed exec throwing TransactionFailedException instead of returning null if watched
variable modified
Package o.s.d.redis.listener.adapter
* Added MessageListenerAdapter constructor with delegate and listener method
Changes in version 1.0.4.RELEASE (2013-04-18)
---------------------------------------------
General
* Introduced Lettuce connection sharing to greatly reduce number of connections used
* Upgraded to SRP 0.5
* Improved reference documentation
* Added several integration tests of each RedisConnection implementation
Package o.s.d.redis.core
* Reverted binary backwards incompatibility introduced by fix in 1.0.3.RELEASE to RedisTemplate
convertAndSend() method to return the number of targeted channels
Package o.s.d.redis.connection
* Fixed NPE in DefaultStringRedisConnection deserializing a null Map
Package o.s.d.redis.connection.jedis
* Removed unnecessary cast of Long to Int in increment/decrement ops
* Fixed incorrect transaction discard
* Fixed dbSize/flush ops executing synchronously while pipelining
* Fixed execute method returning incorrect results
* Fixed brPop executing twice when called in a transaction
* Fixed persist method not executing as part of a transaction
* Fixed incorrect closing of pipeline
Package o.s.d.redis.connection.jredis
* Fixed sort not storing results under given key
Package o.s.d.redis.connection.lettuce
* Fixed NPE on LettuceConnection blpop/brpop timeout
* Fixed exec returning a non-null value while pipelining
* Fixed zCount/zInterStore methods executing synchronously when pipelining
* Fixed NPEs or incorrect results in several ops within a transaction
* Fixed zRevRangeByScore methods failing due to incorrect parameter ordering
Package o.s.d.redis.connection.rjc
* Fixed zRevRangeWithScores returning incorrect results
* Fixed incorrect closing of pipeline
* Fixed zRevRangeByScore methods failing due to incorrect parameter ordering
Package o.s.d.redis.connection.srp
* Fixed exec not returning the results of the commands executed in the tx
* Fixed brpop/blpop fails with "ERR wrong number of arguments"
* Fixed sort not working due to NPE/syntax errors
* Fixed zCount/zInterStore methods executing synchronously when pipelining
* Fixed syntax error in zRangeByScore/zRevRangeByScore methods when using offset and count
* Fixed incorrect closing of pipeline
* Fixed zRevRangeByScore methods failing due to incorrect parameter ordering
Package o.s.d.redis.listener
* Fixed SubscriptionTask not closing connections
* Fixed messages not received after adding a message listener to both channel and pattern
before container start
Changes in version 1.0.3.RELEASE (2013-02-13)
---------------------------------------------
General
* Introduced support for Lettuce Redis driver
* Upgraded to Spring Framework 3.1.4
* Log4J dependency removed
* Improved reference documentation
Package o.s.d.redis.cache
* Clarified default of 'useprefix' for RedisCacheManager
Package o.s.d.redis.core
* Improved RedisTemplate initialization to prevent exceptions caused by invalid serializers
* Refined RedisTemplate#delete call when dealign with empty collection
* Refined convertAndSend() method to return the number of targeted channels
Package o.s.d.redis.connection
* Fixed unimplemented method (hGetAll) in StringRedisConnection
Package o.s.d.redis.connection.jedis
* Improved handling of socket exceptions uncaught by the driver at connection time
Package o.s.d.redis.connection.srp
* Fixed incorrect handling BulkReply affecting hash operations
* Improved pipelined usage of various operations
Package o.s.d.redis.listener
* Added proper hash/equals/toString method to ChannelTopic and PatternTopic
* Improved MessageListenerContainer to support dynamic removal of listeners
Package o.s.d.redis.support
* Added RedisTemplate-based constructor to AtomicInteger/Long for connection/resource reuse
Changes in version 1.0.2.RELEASE (2012-10-10)
---------------------------------------------
General
* Upgraded to Spring Framework 3.1.2
* Upgraded to SLF4J 1.6.6
* Upgraded to Log4J 1.2.17
* Upgraded to Jackson 1.8.8
* Upgraded build system to Gradle 1.2
Package o.s.d.redis.cache
* Fixed bug causing constructor to ignore cache name prefix
* Introduced expiration time for cache zones
Package o.s.d.redis.core
* Fixed incorrect return value (from primitive to Object) on BoundHashOperations#hasKey
* Added overloaded ZSet methods with offset/count parameters
Package o.s.d.redis.connection
* Refined RedisConnectionCommands, RedisKeyCommands interface signature
Package o.s.d.redis.listener
* Fixed bug causing the message channel to not be passed to the listener
Package o.s.d.redis.support.collection
* Added checks for incorrect pipeline/multi-exec access for better reporting
Changes in version 1.0.1.RELEASE (2012-06-27)
---------------------------------------------
General
* Introduced support for SRP (Sam's Redis Protocol)
* Introduced native execution through RedisConnection#execute
* Upgraded to Spring Framework 3.1.1
* Upgraded to Jedis 2.1.0
* Upgraded build system to Gradle 1.0
Package o.s.d.redis.connection
* Expanded set *store operations to return the resulting set size
* Refined RedisConnection#closePipeline contract by adding RedisPipelineException
Package o.s.d.redis.connection.jedis
* Improved exception translation of Jedis exceptions
* Fixed value bug in #setBit
* Added support for zRev* operations (new in Jedis 2.1)
* Added pipeline support for #zCount
Package o.s.d.redis.connection.jredis
* Fixed value bug in #setBit
Package o.s.d.redis.core
* Fixed bug in SetOperations#randomMember
* Fixed switched arguments in ZSetOperations#intersectAndStore
* Corrected handling of negative values in ValueOperations#increment
* Refined internal caching of serializers to cope with template configuration updates
* Expanded set *store operations to return the resulting set size
* Expanded ZSetOperations#removeRange* to return the number of elements removed
* Improved binding of Redis connections to thread
* Refined handling of pipelined connections to allow potential exceptions to properly propagate
* Expanded HashOperations#multiGet and #values to return List instead of Collection
Package o.s.d.redis.listener
* Improved lifecycle of RedisMessageListenerContainer
* Fixed bug causing double invocation of custom listeners also implementing MessageListener
Changes in version 1.0.0.RELEASE (2011-12-14)
---------------------------------------------
General
* Upgraded to Spring Framework 3.1 GA
Changes in version 1.0.0.RC1 (2011-10-19)
-----------------------------------------
General
* Upgraded to Spring Framework 3.1 RC1
* Upgraded slfj, Jackson libraries
* Changed compile source/target compatibility to JDK 1.5
Package o.s.d.redis.connection
* Added equals/hashCode/compareTo methods to TypedTuple
Package o.s.d.redis.core
* Fixed potential bug in RedisTemplate#sort
* Added equals/hashCode/compareTo methods to TypedTuple
Package o.s.d.redis.support
* Fixed potential bug in RedisProperties
* Improved Redis cache implementation under heavy concurrent access
Changes in version 1.0.0.M4 (2011-07-18)
----------------------------------------
General
* Split Spring Data Key Value project into separate projects for Redis and Riak
* Changed build system to Gradle
* Changed root package from org.springframework.data.keyvalue.redis to org.springframework.data.redis
* Introduced Redis implementation for Spring 3.1 cache abstraction
* Upgraded to Spring Framework 3.1 M2
* Upgraded to Jedis 2.0.0
Package o.s.d.redis.connection
* Added awarness of the selected Redis DB
Package o.s.d.redis.core
* Added missing zRange* operations
* Fixed incorrect cast in RedisTemplate#keys()
* Removed ConnectionFactory constructor
Package o.s.d.redis.listener
* Simplified namespace declaration for Redis pubsub
Package o.s.d.redis.support
* Improved compatibility of atomic counters with M2 release
* Added Properties implementation on top of Redis
Changes in version 1.0.0.M3 (2011-04-06)
----------------------------------------
Redis
-----
General
* Added support for RJC (new Redis client)
* Added dedicated SORT and SORT/GET support
* Introduced HashMapper feature for mapping objects to and from maps
* Improved exception hierarchy to be more consistent with Spring DAO
* Made several Redis dependencies optional to eliminate unnecessary jars from the classpath
Package o.s.d.k.redis.connection
* Added support for indexes to RedisConnectionFactories
* Added new key operations to KeyOperations (formerly KeyBound)
* Improved handling of Jedis exceptions
Package o.s.d.k.redis.core
* Serializers are exposed to RedisCallback
* Added missing operations (move, select) to RedisTemplate
* Fixed the signature of various method
Package o.s.d.k.redis.support.atomic
* Fixed incorrect serialization leading to error for RedisAtomicInteger & RedisAtomicLong
Changes in version 1.0.0.M2 (2011-02-10)
----------------------------------------
Redis
-----
General
* Added PubSub support (message listener container and namespace)
* Added JSON and Object/XML Mapping serializers
* Completed support for Redis (2.2) commands
* Improved documentation
* Upgraded to Redis 2.2
* Updraded to Jedis 1.5.2
Package o.s.d.k.redis.connection
* Added sort support
* Added pipelining support
* Added StringRedisConnection for String-focused operations
* Renamed JedisConnectionFactory pooling to usePool
* Renamed JredisConnectionFactory pooling to usePool
Package o.s.d.k.redis.connection.jedis
* Added support for Jedis rich exceptions
* Added support for broken pooled connection
Package o.s.d.k.redis.core
* Fix serializationg bug for hash value inside RedisTemplate
* Added injection for Redis operations ("views")
Package o.s.d.k.redis.support
* Refined AtomicInteger and AtomicLong constructors to use the backing store value as initial counter
Riak
----
General
* Important bug fixes
* Fully asynchronous AsyncRiakTemplate object
* Groovy DSL for Riak access using async template underneath
Changes in version Riak 1.0.0.M1 (2010-12-15)
---------------------------------------------
General
* Generified RiakTemplate for exception translation, serialization, and data access
* Built-in HTTP REST client based on Spring 3.0 RestTemplate
* java.io and Spring IO resource abstractions for reading/writing streams
* java.io.File subclass that represents a Riak resource
Changes in version Redis 1.0.0.M1 (2010-12-13)
----------------------------------------------
General
* Configuration support for Redis Jedis and JRedis drivers/connectors
* Connection package as low-level abstraction across multiple drivers
* Exception translation
* Generified RedisTemplate for exception translation and serialization support
* Various serialization strategies
* Atomic counter support classes
* JDK Collection implementations on top of Redis

View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
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.

View File

@@ -0,0 +1,24 @@
Spring Data Redis ${version}
Copyright (c) [$copyright] Pivotal Software, Inc.
========================================================================
== NOTICE file corresponding to section 4 d of the Apache License, ==
== Version 2.0, in this case for the Spring Integration distribution. ==
========================================================================
This product includes software developed by
the Apache Software Foundation (http://www.apache.org).
The end-user documentation included with a redistribution, if any,
must include the following acknowledgement:
"This product includes software developed by the Spring Framework
Project (http://www.springframework.org)."
Alternatively, this acknowledgement may appear in the software itself,
if and wherever such third-party acknowledgements normally appear.
The names "Spring", "Spring Framework", and "Spring Data" must
not be used to endorse or promote products derived from this software
without prior written permission. For written permission, please contact
enquiries@springsource.com.

View File

@@ -0,0 +1,28 @@
SPRING DATA REDIS $version (March 31, 2014)
-------------------------------------------
http://projects.spring.io/spring-data-redis/
1. INTRODUCTION
Spring Data Redis makes it easy to write Spring applications that use the Redis key value store by eliminating the
redundant tasks and boiler place code required for interacting with the store through Spring's excellent infrastructure
support.
2. RELEASE NOTES
This release comes with complete reference documentation. For further
details, consult the provided javadoc for specific packages and classes.
3. DISTRIBUTION JAR FILES
The Spring Data Redis jars files can be found in the 'dist' directory.
4. GETTING STARTED
Please see the reference documentation.
Additionally the blog at https://spring.io/blog as well as sections of interest in the reference documentation.
5. ADDITIONAL RESOURCES
Spring Data Homepage: http://projects.spring.io/spring-data-redis/
Spring Data on Stackoverflow: http://stackoverflow.com/questions/tagged/spring-data
Redis Homepage: http://redis.io

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d %5p %40.40c:%4L - %m%n</pattern>
</encoder>
</appender>
<logger name="org.springframework.data" level="error" />
<root level="warn">
<appender-ref ref="console" />
</root>
</configuration>