You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by Saminda Abeyruwan <sa...@opensource.lk> on 2005/08/04 12:08:12 UTC

[Sandesha2] WSRM Patch

Hi all,

Could someone please apply this patch for Sandesha2 /Axis2. It contains 
followng  classes,


org.apache.sandesha2.wsrm -

1. Accept
2. AcknowledgementRange
3. AckRequested
4. AcksTo
5. CreateSequence
6. CreateSequecneResponse
7. FaultCode
8. Identifier
9. IOMRMElement
10. LastMessage
11. MessageNumber
12. Nack
13. RMElements
14. SequenceAcknowlegement
15. SequenceFault
16. Sequence
17.  SequenceOffer
18.  TerminateSequence

org.apache.sandesha2 -

1.  Constants

The prior mentioned classes handle the OM elemnts of the SOAP messages 
that have been used in the message exchanges.

Thanks

Saminda

Re: [Sandesha2] WSRM Patch

Posted by Jaliya Ekanayake <ja...@opensource.lk>.
Saminda,

Thanks for the contribution. I applied the patch.

Thanks,

Jaliya


Saminda Abeyruwan wrote:

> Hi all,
>
> Could someone please apply this patch for Sandesha2 /Axis2. It 
> contains followng  classes,
>
>
> org.apache.sandesha2.wsrm -
>
> 1. Accept
> 2. AcknowledgementRange
> 3. AckRequested
> 4. AcksTo
> 5. CreateSequence
> 6. CreateSequecneResponse
> 7. FaultCode
> 8. Identifier
> 9. IOMRMElement
> 10. LastMessage
> 11. MessageNumber
> 12. Nack
> 13. RMElements
> 14. SequenceAcknowlegement
> 15. SequenceFault
> 16. Sequence
> 17.  SequenceOffer
> 18.  TerminateSequence
>
> org.apache.sandesha2 -
>
> 1.  Constants
>
> The prior mentioned classes handle the OM elemnts of the SOAP messages 
> that have been used in the message exchanges.
>
> Thanks
>
> Saminda
>
>------------------------------------------------------------------------
>
>Index: src/org/apache/sandesha2/wsrm/Accept.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/Accept.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/Accept.java	(revision 0)
>@@ -0,0 +1,63 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.addressing.EndpointReference;
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ */
>+public class Accept implements IOMRMElement {
>+	private OMElement acceptElement;
>+	private AcksTo acksTo;
>+	OMNamespace acceptNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public Accept(){
>+		acceptElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.ACCEPT,acceptNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		acceptElement.addChild(acksTo.getSOAPElement());
>+		return acceptElement;
>+	}
>+	
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		acksTo = new AcksTo(new EndpointReference("",""));
>+		acksTo.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		if (acksTo != null){
>+			acksTo.toSOAPEnvelope(acceptElement);
>+		}
>+		messageElement.addChild(acceptElement);
>+		return messageElement;
>+	}
>+	public void setAcksTo(AcksTo acksTo){
>+		this.acksTo = acksTo;
>+	}
>+	public AcksTo getAcksTo(){
>+		return acksTo;
>+	}
>+}
>Index: src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java	(revision 0)
>@@ -0,0 +1,147 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+import java.util.LinkedList;
>+import java.util.List;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class SequenceAcknowledgement implements IOMRMElement {
>+	private OMElement sequenceAcknowledgementElement;
>+	private Identifier identifier;
>+	private List acknowledgementRanges;
>+	private List nackList;
>+	OMNamespace seqAcksNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public SequenceAcknowledgement(){
>+		sequenceAcknowledgementElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.SEQUENCE_ACK,seqAcksNamespace);
>+		acknowledgementRanges = new LinkedList();
>+		nackList = new LinkedList();
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		Iterator iterator = acknowledgementRanges.iterator();
>+		while(iterator.hasNext()){
>+			AcknowledgementRange range = (AcknowledgementRange)iterator.next();
>+			sequenceAcknowledgementElement.addChild(
>+					range.getSOAPElement());
>+			
>+		}
>+		iterator = nackList.iterator();
>+		while(iterator.hasNext()){
>+			Nack nack = (Nack)iterator.next();
>+			sequenceAcknowledgementElement.addChild(
>+					nack.getSOAPElement());
>+		}
>+		sequenceAcknowledgementElement.addChild(identifier.getSOAPElement());
>+		return sequenceAcknowledgementElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		SOAPHeader soapHeader = envelope.getHeader();
>+		Iterator iterator = soapHeader.getChildren();
>+		while (iterator.hasNext()){
>+			OMElement omElement = (OMElement)iterator.next();
>+			if (omElement.getLocalName().equals(Constants.WSRM.SEQUENCE_ACK)){
>+				Iterator childIterator = omElement.getChildren();
>+				while (childIterator.hasNext()){
>+					OMElement childElement = (OMElement)childIterator.next();
>+					if (childElement.getLocalName().equals(Constants.WSRM.ACK_RANGE)){
>+						AcknowledgementRange ackRange = new AcknowledgementRange();
>+						ackRange.fromSOAPEnvelope(childElement);
>+						acknowledgementRanges.add(ackRange);
>+					}
>+					if (childElement.getLocalName().equals(Constants.WSRM.NACK)){
>+						Nack nack = new Nack();	
>+						nack.fromSOAPEnvelope(childElement);
>+						nackList.add(nack);
>+					}
>+					if ( childElement.getLocalName().equals(Constants.WSRM.IDENTIFIER)){
>+						identifier = new Identifier();
>+						identifier.fromSOAPEnvelope(envelope);
>+					}
>+				}
>+			}
>+		}
>+		
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPHeader soapHeader = soapEnvelope.getHeader();
>+		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
>+				Constants.WSRM.SEQUENCE_ACK,seqAcksNamespace);
>+		soapHeaderBlock.setMustUnderstand(true);
>+		//adding ackRanges
>+		Iterator iterator = acknowledgementRanges.iterator();
>+		while(iterator.hasNext()){
>+			AcknowledgementRange ackRange = (AcknowledgementRange)iterator.next();
>+			ackRange.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		iterator = nackList.iterator();
>+		while(iterator.hasNext()){
>+			Nack nack = (Nack)iterator.next();
>+			nack.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		if ( identifier != null){
>+			identifier.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		return envelope;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+	public void setAckRanges(List acknowledgementRagngesList){
>+		acknowledgementRanges = acknowledgementRagngesList;
>+	}
>+	public Nack addNackRangges(Nack nack){
>+		nackList.add(nack);
>+		return nack;
>+	}
>+	public AcknowledgementRange addAcknowledgementRanges(AcknowledgementRange ackRange){
>+		acknowledgementRanges.add(ackRange);
>+		return ackRange;
>+	}
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public List getAcknowledgementRanges(){
>+		return acknowledgementRanges;
>+	}
>+	public List getNackList(){
>+		return nackList;
>+	}
>+	public void addChildElement(OMElement element){
>+		acknowledgementRanges.add(element);
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/SequenceFault.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/SequenceFault.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/SequenceFault.java	(revision 0)
>@@ -0,0 +1,104 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class SequenceFault implements IOMRMElement {
>+	private OMElement sequenceFaultElement;
>+	private FaultCode faultCode;
>+	
>+	OMNamespace sequenceFaultNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public SequenceFault(){
>+		sequenceFaultElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.SEQUENCE_FAULT,sequenceFaultNameSpace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		sequenceFaultElement.addChild(faultCode.getSOAPElement());
>+		return sequenceFaultElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		//only for fault thus not intereated in refactoring
>+		Iterator iterator = envelope.getChildren();
>+		OMElement childElement;
>+		OMElement siblings;
>+		OMElement grandSiblings;
>+		while(iterator.hasNext()){
>+			childElement = (OMElement)iterator.next();
>+			Iterator iteSib1 = childElement.getChildren();
>+			while(iteSib1.hasNext()){
>+				siblings = (OMElement)iteSib1.next();
>+				Iterator iteSib2 = siblings.getChildren(); 
>+				while(iteSib2.hasNext()){
>+					grandSiblings = (OMElement)iteSib2.next();
>+					if(grandSiblings.getLocalName().equals(Constants.WSRM.SEQUENCE_FAULT)){
>+						faultCode = new FaultCode();
>+						faultCode.fromSOAPEnvelope(envelope);
>+					}
>+				}
>+			}
>+		}
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+//		soapelevement will be given here. 
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		
>+		SOAPHeader soapHeader = soapEnvelope.getHeader();
>+		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
>+				Constants.WSRM.SEQUENCE_FAULT,sequenceFaultNameSpace);
>+		soapHeaderBlock.setMustUnderstand(true);
>+		
>+		
>+        if (faultCode != null) {
>+            faultCode.toSOAPEnvelope(soapHeaderBlock);
>+        }
>+		
>+		return envelope;
>+		
>+	}
>+	public void setFaultCode(FaultCode faultCode){
>+		this.faultCode = faultCode;
>+	}
>+	public FaultCode getFaultCode(){
>+		return faultCode;
>+	}
>+	public void setSequenceFaultElement(OMElement sequenceFault){
>+		sequenceFaultElement = sequenceFault;
>+	}
>+	public OMElement getSequenceFaultElement(){
>+		return sequenceFaultElement;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/FaultCode.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/FaultCode.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/FaultCode.java	(revision 0)
>@@ -0,0 +1,58 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class FaultCode implements IOMRMElement {
>+	
>+	private OMElement faultCodeElement;
>+	OMNamespace faultCodeNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public FaultCode(){
>+		faultCodeElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.FAULT_CODE,faultCodeNameSpace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		return faultCodeElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		messageElement.addChild(faultCodeElement);
>+		return messageElement;
>+	}
>+	public void setFaultCode(OMElement faultCode){
>+		faultCodeElement = faultCode;
>+	}
>+	public OMElement getFaultCode(){
>+		return faultCodeElement;
>+	}
>+}
>Index: src/org/apache/sandesha2/wsrm/Sequence.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/Sequence.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/Sequence.java	(revision 0)
>@@ -0,0 +1,109 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+
>+public class Sequence implements IOMRMElement {
>+
>+	private OMElement sequenceElement;
>+	private Identifier identifier;
>+	private MessageNumber messageNumber;
>+	private LastMessage lastMessage;
>+	
>+	OMNamespace seqNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public Sequence(){
>+		sequenceElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.SEQUENCE,seqNoNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		sequenceElement.addChild(identifier.getSOAPElement());
>+		sequenceElement.addChild(messageNumber.getSOAPElement());
>+		sequenceElement.addChild(lastMessage.getSOAPElement());
>+		return sequenceElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		lastMessage = new LastMessage();
>+		messageNumber = new MessageNumber();
>+		identifier.fromSOAPEnvelope(envelope);
>+		messageNumber.fromSOAPEnvelope(envelope);
>+		lastMessage.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+	
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		//soapelevement will be given here. 
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		
>+		SOAPHeader soapHeader = soapEnvelope.getHeader();
>+		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
>+				Constants.WSRM.SEQUENCE,seqNoNamespace);
>+		soapHeaderBlock.setMustUnderstand(true);
>+		
>+		if (lastMessage != null) {
>+            lastMessage.toSOAPEnvelope(soapHeaderBlock);
>+        }
>+
>+        if (identifier != null) {
>+            identifier.toSOAPEnvelope(soapHeaderBlock);
>+        }
>+
>+        if (messageNumber != null) {
>+            messageNumber.toSOAPEnvelope(soapHeaderBlock);
>+        }
>+		
>+		return envelope;
>+	}
>+	public void addChildElement(OMElement element) throws OMException{
>+		sequenceElement.addChild(element);
>+	}
>+	
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public LastMessage getLastMessage(){
>+		return lastMessage;
>+	}
>+	public MessageNumber getMessageNumber(){
>+		return messageNumber;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+	public void setLastMessage(LastMessage lastMessage){
>+		this.lastMessage = lastMessage;
>+	}
>+	public void setMessageNumber(MessageNumber messageNumber){
>+		this.messageNumber = messageNumber;
>+	}
>+	
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/LastMessage.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/LastMessage.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/LastMessage.java	(revision 0)
>@@ -0,0 +1,84 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class LastMessage implements IOMRMElement {
>+
>+	private OMElement lastMessageElement;
>+	OMNamespace lastMsgNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public LastMessage(){
>+		lastMessageElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.LAST_MSG,lastMsgNamespace);	
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		return lastMessageElement;
>+	}
>+
>+	private boolean readMNElement(OMElement element){
>+		Iterator iterator = element.getChildren();
>+		while(iterator.hasNext()){
>+			OMNode omNode = (OMNode)iterator.next();
>+			if( omNode.getType() != OMNode.ELEMENT_NODE){
>+				continue;
>+			}
>+			OMElement childElement = (OMElement)omNode;
>+			if (childElement.getLocalName().equals(Constants.WSRM.LAST_MSG)){
>+				lastMessageElement = childElement;
>+				return true;
>+			}else{
>+				readMNElement(childElement);
>+			}
>+		}
>+		return false;
>+	}
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readMNElement(envelope);
>+		return this;
>+	}
>+
>+	
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		//soapheaderblock element will be given
>+		messageElement.addChild(lastMessageElement);
>+		return messageElement;
>+	}
>+	public void setLastMessageElement(OMElement lastMsgElement){
>+		lastMessageElement = lastMsgElement;
>+	}
>+	public OMElement getLastMessageElement(){
>+		return lastMessageElement;
>+	}
>+	public boolean isPresent(){
>+		return (lastMessageElement != null) ? true:false;
>+	}
>+	
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/RMElements.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/RMElements.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/RMElements.java	(revision 0)
>@@ -0,0 +1,126 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class RMElements{
>+	private Sequence sequenceElement;
>+	private SequenceAcknowledgement sequenceAcknowledgementElement;
>+	
>+	private CreateSequence createSequenceElement;
>+	private CreateSequenceResponse createSequenceResponseElement;
>+	private TerminateSequence terminateSequenceElement;
>+
>+	public OMElement getSOAPElement() throws OMException {
>+		//this mehod has no significant in the code
>+		return null;
>+	}
>+	
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		SOAPHeader soapHeader = envelope.getHeader();
>+		Iterator iterator = soapHeader.examineAllHeaderBlocks();
>+		while (iterator.hasNext()){
>+			SOAPHeaderBlock childBlock = (SOAPHeaderBlock)iterator.next();
>+			if (childBlock.getLocalName().equals(Constants.WSRM.SEQUENCE)){
>+				sequenceElement = new Sequence();
>+				childBlock.setMustUnderstand(false);
>+				childBlock.setComplete(true);
>+				sequenceElement.fromSOAPEnvelope(envelope);
>+				
>+			}
>+			if (childBlock.getLocalName().equals(Constants.WSRM.SEQUENCE_ACK)){
>+				sequenceAcknowledgementElement = new SequenceAcknowledgement();
>+				childBlock.setMustUnderstand(false);
>+				childBlock.setComplete(true);
>+				sequenceAcknowledgementElement.fromSOAPEnvelope(envelope);
>+			}
>+		}
>+		createSequenceElement = new CreateSequence();
>+		createSequenceResponseElement = new CreateSequenceResponse();
>+		terminateSequenceElement = new TerminateSequence();
>+		
>+		createSequenceElement.fromSOAPEnvelope(envelope);
>+		createSequenceResponseElement.fromSOAPEnvelope(envelope);
>+		terminateSequenceElement.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public SOAPEnvelope toSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		
>+		
>+		if(sequenceElement != null){
>+			sequenceElement.toSOAPEnvelope(envelope);
>+		}
>+		if ( sequenceAcknowledgementElement != null) {
>+			sequenceAcknowledgementElement.toSOAPEnvelope(envelope);
>+		}
>+		if ( createSequenceElement != null){
>+			createSequenceElement.toSOAPEnvelope(envelope);
>+		}
>+		if (createSequenceResponseElement != null){
>+			createSequenceResponseElement.toSOAPEnvelope(envelope);
>+		}
>+		if (terminateSequenceElement != null){
>+			terminateSequenceElement.toSOAPEnvelope(envelope);
>+		}
>+		return envelope;
>+	}
>+	public CreateSequence getCreateSequence(){
>+		return createSequenceElement;
>+	}
>+	public CreateSequenceResponse getCreateSequenceResponse(){
>+		return createSequenceResponseElement;
>+	}
>+	public Sequence getSequence(){
>+		return sequenceElement;
>+	}
>+	public SequenceAcknowledgement getSequenceAcknowledgement(){
>+		return sequenceAcknowledgementElement;
>+	}
>+	public TerminateSequence getTerminateSequence(){
>+		return terminateSequenceElement;
>+	}
>+	public void setCreateSequence(CreateSequence createSequence){
>+		createSequenceElement = createSequence;
>+	}
>+	public void setCreateSequenceResponse(CreateSequenceResponse createSequenceResponse){
>+		createSequenceResponseElement = createSequenceResponse;
>+	}
>+	public void setSequence(Sequence sequence){
>+		sequenceElement = sequence;
>+	}
>+	public void setSequenceAcknowledgement(SequenceAcknowledgement sequenceAcknowledgement){
>+		sequenceAcknowledgementElement = sequenceAcknowledgement;
>+	}
>+	public void setTerminateSequence(TerminateSequence terminateSequence){
>+		terminateSequenceElement = terminateSequence;
>+	}
>+	
>+	
>+}
>Index: src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java	(revision 0)
>@@ -0,0 +1,81 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPBody;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class CreateSequenceResponse implements IOMRMElement {
>+	private OMElement createSequenceResponseElement;
>+	private Identifier identifier;
>+	private Accept accept;
>+	OMNamespace createSeqResNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public CreateSequenceResponse(){
>+		createSequenceResponseElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.CREATE_SEQUENCE_RESPONSE,createSeqResNoNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		return createSequenceResponseElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		accept = new Accept();
>+		identifier.fromSOAPEnvelope(envelope);
>+		accept.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPBody soapBody = soapEnvelope.getBody();
>+		soapBody.addChild(createSequenceResponseElement);
>+		if( identifier != null ){
>+			identifier.toSOAPEnvelope(createSequenceResponseElement);
>+		}
>+		if( accept != null){
>+			accept.toSOAPEnvelope(createSequenceResponseElement);
>+		}
>+		return envelope;
>+	}
>+	public void addChildElement(OMElement element){
>+		createSequenceResponseElement.addChild(element);
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public void setAccept(Accept accept){
>+		this.accept = accept;
>+	}
>+	public Accept getAccept(){
>+		return accept;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/Nack.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/Nack.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/Nack.java	(revision 0)
>@@ -0,0 +1,86 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class Nack implements IOMRMElement {
>+	private OMElement nackElement;
>+	private long notAckNumber;
>+	OMNamespace nackNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public Nack(){
>+		nackElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.NACK,nackNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		nackElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				new Long(notAckNumber).toString()));
>+		return nackElement;
>+	}
>+	private boolean readNackElement(OMElement element){
>+		Iterator iterator = element.getChildren();
>+		while(iterator.hasNext()){
>+			OMNode omNode = (OMNode)iterator.next();
>+			if(omNode.getType() != OMNode.ELEMENT_NODE){
>+				continue;
>+			}
>+			OMElement childElement = (OMElement)omNode;
>+			if(childElement.getLocalName().equals(Constants.WSRM.NACK)){
>+				notAckNumber = Long.parseLong(childElement.getText());
>+				return true;
>+			}else{
>+				readNackElement(childElement);
>+			}
>+		}
>+		return false;	
>+	}
>+	//duplicate method for the purpose of using comming iteration easily
>+	public Object fromSOAPEnvelope(OMElement element) throws OMException{
>+		notAckNumber = Long.parseLong(element.getText());
>+		return this;
>+	} 
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readNackElement(envelope);
>+		return this;
>+	}
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		nackElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				new Long(notAckNumber).toString()));
>+		messageElement.addChild(nackElement);
>+		return messageElement;
>+	}
>+	public void setNackNumber(long notAckNumber){
>+		this.notAckNumber = notAckNumber;
>+	}
>+	public long getNackNumber(){
>+		return notAckNumber;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/AckRequested.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/AckRequested.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/AckRequested.java	(revision 0)
>@@ -0,0 +1,87 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class AckRequested implements IOMRMElement {
>+	private OMElement ackRequestedElement;
>+	private Identifier identifier;
>+	private MessageNumber messageNumber;
>+	OMNamespace ackReqNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public AckRequested(){
>+		ackRequestedElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.ACK_REQUESTED,ackReqNoNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		ackRequestedElement.addChild(identifier.getSOAPElement());
>+		ackRequestedElement.addChild(messageNumber.getSOAPElement());
>+		return ackRequestedElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		messageNumber = new MessageNumber();
>+		identifier.fromSOAPEnvelope(envelope);
>+		messageNumber.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPHeader soapHeader = soapEnvelope.getHeader();
>+		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
>+				Constants.WSRM.ACK_REQUESTED,ackReqNoNamespace);
>+		soapHeaderBlock.setMustUnderstand(true);
>+		if( identifier != null){
>+			identifier.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		if ( messageNumber != null){
>+			messageNumber.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		
>+		return envelope;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+	public void setMessageNumber(MessageNumber messageNumber){
>+		this.messageNumber = messageNumber;
>+	}
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public MessageNumber getMessageNumber(){
>+		return messageNumber;
>+	}
>+	public void addChildElement(OMElement element){
>+		ackRequestedElement.addChild(element);
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/TerminateSequence.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/TerminateSequence.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/TerminateSequence.java	(revision 0)
>@@ -0,0 +1,70 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPBody;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class TerminateSequence implements IOMRMElement {
>+	private OMElement terminateSequenceElement;
>+	private Identifier identifier;
>+	
>+	OMNamespace terminateSequenceNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public TerminateSequence(){
>+		terminateSequenceElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.TERMINATE_SEQUENCE,terminateSequenceNameSpace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		terminateSequenceElement.addChild(identifier.getSOAPElement());
>+		return terminateSequenceElement;
>+	}
>+	public void addChild(OMElement element){
>+		terminateSequenceElement.addChild(element);
>+	}
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		identifier.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPBody soapBody = soapEnvelope.getBody();
>+		if (identifier != null){
>+			identifier.toSOAPEnvelope(terminateSequenceElement);
>+		}
>+		soapBody.addChild(terminateSequenceElement);
>+		return envelope;
>+	}
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/Identifier.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/Identifier.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/Identifier.java	(revision 0)
>@@ -0,0 +1,121 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+public class Identifier implements Constants, IOMRMElement {
>+	private OMElement identifierElement;
>+
>+	private String identifier;
>+
>+	OMNamespace wsuNamespace = OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+			Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+
>+	public Identifier() {
>+
>+		identifierElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.IDENTIFIER, wsuNamespace);
>+	}
>+
>+	public void setURI(String uri) throws OMException {
>+		identifierElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(uri));
>+	}
>+
>+	public void setIndentifer(String identifier) {
>+		this.identifier = identifier;
>+	}
>+
>+	public String getIdentifier() {
>+		return identifier;
>+	}
>+
>+	public OMElement getSOAPElement() throws OMException {
>+		identifierElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				identifier));
>+		return identifierElement;
>+	}
>+
>+	private boolean readElement(OMElement element) {
>+		Iterator iterator = element.getChildren();
>+		while (iterator.hasNext()) {
>+			OMNode omnode = (OMNode)iterator.next();
>+			if(omnode.getType() != OMNode.ELEMENT_NODE){
>+				continue ;
>+			}				
>+			OMElement childElement = (OMElement)omnode ;
>+			if (childElement.getLocalName().equals(Constants.WSRM.IDENTIFIER)) {
>+				identifier = childElement.getText();
>+				return true;
>+			}else {
>+			   readElement(childElement);	
>+			}
>+		}
>+		return false;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readElement(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement)
>+			throws OMException {
>+		//soapheaderblock will be given or anyother block reference to the requirment
>+		if (identifier == null || identifier == "") {
>+			throw new OMException("Set Identifier");
>+		}
>+		identifierElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				identifier));
>+		messageElement.addChild(identifierElement);
>+		return messageElement;
>+	}
>+
>+	public String toString() {
>+		return identifier;
>+	}
>+
>+	public boolean equals(Object obj) {
>+
>+		if (obj instanceof Identifier) {
>+			if (this.identifier == ((String) (((Identifier) obj)
>+					.getIdentifier()))) {
>+				return true;
>+			} else {
>+				return false;
>+			}
>+		} else {
>+			return false;
>+		}
>+	}
>+
>+	public int hashCode() {
>+		return identifier.hashCode();
>+	}
>+}
>\ No newline at end of file
>Index: src/org/apache/sandesha2/wsrm/AcknowledgementRange.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/AcknowledgementRange.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/AcknowledgementRange.java	(revision 0)
>@@ -0,0 +1,118 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMAttribute;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ */
>+public class AcknowledgementRange implements IOMRMElement {
>+	private OMElement acknowledgementRangeElement;
>+	private long maxValue;
>+	private long minValue;
>+	OMNamespace ackRangeNamespace = 
>+        OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public AcknowledgementRange(){
>+		acknowledgementRangeElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.ACK_RANGE,ackRangeNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		acknowledgementRangeElement.addAttribute(Constants.WSRM.LOWER,
>+				new Long(minValue).toString(),ackRangeNamespace);
>+		acknowledgementRangeElement.addAttribute(Constants.WSRM.UPPER,
>+				new Long(maxValue).toString(),ackRangeNamespace);
>+		return acknowledgementRangeElement;
>+	}
>+
>+	private boolean readACKRangeElement(OMElement element){
>+		Iterator iterator = element.getChildren();
>+		while(iterator.hasNext()){
>+			OMNode omNode = (OMNode)iterator.next();
>+			if(omNode.getType() != OMNode.ELEMENT_NODE){
>+				continue;
>+			}
>+			OMElement childElement = (OMElement)omNode;
>+			if(childElement.getLocalName().equals(Constants.WSRM.ACK_RANGE)){
>+				Iterator ite = childElement.getAttributes();
>+				while(ite.hasNext()){
>+					OMAttribute attr = (OMAttribute)ite.next();
>+					if (attr.getLocalName().equals(Constants.WSRM.LOWER)){
>+						minValue = Long.parseLong(attr.getValue());
>+					}
>+					else{										
>+						maxValue = Long.parseLong(attr.getValue());
>+						return true;
>+					}
>+				}
>+			}else{
>+				readACKRangeElement(childElement);
>+			}
>+		}
>+		return false;
>+	}
>+	//this fromSOAPEnvelope(OMElement element) for the purpose of making the coming iteration easier
>+	public Object fromSOAPEnvelope(OMElement element) throws OMException{
>+		Iterator iterator = element.getAttributes();
>+		while(iterator.hasNext()){
>+			OMAttribute attr = (OMAttribute)iterator.next();
>+			if (attr.getLocalName().equals(Constants.WSRM.LOWER)){
>+				minValue = Long.parseLong(attr.getValue());
>+			}
>+			else{										
>+				maxValue = Long.parseLong(attr.getValue());
>+			}
>+		}
>+		return this;
>+	} 		
>+	
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readACKRangeElement(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		acknowledgementRangeElement.addAttribute(Constants.WSRM.LOWER,
>+				new Long(minValue).toString(),ackRangeNamespace);
>+		acknowledgementRangeElement.addAttribute(Constants.WSRM.UPPER,
>+				new Long(maxValue).toString(),ackRangeNamespace);
>+		messageElement.addChild(acknowledgementRangeElement);
>+		return messageElement;
>+	}
>+	public void setMinValue(long minValue){
>+		this.minValue = minValue;
>+	}
>+	public void setMaxValue(long maxValue){
>+		this.maxValue = maxValue;		
>+	}
>+	public long getMinValue(){
>+		return minValue;
>+	}
>+	public long getMaxValue(){
>+		return maxValue;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/AcksTo.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/AcksTo.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/AcksTo.java	(revision 0)
>@@ -0,0 +1,87 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.addressing.EndpointReference;
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class AcksTo implements IOMRMElement{
>+	private EndpointReference EPR;
>+	private OMElement acksToElement;
>+	
>+	OMNamespace acksToNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public AcksTo(EndpointReference EPR){
>+		acksToElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.ACKS_TO,acksToNameSpace);
>+		this.EPR = EPR;
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		acksToElement.addChild(OMAbstractFactory.getSOAP12Factory()
>+				.createText(EPR.getAddress()));
>+		return acksToElement;
>+	}
>+
>+	public boolean readEPRElement(OMElement element){
>+		Iterator iterator = element.getChildren();
>+		while(iterator.hasNext()){
>+			OMNode omNode = (OMNode)iterator.next();
>+			if(omNode.getType() != OMNode.ELEMENT_NODE){
>+				continue;
>+			}else{
>+				OMElement omElement = (OMElement)omNode;
>+				if (omElement.getLocalName().equals(Constants.WSRM.ACKS_TO)){
>+					String uri = omElement.getText();
>+					EPR = new EndpointReference("",uri);
>+					return true;
>+				}else{
>+					readEPRElement(omElement);
>+				}
>+			}			
>+		}
>+		return false;
>+	}
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readEPRElement(envelope);
>+		return this;
>+	}
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		acksToElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				EPR.getAddress()));
>+		messageElement.addChild(acksToElement);
>+		return messageElement;
>+	}
>+	public EndpointReference getEndPointReference(){
>+		return EPR;
>+	}
>+	public void setEndPointReference(EndpointReference EPR){
>+		this.EPR = EPR;
>+	}
>+	
>+}
>Index: src/org/apache/sandesha2/wsrm/SequenceOffer.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/SequenceOffer.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/SequenceOffer.java	(revision 0)
>@@ -0,0 +1,71 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class SequenceOffer implements IOMRMElement {
>+	private OMElement sequenceOfferElement;
>+	private Identifier identifier;
>+	
>+	OMNamespace sequenceOfferNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public SequenceOffer(){
>+		sequenceOfferElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.SEQUENCE_OFFER,sequenceOfferNameSpace);
>+	}
>+	public void addChildElement(OMElement element) throws OMException{
>+		sequenceOfferElement.addChild(element);
>+	}
>+	
>+	public OMElement getSOAPElement() throws OMException {
>+		sequenceOfferElement.addChild(identifier.getSOAPElement());
>+		return sequenceOfferElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		identifier.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		if (identifier != null){
>+			identifier.toSOAPEnvelope(sequenceOfferElement);
>+		}
>+		messageElement.addChild(sequenceOfferElement);
>+		return messageElement;
>+	}
>+	public Identifier getIdentifer(){
>+		return identifier;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;		
>+	}
>+	
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/CreateSequence.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/CreateSequence.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/CreateSequence.java	(revision 0)
>@@ -0,0 +1,82 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.addressing.EndpointReference;
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPBody;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class CreateSequence implements IOMRMElement {
>+	private OMElement createSequenceElement;
>+	private AcksTo acksTo;
>+	private SequenceOffer sequenceOffer;
>+	
>+	OMNamespace createSeqNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public CreateSequence(){
>+		createSequenceElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.CREATE_SEQUENCE,
>+				createSeqNoNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		createSequenceElement.addChild(sequenceOffer.getSOAPElement());
>+		createSequenceElement.addChild(acksTo.getSOAPElement());
>+		return createSequenceElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		sequenceOffer = new SequenceOffer();
>+		acksTo = new AcksTo(new EndpointReference("",""));
>+		sequenceOffer.fromSOAPEnvelope(envelope);
>+		acksTo.fromSOAPEnvelope(envelope);		
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPBody soapBody = soapEnvelope.getBody();
>+		soapBody.addChild(createSequenceElement);
>+		if(sequenceOffer != null){
>+			sequenceOffer.toSOAPEnvelope(createSequenceElement);
>+		}
>+		if (acksTo != null){
>+			acksTo.toSOAPEnvelope(createSequenceElement);
>+		}
>+		return envelope;
>+	}
>+	public void setAcksTo(AcksTo acksTo){
>+		this.acksTo = acksTo;
>+	}
>+	public void setSequenceOffer(SequenceOffer sequenceOffer){
>+		this.sequenceOffer = sequenceOffer;
>+	}
>+	public AcksTo getAcksTo(){
>+		return acksTo;
>+	}
>+	public SequenceOffer getSequenceOffer(){
>+		return sequenceOffer;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/IOMRMElement.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/IOMRMElement.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/IOMRMElement.java	(revision 0)
>@@ -0,0 +1,32 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+
>+public interface IOMRMElement {
>+	public OMElement getSOAPElement() throws OMException;
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException;
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException;
>+}
>Index: src/org/apache/sandesha2/wsrm/MessageNumber.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/MessageNumber.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/MessageNumber.java	(revision 0)
>@@ -0,0 +1,97 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class MessageNumber implements IOMRMElement {
>+	
>+	private long messageNumber;
>+	private OMElement messageNoElement;
>+	
>+	OMNamespace msgNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);	
>+	public MessageNumber(){
>+		messageNoElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.MSG_NUMBER,msgNoNamespace);
>+	}
>+	
>+	public long getMessageNumber(){
>+		return messageNumber;
>+	}
>+	public void setMessageNumber(long messageNumber){
>+		this.messageNumber = messageNumber;
>+	}
>+	private boolean readMNElement(OMElement element) {
>+		Iterator iterator = element.getChildren();
>+		while (iterator.hasNext()) {
>+			OMNode omnode = (OMNode)iterator.next();
>+			if(omnode.getType() != OMNode.ELEMENT_NODE){
>+				continue ;
>+			}				
>+			OMElement childElement = (OMElement)omnode ;
>+			if (childElement.getLocalName().equals(Constants.WSRM.MSG_NUMBER)) {
>+				messageNumber = Long.parseLong(childElement.getText());
>+				return true;
>+			}else {
>+			   readMNElement(childElement);	
>+			}
>+		}
>+		return false;
>+	}
>+	
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readMNElement(envelope);
>+		return this;
>+	}
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		//soapheaderblock element will be given. 
>+		long msgNo = getMessageNumber();
>+		if (msgNo <= 0 ){
>+			throw new OMException("Set A Valid Message Number");
>+		}
>+		messageNoElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				new Long(msgNo).toString()));
>+		messageElement.addChild(messageNoElement);
>+		
>+		return messageElement;
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		long msgNo = getMessageNumber();
>+		messageNoElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(new 
>+					Long(msgNo).toString()));
>+		
>+		return messageNoElement;
>+	}
>+	public OMElement getMessageNumberElement(){
>+		return messageNoElement;
>+	}
>+
>+
>+}
>Index: src/org/apache/sandesha2/Constants.java
>===================================================================
>--- src/org/apache/sandesha2/Constants.java	(revision 0)
>+++ src/org/apache/sandesha2/Constants.java	(revision 0)
>@@ -0,0 +1,61 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public interface Constants {
>+
>+	public interface WSRM{
>+		public static final String NS_PREFIX_RM = "wsrm";
>+        public static final String NS_URI_RM = "http://schemas.xmlsoap.org/ws/2005/02/rm";
>+        public static final String MSG_NUMBER = "MessageaNumber";
>+        public static final String LAST_MSG = "LastMessage";
>+        public static final String SEQUENCE = "Sequence";
>+        public static final String SEQUENCE_OFFER = "Offer";
>+        public static final String TERMINATE_SEQUENCE = "TerminateSequence";
>+        public static final String FAULT_CODE = "FaultCode";
>+        public static final String SEQUENCE_FAULT = "SequenceFault";
>+        public static final String ACKS_TO = "AcksTo";
>+        public static final String CREATE_SEQUENCE = "CreateSequence";
>+        public static final String CREATE_SEQUENCE_RESPONSE = "CreateSequenceResponse";
>+        public static final String ACK_REQUESTED = "AckRequested";
>+        public static final String ACK_RANGE = "AcknowledgementRange";
>+        public static final String UPPER = "Upper";
>+        public static final String LOWER = "Lower";
>+        public static final String NACK = "Nack";
>+        public static final String SEQUENCE_ACK = "SequenceAcknowledgement";
>+        public static final String IDENTIFIER = "Identifier";
>+        public static final String ACCEPT = "Accept";
>+    }
>+
>+      String RM_HEADERS="rmHeaders";
>+      String SEQUENCE="sequence";
>+      String MESSAGE_NUMBER="messageNumber";
>+
>+      String MESSAGE_TYPE ="messageType";
>+
>+      String CREATE_SEQ_REQ="createSequenceReq";
>+      String CREATE_SEQ_RES="createSequenceRes";
>+      String ACKNOWLEDGEMENT="acknowledgement";
>+      String IN_MESSAGE="inMessage";
>+      String OUT_MESSAGE="outMessage";
>+      String FAULT_MESSAGE="faultMessage";
>+
>+}
>
>  
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org


Re: [Sandesha2] WSRM Patch

Posted by Jaliya Ekanayake <ja...@opensource.lk>.
Saminda,

Thanks for the contribution. I applied the patch.

Thanks,

Jaliya


Saminda Abeyruwan wrote:

> Hi all,
>
> Could someone please apply this patch for Sandesha2 /Axis2. It 
> contains followng  classes,
>
>
> org.apache.sandesha2.wsrm -
>
> 1. Accept
> 2. AcknowledgementRange
> 3. AckRequested
> 4. AcksTo
> 5. CreateSequence
> 6. CreateSequecneResponse
> 7. FaultCode
> 8. Identifier
> 9. IOMRMElement
> 10. LastMessage
> 11. MessageNumber
> 12. Nack
> 13. RMElements
> 14. SequenceAcknowlegement
> 15. SequenceFault
> 16. Sequence
> 17.  SequenceOffer
> 18.  TerminateSequence
>
> org.apache.sandesha2 -
>
> 1.  Constants
>
> The prior mentioned classes handle the OM elemnts of the SOAP messages 
> that have been used in the message exchanges.
>
> Thanks
>
> Saminda
>
>------------------------------------------------------------------------
>
>Index: src/org/apache/sandesha2/wsrm/Accept.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/Accept.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/Accept.java	(revision 0)
>@@ -0,0 +1,63 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.addressing.EndpointReference;
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ */
>+public class Accept implements IOMRMElement {
>+	private OMElement acceptElement;
>+	private AcksTo acksTo;
>+	OMNamespace acceptNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public Accept(){
>+		acceptElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.ACCEPT,acceptNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		acceptElement.addChild(acksTo.getSOAPElement());
>+		return acceptElement;
>+	}
>+	
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		acksTo = new AcksTo(new EndpointReference("",""));
>+		acksTo.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		if (acksTo != null){
>+			acksTo.toSOAPEnvelope(acceptElement);
>+		}
>+		messageElement.addChild(acceptElement);
>+		return messageElement;
>+	}
>+	public void setAcksTo(AcksTo acksTo){
>+		this.acksTo = acksTo;
>+	}
>+	public AcksTo getAcksTo(){
>+		return acksTo;
>+	}
>+}
>Index: src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/SequenceAcknowledgement.java	(revision 0)
>@@ -0,0 +1,147 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+import java.util.LinkedList;
>+import java.util.List;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class SequenceAcknowledgement implements IOMRMElement {
>+	private OMElement sequenceAcknowledgementElement;
>+	private Identifier identifier;
>+	private List acknowledgementRanges;
>+	private List nackList;
>+	OMNamespace seqAcksNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public SequenceAcknowledgement(){
>+		sequenceAcknowledgementElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.SEQUENCE_ACK,seqAcksNamespace);
>+		acknowledgementRanges = new LinkedList();
>+		nackList = new LinkedList();
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		Iterator iterator = acknowledgementRanges.iterator();
>+		while(iterator.hasNext()){
>+			AcknowledgementRange range = (AcknowledgementRange)iterator.next();
>+			sequenceAcknowledgementElement.addChild(
>+					range.getSOAPElement());
>+			
>+		}
>+		iterator = nackList.iterator();
>+		while(iterator.hasNext()){
>+			Nack nack = (Nack)iterator.next();
>+			sequenceAcknowledgementElement.addChild(
>+					nack.getSOAPElement());
>+		}
>+		sequenceAcknowledgementElement.addChild(identifier.getSOAPElement());
>+		return sequenceAcknowledgementElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		SOAPHeader soapHeader = envelope.getHeader();
>+		Iterator iterator = soapHeader.getChildren();
>+		while (iterator.hasNext()){
>+			OMElement omElement = (OMElement)iterator.next();
>+			if (omElement.getLocalName().equals(Constants.WSRM.SEQUENCE_ACK)){
>+				Iterator childIterator = omElement.getChildren();
>+				while (childIterator.hasNext()){
>+					OMElement childElement = (OMElement)childIterator.next();
>+					if (childElement.getLocalName().equals(Constants.WSRM.ACK_RANGE)){
>+						AcknowledgementRange ackRange = new AcknowledgementRange();
>+						ackRange.fromSOAPEnvelope(childElement);
>+						acknowledgementRanges.add(ackRange);
>+					}
>+					if (childElement.getLocalName().equals(Constants.WSRM.NACK)){
>+						Nack nack = new Nack();	
>+						nack.fromSOAPEnvelope(childElement);
>+						nackList.add(nack);
>+					}
>+					if ( childElement.getLocalName().equals(Constants.WSRM.IDENTIFIER)){
>+						identifier = new Identifier();
>+						identifier.fromSOAPEnvelope(envelope);
>+					}
>+				}
>+			}
>+		}
>+		
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPHeader soapHeader = soapEnvelope.getHeader();
>+		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
>+				Constants.WSRM.SEQUENCE_ACK,seqAcksNamespace);
>+		soapHeaderBlock.setMustUnderstand(true);
>+		//adding ackRanges
>+		Iterator iterator = acknowledgementRanges.iterator();
>+		while(iterator.hasNext()){
>+			AcknowledgementRange ackRange = (AcknowledgementRange)iterator.next();
>+			ackRange.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		iterator = nackList.iterator();
>+		while(iterator.hasNext()){
>+			Nack nack = (Nack)iterator.next();
>+			nack.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		if ( identifier != null){
>+			identifier.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		return envelope;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+	public void setAckRanges(List acknowledgementRagngesList){
>+		acknowledgementRanges = acknowledgementRagngesList;
>+	}
>+	public Nack addNackRangges(Nack nack){
>+		nackList.add(nack);
>+		return nack;
>+	}
>+	public AcknowledgementRange addAcknowledgementRanges(AcknowledgementRange ackRange){
>+		acknowledgementRanges.add(ackRange);
>+		return ackRange;
>+	}
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public List getAcknowledgementRanges(){
>+		return acknowledgementRanges;
>+	}
>+	public List getNackList(){
>+		return nackList;
>+	}
>+	public void addChildElement(OMElement element){
>+		acknowledgementRanges.add(element);
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/SequenceFault.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/SequenceFault.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/SequenceFault.java	(revision 0)
>@@ -0,0 +1,104 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class SequenceFault implements IOMRMElement {
>+	private OMElement sequenceFaultElement;
>+	private FaultCode faultCode;
>+	
>+	OMNamespace sequenceFaultNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public SequenceFault(){
>+		sequenceFaultElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.SEQUENCE_FAULT,sequenceFaultNameSpace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		sequenceFaultElement.addChild(faultCode.getSOAPElement());
>+		return sequenceFaultElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		//only for fault thus not intereated in refactoring
>+		Iterator iterator = envelope.getChildren();
>+		OMElement childElement;
>+		OMElement siblings;
>+		OMElement grandSiblings;
>+		while(iterator.hasNext()){
>+			childElement = (OMElement)iterator.next();
>+			Iterator iteSib1 = childElement.getChildren();
>+			while(iteSib1.hasNext()){
>+				siblings = (OMElement)iteSib1.next();
>+				Iterator iteSib2 = siblings.getChildren(); 
>+				while(iteSib2.hasNext()){
>+					grandSiblings = (OMElement)iteSib2.next();
>+					if(grandSiblings.getLocalName().equals(Constants.WSRM.SEQUENCE_FAULT)){
>+						faultCode = new FaultCode();
>+						faultCode.fromSOAPEnvelope(envelope);
>+					}
>+				}
>+			}
>+		}
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+//		soapelevement will be given here. 
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		
>+		SOAPHeader soapHeader = soapEnvelope.getHeader();
>+		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
>+				Constants.WSRM.SEQUENCE_FAULT,sequenceFaultNameSpace);
>+		soapHeaderBlock.setMustUnderstand(true);
>+		
>+		
>+        if (faultCode != null) {
>+            faultCode.toSOAPEnvelope(soapHeaderBlock);
>+        }
>+		
>+		return envelope;
>+		
>+	}
>+	public void setFaultCode(FaultCode faultCode){
>+		this.faultCode = faultCode;
>+	}
>+	public FaultCode getFaultCode(){
>+		return faultCode;
>+	}
>+	public void setSequenceFaultElement(OMElement sequenceFault){
>+		sequenceFaultElement = sequenceFault;
>+	}
>+	public OMElement getSequenceFaultElement(){
>+		return sequenceFaultElement;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/FaultCode.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/FaultCode.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/FaultCode.java	(revision 0)
>@@ -0,0 +1,58 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class FaultCode implements IOMRMElement {
>+	
>+	private OMElement faultCodeElement;
>+	OMNamespace faultCodeNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public FaultCode(){
>+		faultCodeElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.FAULT_CODE,faultCodeNameSpace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		return faultCodeElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		messageElement.addChild(faultCodeElement);
>+		return messageElement;
>+	}
>+	public void setFaultCode(OMElement faultCode){
>+		faultCodeElement = faultCode;
>+	}
>+	public OMElement getFaultCode(){
>+		return faultCodeElement;
>+	}
>+}
>Index: src/org/apache/sandesha2/wsrm/Sequence.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/Sequence.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/Sequence.java	(revision 0)
>@@ -0,0 +1,109 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+
>+public class Sequence implements IOMRMElement {
>+
>+	private OMElement sequenceElement;
>+	private Identifier identifier;
>+	private MessageNumber messageNumber;
>+	private LastMessage lastMessage;
>+	
>+	OMNamespace seqNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public Sequence(){
>+		sequenceElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.SEQUENCE,seqNoNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		sequenceElement.addChild(identifier.getSOAPElement());
>+		sequenceElement.addChild(messageNumber.getSOAPElement());
>+		sequenceElement.addChild(lastMessage.getSOAPElement());
>+		return sequenceElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		lastMessage = new LastMessage();
>+		messageNumber = new MessageNumber();
>+		identifier.fromSOAPEnvelope(envelope);
>+		messageNumber.fromSOAPEnvelope(envelope);
>+		lastMessage.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+	
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		//soapelevement will be given here. 
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		
>+		SOAPHeader soapHeader = soapEnvelope.getHeader();
>+		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
>+				Constants.WSRM.SEQUENCE,seqNoNamespace);
>+		soapHeaderBlock.setMustUnderstand(true);
>+		
>+		if (lastMessage != null) {
>+            lastMessage.toSOAPEnvelope(soapHeaderBlock);
>+        }
>+
>+        if (identifier != null) {
>+            identifier.toSOAPEnvelope(soapHeaderBlock);
>+        }
>+
>+        if (messageNumber != null) {
>+            messageNumber.toSOAPEnvelope(soapHeaderBlock);
>+        }
>+		
>+		return envelope;
>+	}
>+	public void addChildElement(OMElement element) throws OMException{
>+		sequenceElement.addChild(element);
>+	}
>+	
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public LastMessage getLastMessage(){
>+		return lastMessage;
>+	}
>+	public MessageNumber getMessageNumber(){
>+		return messageNumber;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+	public void setLastMessage(LastMessage lastMessage){
>+		this.lastMessage = lastMessage;
>+	}
>+	public void setMessageNumber(MessageNumber messageNumber){
>+		this.messageNumber = messageNumber;
>+	}
>+	
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/LastMessage.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/LastMessage.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/LastMessage.java	(revision 0)
>@@ -0,0 +1,84 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class LastMessage implements IOMRMElement {
>+
>+	private OMElement lastMessageElement;
>+	OMNamespace lastMsgNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public LastMessage(){
>+		lastMessageElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.LAST_MSG,lastMsgNamespace);	
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		return lastMessageElement;
>+	}
>+
>+	private boolean readMNElement(OMElement element){
>+		Iterator iterator = element.getChildren();
>+		while(iterator.hasNext()){
>+			OMNode omNode = (OMNode)iterator.next();
>+			if( omNode.getType() != OMNode.ELEMENT_NODE){
>+				continue;
>+			}
>+			OMElement childElement = (OMElement)omNode;
>+			if (childElement.getLocalName().equals(Constants.WSRM.LAST_MSG)){
>+				lastMessageElement = childElement;
>+				return true;
>+			}else{
>+				readMNElement(childElement);
>+			}
>+		}
>+		return false;
>+	}
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readMNElement(envelope);
>+		return this;
>+	}
>+
>+	
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		//soapheaderblock element will be given
>+		messageElement.addChild(lastMessageElement);
>+		return messageElement;
>+	}
>+	public void setLastMessageElement(OMElement lastMsgElement){
>+		lastMessageElement = lastMsgElement;
>+	}
>+	public OMElement getLastMessageElement(){
>+		return lastMessageElement;
>+	}
>+	public boolean isPresent(){
>+		return (lastMessageElement != null) ? true:false;
>+	}
>+	
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/RMElements.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/RMElements.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/RMElements.java	(revision 0)
>@@ -0,0 +1,126 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class RMElements{
>+	private Sequence sequenceElement;
>+	private SequenceAcknowledgement sequenceAcknowledgementElement;
>+	
>+	private CreateSequence createSequenceElement;
>+	private CreateSequenceResponse createSequenceResponseElement;
>+	private TerminateSequence terminateSequenceElement;
>+
>+	public OMElement getSOAPElement() throws OMException {
>+		//this mehod has no significant in the code
>+		return null;
>+	}
>+	
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		SOAPHeader soapHeader = envelope.getHeader();
>+		Iterator iterator = soapHeader.examineAllHeaderBlocks();
>+		while (iterator.hasNext()){
>+			SOAPHeaderBlock childBlock = (SOAPHeaderBlock)iterator.next();
>+			if (childBlock.getLocalName().equals(Constants.WSRM.SEQUENCE)){
>+				sequenceElement = new Sequence();
>+				childBlock.setMustUnderstand(false);
>+				childBlock.setComplete(true);
>+				sequenceElement.fromSOAPEnvelope(envelope);
>+				
>+			}
>+			if (childBlock.getLocalName().equals(Constants.WSRM.SEQUENCE_ACK)){
>+				sequenceAcknowledgementElement = new SequenceAcknowledgement();
>+				childBlock.setMustUnderstand(false);
>+				childBlock.setComplete(true);
>+				sequenceAcknowledgementElement.fromSOAPEnvelope(envelope);
>+			}
>+		}
>+		createSequenceElement = new CreateSequence();
>+		createSequenceResponseElement = new CreateSequenceResponse();
>+		terminateSequenceElement = new TerminateSequence();
>+		
>+		createSequenceElement.fromSOAPEnvelope(envelope);
>+		createSequenceResponseElement.fromSOAPEnvelope(envelope);
>+		terminateSequenceElement.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public SOAPEnvelope toSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		
>+		
>+		if(sequenceElement != null){
>+			sequenceElement.toSOAPEnvelope(envelope);
>+		}
>+		if ( sequenceAcknowledgementElement != null) {
>+			sequenceAcknowledgementElement.toSOAPEnvelope(envelope);
>+		}
>+		if ( createSequenceElement != null){
>+			createSequenceElement.toSOAPEnvelope(envelope);
>+		}
>+		if (createSequenceResponseElement != null){
>+			createSequenceResponseElement.toSOAPEnvelope(envelope);
>+		}
>+		if (terminateSequenceElement != null){
>+			terminateSequenceElement.toSOAPEnvelope(envelope);
>+		}
>+		return envelope;
>+	}
>+	public CreateSequence getCreateSequence(){
>+		return createSequenceElement;
>+	}
>+	public CreateSequenceResponse getCreateSequenceResponse(){
>+		return createSequenceResponseElement;
>+	}
>+	public Sequence getSequence(){
>+		return sequenceElement;
>+	}
>+	public SequenceAcknowledgement getSequenceAcknowledgement(){
>+		return sequenceAcknowledgementElement;
>+	}
>+	public TerminateSequence getTerminateSequence(){
>+		return terminateSequenceElement;
>+	}
>+	public void setCreateSequence(CreateSequence createSequence){
>+		createSequenceElement = createSequence;
>+	}
>+	public void setCreateSequenceResponse(CreateSequenceResponse createSequenceResponse){
>+		createSequenceResponseElement = createSequenceResponse;
>+	}
>+	public void setSequence(Sequence sequence){
>+		sequenceElement = sequence;
>+	}
>+	public void setSequenceAcknowledgement(SequenceAcknowledgement sequenceAcknowledgement){
>+		sequenceAcknowledgementElement = sequenceAcknowledgement;
>+	}
>+	public void setTerminateSequence(TerminateSequence terminateSequence){
>+		terminateSequenceElement = terminateSequence;
>+	}
>+	
>+	
>+}
>Index: src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/CreateSequenceResponse.java	(revision 0)
>@@ -0,0 +1,81 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPBody;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class CreateSequenceResponse implements IOMRMElement {
>+	private OMElement createSequenceResponseElement;
>+	private Identifier identifier;
>+	private Accept accept;
>+	OMNamespace createSeqResNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public CreateSequenceResponse(){
>+		createSequenceResponseElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.CREATE_SEQUENCE_RESPONSE,createSeqResNoNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		return createSequenceResponseElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		accept = new Accept();
>+		identifier.fromSOAPEnvelope(envelope);
>+		accept.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPBody soapBody = soapEnvelope.getBody();
>+		soapBody.addChild(createSequenceResponseElement);
>+		if( identifier != null ){
>+			identifier.toSOAPEnvelope(createSequenceResponseElement);
>+		}
>+		if( accept != null){
>+			accept.toSOAPEnvelope(createSequenceResponseElement);
>+		}
>+		return envelope;
>+	}
>+	public void addChildElement(OMElement element){
>+		createSequenceResponseElement.addChild(element);
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public void setAccept(Accept accept){
>+		this.accept = accept;
>+	}
>+	public Accept getAccept(){
>+		return accept;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/Nack.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/Nack.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/Nack.java	(revision 0)
>@@ -0,0 +1,86 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class Nack implements IOMRMElement {
>+	private OMElement nackElement;
>+	private long notAckNumber;
>+	OMNamespace nackNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public Nack(){
>+		nackElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.NACK,nackNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		nackElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				new Long(notAckNumber).toString()));
>+		return nackElement;
>+	}
>+	private boolean readNackElement(OMElement element){
>+		Iterator iterator = element.getChildren();
>+		while(iterator.hasNext()){
>+			OMNode omNode = (OMNode)iterator.next();
>+			if(omNode.getType() != OMNode.ELEMENT_NODE){
>+				continue;
>+			}
>+			OMElement childElement = (OMElement)omNode;
>+			if(childElement.getLocalName().equals(Constants.WSRM.NACK)){
>+				notAckNumber = Long.parseLong(childElement.getText());
>+				return true;
>+			}else{
>+				readNackElement(childElement);
>+			}
>+		}
>+		return false;	
>+	}
>+	//duplicate method for the purpose of using comming iteration easily
>+	public Object fromSOAPEnvelope(OMElement element) throws OMException{
>+		notAckNumber = Long.parseLong(element.getText());
>+		return this;
>+	} 
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readNackElement(envelope);
>+		return this;
>+	}
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		nackElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				new Long(notAckNumber).toString()));
>+		messageElement.addChild(nackElement);
>+		return messageElement;
>+	}
>+	public void setNackNumber(long notAckNumber){
>+		this.notAckNumber = notAckNumber;
>+	}
>+	public long getNackNumber(){
>+		return notAckNumber;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/AckRequested.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/AckRequested.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/AckRequested.java	(revision 0)
>@@ -0,0 +1,87 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.axis2.soap.SOAPHeader;
>+import org.apache.axis2.soap.SOAPHeaderBlock;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class AckRequested implements IOMRMElement {
>+	private OMElement ackRequestedElement;
>+	private Identifier identifier;
>+	private MessageNumber messageNumber;
>+	OMNamespace ackReqNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public AckRequested(){
>+		ackRequestedElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.ACK_REQUESTED,ackReqNoNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		ackRequestedElement.addChild(identifier.getSOAPElement());
>+		ackRequestedElement.addChild(messageNumber.getSOAPElement());
>+		return ackRequestedElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		messageNumber = new MessageNumber();
>+		identifier.fromSOAPEnvelope(envelope);
>+		messageNumber.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPHeader soapHeader = soapEnvelope.getHeader();
>+		SOAPHeaderBlock soapHeaderBlock = soapHeader.addHeaderBlock(
>+				Constants.WSRM.ACK_REQUESTED,ackReqNoNamespace);
>+		soapHeaderBlock.setMustUnderstand(true);
>+		if( identifier != null){
>+			identifier.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		if ( messageNumber != null){
>+			messageNumber.toSOAPEnvelope(soapHeaderBlock);
>+		}
>+		
>+		return envelope;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+	public void setMessageNumber(MessageNumber messageNumber){
>+		this.messageNumber = messageNumber;
>+	}
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public MessageNumber getMessageNumber(){
>+		return messageNumber;
>+	}
>+	public void addChildElement(OMElement element){
>+		ackRequestedElement.addChild(element);
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/TerminateSequence.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/TerminateSequence.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/TerminateSequence.java	(revision 0)
>@@ -0,0 +1,70 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPBody;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class TerminateSequence implements IOMRMElement {
>+	private OMElement terminateSequenceElement;
>+	private Identifier identifier;
>+	
>+	OMNamespace terminateSequenceNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public TerminateSequence(){
>+		terminateSequenceElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.TERMINATE_SEQUENCE,terminateSequenceNameSpace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		terminateSequenceElement.addChild(identifier.getSOAPElement());
>+		return terminateSequenceElement;
>+	}
>+	public void addChild(OMElement element){
>+		terminateSequenceElement.addChild(element);
>+	}
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		identifier.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPBody soapBody = soapEnvelope.getBody();
>+		if (identifier != null){
>+			identifier.toSOAPEnvelope(terminateSequenceElement);
>+		}
>+		soapBody.addChild(terminateSequenceElement);
>+		return envelope;
>+	}
>+	public Identifier getIdentifier(){
>+		return identifier;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/Identifier.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/Identifier.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/Identifier.java	(revision 0)
>@@ -0,0 +1,121 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+public class Identifier implements Constants, IOMRMElement {
>+	private OMElement identifierElement;
>+
>+	private String identifier;
>+
>+	OMNamespace wsuNamespace = OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+			Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+
>+	public Identifier() {
>+
>+		identifierElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.IDENTIFIER, wsuNamespace);
>+	}
>+
>+	public void setURI(String uri) throws OMException {
>+		identifierElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(uri));
>+	}
>+
>+	public void setIndentifer(String identifier) {
>+		this.identifier = identifier;
>+	}
>+
>+	public String getIdentifier() {
>+		return identifier;
>+	}
>+
>+	public OMElement getSOAPElement() throws OMException {
>+		identifierElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				identifier));
>+		return identifierElement;
>+	}
>+
>+	private boolean readElement(OMElement element) {
>+		Iterator iterator = element.getChildren();
>+		while (iterator.hasNext()) {
>+			OMNode omnode = (OMNode)iterator.next();
>+			if(omnode.getType() != OMNode.ELEMENT_NODE){
>+				continue ;
>+			}				
>+			OMElement childElement = (OMElement)omnode ;
>+			if (childElement.getLocalName().equals(Constants.WSRM.IDENTIFIER)) {
>+				identifier = childElement.getText();
>+				return true;
>+			}else {
>+			   readElement(childElement);	
>+			}
>+		}
>+		return false;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readElement(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement)
>+			throws OMException {
>+		//soapheaderblock will be given or anyother block reference to the requirment
>+		if (identifier == null || identifier == "") {
>+			throw new OMException("Set Identifier");
>+		}
>+		identifierElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				identifier));
>+		messageElement.addChild(identifierElement);
>+		return messageElement;
>+	}
>+
>+	public String toString() {
>+		return identifier;
>+	}
>+
>+	public boolean equals(Object obj) {
>+
>+		if (obj instanceof Identifier) {
>+			if (this.identifier == ((String) (((Identifier) obj)
>+					.getIdentifier()))) {
>+				return true;
>+			} else {
>+				return false;
>+			}
>+		} else {
>+			return false;
>+		}
>+	}
>+
>+	public int hashCode() {
>+		return identifier.hashCode();
>+	}
>+}
>\ No newline at end of file
>Index: src/org/apache/sandesha2/wsrm/AcknowledgementRange.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/AcknowledgementRange.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/AcknowledgementRange.java	(revision 0)
>@@ -0,0 +1,118 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMAttribute;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ */
>+public class AcknowledgementRange implements IOMRMElement {
>+	private OMElement acknowledgementRangeElement;
>+	private long maxValue;
>+	private long minValue;
>+	OMNamespace ackRangeNamespace = 
>+        OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public AcknowledgementRange(){
>+		acknowledgementRangeElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.ACK_RANGE,ackRangeNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		acknowledgementRangeElement.addAttribute(Constants.WSRM.LOWER,
>+				new Long(minValue).toString(),ackRangeNamespace);
>+		acknowledgementRangeElement.addAttribute(Constants.WSRM.UPPER,
>+				new Long(maxValue).toString(),ackRangeNamespace);
>+		return acknowledgementRangeElement;
>+	}
>+
>+	private boolean readACKRangeElement(OMElement element){
>+		Iterator iterator = element.getChildren();
>+		while(iterator.hasNext()){
>+			OMNode omNode = (OMNode)iterator.next();
>+			if(omNode.getType() != OMNode.ELEMENT_NODE){
>+				continue;
>+			}
>+			OMElement childElement = (OMElement)omNode;
>+			if(childElement.getLocalName().equals(Constants.WSRM.ACK_RANGE)){
>+				Iterator ite = childElement.getAttributes();
>+				while(ite.hasNext()){
>+					OMAttribute attr = (OMAttribute)ite.next();
>+					if (attr.getLocalName().equals(Constants.WSRM.LOWER)){
>+						minValue = Long.parseLong(attr.getValue());
>+					}
>+					else{										
>+						maxValue = Long.parseLong(attr.getValue());
>+						return true;
>+					}
>+				}
>+			}else{
>+				readACKRangeElement(childElement);
>+			}
>+		}
>+		return false;
>+	}
>+	//this fromSOAPEnvelope(OMElement element) for the purpose of making the coming iteration easier
>+	public Object fromSOAPEnvelope(OMElement element) throws OMException{
>+		Iterator iterator = element.getAttributes();
>+		while(iterator.hasNext()){
>+			OMAttribute attr = (OMAttribute)iterator.next();
>+			if (attr.getLocalName().equals(Constants.WSRM.LOWER)){
>+				minValue = Long.parseLong(attr.getValue());
>+			}
>+			else{										
>+				maxValue = Long.parseLong(attr.getValue());
>+			}
>+		}
>+		return this;
>+	} 		
>+	
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readACKRangeElement(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		acknowledgementRangeElement.addAttribute(Constants.WSRM.LOWER,
>+				new Long(minValue).toString(),ackRangeNamespace);
>+		acknowledgementRangeElement.addAttribute(Constants.WSRM.UPPER,
>+				new Long(maxValue).toString(),ackRangeNamespace);
>+		messageElement.addChild(acknowledgementRangeElement);
>+		return messageElement;
>+	}
>+	public void setMinValue(long minValue){
>+		this.minValue = minValue;
>+	}
>+	public void setMaxValue(long maxValue){
>+		this.maxValue = maxValue;		
>+	}
>+	public long getMinValue(){
>+		return minValue;
>+	}
>+	public long getMaxValue(){
>+		return maxValue;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/AcksTo.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/AcksTo.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/AcksTo.java	(revision 0)
>@@ -0,0 +1,87 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.addressing.EndpointReference;
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class AcksTo implements IOMRMElement{
>+	private EndpointReference EPR;
>+	private OMElement acksToElement;
>+	
>+	OMNamespace acksToNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public AcksTo(EndpointReference EPR){
>+		acksToElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.ACKS_TO,acksToNameSpace);
>+		this.EPR = EPR;
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		acksToElement.addChild(OMAbstractFactory.getSOAP12Factory()
>+				.createText(EPR.getAddress()));
>+		return acksToElement;
>+	}
>+
>+	public boolean readEPRElement(OMElement element){
>+		Iterator iterator = element.getChildren();
>+		while(iterator.hasNext()){
>+			OMNode omNode = (OMNode)iterator.next();
>+			if(omNode.getType() != OMNode.ELEMENT_NODE){
>+				continue;
>+			}else{
>+				OMElement omElement = (OMElement)omNode;
>+				if (omElement.getLocalName().equals(Constants.WSRM.ACKS_TO)){
>+					String uri = omElement.getText();
>+					EPR = new EndpointReference("",uri);
>+					return true;
>+				}else{
>+					readEPRElement(omElement);
>+				}
>+			}			
>+		}
>+		return false;
>+	}
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readEPRElement(envelope);
>+		return this;
>+	}
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		acksToElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				EPR.getAddress()));
>+		messageElement.addChild(acksToElement);
>+		return messageElement;
>+	}
>+	public EndpointReference getEndPointReference(){
>+		return EPR;
>+	}
>+	public void setEndPointReference(EndpointReference EPR){
>+		this.EPR = EPR;
>+	}
>+	
>+}
>Index: src/org/apache/sandesha2/wsrm/SequenceOffer.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/SequenceOffer.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/SequenceOffer.java	(revision 0)
>@@ -0,0 +1,71 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class SequenceOffer implements IOMRMElement {
>+	private OMElement sequenceOfferElement;
>+	private Identifier identifier;
>+	
>+	OMNamespace sequenceOfferNameSpace = 
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(
>+				Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public SequenceOffer(){
>+		sequenceOfferElement = OMAbstractFactory.getSOAP11Factory().createOMElement(
>+				Constants.WSRM.SEQUENCE_OFFER,sequenceOfferNameSpace);
>+	}
>+	public void addChildElement(OMElement element) throws OMException{
>+		sequenceOfferElement.addChild(element);
>+	}
>+	
>+	public OMElement getSOAPElement() throws OMException {
>+		sequenceOfferElement.addChild(identifier.getSOAPElement());
>+		return sequenceOfferElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		identifier = new Identifier();
>+		identifier.fromSOAPEnvelope(envelope);
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		if (identifier != null){
>+			identifier.toSOAPEnvelope(sequenceOfferElement);
>+		}
>+		messageElement.addChild(sequenceOfferElement);
>+		return messageElement;
>+	}
>+	public Identifier getIdentifer(){
>+		return identifier;
>+	}
>+	public void setIdentifier(Identifier identifier){
>+		this.identifier = identifier;		
>+	}
>+	
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/CreateSequence.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/CreateSequence.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/CreateSequence.java	(revision 0)
>@@ -0,0 +1,82 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import org.apache.axis2.addressing.EndpointReference;
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.soap.SOAPBody;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class CreateSequence implements IOMRMElement {
>+	private OMElement createSequenceElement;
>+	private AcksTo acksTo;
>+	private SequenceOffer sequenceOffer;
>+	
>+	OMNamespace createSeqNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);
>+	public CreateSequence(){
>+		createSequenceElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.CREATE_SEQUENCE,
>+				createSeqNoNamespace);
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		createSequenceElement.addChild(sequenceOffer.getSOAPElement());
>+		createSequenceElement.addChild(acksTo.getSOAPElement());
>+		return createSequenceElement;
>+	}
>+
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		sequenceOffer = new SequenceOffer();
>+		acksTo = new AcksTo(new EndpointReference("",""));
>+		sequenceOffer.fromSOAPEnvelope(envelope);
>+		acksTo.fromSOAPEnvelope(envelope);		
>+		return this;
>+	}
>+
>+	public OMElement toSOAPEnvelope(OMElement envelope) throws OMException {
>+		SOAPEnvelope soapEnvelope = (SOAPEnvelope)envelope;
>+		SOAPBody soapBody = soapEnvelope.getBody();
>+		soapBody.addChild(createSequenceElement);
>+		if(sequenceOffer != null){
>+			sequenceOffer.toSOAPEnvelope(createSequenceElement);
>+		}
>+		if (acksTo != null){
>+			acksTo.toSOAPEnvelope(createSequenceElement);
>+		}
>+		return envelope;
>+	}
>+	public void setAcksTo(AcksTo acksTo){
>+		this.acksTo = acksTo;
>+	}
>+	public void setSequenceOffer(SequenceOffer sequenceOffer){
>+		this.sequenceOffer = sequenceOffer;
>+	}
>+	public AcksTo getAcksTo(){
>+		return acksTo;
>+	}
>+	public SequenceOffer getSequenceOffer(){
>+		return sequenceOffer;
>+	}
>+
>+}
>Index: src/org/apache/sandesha2/wsrm/IOMRMElement.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/IOMRMElement.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/IOMRMElement.java	(revision 0)
>@@ -0,0 +1,32 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+
>+public interface IOMRMElement {
>+	public OMElement getSOAPElement() throws OMException;
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException;
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException;
>+}
>Index: src/org/apache/sandesha2/wsrm/MessageNumber.java
>===================================================================
>--- src/org/apache/sandesha2/wsrm/MessageNumber.java	(revision 0)
>+++ src/org/apache/sandesha2/wsrm/MessageNumber.java	(revision 0)
>@@ -0,0 +1,97 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2.wsrm;
>+
>+import java.util.Iterator;
>+
>+import org.apache.axis2.om.OMAbstractFactory;
>+import org.apache.axis2.om.OMElement;
>+import org.apache.axis2.om.OMException;
>+import org.apache.axis2.om.OMNamespace;
>+import org.apache.axis2.om.OMNode;
>+import org.apache.axis2.soap.SOAPEnvelope;
>+
>+import org.apache.sandesha2.Constants;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public class MessageNumber implements IOMRMElement {
>+	
>+	private long messageNumber;
>+	private OMElement messageNoElement;
>+	
>+	OMNamespace msgNoNamespace =
>+		OMAbstractFactory.getSOAP11Factory().createOMNamespace(Constants.WSRM.NS_URI_RM, Constants.WSRM.NS_PREFIX_RM);	
>+	public MessageNumber(){
>+		messageNoElement = OMAbstractFactory.getSOAP11Factory().createOMElement(Constants.WSRM.MSG_NUMBER,msgNoNamespace);
>+	}
>+	
>+	public long getMessageNumber(){
>+		return messageNumber;
>+	}
>+	public void setMessageNumber(long messageNumber){
>+		this.messageNumber = messageNumber;
>+	}
>+	private boolean readMNElement(OMElement element) {
>+		Iterator iterator = element.getChildren();
>+		while (iterator.hasNext()) {
>+			OMNode omnode = (OMNode)iterator.next();
>+			if(omnode.getType() != OMNode.ELEMENT_NODE){
>+				continue ;
>+			}				
>+			OMElement childElement = (OMElement)omnode ;
>+			if (childElement.getLocalName().equals(Constants.WSRM.MSG_NUMBER)) {
>+				messageNumber = Long.parseLong(childElement.getText());
>+				return true;
>+			}else {
>+			   readMNElement(childElement);	
>+			}
>+		}
>+		return false;
>+	}
>+	
>+	public Object fromSOAPEnvelope(SOAPEnvelope envelope) throws OMException {
>+		readMNElement(envelope);
>+		return this;
>+	}
>+	public OMElement toSOAPEnvelope(OMElement messageElement) throws OMException {
>+		//soapheaderblock element will be given. 
>+		long msgNo = getMessageNumber();
>+		if (msgNo <= 0 ){
>+			throw new OMException("Set A Valid Message Number");
>+		}
>+		messageNoElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(
>+				new Long(msgNo).toString()));
>+		messageElement.addChild(messageNoElement);
>+		
>+		return messageElement;
>+	}
>+	public OMElement getSOAPElement() throws OMException {
>+		long msgNo = getMessageNumber();
>+		messageNoElement.addChild(OMAbstractFactory.getSOAP11Factory().createText(new 
>+					Long(msgNo).toString()));
>+		
>+		return messageNoElement;
>+	}
>+	public OMElement getMessageNumberElement(){
>+		return messageNoElement;
>+	}
>+
>+
>+}
>Index: src/org/apache/sandesha2/Constants.java
>===================================================================
>--- src/org/apache/sandesha2/Constants.java	(revision 0)
>+++ src/org/apache/sandesha2/Constants.java	(revision 0)
>@@ -0,0 +1,61 @@
>+/*
>+ * Copyright  1999-2004 The Apache Software Foundation.
>+ *
>+ *  Licensed under the Apache License, Version 2.0 (the "License");
>+ *  you may not use this file except in compliance with the License.
>+ *  You may obtain a copy of the License at
>+ *
>+ *      http://www.apache.org/licenses/LICENSE-2.0
>+ *
>+ *  Unless required by applicable law or agreed to in writing, software
>+ *  distributed under the License is distributed on an "AS IS" BASIS,
>+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>+ *  See the License for the specific language governing permissions and
>+ *  limitations under the License.
>+ *
>+ */
>+package org.apache.sandesha2;
>+
>+/**
>+ * @author Saminda
>+ *
>+ */
>+public interface Constants {
>+
>+	public interface WSRM{
>+		public static final String NS_PREFIX_RM = "wsrm";
>+        public static final String NS_URI_RM = "http://schemas.xmlsoap.org/ws/2005/02/rm";
>+        public static final String MSG_NUMBER = "MessageaNumber";
>+        public static final String LAST_MSG = "LastMessage";
>+        public static final String SEQUENCE = "Sequence";
>+        public static final String SEQUENCE_OFFER = "Offer";
>+        public static final String TERMINATE_SEQUENCE = "TerminateSequence";
>+        public static final String FAULT_CODE = "FaultCode";
>+        public static final String SEQUENCE_FAULT = "SequenceFault";
>+        public static final String ACKS_TO = "AcksTo";
>+        public static final String CREATE_SEQUENCE = "CreateSequence";
>+        public static final String CREATE_SEQUENCE_RESPONSE = "CreateSequenceResponse";
>+        public static final String ACK_REQUESTED = "AckRequested";
>+        public static final String ACK_RANGE = "AcknowledgementRange";
>+        public static final String UPPER = "Upper";
>+        public static final String LOWER = "Lower";
>+        public static final String NACK = "Nack";
>+        public static final String SEQUENCE_ACK = "SequenceAcknowledgement";
>+        public static final String IDENTIFIER = "Identifier";
>+        public static final String ACCEPT = "Accept";
>+    }
>+
>+      String RM_HEADERS="rmHeaders";
>+      String SEQUENCE="sequence";
>+      String MESSAGE_NUMBER="messageNumber";
>+
>+      String MESSAGE_TYPE ="messageType";
>+
>+      String CREATE_SEQ_REQ="createSequenceReq";
>+      String CREATE_SEQ_RES="createSequenceRes";
>+      String ACKNOWLEDGEMENT="acknowledgement";
>+      String IN_MESSAGE="inMessage";
>+      String OUT_MESSAGE="outMessage";
>+      String FAULT_MESSAGE="faultMessage";
>+
>+}
>
>  
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
>For additional commands, e-mail: sandesha-dev-help@ws.apache.org
>



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org