Differences between revisions 38 and 39
Revision 38 as of 2006-02-09 23:38:46
Size: 7953
Editor: nwkea-http-2
Revision 39 as of 2006-02-09 23:43:24
Size: 8013
Editor: nwkea-http-2
Deletions are marked like this. Additions are marked like this.
Line 75: Line 75:
The release testing plan is described at ReleaseTesting.

1. About JDO

Java Data Objects (JDO) is a standard way to access persistent data in databases, using plain old Java objects (POJO) to represent persistent data. The approach separates data manipulation (done by accessing Java data members in the Java domain objects) from database manipulation (done by calling the JDO interface methods). This separation of concerns leads to a high degree of independence of the Java view of data from the database view of the data.

Interfaces are defined for the user's view of persistence:

  • PersistenceManager: the component responsible for the life cycle of persistent instances, Query factory, and Transaction access

  • Query: the component responsible for querying the datastore and returning persistent instances or values
  • Transaction: the component responsible for initiating and completing transactions

Commercial and open source implementations of JDO are available for relational databases, object databases, and file systems.

JDO is being developed as a Java Specification Request in the Java Community Process. The original JDO 1.0 is JSR-12 http://www.jcp.org/en/jsr/detail?id=12 and the current JDO 2.0 is JSR-243 http://www.jcp.org/en/jsr/detail?id=243

2. About Apache JDO

Sun Microsystems has decided to donate Java Data Objects (JDO) to the open source community. Both of the specifications will be developed in the Apache JDO project. We envision several sub-projects to be developed as part of this project:

  • JDO 1.0 API. This is the standard definition of the JDO API as defined by the published JSR-12 standard.
  • JDO 1.1 Reference Implementation. This is a file-based, single-user store for persistent Java objects. The version number is 1.1 to reflect that the Java package has changed from com.sun.jdori to org.apache.jdo. The license terms have also changed.
  • JDO 1.1 Technology Compatibility Kit. This set of programs tests that a JDO 1.0 implementation is in compliance with the standard. The version number is 1.1 to reflect that the test framework has changed from [http://java.sun.com/developer/technicalArticles/JCPtools2/ JavaTest] (a proprietary Sun package not suitable for open source projects) to[http://www.junit.org/index.htm JUnit], an open source test framework. The license terms have also changed.

  • JDO 2.0 API. This is the standard definition of the JDO API as defined by the JSR-243 standard currently under development.
  • JDO 2.0 Technology Compatibility Kit. This set of programs tests that a JDO 2.0 implementation is in compliance with the standard.
  • JDO 2.0 FOStore (File Object Store) implementation. This is an implementation of JDO 2.0 based on the JDO 1.0 Reference Implementation. It does not support relational data access, so it is inappropriate for the JDO 2.0 Reference Implementation. We are investigating [http://sleepycat.com SleepyCat] for the back end. See SleepyCatIntegration for discussion of the JDO/SleepyCat integration.

  • JDO 2.0 Geronimo Integration. This project will build the glue between the JDO 2.0 Reference Implementation and the J2EE compliant application server. We expect to use a common persistence framework (Tranql) to provide both EJB3 and JDO persistence services.

Due to timing constraints, the JDO 2.0 Reference Implementation is not being built as an Apache project, but will be built as a JPOX release http://jpox.org.

3. Project Structure

For more information on the structure of the project, see ProjectStructure.

4. Tools

This project will use:

5. Participation

The Apache JDO project is just getting started. Currently, we have the MailLists set up - if interested, please subscribe and participate.

If you're interested in committing to the project:

We have a communications conference call every Friday at 9:00 AM Pacific time. The conference call number is 866 230-6968 (international 865 544-7856) code 294-0479#. During this call we discuss project status, issues, concerns, and strategy. Everyone interested in Apache JDO is welcome and encouraged to participate.

6. Technology Compatibility Kit Developer's Page

Information for developers of the JDO TCK is found at TechnologyCompatibilityKit

7. Releases

Apache JDO 2.0 beta is now available. See the [http://db.apache.org/jdo/index.html Apache JDO web site] for more information.

The release testing plan is described at ReleaseTesting.

8. General Developer Information

  • JDO uses the same [http://wiki.apache.org/geronimo/CodingStandards coding standards] as the Geronimo project.

  • There are a number of items on the ToDoList. You can volunteer for any of them...

  • The subversion repository has been set up. You can take a look at the SubversionRepository page for more information.

  • The apache JDO project uses maven for build. You can take a look at the MavenInfo page for more information.

  • The JDO sub-projects ri11 and tck11 make use of the apache commons logging package. You can take a look at the LoggingDetails page for more information.

  • The objective of JDO is to support J2SE 1.3 for runtime. You find details about running with J2SE 1.3 at the ["J2SESupport"] page.
  • A DeveloperScratchpad is available for uncategorized issues.

9. JDO Resources

[http://java.sun.com/products/jdo Sun's official JDO site]

[http://db.apache.org/jdo/index.html Apache JDO site]

[http://jdocentral.com JDO Central] - Editorials, Announcements, Forums, Product links.

[http://www.java201.com/resources/browse/61-all.html JDO-related resources] - Articles, Books, Presentations, Tutorials.

10. 'Special' Wiki pages

  • TitleIndex

    • A list of all pages on this wiki.


    • A basic guide to the MoinMoin wiki (including information about wiki syntax).


    • A list of all the words that appear in the titles of the pages on this wiki, with links to pages that include that word.


    • A full-text search of the wiki.


    • All the "broken links" -- a list of all the pages on this wiki that are linked to, but do not exist.


    • All pages on this wiki that are not linked to from anywhere else (and are thus very hard to reach).


    • Generates a list of 75 random pages on this wiki.


    • Generates a graph and some statistics about the sizes of pages on this wiki.


    • Generates a graph of page views and page visits.


    • Generates a graph of the web browsers used in visiting this page.


    • Shows basic information about this wiki installation, the extensions it has installed, etc.

FrontPage (last edited 2011-06-13 20:16:09 by p5DDB0BB2)