--- xfire-1.2.4/xfire-spring/src/main/org/codehaus/xfire/spring/remoting/Jsr181HandlerMapping.java 2006-09-02 11:06:56.000000000 -0700 +++ xfire-1.2.4-altered/xfire-spring/src/main/org/codehaus/xfire/spring/remoting/Jsr181HandlerMapping.java 2007-01-21 02:45:55.000000000 -0800 @@ -2,6 +2,8 @@ import java.lang.reflect.Modifier; +import java.util.List; + import javax.xml.namespace.QName; import org.codehaus.xfire.XFire; @@ -40,6 +42,10 @@ private TypeMappingRegistry typeMappingRegistry; private String urlPrefix = "/services/"; private String servletControllerAdapterName; + + private List inHandlers; + private List outHandlers; + private List faultHandlers; protected void initApplicationContext() throws BeansException @@ -112,6 +118,24 @@ " to " + urlPrefix + endpoint.getSimpleName()); } + // set up in handlers + if (endpoint.getInHandlers() == null) + endpoint.setInHandlers(getInHandlers()); + else if (getInHandlers() != null) + endpoint.getInHandlers().addAll(getInHandlers()); + + // set up out handlers + if (endpoint.getOutHandlers() == null) + endpoint.setOutHandlers(getOutHandlers()); + else if (getOutHandlers() != null) + endpoint.getOutHandlers().addAll(getOutHandlers()); + + // set up fault handlers. + if (endpoint.getFaultHandlers() == null) + endpoint.setFaultHandlers(getFaultHandlers()); + else if (getFaultHandlers() != null) + endpoint.getFaultHandlers().addAll(getFaultHandlers()); + xFire.getServiceRegistry().register(endpoint); endpoint.setInvoker(new BeanInvoker(bean)); Object controller = createController(endpoint.getName()); @@ -198,4 +222,34 @@ { this.servletControllerAdapterName = servletControllerAdapterName; } + + public List getFaultHandlers() + { + return faultHandlers; + } + + public void setFaultHandlers(List faultHandlers) + { + this.faultHandlers = faultHandlers; + } + + public List getInHandlers() + { + return inHandlers; + } + + public void setInHandlers(List inHandlers) + { + this.inHandlers = inHandlers; + } + + public List getOutHandlers() + { + return outHandlers; + } + + public void setOutHandlers(List outHandlers) + { + this.outHandlers = outHandlers; + } }