You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2009/09/09 05:26:01 UTC

svn commit: r812757 - in /servicemix/smx3/branches/servicemix-3.2/deployables: bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/ s...

Author: ffang
Date: Wed Sep  9 03:25:57 2009
New Revision: 812757

URL: http://svn.apache.org/viewvc?rev=812757&view=rev
Log:
[SMXCOMP-633]check if the NormalizedMessage is fault in org.apache.servicemix.cxfse.interceptors.AttachmentInInterceptor

Modified:
    servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderMtomTest.java
    servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java
    servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml
    servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/interceptors/AttachmentInInterceptor.java

Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderMtomTest.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderMtomTest.java?rev=812757&r1=812756&r2=812757&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderMtomTest.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/CxfBcProviderMtomTest.java Wed Sep  9 03:25:57 2009
@@ -23,9 +23,14 @@
 import javax.xml.namespace.QName;
 import javax.xml.ws.soap.SOAPBinding;
 
+import org.apache.cxf.calculator.CalculatorPortType;
+import org.apache.cxf.endpoint.Endpoint;
+import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.interceptor.LoggingInInterceptor;
 import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.apache.cxf.jaxws.EndpointImpl;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
+import org.apache.cxf.service.model.ServiceInfo;
 import org.apache.servicemix.client.DefaultServiceMixClient;
 import org.apache.servicemix.cxfbc.mtom.TestMtomImpl;
 import org.apache.servicemix.cxfse.CxfSeComponent;
@@ -90,6 +95,45 @@
         
     }
     
+    public void testMtomWithException() throws Exception {
+        // start external service
+        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
+        factory.setServiceClass(CalculatorPortType.class);
+        factory.setServiceBean(new CalculatorImpl());
+        String address = "http://localhost:9001/providertest";
+        factory.setAddress(address);
+        factory.setBindingId("http://schemas.xmlsoap.org/wsdl/soap12/");
+        Server server = factory.create();
+        Endpoint endpoint = server.getEndpoint();
+        endpoint.getInInterceptors().add(new LoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new LoggingOutInterceptor());
+        ServiceInfo service = endpoint.getEndpointInfo().getService();
+        assertNotNull(service);
+        client = new DefaultServiceMixClient(jbi);
+        io = client.createInOutExchange();
+        io.setService(new QName("http://apache.org/hello_world_soap_http",
+                "SOAPServiceProvider"));
+        io.setInterfaceName(new QName(
+                "http://apache.org/hello_world_soap_http", "Greeter"));
+        // send message to proxy
+        io
+                .getInMessage()
+                .setContent(
+                        new StringSource(
+                                "<message xmlns='http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper'>"
+                                        + "<part> "
+                                        + "<greetMe xmlns='http://apache.org/hello_world_soap_http/types'><requestType>"
+                                        + "ffang with mtom exception"
+                                        + "</requestType></greetMe>"
+                                        + "</part> " + "</message>"));
+        client.sendSync(io);
+        assertTrue(new SourceTransformer()
+                .contentToString(io.getOutMessage())
+                .indexOf(
+                        "Hello ffang with mtom exception Negative number cant be added!") >= 0);
+        client.done(io);
+    }
+
        
     @Override
     protected AbstractXmlApplicationContext createBeanFactory() {

Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java?rev=812757&r1=812756&r2=812757&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/GreeterImplForProvider.java Wed Sep  9 03:25:57 2009
@@ -53,6 +53,7 @@
 public class GreeterImplForProvider implements Greeter {
     private ComponentContext context;
     private CalculatorPortType calculator;
+    private CalculatorPortType calculatorWithMtom;
     private NoServicePortType calculatorNotExist;
     private Greeter greeter;
     private Greeter securityGreeter;
@@ -129,6 +130,8 @@
                 } catch (UndeclaredThrowableException ex) {
                     throw (Exception) ex.getCause();
                 }                
+            } else if ("ffang with mtom exception".equals(me)) {
+                getCalculatorWithMtom().add(-1, -1);
             }
                         
         } catch (AddNumbersFault e) {
@@ -297,6 +300,14 @@
         return mtom;
     }
 
+    public void setCalculatorWithMtom(CalculatorPortType calculatorWithMtom) {
+        this.calculatorWithMtom = calculatorWithMtom;
+    }
+
+    public CalculatorPortType getCalculatorWithMtom() {
+        return calculatorWithMtom;
+    }
+
 
     public void setProviderGreeter(org.apache.hello_world_soap_http_provider.Greeter providerGreeter) {
         this.providerGreeter = providerGreeter;

Modified: servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml?rev=812757&r1=812756&r2=812757&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/provider/xbean.xml Wed Sep  9 03:25:57 2009
@@ -50,6 +50,9 @@
               <property name="mtom">
                   <cxfse:proxy service="mtom:TestMtomService" context="#context" type="org.apache.cxf.mime.TestMtom" mtomEnabled="true"/>
               </property>
+              <property name="calculatorWithMtom">
+                  <cxfse:proxy service="calculator:CalculatorService" context="#context" type="org.apache.cxf.calculator.CalculatorPortType" mtomEnabled="true"/>
+              </property>
           </bean>
               
         </cxfse:pojo>

Modified: servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/interceptors/AttachmentInInterceptor.java
URL: http://svn.apache.org/viewvc/servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/interceptors/AttachmentInInterceptor.java?rev=812757&r1=812756&r2=812757&view=diff
==============================================================================
--- servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/interceptors/AttachmentInInterceptor.java (original)
+++ servicemix/smx3/branches/servicemix-3.2/deployables/serviceengines/servicemix-cxf-se/src/main/java/org/apache/servicemix/cxfse/interceptors/AttachmentInInterceptor.java Wed Sep  9 03:25:57 2009
@@ -48,6 +48,12 @@
         } else { 
             norMessage = (NormalizedMessage) exchange.getMessage("in");
         }
+        if (norMessage == null) {
+            norMessage = (NormalizedMessage) exchange.getFault();
+        }
+        if (norMessage == null) {
+            return;
+        }
         Set names = norMessage.getAttachmentNames();
         for (Object obj : names) {
             String id = (String)obj;