What does ModeShape offer that JackRabbit doesn't?
Asked Answered
H

3

28

I just familiarized myself with Apache JackRabbit. I've done a little multi-user repository for document management.

If anybody used both of them, could you please answer these questions ?

  1. Is ModeShape somehow linked to JBoss ? I don't have much experience with JBoss AS or any other JBoss tools. I see a support for tomcat, but a lot of JBossy stuff

  2. Documentation says that future releases should have UI integration, is it far future ? What kind of UI integration would it be ? Is there something that uses ModeShape as it is in case of Hippo CMS with JackRabbit ? It's a shame that Gatein doesn't use it.

  3. How does JackRabbit compare to ModeShape in regard to fulltext search, indexing and the overall processing of text content ?

  4. How about CMIS support ? I see an unresolved issue MODE-650. Jackrabbit is supported by OpenCMIS (Apache chmistry), even for secondary types in near future.

  5. What about support/utils libraries, for developer convenience when working with Nodes

I'm interested in any other comparison comments, thank you

Handlebar answered 17/6, 2011 at 23:32 Comment(0)
W
38

I can answer some of your questions. Full disclosure: I'm the founder and project lead for ModeShape.

Briefly, ModeShape is a lightweight, embeddable, extensible open source JCR repository implementation that federates and unifies content from multiple systems, including files systems, databases, data grids, other repositories, etc. You can use the JCR API to access the information you already have, or use it like a conventional JCR system.

Here are some of the higher-level features of ModeShape:

  • Supports all of the JCR 2.0 required features: repository acquisition; authentication; reading/navigating; query; export; node type discovery; permissions and capability checking
  • Supports most of the JCR 2.0 optional features: writing; import; observation; workspace management; versioning; locking; node type management; same-name siblings; orderable child nodes; shareable nodes; and mix:etag, mix:created and mix:lastModified mixins with autocreated properties.
  • Supports the JCR 1.0 and JCR 2.0 languages (e.g., XPath, JCR-SQL, JCR-SQL2, and JCR-QOM) plus a full-text search language based upon the JCR-SQL2 full-text search expression grammar. Additionally, ModeShape supports some very useful extensions to JCR-SQL2:
    • subqueries in criteria
    • set operations (e.g, "UNION", "INTERSECT", "EXCEPT", each with optional "ALL" clause)
    • limits and offsets
    • duplicate removal (e.g., "SELECT DISTINCT")
    • additional depth, reference and path criteria
    • set and range criteria (e.g., "IN", "NOT IN", and "BETWEEN")
    • arithmetic criteria (e.g., "SCORE(t1) + SCORE(t2)")
    • full outer join and cross joins
    • and more
  • Choose from multiple storage options, including RDBMSes (via Hibernate), data grids (e.g., Infinispan), file systems, or write your own storage connectors as needed.
  • Use the JCR API to access information in existing services, file systems, and repositories. ModeShape connectors project the external information into a JCR repository, potentially federating the information from multiple systems into a single workspace. Write custom connectors to access other systems, too.
  • Upload files and have ModeShape automatically parse and derive structured information representative of what's in those files. This derived information is stored in the repository, where it can be queried and accessed just like any other content. ModeShape supports a number of file types out-of-the-box , including: CND, XML, XSD, WSDL, DDL, CSV, ZIP/JAR/EAR/WAR, Java source, Java classfiles, Microsoft Office, image metadata, and Teiid models and VDBs. Writing sequencers for other file types is also very easy.
  • Automated and extensible MIME type detection, with out-of-the-box detection using file extensions and content-based detection using Aperture.
  • Extensible text extraction framework, with out-of-the-box support for Microsoft Office, PDF, HTML, plain text, and XML files using Tika.
  • Simple clustering using JGroups.
  • Embed ModeShape into your own application.
  • RESTful API (requires deployment into an application server).

These are just some of the highlights. For details on these and other ModeShape features, please see the ModeShape documentation.

Now, here are some specific answers to your numbered questions:

  1. ModeShape is hosted at JBoss.org and uses/integrates with other JBoss technology, because we thought it better to reuse the best-of-breed libraries. But ModeShape definitely is not tied to the JBoss Application Server. ModeShape can be used on other application servers in much the same way as other JCR implementations (typically embedded into a web application). Plus, ModeShape can be embedded into any application; it is, after all, just a regular Java library. It even uses SLF4J so that ModeShape log messages can be sent to the application's logging framework.

    Now, having said that, we do make it easier to deploy ModeShape to a JBoss AS installation with a simple kit: simply unzip, customize the configuration a bit (depending upon your needs), and start your app server. ModeShape will run as a service within the app server, allowing your deployed apps to simply lookup, use and share repositories. ModeShape can even be monitored using the JBoss AS console.

  2. I believe you're referring to our plans to develop a repository visualization tool (much less than a fully-fledged CMS system). Work on that has just recently begun, and we'd welcome any insight, requests for functionality, and interest in collaborating with us. I know that Magnolia can be run on top of ModeShape, but not sure if other CMS apps are able to do this. The JBoss Enterprise Data Services (EDS) platform also includes ModeShape and uses it as a metadata repository. The JBoss Business Rules Management System can also use ModeShape as its JCR repository.

  3. ModeShape and Jackrabbit both internally use Lucene for full-text search and querying. In that regard, they're pretty similar. Of course, ModeShape's implementation of search and query parsing and execution is different than Jackrabbits, and was actually written by some of the same folks that implemented the MetaMatrix relationally-oriented integration & federation engine (now part of JBoss EDS). As a result, ModeShape has a separate parser for each of its query languages, but after that all validation, planning, planning, and execution of all queries is done in the same way. We're very proud of the capabilities and performance of our query engine!

  4. ModeShape does not have a connector to other CMIS systems, but as you point out that's currently in-work (MODE-650). We'd also like to work with the Apache Chemistry team to make sure the JCR adapter works with ModeShape. We've just not had the time to do so.

  5. ModeShape does have a JcrTools utility class that may prove useful. But any utility class written on top of the JCR API should work just fine.

Hope that helps!

Wanderoo answered 18/6, 2011 at 21:35 Comment(9)
Wow, Randall you probably made me discard 5 days worth of work on jackrabbit based repository and rewrite it to ModeShape. Dam it :-) Thank you for bringing some insight, great overview.Handlebar
The design and the idea of Sequencers is brilliant. Very useful and easy to maintainHandlebar
Btw, you most likely know that already, but in regard to the UI visualization, this github.com/sourcesense/modeshape-stone is a 2.4Final fork that runs with Apache Sling, how about that ?Handlebar
I wonder if it is really needed to "detach" from the trunk. The UI can be built [at least the with minimal functionality] by using the modeshape REST functionality. What kind of features do you want in the UI for ModeShape ?Selenaselenate
Just to be clear: Jackrabbit as the reference implementation of JCR of course supports all JCR query languages (Xpath, JCR-SQL, JCR-SQL2 and JCR-QOM), plus a neat little Google-style (mostly full-text) search query (jackrabbit.apache.org/api/2.0/org/apache/jackrabbit/commons/…).Aba
@Vijay Kiran, here is the thread dev.day.com/discussion-groups/content/lists/sling-users/2010-12/… ... The last mails say about willingness to merge it back to modeshapeHandlebar
Great question and great answer. I wonder how it all compares now 5 years later and with JackRabbit Oak available. I am currently evaluating/comparing both options to use in a project. (I'm coming from the Alfresco side, but that component will be replaced by either one.)Rigatoni
Can ModShape run standalone; like jackrabbit does (java -jar jackrabbit-standalone.jar) ?Charbonneau
Using ModeShape as an embedded library by pulling the latest maven artifact seems quite straightforward. However is there a way to run the latest version and upcoming versions as standalone servers? This may be losing Modeshape many potential adoptees.Bayly
H
4

Documentation of modeshape seems better. The folks at Jackrabbit provide limited documentation, when compared to other apache projects. I suppose that if you need fancy (enterprise) features, they want you to pay for it. Also note that you are almost forced to used a sql database as backend. Because almost all other backends are 'not intended for production use'. Compare to modeshape who just comes out and says it:

This is in fact the main purpose of ModeShape: provide a JCR implementation that provides access to content stored in many different kinds of systems, including the federation of multiple systems. A ModeShape repository isn't yet another silo of information, but rather it's a JCR view of the information you already have in your environment: files systems, databases, other repositories, services, applications, etc. ModeShape can help you understand the systems and information you already have, through a standard Java API

I'd rather prefer this clarity than letting people search their doc and google for information that doesn't exist.

Hyrax answered 3/4, 2012 at 8:45 Comment(1)
"other backends are 'not intended for production use'" - where did you see that? I thought Jackrabbit was only a filesystem-backed repository? Certainly the CQ CRX we're paying for here uses the filesystem repository.Schindler
I
1

The comparison above is outdated; Now you need to compare modeshare with jackrabbit oak. http://jackrabbit.apache.org/oak/

Jackrabbit Oak is an effort to implement a scalable and performant hierarchical content repository for use as the foundation of modern world-class web sites and other demanding content applications.

Isothere answered 4/6, 2017 at 21:39 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.