/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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.tuscany.sca.endpoint.hazelcast; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.List; import junit.framework.Assert; import org.junit.Ignore; import org.junit.Test; import com.hazelcast.config.Config; import com.hazelcast.config.TcpIpConfig; import com.hazelcast.config.XmlConfigBuilder; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.IMap; import com.hazelcast.nio.Address; @Ignore public class RegistryTestCase { @Test public void test1() throws UnknownHostException { HazelcastInstance h1 = create("54327", 9001); IMap<Object, Object> h1map = h1.getMap("mymap"); h1map.put("key1", "bla1"); Assert.assertEquals("bla1", h1map.get("key1")); HazelcastInstance h2 = create("false", 9002, 9001); IMap<Object, Object> h2map = h2.getMap("mymap"); Assert.assertEquals("bla1", h2map.get("key1")); HazelcastInstance h3 = create("false", 9003, 9002); IMap<Object, Object> h3map = h3.getMap("mymap"); Assert.assertEquals("bla1", h3map.get("key1")); h3map.put("k3", "v3"); h2map.put("k2", "v2"); Assert.assertEquals("v2", h1map.get("k2")); Assert.assertEquals("v3", h1map.get("k3")); Assert.assertEquals("v2", h2map.get("k2")); Assert.assertEquals("v3", h2map.get("k3")); Assert.assertEquals("v2", h3map.get("k2")); Assert.assertEquals("v3", h3map.get("k3")); HazelcastInstance h4 = create("54328", 9004, 9001); IMap<Object, Object> h4map = h4.getMap("mymap"); // Assert.assertNull(h4map.get("k2")); // Assert.assertNull(h4map.get("k3")); Assert.assertEquals("v2", h4map.get("k2")); Assert.assertEquals("v3", h4map.get("k3")); // HazelcastInstance h5 = create("false", 9005, 9003, 9004); HazelcastInstance h5 = create("54328", 9005); // Assert.assertEquals("v2", h4map.get("k2")); // Assert.assertEquals("v3", h4map.get("k3")); IMap<Object, Object> h5map = h5.getMap("mymap"); Assert.assertEquals("v2", h5map.get("k2")); Assert.assertEquals("v3", h5map.get("k3")); h1.shutdown(); Assert.assertEquals("v2", h2map.get("k2")); Assert.assertEquals("v3", h2map.get("k3")); Assert.assertEquals("v2", h3map.get("k2")); Assert.assertEquals("v3", h3map.get("k3")); Assert.assertEquals("v2", h4map.get("k2")); Assert.assertEquals("v3", h4map.get("k3")); h3map.put("key1a", "bla1a"); Assert.assertEquals("bla1a", h2map.get("key1a")); Assert.assertEquals("bla1a", h3map.get("key1a")); Assert.assertEquals("bla1a", h4map.get("key1a")); // HazelcastInstance h4 = create(true, 9004, 9003); // HazelcastInstance h5 = create(true, 9005); // IMap<Object, Object> h5map = h5.getMap("mymap"); // Assert.assertEquals("bla1", h5map.get("key1")); // HazelcastInstance h6 = create(false, 9006, 9005); // IMap<Object, Object> h6map = h6.getMap("mymap"); // Assert.assertEquals("bla1", h6map.get("key1")); } private HazelcastInstance create(String multicast, int listenPort, int... connectPorts) throws UnknownHostException { Config config = new XmlConfigBuilder().build(); config.setPort(listenPort); config.setPortAutoIncrement(false); // declare the interface Hazelcast should bind to config.getNetworkConfig().getInterfaces().clear(); config.getNetworkConfig().getInterfaces().addInterface(InetAddress.getLocalHost().getHostAddress()); config.getNetworkConfig().getInterfaces().setEnabled(true); if ("false".equals(multicast)) { config.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false); } else { config.getNetworkConfig().getJoin().getMulticastConfig().setMulticastPort(Integer.parseInt(multicast)); } if (connectPorts.length > 0) { TcpIpConfig tcpconfig = config.getNetworkConfig().getJoin().getTcpIpConfig(); tcpconfig.setEnabled(true); List<Address> lsMembers = tcpconfig.getAddresses(); lsMembers.clear(); for (int p : connectPorts) { lsMembers.add(new Address(InetAddress.getLocalHost(), p)); } } return Hazelcast.newHazelcastInstance(config); } }