Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 70355 invoked from network); 5 Feb 2007 05:05:28 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 Feb 2007 05:05:28 -0000 Received: (qmail 3390 invoked by uid 500); 5 Feb 2007 05:05:32 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 3055 invoked by uid 500); 5 Feb 2007 05:05:30 -0000 Mailing-List: contact axis-dev-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-dev@ws.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-dev@ws.apache.org Received: (qmail 3044 invoked by uid 99); 5 Feb 2007 05:05:30 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Feb 2007 21:05:30 -0800 X-ASF-Spam-Status: No, hits=2.3 required=10.0 tests=HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (herse.apache.org: domain of rajith77@gmail.com designates 64.233.184.227 as permitted sender) Received: from [64.233.184.227] (HELO wr-out-0506.google.com) (64.233.184.227) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 04 Feb 2007 21:05:21 -0800 Received: by wr-out-0506.google.com with SMTP id 67so1146657wri for ; Sun, 04 Feb 2007 21:05:00 -0800 (PST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=V+upDdDv55tDBjDBYXrc+728kErsohniedKsGqMaZ38Fpz2DpKRMnJbzHfHXj+xSHtcxMITWuPkyVVqKM7dSj0T7Yi4/FoZJ11iO/9f+vYQGZDIehhemrkGyVVZdoDQImljHtr1jAHjc+Lq7rRt9wLI6yfrHhHn8dIZpxYZrHCg= Received: by 10.90.98.10 with SMTP id v10mr8085499agb.1170651900601; Sun, 04 Feb 2007 21:05:00 -0800 (PST) Received: by 10.90.120.9 with HTTP; Sun, 4 Feb 2007 21:05:00 -0800 (PST) Message-ID: Date: Mon, 5 Feb 2007 00:05:00 -0500 From: "Rajith Attapattu" To: axis-dev@ws.apache.org Subject: Re: [Axis2] Adding ClusterManager code the the codebase In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_39059_13000399.1170651900563" References: <9d4ec10b0702010946q13843d0q818e6e14ffcec62e@mail.gmail.com> <9d4ec10b0702020639p25704c7ft2c938af7ac85bc61@mail.gmail.com> X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_39059_13000399.1170651900563 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Chamikara, The code is available under branches/clustering. Here are the changes I made to ClusterManager interface. Of course what I did is just a prototype so feel free to experiment and change things. public abstract void init (ConfigurationContext context); public abstract void addContext (AbstractContext context); public abstract void removeContext (AbstractContext context); public abstract void updateState (AbstractContext context); As you can the changes are where I replaced the add/remove/touch property methods with a single updateState method. I found it to be very cumbersome/expensive to intercept the property changes and keep track of them on a per occurence basis. Instead a single updateState method called at the end of the invocation provides better alternative to handle the state changes. YMMV. looking forward to your comments on the prototype. Regards, Rajith On 2/2/07, Rajith Attapattu wrote: > Yes the implementation is build on top of the cluster manager. > I changed the method signatures slightly. But it's only a prototype. > > I will not check it into the trunk, untill we run a successfull demo and everybody is comfortable. > I will put that in a branch and then you guys can also make changes. > > Regards, > > Rajith > > > > On 2/2/07, Chamikara Jayalath < chamikaramj@gmail.com> wrote: > > Rajith, > > > > What we are adding here is the interface that we agreed sometime back. So nothing prevents your implementation from working on top of that. > > > > BTW, what were the modifications that were done to the interface. > > > > Chamikara > > > > > > > > > > > > On 2/2/07, Rajith Attapattu < rajith77@gmail.com> wrote: > > > Chamikara, > > > > > > I do have half baked impl sitting on my laptop based on a slightly modified cluster manager. > > > I will soon check this into a branch and you guys can then start playing around with it. > > > > > > Sorry about this taking time, I was so occupied with the Qpid work. > > > > > > Regarda, > > > > > > Rajith > > > > > > > > > > > > On 2/1/07, Chamikara Jayalath < chamikaramj@gmail.com> wrote: > > > > Hi All, > > > > > > > > As we discussed and agreed sometime back we will be adding an abstraction layer to Axis2 to make it possible to transparently plug-in different clustering implementations. Our abstraction was named 'ClusterManager' and the interface that was proposed is given in [1] (with some slight modifications). > > > > > > > > I am hoping to go a step forward my adding this interface to the Axis2 code base. At initiation Axis2 will load a ClusterManager implementation object (if configured) and will call the methods of it whenever respective events occur. > > > > > > > > Chamikara > > > > > > > > > > > > [1] ClusterManager interface > > > > > > > > public abstract class ClusterManager { > > > > > > > > public abstract void init (ConfigurationContext context); > > > > public abstract void addContext (AbstractContext context); > > > > public abstract void removeContext (AbstractContext context); > > > > public abstract void addProperty (AbstractContext context, String propertyName, Object propertyValue); > > > > public abstract void removeProperty (AbstractContext context, String propertyName); > > > > public abstract void touchProperty (AbstractContext context, String propertyName); > > > > public abstract void commit (); > > > > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > ------=_Part_39059_13000399.1170651900563 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Chamikara,

The code is available under branches/clustering.

Here are the changes I made to ClusterManager interface. Of course what I did is just a prototype so feel free to experiment and change things.

public abstract void init (ConfigurationContext context);
public abstract void addContext (AbstractContext context);
public abstract void removeContext (AbstractContext context);

public abstract void updateState (AbstractContext context);

As you can the changes are where I replaced the add/remove/touch property methods with a single updateState method.
I found it to be very cumbersome/expensive to intercept the property changes and keep track of them on a per occurence basis.
Instead a single updateState method called at the end of the invocation provides better alternative to handle the state changes. YMMV.

looking forward to your comments on the prototype.

Regards,

Rajith

On 2/2/07, Rajith Attapattu <rajith77@gmail.com> wrote:
> Yes the implementation is build on top of the cluster manager.
> I changed the method signatures slightly. But it's only a prototype.
>
> I will not check it into the trunk, untill we run a successfull demo and everybody is comfortable.
> I will put that in a branch and then you guys can also make changes.
>
> Regards,
>
> Rajith
>
>
>
> On 2/2/07, Chamikara Jayalath < chamikaramj@gmail.com> wrote:
> > Rajith,
> >
> > What we are adding here is the interface that we agreed sometime back. So nothing prevents your implementation from working on top of that.
> >
> > BTW, what were the modifications that were done to the interface.
> >
> > Chamikara
> >
> >
> >
> >
> >
> > On 2/2/07, Rajith Attapattu < rajith77@gmail.com> wrote:
> > >  Chamikara,
> > >
> > > I do have half baked impl sitting on my laptop based on a slightly modified cluster manager.
> > > I will soon check this into a branch and you guys can then start playing around with it.
> > >
> > > Sorry about this taking time, I was so occupied with the Qpid work.
> > >
> > > Regarda,
> > >
> > > Rajith
> > >
> > >
> > >
> > > On 2/1/07, Chamikara Jayalath <   chamikaramj@gmail.com> wrote:
> > > >  Hi All,
> > > >
> > > > As we discussed and agreed sometime back we will be adding an abstraction layer to Axis2 to make it possible to transparently plug-in different clustering implementations. Our abstraction was named 'ClusterManager' and  the interface that was proposed is given in [1] (with some slight modifications).
> > > >
> > > > I am hoping to go a step forward my adding this interface to the Axis2 code base. At initiation Axis2 will load a ClusterManager implementation object (if configured) and will call the methods of it whenever respective events occur.
> > > >
> > > > Chamikara
> > > >
> > > >  
> > > > [1] ClusterManager interface
> > > >
> > > > public abstract class ClusterManager {
> > > >
> > > >     public abstract void init (ConfigurationContext context);
> > > >     public abstract void addContext (AbstractContext context);
> > > >     public abstract void removeContext (AbstractContext context);
> > > >     public abstract void addProperty (AbstractContext context, String propertyName, Object  propertyValue);
> > > >     public abstract void removeProperty (AbstractContext context, String propertyName);
> > > >     public abstract void touchProperty (AbstractContext context, String propertyName);
> > > >     public abstract void commit ();  
> > > >
> > > > }
> > > >
> > > >
> > > >  
> > >
> > >  
> >
> >  
>
>  

------=_Part_39059_13000399.1170651900563--