Author: ningjiang Date: Thu Aug 4 10:19:52 2011 New Revision: 1153829 URL: http://svn.apache.org/viewvc?rev=1153829&view=rev Log: CAMEL-4254 Fixed the issue of Missing setter or constructor-argument for elementNameStrategyRef in SoapJaxbDataFormat
Modified: camel/trunk/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/SoapJaxbDataFormat.java camel/trunk/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/SoapSpringRoundtripTest-context.xml Modified: camel/trunk/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/SoapJaxbDataFormat.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/SoapJaxbDataFormat.java?rev=1153829&r1=1153828&r2=1153829&view=diff ============================================================================== --- camel/trunk/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/SoapJaxbDataFormat.java (original) +++ camel/trunk/components/camel-soap/src/main/java/org/apache/camel/dataformat/soap/SoapJaxbDataFormat.java Thu Aug 4 10:19:52 2011 @@ -93,9 +93,9 @@ public class SoapJaxbDataFormat extends /** * Initialize the data format. The serviceInterface is necessary to * determine the element name and namespace of the element inside the soap - * body when marshaling + * body when marshalling * - * @param jaxbPackage + * @param contextPath * package for JAXB context * @param serviceInterface * webservice interface @@ -104,6 +104,21 @@ public class SoapJaxbDataFormat extends this(contextPath); this.elementNameStrategy = elementNameStrategy; } + + /** + * Initialize the data format. The serviceInterface is necessary to + * determine the element name and namespace of the element inside the soap + * body when marshalling + * + * @param contextPath + * package for JAXB context + * @param elementNameStrategyRef + * webservice interface referenced bean name + */ + public SoapJaxbDataFormat(String contextPath, String elementNameStrategyRef) { + this(contextPath); + this.elementNameStrategyRef = elementNameStrategyRef; + } public void setElementNameStrategy(Object nameStrategy) { if (nameStrategy instanceof ElementNameStrategy) { @@ -346,6 +361,7 @@ public class SoapJaxbDataFormat extends * Unmarshal a given SOAP xml stream and return the content of the SOAP body */ public Object unmarshal(Exchange exchange, InputStream stream) throws IOException { + checkElementNameStrategy(exchange); String soapAction = getSoapActionFromExchange(exchange); @@ -471,5 +487,10 @@ public class SoapJaxbDataFormat extends public void setElementNameStrategy(ElementNameStrategy elementNameStrategy) { this.elementNameStrategy = elementNameStrategy; } + + public void setElementNameStrategyRef(String nameStrategyRef) { + this.elementNameStrategyRef = nameStrategyRef; + } } + Modified: camel/trunk/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/SoapSpringRoundtripTest-context.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/SoapSpringRoundtripTest-context.xml?rev=1153829&r1=1153828&r2=1153829&view=diff ============================================================================== --- camel/trunk/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/SoapSpringRoundtripTest-context.xml (original) +++ camel/trunk/components/camel-soap/src/test/resources/org/apache/camel/dataformat/soap/SoapSpringRoundtripTest-context.xml Thu Aug 4 10:19:52 2011 @@ -21,6 +21,12 @@ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd "> + + <!-- Defining a ServiceInterfaceStrategy for retrieving the element name when marshalling --> + <bean id="myNameStrategy" class="org.apache.camel.dataformat.soap.name.ServiceInterfaceStrategy"> + <constructor-arg value="com.example.customerservice.CustomerService"/> + <constructor-arg value="true"/> + </bean> <!-- START SNIPPET: e1 --> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> @@ -41,3 +47,4 @@ <!-- END SNIPPET: e1 --> </beans> +