Sebastien,

Go ahead and commit the changes. I'll review them once committed. The
logging changes sound good.

I'm pretty sure the xsi:type writing has been fixed (many times!) so I'd
like to look at the latest change.

Cheers and good luck!


On 11/11/06, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:

Hi all,

The last few weeks I went to some conferences (incl. the Colorado
Software Summit, and the WebSphere Technical Exchange in San Francisco)
and had to fix a few bugs in our C++ runtime as I was putting demos
together for these conferences... I've been distracted and didn't have
time to review and cleanup these fixes until now, but I'm going to spend
a little bit of time this weekend to do that and merge them with the
trunk.

Here's the list of bugs I ran into, and the fixes I had to make.

Bugs handling OpenDataObjects with WSDL-less and REST interactions:
- Fixed the Web service extension to handle OpenDataObject
types  correctly
- Made a minor fix to the Ruby extension to work with OpenDataObjects as
well

Exceptions when running multiple demos/composites behind a single Apache
HTTPD server (insteaf of the Axis2C simple HTTP server):
- Allowed componentName/serviceName to be specified in the SOAP address
URL as specified in spec (instead of just the serviceName)
- Changed to not recycle the TuscanyRuntime each time the componentName
changes

To help diagnosing problems in my demos I had to clean up our exception
story a bit:
- Replaced all throw char* by valid TuscanyRuntimeExceptions to allow
correct error reporting inside the runtime
- Changed TuscanyRuntimeException to track and report where exceptions
are thrown
- Changed all throw statements to use a throwException() macro similar
to the macro used in the SDO runtime
- In the CPP extension converted Tuscany exceptions into
ServiceRuntimeExceptions to allow error reporting in the samples

I really needed better logs... so I ran some Perl scripts on the sources
+ made manual changes to log statements to get more complete and usable
logs:
- All the LOGENTRY macros have been replaced by a new logentry() macro
which uses __FUNCTION__ to print the correct function name and signature
- The LOGEXIT have been removed, a logentry() at the top of your
function takes care of the exit as well for you (see the logentry macro
to see how this is done)
- LOGINFO_1/2/3, LOGERROR_1/2/3 have been replaced by simpler loginfo(),
logwarning() and logerror() which work with variable numbers of args

Note: If you guys don't like this new log scheme I should be able to
adjust the Perl scripts to change the the log macros again.

I also ran into some bugs in the SDO runtime:
- In SDOXMLWriter, fixed the generation of namespace prefixes and
xsi:type attributes for OpenDataObjects
- In SDOSAXParser, a small change to handle cases where namespaces are
declared at different levels in an XML document
- Zero init the first SDORuntimeException.location to help SCA turn an
SDO exception into an SCA exception.

And finally, I did some minor cleanup of the samples as I was demoing
them to people:
- Nicer output in the Ruby bigbank sample
- Added a Web Service client to the Ruby bigbank sample
- Removed the old MyValue sample (which does not seem to build or work),
which we can add back later if we fix it

If there is no objection I'll try to to commit these fixes later this
weekend (hoping that I don't run into too many conflicts with the
trunk). I'll contribute the SDO writer and parser fixes as a patch
instead as they seem to confuse some SDO test cases. This is probably
caused by small changes in the output of the SDO writer, and the test
cases simply need to be adjusted to the new output, but I'd prefer Geoff
or Pete to take a look.

--
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Pete

Reply via email to