I am glad to announce a final release of Cayenne 1.2 and thank our committers and users for making it possible. It's been a long road and lots of things happened along the way. An increase in the minor release number (1.2 from 1.1) only reflects the fact that upgrading is almost as simple as drag-and-drop replacement of the jars. The users will find lots of new stuff (mentioned in more detail in the docs). I'll just go over a few important things here. But first, here is a DOWNLOAD LINK.
A few months ago Cayenne has left its home at ObjectStyle.org and moved to Apache Software Foundation incubator, with the goal of expanding its community and becoming an Apache project. It was decided to make 1.2 release from ObjectStyle to give our users the time to plan the upgrade to the API that will have "org.objectstyle" replaced with "org.apache". This also means that 1.2 release is not endorsed by the Apache Software Foundation.
Remote Object Persistence
This feature turns Cayenne into a unique data service that can be accessed by remote applications. Currently this is just for Java applications (so it is often used with Swing or SWT "rich" clients), but we are contemplating clients in other languages. This is a pretty unique feature that sets Cayenne apart from the competition.
Modeler and Tools
It went from this:
And it is not just the face lift. The Modeler is faster. The Modeler ships with native launchers for Windows and Mac. Attribute and relationship buttons are in the right place. There is a way to synchronize your classes with your tables. Modeler can emulate JNDI environment for the local standalone Cayenne applications, and much more.
"cgen" ant tasks got on some serious steroids. Check it out - now you can use Cayenne mapping to generate not just persistent objects, but supporting UI classes and such. It is much more flexible now.
More Databases and Features Are Supported
1.2 adds new adapters for Derby, FrontBase and Ingres. Moreover the right adapter is now guessed at runtime, so there is no need to configure it manually, unless you customized it. 1.2 also adds support for auto-generated columns (this feature is actually still pretty raw in many JDBC drivers).
Persistence stack is much more flexible. It now supports nested DataContexts, distribution across remote tiers (already mentioned above), custom queries (you can write your own query class if you want to do something special at the JDBC level, or simply want to resolve it to a bunch of standard queries at the right moment), DataContext factory and more.
The immediate next step is to mirror the 1.2 release, only with Apache package naming, and make it available to the public to simplify migration. This would be a 2.0 release.
Then the new release (3.0) work starts. Our future goals are the following:
- Make Cayenne a spec-compliant JPA provider, in addition to what it does already.
- Switch CayenneModeler to use plugin architecture, so that users could write extensions.
- Expand remote object persistence technology to include XML transports and clients in other languages.