JSR220-ORM
Project

Introduction

The JSR220-ORM Project is a proposed open source project under the
Eclipse Technology Project. The goal of the project is to provide
tooling integrated with the Eclipse platform that generates artifacts for
runtime implementations of the
JSR 220 persistence and
JSR 243 specifications. Further, the goal of the project is to track
the changes to these specifications, so that in addition, as they merge
together towards a common standard, the tooling will fully support artifacts
for the combined specification. Finally, while the specific focus of this
project is on JSR 220 tooling, it is the goal of this project to implement
extensible frameworks that can easily accommodate alternative input sources and
output artifacts.

This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process document) and is written to declare
its intent and scope. This proposal is written to solicit additional
participation and input from the Eclipse community. You are invited to comment
on and/or join the project. Please send all feedback to the
eclipse.technology.jsr220-orm newsgroup.

Background

The requirement for this project stems from the increasing demand for
standardization around access to database technologies from object oriented
development languages such as Java. Java developers are often distracted with
the issues of persistence when developing domain specific applications. These
distractions come in the form of understanding and implementing storage
specific access mechanisms and object life cycle management which are really
cross cutting concerns of applications across all domains that need to store
and access persistent state. Abstracting out and separating these concerns is
well documented in and is the goal of both JSR
220 and JSR
243 and this project is an implementation of tooling
necessary to accommodate a runtime of those specifications. Further, the
goal of this project it to produce tooling that is extensible and in the
future would be able to accommodate alternate input, such as XML and
then generate artifacts for alternative runtimes.

The Eclipse IDE is by far the dominating tool used by domain driven developers,
so it only makes sense to directly incorporate this technology into Eclipse to
foster easy adoption. Further, as an implementation of JSR
220 persistence tooling in Eclipse, this will provide the foundation
for all major application server vendors who will be needing this technology
integration in future releases of their products as the JSR
220 specification defines the application server vendors EJB
3.0 persistence implementation. Most major application server vendors are using
Eclipse as their future tools platform and as such will benefit from this
project and be able to extend the foundation implementation to their specific
needs.

Description

The JSR220-ORM Project will focus on tooling relevant for JSR220 runtimes while
creating an extensible framework for mapping.

Specifically, the visual tooling fully integrated with Eclipse that is needed to
manage complex JSR 220/243 projects involving large numbers of user defined
classes. Tooling that facilitates the management of meta data related to a JSR
220/243 implementation. Tooling that facilitates how patterns found in the
object oriented Java language are correlated with patterns found in relational
data models. Where applicable and feasible, this project will also use and/or
collaborate with other sub projects within the
Data Tools Project and Web
Tools Project to achieve it's goals. The tooling will be developed as a
series of frameworks allowing the plug-in of
JSR 220 persistence and JSR
243 runtimes.

Eclipse ORM tooling will produce artifacts that can be used with
JSR 220 persistence and JSR
243 runtime implementations and provide a framework for producing other
artifacts. As an example of exemplary generation of artifacts
for runtime integration, the Eclipse ORM tooling will use an open
source core runtime implementation of JSR
220 persistence and JSR
243 specifications, downloadable under the EPL from the Versant website
( www.versant.com ).

This project is based on the continuation of the past 3 years of work on an
existing JSR 220/243 commercial implementation that is already integrated with
Eclipse and is to be contributed (source, documentation, tests) as open source
to this project. It was expected that there would be integration issues
with other sub projects of the top level
Data Tools Project and Web
Tools Project. Many of those issues have come to light
during discussion with other Eclipse members during the
Data Tools Project "face to face" meetings which kicked off its
code integration efforts and with discussions with Eclipse EMO
members. A result of those interactions is a substantial adjustment
to the initial milestones and considerable rework of existing tooling to
properly integrate with the Eclipse platform. The current
project plan reflects the culmination of work done to accommodate a
proper integration.

As Eclipse is an evolving platform, integration issues involving other elements
of the Data
Tools Project and Web Tools
Project may impact future milestones as those integration issues
come to light and are factored into the plan.

The current project plan is
based on milestones that are visible and achievable and will serves as a
starting point for the ongoing work.

Organization

We propose that this project is created as an incubator within the
Eclipse Technology Project. . It is expected that over time some
elements of the visual tooling will be common to other types of data access. As
the implementation of a standard, it is anticipated that as this work matures
it will become part of the core Eclipse platform where appropriate and likely
move as a sub project to either the top level
Data Tools Project or Web
Tools Project.

Initial Committers: Proposed Project Lead: Dirk le
Roux

Additional Committers include: Carl Cronje, David Tinker

Interested Companies: IBM, BEA, Sybase

Code Contributions
Initial code contribution consists of the commercial implementation
of Versant's ORM tooling. In participation with DTP consolidation reviews
elements of our initial code contribution have changed to incorporate the code
from other Eclipse based projects. Where appropriate, this project
expects to share it's contributions to those other projects as well.
Further community contribution is expected and welcome.

We, the submitters of this proposal, welcome and encourage interested parties
to post to the eclipse.technology.jsr220-orm
newsgroup with comments, recommendations, questions, etc.