Author: chamikara
Date: Wed Jan 25 22:29:10 2006
New Revision: 372458

URL: http://svn.apache.org/viewcvs?rev=372458&view=rev
Log:
Changed the parameter loading method to get the values from a policy element 
(within module.xml or service.xml).

Modified:
    webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaModule.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/StorageManagersProcessor.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
    
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
    webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/Sandesha2Constants.java 
Wed Jan 25 22:29:10 2006
@@ -361,4 +361,6 @@
        String EXECUTIN_CHAIN_SEPERATOR = ".";
        
        String INTERNAL_SEQUENCE_PREFIX = "Sandesha2InternalSequence";
+       
+       String SANDESHA2_POLICY_BEAN = "Sandesha2PolicyBean";
 }

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaModule.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaModule.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaModule.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/SandeshaModule.java Wed 
Jan 25 22:29:10 2006
@@ -21,10 +21,14 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.description.AxisDescription;
 import org.apache.axis2.description.AxisModule;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.ParameterImpl;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.modules.Module;
 import org.apache.sandesha2.storage.StorageManager;
 import org.apache.sandesha2.util.PropertyManager;
+import org.apache.sandesha2.util.RMPolicyManager;
+import org.apache.sandesha2.util.SandeshaPropertyBean;
 import org.apache.sandesha2.util.SandeshaUtil;
 
 
@@ -44,7 +48,7 @@
 
                // loading properties to property manager.
                // 
PropertyManager.getInstance().loadPropertiesFromModuleDesc(module);
-               
PropertyManager.getInstance().loadPropertiesFromModuleDesc(module);
+               
PropertyManager.getInstance().loadPropertiesFromModuleDescPolicy(module);
                StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configContext);
                storageManager.initStorage(module);
        }
@@ -52,6 +56,19 @@
        public void engageNotify(AxisDescription axisDescription) throws 
AxisFault {
 
                // TODO add notify logic.
+               
+               SandeshaPropertyBean defaultPropertyBean = 
PropertyManager.getInstance().getPropertyBean();
+               SandeshaPropertyBean axisDescPropertyBean = 
RMPolicyManager.loadPoliciesFromAxisDescription(axisDescription);
+               
+               Parameter parameter = new ParameterImpl ();
+               parameter.setName(Sandesha2Constants.SANDESHA2_POLICY_BEAN);
+               if (axisDescPropertyBean==null) {
+                       parameter.setValue(defaultPropertyBean);
+               }else {
+                       parameter.setValue(axisDescPropertyBean);
+               }
+               
+               axisDescription.addParameter(parameter);
 
        }
 

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/TerminateManager.java 
Wed Jan 25 22:29:10 2006
@@ -23,6 +23,8 @@
 import java.util.Iterator;
 
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.storage.StorageManager;
 import org.apache.sandesha2.storage.Transaction;
 import org.apache.sandesha2.storage.beanmanagers.CreateSeqBeanMgr;
@@ -36,6 +38,7 @@
 import org.apache.sandesha2.storage.beans.SenderBean;
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
 import org.apache.sandesha2.util.PropertyManager;
+import org.apache.sandesha2.util.SandeshaPropertyBean;
 import org.apache.sandesha2.util.SandeshaUtil;
 
 /**
@@ -47,6 +50,8 @@
 
 public class TerminateManager {
 
+       private static Log log = LogFactory.getLog(TerminateManager.class);
+       
        private static String CLEANED_ON_TERMINATE_MSG = 
"CleanedOnTerminateMsg";
        private static String CLEANED_AFTER_INVOCATION = 
"CleanedAfterInvocation";
        
@@ -66,6 +71,9 @@
                //clean senderMap
                
                boolean inOrderInvocation = 
PropertyManager.getInstance().isInOrderInvocation();
+               //SandeshaPropertyBean propertyBean = (SandeshaPropertyBean) 
msgContext.getParameter(Sandesha2Constants.SANDESHA2_POLICY_BEAN);
+               
+               
                if(!inOrderInvocation) { 
                        //there is no invoking by Sandesha2. So clean 
invocations storages.
                        
cleanReceivingSideAfterInvocation(configContext,sequenceID);
@@ -136,12 +144,17 @@
                StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configContext);
                SequencePropertyBeanMgr sequencePropertyBeanMgr = 
storageManager.getSequencePropretyBeanMgr();
                SequencePropertyBean allSequenceBean = 
sequencePropertyBeanMgr.retrieve(Sandesha2Constants.SequenceProperties.ALL_SEQUENCES,Sandesha2Constants.SequenceProperties.INCOMING_SEQUENCE_LIST);
-               ArrayList allSequenceList = 
SandeshaUtil.getArrayListFromString(allSequenceBean.getValue());
-               allSequenceList.remove(sequenceID);
                
-               //updating 
-               allSequenceBean.setValue(allSequenceList.toString());
-               sequencePropertyBeanMgr.update(allSequenceBean);
+               if (allSequenceBean!=null) {
+                       log.debug("AllSequence bean is null");
+                       
+                       ArrayList allSequenceList = 
SandeshaUtil.getArrayListFromString(allSequenceBean.getValue());
+                       allSequenceList.remove(sequenceID);
+               
+                       //updating 
+                       allSequenceBean.setValue(allSequenceList.toString());
+                       sequencePropertyBeanMgr.update(allSequenceBean);
+               }
        }
        
        private static boolean isRequiredForResponseSide (String name) {

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/handlers/SandeshaOutHandler.java
 Wed Jan 25 22:29:10 2006
@@ -29,6 +29,8 @@
 import org.apache.axis2.context.OperationContextFactory;
 import org.apache.axis2.context.ServiceContext;
 import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Parameter;
+import org.apache.axis2.description.ParameterImpl;
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.handlers.AbstractHandler;
 import org.apache.axis2.soap.SOAPBody;
@@ -52,9 +54,11 @@
 import org.apache.sandesha2.storage.beans.SequencePropertyBean;
 import org.apache.sandesha2.transport.Sandesha2TransportSender;
 import org.apache.sandesha2.util.MsgInitializer;
+import org.apache.sandesha2.util.PropertyManager;
 import org.apache.sandesha2.util.RMMsgCreator;
 import org.apache.sandesha2.util.RMPolicyManager;
 import org.apache.sandesha2.util.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SandeshaPropertyBean;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.util.SequenceManager;
 import org.apache.sandesha2.wsrm.AckRequested;
@@ -66,6 +70,8 @@
 import org.apache.sandesha2.wsrm.SequenceOffer;
 import org.apache.wsdl.WSDLConstants;
 
+import sun.security.action.GetPropertyAction;
+
 /**
  * This is invoked in the outFlow of an RM endpoint
  * 
@@ -114,8 +120,21 @@
                }
 
                //Adding the policy bean
-               RMPolicyBean policyBean = 
RMPolicyManager.getPolicyBean(rmMsgCtx);
-               rmMsgCtx.setProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN, 
policyBean);
+//             RMPolicyBean policyBean = 
RMPolicyManager.getPolicyBean(rmMsgCtx);
+//             rmMsgCtx.setProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN, 
policyBean);
+               Parameter policyParam = 
msgCtx.getParameter(Sandesha2Constants.SANDESHA2_POLICY_BEAN);
+               if (policyParam==null) {
+                       SandeshaPropertyBean propertyBean = 
PropertyManager.getInstance().getPropertyBean();
+                       Parameter parameter = new ParameterImpl ();
+                       
parameter.setName(Sandesha2Constants.SANDESHA2_POLICY_BEAN);
+                       parameter.setValue(propertyBean);
+                       
+                       //TODO this should be addede to the AxisMessage
+                       if (msgCtx.getAxisOperation()!=null)
+                               
msgCtx.getAxisOperation().addParameter(parameter);
+                       else if (msgCtx.getAxisService()!=null) 
+                               msgCtx.getAxisService().addParameter(parameter);
+               }
 
                CreateSeqBeanMgr createSeqMgr = 
storageManager.getCreateSeqBeanMgr();
                SequencePropertyBeanMgr seqPropMgr = storageManager

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/msgprocessors/ApplicationMsgProcessor.java
 Wed Jan 25 22:29:10 2006
@@ -54,6 +54,7 @@
 import org.apache.sandesha2.util.PropertyManager;
 import org.apache.sandesha2.util.RMMsgCreator;
 import org.apache.sandesha2.util.SOAPAbstractFactory;
+import org.apache.sandesha2.util.SandeshaPropertyBean;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.util.SequenceManager;
 import org.apache.sandesha2.wsrm.AckRequested;
@@ -177,8 +178,15 @@
 
        //      long nextMsgno = bean.getNextMsgNoToProcess();
 
-               boolean inOrderInvocation = PropertyManager.getInstance()
-                               .isInOrderInvocation();
+//             boolean inOrderInvocation = PropertyManager.getInstance()
+//                             .isInOrderInvocation();
+//             
+               //TODO currently this is an module-level property. Make this 
service specific.
+//             SandeshaPropertyBean propertyBean = (SandeshaPropertyBean) 
msgCtx.getParameter(Sandesha2Constants.SANDESHA2_POLICY_BEAN).getValue();
+//             boolean inOrderInvocation = propertyBean.isInOrder();
+               boolean inOrderInvocation = 
PropertyManager.getInstance().isInOrderInvocation();
+               
+               
                if (inOrderInvocation) {
                        
                        //pause the message
@@ -404,13 +412,18 @@
                        //sequence is the actual sequence ID
                        ackBean.setInternalSequenceID(sequenceId);
 
-                       RMPolicyBean policyBean = (RMPolicyBean) rmMsgCtx
-                                       
.getProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN);
-                       long ackInterval = PropertyManager.getInstance()
-                                       .getAcknowledgementInterval();
-                       if (policyBean != null) {
-                               ackInterval = 
policyBean.getAcknowledgementInaterval();
-                       }
+//                     RMPolicyBean policyBean = (RMPolicyBean) rmMsgCtx
+//                                     
.getProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN);
+               
+//                     long ackInterval = PropertyManager.getInstance()
+//                                     .getAcknowledgementInterval();
+                       
+                       SandeshaPropertyBean propertyBean = 
(SandeshaPropertyBean) 
msgCtx.getParameter(Sandesha2Constants.SANDESHA2_POLICY_BEAN).getValue();
+                       long ackInterval = 
propertyBean.getAcknowledgementInaterval();
+                       
+                       //                      if (policyBean != null) {
+//                             ackInterval = 
policyBean.getAcknowledgementInaterval();
+//                     }
                        
                        //Ack will be sent as stand alone, only after the 
retransmitter
                        // interval.

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/PolicyEngineData.java
 Wed Jan 25 22:29:10 2006
@@ -9,8 +9,8 @@
        private boolean invokeInOrder;
        private String messageTypesToDrop;
        private long retransmissionInterval;
-       private String permanentStorageMgr;
-       private String inmemoryStorageManager;
+       //private String permanentStorageMgr;
+       private String storageManager;
        
 
        public boolean isExponentialBackoff() {
@@ -61,13 +61,13 @@
                this.retransmissionInterval = retransmissionInterval;
        }
 
-       public String getPermanentStorageManager() {
-               return permanentStorageMgr;
-       }
-
-       public void setPermanentStorageManager(String storageManager) {
-               this.permanentStorageMgr = storageManager;
-       }
+//     public String getPermanentStorageManager() {
+//             return permanentStorageMgr;
+//     }
+//
+//     public void setPermanentStorageManager(String storageManager) {
+//             this.permanentStorageMgr = storageManager;
+//     }
 
        public void initializeWithDefaults() {
                
@@ -83,7 +83,8 @@
                ped.setInvokeInOrder(this.isInvokeInOrder());
                ped.setMessageTypesToDrop(this.getMessageTypesToDrop());
                ped.setRetransmissionInterval(this.getRetransmissionInterval());
-               
ped.setPermanentStorageManager(this.getPermanentStorageManager());
+               
//ped.setPermanentStorageManager(this.getPermanentStorageManager());
+               ped.setStorageManager(this.getStorageManager());
                
                return ped;
        }
@@ -96,11 +97,11 @@
                return acknowledgementInterval;
        }
        
-       public void setInmemoryStorageManager(String inmemoryStorageManager) {
-               this.inmemoryStorageManager = inmemoryStorageManager;
+       public void setStorageManager(String storageManager) {
+               this.storageManager = storageManager;
        }
        
-       public String getInmemoryStorageManager() {
-               return inmemoryStorageManager;
+       public String getStorageManager() {
+               return storageManager;
        }
 }

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/policy/RMPolicy.java 
Wed Jan 25 22:29:10 2006
@@ -33,8 +33,8 @@
        public static final RMPolicyToken permenentStorageManager = new 
RMPolicyToken(
                        "PermanentStorageManager", RMPolicyToken.SIMPLE_TOKEN, 
new String[]{});
        
-       public static final RMPolicyToken inmemoryStorageManager = new 
RMPolicyToken(
-                       "InmemoryStorageManager", RMPolicyToken.SIMPLE_TOKEN, 
new String[]{});
+       public static final RMPolicyToken storageManager = new RMPolicyToken(
+                       "StorageManager", RMPolicyToken.SIMPLE_TOKEN, new 
String[]{});
        
        public static final String includeNever = 
"http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never";;
 

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/StorageManagersProcessor.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/StorageManagersProcessor.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/StorageManagersProcessor.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/policy/processors/StorageManagersProcessor.java
 Wed Jan 25 22:29:10 2006
@@ -16,7 +16,7 @@
                        throws NoSuchMethodException {
                
logger.debug("StorageManagersProcessor:initializeStorageManager");
 
-               RMPolicyToken tmpRpt = RMPolicy.inmemoryStorageManager.copy();
+               RMPolicyToken tmpRpt = RMPolicy.storageManager.copy();
                tmpRpt.setProcessTokenMethod(this);
                rmpt.setChildToken(tmpRpt);
 
@@ -55,7 +55,7 @@
                return new Boolean(true);
        }
 
-       public Object doInmemoryStorageManager(RMProcessorContext rmpc) {
+       public Object doStorageManager(RMProcessorContext rmpc) {
                logger.debug("Processing "
                                + 
rmpc.readCurrentSecurityToken().getTokenName() + ": "
                                + 
RMProcessorContext.ACTION_NAMES[rmpc.getAction()]);
@@ -64,7 +64,7 @@
                String cls = rmpc.getAssertion().getStrValue();
 
                if (cls != null && !cls.trim().equals("")) {
-                       ped.setInmemoryStorageManager(cls.trim());
+                       ped.setStorageManager(cls.trim());
                }
 
                return new Boolean(true);
@@ -79,7 +79,7 @@
                String cls = spc.getAssertion().getStrValue();
 
                if (cls != null && !cls.trim().equals("")) {
-                       ped.setPermanentStorageManager(cls.trim());
+                       ped.setStorageManager(cls.trim());
                }
 
                return new Boolean(true);

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
 (original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/MessageRetransmissionAdjuster.java
 Wed Jan 25 22:29:10 2006
@@ -19,6 +19,9 @@
 
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.description.Parameter;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.Sandesha2Constants;
 import org.apache.sandesha2.SandeshaException;
 import org.apache.sandesha2.policy.RMPolicyBean;
@@ -33,6 +36,8 @@
 
 public class MessageRetransmissionAdjuster {
 
+       Log log = LogFactory.getLog( getClass());
+       
        public SenderBean adjustRetransmittion(
                        SenderBean retransmitterBean,ConfigurationContext 
configContext) throws SandeshaException {
                StorageManager storageManager = 
SandeshaUtil.getSandeshaStorageManager(configContext);
@@ -47,15 +52,23 @@
                if (messageContext.getConfigurationContext() == null)
                        return retransmitterBean;
 
-               RMPolicyBean policyBean = (RMPolicyBean) messageContext
-                               
.getProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN);
-               if (policyBean == null) {
-                       //loading default policies.
-                       policyBean = 
PropertyManager.getInstance().getRMPolicyBean();
+//             RMPolicyBean policyBean = (RMPolicyBean) messageContext
+//                             
.getProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN);
+//             if (policyBean == null) {
+//                     //loading default policies.
+//                     policyBean = 
PropertyManager.getInstance().getRMPolicyBean();
+//             }
+
+               Parameter parameter =  
messageContext.getParameter(Sandesha2Constants.SANDESHA2_POLICY_BEAN);
+               if (parameter==null) {
+                       log.error ("Cant adjust retransmission since, Parameter 
bean is not set");
+                       return retransmitterBean;
                }
-
+               
+               SandeshaPropertyBean propertyBean = (SandeshaPropertyBean) 
parameter.getValue();
+               
                retransmitterBean.setSentCount(retransmitterBean.getSentCount() 
+ 1);
-               adjustNextRetransmissionTime(retransmitterBean, policyBean);
+               adjustNextRetransmissionTime(retransmitterBean, propertyBean);
 
                if (retransmitterBean.getSentCount() >= 
Sandesha2Constants.MAXIMUM_RETRANSMISSION_ATTEMPTS)
                        stopRetransmission(retransmitterBean);
@@ -72,16 +85,16 @@
         * @return
         */
        private SenderBean adjustNextRetransmissionTime(
-                       SenderBean retransmitterBean, RMPolicyBean policyBean) {
+                       SenderBean retransmitterBean, SandeshaPropertyBean 
propertyBean) {
 
                long lastSentTime = retransmitterBean.getTimeToSend();
 
                int count = retransmitterBean.getSentCount();
 
-               long baseInterval = policyBean.getRetransmissionInterval();
+               long baseInterval = propertyBean.getRetransmissionInterval();
 
                long newInterval = baseInterval;
-               if (policyBean.isExponentialBackoff()) {
+               if (propertyBean.isExponentialBackoff()) {
                        newInterval = 
generateNextExponentialBackedoffDifference(count,
                                        baseInterval);
                }

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java 
(original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/PropertyManager.java 
Wed Jan 25 22:29:10 2006
@@ -201,7 +201,7 @@
                                
.setRetransmissionInterval(data.getRetransmissionInterval());
 
                // CHECKME
-               
propertyBean.setStorageManagerClass(data.getInmemoryStorageManager());
+               propertyBean.setStorageManagerClass(data.getStorageManager());
        }
 
        public static PropertyManager getInstance() {

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMMsgCreator.java 
Wed Jan 25 22:29:10 2006
@@ -29,6 +29,7 @@
 import org.apache.axis2.context.OperationContext;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
+import org.apache.axis2.description.Parameter;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.axis2.soap.SOAPFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -58,10 +59,28 @@
 
 public class RMMsgCreator {
 
-       private static void setUpMessage(MessageContext rmMsgCtx) {
+       private static void setUpMessage(MessageContext relatedMessage, 
MessageContext newMessage) throws SandeshaException {
                //Seting RMPolicyBean
-               if 
(rmMsgCtx.getProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN)==null)
-                       
rmMsgCtx.setProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN, 
PropertyManager.getInstance().getRMPolicyBean());
+//             if 
(rmMsgCtx.getProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN)==null)
+//                     
rmMsgCtx.setProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN, 
PropertyManager.getInstance().getRMPolicyBean());
+       
+               Parameter policyParam = 
relatedMessage.getParameter(Sandesha2Constants.SANDESHA2_POLICY_BEAN);
+//             if (propertyParam!=null)
+//                     
newMessage.setProperty(propertyParam.getName(),propertyParam.getValue());
+               
+               if (policyParam!=null) {
+                       
+                       try {
+                               //TODO this should be added to the AxisMessage
+                               if (newMessage.getAxisOperation()!=null)
+                                       
newMessage.getAxisOperation().addParameter(policyParam);
+                               else if (newMessage.getAxisService()!=null) {
+                                       
newMessage.getAxisService().addParameter(policyParam);
+                               }
+                       } catch (AxisFault e) {
+                               throw new SandeshaException (e.getMessage());
+                       }
+               }
        }
 
        /**
@@ -111,7 +130,7 @@
                        throw new SandeshaException(e.getMessage());
                }
 
-               setUpMessage(createSeqmsgContext);
+               setUpMessage(applicationMsgContext, createSeqmsgContext);
 
                AxisOperation appMsgOperationDesc = applicationMsgContext
                                .getAxisOperation();
@@ -236,7 +255,7 @@
                if (terminateMessage == null)
                        throw new SandeshaException("MessageContext is null");
 
-               setUpMessage(terminateMessage);
+               setUpMessage(referenceMessage, terminateMessage);
 
                SOAPFactory factory = 
SOAPAbstractFactory.getSOAPFactory(SandeshaUtil
                                
.getSOAPVersion(referenceMessage.getEnvelope()));
@@ -327,7 +346,7 @@
 
                outMessage.setEnvelope(envelope);
 
-               setUpMessage(outMessage);
+               setUpMessage(createSeqMessage.getMessageContext(), outMessage);
 
                RMMsgContext createSeqResponse = null;
                try {
@@ -414,7 +433,7 @@
                        RMMsgContext ackRMMsgCtx = MsgInitializer
                                        .initializeMessage(ackMsgCtx);
 
-                       setUpMessage(ackMsgCtx);
+                       setUpMessage(applicationMsgCtx, ackMsgCtx);
 
                        Sequence reqSequence = (Sequence) applicationRMMsgCtx
                                        
.getMessagePart(Sandesha2Constants.MessageParts.SEQUENCE);

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java 
(original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/RMPolicyManager.java 
Wed Jan 25 22:29:10 2006
@@ -17,8 +17,16 @@
 
 package org.apache.sandesha2.util;
 
+import java.util.ArrayList;
+
+import org.apache.axis2.description.AxisDescription;
 import org.apache.sandesha2.RMMsgContext;
+import org.apache.sandesha2.SandeshaException;
+import org.apache.sandesha2.policy.PolicyEngineData;
 import org.apache.sandesha2.policy.RMPolicyBean;
+import org.apache.sandesha2.policy.RMPolicyProcessor;
+import org.apache.sandesha2.policy.RMProcessorContext;
+import org.apache.ws.policy.Policy;
 
 /**
  * This is used to manage RM Policies.
@@ -34,5 +42,50 @@
                
                RMPolicyBean policyBean = 
PropertyManager.getInstance().getRMPolicyBean();
                return policyBean;
+       }
+       
+       public static SandeshaPropertyBean loadPoliciesFromAxisDescription 
(AxisDescription desc) throws SandeshaException{
+               
+               SandeshaPropertyBean propertyBean = new SandeshaPropertyBean ();
+               
+               Policy policy = desc.getPolicyInclude().getEffectivePolicy();
+
+               if (policy == null) {
+                       //no policy found
+                       return null;
+               }
+
+               RMPolicyProcessor processor = new RMPolicyProcessor();
+
+               try {
+                       processor.setup();
+               } catch (NoSuchMethodException e) {
+                       throw new SandeshaException(e.getMessage());
+               }
+               
+               processor.processPolicy(policy);
+
+               RMProcessorContext ctx = processor.getContext();
+               PolicyEngineData data = ctx.readCurrentPolicyEngineData();
+
+               propertyBean.setAcknowledgementInterval(data
+                               .getAcknowledgementInterval());
+               propertyBean.setExponentialBackoff(data.isExponentialBackoff());
+               propertyBean.setInactiveTimeoutInterval((int) data
+                               .getInactivityTimeout(), 
data.getInactivityTimeoutMeassure());
+               propertyBean.setInOrder(data.isInvokeInOrder());
+
+               // CHECKME
+               ArrayList msgTypesToDrop = new ArrayList();
+               msgTypesToDrop.add(data.getMessageTypesToDrop());
+               propertyBean.setMsgTypesToDrop(msgTypesToDrop);
+
+               propertyBean
+                               
.setRetransmissionInterval(data.getRetransmissionInterval());
+
+               // CHECKME
+               propertyBean.setStorageManagerClass(data.getStorageManager());
+               
+               return propertyBean;
        }
 }

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/util/SandeshaUtil.java 
Wed Jan 25 22:29:10 2006
@@ -421,7 +421,9 @@
                        return storageManager;
 
                } catch (Exception e) {
-                       throw new SandeshaException(e.getMessage());
+                       String message = "Cannot load the given storage 
manager";
+                       log.error(message);
+                       throw new SandeshaException(message);
                }
        }
 

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java 
(original)
+++ 
webservices/sandesha/trunk/src/org/apache/sandesha2/util/SequenceManager.java 
Wed Jan 25 22:29:10 2006
@@ -14,6 +14,7 @@
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.MessageContextConstants;
+import org.apache.axis2.description.Parameter;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sandesha2.RMMsgContext;
@@ -256,7 +257,10 @@
                        .getProperty(Sandesha2Constants.WSP.RM_POLICY_BEAN);
                if (policyBean == null) {
                        //loading default policies.
-                       policyBean = 
PropertyManager.getInstance().getRMPolicyBean();
+                       //policyBean = 
PropertyManager.getInstance().getRMPolicyBean();
+                       Parameter parameter =  
rmMsgCtx.getMessageContext().getParameter(Sandesha2Constants.SANDESHA2_POLICY_BEAN);
+                       SandeshaPropertyBean propertyBean = 
(SandeshaPropertyBean) parameter.getValue();
+                       policyBean = propertyBean.getPolicyBean();
                }
                
                if (policyBean.getInactiveTimeoutInterval()<=0)

Modified: 
webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java?rev=372458&r1=372457&r2=372458&view=diff
==============================================================================
--- webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java 
(original)
+++ webservices/sandesha/trunk/src/org/apache/sandesha2/workers/Sender.java Wed 
Jan 25 22:29:10 2006
@@ -43,6 +43,7 @@
 import org.apache.sandesha2.util.MessageRetransmissionAdjuster;
 import org.apache.sandesha2.util.MsgInitializer;
 import org.apache.sandesha2.util.PropertyManager;
+import org.apache.sandesha2.util.SandeshaPropertyBean;
 import org.apache.sandesha2.util.SandeshaUtil;
 import org.apache.sandesha2.util.SequenceManager;
 import org.apache.sandesha2.wsrm.Sequence;
@@ -144,6 +145,8 @@
 
                                                //skip sending if this message 
has been mentioned as a message not to send (within sandesha2.properties)
                                                ArrayList msgsNotToSend = 
PropertyManager.getInstance().getMessagesNotToSend();
+                                               //SandeshaPropertyBean 
propertyBean = (SandeshaPropertyBean) 
messageContext.getParameter(Sandesha2Constants.SANDESHA2_POLICY_BEAN);
+                                               
                                                if (msgsNotToSend!=null && 
msgsNotToSend.contains(new Integer (rmMsgCtx.getMessageType()))) {
                                                        continue;
                                                }



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

Reply via email to