From dc741421e88c3e4210b00f39877159c5117b99d3 Mon Sep 17 00:00:00 2001 From: lresende Date: Tue, 10 Nov 2009 19:19:03 +0000 Subject: moving SDO branches git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@834611 13f79535-47bb-0310-9956-ffa450edef68 --- .../sdo-java-M2/sdo/distribution/RELEASE_NOTES.txt | 127 +++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 sdo-java/branches/sdo-java-M2/sdo/distribution/RELEASE_NOTES.txt (limited to 'sdo-java/branches/sdo-java-M2/sdo/distribution/RELEASE_NOTES.txt') diff --git a/sdo-java/branches/sdo-java-M2/sdo/distribution/RELEASE_NOTES.txt b/sdo-java/branches/sdo-java-M2/sdo/distribution/RELEASE_NOTES.txt new file mode 100644 index 0000000000..25ae065c9f --- /dev/null +++ b/sdo-java/branches/sdo-java-M2/sdo/distribution/RELEASE_NOTES.txt @@ -0,0 +1,127 @@ +What's New in SDO Java M2 + + 1. `java.io.Serializable` support for `DataObject`s including objects not in a `DataGraph` (TUSCANY-22) + 2. Java code generator improvements + 3. XML Schema generation (TUSCANY-535) + 4. StAX-based Load load and save support (TUSCANY-118) + 5. new SDOUtil methods + 6. CrossScopeCopyHelper (TUSCANY-627) + 7. open content creation API (SDO 2.1 enhancement early implementation - see draft 2.1 spec) + 8. sample programs + 9. More than 12 new bugfixes + +Details are described below. + +SDO Java M2 is a superset of previous SDO Java M1 release. +Anything in M1 is also in M2, but M2 contains features and bugfixes not present in M1 release. + +Downloading + http://incubator.apache.org/tuscany/downloads.html#Apache%20Tuscany%20Java%20Downloads + +Compatibility Concerns + M2 is still on SDO Java specification 2.01 same as M1. + SDO Java M2 maintains API/SPI compatibility with M1 release, by only adding new functions. + A program written to the M1 API/SPI can both compile and run using M2 libraries. + However, a program written for M2 cannot necessarily compile or run against M1 libraries. + +Command Line Output Changes + Although the SDO Java developers try hard to keep output from the command line programs compatible between releases, + new information sometimes has to be added. This might break scripts that rely on the exact format of the output. + In M2, for example, SDO static code generator help information is updated as new options available. + +New Features + + 1. `java.io.Serializable` support for `DataObject`s including objects not in a `DataGraph` (TUSCANY-22) + DataObject used to be required to put into DataGraph before being Java serialized; + from M2 on, DataObject can be Java serialized standalone. + And the data object serialization format conforms to SDO Java specification 2.01. + At the same time, DataGraph serialization is also working now although whose format is still not compliant yet. + + 2. Java code generator improvements + A new option (-interfaceDataObject) is available to generate interfaces that extend commonj.sdo.DataObject (TUSCANY-254). + The existed option (-noEMF) pattern has been improved, e.g., + inheritance and bidirectional references are now working (sca-core.xsd can be generated). + On the other hand, generated interfaces now extend java.io.Serializable by default convenient to remote invocation. + + 3. XML Schema generation (TUSCANY-535) + XSDHelper used to go only one way that #define methods import models from XML Schema, + SDO Java M2 has implemented `XSDHelper.generate()` methods to export models as XML Schema. + + 4. StAX-based Load load and save support (TUSCANY-118) + A new helper XMLStreamHelper has been added, + it's based on Stream API for XML which makes SDO convenient to use in StAX environment. + On the other hand, StAX load/save is a better-performance alternative sometimes. + + 5. new SDOUtil methods + + * SDOUtil.getSubstitutionValues() + SDO user used to assume the SDO implementation is based on EMF + and use EMF API/SPI to access substitutable Property since no such API/SPI available in SDO Java M1. + M2 has provided such 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() + SDO user used to be only able to get the root object of a DataGraph in SDO Java M1, + M2 has enabled setting the root object of a DataGraph (TUSCANY-512) + + * SDOUtil.getTypes() + Gets all of the types associated with a uri (TUSCANY-583) + + * SDOUtil.registerDataGraphTypes + DataObject/DataGraph serialization used to be instances only; + models are expected on the other endpoint otherwise either anyType will be used to deserialize DataObject/DataGraph + or ClassNotFoundException will be thrown. + Even if no ClassNotFoundException, anyType isn't always satisfying. + SDO Java M2 has enabled models seriallization by registering Types to be serialized along with a DataGraph (TUSCANY-670) + + 6. CrossScopeCopyHelper (TUSCANY-627) + Types are registered within certain scopes (TypeHelpers). + Two Types from different scopes (TypeHelper) are two different types even if imported from very same source such as XML Schema. + Some scenario such as local invocation prefers copying to serialization + which requires copying to use Types from (invocation) destination endpoint instead of the source/original one. + SDO Java M2 has enabled copying DataObject instances from one TypeHelper 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) -- cgit v1.2.3