From 782121eb88af4d78987c5d3b039ca89336f00116 Mon Sep 17 00:00:00 2001 From: Costin Leau Date: Fri, 10 Dec 2010 19:06:18 +0200 Subject: [PATCH 1/2] + add introduction to Spring Data Key Value --- src/docbkx/index.xml | 49 ++++++--- src/docbkx/introduction/getting-started.xml | 112 ++++++++++++++++++++ src/docbkx/introduction/introduction.xml | 17 +++ src/docbkx/introduction/requirements.xml | 11 ++ src/docbkx/introduction/why-sd-kv.xml | 21 ++++ 5 files changed, 193 insertions(+), 17 deletions(-) create mode 100644 src/docbkx/introduction/getting-started.xml create mode 100644 src/docbkx/introduction/introduction.xml create mode 100644 src/docbkx/introduction/requirements.xml create mode 100644 src/docbkx/introduction/why-sd-kv.xml diff --git a/src/docbkx/index.xml b/src/docbkx/index.xml index c5c81804b..8044fb00a 100644 --- a/src/docbkx/index.xml +++ b/src/docbkx/index.xml @@ -11,14 +11,6 @@ Costin Leau - - Mark - Pollack - - - Thomas - Risberg - @@ -35,13 +27,36 @@ - - Reference - - - This part of the reference documentation details the ... - - - + + Introduction + + + + + - + + + Reference Documentation + + + + + + + Other Documentation + + + + In addition to this reference documentation, there are a number of + other resources that may help you learn how to use the various key value + stores and Spring Data. These additional, third-party resources are + enumerated in this section. + + + + + + \ No newline at end of file diff --git a/src/docbkx/introduction/getting-started.xml b/src/docbkx/introduction/getting-started.xml new file mode 100644 index 000000000..806497bbe --- /dev/null +++ b/src/docbkx/introduction/getting-started.xml @@ -0,0 +1,112 @@ + + + + Getting Started + + Learning a new framework is not always straight forward. In this section, we (the Spring Data team) + tried to provide, what we think is, an easy to follow guide for starting with Spring Data Key Value module. + Of course, feel free to create your own learning 'path' as you see fit and, if possible, please report back + any improvements to the documentation that can help others. + +
+ First Steps + + As explained in , Spring Data Key Value (SDKV) provides integration + between Spring framework and key value (KV) stores. Thus, it is important to become acquainted with both of these + frameworks (storages or environments depending on how you want to name them). Throughout the SDKV documentation, + each section provides links to resources relevant however, it is best to become familiar with these topics beforehand. + +
+ Knowing Spring + Spring Data uses heavily Spring framework's core functionality, + such as the IoC container, + resource abstract or + AOP infrastructure. While it is not important + to know the Spring APIs, understanding the concepts behind them is. At a minimum, the idea behind IoC should be familiar. + These being said, the more knowledge one has about the Spring, the faster she will pick Spring Data Key Value. + Besides the very comprehensive (and sometimes disarming) documentation that explains in detail the Spring Framework, + there are a lot of articles, blog entries and books on the matter - take a look at the Spring framework + home page for more information. In general, this should be the starting point for + developers wanting to try Spring DKV. +
+
+ Knowing NoSQL and Key Value stores + NoSQL stores have taken the storage world by storm. It is a vast domain with a plethora of solutions, terms and patterns (to make things worth even the + term itself has multiple meanings). + While some of the principles are common, it is crucial that the user is familiar to some degree with the stores supported by SDKV. + The best way to get acquainted to this solutions is to read their documentation and follow their examples - it usually doesn't take more then 5-10 minutes + to go through them and if you are coming from an RDMBS-only background many times these exercises can be an eye opener. + +
+
+ Trying Out The Samples + Unfortunately the SDKV project is very young and there are no samples available yet. However we are working on them and plan to make them available + as soon as possible. In the meantime however, one can use our test suite as a code example (assuming the documentation is not enough) - we provide extensive + integration tests for our code base. + + +
+
+ +
+ Need Help? + + If you encounter issues or you are just looking for an advice, feel free to use one of the links below: + +
+ Community Support + The Spring Data forum is a message board for all Spring Data (not just Key Value) users to + share information and help each other. Note that registration is needed only for posting. + +
+
+ Professional Support + Professional, from-the-source support, with guaranteed response time, is available from SpringSource, + the company behind Spring Data and Spring. + +
+
+ +
+ Following Development + + For information on the Spring Data source code repository, nightly builds and snapshot artifacts please see the Spring Data home + page. + + You can help make Spring Data best serve the needs of the Spring community by interacting with developers through the Spring Community + forums. + If you encounter a bug or want to suggest an improvement, + please create a ticket on the Spring Data issue tracker. + To stay up to date with the latest news and announcements in the Spring eco system, subscribe to the + Spring Community Portal. + Lastly, you can follow the SpringSource Data blog or the project team on Twitter + (Costin) +
+ +
\ No newline at end of file diff --git a/src/docbkx/introduction/introduction.xml b/src/docbkx/introduction/introduction.xml new file mode 100644 index 000000000..168114d78 --- /dev/null +++ b/src/docbkx/introduction/introduction.xml @@ -0,0 +1,17 @@ + + + + + + This document is the reference guide for Spring Data - Key Value Support. + It explains Key Value module concepts and semantics and the syntax for various + stores namespaces. + + For an introduction to key value stores or Spring, or Spring Data examples, please refer to + - this documentation refers only to Spring Data Key Value Support and + assumes the user is familiar with the key value storages and Spring concepts. + + + + \ No newline at end of file diff --git a/src/docbkx/introduction/requirements.xml b/src/docbkx/introduction/requirements.xml new file mode 100644 index 000000000..386dc6d7b --- /dev/null +++ b/src/docbkx/introduction/requirements.xml @@ -0,0 +1,11 @@ + + Requirements + + Spring Data Key Value 1.x binaries requires JDK level 6.0 and above, + and Spring Framework + 3.0.x and above. + + In terms of key value stores, Redis 2.0.x + and Riak 0.13 are required. + + \ No newline at end of file diff --git a/src/docbkx/introduction/why-sd-kv.xml b/src/docbkx/introduction/why-sd-kv.xml new file mode 100644 index 000000000..0d6f0e846 --- /dev/null +++ b/src/docbkx/introduction/why-sd-kv.xml @@ -0,0 +1,21 @@ + + + + Why Spring Data - Key Value? + + The Spring Framework is the leading full-stack Java/JEE + application framework. It provides a lightweight container and a + non-invasive programming model enabled by the use of dependency + injection, AOP, and portable service abstractions. + + NoSQL + storages provide an alternative to classical RDBMS for horizontal scalability + and speed. In terms of implementation, Key Value stores represent one of the + largest (and oldest) member in the NoSQL space. + + The Spring Data Key Value (or SDKV) framework makes it easy to + write Spring applications that use a Key Value store by eliminating the redundant + tasks and boiler place code required for interacting with the store through + Spring's excellent infrastructure support. + \ No newline at end of file From c89776f408694426dabfb525f69744b4483c0937 Mon Sep 17 00:00:00 2001 From: Costin Leau Date: Fri, 10 Dec 2010 19:06:35 +0200 Subject: [PATCH 2/2] + add draft Redis docs --- src/docbkx/reference/introduction.xml | 9 +++++ src/docbkx/reference/redis.xml | 58 +++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 src/docbkx/reference/introduction.xml create mode 100644 src/docbkx/reference/redis.xml diff --git a/src/docbkx/reference/introduction.xml b/src/docbkx/reference/introduction.xml new file mode 100644 index 000000000..7ef643d5a --- /dev/null +++ b/src/docbkx/reference/introduction.xml @@ -0,0 +1,9 @@ + + Document structure + + This part of the reference documentation explains the core functionality + offered by Spring Data Key Value. + + introduces the Redis module feature set. + + \ No newline at end of file diff --git a/src/docbkx/reference/redis.xml b/src/docbkx/reference/redis.xml new file mode 100644 index 000000000..feb1e718e --- /dev/null +++ b/src/docbkx/reference/redis.xml @@ -0,0 +1,58 @@ + + + + Redis support + + One of the key value stores supported by SDKV is Redis. + To quote the project home page: + + Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, + exactly like in memcached, but also lists, sets, and ordered sets. All this data types can be manipulated with atomic operations + to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and so forth. + Redis supports different kind of sorting abilities. + + Spring Data Key Value provides easy configuration and access to Redis from Spring application. Offers both low-level and + high-level abstraction for interacting with the store, freeing the user from infrastructural concerns. + + +
+ Redis Requirements + SDKV requires Redis 2.0 or above (work is underway to support the upcoming (at the time this document was written) 2.2) and + Java SE 6.0 or above. + In terms of language bindings (or connectors), SDKV integrates with Jedis and + JRedis, two popular open source Java libraries for Redis. If you are aware of + any other connector that we should be integrating is, please send us feedback. + +
+ +
+ Redis Support High Level View + + The Redis support provides several components (in order of dependencies): + + Low-Level Abstractions - for configuring and handling communication with Redis through the various connector libraries supported as + described in . + High-Level Abstractions - providing a generified, user friendly template classes for interacting with Redis. + explains the abstraction builds on top of the low-level Connection API to handle the + infrastructural concerns and object conversion. + Support Services - that offer reusable components (built on the aforementioned abstractions) such as + java.util.Collection backed by Redis as documented in + + + For most tasks, the high-level abstractions and support services are the best choice. Note that at any point, one can move between layers - for example, it's very + easy to get a hold of the low level connection (or even the native libray) to communicate directly with Redis. +
+ +
+ Connecting to Redis +
+ +
+ Working with Objects through <classname>RedisTemplate</classname> +
+ +
+ Support Services +
+
\ No newline at end of file