Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

JCR Management

Revision as of 03:09, 15 August 2008 by Sandro.boehme.gmx.de (Talk | contribs) (JCR Mangement (JCRM))

JCR Mangement (JCRM)

JCR Management will provide tooling and a JCR persistence framework for EMF that supports pluggable JCR (http://en.wikipedia.org/wiki/Content_repository_API_for_Java) implementations. This way:

  • Domain models can represent JCR content. That will make it possible to apply features of EMF and other modeling projects to this model.
  • JCR node types are mapped to classes.
  • JCR childnodes and properties are mapped to EStructuralFeature.
  • It will provide a basis for other applications.
  • The JCR users will get a JCR Manager tool based on EMF for maintaining a JCR but will also benefit from other projects using EMF e.g. M2M for refactoring the node types using model to model transformations.
  • Additionally it can be used in a separate application utilizing the EMF standalone features.

The Framework

It contains:

  • A reusable EMF resource implementation.
  • An extendable ecore model. It can be used by extending your domain entities from the JCRMNode entity in this model instead of EObject.
  • An extendable and lazy EStore implementation for operations on your model.

The JCR Manager

A tool that is based on top of the framework to use EMF, modeling projects and other projects to manage JCR content.

What works at the moment

  • Currently it displays the JCR content tree
  • It's possible to add nodes with a type defined in the domain model
  • It's possible to rename nodes
  • It's possible to remove nodes

The Contributions

  • My employer inovex GmbH (http://www.inovex.de) contributes 7 person days where I can work on this project within working hours.
  • Ed Merks:
    • helps as a mentor for questions regarding the Eclipse foundation.
    • implemented a new feature request for EMF that I had (dynamic feature delegation)
    • answers a lot of my questions in the newsgroup
  • The ATL team contributed an initial meta model and transformation that will speed up ATL integration.
  • Nick Boldt created the initial JCR Management (CVS, website, ...) setup at eclipse.org

Tasks

  1. See Bugzilla for an overview of the ToDo's https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&short_desc=&product=EMFT&component=JCR+Management&long_desc_type=allwordssubstr&long_desc=&order=Importance


Ideas

  • Using Cedrics Compare editor inside the JCR Manager
http://www.eclipse.org/modeling/emft/?project=compare#compare

Next Milestone

Create a first downloadable presentation of the project to show the potential of Eclipse modeling to the Jackrabbit community.


Values

  • simplicity
  • transparency
  • no dependency on JCR implementations

FAQ

  1. What's the relationship between JCR Management and Jackrabbit JCR-OCM?

One part of JCR Management has the same goal as JCR-OCM - exposing node data and operations to domain models - but it uses an MDSD approach based on Eclipse Modeling Framework (EMF). This makes JCRM depending less on reflection and using more generated classes instead. It will delegate as many calls on JCR node data as possible to minimize copying node data to domain model objects. Additionally JCR Management also has many other goals. The source code of JCR-OCM can be found at http://svn.apache.org/viewvc/jackrabbit/trunk/contrib/jackrabbit-jcr-mapping/jcr-mapping/ and the documentation is in the former Graffito project (http://incubator.apache.org/graffito/jcr-mapping/index.html).

CVS Access

Some important things are now checked in. Third party jars are not yet checked in as the IP for Jackrabbit needs to be reviewed by Eclipse. Please use the plugin id's as project names ("org.eclipse.emf.jcrm.metamodel" and "org.eclipse.emf.jcrm.model")

CVS Repository Connection

  • Server: dev.eclipse.org
  • Repository Path: /cvsroot/modeling
  • User: anonymous
  • Password: (leave blank)
  • Connection Type: pserver
  • Checkout As: Empty EMF Project

Basics Plugin

  • Module: org.eclipse.emf/org.eclipse.emf.jcrm/plugins/org.eclipse.emf.jcrm.metamodel

Model Plugin

  • Module: org.eclipse.emf/org.eclipse.emf.jcrm/plugins/org.eclipse.emf.jcrm.model

Back to the top