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 10:57, 9 July 2007 by Sandro.boehme.gmx.de (Talk | contribs) (To Do)

JCR Mangement (JCRM)

JCR Management will provide pluggable JCR (http://en.wikipedia.org/wiki/Content_repository_API_for_Java) implementations through the EMF API. This way:

  1. 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.
  1. It will provide a basis for other applications.
  2. It will implement the exemplary JCR Manager tool.

The Current Status

The implemented features do work in my environment. As soon as the integration into ATL or an other EMF consumer works I consider it as a working deep slice and provide a download. This will make the project easier understandable and presentable. After this step I will start focus on building up community.

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.

What works at the moment

  • The mapping between node types and classes works (using annotations)
  • The mapping between the node name a property works
  • The JCR is loaded using the EMF resource mechanism. (Though plugability still needs to be implemented)

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
  • I'm quite excited because undo and redo seem to work out of the box for the currently implemented commands add, rename and remove seem

The Contributions

  • Ed Merks helps as a mentor for questions regarding the Eclipse foundation.
  • The ATL team contributed an initial meta model and transformation that will speed up ATL integration.
  • My employer inovex GmbH (http://www.inovex.de) contributes 5 person days where I can work on this project within working hours. Of course I'm eager to use this joker but I will need to find a time where I have no other important ToDo's at work.

To Do

  1. Submit a talk for the Eclipse Summit Europe. (done) Update: The deadline for the proposals has already passed and there are still slots available. This means the chances for my talk are good :-).
  2. Test the use of ATL as a proof of concept for the collaboration between JCRM and other EMF consuming projects.
    1. Get a sample transformation (author2person) running in the local environment. (done)
    2. Get ATL to use a model backed by the JCR Management framework.
      1. Register the reference metamodel. (done)
      2. Access the registered reference metamodel by URI in the ATL launch configuration. (done. Thanks to Mikaël Barbeo for the hint)
      3. Understand ATL using the users manual (http://www.eclipse.org/m2m/atl/doc/) to create a good transformation example.
  3. Test the EMF features with a standalone version of JCRM.
  4. Implement JCRMStoreImpl.move(). The Bugfix 194088 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=194088) that was needed for this method has been implemented, reviewed and released within only two days! While discussing it in the mailing list I always got immediate and good feedback. This is very promising for the future.
  5. Understand the Eclipse release engineering to know in which folder structure to check in the initial code.
  6. Automatically generate an ecore domain model out of a node type model registered in a JCR.

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

Back to the top