Updates to the Original Java Specification Request (JSR)
The following information has been updated from the original proposal:
2018年02月13日:
Following the successful transfer ballot, the Maintenance Lead role has moved from Oracle to Craig Russell, an individual.
2004年06月22日:
Initial Expert Group Membership:
Xcalia
POET Software
David Ezzio
David Jordan
Tech@Spree
Robin Roos
SAP
SolarMetric
Oliver Kamps
JBOSS
Supporting this JSR:
Sun Microsystems, Inc.
Poet Software
Progress Software
SolarMetric
Orientechnologies
Xcalia
SAP
Versant
Oliver Kamps
Robin Roos
JBoss Group
Tech@Spree
Original Java Specification Request (JSR)
Identification |
Request |
Contributions
Section 1. Identification
Submitting Member: Sun Microsystems, Inc
Name of Contact Person: Craig Russell
E-Mail Address: Craig.RussellNo@Spamsun.com
Telephone Number: +1 408 276 5638
Fax Number: +1 408 276 7191
Specification Lead: Craig Russell
E-Mail Address: Craig.RussellNo@Spamsun.com
Telephone Number: +1 408 276 5638
Fax Number: +1 408 276 7191
Initial Expert Group Membership:
NOTE: This information has been updated from the information below.
LIBeLIS
POET Software
David Ezzio
Oracle Corporation
David Jordan
Tech@Spree
Robin Roos
SAP
SolarMetric
Oliver Kamps
JBOSS
Supporting this JSR:
NOTE: This information has been updated from the information below.
Sun Microsystems, Inc.
Poet Software
Progress Software
SolarMetric
Orientechnologies
LIBeLIS
SAP
Oracle
Versant
Oliver Kamps
Robin Roos
JBoss Group
Tech@Spree
Section 2: Request
The JDO API was released in spring of 2002 and had one maintenance release late in 2003. The initial release provided a database abstraction that permitted API access to datastores without detailed knowledge of the underlying datastore API.
This technology has been used to develop implementations for file storage and relational and object databases. Over a dozen commercial implementations have been developed to date. Additionally, the technology has been exploited to develop EJB Container Managed Persistence (CMP) for application servers.
Features to be added to the JDO specification include:
Relational Database Mapping:
The programmer's view of the datastore hides the details of the underlying datastore, which is attractive but leads to some issues. Different JDO vendors have implemented mappings to relational databases differently, and the mappings are not portable among vendors. This JSR will address a common mapping format to allow a higher degree of portability of applications.
Disconnected operation:
A primary use-case for JDO is in a middle tier of a multi-tier architecture. Rich clients (http clients running applets, web services clients, and ORB clients) may wish to extract a subset of values from the database in a structured (domain model) format, and update this information. Once updated, the information is sent back to a middle tier, where the changes are applied to the datastore. This JSR will address the APIs in the middle tier to facilitate this use-case.
Broaden the range of implementations:
Certain JDO 1.0 specification restrictions reduce the acceptance of the API by potential JDO vendors. Limitations include a requirement for binary compatibility to the Reference Enhancement contract and a requirement that only classes, not interfaces, can be persistent. This JSR will address these limitations.
Alignment with J2EE:
While the JDO technology is suitable as a component in the J2EE architecture, certain services are required from the server that are not currently standardized. Part of this JSR will recommend standard APIs to provide these services. Part of this alignment will specify the portable behavior of transaction completion in the web and ejb containers.
Extensions to JDO queries:
JDOQL provides a standard way to access persistent instances based on values and relationships, but is limited in what can be returned as the result. This JSR will extend the range of return values to include projected fields, collections of instances identified in navigational expressions, and aggregate data such as MIN, MAX, SUM, AVG, and COUNT. Additional methods will be defined to perform string manipulations in filters.
Relationships:
The JDO object model does not specify bidirectional or composition relationships among object classes. This JSR will consider issues regarding managed bidirectional relationships and composition relationships including cascade delete semantics.
Maximize JDO backward compatibility:
Many applications and deployments have significant investments in the JDO technology. Any improvements to the API will attempt to maintain backward compatibility to all previous JDO specifications.
Minor usability features:
A number of usability features will be considered, based on feedback from user discussions on sites such as TheServerSide and JDOCentral.
The target platforms are desktop and server.
Java Data Objects was designed for use in J2SE and J2EE. Two tier applications written for J2SE can use JDO directly. Application components such as servlets, JavaServer Pages, message-driven beans, and session beans can use JDO as a managed component.
A subset of functionality would be appropriate for J2ME but this will require a separate JSR.
No, it is being submitted for J2SE and J2EE platforms.
The Java community will benefit from the additional API and usability improvements that will ease portability of relational data access from JDO applications.
Please see 2.1 above.
Please see 2.1 above.
The specification will continue to use the existing javax.jdo package.
No
No
No. The reference implementation will be internationalized, but not localized.
JDO 1.0.1 as described by JSR 12 will be superseded by JDO 2.0.
We expect to deliver a community review draft by mid 2004 and the final release early to mid 2005.
The Expert Group will use email and the private JSR homepage provided as part of the Java Community Process. Face-to-face meetings will be held as needed.
The specification lead will maintain an interest alias for JCP members outside of the Expert Group. The specification lead will publish periodic milestone drafts and status to this list. The Expert Group may also use the list to request feedback on key issues facing the group.
The specification lead will on a quarterly basis provide a brief JSR status to the JCP PMO, for publication to the Java community. This will include the current schedule for the JSR and notes on any major events that have occurred in the previous quarter.
Both the RI and TCK will be delivered as stand-alone packages.
The objective for this JSR is to support Java(TM) 2 Platform, Standard Edition (J2SE) 1.3 for runtime, while potentially taking advantage of new features of J2SE 1.5 when it is the compiler and JRE used for persistence-capable classes and interfaces. The Java Data Objects library interface definitions and implementation will be built using J2SE 1.3. The Reference Implementation and Technology Compatibility Kit will be built using J2SE 1.3. Implementations that support only J2SE 1.3 will only be required to pass the basic TCK. Implementations that support J2SE 1.5 will be required to pass the extended TCK tests as well.
Compatibility with J2EE 1.3 is an objective, with support for future versions as well.
N/A
The Sun standard license terms for Java technology (SCSL) will apply to the Specification and RI; the TCK will be licensed according to Sun's standard TCK license terms.
Section 3: Contributions
JSRs:
JSR-012 Java Data Objects (JDO)
JSR-014 Java Generics will be used as an alternative to certain JDO metadata
JSR 175 Metadata Facility will be used as an alternative to certain JDO metadata
Other specifications: not applicable.
JDO 1.0.1 is the starting point for this JSR.
The Metadata Facility could be used as defaults for the JDO metadata required by the proposed specification.
Generics can be used to obviate the need for certain JDO metadata, especially the types of elements, keys, and values for relationships, collections, and maps.