[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