ModeShape

An open-source, federated content repository

ModeShape 2.5.0.Final is available

The ModeShape team is proud to announce that ModeShape 2.5.0.Final is now available in the JBoss Maven repository (see our Maven instructions) and on our downloads page. We’ve updated our Reference Guide, Getting Started Guide, and JavaDoc. Give it a try!

What’s new?

This release is chocked full of new features, bug fixes, and improvements. Some of these are:

  • New sequencers for XML Schema Documents (XSD) and Web Service Definition Language (WSDL) 1.1 files
  • The RESTful service now exposes repository capabilities and metadata
  • The JPA connector can now specify the database schema where the data should be stored
  • JARs for most ModeShape modules are now OSGi bundles. (Lucene isn’t, so you have to create your own bundle. One of our community members, Luca Stancapiano, hopes to help Lucene become OSGi-enabled, making all this a lot easier.)
  • New javax.jcr.Credentials classes for anonymous and HTTP servlet authentication
  • Upgrades of several third-party dependencies
  • No longer dependent upon Google Collections or the JCIP libraries
  • Versioning-related fixes and performance improvements
  • A built-in profiling framework enabling use of Byteman runtime bytecode injection
  • Refactored our build process, which now uses Maven 3
  • Unit and integration tests now use PicketBox for the JAAS implementation
  • Performance improvements
  • Four dozen bug fixes!
For all the details, see our release notes.

Wait, what happened to Beta3?

Yes, we had been planning on issuing another Beta3, but we had several requests in the last week to issue the Final release as early as possible, preferably by the end of the month. So two days ago we looked at the state of the ‘master’ branch and of our JIRA, and after some discussion realized that we were actually in a really good state that met all of our normal release criteria. If we did that, we could make our users happy by releasing Final instead of another beta. Sure, there were still issues we’d like to fix, but there always are and we have to make the cut at some point. But we’d completed all of the new features we’d wanted to put into 2.5, and we’d fixed a lot of issues since Beta2. Hopefully you won’t mind the change in plans.

Next steps

The focus of the 2.6 effort remains performance improvements, bug fixes, and minor improvements. There are a few features (like JTA support) that are already in work on topic branches, and we’ll incorporate them when they’re ready. We do plan on continuing with our time-boxed releases (about every 4 weeks). The question is whether this recent experiment with Beta releases was worth continuing. There’s a new discussion on this topic in our forums, so please let us know what you think!

Our community is Super Awesome!

I usually end these announcements thanking the ModeShape users and contributors, and it’s no different this time. So many people have spent their time and effort working with our releases, asking or answering questions in IRC or the forums, reporting issues, fixing issues, offering changes and improvements, asking for new features, implementing new features, and so many other things. Thanks to all of you for making our community, our project, and our libraries so fantastic!

Filed under: features, jcr, news, repository

Presentation: An Overview of ModeShape

Here’s a brand new presentation that provides a high-level overview of ModeShape and attempts to answer two pressing questions:

  1. Why use JCR?
  2. Why use ModeShape?

Filed under: federation, jcr, presentation, repository, rest

Announcing ModeShape 2.2

I’m very happy to announce that ModeShape 2.2 is now available. Yes, it’s just a few weeks since releasing 2.1, but we’ve managed to add a couple of great features and fix several bugs. As usual, ModeShape 2.2 is available in the JBoss Maven repository (under the “org.modeshape” group ID) and on our downloads page. We’ve updated our Getting Started Guide, Reference Guide , and JavaDoc.

ModeShape 2.2 has several improvements and new features:

  • Deploying on JBoss AS – We’ve improved the kit for deploying ModeShape into JBoss Application Server introduced as a technology preview in the previous release. It still is as simple as downloading and unzipping into a profile directory. ModeShape will run as a service in JBoss AS, so you can simply deploy applications that use the standard JCR 2.0 API to find and access their javax.jcr.Repository instance. You also get the WebDAV and RESTful services, and use JOPR for monitoring, alerting, and administration. We’ve also added several sequencers to the default configuration.
  • JDBC driver – We’ve improved the JDBC driver that was introduced as a technology preview in 2.1. And it’s now possible to use JDBC metadata, even if the driver is running in a remote process.
  • Teiid relational model sequencerTeiid Designer is a visual tool that enables rapid, model-driven definition, integration, management and testing of data services without programming using the Teiid database virtualization and federation engine. This new sequencer is able to parse parse relational model files produced by Teiid Designer, and extract the structured data model of the relational database design, including catalogs/schemas, tables, views, columns, primary keys, foreign keys, indexes, procedures, procedure results, procedure results, and logical relationships. This means that when these models are uploaded into a ModeShape repository, the sequencer writes to the repository all this relational metadata, where it can be queried and accessed by JCR, RESTful, and JDBC clients.
  • Teiid VDB sequencer – This new sequencer parses the virtual database archive files produced by the Teiid Designer, and extracts the structured relational data model described by each of the contained XMI files. This means that when VDB files are uploaded into a ModeShape repository, the sequencer writes to the repository all this virtual database and relational metadata contained in the VDB, where it can be queried and accessed by JCR, RESTful, and JDBC clients.

There are other smaller features, improvements, and quite a few bug fixes. See the release notes for the complete list.

ModeShape is  lightweight, fast, pluggable, open-source JCR repository that federates and unifies content from multiple systems, including files systems, databases, data grids, other repositories, etc. It implements all of the required JCR 2.0 features (repository acquisition, authentication, reading/navigating, query, export, node type discovery, and permissions and capability checking) and most of the optional JCR 2.0 features (writing, import, observation, workspace management, versioning, locking, node type management, same-name siblings, orderable child nodes, and shareable nodes). That means you can 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).

Many thanks to the ModeShape community of users and contributors, who have (once again) shown what a fantastic and active community can do in a very short time!

Give ModeShape 2.2 a try and let us know what you think!

Filed under: features, jcr, news, repository, rest, tools

Announcing ModeShape 2.1

Once again I’m pleased to announce a new release of ModeShape. This time, it’s ModeShape 2.1, and it’s available in the JBoss Maven repository (under the “org.modeshape” group ID) and on our downloads page. As usual, we’ve updated our Getting Started Guide, Reference Guide , and JavaDoc.

ModeShape 2.1 introduces several major new features:

  • Clustering – It’s now possible to create a cluster of ModeShape instances running on different processes. This makes it easy to scale ModeShape to handle more load, and it means that sessions work the same (including getting the same events) no matter in which process they’re running. ModeShape clustering uses the powerful, flexible and mature JGroups library to handle all network communication within the cluster. JGroups provides a wealth of capabilities, including automatically detecting new engines in the cluster (called discovery), reliable multicast communication, and automatic determination of the master node in the cluster. JGroups has a flexible protocol stack, works across firewalls, WANs and LANs, and supports multiple transport protocols, failure detection, reliable unicast and multicast message transmission, and encryption. But clustering is not enabled by default – if you want to use it, you need to enable it.
  • Shareable nodes – This optional JCR 2.0 API feature allows a node that exists under one parent to be shared under multiple other nodes. These are similar to symbolic links in a *nix file system, and can be pretty powerful when you need it.
  • ModeShape Kit for JBoss AS – Deploying ModeShape to a JBoss Application Server has just gotten very easy: download and unzip into a profile. ModeShape will run as a service in JBoss AS, so you can simply deploy applications that use the standard JCR 2.0 API to find and access their javax.jcr.Repository instance. You also get the WebDAV and RESTful services, and even a technology preview of a monitoring, alerting, and administration plugin for JOPR.

There are other smaller features, improvements, and quite a few bug fixes. See the release notes for the complete list.

ModeShape is  lightweight, fast, pluggable, open-source JCR repository that federates and unifies content from multiple systems, including files systems, databases, data grids, other repositories, etc. It implements all of the required JCR 2.0 features (repository acquisition, authentication, reading/navigating, query, export, node type discovery, and permissions and capability checking) and most of the optional JCR 2.0 features (writing, import, observation, workspace management, versioning, locking, node type management, same-name siblings, orderable child nodes, and shareable nodes). That means you can 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).

Many thanks to the ModeShape community of users and contributors, who have (once again) shown what a fantastic and active community can accomplish in a very short time. After all, it’s been just over 4 weeks since we released ModeShape 2.0!

Give ModeShape 2.1 a try, and let us know what you think!

Filed under: features, federation, jcr, news, repository

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 JBoss.org) 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 2.0 is here

The ModeShape project proudly announces that version 2.0 is now available and ready for use. As usual, the artifacts are in the JBoss Maven repository (under the “org.modeshape” group ID) and on our downloads page, and we’ve updated our Getting Started Guide, Reference Guide , and JavaDoc. ModeShape 2.0 also includes bug fixes and improvements; see the release notes complete list of bug fixes, new features, tasks, and other changes.

This is a significant milestone for us, because ModeShape 2.0 now implements the JCR 2.0 specification (JSR-283). Specifically, ModeShape supports all the JCR 2.0 required features:

  • repository acquisition
  • authentication
  • reading/navigating
  • query
  • export
  • node type discovery
  • permissions and capability checking

and most of the JCR 2.0 optional features:

  • writing
  • import
  • observation
  • workspace management
  • versioning
  • locking
  • node type management
  • same-name siblings
  • orderable child nodes
  • mix:etag, mix:created and mix:lastModified mixins with autocreated properties

ModeShape 2.0 supports five query languages: the JCR-SQL2 and JCR-QOM query languages defined in JSR-283, the XPath and JCR-SQL languages defined in JSR-170 but deprecated in JSR-283, and a search-engine-like language that is actually just the full-text search expression grammar used in the CONTAINS(…) function of the JCR-SQL2 language. See our documentation for details.

As with earlier releases, ModeShape repositories can be traditional self-contained stores, or they can federate and unify content from multiple stores, including files systems, databases, data grids, other JCR repositories, or other systems (using custom connectors). Plus, ModeShape is also able to automatically extract and store useful content from files you upload into the repository using its library of sequencers, making that information much more accessible and searchable than if it remains locked up inside the stored files. Finally ModeShape provides WebDAV and RESTful services so non-Java and remote clients can access the repository content.

The ModeShape 2.0 release has not yet passed the JSR-283 TCK. ModeShape passes nearly all (99%) of the TCK tests, but we’ve identified several issues in the TCK tests (see JCR-2648JCR-2661JCR-2662, and JCR-2663). Once an updated TCK becomes available, we’ll get our certification.

If you’re already using JCR 1.0, consider switching to JCR 2.0 and ModeShape. The new features and enhancements are much improved over JCR 1.0. And we’ve created a high-level migration guide to help you understand you may and may not have to change in your application.

Many, many thanks to the ModeShape community members. Our users and contributors are simply stellar! Congratulations!

Filed under: features, federation, jcr, news, repository

Next up: JCR 2.0

For some time now we’ve talked on our IRC channel when we should make the switch to the JCR 2.0 API, and lately there’s been more and more interest in it.  We took a look at our roadmap, and figured out a way to shift our planned releases and get on to the 2.x line sooner than later. We solicited feedback from the community, all of which has been very positive.

Therefore, ModeShape’s next release will be 2.0 and will use the JCR 2.0 API. We tried to design ModeShape so that its components were compatible with the JCR 2.0 features.  For example, our node type management, query support, binary values all based upon the JCR 2.0 draft specification that has since been finalized, so much of our work involves updating the interfaces, adding support for several smaller features introduced with JCR 2.0 (e.g., weak references, identifiers, etc.), tweaking implementations of features that changed between JCR 1.0 and 2.0 (e.g., versioning, observation, etc.), and updating our documentation.

We plan to release ModeShape 2.0 in the next 3 weeks, so stay tuned!

Filed under: features, jcr, news, repository

ModeShape 1.2 adds JCR-SQL and lots of fixes and improvements

I’m very pleased to announce that ModeShape 1.2 is now available for download and in the new JBoss Maven repository. If you haven’t already switched your Maven settings to this new repository, be sure to do so.

This release brings support for JCR-SQL query language and a number of fixes and improvements. This means that ModeShape implements all of the JCR 1.0 Level 1 and Level 2 features plus the optional locking, observation, query, and versioning features. And, there’s no better time to switch from those older and crustier JCR implementations that can’t do federation or use a variety of back-end content stores (like Infinispan).

For details on the changes in this release, see our release notes. And, as usual, we’ve updated our Getting Started and Reference Guides as well as our JavaDoc. If you have any questions, please ask. And we’re always interested in new contributors, so if you’re interested please get involved.

Many kudos to the ModeShape community of users and contributors. You guys rock!

Filed under: features, federation, jcr, repository

ModeShape 1.1 adds versioning, WebDAV, JCR connector, and more

ModeShape 1.1 has arrived a mere one month after the prior release, and it brings some fantastic improvements:

  • support for JCR versioning
  • a new WebDAV server module
  • a new connector to other JCR repositories
  • improved import from JCR System and Document Views
  • almost 2 dozen other fixes and improvements

ModeShape now supports all the JCR 1.0 Level 1 and Level 2 features, plus the optional locking, versioning, and observation features. ModeShape also supports the required XPath query language, a simple search language, and the new JCR-SQL2 query language. ModeShape integrates with JAAS and web application security, or you can easily integrate it with other systems. ModeShape can use a variety of back-ends to store information (RDBMSes, Infinispan data grid, memory, JBoss Cache, JCR repositories), can access content in multiple systems (file systems, SVN repositories, JDBC metadata), can federate multiple stores and systems into a single JCR repository, or can access other systems using custom connectors. ModeShape is also able to automatically extract and store useful content from files you upload into the repository using its library of sequencers, making that information much more accessible and searchable than if it remains locked up inside the stored files. And ModeShape provides WebDAV and RESTful servers to allow various clients to access the content.

All the ModeShape 1.1.0.Final artifacts are in the JBoss Maven repository and on the project’s downloads page. The detailed list of the changes are in the release notes.

Congratulations to the fantastic ModeShape community!

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

ModeShape 1.0.0.Final

I’m very happy to announce that ModeShape 1.0.0.Final is now available. With this release, ModeShape now implements all JCR Level 1 and Level 2 features and the optional locking and observation features! [1] And as with our 1.0.0.Beta1 release, ModeShape supports querying repository content using the JCR-SQL2 query language defined by the JSR-283 specification.

This release also includes quite a few fixes and minor improvements. For example, our JARs are also now OSGi compliant, making it easier to deploy ModeShape into an OSGi-compliant container.

As usual, 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 and release notes.

Last but not least, a huge thank you to our fantastic community of users and contributors, for all the help with testing, fixing issues, and implementing these features. You guys all rock!


[1] Note that ModeShape has not yet been certified as being compliant with JCR 1.0, but we plan on attaining this certification in the very near future.

Filed under: features, federation, jcr, news, repository

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.

ModeShape

Topics