Esempio n. 1
0
 @Test
 public void testCustomQuorumFunctionIsPresent() throws Exception {
   Config config = new Config();
   QuorumConfig quorumConfig = new QuorumConfig();
   String quorumName = randomString();
   quorumConfig.setName(quorumName);
   quorumConfig.setEnabled(true);
   quorumConfig.setQuorumFunctionImplementation(
       new QuorumFunction() {
         @Override
         public boolean apply(Collection<Member> members) {
           return false;
         }
       });
   config.addQuorumConfig(quorumConfig);
   String mapName = randomMapName();
   MapConfig mapConfig = new MapConfig(mapName);
   mapConfig.setQuorumName(quorumName);
   config.addMapConfig(mapConfig);
   HazelcastInstance hazelcastInstance = createHazelcastInstance(config);
   IMap<Object, Object> map = hazelcastInstance.getMap(mapName);
   try {
     map.put("1", "1");
     fail();
   } catch (Exception e) {
   }
   Quorum quorum = hazelcastInstance.getQuorumService().getQuorum(quorumName);
   assertFalse(quorum.isPresent());
 }
Esempio n. 2
0
 @Test(expected = QuorumException.class)
 public void testCustomQuorumFunctionFailsForAllNodes() throws Exception {
   Config config = new Config();
   QuorumConfig quorumConfig = new QuorumConfig();
   String quorumName = randomString();
   quorumConfig.setName(quorumName);
   quorumConfig.setEnabled(true);
   quorumConfig.setQuorumFunctionImplementation(
       new QuorumFunction() {
         @Override
         public boolean apply(Collection<Member> members) {
           return false;
         }
       });
   config.addQuorumConfig(quorumConfig);
   String mapName = randomMapName();
   MapConfig mapConfig = new MapConfig(mapName);
   mapConfig.setQuorumName(quorumName);
   config.addMapConfig(mapConfig);
   TestHazelcastInstanceFactory factory = createHazelcastInstanceFactory(2);
   HazelcastInstance h1 = factory.newHazelcastInstance(config);
   HazelcastInstance h2 = factory.newHazelcastInstance(config);
   IMap<Object, Object> map2 = h2.getMap(mapName);
   map2.put("1", "1");
 }
  @BeforeClass
  public static void initialize() throws Exception {
    QuorumConfig quorumConfig = new QuorumConfig();
    quorumConfig.setName(QUORUM_ID);
    quorumConfig.setType(QuorumType.READ);
    quorumConfig.setEnabled(true);
    quorumConfig.setSize(3);

    CacheSimpleConfig cacheConfig = new CacheSimpleConfig();
    cacheConfig.setName(CACHE_NAME_PREFIX + "*");
    cacheConfig.setQuorumName(QUORUM_ID);
    factory = new TestHazelcastFactory();
    cluster = new PartitionedCluster(factory).createFiveMemberCluster(cacheConfig, quorumConfig);
    initializeClients();
    initializeCaches();
    cluster.splitFiveMembersThreeAndTwo();
  }
  @BeforeClass
  public static void initialize() throws InterruptedException {
    CacheSimpleConfig cacheConfig = new CacheSimpleConfig();
    cacheConfig.setName(CACHE_NAME_PREFIX + "*");
    cacheConfig.setQuorumName(QUORUM_ID);

    QuorumConfig quorumConfig = new QuorumConfig();
    quorumConfig.setName(QUORUM_ID);
    quorumConfig.setType(QuorumType.READ_WRITE);
    quorumConfig.setEnabled(true);
    quorumConfig.setSize(3);

    PartitionedCluster cluster =
        new PartitionedCluster(new TestHazelcastInstanceFactory())
            .partitionFiveMembersThreeAndTwo(cacheConfig, quorumConfig);
    cachingProvider1 = HazelcastServerCachingProvider.createCachingProvider(cluster.h1);
    cachingProvider2 = HazelcastServerCachingProvider.createCachingProvider(cluster.h2);
    cachingProvider3 = HazelcastServerCachingProvider.createCachingProvider(cluster.h3);
    cachingProvider4 = HazelcastServerCachingProvider.createCachingProvider(cluster.h4);
    cachingProvider5 = HazelcastServerCachingProvider.createCachingProvider(cluster.h5);
  }
Esempio n. 5
0
 @Test
 public void testCustomQuorumFunctionFailsThenSuccess() throws Exception {
   Config config = new Config();
   QuorumConfig quorumConfig = new QuorumConfig();
   String quorumName = randomString();
   quorumConfig.setName(quorumName);
   quorumConfig.setEnabled(true);
   final AtomicInteger count = new AtomicInteger(1);
   quorumConfig.setQuorumFunctionImplementation(
       new QuorumFunction() {
         @Override
         public boolean apply(Collection<Member> members) {
           if (count.get() == 1) {
             count.incrementAndGet();
             return false;
           } else {
             return true;
           }
         }
       });
   config.addQuorumConfig(quorumConfig);
   String mapName = randomMapName();
   MapConfig mapConfig = new MapConfig(mapName);
   mapConfig.setQuorumName(quorumName);
   config.addMapConfig(mapConfig);
   TestHazelcastInstanceFactory f = new TestHazelcastInstanceFactory(2);
   HazelcastInstance hazelcastInstance = f.newHazelcastInstance(config);
   IMap<Object, Object> map = hazelcastInstance.getMap(mapName);
   try {
     map.put("1", "1");
     fail();
   } catch (Exception e) {
     e.printStackTrace();
   }
   HazelcastInstance hazelcastInstance2 = f.newHazelcastInstance(config);
   map.put("1", "1");
   f.shutdownAll();
 }