cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From andreasm...@apache.org
Subject svn commit: r501842 - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/ws/policy/ rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/ systests/src/test/java/org/apache/cxf/systest/ws/rm/
Date Wed, 31 Jan 2007 13:47:47 GMT
Author: andreasmyth
Date: Wed Jan 31 05:47:46 2007
New Revision: 501842

URL: http://svn.apache.org/viewvc?view=rev&rev=501842
Log:
Interceptors configured for application endpoint also to be used for RM endpoint.

Added:
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/AssertionBuilderRegistry.java
      - copied unchanged from r501780, incubator/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/AssertionBuilderRegistry.java
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/policy/PolicyException.java
      - copied unchanged from r501780, incubator/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyException.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml
  (with props)
Removed:
    incubator/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/AssertionBuilderRegistry.java
    incubator/cxf/trunk/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyException.java
Modified:
    incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java
    incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java

Modified: incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java?view=diff&rev=501842&r1=501841&r2=501842
==============================================================================
--- incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java (original)
+++ incubator/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMEndpoint.java Wed Jan
31 05:47:46 2007
@@ -30,6 +30,7 @@
 import org.apache.cxf.databinding.DataBinding;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.endpoint.EndpointException;
+import org.apache.cxf.endpoint.EndpointImpl;
 import org.apache.cxf.jaxb.JAXBDataBinding;
 import org.apache.cxf.jaxws.support.JaxWsEndpointImpl;
 import org.apache.cxf.service.Service;
@@ -230,8 +231,18 @@
             // What we really should do here is on use the same interceptors on the outbound
             // path that would be used by the application endpoint without presuming any
knowledge
             // of the applications endpoint's frontend.
-            endpoint = new JaxWsEndpointImpl(manager.getBus(), service, ei);
-            // endpoint = new JaxWsEndpointImpl(manager.getBus(), service, ei);
+            EndpointImpl e = new JaxWsEndpointImpl(manager.getBus(), service, ei);
+            
+
+            // use same endpoint specific interceptor as for the application endpoint
+            e.setOutInterceptors(applicationEndpoint.getOutInterceptors());
+            e.setOutFaultInterceptors(applicationEndpoint.getOutFaultInterceptors());
+            e.setInInterceptors(applicationEndpoint.getInInterceptors());
+            e.setInFaultInterceptors(applicationEndpoint.getInFaultInterceptors());
+
+            endpoint = e;
+
+
         } catch (EndpointException ex) {
             throw new RuntimeException(ex);
         }

Modified: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java?view=diff&rev=501842&r1=501841&r2=501842
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
(original)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/SequenceTest.java
Wed Jan 31 05:47:46 2007
@@ -69,6 +69,7 @@
     private boolean doTestOnewayAnonymousAcksSequenceLength1 = testAll;
     private boolean doTestOnewayAnonymousAcksSupressed = testAll;
     private boolean doTestTwowayNonAnonymous = testAll;
+    private boolean doTestTwowayNonAnonymousEndpointSpecific = testAll;
     private boolean doTestTwowayNonAnonymousDeferred = testAll;
     private boolean doTestTwowayNonAnonymousMaximumSequenceLength2 = testAll;
     private boolean doTestOnewayMessageLoss = testAll;
@@ -366,6 +367,56 @@
             return;
         }
         setupGreeter("org/apache/cxf/systest/ws/rm/twoway.xml");
+
+        greeter.greetMe("one");
+        greeter.greetMe("two");
+        greeter.greetMe("three");
+
+        // CreateSequence and three greetMe messages
+        // TODO there should be partial responses to the decoupled responses!
+
+        awaitMessages(4, 8);
+        
+        MessageFlow mf = new MessageFlow(outRecorder.getOutboundMessages(), inRecorder.getInboundMessages());
+        
+        
+        mf.verifyMessages(4, true);
+        String[] expectedActions = new String[] {RMConstants.getCreateSequenceAction(), 
+                                                 GREETME_ACTION,
+                                                 GREETME_ACTION, 
+                                                 GREETME_ACTION};
+        mf.verifyActions(expectedActions, true);
+        mf.verifyMessageNumbers(new String[] {null, "1", "2", "3"}, true);
+        mf.verifyLastMessage(new boolean[] {false, false, false, false}, true);
+        mf.verifyAcknowledgements(new boolean[] {false, false, true, true}, true);
+
+        // createSequenceResponse plus 3 greetMeResponse messages plus
+        // one partial response for each of the four messages
+        // the first partial response should no include an acknowledgement, the other three
should
+
+        mf.verifyMessages(8, false);
+        mf.verifyPartialResponses(4, new boolean[4]);
+
+        mf.purgePartialResponses();
+
+        expectedActions = new String[] {RMConstants.getCreateSequenceResponseAction(), 
+                                        GREETME_RESPONSE_ACTION, 
+                                        GREETME_RESPONSE_ACTION, 
+                                        GREETME_RESPONSE_ACTION};
+        mf.verifyActions(expectedActions, false);
+        mf.verifyMessageNumbers(new String[] {null, "1", "2", "3"}, false);
+        mf.verifyLastMessage(new boolean[4], false);
+        mf.verifyAcknowledgements(new boolean[] {false, true, true, true}, false);
+    }
+
+    // the same as above but using endpoint specific interceptor configuration
+
+    public void testTwowayNonAnonymousEndpointSpecific() throws Exception {
+        if (!doTestTwowayNonAnonymousEndpointSpecific) {
+            return;
+        }
+        setupGreeter("org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml");
+
 
         greeter.greetMe("one");
         greeter.greetMe("two");

Added: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml?view=auto&rev=501842
==============================================================================
--- incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml
(added)
+++ incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml
Wed Jan 31 05:47:46 2007
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:wsrm-mgmt="http://cxf.apache.org/ws/rm/manager"
+       xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
+       xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
+       xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    
+    <bean name="{http://cxf.apache.org/greeter_control}GreeterPort.http-conduit" abstract="true">
+        <property name="client">
+            <value>
+                <http-conf:client DecoupledEndpoint="http://localhost:9991/decoupled_endpoint"/>
+            </value>
+        </property>
+    </bean>
+   
+    <!-- Endpoint Level Interceptors-->
+    <!-- Inserted From JaxWsEndpointImpl, EndpointImpl-->
+    <bean id="wrapperClassIn" class="org.apache.cxf.jaxws.interceptors.WrapperClassInInterceptor"/>
+    <bean id="wrapperClassOut" class="org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor"/>
+    <bean id="holderIn" class="org.apache.cxf.jaxws.interceptors.HolderInInterceptor"/>
+    <bean id="holderOut" class="org.apache.cxf.jaxws.interceptors.HolderOutInterceptor"/>
+    <bean id="clientFaultConv" class="org.apache.cxf.interceptor.ClientFaultConverter"/>
+    <bean id="messageSender" class="org.apache.cxf.interceptor.MessageSenderInterceptor"/>
+    <!-- Cannot use via config -->
+    <!--
+    <bean id="soapHandler" class="org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor"/>
+    <bean id="logicalHandler" class="org.apache.cxf.jaxws.handler.LogicalHandlerInterceptor"/>
+    -->
+    
+    <!-- WSA Interceptors-->
+    <bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
+    <bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>
+
+    <!-- WS-RM Interceptors-->
+    <bean id="rmLogicalOut" class="org.apache.cxf.ws.rm.RMOutInterceptor">
+        <property name="bus" ref="cxf"/>
+    </bean>
+    <bean id="rmLogicalIn" class="org.apache.cxf.ws.rm.RMInInterceptor">
+        <property name="bus" ref="cxf"/>
+    </bean>
+    <bean id="rmCodec" class="org.apache.cxf.ws.rm.soap.RMSoapInterceptor"/>
+
+    <!-- Logging and Utility Interceptor-->
+    <bean id="logInbound" class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+    <bean id="logOutbound" class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+
+    <!--WS-A Interceptors not required in Fault Chain-->
+    <bean id="{http://cxf.apache.org/greeter_control}GreeterPort" abstract="true">
+        <property name="inInterceptors">
+            <list>
+                <ref bean="rmLogicalIn"/>
+                <ref bean="rmCodec"/>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="wrapperClassIn"/>
+                <ref bean="holderIn"/>
+            </list>
+        </property>
+        <property name="inFaultInterceptors">
+            <list>
+                <ref bean="clientFaultConv"/>
+            </list>
+        </property>
+        <property name="outInterceptors">
+            <list>
+                <ref bean="rmLogicalOut"/>
+                <ref bean="rmCodec"/>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="wrapperClassOut"/>
+                <ref bean="holderOut"/>
+                <ref bean="messageSender"/>
+            </list>
+        </property>
+        <property name="outFaultInterceptors">
+            <list>
+                <ref bean="rmLogicalOut"/>
+                <ref bean="rmCodec"/>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="messageSender"/>
+            </list>
+        </property>
+    </bean> 
+
+</beans>
\ No newline at end of file

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/twoway-endpoint-specific.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml



Mime
View raw message