Merge branch 'master' of github.com:SpringSource/spring-data-keyvalue
This commit is contained in:
@@ -11,14 +11,6 @@
|
||||
<firstname>Costin</firstname>
|
||||
<surname>Leau</surname>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Mark</firstname>
|
||||
<surname>Pollack</surname>
|
||||
</author>
|
||||
<author>
|
||||
<firstname>Thomas</firstname>
|
||||
<surname>Risberg</surname>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<legalnotice>
|
||||
@@ -35,13 +27,36 @@
|
||||
|
||||
<xi:include href="preface.xml"/>
|
||||
|
||||
<part>
|
||||
<title>Reference</title>
|
||||
<partintro>
|
||||
<para>
|
||||
This part of the reference documentation details the ...
|
||||
</para>
|
||||
</partintro>
|
||||
<!-- <xi:include href="redis.xml"/> -->
|
||||
<part id="introduction">
|
||||
<title>Introduction</title>
|
||||
|
||||
<xi:include href="introduction/introduction.xml"/>
|
||||
<xi:include href="introduction/why-sd-kv.xml"/>
|
||||
<xi:include href="introduction/requirements.xml"/>
|
||||
<xi:include href="introduction/getting-started.xml"/>
|
||||
</part>
|
||||
</book>
|
||||
|
||||
<part id="reference">
|
||||
<title>Reference Documentation</title>
|
||||
|
||||
<xi:include href="reference/introduction.xml"/>
|
||||
<xi:include href="reference/redis.xml"/>
|
||||
</part>
|
||||
|
||||
<part id="resources">
|
||||
<title>Other Documentation</title>
|
||||
|
||||
<partintro>
|
||||
<para>
|
||||
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.
|
||||
</para>
|
||||
</partintro>
|
||||
<!--
|
||||
<xi:include href="links.xml"/>
|
||||
-->
|
||||
</part>
|
||||
|
||||
</book>
|
||||
112
src/docbkx/introduction/getting-started.xml
Normal file
112
src/docbkx/introduction/getting-started.xml
Normal file
@@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
||||
<chapter id="get-started">
|
||||
<title>Getting Started</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<section id="get-started:first-steps">
|
||||
<title>First Steps</title>
|
||||
|
||||
<para>As explained in <xref linkend="why-Spring Data-Key Value"/>, 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.</para>
|
||||
|
||||
<section id="get-started:first-steps:spring">
|
||||
<title>Knowing Spring</title>
|
||||
<para>Spring Data uses heavily Spring framework's <ulink url="http://static.springframework.org/spring/docs/3.0.x/reference/spring-core.html">core</ulink> functionality,
|
||||
such as the <ulink url="http://static.springframework.org/spring/docs/3.0.x/reference/beans.html">IoC</ulink> container,
|
||||
<ulink url="http://static.springframework.org/spring/docs/3.0.x/reference/resources.html">resource</ulink> abstract or
|
||||
<ulink url="http://static.springframework.org/spring/docs/3.0.x/reference/aop.html">AOP</ulink> 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
|
||||
<ulink url="http://www.springsource.org/documentation">home page</ulink> for more information. In general, this should be the starting point for
|
||||
developers wanting to try Spring DKV.</para>
|
||||
</section>
|
||||
<section id="get-started:first-steps:nosql">
|
||||
<title>Knowing NoSQL and Key Value stores</title>
|
||||
<para>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 <ulink url="http://www.google.com/search?q=nosoql+acronym">meanings</ulink>).
|
||||
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.
|
||||
</para>
|
||||
</section>
|
||||
<section id="get-started:first-steps:samples">
|
||||
<title>Trying Out The Samples</title>
|
||||
<para>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.
|
||||
</para>
|
||||
<!--
|
||||
<para>The current distribution contains:</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Simple Service Sample</para>
|
||||
<para>A simple example that illustrates OSGi service publication and consumption through Spring DM. This is a good starting point
|
||||
for users learning the basics.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Weather Sample</para>
|
||||
<para>A demo that shows more advanced features of Spring DM and OSGi. The application creates a very simple weather information services
|
||||
presenting some best practices in designing an application to take advantage of the modularity offered by OSGi.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Simple Web App Sample</para>
|
||||
<para>As the name implies, this is a simple web application, containing Servlets, JSPs and JSP tags, that runs inside OSGi through Spring DM.</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>Web Console Sample</para>
|
||||
<para>A more complicated sample that demos a Spring MVC annotation based, web application that runs inside OSGi through Spring DM, featuring
|
||||
class path scanning and various Spring taglib. Additionally, the web application interacts with the OSGi environment through the web UI.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
<para>Each project contains instructions regarding its content and startup procedure. Users are encouraged to experiment with the samples to get a better
|
||||
understanding of the technologies used.</para>
|
||||
-->
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="get-started:help">
|
||||
<title>Need Help?</title>
|
||||
|
||||
<para>If you encounter issues or you are just looking for an advice, feel free to use one of the links below:</para>
|
||||
|
||||
<section id="get-started:help:community">
|
||||
<title>Community Support</title>
|
||||
<para>The Spring Data <ulink url="http://forum.springframework.org/forumdisplay.php?f=80">forum</ulink> 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 <emphasis>only</emphasis> for posting.
|
||||
</para>
|
||||
</section>
|
||||
<section id="get-started:help:professional">
|
||||
<title>Professional Support</title>
|
||||
<para>Professional, from-the-source support, with guaranteed response time, is available from <ulink url="http://www.springsource.com">SpringSource</ulink>,
|
||||
the company behind Spring Data and Spring.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="get-started:up-to-date">
|
||||
<title>Following Development</title>
|
||||
|
||||
<para>For information on the Spring Data source code repository, nightly builds and snapshot artifacts please see the Spring Data home
|
||||
<ulink url="http://www.springsource.org/spring-data">page</ulink>.
|
||||
</para>
|
||||
<para>You can help make Spring Data best serve the needs of the Spring community by interacting with developers through the Spring Community
|
||||
<ulink url="http://forum.springsource.org">forums</ulink>.</para>
|
||||
<para>If you encounter a bug or want to suggest an improvement,
|
||||
please create a ticket on the Spring Data issue <ulink url="https://jira.springframework.org/browse/DATAKV">tracker</ulink>.</para>
|
||||
<para>To stay up to date with the latest news and announcements in the Spring eco system, subscribe to the
|
||||
Spring Community <ulink url="http://www.springframework.org/">Portal</ulink>.</para>
|
||||
<para>Lastly, you can follow the SpringSource Data <ulink url="http://blog.springsource.com/category/data-access/">blog</ulink> or the project team on Twitter
|
||||
(<ulink url="http://twitter.com/costinl">Costin</ulink>)</para>
|
||||
</section>
|
||||
|
||||
</chapter>
|
||||
17
src/docbkx/introduction/introduction.xml
Normal file
17
src/docbkx/introduction/introduction.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
||||
|
||||
<partintro>
|
||||
<para>
|
||||
<para>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.</para>
|
||||
|
||||
<para>For an introduction to key value stores or Spring, or Spring Data examples, please refer to
|
||||
<xref linkend="get-started"/> - this documentation refers only to Spring Data Key Value Support and
|
||||
assumes the user is familiar with the key value storages and Spring concepts.</para>
|
||||
|
||||
</para>
|
||||
|
||||
</partintro>
|
||||
11
src/docbkx/introduction/requirements.xml
Normal file
11
src/docbkx/introduction/requirements.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<chapter id="requirements">
|
||||
<title>Requirements</title>
|
||||
|
||||
<para>Spring Data Key Value 1.x binaries requires JDK level 6.0 and above,
|
||||
and <ulink url="http://www.springsource.org/documentation">Spring Framework</ulink>
|
||||
3.0.x and above.</para>
|
||||
<para>
|
||||
In terms of key value stores, <ulink url="http://code.google.com/p/redis/">Redis</ulink> 2.0.x
|
||||
and <ulink url="http://www.basho.com/Riak.html">Riak</ulink> 0.13 are required.
|
||||
</para>
|
||||
</chapter>
|
||||
21
src/docbkx/introduction/why-sd-kv.xml
Normal file
21
src/docbkx/introduction/why-sd-kv.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
||||
<chapter id="why-Spring Data-Key Value">
|
||||
<title>Why Spring Data - Key Value?</title>
|
||||
|
||||
<para>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.</para>
|
||||
|
||||
<para><ulink url="http://en.wikipedia.org/wiki/NoSQL">NoSQL</ulink>
|
||||
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.</para>
|
||||
|
||||
<para>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.</para>
|
||||
</chapter>
|
||||
9
src/docbkx/reference/introduction.xml
Normal file
9
src/docbkx/reference/introduction.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<partintro>
|
||||
<title>Document structure</title>
|
||||
|
||||
<para>This part of the reference documentation explains the core functionality
|
||||
offered by Spring Data Key Value.</para>
|
||||
|
||||
<para><xref linkend="redis"/> introduces the Redis module feature set.</para>
|
||||
|
||||
</partintro>
|
||||
58
src/docbkx/reference/redis.xml
Normal file
58
src/docbkx/reference/redis.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
|
||||
<chapter id="redis">
|
||||
<title>Redis support</title>
|
||||
|
||||
<para>One of the key value stores supported by SDKV is <ulink url="http://code.google.com/p/redis/">Redis</ulink>.
|
||||
To quote the project home page:
|
||||
<quote>
|
||||
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.</quote>
|
||||
|
||||
<para>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.</para>
|
||||
</para>
|
||||
|
||||
<section id="redis:requirements">
|
||||
<title>Redis Requirements</title>
|
||||
<para>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 <ulink url="http://github.com/xetorthio/jedis">Jedis</ulink> and
|
||||
<ulink url="http://github.com/alphazero/jredis">JRedis</ulink>, 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.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section id="redis:architecture">
|
||||
<title>Redis Support High Level View</title>
|
||||
|
||||
<para>The Redis support provides several components (in order of dependencies):</para>
|
||||
<itemizedlist>
|
||||
<listitem><emphasis>Low-Level Abstractions</emphasis> - for configuring and handling communication with Redis through the various connector libraries supported as
|
||||
described in <xref linkend="redis:connectors"/>. </listitem>
|
||||
<listitem><emphasis>High-Level Abstractions</emphasis> - providing a generified, user friendly template classes for interacting with Redis.
|
||||
<xref linkend="redis:template"/> explains the abstraction builds on top of the low-level <interfacename>Connection</interfacename> API to handle the
|
||||
infrastructural concerns and object conversion.</listitem>
|
||||
<listitem><emphasis>Support Services</emphasis> - that offer reusable components (built on the aforementioned abstractions) such as
|
||||
<interfacename>java.util.Collection</interfacename> backed by Redis as documented in <xref linkend="redis:support"/></listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>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.</para>
|
||||
</section>
|
||||
|
||||
<section id="redis:connectors">
|
||||
<title>Connecting to Redis</title>
|
||||
</section>
|
||||
|
||||
<section id="redis:template">
|
||||
<title>Working with Objects through <classname>RedisTemplate</classname></title>
|
||||
</section>
|
||||
|
||||
<section id="redis:support">
|
||||
<title>Support Services</title>
|
||||
</section>
|
||||
</chapter>
|
||||
Reference in New Issue
Block a user