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