axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From prad...@apache.org
Subject svn commit: r613867 [2/4] - in /webservices/axis2/branches/java/jaxws21/modules: adb-codegen/src/org/apache/axis2/schema/template/ addressing/src/META-INF/ addressing/src/org/apache/axis2/handlers/addressing/ addressing/test/org/apache/axis2/handlers/a...
Date Mon, 21 Jan 2008 12:20:41 GMT
Modified: webservices/axis2/branches/java/jaxws21/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java?rev=613867&r1=613866&r2=613867&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/clustering/test/org/apache/axis2/clustering/ContextReplicationTest.java Mon Jan 21 04:20:38 2008
@@ -1,635 +1,639 @@
-/*                                                                             
- * 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.ServiceContext;
-import org.apache.axis2.context.ServiceGroupContext;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.AxisServiceGroup;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.engine.AxisConfiguration;
-import org.apache.axis2.transport.http.server.HttpUtils;
-
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.MulticastSocket;
-import java.net.ServerSocket;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Tests the replication of properties placed the ConfigurationContext, ServiceGroupContext &
- * ServiceContext
- */
-public class ContextReplicationTest extends TestCase {
-
-    private static final String TEST_SERVICE_NAME = "testService";
-
-    private static final Parameter domainParam =
-            new Parameter(ClusteringConstants.DOMAIN, "axis2.domain." + UUIDGenerator.getUUID());
-
-    // --------------- Cluster-1 ------------------------------------------------------
-    private ClusterManager clusterManager1;
-    private ContextManager ctxMan1;
-    private ConfigurationManager configMan1;
-    private ConfigurationContext configurationContext1;
-    private AxisServiceGroup serviceGroup1;
-    private AxisService service1;
-    //---------------------------------------------------------------------------------
-
-    // --------------- Cluster-2 ------------------------------------------------------
-    private ClusterManager clusterManager2;
-    private ContextManager ctxMan2;
-    private ConfigurationManager configMan2;
-    private ConfigurationContext configurationContext2;
-    private AxisServiceGroup serviceGroup2;
-    private AxisService service2;
-    //---------------------------------------------------------------------------------
-
-    private static boolean canMulticast;
-
-    private int getPort(int portStart, int retries) throws IOException {
-        InetSocketAddress addr = null;
-        ServerSocket socket = new ServerSocket();
-        int port = -1;
-        while (retries > 0) {
-            try {
-                addr = new InetSocketAddress(InetAddress.getByName(InetAddress.getLocalHost().getHostAddress()),
-                                             portStart);
-                socket.bind(addr);
-                port = portStart;
-                System.out.println("Can bind Server Socket to:" + addr);
-                socket.close();
-                break;
-            } catch (IOException x) {
-                retries--;
-                if (retries <= 0) {
-                    System.out.println("Unable to bind server socket to:" + addr +
-                                       " throwing error.");
-                    throw x;
-                }
-                portStart++;
-            }
-        }
-        return port;
-    }
-
-    private void checkMulticast() {
-
-        // Which port should we listen to
-        final int port;
-        try {
-            port = getPort(4000, 1000);
-        } catch (IOException e) {
-            e.printStackTrace();
-            canMulticast = false;
-            return;
-        }
-
-        // Which address
-        final String group = "225.4.5.6";
-
-        Thread receiver = new Thread() {
-            public void run() {
-                try {
-                    MulticastSocket s = new MulticastSocket(port);
-                    s.joinGroup(InetAddress.getByName(group));
-
-                    // Create a DatagramPacket and do a receive
-                    byte buf[] = new byte[1024];
-                    DatagramPacket pack = new DatagramPacket(buf, buf.length);
-                    s.receive(pack);
-                    System.out.println("Received data from: " + pack.getAddress().toString() +
-                                       ":" + pack.getPort() + " with length: " +
-                                       pack.getLength());
-                    s.leaveGroup(InetAddress.getByName(group));
-                    s.close();
-                    canMulticast = true;
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    canMulticast = false;
-                }
-            }
-        };
-        receiver.start();
-
-        Thread sender = new Thread() {
-            public void run() {
-                try {
-                    MulticastSocket s = new MulticastSocket();
-                    byte buf[] = new byte[10];
-                    for (int i = 0; i < buf.length; i++) {
-                        buf[i] = (byte) i;
-                    }
-                    DatagramPacket pack = new DatagramPacket(buf, buf.length,
-                                                             InetAddress.getByName(group), port);
-                    s.setTimeToLive(2);
-                    s.send(pack);
-                    System.out.println("Sent test data");
-                    s.close();
-                } catch (Exception e) {
-                    e.printStackTrace();
-                    canMulticast = false;
-                }
-            }
-        };
-        sender.start();
-
-        // Join the receiver until we can verify whether multicasting can be done
-        try {
-            receiver.join(10000);
-        } catch (InterruptedException e) {
-            e.printStackTrace();
-        }
-    }
-
-    public static void main(String[] args) {
-        new ContextReplicationTest().checkMulticast();
-    }
-
-    protected void setUp() throws Exception {
-        checkMulticast();
-        if (!canMulticast) {
-            System.out.println("[WARNING] Aborting clustering test since multicasting cannot be carried out");
-            return;
-        }
-
-        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.addParameter(domainParam);
-        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.addParameter(domainParam);
-        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 {
-        if (!canMulticast) {
-            return;
-        }
-
-        {
-            String key1 = "configCtxKey";
-            String val1 = "configCtxVal1";
-            configurationContext1.setProperty(key1, val1);
-            ctxMan1.updateContext(configurationContext1);
-            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);
-            String value = (String) configurationContext1.getProperty(key2);
-            assertEquals(val2, value);
-        }
-    }
-
-    public void testRemovePropertyFromConfigurationContext() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        String key1 = "configCtxKey";
-        String val1 = "configCtxVal1";
-
-        // First set the property on a cluster 1 and replicate it
-        {
-            configurationContext1.setProperty(key1, val1);
-            ctxMan1.updateContext(configurationContext1);
-            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);
-        String value = (String) configurationContext1.getProperty(key1);
-        assertNull(configurationContext2.getProperty(key1));
-        assertNull(value);
-    }
-
-    public void testSetPropertyInServiceGroupContext() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        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);
-        assertEquals(val1, serviceGroupContext2.getProperty(key1));
-    }
-
-    public void testRemovePropertyFromServiceGroupContext() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        // Add the property
-        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);
-        assertEquals(val1, serviceGroupContext2.getProperty(key1));
-
-        // Remove the property
-        serviceGroupContext2.removeProperty(key1);
-        assertNull(serviceGroupContext2.getProperty(key1));
-        ctxMan2.updateContext(serviceGroupContext2);
-        assertNull(serviceGroupContext1.getProperty(key1));
-    }
-
-    public void testSetPropertyInServiceGroupContext2() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        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);
-
-        assertEquals(val1, serviceGroupContext2.getProperty(key1));
-    }
-
-    public void testRemovePropertyFromServiceGroupContext2() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        // Add the property
-        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);
-
-        assertEquals(val1, serviceGroupContext2.getProperty(key1));
-
-        // Remove the property
-        serviceGroupContext2.removeProperty(key1);
-        assertNull(serviceGroupContext2.getProperty(key1));
-        ctxMan2.updateContext(serviceGroupContext2);
-        assertNull(serviceGroupContext1.getProperty(key1));
-    }
-
-    public void testSetPropertyInServiceContext() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        ServiceGroupContext serviceGroupContext1 =
-                configurationContext1.createServiceGroupContext(serviceGroup1);
-        serviceGroupContext1.setId(TEST_SERVICE_NAME);
-        ServiceContext serviceContext1 = serviceGroupContext1.getServiceContext(service1);
-        configurationContext1.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext1);
-        assertNotNull(serviceGroupContext1);
-        assertNotNull(serviceContext1);
-
-        ServiceGroupContext serviceGroupContext2 =
-                configurationContext2.createServiceGroupContext(serviceGroup2);
-        serviceGroupContext2.setId(TEST_SERVICE_NAME);
-        ServiceContext serviceContext2 = serviceGroupContext2.getServiceContext(service2);
-        configurationContext2.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext2);
-        assertNotNull(serviceGroupContext2);
-        assertNotNull(serviceContext2);
-
-        String key1 = "sgCtxKey";
-        String val1 = "sgCtxVal1";
-        serviceContext1.setProperty(key1, val1);
-        ctxMan1.updateContext(serviceContext1);
-
-        assertEquals(val1, serviceContext2.getProperty(key1));
-    }
-
-    public void testSetPropertyInServiceContext2() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        ServiceGroupContext serviceGroupContext1 =
-                configurationContext1.createServiceGroupContext(serviceGroup1);
-        serviceGroupContext1.setId(TEST_SERVICE_NAME);
-        ServiceContext serviceContext1 = serviceGroupContext1.getServiceContext(service1);
-        configurationContext1.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext1);
-        assertNotNull(serviceGroupContext1);
-        assertNotNull(serviceContext1);
-
-        ServiceGroupContext serviceGroupContext2 =
-                configurationContext2.createServiceGroupContext(serviceGroup2);
-        serviceGroupContext2.setId(TEST_SERVICE_NAME);
-        ServiceContext serviceContext2 = serviceGroupContext2.getServiceContext(service2);
-        configurationContext2.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext2);
-        assertNotNull(serviceGroupContext2);
-        assertNotNull(serviceContext2);
-
-        String key1 = "sgCtxKey";
-        String val1 = "sgCtxVal1";
-        serviceContext1.setProperty(key1, val1);
-        ctxMan1.updateContext(serviceContext1);
-
-        assertEquals(val1, serviceContext2.getProperty(key1));
-    }
-
-    public void testRemovePropertyFromServiceContext() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        // Add the property
-        ServiceGroupContext serviceGroupContext1 =
-                configurationContext1.createServiceGroupContext(serviceGroup1);
-        serviceGroupContext1.setId(TEST_SERVICE_NAME);
-        ServiceContext serviceContext1 = serviceGroupContext1.getServiceContext(service1);
-        configurationContext1.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext1);
-        assertNotNull(serviceGroupContext1);
-        assertNotNull(serviceContext1);
-
-        ServiceGroupContext serviceGroupContext2 =
-                configurationContext2.createServiceGroupContext(serviceGroup2);
-        serviceGroupContext2.setId(TEST_SERVICE_NAME);
-        ServiceContext serviceContext2 = serviceGroupContext2.getServiceContext(service2);
-        configurationContext2.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext2);
-        assertNotNull(serviceGroupContext2);
-        assertNotNull(serviceContext2);
-
-        String key1 = "sgCtxKey";
-        String val1 = "sgCtxVal1";
-        serviceContext1.setProperty(key1, val1);
-        ctxMan1.updateContext(serviceContext1);
-
-        assertEquals(val1, serviceContext2.getProperty(key1));
-
-        // Remove the property
-        serviceContext2.removeProperty(key1);
-        assertNull(serviceContext2.getProperty(key1));
-        ctxMan2.updateContext(serviceContext2);
-        assertNull(serviceContext1.getProperty(key1));
-    }
-
-    public void testRemovePropertyFromServiceContext2() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        // Add the property
-        ServiceGroupContext serviceGroupContext1 =
-                configurationContext1.createServiceGroupContext(serviceGroup1);
-        serviceGroupContext1.setId(TEST_SERVICE_NAME);
-        ServiceContext serviceContext1 = serviceGroupContext1.getServiceContext(service1);
-        configurationContext1.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext1);
-        assertNotNull(serviceGroupContext1);
-        assertNotNull(serviceContext1);
-
-        ServiceGroupContext serviceGroupContext2 =
-                configurationContext2.createServiceGroupContext(serviceGroup2);
-        serviceGroupContext2.setId(TEST_SERVICE_NAME);
-        ServiceContext serviceContext2 = serviceGroupContext2.getServiceContext(service2);
-        configurationContext2.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext2);
-        assertNotNull(serviceGroupContext2);
-        assertNotNull(serviceContext2);
-
-        String key1 = "sgCtxKey";
-        String val1 = "sgCtxVal1";
-        serviceContext1.setProperty(key1, val1);
-        ctxMan1.updateContext(serviceContext1);
-
-        assertEquals(val1, serviceContext2.getProperty(key1));
-
-        // Remove the property
-        serviceContext2.removeProperty(key1);
-        assertNull(serviceContext2.getProperty(key1));
-        ctxMan2.updateContext(serviceContext2);
-        assertNull(serviceContext1.getProperty(key1));
-    }
-
-    public void testReplicationExclusion1() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        String key1 = "local_configCtxKey";
-        String val1 = "configCtxVal1";
-        configurationContext1.setProperty(key1, val1);
-        List exclusionPatterns = new ArrayList();
-        exclusionPatterns.add("local_*");
-        ctxMan1.setReplicationExcludePatterns("defaults", exclusionPatterns);
-        ctxMan1.updateContext(configurationContext1);
-
-        String value = (String) configurationContext2.getProperty(key1);
-        assertNull(value); // The property should not have gotten replicated
-    }
-
-    public void testReplicationExclusion2() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        String key1 = "local_configCtxKey";
-        String val1 = "configCtxVal1";
-        configurationContext1.setProperty(key1, val1);
-        List exclusionPatterns = new ArrayList();
-        exclusionPatterns.add("local_*");
-        ctxMan1.setReplicationExcludePatterns("org.apache.axis2.context.ConfigurationContext",
-                                              exclusionPatterns);
-        ctxMan1.updateContext(configurationContext1);
-
-        String value = (String) configurationContext2.getProperty(key1);
-        assertNull(value); // The property should not have gotten replicated
-    }
-
-    public void testReplicationExclusion3() throws Exception {
-        if (!canMulticast) {
-            return;
-        }
-
-        String key1 = "local1_configCtxKey";
-        String val1 = "configCtxVal1";
-        configurationContext1.setProperty(key1, val1);
-
-        String key2 = "local2_configCtxKey";
-        String val2 = "configCtxVal2";
-        configurationContext1.setProperty(key2, val2);
-
-        String key3 = "local3_configCtxKey";
-        String val3 = "configCtxVal3";
-        configurationContext1.setProperty(key3, val3);
-
-        List exclusionPatterns1 = new ArrayList();
-        exclusionPatterns1.add("local1_*");
-        List exclusionPatterns2 = new ArrayList();
-        exclusionPatterns2.add("local2_*");
-        ctxMan1.setReplicationExcludePatterns("org.apache.axis2.context.ConfigurationContext",
-                                              exclusionPatterns1);
-        ctxMan1.setReplicationExcludePatterns("defaults",
-                                              exclusionPatterns2);
-        ctxMan1.updateContext(configurationContext1);
-
-        String value1 = (String) configurationContext2.getProperty(key1);
-        assertNull(value1); // The property should not have gotten replicated
-        String value2 = (String) configurationContext2.getProperty(key2);
-        assertNull(value2); // The property should not have gotten replicated
-        String value3 = (String) configurationContext2.getProperty(key3);
-        assertEquals(val3, value3); // The property should have gotten replicated
-
-    }
-
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        if (clusterManager1 != null) {
-            clusterManager1.shutdown();
-            System.out.println("------ CLuster-1 shutdown complete ------");
-        }
-        if (clusterManager2 != null) {
-            clusterManager2.shutdown();
-            System.out.println("------ CLuster-2 shutdown complete ------");
-        }
-//        MembershipManager.removeAllMembers();
-        Thread.sleep(500);
-    }
-}
+/*                                                                             
+ * 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.ServiceContext;
+import org.apache.axis2.context.ServiceGroupContext;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.AxisServiceGroup;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.transport.http.server.HttpUtils;
+
+import java.io.IOException;
+import java.net.DatagramPacket;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import java.net.MulticastSocket;
+import java.net.ServerSocket;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Tests the replication of properties placed the ConfigurationContext, ServiceGroupContext &
+ * ServiceContext
+ */
+public class ContextReplicationTest extends TestCase {
+
+    private static final String TEST_SERVICE_NAME = "testService";
+
+    private static final Parameter domainParam =
+            new Parameter(ClusteringConstants.DOMAIN, "axis2.domain." + UUIDGenerator.getUUID());
+
+    // --------------- Cluster-1 ------------------------------------------------------
+    private ClusterManager clusterManager1;
+    private ContextManager ctxMan1;
+    private ConfigurationManager configMan1;
+    private ConfigurationContext configurationContext1;
+    private AxisServiceGroup serviceGroup1;
+    private AxisService service1;
+    //---------------------------------------------------------------------------------
+
+    // --------------- Cluster-2 ------------------------------------------------------
+    private ClusterManager clusterManager2;
+    private ContextManager ctxMan2;
+    private ConfigurationManager configMan2;
+    private ConfigurationContext configurationContext2;
+    private AxisServiceGroup serviceGroup2;
+    private AxisService service2;
+    //---------------------------------------------------------------------------------
+
+    private static boolean canRunTests;
+
+    private int getPort(int portStart, int retries) throws IOException {
+        InetSocketAddress addr = null;
+        ServerSocket socket = new ServerSocket();
+        int port = -1;
+        while (retries > 0) {
+            try {
+                addr = new InetSocketAddress(InetAddress.getByName(InetAddress.getLocalHost().getHostAddress()),
+                                             portStart);
+                socket.bind(addr);
+                port = portStart;
+                System.out.println("Can bind Server Socket to:" + addr);
+                socket.close();
+                break;
+            } catch (IOException x) {
+                retries--;
+                if (retries <= 0) {
+                    System.out.println("Unable to bind server socket to:" + addr +
+                                       " throwing error.");
+                    throw x;
+                }
+                portStart++;
+            }
+        }
+        return port;
+    }
+
+    private void canRunTests() {
+        if(System.getProperty("run.clustering.tests", "false").equals("false")){
+            canRunTests = false;
+            return;
+        }
+
+        // Which port should we listen to
+        final int port;
+        try {
+            port = getPort(4000, 1000);
+        } catch (IOException e) {
+            e.printStackTrace();
+            canRunTests = false;
+            return;
+        }
+
+        // Which address
+        final String group = "225.4.5.6";
+
+        Thread receiver = new Thread() {
+            public void run() {
+                try {
+                    MulticastSocket s = new MulticastSocket(port);
+                    s.joinGroup(InetAddress.getByName(group));
+
+                    // Create a DatagramPacket and do a receive
+                    byte buf[] = new byte[1024];
+                    DatagramPacket pack = new DatagramPacket(buf, buf.length);
+                    s.receive(pack);
+                    System.out.println("Received data from: " + pack.getAddress().toString() +
+                                       ":" + pack.getPort() + " with length: " +
+                                       pack.getLength());
+                    s.leaveGroup(InetAddress.getByName(group));
+                    s.close();
+                    canRunTests = true;
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    canRunTests = false;
+                }
+            }
+        };
+        receiver.start();
+
+        Thread sender = new Thread() {
+            public void run() {
+                try {
+                    MulticastSocket s = new MulticastSocket();
+                    byte buf[] = new byte[10];
+                    for (int i = 0; i < buf.length; i++) {
+                        buf[i] = (byte) i;
+                    }
+                    DatagramPacket pack = new DatagramPacket(buf, buf.length,
+                                                             InetAddress.getByName(group), port);
+                    s.setTimeToLive(2);
+                    s.send(pack);
+                    System.out.println("Sent test data");
+                    s.close();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                    canRunTests = false;
+                }
+            }
+        };
+        sender.start();
+
+        // Join the receiver until we can verify whether multicasting can be done
+        try {
+            receiver.join(10000);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+    }
+
+    public static void main(String[] args) {
+        new ContextReplicationTest().canRunTests();
+    }
+
+    protected void setUp() throws Exception {
+        canRunTests();
+        if (!canRunTests) {
+            System.out.println("[WARNING] Aborting clustering tests");
+            return;
+        }
+
+        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.addParameter(domainParam);
+        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.addParameter(domainParam);
+        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 {
+        if (!canRunTests) {
+            return;
+        }
+
+        {
+            String key1 = "configCtxKey";
+            String val1 = "configCtxVal1";
+            configurationContext1.setProperty(key1, val1);
+            ctxMan1.updateContext(configurationContext1);
+            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);
+            String value = (String) configurationContext1.getProperty(key2);
+            assertEquals(val2, value);
+        }
+    }
+
+    public void testRemovePropertyFromConfigurationContext() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        String key1 = "configCtxKey";
+        String val1 = "configCtxVal1";
+
+        // First set the property on a cluster 1 and replicate it
+        {
+            configurationContext1.setProperty(key1, val1);
+            ctxMan1.updateContext(configurationContext1);
+            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);
+        String value = (String) configurationContext1.getProperty(key1);
+        assertNull(configurationContext2.getProperty(key1));
+        assertNull(value);
+    }
+
+    public void testSetPropertyInServiceGroupContext() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        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);
+        assertEquals(val1, serviceGroupContext2.getProperty(key1));
+    }
+
+    public void testRemovePropertyFromServiceGroupContext() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        // Add the property
+        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);
+        assertEquals(val1, serviceGroupContext2.getProperty(key1));
+
+        // Remove the property
+        serviceGroupContext2.removeProperty(key1);
+        assertNull(serviceGroupContext2.getProperty(key1));
+        ctxMan2.updateContext(serviceGroupContext2);
+        assertNull(serviceGroupContext1.getProperty(key1));
+    }
+
+    public void testSetPropertyInServiceGroupContext2() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        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);
+
+        assertEquals(val1, serviceGroupContext2.getProperty(key1));
+    }
+
+    public void testRemovePropertyFromServiceGroupContext2() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        // Add the property
+        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);
+
+        assertEquals(val1, serviceGroupContext2.getProperty(key1));
+
+        // Remove the property
+        serviceGroupContext2.removeProperty(key1);
+        assertNull(serviceGroupContext2.getProperty(key1));
+        ctxMan2.updateContext(serviceGroupContext2);
+        assertNull(serviceGroupContext1.getProperty(key1));
+    }
+
+    public void testSetPropertyInServiceContext() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        ServiceGroupContext serviceGroupContext1 =
+                configurationContext1.createServiceGroupContext(serviceGroup1);
+        serviceGroupContext1.setId(TEST_SERVICE_NAME);
+        ServiceContext serviceContext1 = serviceGroupContext1.getServiceContext(service1);
+        configurationContext1.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext1);
+        assertNotNull(serviceGroupContext1);
+        assertNotNull(serviceContext1);
+
+        ServiceGroupContext serviceGroupContext2 =
+                configurationContext2.createServiceGroupContext(serviceGroup2);
+        serviceGroupContext2.setId(TEST_SERVICE_NAME);
+        ServiceContext serviceContext2 = serviceGroupContext2.getServiceContext(service2);
+        configurationContext2.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext2);
+        assertNotNull(serviceGroupContext2);
+        assertNotNull(serviceContext2);
+
+        String key1 = "sgCtxKey";
+        String val1 = "sgCtxVal1";
+        serviceContext1.setProperty(key1, val1);
+        ctxMan1.updateContext(serviceContext1);
+
+        assertEquals(val1, serviceContext2.getProperty(key1));
+    }
+
+    public void testSetPropertyInServiceContext2() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        ServiceGroupContext serviceGroupContext1 =
+                configurationContext1.createServiceGroupContext(serviceGroup1);
+        serviceGroupContext1.setId(TEST_SERVICE_NAME);
+        ServiceContext serviceContext1 = serviceGroupContext1.getServiceContext(service1);
+        configurationContext1.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext1);
+        assertNotNull(serviceGroupContext1);
+        assertNotNull(serviceContext1);
+
+        ServiceGroupContext serviceGroupContext2 =
+                configurationContext2.createServiceGroupContext(serviceGroup2);
+        serviceGroupContext2.setId(TEST_SERVICE_NAME);
+        ServiceContext serviceContext2 = serviceGroupContext2.getServiceContext(service2);
+        configurationContext2.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext2);
+        assertNotNull(serviceGroupContext2);
+        assertNotNull(serviceContext2);
+
+        String key1 = "sgCtxKey";
+        String val1 = "sgCtxVal1";
+        serviceContext1.setProperty(key1, val1);
+        ctxMan1.updateContext(serviceContext1);
+
+        assertEquals(val1, serviceContext2.getProperty(key1));
+    }
+
+    public void testRemovePropertyFromServiceContext() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        // Add the property
+        ServiceGroupContext serviceGroupContext1 =
+                configurationContext1.createServiceGroupContext(serviceGroup1);
+        serviceGroupContext1.setId(TEST_SERVICE_NAME);
+        ServiceContext serviceContext1 = serviceGroupContext1.getServiceContext(service1);
+        configurationContext1.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext1);
+        assertNotNull(serviceGroupContext1);
+        assertNotNull(serviceContext1);
+
+        ServiceGroupContext serviceGroupContext2 =
+                configurationContext2.createServiceGroupContext(serviceGroup2);
+        serviceGroupContext2.setId(TEST_SERVICE_NAME);
+        ServiceContext serviceContext2 = serviceGroupContext2.getServiceContext(service2);
+        configurationContext2.addServiceGroupContextIntoApplicationScopeTable(serviceGroupContext2);
+        assertNotNull(serviceGroupContext2);
+        assertNotNull(serviceContext2);
+
+        String key1 = "sgCtxKey";
+        String val1 = "sgCtxVal1";
+        serviceContext1.setProperty(key1, val1);
+        ctxMan1.updateContext(serviceContext1);
+
+        assertEquals(val1, serviceContext2.getProperty(key1));
+
+        // Remove the property
+        serviceContext2.removeProperty(key1);
+        assertNull(serviceContext2.getProperty(key1));
+        ctxMan2.updateContext(serviceContext2);
+        assertNull(serviceContext1.getProperty(key1));
+    }
+
+    public void testRemovePropertyFromServiceContext2() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        // Add the property
+        ServiceGroupContext serviceGroupContext1 =
+                configurationContext1.createServiceGroupContext(serviceGroup1);
+        serviceGroupContext1.setId(TEST_SERVICE_NAME);
+        ServiceContext serviceContext1 = serviceGroupContext1.getServiceContext(service1);
+        configurationContext1.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext1);
+        assertNotNull(serviceGroupContext1);
+        assertNotNull(serviceContext1);
+
+        ServiceGroupContext serviceGroupContext2 =
+                configurationContext2.createServiceGroupContext(serviceGroup2);
+        serviceGroupContext2.setId(TEST_SERVICE_NAME);
+        ServiceContext serviceContext2 = serviceGroupContext2.getServiceContext(service2);
+        configurationContext2.addServiceGroupContextIntoSoapSessionTable(serviceGroupContext2);
+        assertNotNull(serviceGroupContext2);
+        assertNotNull(serviceContext2);
+
+        String key1 = "sgCtxKey";
+        String val1 = "sgCtxVal1";
+        serviceContext1.setProperty(key1, val1);
+        ctxMan1.updateContext(serviceContext1);
+
+        assertEquals(val1, serviceContext2.getProperty(key1));
+
+        // Remove the property
+        serviceContext2.removeProperty(key1);
+        assertNull(serviceContext2.getProperty(key1));
+        ctxMan2.updateContext(serviceContext2);
+        assertNull(serviceContext1.getProperty(key1));
+    }
+
+    public void testReplicationExclusion1() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        String key1 = "local_configCtxKey";
+        String val1 = "configCtxVal1";
+        configurationContext1.setProperty(key1, val1);
+        List exclusionPatterns = new ArrayList();
+        exclusionPatterns.add("local_*");
+        ctxMan1.setReplicationExcludePatterns("defaults", exclusionPatterns);
+        ctxMan1.updateContext(configurationContext1);
+
+        String value = (String) configurationContext2.getProperty(key1);
+        assertNull(value); // The property should not have gotten replicated
+    }
+
+    public void testReplicationExclusion2() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        String key1 = "local_configCtxKey";
+        String val1 = "configCtxVal1";
+        configurationContext1.setProperty(key1, val1);
+        List exclusionPatterns = new ArrayList();
+        exclusionPatterns.add("local_*");
+        ctxMan1.setReplicationExcludePatterns("org.apache.axis2.context.ConfigurationContext",
+                                              exclusionPatterns);
+        ctxMan1.updateContext(configurationContext1);
+
+        String value = (String) configurationContext2.getProperty(key1);
+        assertNull(value); // The property should not have gotten replicated
+    }
+
+    public void testReplicationExclusion3() throws Exception {
+        if (!canRunTests) {
+            return;
+        }
+
+        String key1 = "local1_configCtxKey";
+        String val1 = "configCtxVal1";
+        configurationContext1.setProperty(key1, val1);
+
+        String key2 = "local2_configCtxKey";
+        String val2 = "configCtxVal2";
+        configurationContext1.setProperty(key2, val2);
+
+        String key3 = "local3_configCtxKey";
+        String val3 = "configCtxVal3";
+        configurationContext1.setProperty(key3, val3);
+
+        List exclusionPatterns1 = new ArrayList();
+        exclusionPatterns1.add("local1_*");
+        List exclusionPatterns2 = new ArrayList();
+        exclusionPatterns2.add("local2_*");
+        ctxMan1.setReplicationExcludePatterns("org.apache.axis2.context.ConfigurationContext",
+                                              exclusionPatterns1);
+        ctxMan1.setReplicationExcludePatterns("defaults",
+                                              exclusionPatterns2);
+        ctxMan1.updateContext(configurationContext1);
+
+        String value1 = (String) configurationContext2.getProperty(key1);
+        assertNull(value1); // The property should not have gotten replicated
+        String value2 = (String) configurationContext2.getProperty(key2);
+        assertNull(value2); // The property should not have gotten replicated
+        String value3 = (String) configurationContext2.getProperty(key3);
+        assertEquals(val3, value3); // The property should have gotten replicated
+
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        if (clusterManager1 != null) {
+            clusterManager1.shutdown();
+            System.out.println("------ CLuster-1 shutdown complete ------");
+        }
+        if (clusterManager2 != null) {
+            clusterManager2.shutdown();
+            System.out.println("------ CLuster-2 shutdown complete ------");
+        }
+//        MembershipManager.removeAllMembers();
+        Thread.sleep(500);
+    }
+}

Modified: webservices/axis2/branches/java/jaxws21/modules/integration/test-resources/BaseDataTypes.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/integration/test-resources/BaseDataTypes.wsdl?rev=613867&r1=613866&r2=613867&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/integration/test-resources/BaseDataTypes.wsdl (original)
+++ webservices/axis2/branches/java/jaxws21/modules/integration/test-resources/BaseDataTypes.wsdl Mon Jan 21 04:20:38 2008
@@ -17,9 +17,9 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:ns0="http://tempuri.org" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://tempuri.org">
+<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:ns="http://tempuri.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://tempuri.org">
     <wsdl:types>
-        <xs:schema xmlns:ns="http://tempuri.org" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://tempuri.org">
+        <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://tempuri.org">
             <xs:element name="retBool">
                 <xs:complexType>
                     <xs:sequence>
@@ -331,228 +331,228 @@
         </xs:schema>
     </wsdl:types>
     <wsdl:message name="retUIntRequest">
-        <wsdl:part name="parameters" element="ns0:retUInt"/>
+        <wsdl:part name="parameters" element="ns:retUInt"/>
     </wsdl:message>
     <wsdl:message name="retUIntResponse">
-        <wsdl:part name="parameters" element="ns0:retUIntResponse"/>
+        <wsdl:part name="parameters" element="ns:retUIntResponse"/>
     </wsdl:message>
     <wsdl:message name="retSingleRequest">
-        <wsdl:part name="parameters" element="ns0:retSingle"/>
+        <wsdl:part name="parameters" element="ns:retSingle"/>
     </wsdl:message>
     <wsdl:message name="retSingleResponse">
-        <wsdl:part name="parameters" element="ns0:retSingleResponse"/>
+        <wsdl:part name="parameters" element="ns:retSingleResponse"/>
     </wsdl:message>
     <wsdl:message name="retTimeSpanRequest">
-        <wsdl:part name="parameters" element="ns0:retTimeSpan"/>
+        <wsdl:part name="parameters" element="ns:retTimeSpan"/>
     </wsdl:message>
     <wsdl:message name="retTimeSpanResponse">
-        <wsdl:part name="parameters" element="ns0:retTimeSpanResponse"/>
+        <wsdl:part name="parameters" element="ns:retTimeSpanResponse"/>
     </wsdl:message>
     <wsdl:message name="retDateTimeRequest">
-        <wsdl:part name="parameters" element="ns0:retDateTime"/>
+        <wsdl:part name="parameters" element="ns:retDateTime"/>
     </wsdl:message>
     <wsdl:message name="retDateTimeResponse">
-        <wsdl:part name="parameters" element="ns0:retDateTimeResponse"/>
+        <wsdl:part name="parameters" element="ns:retDateTimeResponse"/>
     </wsdl:message>
     <wsdl:message name="retGuidRequest">
-        <wsdl:part name="parameters" element="ns0:retGuid"/>
+        <wsdl:part name="parameters" element="ns:retGuid"/>
     </wsdl:message>
     <wsdl:message name="retGuidResponse">
-        <wsdl:part name="parameters" element="ns0:retGuidResponse"/>
+        <wsdl:part name="parameters" element="ns:retGuidResponse"/>
     </wsdl:message>
     <wsdl:message name="retByteArrayRequest">
-        <wsdl:part name="parameters" element="ns0:retByteArray"/>
+        <wsdl:part name="parameters" element="ns:retByteArray"/>
     </wsdl:message>
     <wsdl:message name="retByteArrayResponse">
-        <wsdl:part name="parameters" element="ns0:retByteArrayResponse"/>
+        <wsdl:part name="parameters" element="ns:retByteArrayResponse"/>
     </wsdl:message>
     <wsdl:message name="retByteRequest">
-        <wsdl:part name="parameters" element="ns0:retByte"/>
+        <wsdl:part name="parameters" element="ns:retByte"/>
     </wsdl:message>
     <wsdl:message name="retByteResponse">
-        <wsdl:part name="parameters" element="ns0:retByteResponse"/>
+        <wsdl:part name="parameters" element="ns:retByteResponse"/>
     </wsdl:message>
     <wsdl:message name="retSByteRequest">
-        <wsdl:part name="parameters" element="ns0:retSByte"/>
+        <wsdl:part name="parameters" element="ns:retSByte"/>
     </wsdl:message>
     <wsdl:message name="retSByteResponse">
-        <wsdl:part name="parameters" element="ns0:retSByteResponse"/>
+        <wsdl:part name="parameters" element="ns:retSByteResponse"/>
     </wsdl:message>
     <wsdl:message name="retShortRequest">
-        <wsdl:part name="parameters" element="ns0:retShort"/>
+        <wsdl:part name="parameters" element="ns:retShort"/>
     </wsdl:message>
     <wsdl:message name="retShortResponse">
-        <wsdl:part name="parameters" element="ns0:retShortResponse"/>
+        <wsdl:part name="parameters" element="ns:retShortResponse"/>
     </wsdl:message>
     <wsdl:message name="retUriRequest">
-        <wsdl:part name="parameters" element="ns0:retUri"/>
+        <wsdl:part name="parameters" element="ns:retUri"/>
     </wsdl:message>
     <wsdl:message name="retUriResponse">
-        <wsdl:part name="parameters" element="ns0:retUriResponse"/>
+        <wsdl:part name="parameters" element="ns:retUriResponse"/>
     </wsdl:message>
     <wsdl:message name="retQNameRequest">
-        <wsdl:part name="parameters" element="ns0:retQName"/>
+        <wsdl:part name="parameters" element="ns:retQName"/>
     </wsdl:message>
     <wsdl:message name="retQNameResponse">
-        <wsdl:part name="parameters" element="ns0:retQNameResponse"/>
+        <wsdl:part name="parameters" element="ns:retQNameResponse"/>
     </wsdl:message>
     <wsdl:message name="retFloatRequest">
-        <wsdl:part name="parameters" element="ns0:retFloat"/>
+        <wsdl:part name="parameters" element="ns:retFloat"/>
     </wsdl:message>
     <wsdl:message name="retFloatResponse">
-        <wsdl:part name="parameters" element="ns0:retFloatResponse"/>
+        <wsdl:part name="parameters" element="ns:retFloatResponse"/>
     </wsdl:message>
     <wsdl:message name="retObjectRequest">
-        <wsdl:part name="parameters" element="ns0:retObject"/>
+        <wsdl:part name="parameters" element="ns:retObject"/>
     </wsdl:message>
     <wsdl:message name="retObjectResponse">
-        <wsdl:part name="parameters" element="ns0:retObjectResponse"/>
+        <wsdl:part name="parameters" element="ns:retObjectResponse"/>
     </wsdl:message>
     <wsdl:message name="retBoolRequest">
-        <wsdl:part name="parameters" element="ns0:retBool"/>
+        <wsdl:part name="parameters" element="ns:retBool"/>
     </wsdl:message>
     <wsdl:message name="retBoolResponse">
-        <wsdl:part name="parameters" element="ns0:retBoolResponse"/>
+        <wsdl:part name="parameters" element="ns:retBoolResponse"/>
     </wsdl:message>
     <wsdl:message name="retDoubleRequest">
-        <wsdl:part name="parameters" element="ns0:retDouble"/>
+        <wsdl:part name="parameters" element="ns:retDouble"/>
     </wsdl:message>
     <wsdl:message name="retDoubleResponse">
-        <wsdl:part name="parameters" element="ns0:retDoubleResponse"/>
+        <wsdl:part name="parameters" element="ns:retDoubleResponse"/>
     </wsdl:message>
     <wsdl:message name="retDecimalRequest">
-        <wsdl:part name="parameters" element="ns0:retDecimal"/>
+        <wsdl:part name="parameters" element="ns:retDecimal"/>
     </wsdl:message>
     <wsdl:message name="retDecimalResponse">
-        <wsdl:part name="parameters" element="ns0:retDecimalResponse"/>
+        <wsdl:part name="parameters" element="ns:retDecimalResponse"/>
     </wsdl:message>
     <wsdl:message name="retLongRequest">
-        <wsdl:part name="parameters" element="ns0:retLong"/>
+        <wsdl:part name="parameters" element="ns:retLong"/>
     </wsdl:message>
     <wsdl:message name="retLongResponse">
-        <wsdl:part name="parameters" element="ns0:retLongResponse"/>
+        <wsdl:part name="parameters" element="ns:retLongResponse"/>
     </wsdl:message>
     <wsdl:message name="retIntRequest">
-        <wsdl:part name="parameters" element="ns0:retInt"/>
+        <wsdl:part name="parameters" element="ns:retInt"/>
     </wsdl:message>
     <wsdl:message name="retIntResponse">
-        <wsdl:part name="parameters" element="ns0:retIntResponse"/>
+        <wsdl:part name="parameters" element="ns:retIntResponse"/>
     </wsdl:message>
     <wsdl:message name="retCharRequest">
-        <wsdl:part name="parameters" element="ns0:retChar"/>
+        <wsdl:part name="parameters" element="ns:retChar"/>
     </wsdl:message>
     <wsdl:message name="retCharResponse">
-        <wsdl:part name="parameters" element="ns0:retCharResponse"/>
+        <wsdl:part name="parameters" element="ns:retCharResponse"/>
     </wsdl:message>
     <wsdl:message name="retStringRequest">
-        <wsdl:part name="parameters" element="ns0:retString"/>
+        <wsdl:part name="parameters" element="ns:retString"/>
     </wsdl:message>
     <wsdl:message name="retStringResponse">
-        <wsdl:part name="parameters" element="ns0:retStringResponse"/>
+        <wsdl:part name="parameters" element="ns:retStringResponse"/>
     </wsdl:message>
     <wsdl:message name="retUShortRequest">
-        <wsdl:part name="parameters" element="ns0:retUShort"/>
+        <wsdl:part name="parameters" element="ns:retUShort"/>
     </wsdl:message>
     <wsdl:message name="retUShortResponse">
-        <wsdl:part name="parameters" element="ns0:retUShortResponse"/>
+        <wsdl:part name="parameters" element="ns:retUShortResponse"/>
     </wsdl:message>
     <wsdl:message name="retULongRequest">
-        <wsdl:part name="parameters" element="ns0:retULong"/>
+        <wsdl:part name="parameters" element="ns:retULong"/>
     </wsdl:message>
     <wsdl:message name="retULongResponse">
-        <wsdl:part name="parameters" element="ns0:retULongResponse"/>
+        <wsdl:part name="parameters" element="ns:retULongResponse"/>
     </wsdl:message>
     <wsdl:portType name="BaseDataTypesPortType">
         <wsdl:operation name="retUInt">
-            <wsdl:input message="ns0:retUIntRequest" wsaw:Action="urn:retUInt"/>
-            <wsdl:output message="ns0:retUIntResponse" wsaw:Action="urn:retUIntResponse"/>
+            <wsdl:input message="ns:retUIntRequest" wsaw:Action="urn:retUInt"/>
+            <wsdl:output message="ns:retUIntResponse" wsaw:Action="urn:retUIntResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retSingle">
-            <wsdl:input message="ns0:retSingleRequest" wsaw:Action="urn:retSingle"/>
-            <wsdl:output message="ns0:retSingleResponse" wsaw:Action="urn:retSingleResponse"/>
+            <wsdl:input message="ns:retSingleRequest" wsaw:Action="urn:retSingle"/>
+            <wsdl:output message="ns:retSingleResponse" wsaw:Action="urn:retSingleResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retTimeSpan">
-            <wsdl:input message="ns0:retTimeSpanRequest" wsaw:Action="urn:retTimeSpan"/>
-            <wsdl:output message="ns0:retTimeSpanResponse" wsaw:Action="urn:retTimeSpanResponse"/>
+            <wsdl:input message="ns:retTimeSpanRequest" wsaw:Action="urn:retTimeSpan"/>
+            <wsdl:output message="ns:retTimeSpanResponse" wsaw:Action="urn:retTimeSpanResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retDateTime">
-            <wsdl:input message="ns0:retDateTimeRequest" wsaw:Action="urn:retDateTime"/>
-            <wsdl:output message="ns0:retDateTimeResponse" wsaw:Action="urn:retDateTimeResponse"/>
+            <wsdl:input message="ns:retDateTimeRequest" wsaw:Action="urn:retDateTime"/>
+            <wsdl:output message="ns:retDateTimeResponse" wsaw:Action="urn:retDateTimeResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retGuid">
-            <wsdl:input message="ns0:retGuidRequest" wsaw:Action="urn:retGuid"/>
-            <wsdl:output message="ns0:retGuidResponse" wsaw:Action="urn:retGuidResponse"/>
+            <wsdl:input message="ns:retGuidRequest" wsaw:Action="urn:retGuid"/>
+            <wsdl:output message="ns:retGuidResponse" wsaw:Action="urn:retGuidResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retByteArray">
-            <wsdl:input message="ns0:retByteArrayRequest" wsaw:Action="urn:retByteArray"/>
-            <wsdl:output message="ns0:retByteArrayResponse" wsaw:Action="urn:retByteArrayResponse"/>
+            <wsdl:input message="ns:retByteArrayRequest" wsaw:Action="urn:retByteArray"/>
+            <wsdl:output message="ns:retByteArrayResponse" wsaw:Action="urn:retByteArrayResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retByte">
-            <wsdl:input message="ns0:retByteRequest" wsaw:Action="urn:retByte"/>
-            <wsdl:output message="ns0:retByteResponse" wsaw:Action="urn:retByteResponse"/>
+            <wsdl:input message="ns:retByteRequest" wsaw:Action="urn:retByte"/>
+            <wsdl:output message="ns:retByteResponse" wsaw:Action="urn:retByteResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retSByte">
-            <wsdl:input message="ns0:retSByteRequest" wsaw:Action="urn:retSByte"/>
-            <wsdl:output message="ns0:retSByteResponse" wsaw:Action="urn:retSByteResponse"/>
+            <wsdl:input message="ns:retSByteRequest" wsaw:Action="urn:retSByte"/>
+            <wsdl:output message="ns:retSByteResponse" wsaw:Action="urn:retSByteResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retShort">
-            <wsdl:input message="ns0:retShortRequest" wsaw:Action="urn:retShort"/>
-            <wsdl:output message="ns0:retShortResponse" wsaw:Action="urn:retShortResponse"/>
+            <wsdl:input message="ns:retShortRequest" wsaw:Action="urn:retShort"/>
+            <wsdl:output message="ns:retShortResponse" wsaw:Action="urn:retShortResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retUri">
-            <wsdl:input message="ns0:retUriRequest" wsaw:Action="urn:retUri"/>
-            <wsdl:output message="ns0:retUriResponse" wsaw:Action="urn:retUriResponse"/>
+            <wsdl:input message="ns:retUriRequest" wsaw:Action="urn:retUri"/>
+            <wsdl:output message="ns:retUriResponse" wsaw:Action="urn:retUriResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retQName">
-            <wsdl:input message="ns0:retQNameRequest" wsaw:Action="urn:retQName"/>
-            <wsdl:output message="ns0:retQNameResponse" wsaw:Action="urn:retQNameResponse"/>
+            <wsdl:input message="ns:retQNameRequest" wsaw:Action="urn:retQName"/>
+            <wsdl:output message="ns:retQNameResponse" wsaw:Action="urn:retQNameResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retFloat">
-            <wsdl:input message="ns0:retFloatRequest" wsaw:Action="urn:retFloat"/>
-            <wsdl:output message="ns0:retFloatResponse" wsaw:Action="urn:retFloatResponse"/>
+            <wsdl:input message="ns:retFloatRequest" wsaw:Action="urn:retFloat"/>
+            <wsdl:output message="ns:retFloatResponse" wsaw:Action="urn:retFloatResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retObject">
-            <wsdl:input message="ns0:retObjectRequest" wsaw:Action="urn:retObject"/>
-            <wsdl:output message="ns0:retObjectResponse" wsaw:Action="urn:retObjectResponse"/>
+            <wsdl:input message="ns:retObjectRequest" wsaw:Action="urn:retObject"/>
+            <wsdl:output message="ns:retObjectResponse" wsaw:Action="urn:retObjectResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retBool">
-            <wsdl:input message="ns0:retBoolRequest" wsaw:Action="urn:retBool"/>
-            <wsdl:output message="ns0:retBoolResponse" wsaw:Action="urn:retBoolResponse"/>
+            <wsdl:input message="ns:retBoolRequest" wsaw:Action="urn:retBool"/>
+            <wsdl:output message="ns:retBoolResponse" wsaw:Action="urn:retBoolResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retDouble">
-            <wsdl:input message="ns0:retDoubleRequest" wsaw:Action="urn:retDouble"/>
-            <wsdl:output message="ns0:retDoubleResponse" wsaw:Action="urn:retDoubleResponse"/>
+            <wsdl:input message="ns:retDoubleRequest" wsaw:Action="urn:retDouble"/>
+            <wsdl:output message="ns:retDoubleResponse" wsaw:Action="urn:retDoubleResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retDecimal">
-            <wsdl:input message="ns0:retDecimalRequest" wsaw:Action="urn:retDecimal"/>
-            <wsdl:output message="ns0:retDecimalResponse" wsaw:Action="urn:retDecimalResponse"/>
+            <wsdl:input message="ns:retDecimalRequest" wsaw:Action="urn:retDecimal"/>
+            <wsdl:output message="ns:retDecimalResponse" wsaw:Action="urn:retDecimalResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retLong">
-            <wsdl:input message="ns0:retLongRequest" wsaw:Action="urn:retLong"/>
-            <wsdl:output message="ns0:retLongResponse" wsaw:Action="urn:retLongResponse"/>
+            <wsdl:input message="ns:retLongRequest" wsaw:Action="urn:retLong"/>
+            <wsdl:output message="ns:retLongResponse" wsaw:Action="urn:retLongResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retInt">
-            <wsdl:input message="ns0:retIntRequest" wsaw:Action="urn:retInt"/>
-            <wsdl:output message="ns0:retIntResponse" wsaw:Action="urn:retIntResponse"/>
+            <wsdl:input message="ns:retIntRequest" wsaw:Action="urn:retInt"/>
+            <wsdl:output message="ns:retIntResponse" wsaw:Action="urn:retIntResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retChar">
-            <wsdl:input message="ns0:retCharRequest" wsaw:Action="urn:retChar"/>
-            <wsdl:output message="ns0:retCharResponse" wsaw:Action="urn:retCharResponse"/>
+            <wsdl:input message="ns:retCharRequest" wsaw:Action="urn:retChar"/>
+            <wsdl:output message="ns:retCharResponse" wsaw:Action="urn:retCharResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retString">
-            <wsdl:input message="ns0:retStringRequest" wsaw:Action="urn:retString"/>
-            <wsdl:output message="ns0:retStringResponse" wsaw:Action="urn:retStringResponse"/>
+            <wsdl:input message="ns:retStringRequest" wsaw:Action="urn:retString"/>
+            <wsdl:output message="ns:retStringResponse" wsaw:Action="urn:retStringResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retUShort">
-            <wsdl:input message="ns0:retUShortRequest" wsaw:Action="urn:retUShort"/>
-            <wsdl:output message="ns0:retUShortResponse" wsaw:Action="urn:retUShortResponse"/>
+            <wsdl:input message="ns:retUShortRequest" wsaw:Action="urn:retUShort"/>
+            <wsdl:output message="ns:retUShortResponse" wsaw:Action="urn:retUShortResponse"/>
         </wsdl:operation>
         <wsdl:operation name="retULong">
-            <wsdl:input message="ns0:retULongRequest" wsaw:Action="urn:retULong"/>
-            <wsdl:output message="ns0:retULongResponse" wsaw:Action="urn:retULongResponse"/>
+            <wsdl:input message="ns:retULongRequest" wsaw:Action="urn:retULong"/>
+            <wsdl:output message="ns:retULongResponse" wsaw:Action="urn:retULongResponse"/>
         </wsdl:operation>
     </wsdl:portType>
-    <wsdl:binding name="BaseDataTypesSOAP11Binding" type="ns0:BaseDataTypesPortType">
+    <wsdl:binding name="BaseDataTypesSOAP11Binding" type="ns:BaseDataTypesPortType">
         <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
         <wsdl:operation name="retUInt">
             <soap:operation soapAction="urn:retUInt" style="document"/>
@@ -753,7 +753,7 @@
             </wsdl:output>
         </wsdl:operation>
     </wsdl:binding>
-    <wsdl:binding name="BaseDataTypesSOAP12Binding" type="ns0:BaseDataTypesPortType">
+    <wsdl:binding name="BaseDataTypesSOAP12Binding" type="ns:BaseDataTypesPortType">
         <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
         <wsdl:operation name="retUInt">
             <soap12:operation soapAction="urn:retUInt" style="document"/>
@@ -954,7 +954,7 @@
             </wsdl:output>
         </wsdl:operation>
     </wsdl:binding>
-    <wsdl:binding name="BaseDataTypesHttpBinding" type="ns0:BaseDataTypesPortType">
+    <wsdl:binding name="BaseDataTypesHttpBinding" type="ns:BaseDataTypesPortType">
         <http:binding verb="POST"/>
         <wsdl:operation name="retUInt">
             <http:operation location="BaseDataTypes/retUInt"/>
@@ -1156,15 +1156,14 @@
         </wsdl:operation>
     </wsdl:binding>
     <wsdl:service name="BaseDataTypes">
-        <wsdl:port name="BaseDataTypesSOAP11port_http" binding="ns0:BaseDataTypesSOAP11Binding">
+        <wsdl:port name="BaseDataTypesSOAP11port_http" binding="ns:BaseDataTypesSOAP11Binding">
             <soap:address location="http://localhost:8080/axis2/services/BaseDataTypes"/>
         </wsdl:port>
-        <wsdl:port name="BaseDataTypesSOAP12port_http" binding="ns0:BaseDataTypesSOAP12Binding">
+        <wsdl:port name="BaseDataTypesSOAP12port_http" binding="ns:BaseDataTypesSOAP12Binding">
             <soap12:address location="http://localhost:8080/axis2/services/BaseDataTypes"/>
         </wsdl:port>
-        <wsdl:port name="BaseDataTypesHttpport" binding="ns0:BaseDataTypesHttpBinding">
+        <wsdl:port name="BaseDataTypesHttpport" binding="ns:BaseDataTypesHttpBinding">
             <http:address location="http://localhost:8080/axis2/services/BaseDataTypes"/>
         </wsdl:port>
     </wsdl:service>
 </wsdl:definitions>
-

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws/pom.xml?rev=613867&r1=613866&r2=613867&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws/pom.xml (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws/pom.xml Mon Jan 21 04:20:38 2008
@@ -149,6 +149,8 @@
 				<artifactId>maven-compiler-plugin</artifactId>
 				<inherited>true</inherited>
 				<configuration>
+                    <compilerArgument>-Xbootclasspath/p:${basedir}/../jaxws-api/target/classes${path.separator}${basedir}/../jws-api/target/classes</compilerArgument>
+                    <compilerVersion>1.5</compilerVersion>
 					<source>1.5</source>
 					<target>1.5</target>
 				</configuration>
@@ -852,7 +854,7 @@
 				<configuration>
 					<skip>false</skip>
 					<forkMode>once</forkMode>
-					<argLine>-Xms256m -Xmx512m -Djava.endorsed.dirs=${project.build.directory}/../../saaj-api/target/ </argLine>
+					<argLine>-Xms256m -Xmx512m -Djava.endorsed.dirs=${project.build.directory}/../../saaj-api/target/${path.separator}${basedir}/../jaxws-api/target/classes${basedir}/../jws-api/target/classes </argLine>
 					<!-- Enable the next 2 lines if you want to attach a debugger
                     <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006</argLine>-->
 					<includes>

Modified: webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java?rev=613867&r1=613866&r2=613867&view=diff
==============================================================================
--- webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java (original)
+++ webservices/axis2/branches/java/jaxws21/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java Mon Jan 21 04:20:38 2008
@@ -240,7 +240,7 @@
     	}
         EndpointDescription endpointDesc =
                 DescriptionFactory.updateEndpoint(serviceDescription, null, portName,
-                                                  DescriptionFactory.UpdateType.ADD_PORT);
+                                                  DescriptionFactory.UpdateType.ADD_PORT, this);
         // TODO: Need to set endpointAddress and set or check bindingId on the EndpointDesc
         endpointDesc.setEndpointAddress(endpointAddress);
         endpointDesc.setClientBindingID(bindingId);
@@ -290,7 +290,8 @@
         EndpointDescription endpointDesc =
                 DescriptionFactory.updateEndpoint(serviceDescription, null, axis2EPR,
                                                   addressingNamespace,
-                                                  DescriptionFactory.UpdateType.CREATE_DISPATCH);
+                                                  DescriptionFactory.UpdateType.CREATE_DISPATCH,
+                                                  this);
         if (endpointDesc == null) {
             //TODO NLS enable.
             throw ExceptionFactory.makeWebServiceException("Unable to generate an endpoint description for endpoint reference " + jaxwsEPR);
@@ -335,7 +336,8 @@
         EndpointDescription endpointDesc =
                 DescriptionFactory.updateEndpoint(serviceDescription, null, axis2EPR,
                                                   addressingNamespace,
-                                                  DescriptionFactory.UpdateType.CREATE_DISPATCH);
+                                                  DescriptionFactory.UpdateType.CREATE_DISPATCH,
+                                                  this);
         if (endpointDesc == null) {
             //TODO NLS enable.
             throw ExceptionFactory.makeWebServiceException("Unable to generate an endpoint description for endpoint reference " + jaxwsEPR);
@@ -370,8 +372,12 @@
         }
 
         EndpointDescription endpointDesc =
-                DescriptionFactory.updateEndpoint(serviceDescription, null, portName,
-                                                  DescriptionFactory.UpdateType.CREATE_DISPATCH);
+                DescriptionFactory.updateEndpoint(serviceDescription, 
+                								  null, 
+                                                  portName,
+                                                  DescriptionFactory.UpdateType.CREATE_DISPATCH,
+                                                  this);
+
         if (endpointDesc == null) {
             throw ExceptionFactory.makeWebServiceException(
                     Messages.getMessage("createDispatchFail2", portName.toString()));
@@ -401,8 +407,12 @@
         }
 
         EndpointDescription endpointDesc =
-                DescriptionFactory.updateEndpoint(serviceDescription, null, portName,
-                                                  DescriptionFactory.UpdateType.CREATE_DISPATCH);
+                DescriptionFactory.updateEndpoint(serviceDescription, 
+                								  null, 
+                                                  portName,
+                                                  DescriptionFactory.UpdateType.CREATE_DISPATCH,
+                                                  this);
+
         if (endpointDesc == null) {
             throw ExceptionFactory.makeWebServiceException(
                     Messages.getMessage("createDispatchFail2", portName.toString()));
@@ -577,7 +587,7 @@
     * @see javax.xml.ws.spi.ServiceDelegate#getPorts()
     */
     public Iterator<QName> getPorts() {
-        return getServiceDescription().getPorts().iterator();
+        return getServiceDescription().getPorts(this).iterator();
     }
 
     /*
@@ -632,7 +642,7 @@
      * 
      */
     public ServiceClient getServiceClient(QName portQName) throws WebServiceException {
-        return serviceDescription.getServiceClient(portQName);
+        return serviceDescription.getServiceClient(portQName, this);
     }
     
     public <T> T getPort(org.apache.axis2.addressing.EndpointReference axis2EPR, String addressingNamespace, Class<T> sei, WebServiceFeature... features) {



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org


Mime
View raw message