[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xmlblaster] Support for publishOneway in PtP, xmlrpc3

Hi all!

I've had an interesting day debugging and looking into XmlBlaster, partly because I'm finally overhauling my XmlRpc3 driver (using apache commons). (That's the one which I promised to make available for inclusion in the library...)

Use case is as follows: client1 sends PtP messages to client2 using updateOneway().
I noticed the following: I_CallbackDriver.sendUpdateOneway(MsgUnitRaw[] msgArr) got never called in the server. Instead, all updates were done using I_CallbackDriver.sendUpdate(MsgUnitRaw[] msgArr). Which was kind of a performance problem, and I'm using updateOneway because I don't need full update functionality. I've also successfully located the problem. The server gets called at org.xmlblaster.engine.XmlBlasterImpl.publishOneway(...), which is good, but it lost the "onewayness" property (actually MethodName) of the message and subsequently sent it to the client as if it was a normal update.

I also made a small patch which eliminated the problem for me, so now it works as I expected. Please review it.

Note to Marcel: I've found a 10 month old mail of you offering SVN access to add my XmlRpc3 protocol impl. I could actually add it and rename the packages and/or classes to some standard name, replace java.util.concurrent packages with the backport, but I don't really have time for much more.
It's working for me and some of my company's clients, but there are hackish parts and occassonally it may do unexpected things. So it would need a review. I don't feel comfortable just adding it. :) There's also some code duplication from the old impl, and possibly classpath incompatibilities with the old xmlrpc2 library (so that may have to go).

Thanks for your support!

Balázs Póka