RE: Problem with empty load balance groups

2009-03-13 Thread Hubert, Eric
> > Two solutions would be acceptable to me:
> > a) The ESB does not start if a load balancing group is empty and output
> > the name(s) of the empty laodbalance groups. This approach might cause
> > compatibility issues with existing (mis)configurations. Also unused
> > configuration parts would cause Synapse not to start. On the other hand
> > this is "fail fast" and if we would have a schema, this configuration
> > would probably be disallowed.
> >
> > b) At runtime the problem is detected and a fault is sent to the client
> > indicating that no member of a loadbalancing group are available.
> >
> > Do you have other solutions in mind? What solution do you prefer?
> >
> I would certainly prefer option "A".. it would be easier to implement
> and also better in dealing with the issue than at runtime.


Ok, I will go this road. If you currently set log4j level to debug for synapse 
core, you already have this behaviour - even though surely not intended. ;-) 
NPE during debug output in LoadbalanceEndpoint.setAlgorithm()

Regards,
   Eric


Proposing a new extension Mediator for Synapse

2009-03-13 Thread Charith Wickramarachchi
Hi devs,

I am Purposing a JMX MBean mediator for synapse as a extension mediator .
>From that users will be able to expose(registor) there  MBeans /MXBeans as
mediators
(like in ClassMediator and SpringMediator)

The Usage i see here is as follows,

Users can put that MBean mediator in any mediation Sequence doing that
they will be able to do things like following

 1.they can put some properties that got set depending on the Message and
 use jconsole or any other custom console to monitor those in runtime.

 2. They can expose properties in there MBean that can do changes in the
 Message context (say modifications done to message in side the mediator
depend on those properties ) .so that in Run rime using a jconsole or a
custom console
 they will be able to change the Message context.

If this add value to synapse i would be glad to implement this feature.

thank you,
Charith Dhanushka Wickramarachchi
http://charithwiki.blogspot.com/


Re: svn commit: r753144 - in /synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/mediators/builtin/ core/src/main/java/org/apache/synapse/mediators/db/ core/src/main/java/org/apache/s

2009-03-13 Thread Ruwan Linton
Indika,

Why does AbstractMediator implements the ManagedLifecycle? does this means
that all the mediators have init and destroy methods?

Thanks,
Ruwan

2009/3/13 

> Author: indika
> Date: Fri Mar 13 07:16:16 2009
> New Revision: 753144
>
> URL: http://svn.apache.org/viewvc?rev=753144&view=rev
> Log:
> remove ManagedLifecycle from mediators that extends AbstractMediator as
> AbstractMediator already implements ManagedLifecycle
>
> Modified:
>
>  
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>
>  
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>
>  
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
>
>  
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
>
>  
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
>
>  
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java
>
>  
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
>
>  
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java
>
>  
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/SplitTestHelperMediator.java
>
>  
> synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/ext/ClassMediatorTestMediator.java
>
>  
> synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/spring/SpringMediator.java
>
>  
> synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
>
> Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
> URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java?rev=753144&r1=753143&r2=753144&view=diff
>
> ==
> ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
> (original)
> +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
> Fri Mar 13 07:16:16 2009
> @@ -24,7 +24,6 @@
>  import org.apache.axis2.clustering.context.Replicator;
>  import org.apache.axis2.context.ConfigurationContext;
>  import org.apache.axis2.saaj.util.SAAJUtil;
> -import org.apache.synapse.ManagedLifecycle;
>  import org.apache.synapse.MessageContext;
>  import org.apache.synapse.SynapseException;
>  import org.apache.synapse.SynapseLog;
> @@ -58,7 +57,7 @@
>  *
>  * @see org.apache.synapse.Mediator
>  */
> -public class CacheMediator extends AbstractMediator implements
> ManagedLifecycle {
> +public class CacheMediator extends AbstractMediator {
>
> private String id = null;
> private String scope = CachingConstants.SCOPE_PER_HOST;// global
>
> Modified:
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
> URL:
> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java?rev=753144&r1=753143&r2=753144&view=diff
>
> ==
> ---
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
> (original)
> +++
> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
> Fri Mar 13 07:16:16 2009
> @@ -23,15 +23,14 @@
>  import org.apache.axiom.om.OMNode;
>  import org.apache.axis2.AxisFault;
>  import org.apache.axis2.Constants;
> -import org.apache.axis2.transport.http.HTTPConstants;
> -import org.apache.axis2.description.Parameter;
>  import org.apache.axis2.addressing.AddressingConstants;
>  import org.apache.axis2.addressing.EndpointReference;
>  import org.apache.axis2.client.Options;
>  import org.apache.axis2.client.ServiceClient;
>  import org.apache.axis2.context.ConfigurationContext;
>  import org.apache.axis2.context.ConfigurationContextFactory;
> -import org.apache.synapse.ManagedLifecycle;
> +import org.apache.axis2.description.Parameter;
> +import org.apache.axis2.transport.http.HTTPConstants;
>  import org.apache.synapse.MessageContext;
>  import org.apache.synapse.SynapseException;
>  import org.apache.synapse.SynapseLog;
> @@ -51,7 +50,7 @@
>  *  
>  * 
>  */
> -public class CalloutMediator extends AbstractMediator implements
> ManagedLifecycle {
> +public class CalloutMediator extends AbstractMediator {
>
> private ServiceClient sc = null;
> private String serviceURL = null;
> @@ -179,6 +178,7 @@
> return null;
> }
>
> +@Override
>

Re: svn commit: r753144 - in /synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/mediators/builtin/ core/src/main/java/org/apache/synapse/mediators/db/ core/src/main/java/org/apache/s

2009-03-13 Thread indika kumara
Ruwan

I thought any mediators that is an abstract mediator (extend from
abstract mediator), has a manageable life. And, any independent
mediators (that is not an abstract mediator), only will have a
manageable life if he wants and he need to tell that by explicitly
implementing interface.

Thanks
Indika

On Fri, Mar 13, 2009 at 10:50 PM, Ruwan Linton  wrote:
> Indika,
>
> Why does AbstractMediator implements the ManagedLifecycle? does this means
> that all the mediators have init and destroy methods?
>
> Thanks,
> Ruwan
>
> 2009/3/13 
>>
>> Author: indika
>> Date: Fri Mar 13 07:16:16 2009
>> New Revision: 753144
>>
>> URL: http://svn.apache.org/viewvc?rev=753144&view=rev
>> Log:
>> remove ManagedLifecycle from mediators that extends AbstractMediator as
>> AbstractMediator already implements ManagedLifecycle
>>
>> Modified:
>>
>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>>
>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>>
>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
>>
>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
>>
>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
>>
>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java
>>
>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
>>
>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java
>>
>>  synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/SplitTestHelperMediator.java
>>
>>  synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/ext/ClassMediatorTestMediator.java
>>
>>  synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/spring/SpringMediator.java
>>
>>  synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
>>
>> Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>> URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java?rev=753144&r1=753143&r2=753144&view=diff
>>
>> ==
>> ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>> (original)
>> +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>> Fri Mar 13 07:16:16 2009
>> @@ -24,7 +24,6 @@
>>  import org.apache.axis2.clustering.context.Replicator;
>>  import org.apache.axis2.context.ConfigurationContext;
>>  import org.apache.axis2.saaj.util.SAAJUtil;
>> -import org.apache.synapse.ManagedLifecycle;
>>  import org.apache.synapse.MessageContext;
>>  import org.apache.synapse.SynapseException;
>>  import org.apache.synapse.SynapseLog;
>> @@ -58,7 +57,7 @@
>>  *
>>  * @see org.apache.synapse.Mediator
>>  */
>> -public class CacheMediator extends AbstractMediator implements
>> ManagedLifecycle {
>> +public class CacheMediator extends AbstractMediator {
>>
>>     private String id = null;
>>     private String scope = CachingConstants.SCOPE_PER_HOST;// global
>>
>> Modified:
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>> URL:
>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java?rev=753144&r1=753143&r2=753144&view=diff
>>
>> ==
>> ---
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>> (original)
>> +++
>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>> Fri Mar 13 07:16:16 2009
>> @@ -23,15 +23,14 @@
>>  import org.apache.axiom.om.OMNode;
>>  import org.apache.axis2.AxisFault;
>>  import org.apache.axis2.Constants;
>> -import org.apache.axis2.transport.http.HTTPConstants;
>> -import org.apache.axis2.description.Parameter;
>>  import org.apache.axis2.addressing.AddressingConstants;
>>  import org.apache.axis2.addressing.EndpointReference;
>>  import org.apache.axis2.client.Options;
>>  import org.apache.axis2.client.ServiceClient;
>>  import org.apache.axis2.context.ConfigurationContext;
>>  import org.apache.axis2.context.ConfigurationContextFactory;
>> -import org.apache.synapse.ManagedLifecycle;
>> +import org.apache.axis2.description.Parameter;
>> +import org.apache.axis2.transport.http.HTTPConstants;
>>  import org.apache.synapse.MessageContext;

Re: svn commit: r753144 - in /synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/mediators/builtin/ core/src/main/java/org/apache/synapse/mediators/db/ core/src/main/java/org/apache/s

2009-03-13 Thread indika kumara
No need to implements as default behavior is doing noting. Only need
to override if has any special things do to at life cycle event

On Fri, Mar 13, 2009 at 11:30 PM, indika kumara  wrote:
> Ruwan
>
> I thought any mediators that is an abstract mediator (extend from
> abstract mediator), has a manageable life. And, any independent
> mediators (that is not an abstract mediator), only will have a
> manageable life if he wants and he need to tell that by explicitly
> implementing interface.
>
> Thanks
> Indika
>
> On Fri, Mar 13, 2009 at 10:50 PM, Ruwan Linton  wrote:
>> Indika,
>>
>> Why does AbstractMediator implements the ManagedLifecycle? does this means
>> that all the mediators have init and destroy methods?
>>
>> Thanks,
>> Ruwan
>>
>> 2009/3/13 
>>>
>>> Author: indika
>>> Date: Fri Mar 13 07:16:16 2009
>>> New Revision: 753144
>>>
>>> URL: http://svn.apache.org/viewvc?rev=753144&view=rev
>>> Log:
>>> remove ManagedLifecycle from mediators that extends AbstractMediator as
>>> AbstractMediator already implements ManagedLifecycle
>>>
>>> Modified:
>>>
>>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/SplitTestHelperMediator.java
>>>
>>>  synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/ext/ClassMediatorTestMediator.java
>>>
>>>  synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/spring/SpringMediator.java
>>>
>>>  synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
>>>
>>> Modified:
>>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>>> URL:
>>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java?rev=753144&r1=753143&r2=753144&view=diff
>>>
>>> ==
>>> ---
>>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>>> (original)
>>> +++
>>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>>> Fri Mar 13 07:16:16 2009
>>> @@ -24,7 +24,6 @@
>>>  import org.apache.axis2.clustering.context.Replicator;
>>>  import org.apache.axis2.context.ConfigurationContext;
>>>  import org.apache.axis2.saaj.util.SAAJUtil;
>>> -import org.apache.synapse.ManagedLifecycle;
>>>  import org.apache.synapse.MessageContext;
>>>  import org.apache.synapse.SynapseException;
>>>  import org.apache.synapse.SynapseLog;
>>> @@ -58,7 +57,7 @@
>>>  *
>>>  * @see org.apache.synapse.Mediator
>>>  */
>>> -public class CacheMediator extends AbstractMediator implements
>>> ManagedLifecycle {
>>> +public class CacheMediator extends AbstractMediator {
>>>
>>>     private String id = null;
>>>     private String scope = CachingConstants.SCOPE_PER_HOST;// global
>>>
>>> Modified:
>>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>>> URL:
>>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java?rev=753144&r1=753143&r2=753144&view=diff
>>>
>>> ==
>>> ---
>>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>>> (original)
>>> +++
>>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>>> Fri Mar 13 07:16:16 2009
>>> @@ -23,15 +23,14 @@
>>>  import org.apache.axiom.om.OMNode;
>>>  import org.apache.axis2.AxisFault;
>>>  import org.apache.axis2.Constants;
>>> -import org.apache.axis2.transport.http.HTTPConstants;
>>> -import org.apache.axis2.description.Parameter;
>>>  import org.apache.axis2.addressing.AddressingConstants;
>>>  import org.apache.axis2.addressing.EndpointReference;
>>>  import org.apache.axis2.client.Options;
>>>  import org.apache.axis2.client.ServiceClient;
>>>  import org.a

Re: VFS - Synapse Memory Leak

2009-03-13 Thread Andreas Veithen
I committed the code and it will be available in the next WS-Commons
transport build. The methods are located in
org.apache.axis2.format.ElementHelper in the axis2-transport-base
module.

Andreas

On Thu, Mar 12, 2009 at 00:06, Kim Horn  wrote:
> Hello Andreas,
> This is great and really helps, have not had time to try it out but will soon.
>
> Contributing the java.io.Reader would be a great help but it will take me a 
> while to get up to speed to do the Synapse iterator.
>
> In the short term I am going to use a brute force approach that is now 
> feasible given the memory issue is resolved. Just thought of this one today. 
> Use VFS proxy to FTP file locally; so streaming helps here. A POJOCommand on 
>  to split file into another directory, stream in and out. Another 
> independent VFS proxy watches that directory and submits each file to Web 
> service. Hopefully memory will be fine. Overloading the destination may still 
> be an issue ?
>
> Kim
>
>
>
> -Original Message-
> From: Andreas Veithen [mailto:andreas.veit...@gmail.com]
> Sent: Monday, 9 March 2009 10:55 PM
> To: dev@synapse.apache.org
> Subject: Re: VFS - Synapse Memory Leak
>
> The changes I did in the VFS transport and the message builders for
> text/plain and application/octet-stream certainly don't provide an
> out-of-the-box solution for your use case, but they are the
> prerequisite.
>
> Concerning your first proposed solution (let the VFS write the content
> to a temporary file), I don't like this because it would create a
> tight coupling between the VFS transport and the mediator. A design
> goal should be that the solution will still work if the file comes
> from another source, e.g. an attachment in an MTOM or SwA message.
>
> I thing that an all-Synapse solution (2 or 3) should be possible, but
> this will require development of a custom mediator. This mediator
> would read the content, split it up (and store the chunks in memory or
> an disk) and executes a sub-sequence for each chunk. The execution of
> the sub-sequence would happen synchronously to limit the memory/disk
> space consumption (to the maximum chunk size) and to avoid flooding
> the destination service.
>
> Note that it is probably not possible to implemented the mediator
> using a script because of the problematic String handling. Also,
> Spring, POJO and class mediators don't support sub-sequences (I
> think). Therefore it should be implemented as a full-featured Java
> mediator, probably taking the existing iterate mediator as a template.
> I can contribute the required code to get the text content in the form
> of a java.io.Reader.
>
> Regards,
>
> Andreas
>
> On Mon, Mar 9, 2009 at 03:05, kimhorn  wrote:
>>
>> Although this is a good feature it may not solve the actual problem ?
>> The main first issue on my list was the memory leak.
>> However, the real problem is once I get this massive files I  have to send
>> it to a web Service that can only take it in small chunks (about 14MB) .
>> Streaming it straight out would just kill the destination Web service. It
>> would get the memory error. The text document can be split apart easily, as
>> it has independant records on each line seperated by  .
>>
>> In an earlier post; that was not responded too, I mentioned:
>>
>> "Otherwise; for large EDI files a VFS iterator Mediator that streams through
>> input file and outputs smaller
>> chunks for processing, in Synapse, may be a solution ? "
>>
>> So I had mentioned a few solutions, in prior posts, solution now are:
>>
>> 1) VFS writes straight to temporary file, then a Java mediator can process
>> the file by splitting it into many smaller files. These files then trigger
>> another VFS proxy that submits these to the final web Service.
>> The problem is is that is uses the file system (not so bad).
>> 2) A Java Mediator takes the  package and splits it up by wrapping
>> into many XML  elements that can then be acted on by a Synapse
>> Iterator. So replace the text message with many smaller XML elements.
>> Problem is that this loads whole message into memory.
>> 3) Create another Iterator in Synapse that works on Regular expression (to
>> split the text data) or actually uses a for loop approach to chop the file
>> into chunks based on the loop index value. E.g. Index = 23 means a 14K chunk
>> 23 chunks into the data.
>> 4) Using the approach proposed now - just submit the file straight (stream
>> it) to another web service that chops it up. It may return an XML document
>> with many sub elelements that allows the standard Iterator to work. Similar
>> to (2) but using another service rather than Java to split document.
>> 5) Using the approach proposed now - just submit the file straight (stream
>> it) to another web service that chops it up but calls a Synapse proxy with
>> each small packet of data that then forwards it to the final WEb Service. So
>> the Web Service iterates across the data; and not Synapse.
>>
>> Then other solutions replace Synapse wi

Re: svn commit: r753144 - in /synapse/trunk/java/modules: core/src/main/java/org/apache/synapse/mediators/builtin/ core/src/main/java/org/apache/synapse/mediators/db/ core/src/main/java/org/apache/s

2009-03-13 Thread indika kumara
Ruwan

I may wrong but state full means outcome of the current request may be
depend on what previous requests did. If it is session ware, then it
depends on previous requests on the current session. Keeping life
cycle state (initialized, destroyed), not relate with above thing. For
me, if it is good, if we can enforce that, all the mediators need to
be properly initialized and destroyed. Minimally, any mediator that is
an abstract mediator (it is a mediator with some common behaviors),
need to properly initialized and destroyed (currently it is not
there).

It is possible to fill the blank with some useful things. For example,
cache SynapseEnvironment or Axis2 Configuration Context... There are
many mediators that try to access these with in mediate method by
casting to axi2 message context, then get axi2 configuration context,
then get synapse environment,etc …. Can completely eliminate those
codes. Keeping SynapseEnvironment is never bad thing…..

Thanks
Indika

On Sat, Mar 14, 2009 at 8:07 AM, Ruwan Linton  wrote:
> I know that the implementation is blank... but isn't it conceptually wrong?
> We had most of the mediators as stateless and now it seems all of them have
> a life cycle because almost all of them are extended from AbstractMediator,
> to get the common functionality.
>
> I think a mediator with a life cycle has to implement the ManagedLifeCycle
> interface and not the AbstractMediator otherwise the design is wrong :-(
> What do others think about this??
>
> Thanks,
> Ruwan
>
> 2009/3/13 indika kumara 
>>
>> No need to implements as default behavior is doing noting. Only need
>> to override if has any special things do to at life cycle event
>>
>> On Fri, Mar 13, 2009 at 11:30 PM, indika kumara 
>> wrote:
>> > Ruwan
>> >
>> > I thought any mediators that is an abstract mediator (extend from
>> > abstract mediator), has a manageable life. And, any independent
>> > mediators (that is not an abstract mediator), only will have a
>> > manageable life if he wants and he need to tell that by explicitly
>> > implementing interface.
>> >
>> > Thanks
>> > Indika
>> >
>> > On Fri, Mar 13, 2009 at 10:50 PM, Ruwan Linton 
>> > wrote:
>> >> Indika,
>> >>
>> >> Why does AbstractMediator implements the ManagedLifecycle? does this
>> >> means
>> >> that all the mediators have init and destroy methods?
>> >>
>> >> Thanks,
>> >> Ruwan
>> >>
>> >> 2009/3/13 
>> >>>
>> >>> Author: indika
>> >>> Date: Fri Mar 13 07:16:16 2009
>> >>> New Revision: 753144
>> >>>
>> >>> URL: http://svn.apache.org/viewvc?rev=753144&view=rev
>> >>> Log:
>> >>> remove ManagedLifecycle from mediators that extends AbstractMediator
>> >>> as
>> >>> AbstractMediator already implements ManagedLifecycle
>> >>>
>> >>> Modified:
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CalloutMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/db/AbstractDBMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/aggregator/AggregateMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/CloneMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/eip/splitter/IterateMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/ext/ClassMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/filters/SwitchMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/eip/SplitTestHelperMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/core/src/test/java/org/apache/synapse/mediators/ext/ClassMediatorTestMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/spring/SpringMediator.java
>> >>>
>> >>>
>> >>>  synapse/trunk/java/modules/extensions/src/main/java/org/apache/synapse/mediators/throttle/ThrottleMediator.java
>> >>>
>> >>> Modified:
>> >>>
>> >>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>> >>> URL:
>> >>>
>> >>> http://svn.apache.org/viewvc/synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java?rev=753144&r1=753143&r2=753144&view=diff
>> >>>
>> >>>
>> >>> ==
>> >>> ---
>> >>>
>> >>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>> >>> (original)
>> >>> +++
>> >>>
>> >>> synapse/trunk/java/modules/core/src/main/java/org/apache/synapse/mediators/builtin/CacheMediator.java
>> >>> Fr