Hot off the presses is the 0.5 release for JBoss DNA. It’s in the JBoss Maven repository and in our project’s downloads area. Of course, the best place to get started is our Getting Started guide, or for those wanting all the detail, the Reference Guide. Both of these documents were completely rewritten to be more complete and better reorganized. And we always have JavaDocs.
For those of you not familiar with our project, here’s a brief summary:
JBoss DNA is a JCR implementation that provides access to content stored in many different kinds of systems. A JBoss DNA repository isn’t yet another silo of isolated information, but rather it’s a JCR view of the information you already have in your environment: files systems, databases, other repositories, services, applications, etc.
To your applications, JBoss DNA looks and behaves like a regular JCR repository. Using the standard JCR API, applications can search, navigate, version, and listen for changes in the content. But under the covers, JBoss DNA gets its content by federating multiple back-end systems (like databases, services, other repositories, etc.), allowing those systems to continue “owning” the information while ensuring the unified repository stays up-to-date and in sync.
This release brings quite a few new features. First and foremost, this release brings a new technique for configuring the JBoss DNA engine that is much easier and works programmatically or via a configuration file (or configuration repository). JBoss DNA also supports defining node types with CND files, and allows registration of new node types using the same approach as in JSR-283. (There’s even a new CND sequencer.) All of our examples now use JBoss DNA as the JCR implementation.
By the way, JBoss DNA supports all JCR Level 1 features except XPath queries, and all JCR Level 2 features except authorization, referential integrity for reference properties, re-ordering of orderable child nodes, workspace cloning and corresponding nodes, workspace copying. This release includes some features we’ll need in the next release to close the gap on JCR compatibility. We’ve been reserving the “1.0” release label for when we reach compatibility with Level 1 and Level 2 (plus some optional features), and we’re getting really close!
Another great feature we’ve added is a new RESTful web service front end to JBoss DNA. Deploying to a web server is pretty easy, and your applications and use HTTP and JSON to access or update repository content. Although the initial version of this REST server only supports the JBoss DNA JCR implementation, it has been designed to make integration with other JCR implementors easy.
This release also sees an enhanced connector framework, and we improved most of our connectors in some way. The federation connector was completely rewritten to leverage a fork-join type algorithm for parallel execution and pushdowns. The SVN connector is pretty cool, though it’s currently read-only and doesn’t yet push events.
The last improvement I’ll note is that we’ve improved the ability for JBoss DNA to use an authentication and authorization system. It works with JAAS (see one of our example applications) and with servlet container security.
We were able to get back on the “release early, release often” bandwagon with this release. It was just a little over a month since we released 0.4, and this sure was a lot more sane.
Thanks to all the folks in our community that worked on this release. We really pushed ourselves with an aggressive schedule, but everyone came through. Gotta love open source!