Migrating from DNA

There will be no more JBoss DNA releases, so we recommend migrating from JBoss DNA 0.7 to ModeShape. The process is actually pretty straightforward, since most of your code should be using the JCR API. (Thank goodness for standards!)

Unfortunately, ModeShape has gone through a lot of development and quite a few releases since the name change. If you're still using JBoss DNA, it's probably better to migrate your to ModeShape 1.0.0.Final as described below, verify everything is still working, and then upgrade to the latest ModeShape release.

Migrate from JBoss DNA to ModeShape 1.0.0.Final

The first and most obvious change is our Maven artifacts. Simple change the group ID from "org.jboss.dna" to "org.modeshape", the artifact IDs to use the "modeshape-" prefix instead of "dna-", and change the version numbers to the latest ModeShape release. Your Maven dependencies should then look like what is shown on the Using with Maven page.

None of the third-party dependencies have changed between JBoss DNA 0.7 to ModeShape 1.0.0.Final.

Where your code is using JBoss DNA classes, simply replace the "org.jboss.dna..." imports with "org.modeshape...". All of the method names are the same, and nearly all of the class names are the same (only if the class name begins with "Dna" would the class name change to begin with "ModeShape", and chances are you're not using any of those classes anyway).

In your configuration files, change the JBoss DNA namespace URIs to the ModeShape namespace URIs. In other words, any namespace URI starting with "http://www.jboss.org/dna" should be changed to start with "http://www.modeshape.org". You don't have to change the name of the namespace prefix, but we've begun using "mode:" in our documentation and examples.

One final note. If you've begun using the "Simple" JPA connector model just recently introduced in JBoss DNA 0.7, please be aware that we've changed the names of the database tables. We could have kept using the "DNA_" prefix, but we thought it best to change the name because the "Simple" model is so new and will be with ModeShape for a long time to come.

Migrate to the latest ModeShape release

Your application should be working with ModeShape 1.0.0.Final. Now it's time to migrate to the latest version of ModeShape. ModeShape has changed fairly significantly with over a half-dozen releases since ModeShape 1.0.0.Final, so upgrading to the latest ModeShape release will take a few steps:

  • ModeShape 2.x uses the JCR 2.0 API, so change your application to use that library. Thankfully, nearly everything in JCR 1.0 works exactly the same way in JCR 2.0.
  • Wherever your application is using ModeShape 1.0.0.Final JARs (or Maven artifacts), change these to use the latest version. If you're using Maven, see examples of the dependencies
  • If your application is explicitly using some of ModeShape's third-party dependencies, you will need to upgrade these to the same versions ModeShape is using.