Author: chamikara
Date: Thu Sep  7 03:33:17 2006
New Revision: 441048

URL: http://svn.apache.org/viewvc?view=rev&rev=441048
Log:
Added MakeConnection and MessagePending message parts.
Added code to initialize MakeConnection and MessagePending messages.


Added:
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MessagePending.java
Modified:
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MsgInitializer.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java
    webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/Address.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java?view=diff&rev=441048&r1=441047&r2=441048
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 Thu Sep  7 03:33:17 2006
@@ -79,6 +79,8 @@
                        
                        String ACTION_CLOSE_SEQUENCE_RESPONSE = 
"http://docs.oasis-open.org/ws-rx/wsrm/200608/CloseSequenceResponse";;
                        
+                       String ACTION_MAKE_CONNECTION = 
"http://docs.oasisopen.org/ws-rx/wsrm/200608/MakeConnection";;
+                       
                        String SOAP_ACTION_CREATE_SEQUENCE = 
"http://docs.oasis-open.org/ws-rx/wsrm/200608/CreateSequence";;
 
                        String SOAP_ACTION_CREATE_SEQUENCE_RESPONSE = 
"http://docs.oasis-open.org/ws-rx/wsrm/200608/CreateSequenceResponse";;
@@ -92,6 +94,8 @@
                        String SOAP_ACTION_ACK_REQUEST = 
"http://docs.oasis-open.org/ws-rx/wsrm/200608/AckRequested";;
                        
                        String SOAP_ACTION_CLOSE_SEQUENCE = 
"http://docs.oasis-open.org/ws-rx/wsrm/200608/CloseSequence";;
+                       
+                       String SOAP_ACTION_MAKE_CONNECTION = 
"http://docs.oasisopen.org/ws-rx/wsrm/200608/MakeConnection";;
                }
        }
        
@@ -191,7 +195,9 @@
 
                int FAULT_MSG = 10;
                
-               int MAX_MESSAGE_TYPE = 10;
+               int MAKE_CONNECTION_MSG = 11;
+               
+               int MAX_MESSAGE_TYPE = 11;
        }
 
        public interface MessageParts {
@@ -218,8 +224,12 @@
                int ACK_REQUEST = 15;
 
                int USES_SEQUENCE_STR = 16;
+               
+               int MAKE_CONNECTION = 17;
+               
+               int MESSAGE_PENDING = 18;
 
-               int MAX_MSG_PART_ID = 16;
+               int MAX_MSG_PART_ID = 18;
        }
 
        public interface SequenceProperties {

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MsgInitializer.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MsgInitializer.java?view=diff&rev=441048&r1=441047&r2=441048
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MsgInitializer.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MsgInitializer.java
 Thu Sep  7 03:33:17 2006
@@ -17,7 +17,6 @@
 
 package org.apache.sandesha2.util;
 
-import java.util.ArrayList;
 import java.util.Iterator;
 
 import org.apache.axis2.addressing.AddressingConstants;
@@ -37,6 +36,7 @@
 import org.apache.sandesha2.wsrm.CloseSequenceResponse;
 import org.apache.sandesha2.wsrm.CreateSequence;
 import org.apache.sandesha2.wsrm.CreateSequenceResponse;
+import org.apache.sandesha2.wsrm.MakeConnection;
 import org.apache.sandesha2.wsrm.RMElements;
 import org.apache.sandesha2.wsrm.Sequence;
 import org.apache.sandesha2.wsrm.SequenceAcknowledgement;
@@ -144,6 +144,16 @@
                        
rmMsgContext.setMessagePart(Sandesha2Constants.MessageParts.USES_SEQUENCE_STR, 
elements
                                        .getUsesSequenceSTR());
                }
+               
+               if (elements.getMakeConnection() != null) {
+                       
rmMsgContext.setMessagePart(Sandesha2Constants.MessageParts.MAKE_CONNECTION,
+                                       elements.getMakeConnection());
+               }
+               
+               if (elements.getMessagePending() != null) {
+                       
rmMsgContext.setMessagePart(Sandesha2Constants.MessageParts.MESSAGE_PENDING,
+                                       elements.getMessagePending());
+               }
 
                rmMsgContext.setRMNamespaceValue(rmNamespace);
 
@@ -169,22 +179,26 @@
 
                String sequenceID = null;
 
-               CreateSequence createSequence = (CreateSequence) rmMsgCtx
-                               
.getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ);
-               CreateSequenceResponse createSequenceResponse = 
(CreateSequenceResponse) rmMsgCtx
-                               
.getMessagePart(Sandesha2Constants.MessageParts.CREATE_SEQ_RESPONSE);
-               TerminateSequence terminateSequence = (TerminateSequence) 
rmMsgCtx
-                               
.getMessagePart(Sandesha2Constants.MessageParts.TERMINATE_SEQ);
-               TerminateSequenceResponse terminateSequenceResponse = 
(TerminateSequenceResponse) rmMsgCtx
-                               
.getMessagePart(Sandesha2Constants.MessageParts.TERMINATE_SEQ_RESPONSE);
-               Iterator sequenceAcknowledgementsIter = rmMsgCtx
-                               
.getMessageParts(Sandesha2Constants.MessageParts.SEQ_ACKNOWLEDGEMENT);
-               Sequence sequence = (Sequence) 
rmMsgCtx.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
-               AckRequested ackRequest = (AckRequested) 
rmMsgCtx.getMessagePart(Sandesha2Constants.MessageParts.ACK_REQUEST);
-               CloseSequence closeSequence = (CloseSequence) rmMsgCtx
-                               
.getMessagePart(Sandesha2Constants.MessageParts.CLOSE_SEQUENCE);
-               CloseSequenceResponse closeSequenceResponse = 
(CloseSequenceResponse) rmMsgCtx
-                               
.getMessagePart(Sandesha2Constants.MessageParts.CLOSE_SEQUENCE_RESPONSE);
+               CreateSequence createSequence = (CreateSequence) 
rmMsgCtx.getMessagePart(
+                               Sandesha2Constants.MessageParts.CREATE_SEQ);
+               CreateSequenceResponse createSequenceResponse = 
(CreateSequenceResponse) rmMsgCtx.getMessagePart(
+                               
Sandesha2Constants.MessageParts.CREATE_SEQ_RESPONSE);
+               TerminateSequence terminateSequence = (TerminateSequence) 
rmMsgCtx.getMessagePart(
+                               Sandesha2Constants.MessageParts.TERMINATE_SEQ);
+               TerminateSequenceResponse terminateSequenceResponse = 
(TerminateSequenceResponse) rmMsgCtx.getMessagePart(
+                               
Sandesha2Constants.MessageParts.TERMINATE_SEQ_RESPONSE);
+               Iterator sequenceAcknowledgementsIter = 
rmMsgCtx.getMessageParts(
+                               
Sandesha2Constants.MessageParts.SEQ_ACKNOWLEDGEMENT);
+               Sequence sequence = (Sequence) rmMsgCtx.getMessagePart(
+                               Sandesha2Constants.MessageParts.SEQUENCE);
+               AckRequested ackRequest = (AckRequested) 
rmMsgCtx.getMessagePart(
+                               Sandesha2Constants.MessageParts.ACK_REQUEST);
+               CloseSequence closeSequence = (CloseSequence) 
rmMsgCtx.getMessagePart(
+                               Sandesha2Constants.MessageParts.CLOSE_SEQUENCE);
+               CloseSequenceResponse closeSequenceResponse = 
(CloseSequenceResponse) rmMsgCtx.getMessagePart(
+                               
Sandesha2Constants.MessageParts.CLOSE_SEQUENCE_RESPONSE);
+               MakeConnection makeConnection = (MakeConnection) 
rmMsgCtx.getMessagePart(
+                               
Sandesha2Constants.MessageParts.MAKE_CONNECTION);
 
                // Setting message type.
                if (createSequence != null) {
@@ -215,7 +229,18 @@
                        sequenceID = 
closeSequence.getIdentifier().getIdentifier();
                } else if (closeSequenceResponse != null) {
                        
rmMsgCtx.setMessageType(Sandesha2Constants.MessageTypes.CLOSE_SEQUENCE_RESPONSE);
-                       sequenceID = 
closeSequenceResponse.getIdentifier().getIdentifier();
+                       sequenceID = 
closeSequenceResponse.getIdentifier().getIdentifier(); 
+               } else if (makeConnection != null){ {
+                       
rmMsgCtx.setMessageType(Sandesha2Constants.MessageTypes.MAKE_CONNECTION_MSG);
+                       if (makeConnection.getIdentifier()!=null) {
+                               sequenceID = 
makeConnection.getIdentifier().getIdentifier();
+                       } else if (makeConnection.getAddress()!=null){
+                               //TODO get sequenceId based on the anonymous 
address.
+                       } else {
+                               throw new SandeshaException (
+                                               "Invalid MakeConnection 
message. Either Address or Identifier must be present");
+                       }
+               }
                } else
                        
rmMsgCtx.setMessageType(Sandesha2Constants.MessageTypes.UNKNOWN);
 

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java?view=diff&rev=441048&r1=441047&r2=441048
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java 
Thu Sep  7 03:33:17 2006
@@ -307,7 +307,7 @@
                if (replyToEPR != null)
                        createSeqRMMsg.setReplyTo(replyToEPR);
 
-               createSequencePart.setAcksTo(new AcksTo(new Address(acksToEPR, 
factory, addressingNamespaceValue), factory,
+               createSequencePart.setAcksTo(new AcksTo(new Address(acksToEPR, 
addressingNamespaceValue), factory,
                                rmNamespaceValue, addressingNamespaceValue));
                
                // Find the token that should be used to secure this new 
sequence. If there is a token, then we

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/Address.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/Address.java?view=diff&rev=441048&r1=441047&r2=441048
==============================================================================
--- webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/Address.java 
(original)
+++ webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/Address.java 
Thu Sep  7 03:33:17 2006
@@ -32,8 +32,8 @@
                this.namespaceValue = namespaceValue;
        }
        
-       public Address (EndpointReference epr,OMFactory factory,String 
addressingNamespaceValue) {
-               this(addressingNamespaceValue);
+       public Address (EndpointReference epr,String namespaceValue) {
+               this(namespaceValue);
                this.epr = epr;
        }
 

Added: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java?view=auto&rev=441048
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java
 (added)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MakeConnection.java
 Thu Sep  7 03:33:17 2006
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2004,2005 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 javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.i18n.SandeshaMessageHelper;
+import org.apache.sandesha2.i18n.SandeshaMessageKeys;
+
+public class MakeConnection implements IOMRMPart {
+
+       private String namespaceValue = null;
+       
+       Identifier identifier = null;
+       
+       Address address = null;
+       
+       public MakeConnection (String namespaceValue) throws SandeshaException {
+               if (!isNamespaceSupported(namespaceValue))
+                       throw new SandeshaException 
(SandeshaMessageHelper.getMessage(
+                                       
SandeshaMessageKeys.specDoesNotSupportElement,
+                                       
namespaceValue,Sandesha2Constants.WSRM_COMMON.ACK_REQUESTED));
+               this.namespaceValue = namespaceValue;
+       }
+
+       public void toSOAPEnvelope(SOAPEnvelope envelope) throws 
SandeshaException {
+               SOAPBody body = envelope.getBody();
+               
+               //detach if already exist.
+               OMElement elem = body.getFirstChildWithName(new 
QName(namespaceValue,
+                               
Sandesha2Constants.WSRM_COMMON.MAKE_CONNECTION));
+               if (elem!=null)
+                       elem.detach();
+               
+               toOMElement(body);
+       }
+
+       public Object fromOMElement(OMElement makeConnectionElement) throws 
OMException, SandeshaException {
+
+               OMElement identifierElement = 
makeConnectionElement.getFirstChildWithName(new QName(namespaceValue, 
Sandesha2Constants.WSRM_COMMON.IDENTIFIER));
+               OMElement addressElement = 
makeConnectionElement.getFirstChildWithName(new 
QName(namespaceValue,Sandesha2Constants.WSA.ADDRESS));
+               
+               if (identifierElement==null && addressElement==null) {
+                       String message = "MakeConnection element should have at 
lease one of Address and Identifier subelements";
+                       throw new SandeshaException (message);
+               }
+               
+               if (identifierElement!=null) {
+                       identifier = new Identifier (namespaceValue);
+                       identifier.fromOMElement(makeConnectionElement);
+               }
+               
+               if (addressElement!=null) {
+                       address = new Address (namespaceValue);
+                       address.fromOMElement(makeConnectionElement);
+               }
+               
+               return this;
+       }
+
+       public String getNamespaceValue() {
+               return namespaceValue;
+       }
+
+       public boolean isNamespaceSupported(String namespaceName) {
+               if 
(Sandesha2Constants.SPEC_2005_02.NS_URI.equals(namespaceName))
+                       return false;
+               
+               if 
(Sandesha2Constants.SPEC_2006_08.NS_URI.equals(namespaceName))
+                       return true;
+               
+               return false;
+       }
+
+       public OMElement toOMElement(OMElement body) throws OMException, 
SandeshaException {
+
+               if (body == null || !(body instanceof SOAPBody)) {
+                       String message = "MakeConnection element can only be 
added to a SOAP Body ";
+                       throw new OMException(
+                                       
SandeshaMessageHelper.getMessage(message));
+               }
+
+               if (identifier==null && address==null) {
+                       String message = "Invalid MakeConnection object. Both 
Identifier and Address are null";
+               }
+               
+               OMFactory factory = body.getOMFactory();
+               OMNamespace rmNamespace = 
factory.createOMNamespace(namespaceValue,Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
+
+               OMElement makeConnectionElement = 
factory.createOMElement(Sandesha2Constants.WSRM_COMMON.MAKE_CONNECTION,rmNamespace);
+               
+               if (identifier!=null)
+                       identifier.toOMElement(makeConnectionElement);
+               if (address!=null)
+                       address.toOMElement(makeConnectionElement);
+
+               body.addChild(makeConnectionElement);
+               
+               return body;
+       }
+
+       public Address getAddress() {
+               return address;
+       }
+
+       public void setAddress(Address address) {
+               this.address = address;
+       }
+
+       public Identifier getIdentifier() {
+               return identifier;
+       }
+
+       public void setIdentifier(Identifier identifier) {
+               this.identifier = identifier;
+       }
+
+}

Added: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MessagePending.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MessagePending.java?view=auto&rev=441048
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MessagePending.java
 (added)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/MessagePending.java
 Thu Sep  7 03:33:17 2006
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2004,2005 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 javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axiom.soap.SOAPHeaderBlock;
+import org.apache.axis2.Constants;
+import org.apache.sandesha2.Sandesha2Constants;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.i18n.SandeshaMessageHelper;
+import org.apache.sandesha2.i18n.SandeshaMessageKeys;
+
+public class MessagePending implements IOMRMPart {
+
+       boolean pending = false;
+       String namespaceValue = null;
+       
+       public MessagePending (String namespaceValue) throws SandeshaException {
+               if (!isNamespaceSupported(namespaceValue))
+                       throw new SandeshaException 
(SandeshaMessageHelper.getMessage(
+                                       SandeshaMessageKeys.unknownSpec,
+                                       namespaceValue));
+               
+               this.namespaceValue = namespaceValue;
+       }
+       
+       public void toSOAPEnvelope(SOAPEnvelope envelope) throws 
SandeshaException {
+               SOAPHeader header = envelope.getHeader();
+               
+               //detach if already exist.
+               OMElement elem = header.getFirstChildWithName(new 
QName(namespaceValue,
+                               
Sandesha2Constants.WSRM_COMMON.MESSAGE_PENDING));
+               if (elem!=null)
+                       elem.detach();
+               
+               toOMElement(header);
+       }
+
+       public String getNamespaceValue() {
+               return namespaceValue;
+       }
+
+       public Object fromOMElement(OMElement messagePendingElement) throws 
OMException,
+                       SandeshaException {
+               
+               OMAttribute pendingAttr = 
messagePendingElement.getAttribute(new QName 
(Sandesha2Constants.WSRM_COMMON.PENDING));
+               if (pendingAttr==null) {
+                       String message = "MessagePending header must have an 
attribute named 'pending'";
+                       throw new SandeshaException (message);
+               }
+               
+               String value = pendingAttr.getAttributeValue();
+               if (Constants.VALUE_TRUE.equals(value))
+                       pending = true;
+               else if (Constants.VALUE_FALSE.equals(value))
+                       pending = false;
+               else {
+                       String message = "Attribute 'pending' must have value 
'true' or 'false'";
+                       throw new SandeshaException (message);
+               }
+               
+               return messagePendingElement;
+       }
+
+       public OMElement toOMElement(OMElement headerElement) throws 
OMException,
+                       SandeshaException {
+               if (!(headerElement instanceof SOAPHeader)) {
+                       String message = "'MessagePending' element can only be 
added to a SOAP Header";
+                       throw new OMException(message);
+               }
+               
+               SOAPHeader header = (SOAPHeader) headerElement;
+               OMFactory factory = header.getOMFactory();
+               OMNamespace namespace = 
factory.createOMNamespace(namespaceValue,Sandesha2Constants.WSRM_COMMON.NS_PREFIX_RM);
+               
+               SOAPHeaderBlock headerBlock = 
header.addHeaderBlock(Sandesha2Constants.WSRM_COMMON.MESSAGE_PENDING,namespace);
+               
+               OMAttribute attribute = 
factory.createOMAttribute(Sandesha2Constants.WSRM_COMMON.PENDING,null,new 
Boolean (pending).toString());
+               headerBlock.addAttribute(attribute);
+               
+               return headerElement;
+       }
+
+       public boolean isNamespaceSupported(String namespaceName) {
+               if 
(Sandesha2Constants.SPEC_2005_02.NS_URI.equals(namespaceName))
+                       return false;
+               
+               if 
(Sandesha2Constants.SPEC_2006_08.NS_URI.equals(namespaceName))
+                       return true;
+               
+               return false;
+       }
+
+       public boolean isPending() {
+               return pending;
+       }
+
+       public void setPending(boolean pending) {
+               this.pending = pending;
+       }
+
+       
+}

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java?view=diff&rev=441048&r1=441047&r2=441048
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/wsrm/RMElements.java 
Thu Sep  7 03:33:17 2006
@@ -56,6 +56,8 @@
        private CloseSequenceResponse closeSequenceResponse = null;
        private AckRequested ackRequested = null;
        private UsesSequenceSTR usesSequenceSTR = null;
+       private MessagePending messagePending = null;
+       private MakeConnection makeConnection = null;
        private String rmNamespaceValue = null;
        private String addressingNamespaceValue = null;
        
@@ -193,6 +195,22 @@
                        usesSequenceSTR = new UsesSequenceSTR(factory, 
rmNamespaceValue);
                        usesSequenceSTR.fromOMElement(envelope.getHeader());
                }
+               
+               OMElement makeConnectionElement = 
envelope.getBody().getFirstChildWithName(
+                               new QName (rmNamespaceValue,
+                                               
Sandesha2Constants.WSRM_COMMON.MAKE_CONNECTION));
+               if (makeConnectionElement!=null) {
+                       makeConnection = new MakeConnection (rmNamespaceValue);
+                       makeConnection.fromOMElement(makeConnectionElement);
+               }
+               
+               OMElement messagePendingElement = 
envelope.getHeader().getFirstChildWithName(
+                               new QName (rmNamespaceValue,
+                                               
Sandesha2Constants.WSRM_COMMON.MESSAGE_PENDING));
+               if (messagePendingElement!=null) {
+                       messagePending = new MessagePending (rmNamespaceValue);
+                       messagePending.fromOMElement(messagePendingElement);
+               }
        }
 
        public SOAPEnvelope toSOAPEnvelope(SOAPEnvelope envelope) throws 
SandeshaException  {
@@ -228,6 +246,14 @@
                        closeSequenceResponse.toOMElement(envelope.getBody());
                }
                
+               if (makeConnection!=null) {
+                       makeConnection.toOMElement(envelope.getBody());
+               }
+               
+               if (messagePending!=null) {
+                       messagePending.toOMElement(envelope.getHeader());
+               }
+               
                return envelope;
        }
 
@@ -293,6 +319,14 @@
                this.ackRequested = ackRequested;
        }
        
+       public void setMakeConnection(MakeConnection makeConnection) {
+               this.makeConnection = makeConnection;
+       }
+       
+       public void setMessagePending(MessagePending messagePending) {
+               this.messagePending = messagePending;
+       }
+       
        private String getRMNamespaceValue (SOAPEnvelope envelope, String 
action) {
                SOAPHeader header = envelope.getHeader();
                if (header!=null) {
@@ -332,6 +366,8 @@
                        return Sandesha2Constants.SPEC_2006_08.NS_URI;
                if 
(action.equals(Sandesha2Constants.SPEC_2006_08.Actions.ACTION_CLOSE_SEQUENCE_RESPONSE))
                        return Sandesha2Constants.SPEC_2006_08.NS_URI;
+               if 
(action.equals(Sandesha2Constants.SPEC_2006_08.Actions.ACTION_MAKE_CONNECTION))
+                       return Sandesha2Constants.SPEC_2006_08.NS_URI;
                
                return null;   //a version could not be found
        }
@@ -377,5 +413,13 @@
 
        public String getAddressingNamespaceValue() {
                return addressingNamespaceValue;
+       }
+
+       public MakeConnection getMakeConnection() {
+               return makeConnection;
+       }
+
+       public MessagePending getMessagePending() {
+               return messagePending;
        }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to