Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Development/DBWS/oNmMetadata"

(New 'oNm' Metadata)
(New 'oNm' Metadata)
Line 8: Line 8:
  
 
High-level Requirements:
 
High-level Requirements:
* the 'oNm.xml' metadata must support the majority of EclipseLink features (1:1, 1:M, M:N, queries - TBD later)  
+
* the 'oNm.xml' metadata must support the majority of EclipseLink features (1:1, 1:M, M:N, queries)
 +
** NB: currently, new metadata formats do not support all EclipseLink features, not even all features required by DBWS (e.g. [https://bugs.eclipse.org/bugs/show_bug.cgi?id=211299 211299], [https://bugs.eclipse.org/bugs/show_bug.cgi?id=221876 221876])
 
* as there are no persistent model classes on the classpath, processing the metadata must use only simple scalar objects (Strings, booleans, numbers, etc.) for all capabilities and settings.
 
* as there are no persistent model classes on the classpath, processing the metadata must use only simple scalar objects (Strings, booleans, numbers, etc.) for all capabilities and settings.
 
* an in-memory model of the metadata can be read in from an 'oNm.xml' file (or stream, URL, etc.) without persistent model classes on the classpath.
 
* an in-memory model of the metadata can be read in from an 'oNm.xml' file (or stream, URL, etc.) without persistent model classes on the classpath.

Revision as of 10:35, 3 June 2009

Future DBWS work

At some point in the future, DBWS will switch from using 'native' EclipseLink metadata (a.k.a. Project deployment xml) to using 'oxm' and 'orm' (a.k.a JPA-style) metadata formats. In addition to using the new metadata formats, DBWS typically operates without persistent model classes; thus at runtime, a dynamic solution is required for the generation of persistent model classes.

New 'oNm' Metadata

High-level Requirements:

  • the 'oNm.xml' metadata must support the majority of EclipseLink features (1:1, 1:M, M:N, queries)
    • NB: currently, new metadata formats do not support all EclipseLink features, not even all features required by DBWS (e.g. 211299, 221876)
  • as there are no persistent model classes on the classpath, processing the metadata must use only simple scalar objects (Strings, booleans, numbers, etc.) for all capabilities and settings.
  • an in-memory model of the metadata can be read in from an 'oNm.xml' file (or stream, URL, etc.) without persistent model classes on the classpath.
  • an in-memory model of the metadata can be serialized to a file (or stream, URL, etc.) without persistent model classes on the classpath.

Dynamic Persistent Model Classes

High-level Requirements :

  • an in-memory model of the 'oNm' metadata can be realized into runtime artifacts, including generating persistent model classes.
  • generated persistent model classes must work when mapped simultaneously by both an orm and oxm metadata model.
    i.e. a generated class must support the following: a row is retrieved from the database, built into an object and that very same object is serialized to XML (and vice-versa).
  • the existing multiple solutions for dynamic generation of persistent model classes (o.e.p.sdo.helper.DynamicClassWriter and o.e.p.internal.dynamicpersist.BaseEntityClassLoader) are re-factored to a single common solution.

Back to the top