Package org.jboss.ha.framework.server.lock

Examples of org.jboss.ha.framework.server.lock.AbstractClusterLockSupport


   private void basicClusterLockTest(int viewSize) throws Exception
   {
      int viewPos = viewSize == 1 ? 0 : 1;
      TesteeSet<T> testeeSet = getTesteeSet(node1, viewPos, viewSize);
      AbstractClusterLockSupport testee = testeeSet.impl;
      HAPartition partition = testee.getPartition();
      LocalLockHandler handler = testee.getLocalHandler();
     
      resetToStrict(partition);
      resetToStrict(handler);
     
      ArrayList<RemoteLockResponse> rspList = new ArrayList<RemoteLockResponse>();
      for (int i = 0; i < viewSize - 1; i++)
      {
         rspList.add(new RemoteLockResponse(null, RemoteLockResponse.Flag.OK));
      }
     
      expect(partition.callMethodOnCluster(eq("test"),
                                           eq("remoteLock"),
                                           eqLockParams(node1, 200000),
                                           aryEq(AbstractClusterLockSupport.REMOTE_LOCK_TYPES),
                                           eq(true))).andReturn(rspList);
     
      handler.lockFromCluster(eq("test"), eq(node1), anyLong());
     
      replay(partition);
      replay(handler);
     
      assertTrue(testee.lock("test", 200000));
     
      verify(partition);
      verify(handler);
     
   }
View Full Code Here


   }
  
   public void testRemoteRejectionFromSuperiorCaller() throws Exception
   {
      TesteeSet<T> testeeSet = getTesteeSet(node1, 1, 3);
      AbstractClusterLockSupport testee = testeeSet.impl;
      HAPartition partition = testee.getPartition();
      LocalLockHandler handler = testee.getLocalHandler();
     
      resetToNice(partition);
      resetToStrict(handler);
     
      ClusterNode superior = testee.getCurrentView().get(0);
     
      ArrayList<RemoteLockResponse> rspList = new ArrayList<RemoteLockResponse>();
      rspList.add(new RemoteLockResponse(null, RemoteLockResponse.Flag.OK));
      rspList.add(new RemoteLockResponse(null, RemoteLockResponse.Flag.REJECT, superior));
     
     
      expect(partition.callMethodOnCluster(eq("test"),
                                           eq("remoteLock"),
                                           eqLockParams(node1, 200000),
                                           aryEq(AbstractClusterLockSupport.REMOTE_LOCK_TYPES),
                                           eq(true))).andReturn(rspList).atLeastOnce();
     
      replay(partition);
      replay(handler);
     
      assertFalse(testee.lock("test", 50));
     
      verify(partition);
      verify(handler);
     
   }
View Full Code Here

   }
  
   public void testRemoteRejectionFromInferiorCaller() throws Exception
   {
      TesteeSet<T> testeeSet = getTesteeSet(node1, 1, 3);
      AbstractClusterLockSupport testee = testeeSet.impl;
      HAPartition partition = testee.getPartition();
      LocalLockHandler handler = testee.getLocalHandler();
     
      resetToStrict(partition);
      resetToStrict(handler);
     
      ClusterNode inferior = testee.getCurrentView().get(2);
     
      ArrayList<RemoteLockResponse> rspList = new ArrayList<RemoteLockResponse>();
      rspList.add(new RemoteLockResponse(null, RemoteLockResponse.Flag.OK));
      rspList.add(new RemoteLockResponse(null, RemoteLockResponse.Flag.REJECT, inferior));
     
     
      expect(partition.callMethodOnCluster(eq("test"),
                                           eq("remoteLock"),
                                           eqLockParams(node1, 200000),
                                           aryEq(AbstractClusterLockSupport.REMOTE_LOCK_TYPES),
                                           eq(true))).andReturn(rspList);

     
      expect(partition.callMethodOnCluster(eq("test"),
                                           eq("releaseRemoteLock"),
                                           aryEq(new Object[]{"test", node1}),
                                           aryEq(AbstractClusterLockSupport.RELEASE_REMOTE_LOCK_TYPES),
                                           eq(true))).andReturn(rspList);
     
      rspList = new ArrayList<RemoteLockResponse>();
      rspList.add(new RemoteLockResponse(null, RemoteLockResponse.Flag.OK));
      rspList.add(new RemoteLockResponse(null, RemoteLockResponse.Flag.OK));
     
      expect(partition.callMethodOnCluster(eq("test"),
                                           eq("remoteLock"),
                                           eqLockParams(node1, 200000),
                                           aryEq(AbstractClusterLockSupport.REMOTE_LOCK_TYPES),
                                           eq(true))).andReturn(rspList);
     
      handler.lockFromCluster(eq("test"), eq(node1), anyLong());     
      expectLastCall().atLeastOnce();
     
      replay(partition);
      replay(handler);
     
      assertTrue(testee.lock("test", 50));
     
      verify(partition);
      verify(handler);
     
   }
View Full Code Here

    * @throws Exception
    */
   public void testSpuriousRemoteLockReleaseIgnored() throws Exception
   {
      TesteeSet<T> testeeSet = getTesteeSet(node1, 1, 2);
      AbstractClusterLockSupport testee = testeeSet.impl;
      HAPartition partition = testee.getPartition();
      LocalLockHandler handler = testee.getLocalHandler();
     
      ClusterNode other = testee.getCurrentView().get(0);
      resetToStrict(partition);
      resetToStrict(handler);
     
      ArrayList<RemoteLockResponse> rspList = new ArrayList<RemoteLockResponse>();
      rspList.add(new RemoteLockResponse(null, RemoteLockResponse.Flag.OK));
     
     
      expect(partition.callMethodOnCluster(eq("test"),
                                           eq("remoteLock"),
                                           eqLockParams(node1, 200000),
                                           aryEq(AbstractClusterLockSupport.REMOTE_LOCK_TYPES),
                                           eq(true))).andReturn(rspList);
     
      handler.lockFromCluster(eq("test"), eq(node1), anyLong());
     
      expect(handler.getLockHolder("test")).andReturn(node1);
     
      replay(partition);
      replay(handler);
     
      assertTrue(testee.lock("test", 200000));
      testeeSet.target.releaseRemoteLock("test", other);
     
      verify(partition);
      verify(handler);
   }
View Full Code Here

TOP

Related Classes of org.jboss.ha.framework.server.lock.AbstractClusterLockSupport

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.