ModeShape

An open-source, federated content repository

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 java.io.File, a java.net.URL, or an java.io.InputStream 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:

CndFormPage

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:

CndFormPage2

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:

CndTextPage

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:

PublishWizard

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

Installation

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 http://download.jboss.org/jbosstools/updates/stable/juno/soa-tooling/modeshape/ 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: http://github.com/ModeShape/modeshape.

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 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 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 JBoss.org

JBoss.org 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 JBoss.org 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 JBoss.org), you’ll want to use a different configuration that will download all artifacts through the JBoss.org 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 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 Beta

Hot on the heels of rebranding our project, the ModeShape project is pleased to announce that the first beta release of ModeShape 1.0 is now available.  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.  Thanks to our fantastic community of users and contributors!

This release is basically just a rebranded form of the JBoss DNA 0.7 release published last week.  Basically, the goal was to make it as easy as possible to migrate an application from JBoss DNA to ModeShape. So the Maven group and artifact IDs have changed, the package names have changed, a few classes with “DNA” in the name have changed, and lots of documentation has changed. If you’re using the JCR API, only a few areas of your applications will be affected.  For details, see the migration section of our Reference Guide.

And as before, ModeShape implements all of the JCR Level 1 and most of the Level 2 features, along with the optional locking and observation features. ModeShape supports three query languages (XPath, JCR-SQL2, and a full-text search), a variety of persistent stores (including RDBMS, Infinispan, and JBoss Cache, to name a few), accessing content in non-JCR systems (including SVN, file systems, JDBC database schemas, etc.), and federating multiple stores and systems into a single, virtual repository. As you upload files and other data into the repository, ModeShape sequencers automatically extract structured information and store it in the repository, making that extracted content available for navigation, search, and query. ModeShape can easily be embedded in your application, deployed into your own web applications, or deployed as a REST service on your favorite application server or servlet container.  And at this point, ModeShape is passing roughly 97% of the JCR TCK, and our goal is to get that to 100% for a 1.0 release in a few weeks.

So switch to ModeShape, give this latest release a shot, and let us know what you think.

Filed under: features, jcr, news, open source, 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

Follow

Get every new post delivered to your Inbox.