You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by ja...@apache.org on 2005/09/01 23:42:55 UTC

svn commit: r265786 - in /webservices/sandesha/branches/sandesha_1_0: config/ src/org/apache/sandesha/ src/org/apache/sandesha/client/ src/org/apache/sandesha/util/

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: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org