Author: thomas.diesler(a)jboss.com
Date: 2007-01-25 08:57:30 -0500 (Thu, 25 Jan 2007)
New Revision: 2108
Modified:
branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/handler/HandlerResolverImpl.java
Log:
Support pre/post handlers
Modified:
branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/handler/HandlerResolverImpl.java
===================================================================
---
branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/handler/HandlerResolverImpl.java 2007-01-25
12:40:53 UTC (rev 2107)
+++
branches/jbossws-1.2.0/jbossws-core/src/main/java/org/jboss/ws/core/jaxws/handler/HandlerResolverImpl.java 2007-01-25
13:57:30 UTC (rev 2108)
@@ -63,7 +63,9 @@
{
private static Logger log = Logger.getLogger(HandlerResolverImpl.class);
- private Map<PortInfo, List<Handler>> handlerMap = new HashMap<PortInfo,
List<Handler>>();
+ private Map<PortInfo, List<Handler>> preHandlers = new
HashMap<PortInfo, List<Handler>>();
+ private Map<PortInfo, List<Handler>> jaxwsHandlers = new
HashMap<PortInfo, List<Handler>>();
+ private Map<PortInfo, List<Handler>> postHandlers = new
HashMap<PortInfo, List<Handler>>();
public List<Handler> getHandlerChain(PortInfo info)
{
@@ -77,7 +79,7 @@
if (bindingID != null)
{
- List<Handler> list = handlerMap.get(new PortInfoImpl(null, null,
bindingID));
+ List<Handler> list = jaxwsHandlers.get(new PortInfoImpl(null, null,
bindingID));
if (list != null)
{
log.debug("add protocol handlers: " + list);
@@ -87,7 +89,7 @@
if (serviceName != null)
{
- List<Handler> list = handlerMap.get(new PortInfoImpl(serviceName, null,
null));
+ List<Handler> list = jaxwsHandlers.get(new PortInfoImpl(serviceName, null,
null));
if (list != null)
{
log.debug("add service handlers: " + list);
@@ -97,7 +99,7 @@
if (portName != null)
{
- List<Handler> list = handlerMap.get(new PortInfoImpl(null, portName,
null));
+ List<Handler> list = jaxwsHandlers.get(new PortInfoImpl(null, portName,
null));
if (list != null)
{
log.debug("add port handlers: " + list);
@@ -105,7 +107,7 @@
}
}
- List<Handler> list = handlerMap.get(new PortInfoImpl(null, null, null));
+ List<Handler> list = jaxwsHandlers.get(new PortInfoImpl(null, null, null));
if (list != null)
{
log.debug("add general handlers: " + list);
@@ -133,7 +135,7 @@
log.debug("initHandlerChain: " + type);
// clear all exisisting handler to avoid double registration
- log.debug("Clear handler map: " + handlerMap);
+ log.debug("Clear handler map: " + jaxwsHandlers);
for (HandlerMetaData handlerMetaData : epMetaData.getHandlerMetaData(type))
{
@@ -158,7 +160,7 @@
List<PortInfo> infos = getPortInfos(epMetaData, jaxwsMetaData);
for (PortInfo info : infos)
{
- addHandler(info, handler);
+ addHandler(info, handler, handlerMetaData.getHandlerType());
}
}
catch (RuntimeException rte)
@@ -273,10 +275,18 @@
return infos;
}
- public boolean addHandler(PortInfo info, Handler handler)
+ private boolean addHandler(PortInfo info, Handler handler, HandlerType type)
{
log.debug("addHandler: " + info + ":" + handler);
+ Map<PortInfo, List<Handler>> handlerMap = null;
+ if (type == HandlerType.PRE)
+ handlerMap = preHandlers;
+ else if (type == HandlerType.ENDPOINT)
+ handlerMap = jaxwsHandlers;
+ else if (type == HandlerType.POST)
+ handlerMap = postHandlers;
+
List<Handler> handlerList = handlerMap.get(info);
if (handlerList == null)
{