[Added the prefix]

---------- Forwarded message ----------
From: Afkham Azeez <[EMAIL PROTECTED]>
Date: Mar 23, 2007 11:49 AM
Subject: Re: Introducing ConfigurationContextFactory.getConfigurationContext
()
To: Apache AXIS C Developers List <axis-c-dev@ws.apache.org>

Sorry. This was intended for the Axis2 Java Dev list.

-- Azeez

On 3/23/07, Afkham Azeez <[EMAIL PROTECTED] > wrote:

I'm currently implementing the Configuration management portion of Axis2
clustering. This allows us to switch to a new configuration, without
restarting Axis2. However, I discovered that  there are pointers from many
classes to the ConfigurationContext, hence switching to a new
ConfigurationContext & AxisConfiguration is messy.

Therefore I propose that we cache the ConfigurationContext instance in
ConfigurationContextFactory. I am introducing the following to the
ConfigurationContextFactory:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

    /**
     * The cached instance of the ConfigurationContext
     *
     * Other objects should not hold referencs to the
ConfigurationContext, and should ALWAYS
     * get ConfigurationContext from this factory. This is to ensure that
the ConfigurationContext
     * can be seamlessly switched.
     */
    private static ConfigurationContext configurationContext;

    /**
     * Return the cached ConfigurationContext instance
     *
     * @return The cached ConfigurationContext instance
     */
    public static ConfigurationContext getConfigurationContext() {
        return configurationContext;
    }
---------------------------------------------------------------------------------------------------------------------------------------------------------------------


So, if someone calls a createConfigurationContext method on this factory,
the old configurationContext instance will be replaced with the new one. Any
object which wishes to get hold of the ConfigurationContext SHOULD call
ConfigurationContextFactory.getConfigurationContext(), and should never
hold a pointer to the ConfigurationContext. This will ensure that when the
ConfigurationContext is changed, all objects in the system will use the
correct ConfigurationContext object, and that the old object will get
garbage collected.

What do you think about this approach?

--
Thanks
Afkham Azeez

http://www.wso2.org
GPG Fingerprint: 643F C2AF EB78 F886 40C9  B2A2 4AE2 C887 665E 0760




--
Thanks
Afkham Azeez

http://www.wso2.org
GPG Fingerprint: 643F C2AF EB78 F886 40C9  B2A2 4AE2 C887 665E 0760

Reply via email to