Added namespace support for "message-factory" and "fault-message-resolver" (INT-291).
This commit is contained in:
@@ -74,6 +74,14 @@ public class WebServiceHandlerParser extends AbstractSingleBeanDefinitionParser
|
||||
if (StringUtils.hasText(requestCallbackRef)) {
|
||||
builder.addPropertyReference("requestCallback", requestCallbackRef);
|
||||
}
|
||||
String messageFactoryRef = element.getAttribute("message-factory");
|
||||
if (StringUtils.hasText(messageFactoryRef)) {
|
||||
builder.addPropertyReference("messageFactory", messageFactoryRef);
|
||||
}
|
||||
String faultMessageResolverRef = element.getAttribute("fault-message-resolver");
|
||||
if (StringUtils.hasText(faultMessageResolverRef)) {
|
||||
builder.addPropertyReference("faultMessageResolver", faultMessageResolverRef);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
<xsd:attribute name="unmarshaller" type="xsd:string"/>
|
||||
<xsd:attribute name="source-extractor" type="xsd:string"/>
|
||||
<xsd:attribute name="request-callback" type="xsd:string"/>
|
||||
<xsd:attribute name="message-factory" type="xsd:string"/>
|
||||
<xsd:attribute name="fault-message-resolver" type="xsd:string"/>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.integration.ws.config;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import org.springframework.ws.WebServiceMessage;
|
||||
import org.springframework.ws.client.core.FaultMessageResolver;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public class StubFaultMessageResolver implements FaultMessageResolver {
|
||||
|
||||
public void resolveFault(WebServiceMessage message) throws IOException {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright 2002-2008 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.springframework.integration.ws.config;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
||||
import org.springframework.ws.WebServiceMessage;
|
||||
import org.springframework.ws.WebServiceMessageFactory;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
*/
|
||||
public class StubMessageFactory implements WebServiceMessageFactory {
|
||||
|
||||
public WebServiceMessage createWebServiceMessage() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public WebServiceMessage createWebServiceMessage(InputStream inputStream) throws IOException {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -28,6 +28,8 @@ import org.springframework.integration.ws.handler.MarshallingWebServiceHandler;
|
||||
import org.springframework.integration.ws.handler.SimpleWebServiceHandler;
|
||||
import org.springframework.oxm.Marshaller;
|
||||
import org.springframework.oxm.Unmarshaller;
|
||||
import org.springframework.ws.WebServiceMessageFactory;
|
||||
import org.springframework.ws.client.core.FaultMessageResolver;
|
||||
import org.springframework.ws.client.core.SourceExtractor;
|
||||
import org.springframework.ws.client.core.WebServiceMessageCallback;
|
||||
|
||||
@@ -68,6 +70,30 @@ public class WebServiceHandlerParserTests {
|
||||
assertEquals(callback, accessor.getPropertyValue("requestCallback"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleWebServiceHandlerWithCustomMessageFactory() {
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"simpleWebServiceHandlerParserTests.xml", this.getClass());
|
||||
MessageHandler handler = (MessageHandler) context.getBean("handlerWithCustomMessageFactory");
|
||||
assertEquals(SimpleWebServiceHandler.class, handler.getClass());
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(handler);
|
||||
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
|
||||
WebServiceMessageFactory factory = (WebServiceMessageFactory) context.getBean("messageFactory");
|
||||
assertEquals(factory, accessor.getPropertyValue("messageFactory"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleWebServiceHandlerWithCustomFaultMessageResolver() {
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"simpleWebServiceHandlerParserTests.xml", this.getClass());
|
||||
MessageHandler handler = (MessageHandler) context.getBean("handlerWithCustomFaultMessageResolver");
|
||||
assertEquals(SimpleWebServiceHandler.class, handler.getClass());
|
||||
DirectFieldAccessor accessor = new DirectFieldAccessor(handler);
|
||||
accessor = new DirectFieldAccessor(accessor.getPropertyValue("webServiceTemplate"));
|
||||
FaultMessageResolver resolver = (FaultMessageResolver) context.getBean("faultMessageResolver");
|
||||
assertEquals(resolver, accessor.getPropertyValue("faultMessageResolver"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWebServiceHandlerWithAllInOneMarshaller() {
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
|
||||
@@ -18,8 +18,20 @@
|
||||
uri="http://example.org"
|
||||
request-callback="requestCallback"/>
|
||||
|
||||
<si:ws-handler id="handlerWithCustomMessageFactory"
|
||||
uri="http://example.org"
|
||||
message-factory="messageFactory"/>
|
||||
|
||||
<si:ws-handler id="handlerWithCustomFaultMessageResolver"
|
||||
uri="http://example.org"
|
||||
fault-message-resolver="faultMessageResolver"/>
|
||||
|
||||
<bean id="sourceExtractor" class="org.springframework.integration.ws.config.StubSourceExtractor"/>
|
||||
|
||||
<bean id="requestCallback" class="org.springframework.integration.ws.config.StubWebServiceMessageCallback"/>
|
||||
|
||||
<bean id="messageFactory" class="org.springframework.integration.ws.config.StubMessageFactory"/>
|
||||
|
||||
<bean id="faultMessageResolver" class="org.springframework.integration.ws.config.StubFaultMessageResolver"/>
|
||||
|
||||
</beans>
|
||||
|
||||
@@ -5,7 +5,7 @@ Bundle-ManifestVersion: 2
|
||||
Import-Template:
|
||||
org.springframework.integration.*;version="[1.0.0, 1.0.1)",
|
||||
org.springframework.beans.factory.*;version="[2.5.4.A, 3.0.0)",
|
||||
org.springframework.oxm;version="[1.5.1.A, 2.0.0)";resolution:=optional,
|
||||
org.springframework.oxm;version="[1.5.1.A, 2.0.0)",
|
||||
org.springframework.util;version="[2.5.4.A, 3.0.0)",
|
||||
org.springframework.ws.*;version="[1.5.1.A, 2.0.0)",
|
||||
org.springframework.xml.transform;version="[1.5.1.A, 2.0.0)"
|
||||
|
||||
Reference in New Issue
Block a user