Examples of RMSequenceAcknowledgement


Examples of org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement

   }
  
   private static RMSerializable newSequenceAcknowledgement(RMSequence seq)
   {
      // construct SequenceAcknowledgement object
      RMSequenceAcknowledgement sequenceAcknowledgement = rmFactory.newSequenceAcknowledgement();
      sequenceAcknowledgement.setIdentifier(seq.getInboundId());
      Iterator<Long> receivedMessages = seq.getReceivedInboundMessages().iterator();
      if (false == receivedMessages.hasNext())
      {
         sequenceAcknowledgement.setNone();
      }
      else
      {
         while (receivedMessages.hasNext())
         {
            long messageNo = receivedMessages.next();
            RMSequenceAcknowledgement.RMAcknowledgementRange range = sequenceAcknowledgement.newAcknowledgementRange();
            range.setLower(messageNo);
            range.setUpper(messageNo);
            sequenceAcknowledgement.addAcknowledgementRange(range);
         }
      }
     
      return sequenceAcknowledgement;
   }
View Full Code Here

Examples of org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement

    * @param soapMessage soap message from which object will be deserialized
    */
   public final void deserialize(RMSerializable object, RMProvider provider, SOAPMessage soapMessage)
   throws RMException
   {
      RMSequenceAcknowledgement o = (RMSequenceAcknowledgement)object;
      try
      {
         SOAPHeader soapHeader = soapMessage.getSOAPPart().getEnvelope().getHeader();
         RMConstants wsrmConstants = provider.getConstants();
        
         // read required wsrm:SequenceAcknowledgement element
         QName sequenceAckQName = wsrmConstants.getSequenceAcknowledgementQName();
         SOAPElement sequenceAckElement = getRequiredElement(soapHeader, sequenceAckQName, "soap header");

         // read required wsrm:Identifier element
         QName identifierQName = wsrmConstants.getIdentifierQName();
         SOAPElement identifierElement = getRequiredElement(sequenceAckElement, identifierQName, sequenceAckQName);
         String identifier = getRequiredTextContent(identifierElement, identifierQName);
         o.setIdentifier(identifier);
        
         // read optional wsrm:Final element
         QName finalQName = wsrmConstants.getFinalQName();
         SOAPElement finalElement = getOptionalElement(sequenceAckElement, finalQName, sequenceAckQName);
         if (finalElement != null)
         {
            o.setFinal();
         }
        
         // read optional wsrm:None element
         QName noneQName = wsrmConstants.getNoneQName();
         SOAPElement noneElement = getOptionalElement(sequenceAckElement, noneQName, sequenceAckQName);
         if (noneElement != null)
         {
            o.setNone();
         }
        
         // read optional wsrm:Nack elements
         QName nackQName = wsrmConstants.getNackQName();
         List<SOAPElement> nackElements = getOptionalElements(sequenceAckElement, nackQName, sequenceAckQName);
         for (SOAPElement nackElement : nackElements)
         {
            String messageId = getRequiredTextContent(nackElement, nackQName);
            o.addNack(stringToLong(messageId, "Unable to parse Nack element text content"));
         }
        
         // read optional wsrm:AcknowledgementRange elements
         QName ackRangeQName = wsrmConstants.getAcknowledgementRangeQName();
         List<SOAPElement> ackRangeElements = getOptionalElements(sequenceAckElement, ackRangeQName, sequenceAckQName);
         if (ackRangeElements.size() != 0)
         {
            QName upperQName = wsrmConstants.getUpperQName();
            QName lowerQName = wsrmConstants.getLowerQName();

            for (SOAPElement ackRangeElement : ackRangeElements)
            {
               RMSequenceAcknowledgement.RMAcknowledgementRange ackRange = o.newAcknowledgementRange();
           
               // read required wsrm:Upper attribute
               String upper = getRequiredTextContent(ackRangeElement, upperQName, ackRangeQName);
               ackRange.setUpper(stringToLong(upper, "Unable to parse Upper attribute text content"));
           
               // read required wsrm:Lower attribute
               String lower = getRequiredTextContent(ackRangeElement, lowerQName, ackRangeQName);
               ackRange.setLower(stringToLong(lower, "Unable to parse Lower attribute text content"));
           
               // set created acknowledgement range
               o.addAcknowledgementRange(ackRange);
            }
         }
      }
      catch (SOAPException se)
      {
View Full Code Here

Examples of org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement

    * @param soapMessage soap message to which object will be serialized
    */
   public final void serialize(RMSerializable object, RMProvider provider, SOAPMessage soapMessage)
   throws RMException
   {
      RMSequenceAcknowledgement o = (RMSequenceAcknowledgement)object;
      try
      {
         SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope();
         RMConstants wsrmConstants = provider.getConstants();
        
         // Add xmlns:wsrm declaration
         soapEnvelope.addNamespaceDeclaration(wsrmConstants.getPrefix(), wsrmConstants.getNamespaceURI());

         // write required wsrm:SequenceAcknowledgement element
         QName sequenceAckQName = wsrmConstants.getSequenceAcknowledgementQName();
         SOAPElement sequenceAckElement = soapEnvelope.getHeader().addChildElement(sequenceAckQName);

         // write required wsrm:Identifier element
         QName identifierQName = wsrmConstants.getIdentifierQName();
         sequenceAckElement.addChildElement(identifierQName).setValue(o.getIdentifier());
        
         if (o.isFinal())
         {
            // write optional wsrm:Final element
            QName finalQName = wsrmConstants.getFinalQName();
            sequenceAckElement.addChildElement(finalQName);
         }
        
         if (o.isNone())
         {
            // write optional wsrm:None element
            QName noneQName = wsrmConstants.getNoneQName();
            sequenceAckElement.addChildElement(noneQName);
         }
        
         List<Long> nacks = o.getNacks();
         if (nacks.size() != 0)
         {
            QName nackQName = wsrmConstants.getNackQName();

            // write optional wsrm:Nack elements
            for (Long messageId : nacks)
            {
               sequenceAckElement.addChildElement(nackQName).setValue(String.valueOf(messageId));
            }
         }
        
         List<RMSequenceAcknowledgement.RMAcknowledgementRange> ackRanges = o.getAcknowledgementRanges();
         if (ackRanges.size() != 0)
         {
            QName acknowledgementRangeQName = wsrmConstants.getAcknowledgementRangeQName();
            QName upperQName = wsrmConstants.getUpperQName();
            QName lowerQName = wsrmConstants.getLowerQName();
View Full Code Here

Examples of org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement

      }
        
      if (RMHelper.isSequenceAcknowledgement(rmReqProps))
      {
         Map<QName, RMSerializable> data = (Map<QName, RMSerializable>)rmReqProps.get(RMConstant.PROTOCOL_MESSAGES_MAPPING);
         RMSequenceAcknowledgement payload = (RMSequenceAcknowledgement)data.get(rmConstants.getSequenceAcknowledgementQName());
         String seqIdentifier = payload.getIdentifier();
         sequence = RMStore.deserialize(dataDir, seqIdentifier, false);
         if (sequence == null)
         {
            throw getUnknownSequenceFault(seqIdentifier);
         }

         for (RMSequenceAcknowledgement.RMAcknowledgementRange range : payload.getAcknowledgementRanges())
         {
            for (long i = range.getLower(); i <= range.getUpper(); i++)
            {
               if (i > sequence.getLastMessageNumber())
               {
                  // invalid acknowledgement - generating fault
                  RMStore.serialize(dataDir, sequence);
                  Map<String, Object> detailsMap = new HashMap<String, Object>(2);
                  detailsMap.put(RMFaultConstant.ACKNOWLEDGEMENT, range);
                  throw new RMFault(RMFaultCode.INVALID_ACKNOWLEDGEMENT, new HashMap<String, Object>(2));
               }

               sequence.addReceivedOutboundMessage(i);
            }
         }

         RMStore.serialize(dataDir, sequence);
      }
     
      if (RMHelper.isTerminateSequence(rmReqProps))
      {
         Map<QName, RMSerializable> data = (Map<QName, RMSerializable>)rmReqProps.get(RMConstant.PROTOCOL_MESSAGES_MAPPING);
         RMTerminateSequence payload = (RMTerminateSequence)data.get(rmConstants.getTerminateSequenceQName());
         String seqIdentifier = payload.getIdentifier();
         sequence = RMStore.deserialize(dataDir, seqIdentifier, true);
         if (sequence == null)
         {
            throw getUnknownSequenceFault(seqIdentifier);
         }

         RMStore.serialize(dataDir, sequence);
         if (RMProvider.get().getMessageFactory().newTerminateSequenceResponse() != null)
         {
            protocolMessages.add(rmConstants.getTerminateSequenceResponseQName());
            protocolMessages.add(rmConstants.getSequenceAcknowledgementQName());
            rmResponseContext.put(RMConstant.SEQUENCE_REFERENCE, sequence);
            isOneWayOperation = false;
         }
         else
         {
            return null; // no WS-RM context propagated - WS-RM 1.0
         }
      }
     
      if (RMHelper.isSequence(rmReqProps))
      {
         Map<QName, RMSerializable> data = (Map<QName, RMSerializable>)rmReqProps.get(RMConstant.PROTOCOL_MESSAGES_MAPPING);
         RMSequence payload = (RMSequence)data.get(rmConstants.getSequenceQName());
         String seqIdentifier = payload.getIdentifier();
         sequence = RMStore.deserialize(dataDir, seqIdentifier, true);
         if (sequence == null)
         {
            throw getUnknownSequenceFault(seqIdentifier);
         }

         try
         {
            sequence.addReceivedInboundMessage(payload.getMessageNumber());
         }
         finally
         {
            RMStore.serialize(dataDir, sequence);
         }
View Full Code Here

Examples of org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement

      }
        
      if (RMHelper.isSequenceAcknowledgement(rmReqProps))
      {
         Map<QName, RMSerializable> data = (Map<QName, RMSerializable>)rmReqProps.get(RMConstant.PROTOCOL_MESSAGES_MAPPING);
         RMSequenceAcknowledgement payload = (RMSequenceAcknowledgement)data.get(rmConstants.getSequenceAcknowledgementQName());
         String seqIdentifier = payload.getIdentifier();
         sequence = RMStore.deserialize(dataDir, seqIdentifier, false);
         if (sequence == null)
         {
            throw getUnknownSequenceFault(seqIdentifier);
         }

         for (RMSequenceAcknowledgement.RMAcknowledgementRange range : payload.getAcknowledgementRanges())
         {
            for (long i = range.getLower(); i <= range.getUpper(); i++)
            {
               if (i > sequence.getLastMessageNumber())
               {
                  // invalid acknowledgement - generating fault
                  RMStore.serialize(dataDir, sequence);
                  Map<String, Object> detailsMap = new HashMap<String, Object>(2);
                  detailsMap.put(RMFaultConstant.ACKNOWLEDGEMENT, range);
                  throw new RMFault(RMFaultCode.INVALID_ACKNOWLEDGEMENT, new HashMap<String, Object>(2));
               }

               sequence.addReceivedOutboundMessage(i);
            }
         }

         RMStore.serialize(dataDir, sequence);
      }
     
      if (RMHelper.isTerminateSequence(rmReqProps))
      {
         Map<QName, RMSerializable> data = (Map<QName, RMSerializable>)rmReqProps.get(RMConstant.PROTOCOL_MESSAGES_MAPPING);
         RMTerminateSequence payload = (RMTerminateSequence)data.get(rmConstants.getTerminateSequenceQName());
         String seqIdentifier = payload.getIdentifier();
         sequence = RMStore.deserialize(dataDir, seqIdentifier, true);
         if (sequence == null)
         {
            throw getUnknownSequenceFault(seqIdentifier);
         }

         RMStore.serialize(dataDir, sequence);
         if (RMProvider.get().getMessageFactory().newTerminateSequenceResponse() != null)
         {
            protocolMessages.add(rmConstants.getTerminateSequenceResponseQName());
            protocolMessages.add(rmConstants.getSequenceAcknowledgementQName());
            rmResponseContext.put(RMConstant.SEQUENCE_REFERENCE, sequence);
            isOneWayOperation = false;
         }
         else
         {
            return null; // no WS-RM context propagated - WS-RM 1.0
         }
      }
     
      if (RMHelper.isSequence(rmReqProps))
      {
         Map<QName, RMSerializable> data = (Map<QName, RMSerializable>)rmReqProps.get(RMConstant.PROTOCOL_MESSAGES_MAPPING);
         RMSequence payload = (RMSequence)data.get(rmConstants.getSequenceQName());
         String seqIdentifier = payload.getIdentifier();
         sequence = RMStore.deserialize(dataDir, seqIdentifier, true);
         if (sequence == null)
         {
            throw getUnknownSequenceFault(seqIdentifier);
         }

         try
         {
            sequence.addReceivedInboundMessage(payload.getMessageNumber());
         }
         finally
         {
            RMStore.serialize(dataDir, sequence);
         }
View Full Code Here

Examples of org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement

    * @param soapMessage soap message from which object will be deserialized
    */
   public final void deserialize(RMSerializable object, RMProvider provider, SOAPMessage soapMessage)
   throws RMException
   {
      RMSequenceAcknowledgement o = (RMSequenceAcknowledgement)object;
      try
      {
         SOAPHeader soapHeader = soapMessage.getSOAPPart().getEnvelope().getHeader();
         RMConstants wsrmConstants = provider.getConstants();
        
         // read required wsrm:SequenceAcknowledgement element
         QName sequenceAckQName = wsrmConstants.getSequenceAcknowledgementQName();
         SOAPElement sequenceAckElement = getRequiredElement(soapHeader, sequenceAckQName, "soap header");

         // read required wsrm:Identifier element
         QName identifierQName = wsrmConstants.getIdentifierQName();
         SOAPElement identifierElement = getRequiredElement(sequenceAckElement, identifierQName, sequenceAckQName);
         String identifier = getRequiredTextContent(identifierElement, identifierQName);
         o.setIdentifier(identifier);
        
         // read optional wsrm:Final element
         QName finalQName = wsrmConstants.getFinalQName();
         SOAPElement finalElement = getOptionalElement(sequenceAckElement, finalQName, sequenceAckQName);
         if (finalElement != null)
         {
            o.setFinal();
         }
        
         // read optional wsrm:None element
         QName noneQName = wsrmConstants.getNoneQName();
         SOAPElement noneElement = getOptionalElement(sequenceAckElement, noneQName, sequenceAckQName);
         if (noneElement != null)
         {
            o.setNone();
         }
        
         // read optional wsrm:Nack elements
         QName nackQName = wsrmConstants.getNackQName();
         List<SOAPElement> nackElements = getOptionalElements(sequenceAckElement, nackQName, sequenceAckQName);
         for (SOAPElement nackElement : nackElements)
         {
            String messageId = getRequiredTextContent(nackElement, nackQName);
            o.addNack(stringToLong(messageId, "Unable to parse Nack element text content"));
         }
        
         // read optional wsrm:AcknowledgementRange elements
         QName ackRangeQName = wsrmConstants.getAcknowledgementRangeQName();
         List<SOAPElement> ackRangeElements = getOptionalElements(sequenceAckElement, ackRangeQName, sequenceAckQName);
         if (ackRangeElements.size() != 0)
         {
            QName upperQName = wsrmConstants.getUpperQName();
            QName lowerQName = wsrmConstants.getLowerQName();

            for (SOAPElement ackRangeElement : ackRangeElements)
            {
               RMSequenceAcknowledgement.RMAcknowledgementRange ackRange = o.newAcknowledgementRange();
           
               // read required wsrm:Upper attribute
               String upper = getRequiredTextContent(ackRangeElement, upperQName, ackRangeQName);
               ackRange.setUpper(stringToLong(upper, "Unable to parse Upper attribute text content"));
           
               // read required wsrm:Lower attribute
               String lower = getRequiredTextContent(ackRangeElement, lowerQName, ackRangeQName);
               ackRange.setLower(stringToLong(lower, "Unable to parse Lower attribute text content"));
           
               // set created acknowledgement range
               o.addAcknowledgementRange(ackRange);
            }
         }
      }
      catch (SOAPException se)
      {
View Full Code Here

Examples of org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement

    * @param soapMessage soap message to which object will be serialized
    */
   public final void serialize(RMSerializable object, RMProvider provider, SOAPMessage soapMessage)
   throws RMException
   {
      RMSequenceAcknowledgement o = (RMSequenceAcknowledgement)object;
      try
      {
         SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope();
         RMConstants wsrmConstants = provider.getConstants();
        
         // Add xmlns:wsrm declaration
         soapEnvelope.addNamespaceDeclaration(wsrmConstants.getPrefix(), wsrmConstants.getNamespaceURI());

         // write required wsrm:SequenceAcknowledgement element
         QName sequenceAckQName = wsrmConstants.getSequenceAcknowledgementQName();
         SOAPElement sequenceAckElement = soapEnvelope.getHeader().addChildElement(sequenceAckQName);

         // write required wsrm:Identifier element
         QName identifierQName = wsrmConstants.getIdentifierQName();
         sequenceAckElement.addChildElement(identifierQName).setValue(o.getIdentifier());
        
         if (o.isFinal())
         {
            // write optional wsrm:Final element
            QName finalQName = wsrmConstants.getFinalQName();
            sequenceAckElement.addChildElement(finalQName);
         }
        
         if (o.isNone())
         {
            // write optional wsrm:None element
            QName noneQName = wsrmConstants.getNoneQName();
            sequenceAckElement.addChildElement(noneQName);
         }
        
         List<Long> nacks = o.getNacks();
         if (nacks.size() != 0)
         {
            QName nackQName = wsrmConstants.getNackQName();

            // write optional wsrm:Nack elements
            for (Long messageId : nacks)
            {
               sequenceAckElement.addChildElement(nackQName).setValue(String.valueOf(messageId));
            }
         }
        
         List<RMSequenceAcknowledgement.RMAcknowledgementRange> ackRanges = o.getAcknowledgementRanges();
         if (ackRanges.size() != 0)
         {
            QName acknowledgementRangeQName = wsrmConstants.getAcknowledgementRangeQName();
            QName upperQName = wsrmConstants.getUpperQName();
            QName lowerQName = wsrmConstants.getLowerQName();
View Full Code Here

Examples of org.jboss.ws.extensions.wsrm.protocol.spi.RMSequenceAcknowledgement

   }
  
   private static RMSerializable newSequenceAcknowledgement(RMSequence seq)
   {
      // construct SequenceAcknowledgement object
      RMSequenceAcknowledgement sequenceAcknowledgement = rmFactory.newSequenceAcknowledgement();
      sequenceAcknowledgement.setIdentifier(seq.getInboundId());
      Iterator<Long> receivedMessages = seq.getReceivedInboundMessages().iterator();
      if (false == receivedMessages.hasNext())
      {
         sequenceAcknowledgement.setNone();
      }
      else
      {
         while (receivedMessages.hasNext())
         {
            long messageNo = receivedMessages.next();
            RMSequenceAcknowledgement.RMAcknowledgementRange range = sequenceAcknowledgement.newAcknowledgementRange();
            range.setLower(messageNo);
            range.setUpper(messageNo);
            sequenceAcknowledgement.addAcknowledgementRange(range);
         }
      }
     
      return sequenceAcknowledgement;
   }
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.