Author: jaliya
Date: Thu Sep  1 14:42:45 2005
New Revision: 265786

URL: http://svn.apache.org/viewcvs?rev=265786&view=rev
Log:
Added the capability to the PropertyLoader.java to load parameters of the 
handlers insted of mere loading them by name.

Added:
    
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerDesc.java
    
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerParam.java
Modified:
    webservices/sandesha/branches/sandesha_1_0/config/sandesha.properties
    
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/Constants.java
    
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/SandeshaContext.java
    
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/client/ClientHandlerUtil.java
    
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/PropertyLoader.java

Modified: webservices/sandesha/branches/sandesha_1_0/config/sandesha.properties
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/branches/sandesha_1_0/config/sandesha.properties?rev=265786&r1=265785&r2=265786&view=diff
==============================================================================
--- webservices/sandesha/branches/sandesha_1_0/config/sandesha.properties 
(original)
+++ webservices/sandesha/branches/sandesha_1_0/config/sandesha.properties Thu 
Sep  1 14:42:45 2005
@@ -4,19 +4,54 @@
 # This is the SimpleAxisServerImpl running port. Only for testing purposes.
 SIMPLE_AXIS_SERVER_PORT = 8080
 
-# Any number of handlers can be included as shown below for the response path 
of the Sender.
-responseHandler1 = org.apache.axis.message.addressing.handler.AddressingHandler
-responseHandler2 = org.apache.sandesha.ws.rm.handlers.RMServerRequestHandler
+#Any number of handlers can be included as shown below for the Incoming path 
of the 
+#client side sender. E.g. messages are the synchronous acks.
+#Need to use the same names as shown with increasing parameter number.
+#value of the parameter is split at the first colon and the first part
+#is used as the option name for the parameter and the latter is the value.
 
-# If there are additional handlers that needs to be included in the Senders 
request path
+#ClientINHandler1 = org.test.ClientINHandler
+#ClientINHandler1Param1 = param1:AB
+#ClientINHandler1Param2 = param2:CD 
+ClientINHandler1 = org.apache.axis.message.addressing.handler.AddressingHandler
+ClientINHandler2 = org.apache.sandesha.ws.rm.handlers.RMServerRequestHandler
+
+# If there are additional handlers that needs to be included in the Client 
side Senders OUT path
 # then use the following configuration.
-# requestHandler1 = package.name.DummyHandler
 
-# These are the handlers for the Listener's request path. Listener's request 
path is used to
+#ClientOUTHandler1 = org.test.ClientOUTHandler
+#ClientOUTHandler1Param1 = param1:EF
+#ClientOUTHandler1Param2 = param2:GH
+
+#Configure handlers for the IN path of the Server side Sender.
+#Note that this is not for the server in path. Server In handlers should be 
configured
+#in server-config.wsdd, and this is ONLY for the in path of the server side 
sender.
+#E.g. messages are the synchronus acks for responses.
+#ServerINHandler1 = org.test.ServerINHandler
+#ServerINHandler1Param1 = param1:XX
+#ServerINHandler1Param2 = param2:YY
+
+#Configure handlers for the OUT path of the server side sender.
+#ServerOUTHandler1 = org.testsec.ServerOUTHandler
+#ServerOUTHandler1Param1 = param1:BBBB
+#ServerOUTHandler1Param2 = param2:CCCC
+
+# These are the handlers for the Listener's IN path. Listener's IN path is 
used to
 # retrieve asynchronous responses and other RM protocol messages and hence the 
handlers we put here
 # should be the RESPONSE handlers with respect to normal invocation.
-listenerRequestHandler1 = 
org.apache.axis.message.addressing.handler.AddressingHandler
-listenerRequestHandler2 = 
org.apache.sandesha.ws.rm.handlers.RMServerRequestHandler
+#ListenerINHandler1 = org.test.ClientINHandler
+#ListenerINHandler1Param1 = param1:IJ
+#ListenerINHandler1Param2 = param2:KL
+
+ListenerINHandler1 = 
org.apache.axis.message.addressing.handler.AddressingHandler
+ListenerINHandler2 = org.apache.sandesha.ws.rm.handlers.RMServerRequestHandler
+
+#Configure Listener's OUT path as follows. 
+#E.g. messages are the synchronous acks from the client side.
+#ListenerOUTHandler1 = org.test.ClientOUTHandler
+#ListenerOUTHandler1Param1 = param1:MN
+#ListenerOUTHandler1Param2 = param2:OP
+
 
 # Define the strategy for executing web service invokes.
 # This impl uses the apache axis thread pool and configures

Modified: 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/Constants.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/Constants.java?rev=265786&r1=265785&r2=265786&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/Constants.java
 (original)
+++ 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/Constants.java
 Thu Sep  1 14:42:45 2005
@@ -203,10 +203,15 @@
         String CALL_KEY = "callKey";
         String REPORT = "report";
 
-        String REQUEST_HANDLER = "requestHandler";
-        String RESPONSE_HANDLER = "responseHandler";
-        String LISTENER_REQUEST_HANDLER = "listenerRequestHandler";
-        String LISTENER_RESPONSE_HANDLER = "listenerResponseHandler";
+        String PARAM="Param";
+        String CLIENT_OUT_HANDLER = "ClientOUTHandler";
+        String CLIENT_IN_HANDLER = "ClientINHandler";
+        
+        String SERVER_OUT_HANDLER= "ServerOUTHandler";
+        String SERVER_IN_HANDLER= "ServerINHandler";
+        
+        String LISTENER_IN_HANDLER = "ListenerINHandler";
+        String LISTENER_OUT_HANDLER = "ListenerOUTHandler";
 
         String PROVIDER_CLASS = "providerClass";
         String DEFAULT_PROVIDER_CLASS = 
"org.apache.axis.providers.java.RPCProvider";

Modified: 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/SandeshaContext.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/SandeshaContext.java?rev=265786&r1=265785&r2=265786&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/SandeshaContext.java
 (original)
+++ 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/SandeshaContext.java
 Thu Sep  1 14:42:45 2005
@@ -280,16 +280,38 @@
         cleintSenderStarted = true;
     }
 
-    private static void startServerSender() {
+    private static void startServerSender() throws AxisFault{
         if (log.isDebugEnabled()) {
             log.debug(Constants.InfomationMessage.SENDER_STARTED);
         }
         serverSender = new Sender();
+        SimpleChain inChain = null;
+        SimpleChain outChain = null;
+        try {
+            outChain = getServerSenderOUTChain();
+            inChain = getServerSenderINChain();
+        } catch (Exception e) {
+            throw new AxisFault(e.getMessage());
+        }
+        if (outChain != null)
+            serverSender.setRequestChain(outChain);
+        if (inChain != null)
+               serverSender.setResponseChain(inChain);
         serverSender.startSender();
         serverSenderStarted = true;
     }
 
-    private void validateProperties(Call call, String targetUrl, String 
action, short MEP)
+    private static SimpleChain getServerSenderINChain() {
+        ArrayList arr = PropertyLoader.getServerSenderINHandlers();
+         return ClientHandlerUtil.getHandlerChain(arr);
+       }
+
+       private static SimpleChain getServerSenderOUTChain() {
+               ArrayList arr = PropertyLoader.getServerSenderOUTHandlers();
+                return ClientHandlerUtil.getHandlerChain(arr);
+       }
+
+       private void validateProperties(Call call, String targetUrl, String 
action, short MEP)
             throws AxisFault {
         if (action == null)
             throw new AxisFault("Please sepeicfy Action");

Modified: 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/client/ClientHandlerUtil.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/client/ClientHandlerUtil.java?rev=265786&r1=265785&r2=265786&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/client/ClientHandlerUtil.java
 (original)
+++ 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/client/ClientHandlerUtil.java
 Thu Sep  1 14:42:45 2005
@@ -37,7 +37,10 @@
 import org.apache.axis.SimpleChain;
 import org.apache.axis.components.logger.LogFactory;
 import org.apache.commons.logging.Log;
+import org.apache.sandesha.util.HandlerDesc;
+import org.apache.sandesha.util.HandlerParam;
 
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
@@ -63,19 +66,30 @@
         Iterator it = arr.iterator();
 
         boolean hasReqHandlers = false;
+        ArrayList tempParam=null;
+        HandlerDesc tempHd=null;
 
         try {
-
+               String handlerClass;
+               
             while (it.hasNext()) {
 
                 hasReqHandlers = true;
-
-                String strClass = (String) it.next();
-
-                Class c = Class.forName(strClass);
+                tempHd=(HandlerDesc)it.next();
+                
+                handlerClass=tempHd.getName();
+                tempParam=(ArrayList) tempHd.getParams();
+                
+                Class c = Class.forName(handlerClass);
 
                 Handler h = (Handler) c.newInstance();
-
+               
+                Iterator ite=tempParam.iterator();
+                while(ite.hasNext()){
+                       HandlerParam hp=(HandlerParam)ite.next();
+                       h.setOption(hp.getName(),hp.getValue());
+                }
+            
                 reqHandlers.addHandler(h);
 
             }

Added: 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerDesc.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerDesc.java?rev=265786&view=auto
==============================================================================
--- 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerDesc.java
 (added)
+++ 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerDesc.java
 Thu Sep  1 14:42:45 2005
@@ -0,0 +1,37 @@
+package org.apache.sandesha.util;

+

+import java.util.ArrayList;

+import java.util.List;

+

+public class HandlerDesc {

+       private String name;

+       private List params;

+       

+       public HandlerDesc(){

+               params=new ArrayList();

+       }

+

+       public String getName() {

+               return name;

+       }

+

+       public void setName(String name) {

+               this.name = name;

+       }

+

+       public List getParams() {

+               return params;

+       }

+

+       public void setParams(List params) {

+               this.params = params;

+       }

+       

+       public void addParam(HandlerParam param){

+               params.add(param);

+       }

+       

+       

+       

+

+}


Added: 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerParam.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerParam.java?rev=265786&view=auto
==============================================================================
--- 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerParam.java
 (added)
+++ 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/HandlerParam.java
 Thu Sep  1 14:42:45 2005
@@ -0,0 +1,20 @@
+package org.apache.sandesha.util;

+

+public class HandlerParam {

+       private String name;

+       private String value;

+       public String getName() {

+               return name;

+       }

+       public void setName(String name) {

+               this.name = name;

+       }

+       public String getValue() {

+               return value;

+       }

+       public void setValue(String value) {

+               this.value = value;

+       }

+       

+

+}


Modified: 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/PropertyLoader.java
URL: 
http://svn.apache.org/viewcvs/webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/PropertyLoader.java?rev=265786&r1=265785&r2=265786&view=diff
==============================================================================
--- 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/PropertyLoader.java
 (original)
+++ 
webservices/sandesha/branches/sandesha_1_0/src/org/apache/sandesha/util/PropertyLoader.java
 Thu Sep  1 14:42:45 2005
@@ -77,14 +77,22 @@
     }
 
     public static ArrayList getRequestHandlerNames() {
-        return getHandlerNames(Constants.ClientProperties.REQUEST_HANDLER);
+        return getHandlers(Constants.ClientProperties.CLIENT_OUT_HANDLER);
     }
 
     public static ArrayList getResponseHandlerNames() {
-        return getHandlerNames(Constants.ClientProperties.RESPONSE_HANDLER);
+        return getHandlers(Constants.ClientProperties.CLIENT_IN_HANDLER);
+    }
+    
+    public static ArrayList getServerSenderINHandlers() {
+        return getHandlers(Constants.ClientProperties.SERVER_IN_HANDLER);
+    }
+    
+    public static ArrayList getServerSenderOUTHandlers() {
+        return getHandlers(Constants.ClientProperties.SERVER_OUT_HANDLER);
     }
 
-    public static ArrayList getHandlerNames(String type) {
+    public static ArrayList getHandlers(String type) {
         Properties properties = new Properties();
         load(properties);
         ArrayList ret = new ArrayList();
@@ -95,20 +103,45 @@
             String tempStr = type + temp;
             propVal = properties.getProperty(tempStr);
             if (propVal != null) {
-                ret.add(propVal);
+               HandlerDesc hd= new HandlerDesc();
+               hd.setName(propVal);
+               hd.setParams(readParams(properties,tempStr));                   
+                ret.add(hd);
             }
 
         } while (propVal != null);
         return ret;
     }
+    
+  
+    private static ArrayList readParams(Properties properties,String tempStr) {
+       ArrayList paramList=new ArrayList();
+       int temp=0;
+       String paramVal;
+       String[] nameValue;
+       do{
+               temp++;
+               String paramName=tempStr+Constants.ClientProperties.PARAM+temp;
+               paramVal =properties.getProperty(paramName);
+               if(paramVal!=null){
+                       nameValue=paramVal.split(Constants.COLON,2);
+                       HandlerParam param= new HandlerParam();
+                       param.setName(nameValue[0]);
+                       param.setValue(nameValue[1]);
+                       paramList.add(param);
+               }
+       }while(paramVal!=null);
+       
+       return paramList;
+                       
+       }
 
-
-    public static ArrayList getListenerRequestHandlerNames() {
-        return 
getHandlerNames(Constants.ClientProperties.LISTENER_REQUEST_HANDLER);
+       public static ArrayList getListenerRequestHandlerNames() {
+        return getHandlers(Constants.ClientProperties.LISTENER_IN_HANDLER);
     }
 
     public static ArrayList getListenerResponseHandlerNames() {
-        return 
getHandlerNames(Constants.ClientProperties.LISTENER_RESPONSE_HANDLER);
+        return getHandlers(Constants.ClientProperties.LISTENER_OUT_HANDLER);
     }
 
     public static String getProvider() {



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

Reply via email to