You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2007/02/27 23:50:02 UTC
svn commit: r512470 - in /incubator/cxf/trunk/rt/frontend/jaxws/src:
main/java/org/apache/cxf/jaxws/handler/
test/java/org/apache/cxf/jaxws/handler/
Author: dkulp
Date: Tue Feb 27 14:50:01 2007
New Revision: 512470
URL: http://svn.apache.org/viewvc?view=rev&rev=512470
Log:
CXF-406 - commit patch from Jarek Gawor
Modified:
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java
incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/handlers.xml
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java?view=diff&rev=512470&r1=512469&r2=512470
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilder.java Tue Feb 27 14:50:01 2007
@@ -65,7 +65,6 @@
} else {
hcAnn.validate();
- HandlerChainType hc = null;
try {
JAXBContext jc = JAXBContext
.newInstance(org.apache.cxf.jaxws.javaee.ObjectFactory.class);
@@ -79,20 +78,25 @@
throw new WebServiceException(BUNDLE
.getString("CHAIN_NOT_SPECIFIED_EXC"));
}
- //We expect only one HandlerChainType here
- hc = (HandlerChainType) handlerChainsType.getHandlerChain().iterator().next();
+
+ chain = new ArrayList<Handler>();
+ for (HandlerChainType hc : handlerChainsType.getHandlerChain()) {
+ chain.addAll(buildHandlerChain(hc, clz.getClassLoader()));
+ }
+
} catch (Exception e) {
- e.printStackTrace();
throw new WebServiceException(BUNDLE.getString("CHAIN_NOT_SPECIFIED_EXC"), e);
}
-
- chain = buildHandlerChain(hc, clz.getClassLoader());
}
assert chain != null;
if (existingHandlers != null) {
chain.addAll(existingHandlers);
}
return sortHandlers(chain);
+ }
+
+ protected URL resolveHandlerChainAnnotationFile(Class clazz, String name) {
+ return clazz.getResource(name);
}
public List<Handler> buildHandlerChainFromClass(Class<?> clz) {
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java?view=diff&rev=512470&r1=512469&r2=512470
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainBuilder.java Tue Feb 27 14:50:01 2007
@@ -162,11 +162,13 @@
}
private void initializeViaInjection(Handler handler, final Map<String, String> params) {
- ResourceManager resMgr = bus.getExtension(ResourceManager.class);
- List<ResourceResolver> resolvers = resMgr.getResourceResolvers();
- resolvers.add(new InitParamResourceResolver(params));
- ResourceInjector resInj = new ResourceInjector(resMgr, resolvers);
- resInj.inject(handler);
+ if (bus != null) {
+ ResourceManager resMgr = bus.getExtension(ResourceManager.class);
+ List<ResourceResolver> resolvers = resMgr.getResourceResolvers();
+ resolvers.add(new InitParamResourceResolver(params));
+ ResourceInjector resInj = new ResourceInjector(resMgr, resolvers);
+ resInj.inject(handler);
+ }
}
private void initializeViaInitMethod(Handler handler, Map<String, String> params, Method init) {
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java?view=diff&rev=512470&r1=512469&r2=512470
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/AnnotationHandlerChainBuilderTest.java Tue Feb 27 14:50:01 2007
@@ -40,9 +40,10 @@
AnnotationHandlerChainBuilder chainBuilder = new AnnotationHandlerChainBuilder();
List<Handler> handlers = chainBuilder.buildHandlerChainFromClass(handlerTestImpl.getClass());
assertNotNull(handlers);
- assertEquals(2, handlers.size());
+ assertEquals(3, handlers.size());
assertEquals(TestLogicalHandler.class, handlers.get(0).getClass());
assertEquals(TestLogicalHandler.class, handlers.get(1).getClass());
+ assertEquals(TestProtocolHandler.class, handlers.get(2).getClass());
}
public static class TestLogicalHandler implements LogicalHandler {
@@ -63,6 +64,20 @@
public final void init(final Map map) {
config = map;
initCalled = true;
+ }
+ }
+
+ public static class TestProtocolHandler implements Handler {
+
+ public void close(MessageContext arg0) {
+ }
+
+ public boolean handleFault(MessageContext arg0) {
+ return false;
+ }
+
+ public boolean handleMessage(MessageContext arg0) {
+ return false;
}
}
Modified: incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/handlers.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/handlers.xml?view=diff&rev=512470&r1=512469&r2=512470
==============================================================================
--- incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/handlers.xml (original)
+++ incubator/cxf/trunk/rt/frontend/jaxws/src/test/java/org/apache/cxf/jaxws/handler/handlers.xml Tue Feb 27 14:50:01 2007
@@ -24,6 +24,16 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee">
<handler-chain>
<handler>
+ <handler-name>lh3</handler-name>
+ <handler-class>org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilderTest$TestProtocolHandler</handler-class>
+ <init-param>
+ <param-name>token</param-name>
+ <param-value>String</param-value>
+ </init-param>
+ </handler>
+ </handler-chain>
+ <handler-chain>
+ <handler>
<handler-name>lh1</handler-name>
<handler-class>org.apache.cxf.jaxws.handler.AnnotationHandlerChainBuilderTest$TestLogicalHandler</handler-class>
<init-param>