diff --git a/README.md b/README.md index af7ec378b..21497b73b 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ## Quick Start -To begin working with ``spring-cassandra`` or ``spring-data-cassandra``, add the Spring Maven Snapshot Repository to your ``pom.xml``. +To begin working with ``spring-cql`` or ``spring-data-cassandra``, add the Spring Maven Snapshot Repository to your ``pom.xml``. spring-libs-snapshot @@ -12,14 +12,14 @@ To begin working with ``spring-cassandra`` or ``spring-data-cassandra``, add the -### CQL Only (spring-cql) +### CQL Only (``spring-cql``) *Maven Coordinates* org.springframework.data spring-cql - 1.0.0.BUILD-SNAPSHOT + 1.0.0.RELEASE *Minimal Spring XML Configuration* @@ -54,14 +54,14 @@ To begin working with ``spring-cassandra`` or ``spring-data-cassandra``, add the // ... } -### CQL and Object Mapping (spring-data-cassandra) +### CQL and Object Mapping (``spring-data-cassandra``) *Maven Coordinates* org.springframework.data spring-data-cassandra - 1.0.0.BUILD-SNAPSHOT + 1.0.0.RELEASE *Minimal Spring XML Configuration* @@ -93,20 +93,11 @@ To begin working with ``spring-cassandra`` or ``spring-data-cassandra``, add the } -## Release Preview +## What's included -The goal of this release preview is to publish the pieces of spring-data-cassandra as they become available -so that users of the module can start to familiarize themselves with the components, and ultimately to provide -the development team feedback. We hope this iterative approach produces the most usable and developer friendly -``spring-data-cassandra`` repository. +There are two modules included in the ``spring-data-cassandra`` repository: ``spring-cql`` and ``spring-data-cassandra``. -### What's included (Q1 - 2014) - -There are two modules included in the ``spring-data-cassandra`` repository: ``spring-cassandra`` and ``spring-data-cassandra``. - -_Note: we are considering consolidating both modules into one for convenience._ - -#### Module ``spring-cassandra`` +### Module ``spring-cql`` This is the low-level core template framework, like the ones you are used to using on all your Spring projects. Our ``CqlTemplate`` provides everything you need for working with Cassandra using Spring's familiar template pattern in a manner very similar to Spring's ``JdbcTemplate``. @@ -122,21 +113,17 @@ The module also offers convenient builder pattern classes to easily specify the The support for Spring JavaConfig and a Spring Cassandra XML namespace makes it easy to configure your context to work with Cassandra, including XML namespace support for automatic keyspace creations, drops & more, which can be convenient when writing integration tests. -#### Module ``spring-data-cassandra`` +### Module ``spring-data-cassandra`` -The ``spring-data-cassandra`` module depends on the ``spring-cassandra`` module and adds the familiar Spring Data features like repositories and lightweight POJO persistence. +The ``spring-data-cassandra`` module depends on the ``spring-cql`` module and adds the familiar Spring Data features like repositories and lightweight POJO persistence. -__Note: As of 7 Feb 2014, module ``spring-data-cassandra`` is functional!__ - -We are actively working on its completion, but wanted to make the lower level Cassandra template functionality available to the Spring and Cassandra communities. - -#### Best practices +### Best practices We have worked closely with the DataStax Driver Engineering team to ensure that our implementation around their native CQL Driver takes advantage of all that it has to offer. If you need access to more than one keyspace in your application, -create more than one ``CqlTemplate`` (one per session, one session per keyspace), then use the appropriate template instance where needed. +create more than one ``CqlTemplate`` (one ``CqlTemplate`` per session, one session per keyspace), then use the appropriate template instance where needed. -Here are some considerations when designing your application for use with ``spring-cassandra``. +Here are some considerations when designing your application for use with ``spring-cql``. * When creating a template, wire in a single ``Session`` per keyspace. * ``Session`` is threadsafe, so only use one per keyspace per application context! @@ -144,30 +131,22 @@ Here are some considerations when designing your application for use with ``spri * The DataStax Java Driver handles all failover and retry logic for you. Become familiar with the [Driver Documentation](http://www.datastax.com/documentation/developer/java-driver/1.0/webhelp/index.html), which will help you configure your ``Cluster``. * If you are using a Cassandra ``Cluster`` spanning multiple data centers, please be insure to include hosts from all data centers in your contact points. -#### High Performance Ingestion +### High Performance Ingestion We have included a variety of overloaded ``ingest()`` methods in ``CqlTemplate`` for high performance batch writes. -### What's Next (early Q1 - 2014): Spring _Data_ Cassandra - -The next round of work to do is to complete module ``spring-data-cassandra``, while taking feedback from the community's use of module ``spring-cassandra``. We are already well on our way to completion. - -#### Cassandra Repository +### Cassandra Repository The base Spring Data Repository interface for Cassandra is ``CassandraRepository``. -#### Cassandra Template +### CassandraTemplate -``CassandraTemplate`` extends ``CqlTemplate`` to provide even more interaction with Cassandra using annotated POJOs. -The Spring Data ``CassandraRepository`` implementation is a client of ``CassandraTemplate``. This _data_ template gives the developer the capability of working with annotated POJOs and the template pattern without the requirement of the Spring Data ``Repository`` interface, in addition to the familiar Spring Data ``Repository`` concepts. +``CassandraTemplate`` extends ``CqlTemplate``, adding mapping information so you can work with Cassandra using annotated POJOs. +The Spring Data ``CassandraRepository`` implementation also happens to be a client of ``CassandraTemplate`` so, if necessary, a developer can work with annotated POJOs and the template pattern without ever using ``CassandraRespository``. -#### Cassandra Admin Template +### Cassandra Admin Template -This is another Spring template class to help you with all of your keyspace and table administration tasks. - -#### Official Reference Guide - -Once we have all the inner workings of the ``CassandraRepository`` interface completed, we will publish a full reference guide on using all of the features in ``spring-data-cassandra``. +This is another Spring template class to help you with your keyspace and table administration tasks. ## CqlTemplate Examples @@ -216,23 +195,6 @@ Here is a very basic example to get your project connected to Cassandra running } } -## Current Status - -This community-led [Spring Data](http://projects.spring.io/spring-data) -subproject is well underway. - -A first milestone (M1) is expected sometime in early 1Q14 built on the -following artifacts (or more recent versions thereof): - -* Spring Data Commons 1.8.x -* Cassandra 2.0 -* Datastax Java Driver 2.0.X -* JDK 1.6+ - -The GA release is expected as part of the Spring -Data release train [Dijkstra](https://github.com/spring-projects/spring-data-commons/wiki/Release-Train-Dijkstra). - - ## Source Repository & Issue Tracking Source for this module is hosted on GitHub in [Spring Projects](https://github.com/spring-projects/spring-data-cassandra). @@ -268,7 +230,7 @@ below: * David Webb: dwebb _at_ prowaveconsulting _dot_ com * Matthew Adams: matthew _dot_ adams _at_ scispike _dot_ com -Also, developer discussions are being hosted via a [Spring Data Cassandra Google Group](https://groups.google.com/forum/#!forum/spring-data-cassandra). +Also, developer discussions are being hosted on [StackOverflow](https://www.stackoverflow.com) using the tag ``spring-data-cassandra``. ## Contributing Individuals @@ -283,7 +245,6 @@ companies and individuals: * [Prowave Consulting](http://www.prowaveconsulting.com) - David Webb * [SciSpike](http://www.scispike.com) - Matthew Adams -* [VHA](http://www.vha.com) The following companies and individuals are also generously providing support: