Java Data Objects: Difference between revisions

Content deleted Content added
Replacing the BEA Kodo link with an Oracle Kodo link, since the old one didn't link to any real information any more
No edit summary
Line 1:
'''Java Data Objects''' ('''JDO''') is a specification of [[Java platform|Java]] [[object (computer science)|object]] [[Persistence (computer science)|persistence]]. One of its features is a transparency of the persistent services to the [[___domain model]]. JDO persistent objects are ordinary [[Java (programming language)|Java programming language]] [[class (computer science)|classes]] ([[Plain Old Java Object|POJOs]]); there's no requirement for them to implement certain [[interface (Java)|interfaces]] or extend from special classes. JDO 1.0 was developed under the [[Java Community Process]] as [http://www.jcp.org/en/jsr/detail?id=12 JSR 12]. JDO 2.0 was developed under [http://www.jcp.org/en/jsr/detail?id=243 JSR 243] and was released on May 10th, 2006. JDO 2.1 was completed in Feb 2008, developed by the [http://db.apache.org/jdo/ Apache JDO] project. JDO 2.2 was released in October 2008. JDO 2.3 is in its planning stage. JDO 3.0 will be released around June 2010.
 
Object persistence is defined in the external [[XML]] metafiles, which may have vendor-specific extensions. JDO vendors provide developers with ''enhancers'', which modify compiled Java class files so they can be transparently persisted. (Note that byte-code enhancement is not mandated by the JDO specification, although it is the commonly used mechanism for implementing the JDO specification's requirements.) Currently, JDO vendors offer several options for persistence, e.g. to [[Relational database|RDBMS]], to [[Object database|OODB]], to [[Computer file|files]].
Line 13:
In the end, persistence has been "broken out" of "EJB3 Core", and a new standard formed, the [[Java Persistence API]] (JPA). JPA uses the <code>javax.persistence</code> package, and is specified in a separate document within the EJB3 [http://www.jcp.org/en/jsr/detail?id=220 JSR 220]. Significantly, <code>javax.persistence</code> will '''not''' require an EJB container, and thus will work within a Java SE environment as well, as JDO always has. JPA, however, is an [[Object-relational mapping]] (ORM) standard, while JDO is both an [[Object-relational mapping]] standard and a transparent object persistence standard. JDO, from an API point of view, is agnostic to the technology of the underlying datastore, whereas JPA is being oriented totally around RDBMS datastores.
 
Leading JDO commercial implementations and open source projects will and some alreadyalso are offeringoffer a JPA API implementation as an alternative access to their underlying persistence engines, formerly exposed solely via JDO only in the original products. There are many open source implementations of JDO.
 
== New Features in JDO Version 2 Not Found In Version 1 ==
Line 84:
=== Implementations ===
==== Open Source ====
* [http://www.datanucleus.org/ DataNucleus Access Platform] &ndash; Persistence to RDBMS, db4o, LDAP, XML, Excel, NeoDatis, JSON, OpenDocumentFormat, BigTable, Cassandra, MongoDB, Amazon S3
* [http://sourceforge.net/projects/orient Orient Technologies] &ndash; [[ODBMS]] with JDO interface
* [http://sourceforge.net/projects/jdoinstruments JDOinstruments ] &ndash; [[ODBMS]] with JDO interface