Examples of SequencePropertyBean


Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

    id.setIndentifer(sequenceId);
    sequenceAck.setIdentifier(id);

    SequencePropertyBeanMgr seqPropMgr = storageManager.getSequencePropertyBeanMgr();

    SequencePropertyBean seqBean = seqPropMgr.retrieve(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.SERVER_COMPLETED_MESSAGES);
    String msgNoList = (String) seqBean.getValue();

    ArrayList ackRangeArrayList = SandeshaUtil.getAckRangeArrayList(msgNoList, factory, rmNamespaceValue);
    Iterator iterator = ackRangeArrayList.iterator();
    while (iterator.hasNext()) {
      AcknowledgementRange ackRange = (AcknowledgementRange) iterator.next();
      sequenceAck.addAcknowledgementRanges(ackRange);
    }

    SequencePropertyBean sequenceClosedBean = seqPropMgr.retrieve(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.SEQUENCE_CLOSED);

    if (sequenceClosedBean != null && Sandesha2Constants.VALUE_TRUE.equals(sequenceClosedBean.getValue())) {
      // sequence is closed. so add the 'Final' part.
      if (SpecSpecificConstants.isAckFinalAllowed(rmVersion)) {
        AckFinal ackFinal = new AckFinal(rmNamespaceValue);
        sequenceAck.setAckFinal(ackFinal);
      }
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

    ConfigurationContext configurationContext = createSequenceMsg.getMessageContext().getConfigurationContext();

    SequencePropertyBeanMgr seqPropMgr = storageManager.getSequencePropertyBeanMgr();

    SequencePropertyBean receivedMsgBean = new SequencePropertyBean(sequenceId,
        Sandesha2Constants.SequenceProperties.SERVER_COMPLETED_MESSAGES, "");

    // setting the addressing version
    String addressingNamespaceValue = createSequenceMsg.getAddressingNamespaceValue();
    SequencePropertyBean addressingNamespaceBean = new SequencePropertyBean(sequenceId,
        Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE, addressingNamespaceValue);
    seqPropMgr.insert(addressingNamespaceBean);

    String anonymousURI = SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespaceValue);

    // If no replyTo value. Send responses as sync.
    SequencePropertyBean toBean = null;
    if (replyTo != null) {
      toBean = new SequencePropertyBean(sequenceId, Sandesha2Constants.SequenceProperties.TO_EPR, replyTo
          .getAddress());
    } else {
      toBean = new SequencePropertyBean(sequenceId, Sandesha2Constants.SequenceProperties.TO_EPR, anonymousURI);
    }

    SequencePropertyBean replyToBean = new SequencePropertyBean(sequenceId,
        Sandesha2Constants.SequenceProperties.REPLY_TO_EPR, to.getAddress());
    SequencePropertyBean acksToBean = new SequencePropertyBean(sequenceId,
        Sandesha2Constants.SequenceProperties.ACKS_TO_EPR, acksTo.getAddress());

    seqPropMgr.insert(receivedMsgBean);
    seqPropMgr.insert(replyToBean);
    seqPropMgr.insert(acksToBean);

    if (toBean != null)
      seqPropMgr.insert(toBean);

    RMDBeanMgr rmdBeanMgr = storageManager.getRMDBeanMgr();
    rmdBeanMgr.insert(new RMDBean(sequenceId, 1)); // 1 will be the
                              // next

    // message to invoke. This will apply for only in-order invocations.

    SandeshaUtil.startSenderForTheSequence(configurationContext, sequenceId);

    // stting the RM SPEC version for this sequence.
    String createSequenceMsgAction = createSequenceMsg.getWSAAction();
    if (createSequenceMsgAction == null)
      throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noWSAACtionValue));

    String messageRMNamespace = createSequence.getNamespaceValue();

    String specVersion = null;
    if (Sandesha2Constants.SPEC_2005_02.NS_URI.equals(messageRMNamespace)) {
      specVersion = Sandesha2Constants.SPEC_VERSIONS.v1_0;
    } else if (Sandesha2Constants.SPEC_2006_08.NS_URI.equals(messageRMNamespace)) {
      specVersion = Sandesha2Constants.SPEC_VERSIONS.v1_1;
    } else {
      throw new SandeshaException(SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotDecideRMVersion));
    }

    SequencePropertyBean specVerionBean = new SequencePropertyBean();
    specVerionBean.setSequencePropertyKey(sequenceId);
    specVerionBean.setName(Sandesha2Constants.SequenceProperties.RM_SPEC_VERSION);
    specVerionBean.setValue(specVersion);

    seqPropMgr.insert(specVerionBean);

    // TODO get the SOAP version from the create seq message.
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

                                      // is
                                      // synchronized
                                      // with
                                      // addressing.

    SequencePropertyBean addressingNamespaceBean = new SequencePropertyBean(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.ADDRESSING_NAMESPACE_VALUE, addressingNamespace);
    seqPropMgr.insert(addressingNamespaceBean);
   
   
    //setting the SOAPVersion Bean.
    String SOAPVersion = firstAplicationMsgCtx.getOptions().getSoapVersionURI();
    SequencePropertyBean SOAPVersionBean = new SequencePropertyBean (sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.SOAP_VERSION, SOAPVersion);
   
    seqPropMgr.insert(SOAPVersionBean);
   

    String anonymousURI = SpecSpecificConstants.getAddressingAnonymousURI(addressingNamespace);

    EndpointReference toEPR = firstAplicationMsgCtx.getTo();
    String acksTo = (String) firstAplicationMsgCtx.getProperty(SandeshaClientConstants.AcksTo);

    if (toEPR == null) {
      String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.toEPRNotValid, null);
      log.debug(message);
      throw new SandeshaException(message);
    }

    SequencePropertyBean toBean = new SequencePropertyBean(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.TO_EPR, toEPR.getAddress());
    SequencePropertyBean replyToBean = null;
    SequencePropertyBean acksToBean = null;

    if (firstAplicationMsgCtx.isServerSide()) {
      // setting replyTo value, if this is the server side.
      OperationContext opContext = firstAplicationMsgCtx.getOperationContext();
      try {
        MessageContext requestMessage = opContext
            .getMessageContext(OperationContextFactory.MESSAGE_LABEL_IN_VALUE);
        if (requestMessage == null) {
          String message = SandeshaMessageHelper
              .getMessage(SandeshaMessageKeys.cannotFindReqMsgFromOpContext);
          log.error(message);
          throw new SandeshaException(message);
        }

        EndpointReference replyToEPR = requestMessage.getTo(); // 'replyTo'
                                    // of
                                    // the
                                    // response
                                    // msg
                                    // is
                                    // the
                                    // 'to'
                                    // value
                                    // of
                                    // the
                                    // req
                                    // msg.
        if (replyToEPR != null) {
          replyToBean = new SequencePropertyBean(sequencePropertyKey,
              Sandesha2Constants.SequenceProperties.REPLY_TO_EPR, replyToEPR.getAddress());
          acksToBean = new SequencePropertyBean(sequencePropertyKey,
              Sandesha2Constants.SequenceProperties.ACKS_TO_EPR, replyToEPR.getAddress());
        } else {
          String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.toEPRNotValid, null);
          log.error(message);
          throw new SandeshaException(message);
        }
      } catch (AxisFault e) {
        String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotFindReqMsgFromOpContext);
        log.error(message);
        log.error(e.getStackTrace());
        throw new SandeshaException(message);
      }
    } else {
     
      EndpointReference replyToEPR = firstAplicationMsgCtx.getReplyTo();
      //setting replyTo and acksTo beans.
         
      if (replyToEPR!=null)   
        replyToBean = new SequencePropertyBean(sequencePropertyKey,
            Sandesha2Constants.SequenceProperties.REPLY_TO_EPR, replyToEPR.getAddress());
     
   
      //TODO set AcksToBean.
    }
   
    // Default value for acksTo is anonymous (this happens only for the
    // client side)
    if (acksTo == null) {
      acksTo = anonymousURI;
    }

    acksToBean = new SequencePropertyBean(sequencePropertyKey, Sandesha2Constants.SequenceProperties.ACKS_TO_EPR,
        acksTo);

    // start the in listner for the client side, if acksTo is not anonymous.
    if (!firstAplicationMsgCtx.isServerSide() && !anonymousURI.equals(acksTo)) {

      String transportInProtocol = firstAplicationMsgCtx.getOptions().getTransportInProtocol();
      if (transportInProtocol == null) {
        throw new SandeshaException(SandeshaMessageHelper
            .getMessage(SandeshaMessageKeys.cannotStartListenerForIncommingMsgs));
      }

      try {
        ListenerManager listenerManager = firstAplicationMsgCtx.getConfigurationContext().getListenerManager();
        TransportInDescription transportIn = firstAplicationMsgCtx.getConfigurationContext()
            .getAxisConfiguration().getTransportIn(new QName(transportInProtocol));
        // if acksTo is not anonymous start the in-transport
        if (!listenerManager.isListenerRunning(transportIn.getName().getLocalPart())) {
          listenerManager.addListener(transportIn, false);
        }
      } catch (AxisFault e) {
        throw new SandeshaException(SandeshaMessageHelper.getMessage(
            SandeshaMessageKeys.cannotStartTransportListenerDueToError, e.toString()), e);
      }

    }

    SequencePropertyBean msgsBean = new SequencePropertyBean();
    msgsBean.setSequencePropertyKey(sequencePropertyKey);
    msgsBean.setName(Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);
    msgsBean.setValue("");

    seqPropMgr.insert(msgsBean);

    seqPropMgr.insert(toBean);
    if (acksToBean != null)
      seqPropMgr.insert(acksToBean);
    if (replyToBean != null)
      seqPropMgr.insert(replyToBean);

    // saving transportTo value;
    String transportTo = (String) firstAplicationMsgCtx.getProperty(MessageContextConstants.TRANSPORT_URL);
    if (transportTo != null) {
      SequencePropertyBean transportToBean = new SequencePropertyBean();
      transportToBean.setSequencePropertyKey(sequencePropertyKey);
      transportToBean.setName(Sandesha2Constants.SequenceProperties.TRANSPORT_TO);
      transportToBean.setValue(transportTo);

      seqPropMgr.insert(transportToBean);
    }

    // setting the spec version for the client side.
    SequencePropertyBean specVerionBean = new SequencePropertyBean();
    specVerionBean.setSequencePropertyKey(sequencePropertyKey);
    specVerionBean.setName(Sandesha2Constants.SequenceProperties.RM_SPEC_VERSION);
    specVerionBean.setValue(specVersion);
    seqPropMgr.insert(specVerionBean);

    // updating the last activated time.
    updateLastActivatedTime(sequencePropertyKey, storageManager);
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

      throws SandeshaException {
    // Transaction lastActivatedTransaction =
    // storageManager.getTransaction();
    SequencePropertyBeanMgr sequencePropertyBeanMgr = storageManager.getSequencePropertyBeanMgr();

    SequencePropertyBean lastActivatedBean = sequencePropertyBeanMgr.retrieve(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME);

    boolean added = false;

    if (lastActivatedBean == null) {
      added = true;
      lastActivatedBean = new SequencePropertyBean();
      lastActivatedBean.setSequencePropertyKey(sequencePropertyKey);
      lastActivatedBean.setName(Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME);
    }

    long currentTime = System.currentTimeMillis();
    lastActivatedBean.setValue(Long.toString(currentTime));

    if (added)
      sequencePropertyBeanMgr.insert(lastActivatedBean);
    else
      sequencePropertyBeanMgr.update(lastActivatedBean);
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

  public static long getLastActivatedTime(String propertyKey, StorageManager storageManager) throws SandeshaException {

    SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropertyBeanMgr();

    SequencePropertyBean lastActivatedBean = seqPropBeanMgr.retrieve(propertyKey,
        Sandesha2Constants.SequenceProperties.LAST_ACTIVATED_TIME);

    long lastActivatedTime = -1;

    if (lastActivatedBean != null) {
      lastActivatedTime = Long.parseLong(lastActivatedBean.getValue());
    }

    return lastActivatedTime;
  }
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

  public static long getOutGoingSequenceAckedMessageCount(String sequencePropertyKey, StorageManager storageManager)
      throws SandeshaException {
    // / Transaction transaction = storageManager.getTransaction();
    SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropertyBeanMgr();

    SequencePropertyBean ackedMsgBean = seqPropBeanMgr.retrieve(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED);
    if (ackedMsgBean == null)
      return 0; // No acknowledgement has been received yet.

    long noOfMessagesAcked = Long.parseLong(ackedMsgBean.getValue());
    // / transaction.commit();

    return noOfMessagesAcked;
  }
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

  public static boolean isOutGoingSequenceCompleted(String internalSequenceID, StorageManager storageManager)
      throws SandeshaException {
    // / Transaction transaction = storageManager.getTransaction();
    SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropertyBeanMgr();

    SequencePropertyBean findSeqIDBean = new SequencePropertyBean();
    findSeqIDBean.setValue(internalSequenceID);
    findSeqIDBean.setName(Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
    Collection seqIDBeans = seqPropBeanMgr.find(findSeqIDBean);

    if (seqIDBeans.size() == 0) {
      String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.noSequenceEstablished);
      log.debug(message);
      throw new SandeshaException(message);
    }

    if (seqIDBeans.size() > 1) {
      String message = SandeshaMessageHelper.getMessage(
          SandeshaMessageKeys.cannotGenerateReportNonUniqueSequence, internalSequenceID);
      log.debug(message);
      throw new SandeshaException(message);
    }

    SequencePropertyBean seqIDBean = (SequencePropertyBean) seqIDBeans.iterator().next();
    String sequenceID = seqIDBean.getSequencePropertyKey();

    SequencePropertyBean terminateAddedBean = seqPropBeanMgr.retrieve(sequenceID,
        Sandesha2Constants.SequenceProperties.TERMINATE_ADDED);
    if (terminateAddedBean == null)
      return false;

    if ("true".equals(terminateAddedBean.getValue()))
      return true;

    // / transaction.commit();
    return false;
  }
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

      throws SandeshaException {

    // / Transaction transaction = storageManager.getTransaction();
    SequencePropertyBeanMgr seqPropBeanMgr = storageManager.getSequencePropertyBeanMgr();

    SequencePropertyBean terminateReceivedBean = seqPropBeanMgr.retrieve(sequenceID,
        Sandesha2Constants.SequenceProperties.TERMINATE_RECEIVED);
    boolean complete = false;

    if (terminateReceivedBean != null && "true".equals(terminateReceivedBean.getValue()))
      complete = true;

    // / transaction.commit();
    return complete;
  }
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

    //here we cannot get the property key using the usual SandeshaUtil.getSequencePropertyKey function,
    //because this can be a applicationMessage, which piggybacks the acknowledgement.
    String sequencePropertyKey = internalSequenceId;

    // Check that the sender of this Ack holds the correct token
    SequencePropertyBean tokenBean = seqPropMgr.retrieve(outSequenceId, Sandesha2Constants.SequenceProperties.SECURITY_TOKEN);
    if(tokenBean != null) {
      SecurityManager secManager = SandeshaUtil.getSecurityManager(configCtx);
      SecurityToken token = secManager.recoverSecurityToken(tokenBean.getValue());
     
      secManager.checkProofOfPossession(token, soapHeader, msgCtx);
    }
   
    Iterator ackRangeIterator = sequenceAck.getAcknowledgementRanges().iterator();
    Iterator nackIterator = sequenceAck.getNackList().iterator();

    FaultManager faultManager = new FaultManager();
    SandeshaException fault = faultManager
        .checkForUnknownSequence(rmMsgCtx, outSequenceId, storageManager);
    if(fault == null) {
      fault = faultManager.checkForInvalidAcknowledgement(rmMsgCtx, storageManager);
    }
    if (fault != null) {
      throw fault;
    }

    // updating the last activated time of the sequence.
    SequenceManager.updateLastActivatedTime(sequencePropertyKey, storageManager);

    SenderBean input = new SenderBean();
    input.setSend(true);
    input.setReSend(true);
    Collection retransmitterEntriesOfSequence = senderBeanMgr.find(input);

    ArrayList ackedMessagesList = new ArrayList();
    while (ackRangeIterator.hasNext()) {
      AcknowledgementRange ackRange = (AcknowledgementRange) ackRangeIterator.next();
      long lower = ackRange.getLowerValue();
      long upper = ackRange.getUpperValue();

      for (long messageNo = lower; messageNo <= upper; messageNo++) {
        SenderBean retransmitterBean = getSenderEntry(retransmitterEntriesOfSequence, messageNo);
        if (retransmitterBean != null) {
          senderBeanMgr.delete(retransmitterBean.getMessageID());

          // removing the application message from the storage.
          String storageKey = retransmitterBean.getMessageContextRefKey();
          storageManager.removeMessageContext(storageKey);
        }

        ackedMessagesList.add(new Long(messageNo));
      }
    }

    while (nackIterator.hasNext()) {
      Nack nack = (Nack) nackIterator.next();
      long msgNo = nack.getNackNumber();

      // TODO - Process Nack
    }
   
    //adding a MakeConnection for the response sequence if needed.
    String offeredSequenceId = SandeshaUtil.getSequenceProperty(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.OFFERED_SEQUENCE, storageManager);
    if (offeredSequenceId!=null) {

      RMDBeanMgr rmdBeanMgr = storageManager.getRMDBeanMgr();
      RMDBean rmdBean = rmdBeanMgr.retrieve(outSequenceId);
     
      if (rmdBean!=null && rmdBean.isPollingMode())
        SandeshaUtil.shedulePollingRequest(offeredSequenceId, configCtx);
     
    }
   
    // setting acked message date.
    // TODO add details specific to each message.
    long noOfMsgsAcked = getNoOfMessagesAcked(sequenceAck.getAcknowledgementRanges().iterator());
    SequencePropertyBean noOfMsgsAckedBean = seqPropMgr.retrieve(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED);
    boolean added = false;

    if (noOfMsgsAckedBean == null) {
      added = true;
      noOfMsgsAckedBean = new SequencePropertyBean();
      noOfMsgsAckedBean.setSequencePropertyKey(sequencePropertyKey);
      noOfMsgsAckedBean.setName(Sandesha2Constants.SequenceProperties.NO_OF_OUTGOING_MSGS_ACKED);
    }

    noOfMsgsAckedBean.setValue(Long.toString(noOfMsgsAcked));

    if (added)
      seqPropMgr.insert(noOfMsgsAckedBean);
    else
      seqPropMgr.update(noOfMsgsAckedBean);

    // setting the completed_messages list. This gives all the messages of
    // the sequence that were acked.
    SequencePropertyBean allCompletedMsgsBean = seqPropMgr.retrieve(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);
    if (allCompletedMsgsBean == null) {
      allCompletedMsgsBean = new SequencePropertyBean();
      allCompletedMsgsBean.setSequencePropertyKey(sequencePropertyKey);
      allCompletedMsgsBean.setName(Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);

      seqPropMgr.insert(allCompletedMsgsBean);
    }

    String str = ackedMessagesList.toString();
    allCompletedMsgsBean.setValue(str);

    seqPropMgr.update(allCompletedMsgsBean);

    String lastOutMsgNoStr = SandeshaUtil.getSequenceProperty(sequencePropertyKey,
        Sandesha2Constants.SequenceProperties.LAST_OUT_MESSAGE_NO, storageManager);
View Full Code Here

Examples of org.apache.sandesha2.storage.beans.SequencePropertyBean

      throws SandeshaException {
    if (log.isDebugEnabled())
      log.debug("Enter: AcknowledgementManager::getClientCompletedMessagesList");

    // first trying to get it from the internal sequence id.
    SequencePropertyBean internalSequenceBean = seqPropMgr.retrieve(sequenceID,
        Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
    String internalSequenceID = null;
    if (internalSequenceBean != null)
      internalSequenceID = internalSequenceBean.getValue();

    SequencePropertyBean completedMessagesBean = null;
    if (internalSequenceID != null)
      completedMessagesBean = seqPropMgr.retrieve(internalSequenceID,
          Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);

    if (completedMessagesBean == null)
      completedMessagesBean = seqPropMgr.retrieve(sequenceID,
          Sandesha2Constants.SequenceProperties.CLIENT_COMPLETED_MESSAGES);

    ArrayList completedMsgList = null;
    if (completedMessagesBean != null) {
      completedMsgList = SandeshaUtil.getArrayListFromString(completedMessagesBean.getValue());
    } else {
      String message = SandeshaMessageHelper.getMessage(SandeshaMessageKeys.completedMsgBeanIsNull, sequenceID);
      SandeshaException e = new SandeshaException(message);
      if(log.isDebugEnabled()) log.debug("Throwing exception", e);
      throw e;
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.