patches: exception handling, complexType objectification, POD
- Patches can be found at sourceforge
Under PATCHES (request id: 935919)
Any comments would be greatly appreciated.
- need to use latest version of SOAP::Lite 0.65 from CVS
- added POD style documentation section to each class being generated
which includes usage examples of methods in that class
- use of Log::Log4perl for logging. All Log::Log4perl lines have
commented out in this release as not everyone gets the coolness of
- During the auto generation of all classes distinguish between:
- methods for exception handling
- methods for complexType handling
to facilitate throwable exceptions as defined by WSDL faults.
- Extend Error.pm module into each auto generated exception class
to implement a mechanism of exception handling as defined
by the source WSDL.
- In methods which extend Error.pm module override Error::strinify to
customizable formating of error messages
- a complexType gets instantiated with a data from a SOM object.
values in the SOM object are not prefixed with '_'. The
expects all input parameters to be prefixed with an '_'. A simple,
non-exhaustive conversion logic was added to accept non-prefixed
parameters and convert them into '_' prefixed versions.
- When a method returns a complexType the complexType is instantiated
its corresponding SOM data and that complexType is return as an
that complexType. (Internally each method gets a SOM object from
SOAP call, we now do a transformation of that data into the
complexType object described by the WSDL.)
- If there is a fault returned by the SOM object the method in which
fault occured an exception is thrown according to specificication
described in the WSDL.
- Added a new Util class (per WSDL used) to implement expandNode().
If a complexType contains a serialized verion of a complexType as
its elements, expandNode() converts that serialized complexType into
an appropriate complexType object and returns it as an ArrayOf
- overloaded methods in the WSDL are currently not handled at all,
methods of the same name will be stubbed which will case warnings.
- still unable to properly serialize proper name spaces to nested
complexType's of complexTypes.
- currently data complexTypes during the autobuilding process do not
check the namespace they belong to. For example two WSDL's which
share the same namespace will create their own versions of a
defined inside each of their respective packages even though that
complexType is really unique within the namespace that both
- WARNING: we also noticed that XML docs sometimes contain soap:body
declarations and othertimes contain wsdlsoap:body... this makes
break in wsdl2perl. Hence we modified some findvalue() pattern
to use 'wsdlsoap' instead of 'soap'.
These updates are maintained by:
BlueReach Communications Inc.
Jason Kelly (jkelly at promptunetworks dot com)
Piotr Kapiszewski (kapi at promtpunetworks dot com)