Hello all

 I would like to share with you the release of *Achilles 3.0.1 *(
https://github.com/doanduyhai/Achilles/<https://github.com/doanduyhai/Achilles/wiki>
).

With this release *Achilles* will support all new features from *Cassandra
2.0*

For those who don't know, Achilles is a Java object mapper for Cassandra
built on top of the *Java driver 2.0.0* plus a lot of utilities and tools
to make you more productive while using Cassandra in Java. Main features
are:

*Object mapping*: *Achilles* let you map anything possible with CQL3: *compound
primary key, composite partition key*, support for Enum & TimeUUID,  *secondary
index*, *reverse clustering order* ... in a sensible manner. Collections &
maps are mapped directly into CQL3 data types.

 *Persistence API*: the API exposes common *find()*, *persist(), update()*and
*remove()* methods. There is also a dirty check mechanism to avoid updating
unmodified columns

 *Queries*: *Achilles* exposes 3 distinct APIs. *Slice queries* allow you
to work on clustered tables (wide rows). *Typed queries* let you manually
craft the CQL3 statement and map the result back into entity, saving you
the boilerplate data mapping code. *Native queries* let you write CQL3
statement directly and return each row as a Map<column,value>

 *Counters*: counters are supported natively by Achilles. You can define
counter values in your entities, Achilles will map them in a dedicated
table for you.

 *Consistency, TTL & timestamp*: those parameters can be set at runtime as
options passing to the persistence API

 *Batch mode*: batch mutations rely on atomic batch features of CQL3.
*Achilles* extends the batch feature to support *statements ordering*

  *Interceptors*: it is possible to apply functional check and behaviors
upon entity life cycle (PERSIST, UPDATE, DELETE, LOAD) with interceptors

 *Bean Validation (JSR-303)*: it is possible to apply validation on
entities before persisting or updating them.

 *Unit testing*: a JUnit *@Rule* is provided to start an embedded Cassandra
server and bootstrap *Achilles*. You specify in each rule the tables to be
truncated between each test

*Statement logging*: one cool feature is the display of all CQL3 statements
generated at runtime by the framework in a dedicated logger. It makes
debugging a piece of cake. Schema creation script are also generated for
you based on entity mapping. What else ?

*Spring integration*: a FactoryBean is provided to bootstrap
*Achilles*quickly with core parameters. A Java config sample is also
provided for
those who don't like XML style.

*Advanced tutorial*: a working Twitter-like application (*Jetty backend +
HTML5 frontend*) is provided as a real life demo for Achilles.


If you are Java developer, I invite you to have a look at the project, it
may help you to get rid of boiler plate code related to data mapping and
let you concentrate on data modeling which is much more important.

 Should you have any question, issue, bug found or feedback, please do not
hesitate to come back to me or drop a message on the *Achilles* mailing
list.

 Regards

 Duy Hai DOAN

Reply via email to