We’ve just released version 0.6 of JBoss DNA. It’s in the JBoss Maven repository and in our project’s downloads area. Of course, our Getting Started guide and Reference Guide are great places to see. And we always have JavaDocs.
This release brings a lot of fixes and a number of really great new features. We’ve actually done a fair amount of additional integration, and we’re getting great feedback from our user community. Thanks to all the JBoss DNA team for all the hard work!
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.
We’re a little closer to JCR’s Level 1 and 2 compatibility, and in fact we’re now running the compatibility tests against multiple sources, including a simple transient in-memory store, JBoss Cache, Infinispan (see below), and relational databases (using our JPA/Hibernate connector). We also are running the read-only tests using the file system connector and the SVN connector. In short, JBoss DNA can be used as a JCR repository with a variety of storage systems and back-ends, including a combination using our federated connector.
Last release we rewrote the federation connector to use a fork-join type algorithm for parallel execution and pushdowns. This release we’ve started using the federation connector in all JCR Session and Workspaces. You see, every JCR repository can have multiple workspaces, but each of those workspaces has a “/jcr:system” branch that provides access to the repository-wide settings and metadata, including node types, namespaces, versions, etc. There really is just one of these system branches in the whole repository, so we’re using the federation connector to project that system content into each session. What’s so great is that this fits one of the federation connector’s ideal content patterns (known as “mirror-branch“), so it actually is very efficient and fast.
There is also a new connector that allows you to store repository content using Infinispan. The Infinispan project is doing some really fascinating work to create a highly scalable, distributed, and highly available data grid platform. By using Infinispan with JBoss DNA, your application can use the JCR API to access and manage its content, while behind the scenes JBoss DNA stores this content in the Infinispan data grid. Couple this with federation to give your application easy access to all kinds of data, regardless of where that data lives.
We’ve made a number of improvements in our SVN connector, which allows you to use the JCR API to access the files stored in an SVN repository. The files appear as “nt:files” and “nt:folders” in a JCR repository. It actually is very slick, though it’s not currently operating that quickly. But that’s already on our radar for the next release.
We actually were hoping to get query and search support in this release, and while we are about half-way done with this features, we put it on hold so we could get 0.6 out the door. Search/query (plus a few open issues) will bring us the rest of the way to JCR Level 1 and Level 2 compliance. Plus, we’re also planning on getting versioning completed as well as finishing observation. And with that will be our 1.0 release.
Stay tuned for additional posts describing what’s possible with JBoss DNA and Infinispan, as well as a lot more detail on the upcoming search and query feature.