TODOs / Tasks for Milestone 2 (M2)

The next release of Tuscany Java SDO - Milestone-2 (M2) is tentatively planned for October. The following is target content for M2 and its status.


Here are some points to help in updating information on the Release Items.

Release Items (status)

Here are the list of Release Items and Sub-items within each.


  1. SDO 2.0.1 Source and Binary Distributions

We have no pending decisions to be made on inclusion or exclusion of functionality, here are the M2 changes which are all in completed state. Our remaining in progress issues are to do with organisation and compliance of the distribution.

M2 Changes Relative to M1

  1. `` support for `DataObject`s including objects not in a `DataGraph` (TUSCANY-22)
    * implemented `ExternalizableDelegator` and `ExternalizableDelegator.Resolvable`
    * implemented proper/compliant data object serialization format
    * DataGraph serialization (non-compliant format) is also working now

  2. Java code generator improvements
    * new option (-interfaceDataObject) to generate interfaces that extend commonj.sdo.DataObject (TUSCANY-254)
    * generated interfaces now extend by default
    * -noEMF pattern improvements, e.g., inheritance and bidirectional references now working (sca-core.xsd can be generated)
  3. XML Schema generation (TUSCANY-535)
    * implemented `XSDHelper.generate()` methods

  4. StAX-based Load load and save support (TUSCANY-118)
    * New helper XMLStreamHelper

  5. new SDOUtil methods
    * SDOUtil.getSubstitutionValues() - Non-EMF way to get the Sequence corresponding to a substitutable Property (TUSCANY-502/503)
    * SDOUtil.isRequired() - Determine if a property is required, that is, minOccurs > 0 (TUSCANY-504)
    * SDOUtil.setRootObject() - Set the root object of a DataGraph (TUSCANY-512)
    * SDOUtil.getTypes() - Gets all of the types associated with a uri (TUSCANY-583)
    * SDOUtil.registerDataGraphTypes - Register Types to be serialized along with a DataGraph (TUSCANY-670)

  6. CrossScopeCopyHelper (TUSCANY-627)
    * used to copy DataObject instances from one TypeHelper scope to another scope

  7. open content creation API (SDO 2.1 enhancement early implementation - see draft 2.1 spec)
    * TypeHelper.createOpenContentProperty()
    * TypeHelper.getOpenContentProperty()

  8. sample programs
    * There are currently three groups of samples
     8.1. Simple code snippets located throughout the specifiction with comparative methods for acheiving the same results
         # Create DataObject from XML String
         # Create DataObject from XSD and XML files
         # Access DataObject Properties by name
         # Dynamic "Customer" Type sample
         # Print Properties of DataObject
         # Using XPath
         # Obtaining DataGraph from XML
     8.2. Full examples located within Examples section of specification
         # Access DataObjects using XPath
         # Accessing DataObjects via Property index
         # Accessing the contents of a Sequence
         # Creating DataObject trees from XMLDocuments
         # Creating XML from DataObjects
         # Serializing desearializing a DataObject
         # Using Type and Property with DataObjects
     8.3. Other sample sources such as white papers and online articles
         # Create PurchaseOrder
         # Read PurchaseOrder
         # PurchaseOrder command line

  9. bug fixes
    * DataObject string accessors were not working for XPath segements with @ prefix, e.g. "@property" (TUSCANY-425)
    * string accessors fixed to throw IndexOutOfBounds exception for "property[0]" since index starts with 1 (TUSCANY-475)
    * fixed Date-Type properties (including Day, Date, DateTime, Duration, etc.) that were not working/roundtripping properly (TUSCANY-579/582)
    * dynamically-created global (open content) properties were not serializing properly (TUSCANY-530/531)
    * properties created from XSD attributes now appear, in the Type, in the same order as the attributes in the XSD complexType
    * fixed test harness to allow comments in XML test files (TUSCANY-427)
    * loading XSDs with nillable elements, of built-in types, caused NPE (TUSCANY-676)
    * fixed NPE when loading XSD without targetNamespace (TUSCANY-645)
    * made Type.getProperty(String) implementaion thread safe (TUSCANY-682)
    * support base64Binary and hexBinary XSD types correctly (TUSCANY-685)
    * fixed generation of invalid prefixes in XML serialization (TUSCANY-711)
    * sometimes SDOXMLResourceImpl (instead of XSDResourceImp) was incorrectly used when loading .xsd files (TUSCANY-714)
    * roundtripping an xsd:anyType via XML using XMLStreamHelper gave wrong kind of DataObject (TUSCANY-755)
    * cardinality of global elements should be adaptive according to usage context (TUSCANY-115)
  1. Samples Distribution

The issue of integration of javadoc mentioned below must be resolved before the exact nature of the sample distribution is defined. This issue is therefore in progress but will become completed in the process of resolving the javadoc integration issue.



  1. Spec Examples, Spec Snippets and otherSources Samples

    • * Feature / Functionality

      • Completed. There are more than a dozen such samples

      * Documentation

      • Completed

      * Blocker JIRAs

      • none

  2. Forthcoming JDJ sample

  3. There's a paper just being submitted for JDJ which contains an extended example. We could squeeze this into the "otherSources" set of examples if we wanted to. If so this sample is completed but its inclusion in the distribution is not started

Tuscany/TuscanyJava/M2TasksSDO (last edited 2009-09-20 22:48:31 by localhost)