Using the null object pattern is a bit more elegant :)
But I certainly understand the importance of performance.
As dims pointed out if a developer forgets to do the null check let them pay
for it :)
I will make this change ASAP.
Rajith
On 2/6/07, Chamikara Jayalath <[EMAIL PROTECTED]> wrote:
Hi Rajith,
Yes. This was one of the comments in my list :-)
Lets do it that way and get rid of the NullClusterManager.
Chamikara
On 2/6/07, Rajith Attapattu <[EMAIL PROTECTED]> wrote:
>
> Further more if doing an empty method is a problem then if the cluster
> tag is empty I could just make the
> axisConfig.getClusterManager() return null instead of a
> NullClusterManager.
>
> This way I could do 3 checks for null instead of 3 NOP calls.
>
> Regards,
>
> Rajith Attapattu
> Red Hat.
>
> On 2/6/07, Rajith Attapattu <[EMAIL PROTECTED]> wrote:
> >
> > OK Bill, not so fast :)
> >
> > I don't call the ClusterManager for every property Change.
> > I have a slightly modified interface, not the one chamikara provided.
> >
> > I only replicate at the end of an invocation.
> > So here are the no of calls per invocation.
> >
> > if first request, 3 calls.
> > One for Service Group ctx creation, one for service ctx creation, one
> > for stateUpdate.
> >
> > for subsequent invocations
> > only one call. State update.
> >
> > Now thats not bad.
> > I don't think just 3 NOP's at the max and 1 NOP at the minimum is that
> > much of a performance impact :)
> >
> > Regards,
> >
> > Rajith Attapattu
> > Red Hat.
> >
> > On 2/6/07, Bill Nagy <[EMAIL PROTECTED]> wrote:
> > >
> > > That's what I inferred from the interface -- any time there is a
> > > context
> > > change or a property change, you want your interface to be invoked.
> > > That's an awful lot of method invocations (even if they're no-ops)
> > > for
> > > something arguably not core to a web services runtime.
> > >
> > > -Bill
> > >
> > > On Tue, 2007-02-06 at 21:32 +0530, Chamikara Jayalath wrote:
> > > > Hi Dims,
> > > >
> > > > As this is still is its design stage final approach hs not been
> > > > decided. The current code is available in a branch so no affect on
> > > the
> > > > performance of the trunk.
> > > >
> > > > A method of the ClusterManager instance hs to be called in events
> > > such
> > > > as Context creation and removal. Currently these directly get
> > > called
> > > > from respective places of the context classes (should happen only
> > > if a
> > > > ClusterManager hs been set i.e. when clustering is enabled).
> > > >
> > > > Chamikara
> > > >
> > > >
> > > > On 2/6/07, Davanum Srinivas < [EMAIL PROTECTED]> wrote:
> > > > Chamikara,
> > > >
> > > > New notifications? like what we have already for
> > > > services/modules?
> > > >
> > > > -- dims
> > > >
> > > > On 2/6/07, Chamikara Jayalath <[EMAIL PROTECTED]>
> > > wrote:
> > > > > Hi Bill, Dims,
> > > > >
> > > > > The ClusterManager impl will be initiated with the
> > > > ConfigContext. This will
> > > > > be called in places like Context Creation and removal
> > > and
> > > > may be property
> > > > > updates (hvnt fully decided yet). When Clustering is not
> > >
> > > > present the cost
> > > > > should be reduced to a null check.
> > > > >
> > > > > Chamikara
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On 2/6/07, Davanum Srinivas <[EMAIL PROTECTED]> wrote:
> > > > > > Bill,
> > > > > >
> > > > > > from what i understand, it's in a separate maven
> > > module.
> > > > Not in
> > > > > > kernel. So you can ignore it :)
> > > > > >
> > > > > > -- dims
> > > > > >
> > > > > > On 2/6/07, Bill Nagy < [EMAIL PROTECTED] > wrote:
> > > > > > > What is the cost of this going to be for someone who
> > > > doesn't want
> > > > > > > clustering/this particular approach to
> > > clustering? I
> > > > can't infer much
> > > > > > > from the interface -- exactly which respective
> > > events
> > > > are you referring
> > > > > > > to?
> > > > > > >
> > > > > > > -Bill
> > > > > > >
> > > > > > >
> > > > > > > On Thu, 2007-02-01 at 23:16 +0530, Chamikara
> > > Jayalath
> > > > wrote:
> > > > > > > > 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 ();
> > > > > > > >
> > > > > > > > }
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > >
> > > >
> > > ---------------------------------------------------------------------
> > > > > > > To unsubscribe, e-mail:
> > > > > [EMAIL PROTECTED]
> > > > > > > For additional commands, e-mail:
> > > > [EMAIL PROTECTED]
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Davanum Srinivas :: http://wso2.org/:: Oxygen for Web
> > > > Services Developers
> > > > > >
> > > > > >
> > > > >
> > > >
> > > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail:
> > > > > [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail:
> > > > [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > Davanum Srinivas :: http://wso2.org/ :: Oxygen for Web
> > > > Services Developers
> > > >
> > > >
> > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail:
> > > [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
>