Author: chamikara
Date: Tue Sep 12 03:31:59 2006
New Revision: 442552

URL: http://svn.apache.org/viewvc?view=rev&rev=442552
Log:
Added a method 'getPropertyKey' to SandeshaUtil which will extract the correct 
property key from
a message context. 
Used this in Sandesha Handlers.
ApplicationMessage processor was modified to set some entries in message 
context, to be used by other handlers
or service impl.


Modified:
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.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/util/SandeshaUtil.java
    
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.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=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/Sandesha2Constants.java
 Tue Sep 12 03:31:59 2006
@@ -530,4 +530,10 @@
                        SPEC_2005_02.NS_URI,
                        SPEC_2006_08.NS_URI
        };
+       
+       public interface MessageContextProperties{
+               public String INTERNAL_SEQUENCE_ID = 
"Sandesha2InternalSequenceId";
+               String SEQUENCE_ID = "WSRMSequenceId";
+               String MESSAGE_NUMBER = "WSRMMessageNumber";
+       }
 }

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java?view=diff&rev=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaGlobalInHandler.java
 Tue Sep 12 03:31:59 2006
@@ -234,15 +234,13 @@
                        Sequence sequence = (Sequence) 
rmMsgContext.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);
                        String sequenceId = null;
 
-                       if (sequence != null) {
-                               sequenceId = 
sequence.getIdentifier().getIdentifier();
-                       }
-
                        long msgNo = 
sequence.getMessageNumber().getMessageNumber();
+                       
+                       String propertyKey = 
SandeshaUtil.getPropertyKey(rmMsgContext);
 
-                       if (sequenceId != null && msgNo > 0) {
+                       if (propertyKey != null && msgNo > 0) {
                                SequencePropertyBeanMgr seqPropMgr = 
storageManager.getSequencePropertyBeanMgr();
-                               SequencePropertyBean receivedMsgsBean = 
seqPropMgr.retrieve(sequenceId,
+                               SequencePropertyBean receivedMsgsBean = 
seqPropMgr.retrieve(propertyKey,
                                                
Sandesha2Constants.SequenceProperties.SERVER_COMPLETED_MESSAGES);
                                if (receivedMsgsBean != null) {
                                        String receivedMsgStr = 
receivedMsgsBean.getValue();

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java?view=diff&rev=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/handlers/SandeshaInHandler.java
 Tue Sep 12 03:31:59 2006
@@ -37,6 +37,7 @@
 import org.apache.sandesha2.storage.Transaction;
 import org.apache.sandesha2.util.MsgInitializer;
 import org.apache.sandesha2.util.SandeshaUtil;
+import org.apache.sandesha2.wsrm.Sequence;
 
 /**
  * This is invoked in the inFlow of an RM endpoint. This is responsible for
@@ -108,7 +109,6 @@
                        RMMsgContext rmMsgCtx = null;
                        try {
                                rmMsgCtx = 
MsgInitializer.initializeMessage(msgCtx);
-                               
                        } catch (SandeshaException ex) {
                                String message = 
SandeshaMessageHelper.getMessage(SandeshaMessageKeys.cannotInnitMessage);
                                log.debug(message);

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?view=diff&rev=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 Tue Sep 12 03:31:59 2006
@@ -289,6 +289,11 @@
                boolean inOrderInvocation = SandeshaUtil.getPropertyBean(
                                
msgCtx.getConfigurationContext().getAxisConfiguration()).isInOrder();
 
+
+               //setting properties for the messageContext
+               
rmMsgCtx.setProperty(Sandesha2Constants.MessageContextProperties.SEQUENCE_ID,sequenceId);
+               
rmMsgCtx.setProperty(Sandesha2Constants.MessageContextProperties.MESSAGE_NUMBER,new
 Long (msgNo));
+               
                if (inOrderInvocation) {
 
                        SequencePropertyBean incomingSequenceListBean = 
(SequencePropertyBean) seqPropMgr.retrieve(
@@ -495,6 +500,11 @@
                        if (lastAppMessage != null && 
"true".equals(lastAppMessage))
                                lastMessage = true;
                }
+               
+               if (internalSequenceId!=null)
+                       
rmMsgCtx.setProperty(Sandesha2Constants.MessageContextProperties.INTERNAL_SEQUENCE_ID,internalSequenceId);
+
+               String propertyKey = SandeshaUtil.getPropertyKey(rmMsgCtx);
 
                /*
                 * checking weather the user has given the messageNumber (most 
of the

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java?view=diff&rev=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/AcknowledgementManager.java
 Tue Sep 12 03:31:59 2006
@@ -391,4 +391,8 @@
 
                return false;
        }
+       
+       public static void addFinalAcknowledgement () {
+               
+       }
 }

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=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MsgInitializer.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/MsgInitializer.java
 Tue Sep 12 03:31:59 2006
@@ -243,17 +243,11 @@
                }
                } else
                        
rmMsgCtx.setMessageType(Sandesha2Constants.MessageTypes.UNKNOWN);
+               
+               if (sequenceID!=null)
+                       
rmMsgCtx.setProperty(Sandesha2Constants.MessageContextProperties.SEQUENCE_ID,sequenceID);
 
-               String propertyKey = null;
-               if (rmMsgCtx.getMessageContext().getFLOW() == 
MessageContext.IN_FLOW) {
-                       propertyKey = sequenceID;
-               } else {
-                       SequencePropertyBean internalSequenceIDBean = 
sequencePropertyBeanMgr.retrieve(sequenceID,
-                                       
Sandesha2Constants.SequenceProperties.INTERNAL_SEQUENCE_ID);
-                       if (internalSequenceIDBean != null) {
-                               propertyKey = internalSequenceIDBean.getValue();
-                       }
-               }
+               String propertyKey = SandeshaUtil.getPropertyKey(rmMsgCtx);
 
                //In case of ack messages RM Namespace is decided based on the 
sequenceId of the first 
                //sequence Ack. In other words Sandesha2 does not expect to 
receive two SequenceAcknowledgements

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=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/RMMsgCreator.java 
Tue Sep 12 03:31:59 2006
@@ -672,10 +672,14 @@
                
applicationMsg.setMessagePart(Sandesha2Constants.MessageParts.SEQ_ACKNOWLEDGEMENT,
 sequenceAck);
 
                sequenceAck.toOMElement(envelope.getHeader());
-               
applicationMsg.setAction(SpecSpecificConstants.getSequenceAcknowledgementAction(SandeshaUtil.getRMVersion(
-                               sequenceId, storageManager)));
-               
applicationMsg.setSOAPAction(SpecSpecificConstants.getSequenceAcknowledgementSOAPAction(SandeshaUtil
-                               .getRMVersion(sequenceId, storageManager)));
+               
+               if (applicationMsg.getWSAAction()==null) {
+                       
applicationMsg.setAction(SpecSpecificConstants.getSequenceAcknowledgementAction(SandeshaUtil.getRMVersion(
+                                       sequenceId, storageManager)));
+                       
applicationMsg.setSOAPAction(SpecSpecificConstants.getSequenceAcknowledgementSOAPAction(SandeshaUtil
+                                       .getRMVersion(sequenceId, 
storageManager)));
+               }
+               
                applicationMsg.setMessageId(SandeshaUtil.getUUID());
        }
 

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java?view=diff&rev=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java 
(original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/util/SandeshaUtil.java 
Tue Sep 12 03:31:59 2006
@@ -952,4 +952,48 @@
                        throw new SandeshaException(message,e);
                }
        }
+       
+       /**This returns the Key used when store SequencePropertyBeans for the 
passed message.
+        * For the sending side this will be the internal sequence ID.
+        * For the receiving side this is the sequenceId.
+        * 
+        * @param rmMsgContext
+        * @return
+        */
+       
+       public static String getPropertyKey (RMMsgContext rmMsgContext) {
+               String sequenceId = (String) 
rmMsgContext.getProperty(Sandesha2Constants.MessageContextProperties.SEQUENCE_ID);
+               String internalSequenceId = (String) 
rmMsgContext.getProperty(Sandesha2Constants.MessageContextProperties.INTERNAL_SEQUENCE_ID);
+               
+               String propertyKey = null;
+
+               int type = rmMsgContext.getMessageType();
+               int flow = rmMsgContext.getMessageContext().getFLOW();
+               
+               if (flow==MessageContext.OUT_FLOW) {
+                       if (type==Sandesha2Constants.MessageTypes.UNKNOWN)
+                               propertyKey = internalSequenceId;
+               } else if (flow==MessageContext.IN_FLOW) {
+                       if (isSequenceResponseMessageType(type))
+                               propertyKey = internalSequenceId;
+                       else
+                               propertyKey = sequenceId;
+               }
+               
+               //TODO handler faults
+               
+               return propertyKey;
+       }
+       
+       private static boolean isSequenceResponseMessageType (int messageType) {
+               if 
(messageType==Sandesha2Constants.MessageTypes.CREATE_SEQ_RESPONSE ||
+                       messageType==Sandesha2Constants.MessageTypes.ACK ||
+                       
messageType==Sandesha2Constants.MessageTypes.CLOSE_SEQUENCE_RESPONSE ||
+                       
messageType==Sandesha2Constants.MessageTypes.TERMINATE_SEQ_RESPONSE) {
+                       
+                       return true;
+               } else {
+                       return false;
+               }
+       }
 }

Modified: 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
URL: 
http://svn.apache.org/viewvc/webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java?view=diff&rev=442552&r1=442551&r2=442552
==============================================================================
--- 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
 (original)
+++ 
webservices/sandesha/trunk/java/src/org/apache/sandesha2/workers/SenderWorker.java
 Tue Sep 12 03:31:59 2006
@@ -29,6 +29,7 @@
 import org.apache.sandesha2.util.AcknowledgementManager;
 import org.apache.sandesha2.util.MessageRetransmissionAdjuster;
 import org.apache.sandesha2.util.MsgInitializer;
+import org.apache.sandesha2.util.RMMsgCreator;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.util.TerminateManager;
 import org.apache.sandesha2.wsrm.TerminateSequence;
@@ -103,8 +104,11 @@
 //                             String sequenceID = 
sequence.getIdentifier().getIdentifier();
 //                     }
 
-                       // checking weather this message can carry piggybacked 
acks
-                       if (isAckPiggybackableMsgType(messageType)) {
+//                     if (AcknowledgementManager.ackRequired (rmMsgCtx)) {
+//                             RMMsgCreator.addAckMessage(rmMsgCtx);
+                       
+                       //} else 
+                               if (isAckPiggybackableMsgType(messageType)) { 
// checking weather this message can carry piggybacked acks
                                // piggybacking if an ack if available for the 
same
                                // sequence.
                                // TODO do piggybacking based on wsa:To



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

Reply via email to