ModeShape

An open-source, federated content repository

Planning for ModeShape 4.0

That’s right – we’re thinking about ModeShape 4.0 and what it might look like. We’ve literally just created an initial plan, so it’s very early. However, please give it a read and give us your input and feedback! Below are answers to some big questions, but if you have others please contact us or add a comment to the planning document.

Why are we talking about 4.0?

There are several reasons. Firstly, we have a few deprecated methods that we’d like to remove, and we’ll almost certainly move to JCR 2.1 (aka, JSR-333) which is nearing approval. Secondly, some of the bigger changes will not be compatible with the 3.x configuration format. In particular, we’re rethinking everything about how we manage and maintain our indexes, including how they’re configured in clustered repositories.  However, please note that we do not plan to change the storage format, making it much easier to upgrade from 3.x to 4.0.

What does this mean for 3.x?

We still plan to fix issues and add minor enhancements while we work on 4.0 features, and plan to release version 3.6 in roughly 6 weeks. It’s likely that we’ll even release 3.7, since 4.0 won’t be stable enough for production use by then.

Will I be able to upgrade from 3.x to 4.0?

Yes! Since the storage format won’t change, it really becomes just a software upgrade. We expect that most users will be able to easily upgrade with no changes to their application (unless they’re using methods deprecated in JCR 2.0 or ModeShape’s public API). However, many people will likely need to change their configuration files, though we’d like to make that as easy as possible. (Ideally, you may just need to remove some parts from your 3.x configuration.)

Filed under: uncategorized

ModeShape 3.5.0.Final is available

Today we’ve released ModeShape 3.5.0.Final, with just over a dozen issues fixed, including a couple bigger ones:

  • The technology-preview JCR Access Control List (ACL) feature introduced in 3.4 unfortunately caused extra work to be done in repositories that never used ACLs. This release fixes this by adding an optimization that skips ACL checks until the first ACL is created in a repository. From that point on, ACL checking is always performed when accessing or modifying content. Be advised that if you’re using this feature in 3.4 and upgrade to 3.5, you may need to create (and save) at least one ACL in the repository before ACL checking is enabled. (You can always remove and save that ACL if it’s not really needed.) It’s not ideal, but was the only effective way to handle the upgrade.
  • Monitor repositories through JMX.
  • A new “simple” reference property type that is very similar to JCR’s standard weak references that do not enforce referential integrity. When a weak reference points to a node, you can use the “Node.getWeakReferences()” method to find all weak reference properties that point to it. These are called “back references” (since they point back to the referrer), and they can be expensive to maintain when a single node is referenced by lots of other nodes. Simple references are one-way and therefore do not maintain these back references, and thus are faster, more efficient, and more scalable.
  • Fixes for two workspace clone bugs, one workspace delete bug, and one merge bug.
  • Connectors now can optionally choose to use a simpler, non-I18n logger. (The more rigorous I18n logger is still available.)
  • Several other bug fixes.

See our release notes for detail on all the changes in this release.

ModeShape and EAP

As with 3.3.0.Final and 3.4.0.Final, this release works atop EAP 6.1.0.GA. And we have new quickstarts that show how easy it is to use ModeShape when deployed this way (you can also download them from our downloads page). See this discussion post for background on what deploying on top of EAP means for community users.

Should you upgrade?

We think so. This release is more stable than any prior 3.x release, so we recommend upgrading as soon as possible. For most of you, upgrading should involve just using the newer JARs. If you’re still running ModeShape on AS7, though, you’ll want to look at using EAP 6.1 as mentioned above; it’s more stable and it’s version of Infinispan has lots of fixes (especially around clustering).

Get the release

The artifacts are in the JBoss Maven repository (and hopefully will roll out to Maven Central soon) and on our downloads page. Our getting started guide has instructions, ModeShape 3 documentation and JavaDoc are available, and our code is on GitHub. Join us on our forums or IRC channel to ask questions, and please log any issues in our JIRA.

Once again, we had a lot of help this release from our community members that reported, fixed issues, and contributed fixes and features! Thanks to the whole community for a job well-done!

Filed under: features, jcr, releases, rest

ModeShape 3.4.0.Final is available

We’re happy to announce that ModeShape 3.4.0.Final is now available. This release contains lots of bug fixes and several new features, including:

  • The new JDBC metadata connector will dynamically project database schema information (e.g., catalogs, tables, columns, indexes, keys, etc.) as nodes in your repository.
  • Store binary files in a Cassandra column-oriented database via the CassandraBinaryStore.
  • Use ACLs to control access to nodes and subtrees

This release also has some useful enhancements, including:

  • WebDAV service now supports PROPFIND (MODE-941) and and PROPPATCH (MODE-984)
  • The file system connector is now pageable, so it can efficiently project directories with lots of files and folders (MODE-1982)

See our release notes for detail on all the changes in this release.

Access control

The initial support JCR 2.0’s access control management feature allows you to define for individual nodes one or more access control lists (ACLs) that define the privileges that specific users have. To do this, simply add the “mode:accessControllable” mixin to a node and then use the Session’s AccessControlManager to add ACLs for each principal. (A principal can be the name of user or group that is known to the authentication system.) If a node has no ACLs, then the ACLs on the nearest ancestor applies; if no ancestor has any ACLs, then the node can be accessed as usual. Thus, an authenticated session will only be able to access nodes for which they have the appropriate role (e.g., read, write, admin, etc.) and if the ACLs grant the session appropriate permissions.

We’ve categorized this new features as a “technology preview” so that people can give it a try and help us stabilize the functionality, but to also suggest that it’s too early to use this feature in production. Also, checking ACLs does add a little overhead to ModeShape’s existing permission  logic, but we’ve made sure that only repositories in which ACLs are created will have this overhead. That means that if you don’t use this feature, you won’t see any of the ACL-related overhead.

ModeShape and EAP

As with 3.3.0.Final, this release works atop EAP 6.1.0.GA. And we have new quickstarts that show how easy it is to use ModeShape when deployed this way (you can also download them from our downloads page). See this discussion post for background on what deploying on top of EAP means for community users.

Get the release

The artifacts are in the JBoss Maven repository (and hopefully will appear in Maven Central soon) and on our downloads page. Our getting started guide has instructions, ModeShape 3 documentation and JavaDoc are available, and our code is on GitHub. Join us on our forums or IRC channel to ask questions, and please log any issues in our JIRA.

Once again, we had a lot of help this release from our community members that reported, fixed issues, and contributed fixes and features! Thanks to the whole community for a job well-done!

Filed under: features, jcr, releases, rest

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