Package org.serviceconnector.scmp

Examples of org.serviceconnector.scmp.SCMPCompositeSender


    try {
      ISCMPMessageCallback requesterCallback = null;
      // differ if message is large or not, sending procedure is different
      if (message.isLargeMessage()) {
        // SCMPLargeRequest handles splitting, works like an iterator
        SCMPCompositeSender largeResponse = new SCMPCompositeSender(message);
        requesterCallback = new SCRequesterSCMPCallback(message, scmpCallback, connectionContext, largeResponse,
            msgSequenceNr);
        // setting up operation timeout after successful send
        TimeoutWrapper timeoutWrapper = new TimeoutWrapper((ITimeout) requesterCallback);
        SCRequesterSCMPCallback reqCallback = (SCRequesterSCMPCallback) requesterCallback;
        ScheduledFuture<TimeoutWrapper> timeout = (ScheduledFuture<TimeoutWrapper>) AppContext.otiScheduler.schedule(
            timeoutWrapper, (long) timeoutMillis, TimeUnit.MILLISECONDS);
        reqCallback.setOperationTimeout(timeout);
        reqCallback.setTimeoutMillis(timeoutMillis);
        // extract first part message & send
        SCMPMessage part = largeResponse.getFirst();
        // handling msgSequenceNr
        if (SCMPMessageSequenceNr.necessaryToWrite(message.getMessageType())) {
          part.setHeader(SCMPHeaderAttributeKey.MESSAGE_SEQUENCE_NR, msgSequenceNr.getCurrentNr());
        }
        // send
View Full Code Here


  private void writeResponse(SCMPMessage requestMessage, SCMPMessage responseMessage, HttpServletResponse response) {
    IEncoderDecoder encoderDecoder;
    try {
      if (responseMessage.isLargeMessage()) {
        // response is large create a large response for reply
        SCMPCompositeSender largeResponse = new SCMPCompositeSender(responseMessage);
        SCMPMessage firstSCMP = largeResponse.getFirst();
        SCMPMessageSequenceNr messageSequenceNr = this.requester.getSCMPMsgSequenceNr();
        firstSCMP.setHeader(SCMPHeaderAttributeKey.MESSAGE_SEQUENCE_NR, messageSequenceNr.incrementAndGetMsgSequenceNr());
        int oti = requestMessage.getHeaderInt(SCMPHeaderAttributeKey.OPERATION_TIMEOUT);
        // adding compositeReceiver to the composite registry
        SCBaseServlet.compositeRegistry.addSCMPLargeResponse(requestMessage.getSessionId(), largeResponse, oti);
View Full Code Here

   * @return true, if successful
   */
  private boolean handleLargeResponse(HttpServletRequest request, HttpServletResponse response, SCMPMessage scmpReq) {
    String sessionId = scmpReq.getSessionId();
    // large messages needs to be handled
    SCMPCompositeSender largeResponse = SCBaseServlet.compositeRegistry.getSCMPLargeResponse(sessionId);

    if (largeResponse != null && scmpReq.isPart()) {
      // sending of a large response has already been started and incoming SCMP is a pull request
      if (largeResponse.hasNext()) {
        // there are still parts to send to complete request
        SCMPMessage nextSCMP = largeResponse.getNext();
        // handling msgSequenceNr
        SCMPMessageSequenceNr msgSequenceNr = this.requester.getSCMPMsgSequenceNr();
        nextSCMP.setHeader(SCMPHeaderAttributeKey.MESSAGE_SEQUENCE_NR, msgSequenceNr.incrementAndGetMsgSequenceNr());
        this.writeResponse(scmpReq, nextSCMP, response);
        return true;
View Full Code Here

  private void writeResponse(SCMPMessage requestMessage, SCMPMessage responseMessage, HttpServletResponse response) {
    IEncoderDecoder encoderDecoder;
    try {
      if (responseMessage.isLargeMessage()) {
        // response is large create a large response for reply
        SCMPCompositeSender largeResponse = new SCMPCompositeSender(responseMessage);
        SCMPMessage firstSCMP = largeResponse.getFirst();
        SCMPMessageSequenceNr messageSequenceNr = this.requester.getSCMPMsgSequenceNr();
        firstSCMP.setHeader(SCMPHeaderAttributeKey.MESSAGE_SEQUENCE_NR, messageSequenceNr.incrementAndGetMsgSequenceNr());
        int oti = requestMessage.getHeaderInt(SCMPHeaderAttributeKey.OPERATION_TIMEOUT);
        // adding compositeReceiver to the composite registry
        SCBaseServlet.compositeRegistry.addSCMPLargeResponse(requestMessage.getSessionId(), largeResponse, oti);
View Full Code Here

   * @return true, if successful
   */
  private boolean handleLargeResponse(HttpServletRequest request, HttpServletResponse response, SCMPMessage scmpReq) {
    String sessionId = scmpReq.getSessionId();
    // large messages needs to be handled
    SCMPCompositeSender largeResponse = SCBaseServlet.compositeRegistry.getSCMPLargeResponse(sessionId);

    if (largeResponse != null && scmpReq.isPart()) {
      // sending of a large response has already been started and incoming SCMP is a pull request
      if (largeResponse.hasNext()) {
        // there are still parts to send to complete request
        SCMPMessage nextSCMP = largeResponse.getNext();
        // handling msgSequenceNr
        SCMPMessageSequenceNr msgSequenceNr = this.requester.getSCMPMsgSequenceNr();
        nextSCMP.setHeader(SCMPHeaderAttributeKey.MESSAGE_SEQUENCE_NR, msgSequenceNr.incrementAndGetMsgSequenceNr());
        this.writeResponse(scmpReq, nextSCMP, response);
        return true;
View Full Code Here

        return;
      }

      if (command.isPassThroughPartMsg() == false) {
        // large messages needs to be handled
        SCMPCompositeSender largeResponse = NettyResponderRequestHandlerTask.compositeRegistry
            .getSCMPLargeResponse(sessionId);

        if (largeResponse != null && scmpReq.isPart()) {
          // sending of a large response has already been started and incoming scmp is a pull request
          if (largeResponse.hasNext()) {
            // there are still parts to send to complete request
            SCMPMessage nextSCMP = largeResponse.getNext();
            // handling msgSequenceNr
            msgSequenceNr.incrementAndGetMsgSequenceNr();
            nextSCMP.setHeader(SCMPHeaderAttributeKey.MESSAGE_SEQUENCE_NR, msgSequenceNr.getCurrentNr());
            response.setSCMP(nextSCMP);
            response.write();
View Full Code Here

    SCMPMessage scmpRequest = request.getMessage();
    String sessionId = scmpRequest.getSessionId();
    SCMPMessageSequenceNr msgSequenceNr = NettyResponderRequestHandlerTask.compositeRegistry.getSCMPMsgSequenceNr(sessionId);
    if (response.isLarge() && AppContext.isScEnvironment() == false) {
      // response is large & not on SC, create a large response for reply
      SCMPCompositeSender largeResponse = new SCMPCompositeSender(response.getSCMP());
      SCMPMessage firstSCMP = largeResponse.getFirst();
      response.setSCMP(firstSCMP);
      if (SCMPMessageSequenceNr.necessaryToWrite(firstSCMP.getMessageType())) {
        // no incrementation necessary - already done inside commands
        firstSCMP.setHeader(SCMPHeaderAttributeKey.MESSAGE_SEQUENCE_NR, msgSequenceNr.getCurrentNr());
      }
View Full Code Here

    }

    SCMPMessage largeScmp = new SCMPMessage(SCMPVersion.CURRENT);
    largeScmp.setBody(sb.toString());

    SCMPCompositeSender largeRequest = new SCMPCompositeSender(largeScmp);

    int offset = 0;
    while (largeRequest.hasNext()) {
      SCMPMessage message = largeRequest.getNext();

      SCMPOffsetPart responsePart = new SCMPOffsetPart(largeScmp, offset, sb.length());
      offset += responsePart.getBodyLength();
      Assert.assertEquals(responsePart.getBody().toString(), message.getBody().toString());
      Assert.assertEquals(responsePart.getBodyLength(), message.getBodyLength());
      Assert.assertEquals(responsePart.getBodyOffset(), message.getBodyOffset());
      Assert.assertEquals(responsePart.getBodyType(), message.getBodyType());
    }

    SCMPOffsetPart firstPart = new SCMPOffsetPart(largeScmp, 0, sb.length());
    SCMPMessage message = largeRequest.getFirst();
    Assert.assertEquals(firstPart.getBody().toString(), message.getBody().toString());
    Assert.assertEquals(firstPart.getBodyLength(), message.getBodyLength());
    Assert.assertEquals(firstPart.getBodyOffset(), message.getBodyOffset());
    Assert.assertEquals(firstPart.getBodyType(), message.getBodyType());
  }
View Full Code Here

    }

    SCMPMessage largeScmp = new SCMPMessage();
    largeScmp.setBody(sb.toString());

    SCMPCompositeSender largeRequest = new SCMPCompositeSender(largeScmp);

    int offset = 0;
    while (largeRequest.hasNext()) {
      SCMPMessage message = largeRequest.getNext();

      SCMPOffsetPart responsePart = new SCMPOffsetPart(largeScmp, offset, sb.length());
      offset += responsePart.getBodyLength();
      Assert.assertEquals(responsePart.getBody().toString(), message.getBody().toString());
      Assert.assertEquals(responsePart.getBodyLength(), message.getBodyLength());
      Assert.assertEquals(responsePart.getBodyOffset(), message.getBodyOffset());
      Assert.assertEquals(responsePart.getBodyType(), message.getBodyType());
    }

    SCMPOffsetPart firstPart = new SCMPOffsetPart(largeScmp, 0, sb.length());
    SCMPMessage message = largeRequest.getFirst();
    Assert.assertEquals(firstPart.getBody().toString(), message.getBody().toString());
    Assert.assertEquals(firstPart.getBodyLength(), message.getBodyLength());
    Assert.assertEquals(firstPart.getBodyOffset(), message.getBodyOffset());
    Assert.assertEquals(firstPart.getBodyType(), message.getBodyType());
  }
View Full Code Here

    try {
      ISCMPMessageCallback requesterCallback = null;
      // differ if message is large or not, sending procedure is different
      if (message.isLargeMessage()) {
        // SCMPLargeRequest handles splitting, works like an iterator
        SCMPCompositeSender largeResponse = new SCMPCompositeSender(message);
        requesterCallback = new SCRequesterSCMPCallback(message, scmpCallback, connectionContext, largeResponse,
            msgSequenceNr);
        // setting up operation timeout after successful send
        TimeoutWrapper timeoutWrapper = new TimeoutWrapper((ITimeout) requesterCallback);
        SCRequesterSCMPCallback reqCallback = (SCRequesterSCMPCallback) requesterCallback;
        ScheduledFuture<TimeoutWrapper> timeout = (ScheduledFuture<TimeoutWrapper>) AppContext.otiScheduler.schedule(
            timeoutWrapper, (long) timeoutMillis, TimeUnit.MILLISECONDS);
        reqCallback.setOperationTimeout(timeout);
        reqCallback.setTimeoutMillis(timeoutMillis);
        // extract first part message & send
        SCMPMessage part = largeResponse.getFirst();
        // handling msgSequenceNr
        if (SCMPMessageSequenceNr.necessaryToWrite(message.getMessageType())) {
          part.setHeader(SCMPHeaderAttributeKey.MESSAGE_SEQUENCE_NR, msgSequenceNr.getCurrentNr());
        }
        // send
View Full Code Here

TOP

Related Classes of org.serviceconnector.scmp.SCMPCompositeSender

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.