So I think Paul is right, and the question I didn't ask very well is why does Synapse need both ClassMedaitor and Axis2 ServiceMediator. How should a user decide which to use?
As Paul points out below, now that the way Synapse does QOS has changed it really doesn't need the Axis2 ServiceMediator anymore, everything can be a ClassMedaitor. Specific mediators that require Axis2 function such RM, security etc, could still create and use and Axis engine, but thats an implementation detail.
And then perhaps rename ClassMediator (as Paul mentioned in the IRC but ran out of time to talk about. sorry I missed the chat bty)
...ant
On 1/6/06,
Paul Fremantle <[EMAIL PROTECTED]> wrote:
We started out making every mediator a pass through Axis2 for a specific benefit - QoS. However, we now have an alternative model to get those QoSs (the emptymessagereceiver) and I don't see the benefit. I think there is a clearer model between Axis2 and Synapse if we only call back into Axis2 when we need a specific Axis2 service.
...--On 1/6/06, ant elder < [EMAIL PROTECTED]> wrote:Is the ClassMediator really needed?
In yesterdays IRC chat there was some discussion about mediators being Axis2 services vs. the ClassMediator which calls a Java class directly without going through an Axis engine. It was said the ClassMediator is easier to use as you don't need a service xml and is faster.
Are these the only reasons for having the ClassMediator? Wouldn't having Synapse auto-deploy to Axis2 (as Glen suggested) fix the complexity problem, and if it really is so slow going through an empty AxisEngine shouldn't we try to get the Axis2 guys to fix that instead of us just not using Axis? Surely a pass through an empty engine should just be a few empty loops and a bunch of if statements which shouldn't add so much overhead?
One thing this would help with is with the addressing stuff. i don't really like having <engage-addressing-in/> explicitly in the Synapse XML. Shouldn't Synapse just know when addressing is required? If you have a Mediator the routes based on a WSA header then if the mediator was an Axis2 service the addressing stuff could be engaged automatically on the pass through the engine.
...ant
Paul Fremantle
VP/Technology, WSO2 and OASIS WS-RX TC Co-chair
http://bloglines.com/blog/paulfremantle
[EMAIL PROTECTED]
"Oxygenating the Web Service Platform", www.wso2.com
