Author: azeez Date: Wed Jan 9 08:25:28 2008 New Revision: 610437 URL: http://svn.apache.org/viewvc?rev=610437&view=rev Log: Fixing up some testcases
Added: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java Modified: webservices/axis2/trunk/java/modules/clustering/pom.xml webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/configuration/DefaultConfigurationManager.java 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/UpdateContextCommand.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/ChannelSender.java webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/TribesClusterManager.java webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/UpdateStateTestCase.java Modified: webservices/axis2/trunk/java/modules/clustering/pom.xml URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/pom.xml?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/pom.xml (original) +++ webservices/axis2/trunk/java/modules/clustering/pom.xml Wed Jan 9 08:25:28 2008 @@ -68,7 +68,11 @@ <artifactId>maven-surefire-plugin</artifactId> <inherited>true</inherited> <configuration> - <skip>true</skip> + <skip>false</skip> + <excludes> + <exclude>**/UpdateStateTest.java</exclude> + <exclude>**/ConfigurationManagerTest.java</exclude> + </excludes> <includes> <include>**/*Test.java</include> </includes> Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/configuration/DefaultConfigurationManager.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/configuration/DefaultConfigurationManager.java?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/configuration/DefaultConfigurationManager.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/configuration/DefaultConfigurationManager.java Wed Jan 9 08:25:28 2008 @@ -190,7 +190,9 @@ public void setConfigurationContext(ConfigurationContext configurationContext) { this.configurationContext = configurationContext; - listener.setConfigurationContext(configurationContext); + if (listener != null) { + listener.setConfigurationContext(configurationContext); + } } public void addParameter(Parameter param) throws AxisFault { 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?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- 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 Wed Jan 9 08:25:28 2008 @@ -161,20 +161,19 @@ Map diffs = context.getPropertyDifferences(); for (Iterator iter = diffs.keySet().iterator(); iter.hasNext();) { String key = (String) iter.next(); - Object prop = context.getPropertyNonReplicable(key); + Object value = context.getPropertyNonReplicable(key); - // First check whether it is serializable - if (prop instanceof Serializable) { + if (value instanceof Serializable || value == null) { // in the case of removing properties, the value can be null // Next check whether it matches an excluded pattern if (!isExcluded(key, context.getClass().getName(), excludedPropertyPatterns)) { if (log.isDebugEnabled()) { - log.debug("sending property =" + key + "-" + prop); + log.debug("sending property =" + key + "-" + value); } PropertyDifference diff = (PropertyDifference) diffs.get(key); - diff.setValue(prop); + diff.setValue(value); updateCmd.addProperty(diff); } } @@ -184,15 +183,15 @@ synchronized (context) { 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 + Object value = context.getPropertyNonReplicable(key); + if (value instanceof Serializable || value == null) { // in the case of removing properties, the value can be null // Next check whether it matches an excluded pattern if (!isExcluded(key, context.getClass().getName(), excludedPropertyPatterns)) { if (log.isDebugEnabled()) { - log.debug("sending property =" + key + "-" + prop); + log.debug("sending property =" + key + "-" + value); } - PropertyDifference diff = new PropertyDifference(key, prop, false); + PropertyDifference diff = new PropertyDifference(key, value, false); updateCmd.addProperty(diff); } } 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?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- 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 Wed Jan 9 08:25:28 2008 @@ -37,6 +37,7 @@ public class DefaultContextManager implements ContextManager { private ConfigurationContext configContext; + private ContextManagerListener listener; private Map parameters = new HashMap(); @@ -105,13 +106,17 @@ } public void setContextManagerListener(ContextManagerListener listener) { + this.listener = listener; if (configContext != null) { - listener.setConfigurationContext(configContext); + this.listener.setConfigurationContext(configContext); } } public void setConfigurationContext(ConfigurationContext configurationContext) { this.configContext = configurationContext; + if(listener != null){ + listener.setConfigurationContext(configContext); + } } public void setReplicationExcludePatterns(String contextType, List patterns) { Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateContextCommand.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateContextCommand.java?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateContextCommand.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/context/commands/UpdateContextCommand.java Wed Jan 9 08:25:28 2008 @@ -42,7 +42,7 @@ public void addProperty(PropertyDifference diff) { if (propertyUpdater.getProperties() == null) { propertyUpdater.setProperties(new HashMap()); - } + } propertyUpdater.addContextProperty(diff); } } 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?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- 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 Wed Jan 9 08:25:28 2008 @@ -81,12 +81,10 @@ this.configurationContext = configurationContext; this.synchronizeAllMembers = synchronizeAllMembers; - if (synchronizeAllMembers) { - Timer cleanupTimer = new Timer(); - cleanupTimer.scheduleAtFixedRate(new ReceivedMessageCleanupTask(), - TIME_TO_LIVE, - TIME_TO_LIVE); - } + Timer cleanupTimer = new Timer(); + cleanupTimer.scheduleAtFixedRate(new ReceivedMessageCleanupTask(), + TIME_TO_LIVE, + TIME_TO_LIVE); } public void setContextManager(DefaultContextManager contextManager) { @@ -138,12 +136,15 @@ && !(msg instanceof GetStateResponseCommand) && !(msg instanceof GetConfigurationResponseCommand)) { - log.warn("Received message before cluster initialization has been completed"); + log.warn("Received message " + msg + + " before cluster initialization has been completed from " + + TribesUtil.getHost(sender)); return; } if (log.isDebugEnabled()) { log.debug("Received message " + msg + " from " + TribesUtil.getHost(sender)); } + try { processMessage(msg, sender); } catch (Exception e) { @@ -159,16 +160,14 @@ String msgId = ctxCmd.getUniqueId(); // Check for duplicate messages and ignore duplicates in order to support at-most-once semantics - if (synchronizeAllMembers) { // Duplicates can be received only if an ACK & retransmit mechanism is used - if (receivedMessages.containsKey(msgId)) { - if (log.isDebugEnabled()) { - log.debug("Received duplicate message " + ctxCmd); - } - return; - } - synchronized (receivedMessages) { - receivedMessages.put(msgId, new Long(System.currentTimeMillis()));// Let's keep track of the message as well as the time at which it was first received + if (receivedMessages.containsKey(msgId)) { + if (log.isDebugEnabled()) { + log.debug("Received duplicate message " + ctxCmd); } + return; + } + synchronized (receivedMessages) { + receivedMessages.put(msgId, new Long(System.currentTimeMillis()));// Let's keep track of the message as well as the time at which it was first received } // Process the message Modified: webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java (original) +++ webservices/axis2/trunk/java/modules/clustering/src/org/apache/axis2/clustering/tribes/ChannelSender.java Wed Jan 9 08:25:28 2008 @@ -71,7 +71,6 @@ sendToMember(msg, member); } } - } catch (Exception e) { String message = "Error sending command message : " + msg + ". Reason " + e.getMessage(); 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?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- 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 Wed Jan 9 08:25:28 2008 @@ -67,6 +67,7 @@ private ConfigurationContext configurationContext; private TribesControlCommandProcessor controlCmdProcessor; private ChannelListener channelListener; + private ChannelSender channelSender; public TribesClusterManager() { parameters = new HashMap(); @@ -121,18 +122,19 @@ } } - ChannelSender sender = new ChannelSender(); - + channelSender = new ChannelSender(); channelListener = new ChannelListener(configurationContext, configurationManager, contextManager, controlCmdProcessor, - sender, + channelSender, synchronizeAllMembers()); - controlCmdProcessor.setChannelSender(sender); + controlCmdProcessor.setChannelSender(channelSender); channel = new GroupChannel(); + + // Set the IP address that will be advertised by this node String localIP = System.getProperty(ClusteringConstants.LOCAL_IP_ADDRESS); if (localIP != null) { @@ -195,7 +197,7 @@ } catch (ChannelException e) { throw new ClusteringFault("Error starting Tribes channel", e); } - sender.setChannel(channel); + channelSender.setChannel(channel); // Member[] members = channel.getMembers(); log.info("Local Tribes Member " + TribesUtil.getLocalHost(channel)); @@ -203,16 +205,16 @@ // If configuration management is enabled, get the latest config from a neighbour if (configurationManager != null) { - configurationManager.setSender(sender); - getInitializationMessage(sender, new GetConfigurationCommand()); + configurationManager.setSender(channelSender); + getInitializationMessage(channelSender, new GetConfigurationCommand()); } // If context replication is enabled, get the latest state from a neighbour if (contextManager != null) { - contextManager.setSender(sender); + contextManager.setSender(channelSender); channelListener.setContextManager(contextManager); - getInitializationMessage(sender, new GetStateCommand()); - ClusteringContextListener contextListener = new ClusteringContextListener(sender); + getInitializationMessage(channelSender, new GetStateCommand()); + ClusteringContextListener contextListener = new ClusteringContextListener(channelSender); configurationContext.addContextListener(contextListener); } configurationContext. @@ -234,6 +236,7 @@ // Keep track of members to whom we already sent an initialization command // Do not send another request to these members List sentMembersList = new ArrayList(); + sentMembersList.add(TribesUtil.getLocalHost(channel)); Member[] members = MembershipManager.getMembers(); while (members.length > 0 && configurationContext. @@ -265,10 +268,12 @@ public void setConfigurationManager(ConfigurationManager configurationManager) { this.configurationManager = (DefaultConfigurationManager) configurationManager; + this.configurationManager.setSender(channelSender); } public void setContextManager(ContextManager contextManager) { this.contextManager = (DefaultContextManager) contextManager; + this.contextManager.setSender(channelSender); } public void addParameter(Parameter param) throws AxisFault { @@ -322,6 +327,12 @@ controlCmdProcessor.setConfigurationContext(configurationContext); if (channelListener != null) { channelListener.setConfigurationContext(configurationContext); + } + if (configurationManager != null) { + configurationManager.setConfigurationContext(configurationContext); + } + if (contextManager != null) { + contextManager.setConfigurationContext(configurationContext); } } Added: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java?rev=610437&view=auto ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java (added) +++ webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java Wed Jan 9 08:25:28 2008 @@ -0,0 +1,232 @@ +/* + * Copyright 2004,2005 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.axis2.clustering; + +import junit.framework.TestCase; +import org.apache.axiom.om.util.UUIDGenerator; +import org.apache.axis2.AxisFault; +import org.apache.axis2.clustering.configuration.ConfigurationManager; +import org.apache.axis2.clustering.configuration.DefaultConfigurationManager; +import org.apache.axis2.clustering.configuration.DefaultConfigurationManagerListener; +import org.apache.axis2.clustering.context.ContextManager; +import org.apache.axis2.clustering.context.DefaultContextManager; +import org.apache.axis2.clustering.context.DefaultContextManagerListener; +import org.apache.axis2.clustering.tribes.TribesClusterManager; +import org.apache.axis2.context.ConfigurationContext; +import org.apache.axis2.context.ConfigurationContextFactory; +import org.apache.axis2.context.ServiceGroupContext; +import org.apache.axis2.description.AxisService; +import org.apache.axis2.description.AxisServiceGroup; +import org.apache.axis2.engine.AxisConfiguration; +import org.apache.axis2.transport.http.server.HttpUtils; + +/** + * + */ +public class ContextReplicationTest extends TestCase { + + private static final String TEST_SERVICE_NAME = "testService"; + + private ClusterManager clusterManager1; + private ContextManager ctxMan1; + private ConfigurationManager configMan1; + private ConfigurationContext configurationContext1; + private AxisServiceGroup serviceGroup1; + private AxisService service1; + + private ClusterManager clusterManager2; + private ContextManager ctxMan2; + private ConfigurationManager configMan2; + private ConfigurationContext configurationContext2; + private AxisServiceGroup serviceGroup2; + private AxisService service2; + + protected void setUp() throws Exception { + System.setProperty(ClusteringConstants.LOCAL_IP_ADDRESS, HttpUtils.getIpAddress()); + + // First cluster + configurationContext1 = + ConfigurationContextFactory.createDefaultConfigurationContext(); + serviceGroup1 = createAxisServiceGroup(configurationContext1); + service1 = createAxisService(serviceGroup1); + ctxMan1 = getContextManager(); + configMan1 = getConfigurationManager(); + clusterManager1 = getClusterManager(configurationContext1, ctxMan1, configMan1); + clusterManager1.init(); + System.out.println("ClusterManager-1 successfully initialized"); + + // Second cluster + configurationContext2 = + ConfigurationContextFactory.createDefaultConfigurationContext(); + serviceGroup2 = createAxisServiceGroup(configurationContext2); + service2 = createAxisService(serviceGroup2); + ctxMan2 = getContextManager(); + configMan2 = getConfigurationManager(); + clusterManager2 = getClusterManager(configurationContext2, ctxMan2, configMan2); + clusterManager2.init(); + System.out.println("ClusterManager-2 successfully initialized"); + } + + protected ClusterManager getClusterManager(ConfigurationContext configCtx, + ContextManager contextManager, + ConfigurationManager configManager) + throws AxisFault { + ClusterManager clusterManager = new TribesClusterManager(); + configCtx.getAxisConfiguration().setClusterManager(clusterManager); + + configManager. + setConfigurationManagerListener(new DefaultConfigurationManagerListener()); + clusterManager.setConfigurationManager(configManager); + + contextManager.setContextManagerListener(new DefaultContextManagerListener()); + clusterManager.setContextManager(contextManager); + + clusterManager.setConfigurationContext(configCtx); + + return clusterManager; + } + + protected AxisServiceGroup createAxisServiceGroup(ConfigurationContext configCtx) + throws AxisFault { + AxisConfiguration axisConfig = configCtx.getAxisConfiguration(); + AxisServiceGroup serviceGroup = new AxisServiceGroup(axisConfig); + axisConfig.addServiceGroup(serviceGroup); + return serviceGroup; + } + + protected AxisService createAxisService(AxisServiceGroup serviceGroup) throws AxisFault { + AxisService service = new AxisService(TEST_SERVICE_NAME); + serviceGroup.addService(service); + return service; + } + + protected ContextManager getContextManager() throws AxisFault { + ContextManager contextManager = new DefaultContextManager(); + contextManager.setContextManagerListener(new DefaultContextManagerListener()); + return contextManager; + } + + protected ConfigurationManager getConfigurationManager() throws AxisFault { + ConfigurationManager contextManager = new DefaultConfigurationManager(); + contextManager.setConfigurationManagerListener(new DefaultConfigurationManagerListener()); + return contextManager; + } + + public void testSetPropertyInConfigurationContext() throws Exception { + { + String key1 = "configCtxKey"; + String val1 = "configCtxVal1"; + configurationContext1.setProperty(key1, val1); + ctxMan1.updateContext(configurationContext1); + Thread.sleep(1000); // Give some time for the replication to take place + + String value = (String) configurationContext2.getProperty(key1); + assertEquals(val1, value); + } + + { + String key2 = "configCtxKey2"; + String val2 = "configCtxVal1"; + configurationContext2.setProperty(key2, val2); + ctxMan2.updateContext(configurationContext2); + Thread.sleep(1000); // Give some time for the replication to take place + + String value = (String) configurationContext1.getProperty(key2); + assertEquals(val2, value); + } + } + + public void testRemovePropertyFromConfigurationContext() throws Exception { + String key1 = "configCtxKey"; + String val1 = "configCtxVal1"; + + // First set the property on a cluster 1 and replicate it + { + configurationContext1.setProperty(key1, val1); + ctxMan1.updateContext(configurationContext1); + Thread.sleep(1000); // Give some time for the replication to take place + + String value = (String) configurationContext2.getProperty(key1); + assertEquals(val1, value); + } + + // Next remove this property from cluster 2, replicate it, and check that it is unavailable in cluster 1 + configurationContext2.removeProperty(key1); + ctxMan2.updateContext(configurationContext2); + Thread.sleep(1000); // Give some time for the replication to take place + + String value = (String) configurationContext1.getProperty(key1); + assertNull(configurationContext2.getProperty(key1)); + assertNull(value); + } + + public void testSetPropertyInServiceGroupContext() throws Exception { +// String sgcID = UUIDGenerator.getUUID(); + + ServiceGroupContext serviceGroupContext1 = + configurationContext1.createServiceGroupContext(serviceGroup1); + serviceGroupContext1.setId(TEST_SERVICE_NAME); + configurationContext1.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext1); + assertNotNull(serviceGroupContext1); + + ServiceGroupContext serviceGroupContext2 = + configurationContext2.createServiceGroupContext(serviceGroup2); + serviceGroupContext2.setId(TEST_SERVICE_NAME); + configurationContext2.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext2); + assertNotNull(serviceGroupContext2); + + String key1 = "sgCtxKey"; + String val1 = "sgCtxVal1"; + serviceGroupContext1.setProperty(key1, val1); + ctxMan1.updateContext(serviceGroupContext1); + + Thread.sleep(1000); + assertEquals(val1, serviceGroupContext2.getProperty(key1)); + } + + public void testSetPropertyInServiceGroupContext2() throws Exception { + String sgcID = UUIDGenerator.getUUID(); + + ServiceGroupContext serviceGroupContext1 = + configurationContext1.createServiceGroupContext(serviceGroup1); + serviceGroupContext1.setId(sgcID); + configurationContext1.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext1); + assertNotNull(serviceGroupContext1); + + ServiceGroupContext serviceGroupContext2 = + configurationContext2.createServiceGroupContext(serviceGroup2); + serviceGroupContext2.setId(sgcID); + configurationContext2.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext2); + assertNotNull(serviceGroupContext2); + + String key1 = "sgCtxKey"; + String val1 = "sgCtxVal1"; + serviceGroupContext1.setProperty(key1, val1); + ctxMan1.updateContext(serviceGroupContext1); + + Thread.sleep(1000); + assertEquals(val1, serviceGroupContext2.getProperty(key1)); + } + + protected void tearDown() throws Exception { + super.tearDown(); + clusterManager1.shutdown(); + clusterManager2.shutdown(); + } + /*public void test2() { + + }*/ +} Modified: webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/UpdateStateTestCase.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/UpdateStateTestCase.java?rev=610437&r1=610436&r2=610437&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/UpdateStateTestCase.java (original) +++ webservices/axis2/trunk/java/modules/clustering/test/org/apache/axis2/clustering/UpdateStateTestCase.java Wed Jan 9 08:25:28 2008 @@ -38,15 +38,12 @@ String sgcID = null; String key1 = "key1"; - - String key2 = "key2"; - - String key3 = "key3"; - String val1 = "val1"; + String key2 = "key2"; String val2 = "val2"; + String key3 = "key3"; String val3 = "val3"; public void setUp() throws Exception { --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]