You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by Jaliya Ekanayake <ja...@opensource.lk> on 2005/12/04 06:26:01 UTC
Re: [Sandesha2] WSRM Patch
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