|  | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | 
|  | <HTML> | 
|  | <HEAD> | 
|  | <TITLE>JSR220-ORM Project Plan</TITLE> | 
|  | <META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> | 
|  | <LINK href="Plan_files/eclipse.css" type="text/css" rel="stylesheet"> | 
|  | <META content="MSHTML 6.00.2800.1400" name="GENERATOR"></HEAD> | 
|  | <BODY text="#000000" vLink="#551a8b" aLink="#ff0000" link="#0000ee" bgColor="#ffffff"> | 
|  | <TABLE cellSpacing="5" cellPadding="2" width="100%" border="0"> | 
|  | <TBODY> | 
|  | <TR> | 
|  | <TD align="left" width="60%"><FONT class="indextop"></FONT><STRONG><FONT face="Verdana" size="6">JSR220-ORM | 
|  | Plan</FONT></STRONG><BR> | 
|  | <FONT class="indexsub">A Technology Project Proposal [updated June | 
|  | 21st 2005]</FONT></TD> | 
|  | <td width="40%"><img height="86" hspace="50" src="/images/Idea.jpg" width="120" | 
|  | align="center"></td> | 
|  | </TR> | 
|  | </TBODY></TABLE> | 
|  | <TABLE cellSpacing="5" cellPadding="2" width="100%" border="0"> | 
|  | <TBODY> | 
|  | <TR> | 
|  | <TD vAlign="top" align="left" bgColor="#0080c0" colSpan="2"><B><FONT face="Arial,Helvetica" color="#ffffff">Introduction</FONT></B></TD> | 
|  | </TR> | 
|  | <TR> | 
|  | <TD> | 
|  | <P>The JSR220-ORM Project's goal is to provide tooling for | 
|  | an implementation of the JSR 220 persistence and JSR 243 specifications | 
|  | integrated with the Eclipse platform. 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 persistence standard, appropriate tooling will be | 
|  | fully implemented by this project. The over arching goal of this project is to | 
|  | provide visual development tools that facilitate round trip engineering when | 
|  | using the JSR 220/243 approach to persistence.  Further, to provide an | 
|  | implementation that is extensible to accommodate new types of input and | 
|  | generate artifacts for alternative runtimes.</P> | 
|  | <P> </P> | 
|  | </TD> | 
|  | </TR> | 
|  | </TBODY></TABLE> | 
|  | <TABLE cellSpacing="5" cellPadding="2" width="100%" border="0"> | 
|  | <TBODY> | 
|  | <TR> | 
|  | <TD vAlign="top" align="left" bgColor="#0080c0" colSpan="3"><B><FONT face="Arial,Helvetica"><FONT color="#ffffff">Dependencies</FONT></FONT></B></TD> | 
|  | </TR> | 
|  | <TR> | 
|  | <TD colSpan="3"> | 
|  | <P>The JSR220-ORM Project is directly tied to the JSR 220 and 243 specifications. | 
|  | Further it will undoubtedly have dependencies on or provide dependencies to | 
|  | other sub projects within the Eclipse <A href="/proposals/eclipse-dtp/main.html"> | 
|  | Data Tools Project</A> and <A href="/webtools/">Web | 
|  | Tools Project</A> . Additionally, elements of the project will depend on | 
|  | JDK 1.5 for annotation support required in JSR 220.</P> | 
|  | <P> </P> | 
|  | </TD> | 
|  | </TR> | 
|  | </TBODY></TABLE> | 
|  | <TABLE cellSpacing="5" cellPadding="2" width="100%" border="0"> | 
|  | <TBODY> | 
|  | <TR> | 
|  | <TD vAlign="top" align="left" bgColor="#0080c0"><B><FONT face="Arial,Helvetica"><FONT color="#ffffff">Milestones</FONT></FONT></B></TD> | 
|  | </TR> | 
|  | <TR> | 
|  | <TD> | 
|  | <P><STRONG>Milestone 1 plan:</STRONG> April 18th, 2005 Release initial Versant Open | 
|  | Access - 4.0 commercial implementation of EJB 3.0 and JDO 2.0 ( JSR 220/243 ) | 
|  | to the open source community which includes initial Eclipse integration ( | 
|  | lacking integration with other Data Tool Projects ) for public review, comment | 
|  | and contribution.   This is a proposal phase opportunity for the | 
|  | community to provide feedback on the tooling and get involved.</P> | 
|  | <P><STRONG>Milestone 2 plan:</STRONG> August 8th, 2005 Release an Eclipse platform | 
|  | integrated version which is using core code components of other relevant | 
|  | Eclipse sub-projects including but not limited to <A href="/proposals/eclipse-dtp/main.html"> | 
|  | Data Tools Project</A> and <A href="/webtools/">Web | 
|  | Tools Project</A> .  | 
|  | </P> | 
|  | <P>The goal of this milestone is to provide:  | 
|  | </P> | 
|  | <UL> | 
|  | <LI> | 
|  | Forward engineering capabilities for applications using the POJO persistence | 
|  | approach.  This includes input source meta data driven pattern mapping | 
|  | which allows a target relational schema to be available to live ER diagrams for | 
|  | mapping to existing database schema.  It also includes auto generation of | 
|  | relational schema for new databases. | 
|  | <LI> | 
|  | To remove the prior Swing dependency and provide a 100% SWT based | 
|  | implementation of the visual artifacts for the tooling | 
|  | implementation.  | 
|  | <LI> | 
|  | The ability to enable a project for ORM configuration and a framework for | 
|  | associating a runtime plug-in with a project.  To show one | 
|  | example of how to use the framework using the Versant open source EJB | 
|  | runtime.   | 
|  | <LI> | 
|  | A framework for the context sensitive mapping GUI to reflect the | 
|  | capabilities of the runtime currently associated with an enabled project. To | 
|  | show one example using the Versant open source EJB runtime | 
|  | illustrating how to use this context sensitive GUI framework.  | 
|  | <LI> | 
|  | Synchronized views of mapping information ( source code editors,  mapping | 
|  | pattern editors, live ER editors ) where a change in any view is reflected in | 
|  | the others.  So, for example if someone adds an annotation to the source | 
|  | code the appropriate mapping possibilities automatically appear in the mapping | 
|  | view and the default mapping is selected and represented by a live ER | 
|  | diagram.   This approach is taken so that if someone does not use JDK | 
|  | 1.5 and does not have annotation available to them that the alternate views can | 
|  | still be used to provide mapping.  In addition, if a non Java developer is | 
|  | performing the relational mapping exercise or query execution optimization, | 
|  | they do not need to explicitly edit the Java source code.  This | 
|  | allows Java developers to use a one click mapping approach deferring database | 
|  | schema design to database architects. | 
|  | <LI> | 
|  | An extensible framework for allowing vendors to provide customizable input | 
|  | output capabilities to accommodate alternative runtimes.  Use this | 
|  | framework to show an example of outputting meta data for the Versant open | 
|  | source EJB runtime. | 
|  | <LI> | 
|  | Support for Oracle, MySQL and Derby databases.  | 
|  | <LI> | 
|  | All of this is driven by an EMF model that vendors may extend to suit | 
|  | their needs. | 
|  | </LI> | 
|  | </UL> | 
|  | <P><STRONG>Image 1:  </STRONG>The following block diagram gives an | 
|  | overview of the tooling approach and to integration with the Eclipse platform.</P> | 
|  | <P> | 
|  | <TABLE id="Table1" height="60" cellSpacing="1" cellPadding="1" width="744" align="center" | 
|  | border="0"> | 
|  | <TR> | 
|  | <TD height="23"></TD> | 
|  | <TD height="23"> | 
|  | <P align="center"><IMG alt="" src="ORM_Block_diagram.bmp"></P> | 
|  | </TD> | 
|  | <TD height="23"></TD> | 
|  | </TR> | 
|  | </TABLE> | 
|  | </P> | 
|  | <P> | 
|  | </P> | 
|  | <P><STRONG>Milestone 2 use case coverage: </STRONG> | 
|  | </P> | 
|  | <UL dir="ltr" style="MARGIN-RIGHT: 0px"> | 
|  | <UL> | 
|  | <LI> | 
|  | Auto generation of mapping for a domain model. | 
|  | <UL> | 
|  | <LI> | 
|  | Project association to data source | 
|  | <LI> | 
|  | Project binding to selected JSR200/243 runtime | 
|  | <LI> | 
|  | Source code annotation of persistent classes | 
|  | <LI> | 
|  | Source code annotation of persistent class attributes | 
|  | <LI> | 
|  | Property based meta data management of persistent classes | 
|  | <LI> | 
|  | Auto generation of DDL for selected data source | 
|  | <LI> | 
|  | Auto generation of Tables for final DDL | 
|  | <LI> | 
|  | Generation of artifacts into Eclipse project for runtime execution</LI></UL> | 
|  | <LI> | 
|  | Customization of mapping for a domain model to existing relational schema | 
|  | <UL> | 
|  | <LI> | 
|  | Project association to data source | 
|  | <LI> | 
|  | Project binding to selected JSR220/243 runtime. | 
|  | <LI> | 
|  | Source code annotation of persistent classes | 
|  | <LI> | 
|  | Source code annotation of persistent class attributes | 
|  | <LI> | 
|  | Property based meta data management of persistent classes | 
|  | <LI> | 
|  | Load database meta data into Eclipse RDB model | 
|  | <LI> | 
|  | Live ER diagrams context sensitive to loaded meta data | 
|  | <LI> | 
|  | Customize tables and columns to classes and attributes.  | 
|  | <LI> | 
|  | Generation of artifacts into Eclipse project for runtime execution</LI></UL> | 
|  | </LI> | 
|  | </UL> | 
|  | </UL> | 
|  | <P><STRONG>Image 2:  </STRONG>The following Eclipse screen shots give an idea | 
|  | of the developer experience and feature set of the Milestone 2 plug-in.</P> | 
|  | <P> | 
|  | <TABLE id="Table2" height="27" cellSpacing="1" cellPadding="1" width="744" align="center" | 
|  | border="0"> | 
|  | <TR> | 
|  | <TD></TD> | 
|  | <TD> | 
|  | <P align="center"><IMG alt="" src="eclipse_orm2.PNG"></P> | 
|  | </TD> | 
|  | <TD></TD> | 
|  | </TR> | 
|  | </TABLE> | 
|  | </P> | 
|  | <P><STRONG>Milestone 3 plan:</STRONG> October 2005 Release updates that include | 
|  | complete support for reverse engineering of existing relational schema,  | 
|  | EJBQL visual query builder, support for named queries, support for custom fetch | 
|  | group configuration.  | 
|  | </P> | 
|  | <P><STRONG>Milestone 3 use case coverage:</STRONG></P> | 
|  | <UL dir="ltr" style="MARGIN-RIGHT: 0px"> | 
|  | <UL> | 
|  | <LI> | 
|  | Reverse engineering of existing relational schema. | 
|  | <UL> | 
|  | <LI> | 
|  | Project association to data source | 
|  | <LI> | 
|  | Project binding to selected JSR200/243 runtime | 
|  | <LI> | 
|  | Load database meta data into Eclipse RDB model | 
|  | <LI> | 
|  | Auto generation of classes with appropriate annotations for existing relational | 
|  | schema </LI></UL> | 
|  | <UL> | 
|  | <LI> | 
|  | Property based meta data management of persistent classes </LI></UL> | 
|  | <UL> | 
|  | <LI> | 
|  | Generation of artifacts into Eclipse project for runtime execution</LI></UL> | 
|  | </LI> | 
|  | </UL> | 
|  | </UL> | 
|  | <P dir="ltr">The above Milestones are visible and achievable. Other elements | 
|  | including <A href="/proposals/eclipse-dtp/main.html">Data | 
|  | Tools Project</A> and <A href="/webtools/">Web Tools | 
|  | Project</A>  integration and changes in the evolving JSR 220 | 
|  | specification are less definite. As the months progress, it is expected that | 
|  | these other issues will become clearer and community involvement will be better | 
|  | understood so that ongoing milestones can be established. It is also expected | 
|  | that community involvement will reprioritize deliverables and timelines of | 
|  | milestones | 
|  | </P> | 
|  | <P> </P> | 
|  | </TD> | 
|  | </TR> | 
|  | </TBODY></TABLE> | 
|  | </BODY> | 
|  | </HTML> |