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