Package org.apache.sandesha2.util

Examples of org.apache.sandesha2.util.RangeString


   
  }
 
  public void testGetAckRangesFromRangeStringOutOfOrder() {
   
    RangeString rangeString = new RangeString();
    rangeString.addRange(new Range(3));
    rangeString.addRange(new Range(6));
    rangeString.addRange(new Range(1));
    rangeString.addRange(new Range(5));
    rangeString.addRange(new Range(8));
    rangeString.addRange(new Range(2));
   
    ArrayList<Range> list = SandeshaUtil.getAckRangeArrayList(rangeString,Sandesha2Constants.SPEC_2005_02.NS_URI);
    assertNotNull(list);
    assertEquals(list.size(),3);
   
View Full Code Here


    assertFalse(it.hasNext());
  }
 
  public void testGetAckRangesFromRangeStringGapFilling () {
    //build a range string to represent the completed messages
    RangeString rangeString = new RangeString();
    rangeString.addRange(new Range(1,3));
    rangeString.addRange(new Range(4));
    //insert a gap - number 5 is missing
    rangeString.addRange(new Range(6));
    //insert a gap - 7 and 8 are missing
    rangeString.addRange(new Range(9, 10));
   
    ArrayList<Range> list = SandeshaUtil.getAckRangeArrayList(rangeString,Sandesha2Constants.SPEC_2005_02.NS_URI);
    assertNotNull(list);
    //we expect 3 ranges: [1-4] [6] [9-10]
    assertEquals(list.size(),3);
   
    Iterator<Range> it = list.iterator();
    Range ackRange = null;
   
    ackRange = (Range) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.lowerValue,1);
    assertEquals(ackRange.upperValue,4);
   
    ackRange = null;
    ackRange = (Range) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.lowerValue,6);
    assertEquals(ackRange.upperValue,6);
   
    ackRange = null;
    ackRange = (Range) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.lowerValue,9);
    assertEquals(ackRange.upperValue,10);
   
    assertFalse(it.hasNext());
   
    //ok, now plug a gap at msg 5
    rangeString.addRange(new Range(5));
    list = SandeshaUtil.getAckRangeArrayList(rangeString,Sandesha2Constants.SPEC_2005_02.NS_URI);
    assertNotNull(list);
    //we expect 2 ranges: [1-6] [9-10]
    it = list.iterator();
    ackRange = null;
   
    ackRange = (Range) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.lowerValue,1);
    assertEquals(ackRange.upperValue,6);
   
    ackRange = null;
    ackRange = (Range) it.next();
    assertNotNull(ackRange);
    assertEquals(ackRange.lowerValue,9);
    assertEquals(ackRange.upperValue,10);
   
    assertFalse(it.hasNext());
   
    //plug all of the gaps - 7 and 8
    rangeString.addRange(new Range(8));
    rangeString.addRange(new Range(7,8));
    list = SandeshaUtil.getAckRangeArrayList(rangeString,Sandesha2Constants.SPEC_2005_02.NS_URI);
    assertNotNull(list);
    //we expect 1 ranges: [1-10]
    it = list.iterator();
    ackRange = null;
View Full Code Here

      assertNotNull(rMDBean);
      assertEquals(rMDBean.getNextMsgNoToProcess(), 4);
     
      //also check that the sequence has an out of order gap that contains msg 2     
      assertNotNull(rMDBean.getOutOfOrderRanges());
      RangeString rangeString = rMDBean.getOutOfOrderRanges();
      assertTrue(rangeString.isMessageNumberInRanges(2));
      t.commit();
     
      //we deliver msg 2
      //set highest out msg number to 1
      String internalSequenceId = SandeshaUtil.getInternalSequenceID(to, sequenceKey);
View Full Code Here

  {
    //setup the RMSBean
    expectedRMSBean = new RMSBean();
    expectedRMSBean.setAnonymousUUID("someAnonymousUUID");
    expectedRMSBean.setAvoidAutoTermination(true);
    expectedRMSBean.setClientCompletedMessages(new RangeString());
    expectedRMSBean.setClosed(true);
    expectedRMSBean.setCreateSeqMsgID("someCSeqMsgId");
    expectedRMSBean.setCreateSequenceMsgStoreKey("someMsgStoreKey");
    expectedRMSBean.setExpectedReplies(1);
    expectedRMSBean.setHighestOutMessageNumber(1);
    expectedRMSBean.setHighestOutRelatesTo("someRelatesTo");
    expectedRMSBean.setInternalSequenceID("someInternalSequenceID");
    expectedRMSBean.setLastActivatedTime(1);
    expectedRMSBean.setLastOutMessage(1);
    expectedRMSBean.setLastSendError(new Exception());
    expectedRMSBean.setLastSendErrorTimestamp(1);
    expectedRMSBean.setNextMessageNumber(1);
    expectedRMSBean.setOfferedEndPoint("someEndPoint");
    expectedRMSBean.setOfferedSequence("offeredSequence");
    expectedRMSBean.setPollingMode(true);
    expectedRMSBean.setReferenceMessageStoreKey("someRefMsgStoreKey");
    expectedRMSBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
    expectedRMSBean.setSecurityTokenData("someSecurityToken");
    expectedRMSBean.setSequenceClosedClient(true);
    expectedRMSBean.setSequenceID("someSequenceID");
    expectedRMSBean.setServiceName("someService");
    expectedRMSBean.setSoapVersion(1);
    expectedRMSBean.setTerminateAdded(true);
    expectedRMSBean.setTerminationPauserForCS(true);
    expectedRMSBean.setTimedOut(true);
    expectedRMSBean.setTransaction(null);
    expectedRMSBean.setTransportTo("transportTo");
    expectedRMSBean.setToEndpointReference(epr);
    expectedRMSBean.setReplyToEndpointReference(epr);
    expectedRMSBean.setAcksToEndpointReference(epr);
   
    //setup the RMDBean
    expectedRMDBean = new RMDBean();
    expectedRMDBean.setClosed(true);
    expectedRMDBean.setHighestInMessageId("someMsgId");
    expectedRMDBean.setLastActivatedTime(1);
    expectedRMDBean.setNextMsgNoToProcess(1);
    expectedRMDBean.setOutboundInternalSequence("someSequenceID");
    expectedRMDBean.setOutOfOrderRanges(new RangeString());
    expectedRMDBean.setPollingMode(true);
    expectedRMDBean.setReferenceMessageKey("someRefMsgStoreKey");
    expectedRMDBean.setRMVersion("someVersion");
    expectedRMDBean.setSecurityTokenData("someTokenData");
    expectedRMDBean.setSequenceID("someSequenceID");
    expectedRMDBean.setServerCompletedMessages(new RangeString());
    expectedRMDBean.setServiceName("someService");
    expectedRMDBean.setTerminated(true);
    expectedRMDBean.setToEndpointReference(epr);
    expectedRMDBean.setReplyToEndpointReference(epr);
    expectedRMDBean.setAcksToEndpointReference(epr);
View Full Code Here

    lastInMessageId = beanToCopy.getLastInMessageId();
    nextMsgNoToProcess = beanToCopy.getNextMsgNoToProcess();
    outboundInternalSequence = beanToCopy.getOutboundInternalSequence();
    outOfOrderRanges = beanToCopy.getOutOfOrderRanges();
    referenceMessageKey = beanToCopy.getReferenceMessageKey();
    serverCompletedMessages = new RangeString(beanToCopy.getServerCompletedMessages().toString());
    toAddress = beanToCopy.getToAddress();
  }
View Full Code Here

   */ 
  public RMSBean(RMSBean beanToCopy) {
    super(beanToCopy);
     anonymousUUID = beanToCopy.getAnonymousUUID();
     if (beanToCopy.getClientCompletedMessages() != null)
       clientCompletedMessages = new RangeString(beanToCopy.getClientCompletedMessages());
     createSeqMsgID = beanToCopy.getCreateSeqMsgID();
     createSequenceMsgStoreKey = beanToCopy.getCreateSequenceMsgStoreKey();
     expectedReplies = beanToCopy.getExpectedReplies();
     highestOutMessageNumber = beanToCopy.getHighestOutMessageNumber();
     highestOutRelatesTo = beanToCopy.getHighestOutRelatesTo();
View Full Code Here

            log.debug(message);
          throw new SandeshaException(message);
        }
   
        // Get the server completed message ranges list
        RangeString serverCompletedMessageRanges = bean.getServerCompletedMessages();
   
        // See if the message is in the list of completed ranges
        boolean msgNoPresentInList =
          serverCompletedMessageRanges.isMessageNumberInRanges(msgNo);
         
        if((rmMsgCtx.getMessageType()==Sandesha2Constants.MessageTypes.LAST_MESSAGE) && bean.getOutboundInternalSequence()!=null){
          rmMsgCtx.setProperty(Constants.Configuration.DISABLE_RESPONSE_ACK, Boolean.TRUE);
        }
       
View Full Code Here

                //so as to include our latest view of this outOfOrder range.
                //We do that here (rather than once at the end) so that we reamin
                //transactionally consistent
                Range r = new Range(firstMessageInOutOfOrderWindow,highestMsgNumberInvoked);
                   
                RangeString rangeString = null;
                if(rMDBean.getOutOfOrderRanges()==null){
                  //insert a new blank one one
                  rangeString = new RangeString();
                }
                else{
                  rangeString = rMDBean.getOutOfOrderRanges();
                }
                //update the range String with the new value
                rangeString.addRange(r);
                rMDBean.setOutOfOrderRanges(rangeString);
              }
             
              rmdBeanMgr.update(rMDBean);
            }
View Full Code Here

      log.debug("Enter: InOrderInvoker::addOutOfOrderInvokerBeansToList " + sequenceID + ", " + list);
   
    RMDBean rmdBean = SandeshaUtil.getRMDBeanFromSequenceId(storageManager, sequenceID);
   
    if(rmdBean != null && rmdBean.getOutOfOrderRanges() != null){
      RangeString rangeString = rmdBean.getOutOfOrderRanges();
      //we now have the set of ranges that can be delivered out of order.
      //Look for any invokable message that lies in one of those ranges
      InvokerBean selector = new InvokerBean();
      selector.setSequenceID(sequenceID);
      Iterator<InvokerBean> invokerBeansIterator =
        storageManager.getInvokerBeanMgr().find(selector).iterator();
     
      while(invokerBeansIterator.hasNext()){
        InvokerBean invokerBean = (InvokerBean)invokerBeansIterator.next();
       
        if(rangeString.isMessageNumberInRanges(invokerBean.getMsgNo())){
          //an invoker bean that has not been deleted and lies in an out
          //or order range - we can add this to the list
          list.add(invokerBean);
        }
      }
View Full Code Here

    rmdBean.setSequenceID(seqID);
    rmdBean.setToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
    rmdBean.setAcksToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
    rmdBean.setReplyToEPR(AddressingConstants.Final.WSA_ANONYMOUS_URL);
    rmdBean.setRMVersion(Sandesha2Constants.SPEC_VERSIONS.v1_1);
    rmdBean.setServerCompletedMessages(new RangeString());
    // Flag that the sequence is terminated.
    rmdBean.setTerminated(true);
   
    // Create a transaction and insert the RMSBean
    Transaction tran = storageManager.getTransaction();
View Full Code Here

TOP

Related Classes of org.apache.sandesha2.util.RangeString

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.