|Changelog for SCA_SDO
||What has changed?
# The ability to control the operations on a service interface through a PHP interface
by specifying the PHP interface on the @service annotation - e.g. @service MyServiceInterface
# PECL bug 11997 - don't remove xsi:type (except on top level soap message or response)
# PECL bug 11996 - not showing LIBXML2 parse errors
# PECL bug 12193 - alphabetical order of namespaces causes failure
# PECL bug 12103 - saveString doesn't encode entities
# PECL bug 12443 - unable to access an XSD property containing a hyphen (-)
# PECL bug 13101 - Repeated nill elements of extended type cause "Parser found unknown element" exception
# Fix to add wsdl namespace prefix to <types> element in WSDL, without which it will not validate.
# Fix for Tuscany AccessViolation problem when serializing a DO
# Backward-compatible updates to SDO extension so that it will work with PHP 5.3
# Backward-compatible updates to SCA so that it will work with PHP 5.3.
# Fix for failures that occur when using the soap extension - see thread "SCA Webservice in WSDL mode"
# Substantial rework of the examples to illustrate more bindings - see examples/SCA/index.html
* Fixes for PECL bugs:
- TUSCANY-1362 - Incorrect operation of code that checks whether schema is loaded before going out on the net to retrieve it.
- TUSCANY-1112 - (which is PECL 9867) Incorrect namespaces in generated XML
- TUSCANY-1564 - (which is PECL 11774) xsi:type not always set for complexType
- TUSCANY-1566 - Elements coming out in wrong namespace (found by Caroline and reported in the phpsoa group under "Experiences with Atompub"
- Pick up revision 568244 of Tuscany SDO code.
- There is a new Rest Resource binding, with tests and examples.
- There is a new simpledb binding with examples
* Fixes for PECL bugs:
- PECL#10925 - Don't treat magic PHP methods as service operations
- PECL#10989 - don't automatically make all types in the wsdl nillable
- PECL#10994 - Business Exceptions Data Returned to Client
- PECL#11004 - WSDL Generated Does Not Validate
- PECL#11012 - Visual Studio Consumption of SCA Generated WSDL
- Pick up revision 546761 of Tuscany SDO code.
- Include new eBay soap binding
- Tactical version of the in memory caching of the data model enabled for eBay binding
- Unit tests keep going to conclusion even when extensions are missing
- Added the eServiceStore example - shows several components which can be make local or
remote with only a swift change of the @binding annotations.
* Fix for spaces in service description URLs (pecl defect #11006).
* Experimental support for service names following the PEAR coding standard
* Experimental support for a manual service request dispatching interface on SCA.php
* Pluggable bindings support
This support is all in the core. There are now fewer files in the SCA directory and all code specific to a given binding (local, soap, jsonrpc etc.) goes in a subdirectory under the Bindings subdirectory. The SCA core code now just knows how to use the SCA_BindingsFactory object to pull in the classes it needs to service an incoming request. The names of the desired classes are derived from the annotations e.g. if a component has an @binding.soap annotation, the SCA core code will look in SCA/Bindings/soap for the classes it needs. This is probably of limited interest unless you plan to write a binding of your own. We plan an article to describe how this works.
* Refactored bindings based on the pluggable binding support:
o local (php to php binding)
o restrpc (RPC based on HTTP GET or POST)
o soap (SOAP web services)
* Latest drop of SDO code from Tuscany (currently revision level 532769) including:
o performance enhancements
o set of fixes to DataObject destructor to eliminate crashes when the graph is not freed in the default order
* Updates to SDO extension:
o fix memory leak from SDO_DataObject (depends on Tuscany fixes above)
o add debug trace macros for debugging memory allocation
o new signature for SDO_DAS_XML::create() allows an array of schema files to be passed in
* Bug fixes
o More SCA examples that exercise some of the new bindings, and some of the old, including HelloWorlds and Email scenarios.
Fix for bug #9845 - Relational DAS is failing when one parent and two children
Changed from namespaceURI.type to namespaceURI#type (conform to spec)
Update to Apache Tuscany C++ SDO revision level 495327 (namespace fixes, performance improvements)
Fix for bug #9498 - invalid WSDL generation
Fix for bug 9426 - printing open types
Update to Apache Tuscany C++ SDO revision level 483149 - includes various fixes for sequenced and open data types.
This is the first release under the new project name SCA_SDO (renamed from SDO).
The rename reflects the fact that this project now implements the Service Component Architecture (SCA)
(see http://osoa.org/display/PHP/SCA+with+PHP for more information).
The project's stable state refers to the SDO component.
The SCA component is currently alpha quality and experimental.
The main changes since 1.0.4 are:
- inclusion of the Service Component Architecture (SCA) component
- new PEAR packaging to install SCA and SDO as peer directories (PEAR/SCA and PEAR/SDO)
- update to Apache Tuscany C++ SDO revision level 478193
- new function in SDO_DAS_Relational to support multiple root data objects
- new function in SDO_DAS_XML to support CDATA sections (not yet complete)
- fixes for bugs #9287, #9289, #9339
Simplified build and install, updated Tuscany release, bug fixes
- simplified the install by merging the sdo_das_xml library into the sdo core library: note you must remove sdo_das_xml from the extension list in your php.ini
- fix bug #8493 WSDL with double elements
- fixed several memory leaks, in iterator objects and others
- update to Apache Tuscany C++ SDO revision level 433676
- improved and extended the interoperability tests (see tests/interop in CVS)
Compatibility with Tuscany C++/SDO M1 release and some bug fixes over 1.0.2
- Update the base C++/SDO implementation to be the Tuscany CPP Milestone 1 release: cpp-0.1.incubating-M1
- Tested with Linux AMD 64-bit architecture
- new 3-argument version of SDO_DAS_XML::createDocument() allows an SDO_DAS_XML_Document to be created from an SDO
- fix defect 7878 Silent failure with malformed SQL
- fix defect 7879 Improve error message in SDO_DAS_Relational_DatabaseHelper:executeStatement
- fix defect 8280 Remove spaces from source files
- fix defect 8300 Optimistic concurrency failure
- fix defect 8374 Exception hierarchy (temporary fix)
Minor increments and fixes over 1.0.1:
- fix defect 7458
- eliminate use of the C++ XMLDAS implementation
- fix build errors with PHP 5.2
Minor increments and fixes over 1.0.0:
- allow data objects to be copied between data factories
- remove memory leaks in _get_properties methods
- remove memory leak reading value from Seqence
First stable release.
Minor improvements and fixes over 0.9.0.
The following changes have been made between 0.7.1 and this release:
A) The changes which are visible at the programming interface are:
1) The interface to the XML Data Access Service has been revised:
a) The names of the methods to load and save documents have changed to improve consistency with other packages.
b) A new method, createDocument(), has been added to enable creation of a document from scratch.
c) The saveDataObjectToFile()/String() methods have been replaced by saveFile() and saveString() methods on the XML DAS object.
d) Some getters and setters on the Document have been fixed or removed.
e) The XML Data Access Service has added support for the following XML Schema:
- Open types: support for <any> element and <anyAttribute>
- Type inheritance: both simple and complex types can be derived by restriction or extension
- Abstract types: the use of abstract types in the schema is supported
2) The XML DAS now supports printing its SDO type and property model using print or echo.
3) The XML DAS can now produce formatted Document (see optional formatting argument on saveFile() and saveString())
4) The getType() method on a DataObject has been replaced with getTypeName() and getTypeNamespaceURI() methods.
B) Other changes in this release:
1) The memory management in the sdo and sdo_das_xml extensions has been overhauled to squeeze out any memory leaks
2) Exception messages from the extension have been improved so that they never refer to the underlying C/C++ code
3) PropertyNotSetException has been improved so that it replicates the way arrays and objects behave as closely as possible
4) The parsing that the XML DAS performs on both XML Schema and instance documents has been improved so that problems are picked up and reported earlier.
This release adds support for open types. These are types which can have additional properties added to a runtime instance, for example to support an XML <any/> element.
Also various bug fixes.
This release adds support for reflection on a data object. The SDO_Model_ReflectionDataObject gives the programmer access to the type and structure information in a data object's model. This can help with debugging, or be used in dynamic user interface generation.
Improved reporting of Schema and XML parse errors (libxml2 errors surfaced in an XML Data Access Service SDO_DAS_XML_ParserException).
Various bug fixes, including PECL bugs 6002 and 6006.
Support for XML Schema 'nillable'.
Support to build and run against PHP 6.0 (only with unicode semantics off).
This release fixes a number of bugs:
- The XML DAS now throws a more meaningful exception when the xsd or xml file is not found
- The interface to SDO_DAS_DataFactory::addPropertyToType has changed and the previous interface is deprecated
- The interface to SDO_DAS_DataFactory::addProperty now supports the setting of default values
- The unit tests for the XML DAS have been added to
- The Relational DAS adapts to whether PDO constants are using old-style PDO_* or new-style PDO::*
- The Relational DAS contains a workaround for a problem with PDO_Statement::RowCount and ODBC driver
- Some SDO_DAS_ChangeSummary* constants, which were probably only used by the Relational DAS, have been changed
Now includes support for DB2 on both Windows and Linux as well as MySQL.
Added some tests for the XML DAS.
This is the first release of SDO for PHP. It contains the core SDO extension and two Data Access Services: an XML DAS written in C and a Relational DAS to work with relational databases, which is written in PHP and uses PDO. The SDO extension requires a recent version of PHP 5.1. It has been tested on both 5.1.0b2 and 5.1.0b3. The core SDO extension and XML DAS work with 5.1.0b2. The Relational DAS requires PHP 5.1.0b3.