|  |  |  | License Codehaus OpenEJB OpenJMS OpenORB Tyrex

Old releases
General
Release 1.3
Release 1.3rc1
Release 1.2

Main
Home
About
Features
Download
Dependencies
Reference guide
Publications
JavaDoc
Maven 2 support
Maven 2 archetypes
DTD & Schemas
Recent HTML changes
News Archive
RSS news feed
Project Wiki

Development/Support
Mailing Lists
SVN/JIRA
Contributing
Support
Continuous builds
Prof. services

Related projects
Spring ORM support
Spring XML factories
WS frameworks

XML
XML

XML Code Generator
XML Code Generator

JDO
Introduction
First steps
Using JDO
JDO Config
Types
JDO Mapping
JDO FAQ
JDO Examples
JDO HOW-TOs
Tips & Tricks
Other Features
JDO sample JAR

Tools
Schema generator

Advanced JDO
Caching
OQL
Trans. & Locks
Design
KeyGen
Long Trans.
Nested Attrs.
Pooling Examples
LOBs
Best practice

DDL Generator
Using DDL Generator
Properties
Ant task
Type Mapping

More
The Examples
3rd Party Tools
JDO Tests
XML Tests
Configuration

About
License
User stories
Contributors
Marketplace
Status, Todo
Changelog
Library
Contact
Project Name

## Status

Supported Features
Castor XML
Castor JDO
Castor DSML
What's missing
TODO
JDO
XML
Marshaling Framework
Source Code Generator
Mapping
Miscellaneous
When is the next release?

## Supported Features

### Castor XML

- | Automatic XML data binding for class definitions which adhere to the Java Beans design pattern. This is often referred to as default introspection in our documentation.
- | Java to XML mapping automates transformation of Java objects to and from XML documents and provides Java object validation.
- | An XML based mapping file to specify XML bindings for existing object models (see xml-mapping).
- | The Source Code generator can produce Java class definitions, XML binding information, and validation code based on a provided XML schema (see Source Generator).
- | Supports the W3C XML Schema 1.0 Second Edition Recommendation (2004-10-28). For more information refer to the Source Code Generator and XML Schema Support.
- | Supports a "customization" binding file used in conjunction with an XML Schema for greater control over the generated source code. Name collision can be avoided with this binding file. For more information, refer to the Binding File.
- | Can automatically create an XML Schema from an XML instance document.

### Castor JDO

- | Java to SQL mapping (object/relational) automates Java persistence into any relational database server using JDBC.
- | Java to SQL mapping uses an XML document to specify the mapping textually and provides an API to specify them programatically.
- | Supports one-one and one-many relation types, SQL/Java inheritance, object graph to single row mapping, and multiple column primary keys and automatic type conversion.
- | Optimistic and pessimistic locking modes, in-memory concurrency engine, and dead-lock detection.
- | Provides support for EJB 1.1 CMP entity beans (release 0.9) and CMP finder declaration using OQL.
- | Efficient implementation incurs little overhead compared to direct JDBC access.
- | Support for JTA transaction demarcation, inclusion as resource in transactional environment, and JDBC connection pooling (release 0.9 integrated with Tyrex).
- | Cache control at JDO configuration and mapping file specification: no-cache option, cache object limit, cache time limit, LRU removal deamon.
- | New architecture separating the responsibility of the CacheEngine from that of the persistent object in order to better support relations (especially many-many) and better handle dependency object commits.
- | Multi column primary keys and contained objects.
- | Mapping file supporting object dependency and relations.
- | Serializable field type.
- | Calling Stored procedures returning result sets.
- | Support for many data types, including BLOBs and CLOBs.

### Castor DSML

Note: DSML is no longer supported until we find a contributor who is willing to upgrade and maintain it. If you are interested in working on Castor DSML please let us know.

- | Import/export an LDAP directory or search results to/from XML based on the industry standard DSML schema.
- | XML document for specifying LDAP queries and import rules.
- | Supports both JNDI service providers and the Mozilla Directory SDK.

## What's missing

- | Work was under way on a direct SQL->XML bridge which uses the same mapping file but does not involve any Java objects in the process. The developer who was working on this feature left the company and no longer has time to work on this. If anyone is interested in working on this feature, let us know!
- | The EJB CMP implementation is now developed in the scope of the OpenEJB project.
- | Consolidation between the SQL and LDAP engine through a shared DataStore API, potentially supporting other relational back-ends.
- | More generic mapping API and mapping tools.
- | Stored procedures, XML content.
- | Debugging tools.

## TODO

### JDO

- | Add type convertors to bind parameters and load() method
- | DataStore API replacing existing persist SPI. Consolidation of JDO and DAX.
- | New mapping DTD
- | Support for read-only fields
- | SQLData, DOM and Castor XML data object field types
- | Calling Stored procedures without result set

### XML

#### Marshaling Framework

- | Improve SAX-2 support for Marshaler instead of using XMLReaderAdapter. (kvisco)
- | Improve ID/Key reference handling, including improvements to IDResolver. (kvisco)
- | Improve ClassDescriptorResolverImpl to support nested Resolver. (kvisco)
- | Improve error reporting. (all)
- | Improve documentation. (all)
- | Improve performance. (kvisco, afawcett)
- | Provide a JAXB compatibility layer. (kvisco + arnaud)
- | For more items, please use Jira

#### Source Code Generator

- | Provide a JAXB compatibility layer. (kvisco + arnaud)
- | Full Support of the Union type (union of string and Qnames is supported).
- | Extensibility API.
- | For more items, please use Jira

#### Mapping

- | Support for element containers, also called element wrappers.
- | Improve Collection handling in default FieldHandler.
- | Improve mapping file usability.
- | Improve namespace support.
- | For more items, please use Jira

#### Miscellaneous

- | Support for creating an XML Schema from Java Object Model.

## When is the next release?

Typically a release is done when all scheduled items for the release are finished and tested. However, this can take a while to accomplish and depends on the tasks. Therefore, we may do "interim" releases that contain some of the features or bug fixes scheduled for a particular release. An interim release allows the community to take advantage of the new features and bug fixes, without needing to wait until all features of the release have been finished. An interim release can be done at any time that the SVN is in a stable state and especially if some important bug fixes are available.

The current tasks for the next release are being tracked in Jira (http://jira.codehaus.org/browse/CASTOR).

<notice> Copyright © 1999-2005 ExoLab Group, Intalio Inc., and Contributors. All rights reserved. </notice>
<notice> Java, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. XML, XML Schema, XSLT and related standards are trademarks or registered trademarks of MIT, INRIA, Keio or others, and a product of the World Wide Web Consortium. All other product names mentioned herein are trademarks of their respective owners. </notice>