On Jul 26, 2007, at 2:54 AM, Paul Fremantle wrote:

Jeremy

I'm not clear why we need to add synapse specific XML fragments. If we
have to do that then the benefit of using SCA looks much less to me. I
guess I was hoping that we could at least configure basic synapse
scenarios without deviating from published specs.

One of the published extension points in the spec is the ability to add different implementations. That's what we're doing here - adding an extension that supports the Synapse programming model. The big advantage is that it would support the existing Synapse programming model as is, without the need to change any of the Synapse components.

We could wire it up using SCA programming models e.g. implementation.java but that would expose a lot of implementation detail to users e.g.
  <component name="StockQuoteSender">
<implementation.java class="org.apache.synapse.mediators.builtin.SendMediator"/>
  </component>

and IMO that's a bit ugly.

By using a Synapse specific implementation type we are able to get the best from both technologies: the standardized assembly from SCA, the existing mediation-oriented programming model from Synapse. IOW, users would be able to define mediation flows, bindings, policies, etc. using standard SCA assembly model and be able to reuse existing Synapse Mediators or write their own using Synapse's mediation- oriented programming model.

BTW, these extensions would only be used for mediation components, and of course the samples are all about mediations so we'd see them used a lot :-) Users could still use regular SCA implementation types to wire up their more complex mediations. For example, if we were to separate the discount calculation from the data selection we could do something like:

<composite ...>
  ...
  <component name="DiscountQuoteMediator">
    <synapse:class class="samples.mediators.DiscountQuoteMediator"/>
    <reference name="discountCalculator" target="DiscountCalculator"/>
  </component>

  <component name="DiscountCalculator">
    <implementation.java class="samples.common.DiscountCalculator"/>
    <property name="discountFactor">10</property>
    <property name="bonusFor">5</property>
  </component>
</composite>

--
Jeremy


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

Reply via email to