An open-source, federated content repository

Introduction to ModeShape 4 on WildFly

Francesco Marchioni has written two articles that show just how easy it is to get started with ModeShape 4 on WildFly and to use JavaEE to very quickly create a simple web application to create and access content.

The first article, “NoSQL Data storage with ModeShape 4“, shows exactly how to install ModeShape 4 into an existing (or new) WildFly 8 server.

The second article, “ModeShape 4 in action“, walks through deploying a simple Web application to insert new nodes into Modeshape JCR repository and display them with a nice Primefaces tree view.

Thanks, Francesco, for providing these excellent and very useful articles!


Filed under: features, open source, techniques

Relicensing ModeShape 4.0 under ASL2.0

A month ago I proposed that we relicense ModeShape under the Apache Software License (ASL) 2.0 starting with the first 4.0 release of ModeShape. To date the reactions have been nothing but favorable, so we’re going to proceed down this road.

Please see the discussion thread for more details and to add any of your own opinions.

Filed under: news, open source

ModeShape Tools for Eclipse

ModeShape Tools is a set of Eclipse plugins for working with ModeShape and JCR repositories. The plugins have been available for a little while, but we wanted to make sure you knew about them.

Editor for CND files

The first plugin we’ll talk about is an Eclipse editor for the Compact Node Definition (CND) format defined in the JCR 2.0 (JSR-283) specification. Although a client application can connect to a JCR repository and programmatically register node types, it is usually easier to place the node type definitions inside a CND file and to use that file to register all the node types contained within it. ModeShape Tool’s CND editor makes it easy to edit such files.

(The JCR 2.0 API does not define how an implementation should support registering node types via CND files, but many of the implementations have a proprietary way to do it. ModeShape extends the javax.jcr.nodetype.NodeTypeManager interface with several “registerNodeTypes” methods that each take a, a, or an containing CND content. We’re hoping the JSR-333 effort for JCR 2.1 adopts our approach.)

The CND editor is a 2-page Eclipse editor used for editing *.cnd files. The first page is form-based and consists of sections for managing namespace mappings, node type definitions, property definitions, and child node definitions. The second page is a readonly view of the file content.

Take a look at the CND editor with the properties and child node sections collapsed:


When you select a node type, the editor shows the information about that node type on the right side. This includes the node type’s name, attributes, supertypes, and property and child node definitions. Add, change, or remove a property definition or child node definition by double-clicking the particular row in the section’s table or by using the section’s toolbar. Here’s a view of the editor with the properties and child node sections expanded:


The CND editor’s second page is a readonly source view of the *.cnd file. You can control the verbosity of the CND notation by a preference. The source page looks like this:


Here’s a few other features of the CND editor:

  • automatic validation of the CND file, with errors displayed in the header section
  • copy and paste CND elements within the same editor or between CND editors
  • automatic URI completion when adding standard (built-in) namespaces
  • the node type section has a search filter to quickly find and select a node type, even when there are hundreds of node types in the file
  • the ability to show/hide property definitions and child node definitions inherited from supertypes
  • attach comments to any CND element
  • Ctrl-space completion and “look ahead” typing for available supertypes and required types.
  • built-in help

You can read more detail about the CND Editor in our online documentation.

The CND Editor can edit any CND files for ModeShape or any other JCR 2.0 repository implementation. It is also possible to just install just this plugin. So even if you’re not using ModeShape, we think you’ll still find the CND Editor very useful.

Publishing files to ModeShape

The second ModeShape Tools plugin provides a way to upload files from your Eclipse workspace to a ModeShape repository. It can publish entire projects, folders, or just selected files. You select the ModeShape server, repository, workspace, and area within the workspace where the file(s) are to be placed.

To use, simply select the files and/or directories you want to publish, and then choose “ModeShape->Publish” from the context menu. You’ll then see a dialog that confirms the details of the publishing request:


Simply select “Finish” to publish the files to ModeShape.

The publishing tool can also:

  • un-publish (or delete) resources from a publish area of a ModeShape server
  • indicate which files should also be versioned (with “mix:versionable”) when they are published
  • show the output of the publishing operations in the message console view
  • show in a Servers view the repositories, workspaces, and publish areas for multiple ModeShape servers
  • always ignore certain file types from being included in the publishing operations, configured via preferences
  • built-in help


Each of these features can be installed separately or together by following these steps:

  1. Start up Eclipse 3.7 (Juno), then choose “Help > Install New Software…”
  2. Enter and hit “Enter”.
  3. When the site loads, select which feature(s) you want to install, or click the “Select All” button.
  4. Click “Next”, agree to the license terms, and install.

You can read more about ModeShape Tools in our documentation

Want to contribute?

These plugins are open source and are on GitHub, licensed under EPL and LGPL. We’re always looking for contributors to help out. If you would like to contribute, find a bug, want to suggest a new feature, or have any questions, please let us know in our discussion forum and we’ll get you started. The JIRA for these plugins is here.

Filed under: features, news, open source, releases, tools, uncategorized

ModeShape 2.7.0.Final is available

The ModeShape team is once again happy to announce the immediate availability of ModeShape 2.7.0.Final. The release artifacts are available in the JBoss Maven repository (see our Maven instructions) and on our downloads page. And as we said earlier this week, we’ve moved our Getting Started and Reference Guides to a new home.

Version 2.7 contains mostly bug fixes and minor improvements:

  • improved memory usage during export and indexing
  • fixed JPA connectors use of 2nd level cache for Hibernate 3.3 and later
  • JPA connector’s background garbage collection can be disabled
  • JPA connector no longer caches large value entities
  • fixed race condition in RepositoryConnectionPool
  • added public API methods to register node types in CND files, eliminating need for depending upon implementation classes
  • a few public API interfaces/methods that were redundant with JCR 2.0 have been deprecated
  • added support for setting values with custom javax.jcr.Binary implementations
  • added public API methods to get the SHA-1 hash of binary values
  • fixes to query processing
  • fixes to enable building on Windows
  • corrected Teiid sequencers generation of transformation queries
  • upgraded to Tika 1.0
  • upgraded versions of several Maven plugins

Thanks to the entire ModeShape community for testing our previous betas and helping us improve the stability and performance. And thanks to all the contributors that took part in this release. Great job, everyone!

Filed under: features, jcr, news, open source, repository

Announcing ModeShape 2.5.0.Beta1

We’ve just released the first beta of the 2.5 release, with a few performance improvements, a number of enhancements, and almost two dozen bug fixes. One of the new features is an extensible framework for extracting text from binary content to enable finding this content with full-text searching, with out-of-the-box support for Teiid Virtual Database, Microsoft Office, PDF, HTML, plain text, and XML files. We’ve also put into place a way to use ByteMan to inject at runtime calls to monitor the performance of the various components. This is also the first release since we’ve switched to Git, moved our official source code repository to GitHub, and started using our new developer workflow that uses GitHub forks and pull-requests. We’ve also switched to Maven 3, which has improved our build times and made it possible to build shebang with a single command.

The 2.5.0.Beta1 release is available in the JBoss Maven repository (under the “org.modeshape” group ID) and on our downloads page. And as always, check out our release notes for more information about what’s exactly in this beta release, including all the fixed issues. Give this release a spin, and let us know what you think!

We’re continuing to actively improve performance, so look for even more gains in the  next beta, which we hope to have out in about 3-4 weeks.

A big thanks goes to our community of users and developers, without whom none of this would be possible. Keep up the excellent work!

Filed under: features, jcr, news, open source

Moving to Maven 3

The ModeShape project is planning to move to Maven 3 for our build system, and away from Maven 2.0.9 (or 2.2.1). We’ve been struggling for quite some time with a number of Maven 2’s quirks, including difficulties with dependencies in our assemblies, and everything we’ve heard is that Maven 3 is a significant improvement all around. Unfortunately, we’ll have to make some changes to our POM files to get Maven 3 working, and once we commit these changes Maven 2 will no longer work. In other words, project developers will have to upgrade their local Maven installations before they’ll be able to build ModeShape.

If you have any thoughts or comments on this effort (especially if you’re opposed!), please let us know by commenting on the JIRA issue.

Filed under: news, open source, tools

ModeShape moves to Git

The ModeShape project’s official source code repository is now at GitHub:

We’re adopting the Fork+Pull method of development. The basic idea is that you first fork the “official” ModeShape repository on GitHub. Then, you do all your development locally, push your proposed changes into your fork, and generate a pull-request describing your proposed changes. The ModeShape committers will review and discuss your changes and pull them into the “official” repository (using this process).

For details on this process, see our ModeShape Development Workflow article. We’ve started a discussion thread for any questions or lessons learned. We’ll hopefully improve the documentation in the coming days and weeks. And to learn more about Git, we recommend the following resources:

Filed under: news, open source, techniques, tools

Adobe buys Day Software

Earlier this morning Adobe announced their intention to acquire Switzerland-based Day Software, makers of the Web Content Management (WCM) products. Day Software contributes a lot to open source, including major contributions to the Jackrabbit, Sling, Chemistry, and other Apache open source projects that serve as a foundation for their products.

Adobe, on the other hand, is known for their proprietary products, including CS5, Illustrator, Dreamweaver, and the Flash platform and development tools, but not really well-known as an open-source company. The FAQ on the acquisition doesn’t really mention open source (or Apache), so it was interesting to read Jukka Zitting’s take. Jukka is a committer on multiple Apache projects and is an Apache mentor and PMC chair for Jackrabbit.

People outside of Adobe and Day are also raising questions about what this means, especially when the news comes with no mention of Day’s open source contributions.  Boris Kraft, CTO at Magnolia International (another CMS/WCM vendor), gave his impressions of the deal. Magnolia a nice product (which we use at that runs on top of a JCR repository. As Boris mentions, Magnolia currently uses Jackrabbit but is really independent of any single JCR – and can in fact run on ModeShape.

Do your projects or products use Jackrabbit, and if so does this news give you concern? There’s no better time to look at ModeShape, the open source JCR 2.0 repository that bundles in federation, sequencing, and whole host of other slick features.

Filed under: jcr, news, open source, repository

ModeShape showcase at Red Hat Summit and JBoss World

The annual Red Hat Summit and JBoss World conferences are being held next week in Boston, and there will be a lot to see. Of special note, however, is the mobile sweepstakes trivia game put together by CityTech to demonstrate how to easily create a highly available and scalable application using JBoss technologies.

Along with using JBoss AS6, RESTEasyHornetQ, RHQ, and CirrAS, they’re using ModeShape and JCR API to access the highly-scalable Infinispan data grid. Server components are deployed to Amazon Web Services, while users interact with the game using a web interface and native iPhone and Android clients.  Check out Jeff Brown’s blog and Tom Kelly’s blog for the implementation details.

Filed under: jcr, news, open source, rest

New Maven repository at recently announced a new Maven repository. The new instance uses Nexus and has a lot of very nice features and a very usable navigation and search web interface.

Those of you using ModeShape in your own applications or projects likely have Maven settings that involve multiple Maven repositories, including the old JBoss Maven 2 repository. This will continue to work (at least for a while), but you should change your settings to use the new repository. And, you will continue to need other Maven repositories for 3rd party artifacts. Chances are, you’re already doing this.

If you are a contributor to ModeShape (or any other project hosted at, you’ll want to use a different configuration that will download all artifacts through the repository (which in this mode will proxy the 3rd party artifacts). This will be faster, plus it ensures these artifacts are always available to JBoss to build our projects/products (even should other 3rd party repositories disappear).

If you have any questions or problems, please let us know on our forum.

Filed under: news, open source, tools

ModeShape is

a lightweight, fast, pluggable, open-source JCR repository that federates and unifies content from multiple systems, including files systems, databases, data grids, other repositories, etc.

Use the JCR API to access the information you already have, or use it like a conventional JCR system (just with more ways to persist your content).

ModeShape used to be 'JBoss DNA'. It's the same project, same community, same license, and same software.