Author: azeez Date: Fri May 25 09:35:51 2007 New Revision: 541719 URL: http://svn.apache.org/viewvc?view=rev&rev=541719 Log: When a new node starts up Obtain the current state from a randomly selected member
Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceContextCommand.java webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateCommand.java webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateResponseCommand.java webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ClusterManagerTestCase.java webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ConfigurationManagerTest.java webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ManageContextTest.java webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/UpdateStateTest.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/ContextClusteringCommandFactory.java Fri May 25 09:35:51 2007 @@ -33,15 +33,24 @@ private static final Log log = LogFactory.getLog(ContextClusteringCommandFactory.class); + /** + * @param context + * @param excludedPropertyPatterns + * @param includeAllProperties True - Include all properties, + * False - Include only property differences + * @return ContextClusteringCommand + */ public static ContextClusteringCommand getUpdateCommand(AbstractContext context, - Map excludedPropertyPatterns) { + Map excludedPropertyPatterns, + boolean includeAllProperties) { ContextClusteringCommand cmd = null; if (context instanceof ConfigurationContext) { cmd = new UpdateConfigurationContextCommand(); fillProperties((UpdateContextCommand) cmd, context, - excludedPropertyPatterns); + excludedPropertyPatterns, + includeAllProperties); } else if (context instanceof ServiceGroupContext) { ServiceGroupContext sgCtx = (ServiceGroupContext) context; cmd = new UpdateServiceGroupContextCommand(); @@ -52,7 +61,8 @@ updateSgCmd.setServiceGroupContextId(sgCtx.getId()); fillProperties((UpdateContextCommand) cmd, context, - excludedPropertyPatterns); + excludedPropertyPatterns, + includeAllProperties); } else if (context instanceof ServiceContext) { ServiceContext serviceCtx = (ServiceContext) context; cmd = new UpdateServiceContextCommand(); @@ -63,7 +73,8 @@ updateServiceCmd.setServiceName(serviceCtx.getAxisService().getName()); fillProperties((UpdateContextCommand) cmd, context, - excludedPropertyPatterns); + excludedPropertyPatterns, + includeAllProperties); } if (cmd != null && ((UpdateContextCommand) cmd).isPropertiesEmpty()) { cmd = null; @@ -72,21 +83,45 @@ return cmd; } + /** + * @param updateCmd + * @param context + * @param excludedPropertyPatterns + * @param includeAllProperties True - Include all properties, + * False - Include only property differences + */ private static void fillProperties(UpdateContextCommand updateCmd, AbstractContext context, - Map excludedPropertyPatterns) { - Map diffs = context.getPropertyDifferences(); - for (Iterator iter = diffs.keySet().iterator(); iter.hasNext();) { - String key = (String) iter.next(); - Object prop = context.getProperty(key); - if (prop instanceof Serializable) { // First check whether it is serializable - - // Next check whether it matches an excluded pattern - if (!isExcluded(key, context.getClass().getName(), excludedPropertyPatterns)) { - log.debug("sending property =" + key + "-" + prop); - PropertyDifference diff = (PropertyDifference) diffs.get(key); - diff.setValue(prop); - updateCmd.addProperty(diff); + Map excludedPropertyPatterns, + boolean includeAllProperties) { + if (!includeAllProperties) { + Map diffs = context.getPropertyDifferences(); + for (Iterator iter = diffs.keySet().iterator(); iter.hasNext();) { + String key = (String) iter.next(); + Object prop = context.getPropertyNonReplicable(key); + if (prop instanceof Serializable) { // First check whether it is serializable + + // Next check whether it matches an excluded pattern + if (!isExcluded(key, context.getClass().getName(), excludedPropertyPatterns)) { + log.debug("sending property =" + key + "-" + prop); + PropertyDifference diff = (PropertyDifference) diffs.get(key); + diff.setValue(prop); + updateCmd.addProperty(diff); + } + } + } + } else { + for (Iterator iter = context.getPropertyNames(); iter.hasNext();) { + String key = (String) iter.next(); + Object prop = context.getPropertyNonReplicable(key); + if (prop instanceof Serializable) { // First check whether it is serializable + + // Next check whether it matches an excluded pattern + if (!isExcluded(key, context.getClass().getName(), excludedPropertyPatterns)) { + log.debug("sending property =" + key + "-" + prop); + PropertyDifference diff = new PropertyDifference(key, prop, false); + updateCmd.addProperty(diff); + } } } } @@ -143,12 +178,9 @@ } else if (abstractContext instanceof ServiceContext) { ServiceContext serviceCtx = (ServiceContext) abstractContext; ServiceContextCommand cmd = new CreateServiceContextCommand(); - ServiceGroupContext parent = (ServiceGroupContext) serviceCtx.getParent(); - if (parent != null) { - cmd.setServiceGroupContextId(parent.getId()); - } - //TODO: check impl - cmd.setServiceGroupName(serviceCtx.getGroupName()); + ServiceGroupContext sgCtx = (ServiceGroupContext) serviceCtx.getParent(); + cmd.setServiceGroupContextId(sgCtx.getId()); + cmd.setServiceGroupName(sgCtx.getDescription().getServiceGroupName()); cmd.setServiceName(serviceCtx.getAxisService().getName()); return cmd; } Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/DefaultContextManager.java Fri May 25 09:35:51 2007 @@ -58,7 +58,8 @@ public void updateContext(AbstractContext context) throws ClusteringFault { ContextClusteringCommand message = ContextClusteringCommandFactory.getUpdateCommand(context, - excludedReplicationPatterns); + excludedReplicationPatterns, + false); if (message != null) { processor.process(message); } @@ -105,6 +106,10 @@ public void setReplicationExcludePatterns(String contextType, List patterns) { excludedReplicationPatterns.put(contextType, patterns); + } + + public Map getReplicationExcludePatterns(){ + return excludedReplicationPatterns; } // ---------------------- Methods from ParameterInclude ---------------------------------------- Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceContextCommand.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceContextCommand.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceContextCommand.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/CreateServiceContextCommand.java Fri May 25 09:35:51 2007 @@ -38,6 +38,7 @@ } String scope = axisService.getScope(); if (sgCtx == null) { + sgCtx = new ServiceGroupContext(configurationContext, configurationContext.getAxisConfiguration(). getServiceGroup(serviceGroupName)); Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateCommand.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateCommand.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateCommand.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateCommand.java Fri May 25 09:35:51 2007 @@ -16,15 +16,78 @@ package org.apache.axis2.clustering.control; import org.apache.axis2.clustering.ClusteringFault; +import org.apache.axis2.clustering.context.ContextClusteringCommand; +import org.apache.axis2.clustering.context.ContextClusteringCommandFactory; +import org.apache.axis2.clustering.context.ContextManager; import org.apache.axis2.context.ConfigurationContext; +import org.apache.axis2.context.ServiceContext; +import org.apache.axis2.context.ServiceGroupContext; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; /** * */ public class GetStateCommand extends ControlCommand { - public void execute(ConfigurationContext configurationContext) throws ClusteringFault { + private ContextClusteringCommand[] commands; + + public void execute(ConfigurationContext configCtx) throws ClusteringFault { + //TODO: Method implementation System.err.println("####### Going to send state to Member"); + + + ContextManager contextManager = + configCtx.getAxisConfiguration().getClusterManager().getContextManager(); + if (contextManager != null) { + Map excludedPropPatterns = contextManager.getReplicationExcludePatterns(); + List cmdList = new ArrayList(); + + // Add the service group contexts, service contexts & their respective properties + for (Iterator iter = configCtx.getServiceGroupContexts().keySet().iterator(); + iter.hasNext();) { + String id = (String) iter.next(); + ServiceGroupContext sgCtx = configCtx.getServiceGroupContext(id); + cmdList.add(ContextClusteringCommandFactory.getCreateCommand(sgCtx)); + ContextClusteringCommand updateCmd = + ContextClusteringCommandFactory.getUpdateCommand(sgCtx, + excludedPropPatterns, + true); + if (updateCmd != null) { + cmdList.add(updateCmd); + } + for (Iterator iter2 = sgCtx.getServiceContexts(); iter2.hasNext();) { + ServiceContext serviceCtx = (ServiceContext) iter2.next(); + cmdList.add(ContextClusteringCommandFactory.getCreateCommand(serviceCtx)); + ContextClusteringCommand updateServiceCtxCmd = + ContextClusteringCommandFactory.getUpdateCommand(serviceCtx, + excludedPropPatterns, + true); + if (updateServiceCtxCmd != null) { + cmdList.add(updateServiceCtxCmd); + } + } + } + + ContextClusteringCommand updateCmd = + ContextClusteringCommandFactory.getUpdateCommand(configCtx, + excludedPropPatterns, + true); + if (updateCmd != null) { + cmdList.add(updateCmd); + } + if (!cmdList.isEmpty()) { + commands = (ContextClusteringCommand[]) cmdList. + toArray(new ContextClusteringCommand[cmdList.size()]); + } + } + } + + public ContextClusteringCommand[] getCommands() { + return commands; } } Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateResponseCommand.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateResponseCommand.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateResponseCommand.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/control/GetStateResponseCommand.java Fri May 25 09:35:51 2007 @@ -17,6 +17,7 @@ import org.apache.axis2.clustering.ClusteringConstants; import org.apache.axis2.clustering.ClusteringFault; +import org.apache.axis2.clustering.context.ContextClusteringCommand; import org.apache.axis2.context.ConfigurationContext; /** @@ -24,9 +25,19 @@ */ public class GetStateResponseCommand extends ControlCommand { + private ContextClusteringCommand[] commands; + public void execute(ConfigurationContext configurationContext) throws ClusteringFault { - //TODO: Method implementation configurationContext. setNonReplicableProperty(ClusteringConstants.CLUSTER_INITIALIZED, "true"); + if (commands != null) { + for (int i = 0; i < commands.length; i++) { + commands[i].execute(configurationContext); + } + } + } + + public void setCommands(ContextClusteringCommand[] commands) { + this.commands = commands; } } Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelListener.java Fri May 25 09:35:51 2007 @@ -17,13 +17,11 @@ package org.apache.axis2.clustering.tribes; import org.apache.axis2.clustering.ClusteringFault; -import org.apache.axis2.clustering.control.ControlCommand; -import org.apache.axis2.clustering.control.GetStateCommand; -import org.apache.axis2.clustering.control.GetStateResponseCommand; import org.apache.axis2.clustering.configuration.ConfigurationClusteringCommand; import org.apache.axis2.clustering.configuration.DefaultConfigurationManager; import org.apache.axis2.clustering.context.ContextClusteringCommand; import org.apache.axis2.clustering.context.DefaultContextManager; +import org.apache.axis2.clustering.control.ControlCommand; import org.apache.catalina.tribes.Member; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -33,7 +31,7 @@ public class ChannelListener implements org.apache.catalina.tribes.ChannelListener { private static final Log log = LogFactory.getLog(ChannelListener.class); - + private DefaultContextManager contextManager; private DefaultConfigurationManager configurationManager; private TribesControlCommandProcessor controlCommandProcessor; @@ -58,26 +56,31 @@ return true; } - public void messageReceived(Serializable msg, Member sender) { + public void messageReceived(final Serializable msg, final Member sender) { log.debug("Message received : " + msg); - if (msg instanceof ContextClusteringCommand) { - try { - contextManager.notifyListener((ContextClusteringCommand) msg); - } catch (ClusteringFault e) { - log.error("Could not process ContextCommand", e); - } - } else if (msg instanceof ConfigurationClusteringCommand) { - try { - configurationManager.notifyListener((ConfigurationClusteringCommand) msg); - } catch (ClusteringFault e) { - log.error("Could not process ConfigurationCommand", e); - } - } else if(msg instanceof ControlCommand){ - try { - controlCommandProcessor.process((ControlCommand) msg, sender); - } catch (ClusteringFault e) { - log.error("Could not process ControlCommand", e); + Thread th = new Thread() { + public void run() { + if (msg instanceof ContextClusteringCommand) { + try { + contextManager.notifyListener((ContextClusteringCommand) msg); + } catch (ClusteringFault e) { + log.error("Could not process ContextCommand", e); + } + } else if (msg instanceof ConfigurationClusteringCommand) { + try { + configurationManager.notifyListener((ConfigurationClusteringCommand) msg); + } catch (ClusteringFault e) { + log.error("Could not process ConfigurationCommand", e); + } + } else if (msg instanceof ControlCommand) { + try { + controlCommandProcessor.process((ControlCommand) msg, sender); + } catch (ClusteringFault e) { + log.error("Could not process ControlCommand", e); + } + } } - } + }; + th.start(); } } Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java Fri May 25 09:35:51 2007 @@ -18,7 +18,6 @@ import org.apache.axiom.om.OMElement; import org.apache.axis2.AxisFault; -import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.clustering.ClusterManager; import org.apache.axis2.clustering.ClusteringConstants; import org.apache.axis2.clustering.ClusteringFault; @@ -29,6 +28,7 @@ import org.apache.axis2.clustering.control.GetStateCommand; import org.apache.axis2.clustering.tribes.info.TransientTribesChannelInfo; import org.apache.axis2.clustering.tribes.info.TransientTribesMemberInfo; +import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.description.Parameter; import org.apache.catalina.tribes.Channel; import org.apache.catalina.tribes.ChannelException; @@ -52,7 +52,6 @@ private HashMap parameters; private ManagedChannel channel; - private TribesMembershipListener membershipListener; private ConfigurationContext configurationContext; private TribesControlCommandProcessor controlCmdProcessor; @@ -119,7 +118,7 @@ channel.addChannelListener(listener); channel.addChannelListener(channelInfo); channel.addMembershipListener(memberInfo); - membershipListener = new TribesMembershipListener(); + TribesMembershipListener membershipListener = new TribesMembershipListener(); channel.addMembershipListener(membershipListener); channel.start(Channel.DEFAULT); sender.setChannel(channel); @@ -136,15 +135,14 @@ int numberOfTries = 0; while (members.length > 0 && configurationContext. - getNonReplicableProperty(ClusteringConstants.CLUSTER_INITIALIZED) == null && - numberOfTries < 50) { // Don't keep on trying infinitely + getPropertyNonReplicable(ClusteringConstants. + CLUSTER_INITIALIZED) == null && + numberOfTries < 50){ // Don't keep on trying infinitely // While there are members and GetStateResponseCommand is not received do the following try { members = channel.getMembers(); int memberIndex = random.nextInt(members.length); - - System.err.println("###### memberIndex=" + memberIndex); sender.sendToMember(new GetStateCommand(), members[memberIndex]); System.out.println("### WAITING FOR STATE UPDATE"); Thread.sleep(200); @@ -155,8 +153,8 @@ numberOfTries ++; } configurationContext. - setNonReplicableProperty(ClusteringConstants.CLUSTER_INITIALIZED, - "true"); + setNonReplicableProperty(ClusteringConstants.CLUSTER_INITIALIZED, + "true"); } catch (ChannelException e) { String message = "Error starting Tribes channel"; throw new ClusteringFault(message, e); @@ -206,11 +204,7 @@ } public void shutdown() throws ClusteringFault { - - if (log.isDebugEnabled()) { - log.debug("Enter: TribesClusterManager::shutdown"); - } - + log.debug("Enter: TribesClusterManager::shutdown"); if (channel != null) { try { channel.stop(Channel.DEFAULT); @@ -223,10 +217,7 @@ throw new ClusteringFault(e); } } - - if (log.isDebugEnabled()) { - log.debug("Exit: TribesClusterManager::shutdown"); - } + log.debug("Exit: TribesClusterManager::shutdown"); } public void setConfigurationContext(ConfigurationContext configurationContext) { Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesControlCommandProcessor.java Fri May 25 09:35:51 2007 @@ -51,12 +51,13 @@ // (i.e. by getting the GetStateResponseCommand), this node cannot send a response // to the state requester. So we simply return. if (configurationContext. - getNonReplicableProperty(ClusteringConstants.CLUSTER_INITIALIZED) == null) { + getPropertyNonReplicable(ClusteringConstants.CLUSTER_INITIALIZED) == null) { return; } command.execute(configurationContext); - channelSender.sendToMember(new GetStateResponseCommand(), - sender); + GetStateResponseCommand getStateRespCmd = new GetStateResponseCommand(); + getStateRespCmd.setCommands(((GetStateCommand) command).getCommands()); + channelSender.sendToMember(getStateRespCmd, sender); } else { command.execute(configurationContext); } Modified: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ClusterManagerTestCase.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ClusterManagerTestCase.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ClusterManagerTestCase.java (original) +++ webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ClusterManagerTestCase.java Fri May 25 09:35:51 2007 @@ -47,7 +47,7 @@ protected AxisService service2 = null; protected String serviceName = "testService"; - protected abstract ClusterManager getClusterManager(); + protected abstract ClusterManager getClusterManager(ConfigurationContext configCtx); protected boolean skipChannelTests = false; protected TestConfigurationManagerListener configurationManagerListener; @@ -59,11 +59,11 @@ Thread.sleep(3000); - clusterManager1 = getClusterManager(); - clusterManager2 = getClusterManager(); - configurationContext1 = ConfigurationContextFactory.createDefaultConfigurationContext(); configurationContext2 = ConfigurationContextFactory.createDefaultConfigurationContext(); + + clusterManager1 = getClusterManager(configurationContext1); + clusterManager2 = getClusterManager(configurationContext2); clusterManager1.getContextManager().setConfigurationContext(configurationContext1); clusterManager2.getContextManager().setConfigurationContext(configurationContext2); Modified: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ConfigurationManagerTest.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ConfigurationManagerTest.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ConfigurationManagerTest.java (original) +++ webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ConfigurationManagerTest.java Fri May 25 09:35:51 2007 @@ -22,12 +22,14 @@ import org.apache.axis2.clustering.configuration.DefaultConfigurationManager; import org.apache.axis2.clustering.configuration.DefaultConfigurationManagerListener; import org.apache.axis2.clustering.tribes.TribesClusterManager; +import org.apache.axis2.context.ConfigurationContext; public class ConfigurationManagerTest extends org.apache.axis2.clustering.configuration.ConfigurationManagerTestCase { - protected ClusterManager getClusterManager() { + protected ClusterManager getClusterManager(ConfigurationContext configCtx) { TribesClusterManager tribesClusterManager = new TribesClusterManager(); + tribesClusterManager.setConfigurationContext(configCtx); DefaultConfigurationManager configurationManager = new DefaultConfigurationManager(); configurationManager. setConfigurationManagerListener(new DefaultConfigurationManagerListener()); Modified: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ManageContextTest.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ManageContextTest.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ManageContextTest.java (original) +++ webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/ManageContextTest.java Fri May 25 09:35:51 2007 @@ -22,11 +22,13 @@ import org.apache.axis2.clustering.configuration.DefaultConfigurationManagerListener; import org.apache.axis2.clustering.context.DefaultContextManager; import org.apache.axis2.clustering.context.DefaultContextManagerListener; +import org.apache.axis2.context.ConfigurationContext; public class ManageContextTest extends ManageContextTestCase { - protected ClusterManager getClusterManager() { + protected ClusterManager getClusterManager(ConfigurationContext configCtx) { TribesClusterManager tribesClusterManager = new TribesClusterManager(); + tribesClusterManager.setConfigurationContext(configCtx); DefaultConfigurationManager configurationManager = new DefaultConfigurationManager(); configurationManager. setConfigurationManagerListener(new DefaultConfigurationManagerListener()); Modified: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/UpdateStateTest.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/UpdateStateTest.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/UpdateStateTest.java (original) +++ webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/tribes/UpdateStateTest.java Fri May 25 09:35:51 2007 @@ -23,11 +23,14 @@ import org.apache.axis2.clustering.context.DefaultContextManagerListener; import org.apache.axis2.clustering.configuration.DefaultConfigurationManager; import org.apache.axis2.clustering.configuration.DefaultConfigurationManagerListener; +import org.apache.axis2.context.ConfigurationContext; public class UpdateStateTest extends UpdateStateTestCase { - protected ClusterManager getClusterManager() { + protected ClusterManager getClusterManager(ConfigurationContext configCtx) { TribesClusterManager tribesClusterManager = new TribesClusterManager(); + tribesClusterManager.setConfigurationContext(configCtx); + tribesClusterManager.setConfigurationContext(configurationContext1); DefaultConfigurationManager configurationManager = new DefaultConfigurationManager(); configurationManager. setConfigurationManagerListener(new DefaultConfigurationManagerListener()); Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/clustering/context/ContextManager.java Fri May 25 09:35:51 2007 @@ -22,29 +22,40 @@ import org.apache.axis2.description.ParameterInclude; import java.util.List; +import java.util.Map; public interface ContextManager extends ParameterInclude { - public void addContext(AbstractContext context) throws ClusteringFault; + void addContext(AbstractContext context) throws ClusteringFault; - public void removeContext(AbstractContext context) throws ClusteringFault; + void removeContext(AbstractContext context) throws ClusteringFault; - public void updateContext(AbstractContext context) throws ClusteringFault; + void updateContext(AbstractContext context) throws ClusteringFault; - public boolean isContextClusterable(AbstractContext context) throws ClusteringFault; + boolean isContextClusterable(AbstractContext context) throws ClusteringFault; - public void setContextManagerListener(ContextManagerListener listener); + void setContextManagerListener(ContextManagerListener listener); - public void setConfigurationContext(ConfigurationContext configurationContext); + void setConfigurationContext(ConfigurationContext configurationContext); /** * All properties in the context with type <code>contextType</code> which have * names that match the specified pattern will be excluded from replication. - * + * <p/> * Generally, we can use the context class name as the context type. * * @param contextType * @param patterns The patterns */ - public void setReplicationExcludePatterns(String contextType, List patterns); + void setReplicationExcludePatterns(String contextType, List patterns); + + /** + * Get all the excluded context property name patterns + * + * @return All the excluded pattern of all the contexts. The key of the Map is the + * the <code>contextType</code>. See [EMAIL PROTECTED] #setReplicationExcludePatterns(String,List)}. + * The values are of type [EMAIL PROTECTED] List} of [EMAIL PROTECTED] String} Objects, + * which are a collection of patterns to be excluded. + */ + Map getReplicationExcludePatterns(); } Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java?view=diff&rev=541719&r1=541718&r2=541719 ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/context/AbstractContext.java Fri May 25 09:35:51 2007 @@ -77,6 +77,9 @@ * @return Iterator over a collection of keys */ public Iterator getPropertyNames() { + if(properties == null){ + properties = new HashMap(); + } return properties.keySet().iterator(); } @@ -106,10 +109,10 @@ * @param key - if not found, will return null * @return Returns the property. */ - public Object getNonReplicableProperty(String key) { + public Object getPropertyNonReplicable(String key) { Object obj = properties == null ? null : properties.get(key); if ((obj == null) && (parent != null)) { - obj = parent.getNonReplicableProperty(key); + obj = parent.getPropertyNonReplicable(key); } return obj; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]