| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("JSR220-ORM"); | |
| ?> | |
| <h1>JSR220-ORM | |
| Project</h1> | |
| <h2>Introduction</h2> | |
| <P>The JSR220-ORM Project is a proposed open source project under the <A href="/technology/"> | |
| Eclipse Technology Project</A>. The goal of the project is to provide | |
| tooling integrated with the Eclipse platform that generates artifacts for | |
| runtime implementations of the <A href="http://www.jcp.org/aboutJava/communityprocess/edr/jsr220/"> | |
| JSR 220</A> persistence and <A href="http://www.jcp.org/aboutJava/communityprocess/pr/jsr243/index2.html"> | |
| JSR 243</A> 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.</P> | |
| <P>This proposal is in the Project Proposal Phase (as defined in the <a href="/projects/dev_process/"> | |
| Eclipse Development Process</A> 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 <A href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.jsr220-orm"> | |
| eclipse.technology.jsr220-orm </A>newsgroup. | |
| </P> | |
| <h2>Background</h2> | |
| <P>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 <A href="http://www.jcp.org/aboutJava/communityprocess/edr/jsr220/">JSR | |
| 220</A> and <A href="http://www.jcp.org/aboutJava/communityprocess/pr/jsr243/index2.html">JSR | |
| 243</A> 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.</P> | |
| <P> | |
| 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 <A href="http://www.jcp.org/aboutJava/communityprocess/edr/jsr220/">JSR | |
| 220</A> 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 <A href="http://www.jcp.org/aboutJava/communityprocess/edr/jsr220/">JSR | |
| 220</A> 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. | |
| </P> | |
| <P> </P> | |
| <h2>Description</h2> | |
| <P>The JSR220-ORM Project will focus on tooling relevant for JSR220 runtimes while | |
| creating an extensible framework for mapping. | |
| </P> | |
| <P>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 <A href="/proposals/eclipse-dtp/"> | |
| Data Tools Project</A> and <A href="/webtools/">Web | |
| Tools Project</A> to achieve it's goals. The tooling will be developed as a | |
| series of frameworks allowing the plug-in of <A href="http://www.jcp.org/aboutJava/communityprocess/edr/jsr220/"> | |
| JSR 220</A> persistence and <A href="http://www.jcp.org/aboutJava/communityprocess/pr/jsr243/index2.html">JSR | |
| 243</A> runtimes. | |
| </P> | |
| <P>Eclipse ORM tooling will produce artifacts that can be used with <A href="http://www.jcp.org/aboutJava/communityprocess/edr/jsr220/"> | |
| JSR 220</A> persistence and <A href="http://www.jcp.org/aboutJava/communityprocess/pr/jsr243/index2.html">JSR | |
| 243</A> 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 <A href="http://www.jcp.org/aboutJava/communityprocess/edr/jsr220/">JSR | |
| 220</A> persistence and <A href="http://www.jcp.org/aboutJava/communityprocess/pr/jsr243/index2.html">JSR | |
| 243</A> specifications, downloadable under the EPL from the Versant website | |
| ( <A href="http://www.versant.com">www.versant.com</A> ). </P> | |
| <P> | |
| 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 <A href="/proposals/eclipse-dtp/"> | |
| Data Tools Project</A> and <A href="/webtools/">Web | |
| Tools Project</A>. Many of those issues have come to light | |
| during discussion with other Eclipse members during the <A href="/proposals/eclipse-dtp/"> | |
| Data Tools Project</A> "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 <A href="JSR220-ORM Project Planr1.html">current | |
| project plan</A> reflects the culmination of work done to accommodate a | |
| proper integration. | |
| </P> | |
| <P>As Eclipse is an evolving platform, integration issues involving other elements | |
| of the <A href="/proposals/eclipse-dtp/">Data | |
| Tools Project</A> and <A href="/webtools/">Web Tools | |
| Project</A> may impact future milestones as those integration issues | |
| come to light and are factored into the plan. | |
| </P> | |
| <P>The <A href="JSR220-ORM Project Planr1.html">current project plan</A> is | |
| based on milestones that are visible and achievable and will serves as a | |
| starting point for the ongoing work.</P> | |
| <P> </P> | |
| <h2>Organization</h2> | |
| <P>We propose that this project is created as an incubator within the <A href="/technology"> | |
| Eclipse Technology Project</A>. . 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 <A href="/proposals/eclipse-dtp/"> | |
| Data Tools Project</A> or <A href="/webtools/">Web | |
| Tools Project</A>. | |
| </P> | |
| <P><STRONG>Initial Committers:</STRONG> Proposed Project Lead: Dirk le | |
| Roux | |
| </P> | |
| <P> | |
| Additional Committers include: Carl Cronje, David Tinker | |
| </P> | |
| <P><STRONG>Interested Companies:</STRONG> IBM, BEA, Sybase</P> | |
| <P><B>Code Contributions</B><BR> | |
| 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.</P> | |
| <P> | |
| We, the submitters of this proposal, welcome and encourage interested parties | |
| to post to the <A href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.jsr220-orm">eclipse.technology.jsr220-orm | |
| </A>newsgroup with comments, recommendations, questions, etc. | |
| </P> | |
| <P> </P> | |
| </div> | |
| </div> | |
| <?php | |
| # Paste your HTML content between the EOHTML markers! | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |