synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeremy Boynes <jboy...@apache.org>
Subject Re: Synapse using SCA assembly model for configuration
Date Thu, 26 Jul 2007 15:31:08 GMT
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: synapse-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: synapse-dev-help@ws.apache.org


Mime
View raw message