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.
Every release item has four aspects(currently) and there is a status Completed / In Progress / To be Done - that is attached to each aspect.
- Feature / Functionality Aspect
- This lists the core features and functions of the release item and their current status
- ii. Samples Aspect
- - This lists the set of samples to demonstate the feature / functionality and its current status - If the item in question does not have a sample of its own, then mention if there is any other sample that includes this. For example Component Properties do not have a sample of their own, but the container samples demonstrate them.
- iii. Documentation Aspect
- - This deals with any documentation that is to be in place to explain the feature / functionality and samples and its current status - If documentation related to the item in question is not substantial to stand on its own, then mention if the related documentation is going to be a part of a bigger one elsewhere. For example there is no specific documentation planned for RMI Bindings. The specific of this shall be added to a more general documentation on Tuscany Binding Extensions.
- iv. Block JIRAs
- This is a summar of JIRAs related to the feature / functinality and in pending state.
- Feature / Functionality Aspect
- This list may not be complete. If there are more Release Items / Sub-items to be included please do so.
- If you must add an item or a sub-item please ensure it is also categorized either under 'Completed' or 'In Progress' status.
Release Items (status)
Here are the list of Release Items and Sub-items within each.
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. `java.io.Serializable` 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 java.io.Serializable 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" 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)
* Blocker JIRAs
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.
Source Distribution build instructions are completed
Javadoc for the samples is completed
Inclusion of javadoc for the SDO API and the Tuscany SDO Implementation APIs is in progress. The issue to be resolved is how to reconfigure the build in order to aggregate the javadoc for samples, SDO implementation and SDO API in an integrated fashion, but without losing the javadoc overviews for each of those components.
provision of a javadoc overview for the Tuscany SDO implementation APIs is in progress
Updates to the website's sdo java overview is completed (TUSCANY-804) but if the mailing list discussion on the the organisation of projects permits another reorganisation then the state of this item will return to in progress
Spec Examples, Spec Snippets and otherSources Samples
* Feature / Functionality
Completed. There are more than a dozen such samples
* Blocker JIRAs
Forthcoming JDJ sample
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