cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrea Smyth <andrea.sm...@iona.com>
Subject Re: svn commit: r472063 - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/phase/ systests/src/test/java/org/apache/cxf/systest/ws/rm/
Date Tue, 07 Nov 2006 14:48:45 GMT
I'm working on it ...
Andrea.

Daniel Kulp wrote:

>Andrea,
>
>The SequenceTest is now failing with JDK 1.5.0_08 and _09.   Could you 
>look into that?
>
>Thanks!
>Dan
>
>
>On Tuesday November 07 2006 6:12 am, andreasmyth@apache.org wrote:
>  
>
>>Author: andreasmyth
>>Date: Tue Nov  7 03:12:10 2006
>>New Revision: 472063
>>
>>URL: http://svn.apache.org/viewvc?view=rev&rev=472063
>>Log:
>>[JIRA CXF-140] Implemented verifiers for RM system test.
>>Refactored test to use Control interface so that tests can run against
>>differently configure server endpoints. Removed printlns.
>>
>>Added:
>>   
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/ControlImpl.java - copied, changed from r471745,
>>incubator/cxf/tags/celtix/pre_apache/systests/src/test/java/org/objectw
>>eb/celtix/systest/ws/rm/ControlImpl.java
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/InMessageRecorder.java   (with props)
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/JaxwsInterceptorRemover.java   (with props)
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/MessageFlow.java - copied, changed from r471795,
>>incubator/cxf/tags/celtix/pre_apache/systests/src/test/java/org/objectw
>>eb/celtix/systest/ws/rm/MessageFlow.java
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/OutMessageRecorder.java   (with props)
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/anonymous.xml - copied, changed from r471709,
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/cxf.xml Removed:
>>   
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/cxf.xml Modified:
>>   
>>incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/Phase.java
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/GreeterImpl.java
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/SequenceTest.java
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/Server.java
>>
>>Modified:
>>incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/Phase.java
>>URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/
>>apache/cxf/phase/Phase.java?view=diff&rev=472063&r1=472062&r2=472063
>>=======================================================================
>>======= ---
>>incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/Phase.java
>>(original) +++
>>incubator/cxf/trunk/api/src/main/java/org/apache/cxf/phase/Phase.java
>>Tue Nov  7 03:12:10 2006 @@ -34,7 +34,7 @@
>>     public static final String PREPARE_SEND = "prepare-send";
>>     public static final String PRE_STREAM = "pre-stream";
>>     public static final String USER_STREAM = "user-stream";
>>-    public static final String POST_STREAM = "port-stream";
>>+    public static final String POST_STREAM = "post-stream";
>>     public static final String WRITE = "write";
>>     public static final String SEND = "send";
>>
>>
>>Copied:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/ControlImpl.java (from r471745,
>>incubator/cxf/tags/celtix/pre_apache/systests/src/test/java/org/objectw
>>eb/celtix/systest/ws/rm/ControlImpl.java) URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java
>>/org/apache/cxf/systest/ws/rm/ControlImpl.java?view=diff&rev=472063&p1=i
>>ncubator/cxf/tags/celtix/pre_apache/systests/src/test/java/org/objectweb
>>/celtix/systest/ws/rm/ControlImpl.java&r1=471745&p2=incubator/cxf/trunk/
>>systests/src/test/java/org/apache/cxf/systest/ws/rm/ControlImpl.java&r2=
>>472063
>>=======================================================================
>>======= ---
>>incubator/cxf/tags/celtix/pre_apache/systests/src/test/java/org/objectw
>>eb/celtix/systest/ws/rm/ControlImpl.java (original) +++
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/ControlImpl.java Tue Nov  7 03:12:10 2006 @@ -1,52 +1,61 @@
>>-package org.objectweb.celtix.systest.ws.rm;
>>+/**
>>+ * 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.
>>+ */
>>+
>>+
>>+package org.apache.cxf.systest.ws.rm;
>>
>>-import java.net.URL;
>> import java.util.concurrent.Future;
>> import java.util.logging.Logger;
>>
>> import javax.jws.WebService;
>>-import javax.xml.namespace.QName;
>> import javax.xml.ws.AsyncHandler;
>> import javax.xml.ws.Endpoint;
>> import javax.xml.ws.Response;
>>
>>-import org.objectweb.celtix.Bus;
>>-import org.objectweb.celtix.BusException;
>>-import org.objectweb.celtix.greeter_control.Control;
>>-import
>>org.objectweb.celtix.greeter_control.types.StartGreeterResponse;
>>-import org.objectweb.celtix.greeter_control.types.StopGreeterResponse;
>>+import org.apache.cxf.Bus;
>>+import org.apache.cxf.bus.spring.SpringBusFactory;
>>+import org.apache.cxf.greeter_control.Control;
>>+import org.apache.cxf.greeter_control.types.StartGreeterResponse;
>>+import org.apache.cxf.greeter_control.types.StopGreeterResponse;
>>
>>
>> @WebService(serviceName = "ControlService",
>>             portName = "ControlPort",
>>-            endpointInterface =
>>"org.objectweb.celtix.greeter_control.Control", -           
>>targetNamespace = "http://celtix.objectweb.org/greeter_control") +     
>>      endpointInterface = "org.apache.cxf.greeter_control.Control", +  
>>         targetNamespace = "http://cxf.apache.org/greeter_control")
>>public class ControlImpl implements Control {
>>
>>     private static final Logger LOG =
>>Logger.getLogger(ControlImpl.class.getName()); -    private static
>>QName serviceName = new
>>QName("http://celtix.objectweb.org/greeter_control", -                 
>>                               "GreeterService"); private Endpoint
>>endpoint;
>>     private Bus greeterBus;
>>
>>-    public boolean startGreeter(String configuration) {
>>+    public boolean startGreeter(String cfgResource) {
>>
>>-        if (!(null == configuration || "".equals(configuration))) {
>>-            setConfigFileProperty(configuration);
>>-        }
>>-
>>-        try {
>>-            greeterBus = Bus.init();
>>-        } catch (BusException ex) {
>>-            return false;
>>-        }
>>-
>>-        TestConfigurator tc = new
>>TestConfigurator(greeterBus.getConfigurationBuilder()); -       
>>tc.configureServer(serviceName);
>>+        SpringBusFactory bf = new SpringBusFactory();
>>+        greeterBus = bf.createBus(cfgResource);
>>+        bf.setDefaultBus(greeterBus);
>>+        LOG.info("Initialised bus with cfg file resource: " +
>>cfgResource);
>>
>>         GreeterImpl implementor = new GreeterImpl();
>>         String address =
>>"http://localhost:9020/SoapContext/GreeterPort"; endpoint =
>>Endpoint.publish(address, implementor);
>>+        LOG.info("Published greeter endpoint.");
>>
>>         return true;
>>     }
>>@@ -61,25 +70,11 @@
>>         }
>>         endpoint = null;
>>         if (null != greeterBus) {
>>-            try {
>>-                greeterBus.shutdown(true);
>>-            } catch (BusException ex) {
>>-                return false;
>>-            }
>>+            greeterBus.shutdown(true);
>>         }
>>         return true;
>>     }
>>
>>-    public static void setConfigFileProperty(String cfgName) {
>>-        URL url = ControlImpl.class.getResource(cfgName + ".xml");
>>-        if (null == url) {
>>-            LOG.severe("cannot find test resource " +  cfgName +
>>".xml"); -            return;
>>-        }
>>-        String configFileName = url.toString();
>>-        System.setProperty("celtix.config.file", configFileName);
>>-    }
>>-
>>     public Future<?> startGreeterAsync(String requestType,
>>AsyncHandler<StartGreeterResponse> asyncHandler) { // never called
>>         return null;
>>
>>Modified:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/GreeterImpl.java URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java
>>/org/apache/cxf/systest/ws/rm/GreeterImpl.java?view=diff&rev=472063&r1=4
>>72062&r2=472063
>>=======================================================================
>>======= ---
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/GreeterImpl.java (original) +++
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/GreeterImpl.java Tue Nov  7 03:12:10 2006 @@ -20,6 +20,7 @@
>> package org.apache.cxf.systest.ws.rm;
>>
>> import java.util.concurrent.Future;
>>+import java.util.logging.Logger;
>>
>> import javax.jws.WebService;
>> import javax.xml.ws.AsyncHandler;
>>@@ -41,11 +42,12 @@
>>             targetNamespace = "http://cxf.apache.org/greeter_control")
>> public class GreeterImpl implements Greeter {
>>
>>+    private static final Logger LOG =
>>Logger.getLogger(GreeterImpl.class.getName());
>>
>>     public String greetMe(String arg0) {
>>-        System.out.println("Executing operation greetMe with
>>parameter: " + arg0); +        LOG.fine("Executing operation greetMe
>>with parameter: " + arg0); String result = arg0.toUpperCase();
>>-        System.out.println("returning: " + result);
>>+        LOG.fine("returning: " + result);
>>         return result;
>>     }
>>
>>@@ -60,11 +62,11 @@
>>     }
>>
>>     public void greetMeOneWay(String arg0) {
>>-        System.out.println("Executing operation greetMeOneWay with
>>parameter: " + arg0); +        LOG.fine("Executing operation
>>greetMeOneWay with parameter: " + arg0); }
>>
>>     public void pingMe() throws PingMeFault {
>>-        System.out.println("Executing operation pingMe");
>>+        LOG.fine("Executing operation pingMe");
>>     }
>>
>>     public Response<PingMeResponse> pingMeAsync() {
>>
>>Added:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/InMessageRecorder.java URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java
>>/org/apache/cxf/systest/ws/rm/InMessageRecorder.java?view=auto&rev=47206
>>3
>>=======================================================================
>>======= ---
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/InMessageRecorder.java (added) +++
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/InMessageRecorder.java Tue Nov  7 03:12:10 2006 @@ -0,0 +1,71 @@
>>+/**
>>+ * 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.
>>+ */
>>+package org.apache.cxf.systest.ws.rm;
>>+
>>+import java.io.ByteArrayInputStream;
>>+import java.io.ByteArrayOutputStream;
>>+import java.io.InputStream;
>>+import java.util.ArrayList;
>>+import java.util.List;
>>+
>>+import javax.xml.soap.MessageFactory;
>>+import javax.xml.soap.SOAPMessage;
>>+
>>+import org.apache.cxf.helpers.IOUtils;
>>+import org.apache.cxf.interceptor.Fault;
>>+import org.apache.cxf.message.Message;
>>+import org.apache.cxf.phase.AbstractPhaseInterceptor;
>>+import org.apache.cxf.phase.Phase;
>>+
>>+public class InMessageRecorder extends
>>AbstractPhaseInterceptor<Message> { +
>>+    private List<SOAPMessage> inbound;
>>+
>>+    public InMessageRecorder() {
>>+        inbound = new ArrayList<SOAPMessage>();
>>+        setPhase(Phase.RECEIVE);
>>+    }
>>+
>>+    public void handleMessage(Message message) throws Fault {
>>+        InputStream is = message.getContent(InputStream.class);
>>+
>>+        if (is == null) {
>>+            return;
>>+        }
>>+
>>+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
>>+        try {
>>+            IOUtils.copy(is, bos);
>>+            is.close();
>>+            bos.close();
>>+            MessageFactory mf = MessageFactory.newInstance();
>>+            ByteArrayInputStream bis = new
>>ByteArrayInputStream(bos.toByteArray()); +            SOAPMessage sm =
>>mf.createMessage(null, bis);
>>+            inbound.add(sm);
>>+            bis = new ByteArrayInputStream(bos.toByteArray());
>>+            message.setContent(InputStream.class, bis);
>>+        } catch (Exception ex) {
>>+            ex.printStackTrace();
>>+        }
>>+    }
>>+
>>+    protected List<SOAPMessage> getInboundMessages() {
>>+        return inbound;
>>+    }
>>+}
>>
>>Propchange:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/InMessageRecorder.java
>>-----------------------------------------------------------------------
>>------- svn:eol-style = native
>>
>>Propchange:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/InMessageRecorder.java
>>-----------------------------------------------------------------------
>>------- svn:keywords = Rev Date
>>
>>Added:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/JaxwsInterceptorRemover.java URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java
>>/org/apache/cxf/systest/ws/rm/JaxwsInterceptorRemover.java?view=auto&rev
>>=472063
>>=======================================================================
>>======= ---
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/JaxwsInterceptorRemover.java (added) +++
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/JaxwsInterceptorRemover.java Tue Nov  7 03:12:10 2006 @@ -0,0 +1,79 @@
>>+/**
>>+ * 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.
>>+ */
>>+
>>+package org.apache.cxf.systest.ws.rm;
>>+
>>+import java.util.Collections;
>>+import java.util.ListIterator;
>>+import java.util.Set;
>>+
>>+
>>+import org.apache.cxf.interceptor.Fault;
>>+import org.apache.cxf.interceptor.InterceptorChain;
>>+import org.apache.cxf.jaxws.handler.LogicalHandlerInterceptor;
>>+import org.apache.cxf.jaxws.handler.StreamHandlerInterceptor;
>>+import org.apache.cxf.jaxws.handler.soap.SOAPHandlerInterceptor;
>>+import org.apache.cxf.message.Message;
>>+import org.apache.cxf.phase.AbstractPhaseInterceptor;
>>+import org.apache.cxf.phase.Phase;
>>+import org.apache.cxf.phase.PhaseInterceptor;
>>+
>>+
>>+/**
>>+ *
>>+ */
>>+public class JaxwsInterceptorRemover extends AbstractPhaseInterceptor
>>{ +
>>+    private Set<String> before =
>>Collections.singleton(LogicalHandlerInterceptor.class.getName()); +
>>+    public JaxwsInterceptorRemover() {
>>+        setPhase(Phase.PRE_LOGICAL);
>>+    }
>>+
>>+    public void handleMessage(Message message) throws Fault {
>>+
>>+        // remove the JAXWS handler interceptors
>>+        InterceptorChain chain = message.getInterceptorChain();
>>+        ListIterator it = chain.getIterator();
>>+        while (it.hasNext()) {
>>+            PhaseInterceptor pi = (PhaseInterceptor)it.next();
>>+            if
>>(LogicalHandlerInterceptor.class.getName().equals(pi.getId())) { +     
>>          chain.remove(pi);
>>+                break;
>>+            }
>>+        }
>>+        it = chain.getIterator();
>>+        while (it.hasNext()) {
>>+            PhaseInterceptor pi = (PhaseInterceptor)it.next();
>>+            if
>>(SOAPHandlerInterceptor.class.getName().equals(pi.getId())) { +        
>>       chain.remove(pi);
>>+                break;
>>+            }
>>+        }
>>+        it = chain.getIterator();
>>+        while (it.hasNext()) {
>>+            PhaseInterceptor pi = (PhaseInterceptor)it.next();
>>+            if
>>(StreamHandlerInterceptor.class.getName().equals(pi.getId())) { +      
>>         chain.remove(pi);
>>+                break;
>>+            }
>>+        }
>>+    }
>>+
>>+}
>>
>>Propchange:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/JaxwsInterceptorRemover.java
>>-----------------------------------------------------------------------
>>------- svn:eol-style = native
>>
>>Propchange:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/JaxwsInterceptorRemover.java
>>-----------------------------------------------------------------------
>>------- svn:keywords = Rev Date
>>
>>Copied:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/MessageFlow.java (from r471795,
>>incubator/cxf/tags/celtix/pre_apache/systests/src/test/java/org/objectw
>>eb/celtix/systest/ws/rm/MessageFlow.java) URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java
>>/org/apache/cxf/systest/ws/rm/MessageFlow.java?view=diff&rev=472063&p1=i
>>ncubator/cxf/tags/celtix/pre_apache/systests/src/test/java/org/objectweb
>>/celtix/systest/ws/rm/MessageFlow.java&r1=471795&p2=incubator/cxf/trunk/
>>systests/src/test/java/org/apache/cxf/systest/ws/rm/MessageFlow.java&r2=
>>472063
>>=======================================================================
>>======= ---
>>incubator/cxf/tags/celtix/pre_apache/systests/src/test/java/org/objectw
>>eb/celtix/systest/ws/rm/MessageFlow.java (original) +++
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/MessageFlow.java Tue Nov  7 03:12:10 2006 @@ -1,4 +1,23 @@
>>-package org.objectweb.celtix.systest.ws.rm;
>>+/**
>>+ * 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.
>>+ */
>>+
>>+package org.apache.cxf.systest.ws.rm;
>>
>> import java.io.ByteArrayOutputStream;
>> import java.util.Iterator;
>>@@ -11,50 +30,38 @@
>> import javax.xml.soap.SOAPHeader;
>> import javax.xml.soap.SOAPHeaderElement;
>> import javax.xml.soap.SOAPMessage;
>>-import javax.xml.ws.handler.LogicalMessageContext;
>>
>> import junit.framework.Assert;
>>
>>-import org.objectweb.celtix.ws.addressing.AddressingProperties;
>>-import org.objectweb.celtix.ws.addressing.ContextUtils;
>>-import org.objectweb.celtix.ws.rm.Names;
>>-import org.objectweb.celtix.ws.rm.RMContextUtils;
>>-import org.objectweb.celtix.ws.rm.RMProperties;
>>-import org.objectweb.celtix.ws.rm.SequenceAcknowledgement;
>>-import org.objectweb.celtix.ws.rm.SequenceType;
>>+import org.apache.cxf.ws.rm.RMConstants;
>>
>>
>>
>> public class MessageFlow extends Assert {
>>
>>     private List<SOAPMessage> outboundMessages;
>>-    private List<LogicalMessageContext> inboundContexts;
>>+    private List<SOAPMessage> inboundMessages;
>>
>>
>>-    public MessageFlow(List<SOAPMessage> o,
>>List<LogicalMessageContext> i) { +    public
>>MessageFlow(List<SOAPMessage> o, List<SOAPMessage> i) {
>>outboundMessages = o;
>>-        inboundContexts = i;
>>+        inboundMessages = i;
>>     }
>>
>>     public List<SOAPMessage> getOutboundMessages() {
>>         return outboundMessages;
>>     }
>>
>>-    public List<LogicalMessageContext> getInboundContexts() {
>>-        return inboundContexts;
>>-    }
>>-
>>-    public void clear() {
>>-        getOutboundMessages().clear();
>>-        getInboundContexts().clear();
>>+    public List<SOAPMessage> getInboundMessages() {
>>+        return inboundMessages;
>>     }
>>
>>     public void verifyActions(String[] expectedActions, boolean
>>outbound) throws Exception {
>>
>>-        assertEquals(expectedActions.length, outbound ?
>>outboundMessages.size() : inboundContexts.size()); +       
>>assertEquals(expectedActions.length, outbound ? outboundMessages.size()
>>: inboundMessages.size());
>>
>>         for (int i = 0; i < expectedActions.length; i++) {
>>-            String action = outbound ?
>>getAction(outboundMessages.get(i)) : getAction(inboundContexts.get(i));
>>+            String action = outbound ?
>>getAction(outboundMessages.get(i)) : getAction(inboundMessages.get(i));
>>if (null == expectedActions[i]) {
>>                 assertNull((outbound ? "Outbound " : "Inbound") + "
>>message " + i + " has unexpected action: " + action, action); @@ -68,12
>>+75,12 @@
>>
>>     public boolean checkActions(String[] expectedActions, boolean
>>outbound) throws Exception {
>>
>>-        if (expectedActions.length != (outbound ?
>>outboundMessages.size() : inboundContexts.size())) { +        if
>>(expectedActions.length != (outbound ? outboundMessages.size() :
>>inboundMessages.size())) { return false;
>>         }
>>
>>         for (int i = 0; i < expectedActions.length; i++) {
>>-            String action = outbound ?
>>getAction(outboundMessages.get(i)) : getAction(inboundContexts.get(i));
>>+            String action = outbound ?
>>getAction(outboundMessages.get(i)) : getAction(inboundMessages.get(i));
>>if (null == expectedActions[i]) {
>>                 if (action != null) {
>>                     return false;
>>@@ -91,10 +98,10 @@
>>                              int expectedCount,
>>                              boolean outbound,
>>                              boolean exact) throws Exception {
>>-        int messageCount = outbound ? outboundMessages.size() :
>>inboundContexts.size(); +        int messageCount = outbound ?
>>outboundMessages.size() : inboundMessages.size(); int count = 0;
>>         for (int i = 0; i < messageCount; i++) {
>>-            String action = outbound ?
>>getAction(outboundMessages.get(i)) : getAction(inboundContexts.get(i));
>>+            String action = outbound ?
>>getAction(outboundMessages.get(i)) : getAction(inboundMessages.get(i));
>>if (null == expectedAction) {
>>                 if (action == null) {
>>                     count++;
>>@@ -125,7 +132,7 @@
>>                                      boolean exact) throws Exception {
>>
>>         int actualMessageCount =
>>-            outbound ? outboundMessages.size() :
>>inboundContexts.size(); +            outbound ? outboundMessages.size()
>>: inboundMessages.size(); if (exact) {
>>             assertEquals(expectedMessageNumbers.length,
>>actualMessageCount); } else {
>>@@ -134,38 +141,25 @@
>>
>>         if (exact) {
>>             for (int i = 0; i < expectedMessageNumbers.length; i++) {
>>-                if (outbound) {
>>-                    SOAPElement se =
>>getSequence(outboundMessages.get(i)); -                    if (null ==
>>expectedMessageNumbers[i]) {
>>-                        assertNull("Outbound message " + i + "
>>contains unexpected message number ", se); -                    } else
>>{
>>-                        assertEquals("Outbound message " + i + " does
>>not contain expected message number " -                                
>>    + expectedMessageNumbers[i], expectedMessageNumbers[i], -          
>>                          getMessageNumber(se));
>>-                    }
>>+                SOAPElement se = outbound ?
>>getSequence(outboundMessages.get(i)) +                    :
>>getSequence(inboundMessages.get(i));
>>+                if (null == expectedMessageNumbers[i]) {
>>+                    assertNull((outbound ? "Outbound" : "Inbound") + "
>>message " + i +                        + " contains unexpected message
>>number ", se); } else {
>>-                    SequenceType s =
>>getSequence(inboundContexts.get(i)); -                    String
>>messageNumber = null == s ? null : s.getMessageNumber().toString(); -  
>>                 if (null == expectedMessageNumbers[i]) {
>>-                        assertNull("Inbound message " + i + " contains
>>unexpected message number ", -                                  
>>messageNumber);
>>-                    } else {
>>-                        assertEquals("Inbound message " + i + " does
>>not contain expected message number " -                                
>>    + expectedMessageNumbers[i], expectedMessageNumbers[i],
>>messageNumber); -                    }
>>+                    assertEquals((outbound ? "Outbound" : "Inbound") +
>>" message " + i +                        + " does not contain expected
>>message number " +                                 +
>>expectedMessageNumbers[i], expectedMessageNumbers[i], +                
>>                getMessageNumber(se));
>>                 }
>>             }
>>         } else {
>>             boolean[] matches = new
>>boolean[expectedMessageNumbers.length]; for (int i = 0; i <
>>actualMessageCount; i++) {
>>                 String messageNumber = null;
>>-                if (outbound) {
>>-                    SOAPElement se =
>>getSequence(outboundMessages.get(i)); -                   
>>messageNumber = null == se ? null : getMessageNumber(se); -            
>>   } else {
>>-                    SequenceType s =
>>getSequence(inboundContexts.get(i)); -                    messageNumber
>>= null == s ? null : s.getMessageNumber().toString(); -               
>>}
>>+                SOAPElement se = outbound ?
>>getSequence(outboundMessages.get(i)) +                    :
>>getSequence(inboundMessages.get(i));
>>+                messageNumber = null == se ? null :
>>getMessageNumber(se); for (int j = 0; j <
>>expectedMessageNumbers.length; j++) { if (messageNumber == null) {
>>                         if (expectedMessageNumbers[j] == null &&
>>!matches[j]) { @@ -197,7 +191,7 @@
>>                                   boolean exact) throws Exception {
>>
>>         int actualMessageCount =
>>-            outbound ? outboundMessages.size() :
>>inboundContexts.size(); +            outbound ? outboundMessages.size()
>>: inboundMessages.size(); if (exact) {
>>             assertEquals(expectedLastMessages.length,
>>actualMessageCount); } else {
>>@@ -206,13 +200,9 @@
>>
>>         for (int i = 0; i < expectedLastMessages.length; i++) {
>>             boolean lastMessage;
>>-            if (outbound) {
>>-                SOAPElement se = getSequence(outboundMessages.get(i));
>>-                lastMessage = null == se ? false : getLastMessage(se);
>>-            } else {
>>-                SequenceType s = getSequence(inboundContexts.get(i));
>>-                lastMessage = null == s ? false : null !=
>>s.getLastMessage(); -            }
>>+            SOAPElement se = outbound ?
>>getSequence(outboundMessages.get(i)) +                :
>>getSequence(inboundMessages.get(i));
>>+            lastMessage = null == se ? false : getLastMessage(se);
>>             assertEquals("Outbound message " + i
>>                          + (expectedLastMessages[i] ? " does not
>>contain expected last message element."
>>
>>                              : " contains last message element."),
>>
>>@@ -223,11 +213,11 @@
>>
>>     public void verifyAcknowledgements(boolean[] expectedAcks, boolean
>>outbound) throws Exception { assertEquals(expectedAcks.length, outbound
>>? outboundMessages.size() -            : inboundContexts.size());
>>+            : inboundMessages.size());
>>
>>         for (int i = 0; i < expectedAcks.length; i++) {
>>             boolean ack = outbound ? (null !=
>>getAcknowledgment(outboundMessages.get(i))) -                : (null !=
>>getAcknowledgment(inboundContexts.get(i))); +                : (null !=
>>getAcknowledgment(inboundMessages.get(i)));
>>
>>             if (expectedAcks[i]) {
>>                 assertTrue((outbound ? "Outbound" : "Inbound") + "
>>message " + i @@ -244,11 +234,11 @@
>>                                        boolean exact) throws Exception
>>{
>>
>>         int actualMessageCount =
>>-            outbound ? outboundMessages.size() :
>>inboundContexts.size(); +            outbound ? outboundMessages.size()
>>: inboundMessages.size(); int ackCount = 0;
>>         for (int i = 0; i < actualMessageCount; i++) {
>>             boolean ack = outbound ? (null !=
>>getAcknowledgment(outboundMessages.get(i))) -                : (null !=
>>getAcknowledgment(inboundContexts.get(i))); +                : (null !=
>>getAcknowledgment(inboundMessages.get(i))); if (ack) {
>>                 ackCount++;
>>             }
>>@@ -264,9 +254,10 @@
>>     }
>>
>>
>>-    public void verifyAckRequestedOutbound() throws Exception {
>>+    public void verifyAckRequestedOutbound(boolean outbound) throws
>>Exception { boolean found = false;
>>-        for (SOAPMessage m : outboundMessages) {
>>+        List<SOAPMessage> messages = outbound ? outboundMessages :
>>inboundMessages; +        for (SOAPMessage m : messages) {
>>             SOAPElement se = getAckRequested(m);
>>             if (se != null) {
>>                 found = true;
>>@@ -275,21 +266,7 @@
>>         }
>>         assertTrue("expected AckRequested", found);
>>     }
>>-
>>-    public void verifyAckRequestedInbound(List<LogicalMessageContext>
>>contexts) throws Exception { -        boolean found = false;
>>-        for (LogicalMessageContext context : contexts) {
>>-            RMProperties rmps =
>>RMContextUtils.retrieveRMProperties(context, false); -            if
>>(null != rmps
>>-                && rmps.getAcksRequested() != null
>>-                && rmps.getAcksRequested().size() > 0) {
>>-                found = true;
>>-                break;
>>-            }
>>-        }
>>-        assertTrue("expected AckRequested", found);
>>-    }
>>-
>>+
>>     protected String getAction(SOAPMessage msg) throws Exception {
>>         SOAPEnvelope env = msg.getSOAPPart().getEnvelope();
>>         SOAPHeader header = env.getHeader();
>>@@ -298,24 +275,16 @@
>>             SOAPHeaderElement headerElement =
>>(SOAPHeaderElement)headerElements.next(); Name headerName =
>>headerElement.getElementName(); String localName =
>>headerName.getLocalName();
>>-            if
>>((headerName.getURI().equals(org.objectweb.celtix.ws.addressing.Names.W
>>SA_NAMESPACE_NAME) -                ||
>>headerName.getURI().equals(org.objectweb.celtix.ws.addressing.VersionTr
>>ansformer +            if
>>((headerName.getURI().equals(org.apache.cxf.ws.addressing.Names.WSA_NAM
>>ESPACE_NAME) +                ||
>>headerName.getURI().equals(org.apache.cxf.ws.addressing.VersionTransfor
>>mer .Names200408.WSA_NAMESPACE_NAME)) -                &&
>>localName.equals(org.objectweb.celtix.ws.addressing.Names.WSA_ACTION_NA
>>ME)) { +                &&
>>localName.equals(org.apache.cxf.ws.addressing.Names.WSA_ACTION_NAME)) {
>>return headerElement.getTextContent();
>>             }
>>         }
>>         return null;
>>     }
>>
>>-    protected String getAction(LogicalMessageContext context) {
>>-        AddressingProperties maps = ContextUtils.retrieveMAPs(context,
>>false, false); -        if (null != maps && null != maps.getAction()) {
>>-            return maps.getAction().getValue();
>>-        }
>>-        return null;
>>-    }
>>-
>>     protected SOAPElement getSequence(SOAPMessage msg) throws
>>Exception { SOAPEnvelope env = msg.getSOAPPart().getEnvelope();
>>         SOAPHeader header = env.getHeader();
>>@@ -324,8 +293,8 @@
>>             SOAPHeaderElement headerElement =
>>(SOAPHeaderElement)headerElements.next(); Name headerName =
>>headerElement.getElementName(); String localName =
>>headerName.getLocalName();
>>-            if (headerName.getURI().equals(Names.WSRM_NAMESPACE_NAME)
>>-                && localName.equals(Names.WSRM_SEQUENCE_NAME)) {
>>+            if
>>(headerName.getURI().equals(RMConstants.WSRM_NAMESPACE_NAME) +         
>>      && localName.equals(RMConstants.WSRM_SEQUENCE_NAME)) { return
>>headerElement;
>>             }
>>         }
>>@@ -334,18 +303,13 @@
>>
>>     public String getMessageNumber(SOAPElement elem) throws Exception
>>{ SOAPElement se = (SOAPElement)elem.getChildElements(
>>-                                                            new
>>QName(Names.WSRM_NAMESPACE_NAME, +                                     
>>                      new QName(RMConstants.WSRM_NAMESPACE_NAME,
>>"MessageNumber")).next(); return se.getTextContent();
>>     }
>>
>>-    protected SequenceType getSequence(LogicalMessageContext context)
>>{ -        RMProperties rmps =
>>RMContextUtils.retrieveRMProperties(context, false); -        return
>>rmps == null ? null : rmps.getSequence();
>>-    }
>>-
>>     private boolean getLastMessage(SOAPElement elem) throws Exception
>>{ -        return elem.getChildElements(new
>>QName(Names.WSRM_NAMESPACE_NAME, "LastMessage")).hasNext(); +       
>>return elem.getChildElements(new QName(RMConstants.WSRM_NAMESPACE_NAME,
>>"LastMessage")).hasNext(); }
>>
>>     protected SOAPElement getAcknowledgment(SOAPMessage msg) throws
>>Exception { @@ -356,22 +320,14 @@
>>             SOAPHeaderElement headerElement =
>>(SOAPHeaderElement)headerElements.next(); Name headerName =
>>headerElement.getElementName(); String localName =
>>headerName.getLocalName();
>>-            if (headerName.getURI().equals(Names.WSRM_NAMESPACE_NAME)
>>-                && localName.equals(Names.WSRM_SEQUENCE_ACK_NAME)) {
>>+            if
>>(headerName.getURI().equals(RMConstants.WSRM_NAMESPACE_NAME) +         
>>      && localName.equals(RMConstants.WSRM_SEQUENCE_ACK_NAME)) { return
>>(SOAPElement)header.getChildElements().next(); }
>>         }
>>         return null;
>>     }
>>
>>-    protected SequenceAcknowledgement
>>getAcknowledgment(LogicalMessageContext context) { -       
>>RMProperties rmps = RMContextUtils.retrieveRMProperties(context,
>>false); -        if (null != rmps && null != rmps.getAcks() &&
>>rmps.getAcks().size() > 0) { -            return
>>rmps.getAcks().iterator().next();
>>-        }
>>-        return null;
>>-    }
>>-
>>     private SOAPElement getAckRequested(SOAPMessage msg) throws
>>Exception { SOAPEnvelope env = msg.getSOAPPart().getEnvelope();
>>         SOAPHeader header = env.getHeader();
>>@@ -380,8 +336,8 @@
>>             SOAPHeaderElement headerElement =
>>(SOAPHeaderElement)headerElements.next(); Name headerName =
>>headerElement.getElementName(); String localName =
>>headerName.getLocalName();
>>-            if (headerName.getURI().equals(Names.WSRM_NAMESPACE_NAME)
>>-                && localName.equals(Names.WSRM_ACK_REQUESTED_NAME)) {
>>+            if
>>(headerName.getURI().equals(RMConstants.WSRM_NAMESPACE_NAME) +         
>>      && localName.equals(RMConstants.WSRM_ACK_REQUESTED_NAME)) {
>>return (SOAPElement)header.getChildElements().next(); }
>>         }
>>@@ -403,10 +359,10 @@
>>             }
>>         } else {
>>             if (exact) {
>>-                assertEquals("Unexpected number of inbound messages",
>>nExpected, inboundContexts.size()); +               
>>assertEquals("Unexpected number of inbound messages", nExpected,
>>inboundMessages.size()); } else {
>>-                assertTrue("Unexpected number of inbound messages: " +
>>inboundContexts.size(), -                           nExpected <=
>>inboundContexts.size()); +                assertTrue("Unexpected number
>>of inbound messages: " + inboundMessages.size(), +                     
>>     nExpected <= inboundMessages.size()); }
>>         }
>>     }
>>@@ -418,7 +374,7 @@
>>     public void verifyMessages(int nExpected, boolean outbound, int
>>interval, int attempts, boolean exact) { for (int i = 0; i < attempts;
>>i++) {
>>             if ((outbound && outboundMessages.size() < nExpected)
>>-                || (!outbound && inboundContexts.size() < nExpected))
>>{ +                || (!outbound && inboundMessages.size() <
>>nExpected)) { try {
>>                     Thread.sleep(interval);
>>                 } catch (InterruptedException ex) {
>>@@ -432,17 +388,17 @@
>>     }
>>
>>     public void purgePartialResponses() throws Exception {
>>-        for (int i = inboundContexts.size() - 1; i >= 0; i--) {
>>-            if (isPartialResponse(inboundContexts.get(i))) {
>>-                inboundContexts.remove(i);
>>+        for (int i = inboundMessages.size() - 1; i >= 0; i--) {
>>+            if (isPartialResponse(inboundMessages.get(i))) {
>>+                inboundMessages.remove(i);
>>             }
>>         }
>>     }
>>
>>     public void verifyPartialResponses(int nExpected) throws Exception
>>{ int npr = 0;
>>-        for (int i =  0; i < inboundContexts.size(); i++) {
>>-            if (isPartialResponse(inboundContexts.get(i))) {
>>+        for (int i =  0; i < inboundMessages.size(); i++) {
>>+            if (isPartialResponse(inboundMessages.get(i))) {
>>                 npr++;
>>             }
>>         }
>>@@ -450,13 +406,13 @@
>>                      nExpected, npr);
>>     }
>>
>>-    public boolean isPartialResponse(LogicalMessageContext ctx) throws
>>Exception { -        return null == getAction(ctx) && emptyBody(ctx);
>>+    public boolean isPartialResponse(SOAPMessage msg) throws Exception
>>{ +        // return null == getAction(ctx) && emptyBody(msg);
>>+        return false;
>>     }
>>
>>-    public boolean emptyBody(LogicalMessageContext ctx) throws
>>Exception { -        return
>>!((SOAPMessage)ctx.get("org.objectweb.celtix.bindings.soap.message")) -
>>           .getSOAPPart().getEnvelope().getBody().hasChildNodes(); +   
>>public boolean emptyBody(SOAPMessage msg) throws Exception { +       
>>return !msg.getSOAPPart().getEnvelope().getBody().hasChildNodes(); }
>>
>>     private String outboundDump() {
>>
>>Added:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/OutMessageRecorder.java URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java
>>/org/apache/cxf/systest/ws/rm/OutMessageRecorder.java?view=auto&rev=4720
>>63
>>=======================================================================
>>======= ---
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/OutMessageRecorder.java (added) +++
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/OutMessageRecorder.java Tue Nov  7 03:12:10 2006 @@ -0,0 +1,142 @@
>>+/**
>>+ * 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.
>>+ */
>>+
>>+package org.apache.cxf.systest.ws.rm;
>>+
>>+import java.io.ByteArrayInputStream;
>>+import java.io.ByteArrayOutputStream;
>>+import java.io.IOException;
>>+import java.io.OutputStream;
>>+import java.util.ArrayList;
>>+import java.util.Collections;
>>+import java.util.List;
>>+import java.util.Set;
>>+
>>+import javax.xml.soap.MessageFactory;
>>+import javax.xml.soap.SOAPMessage;
>>+
>>+import org.apache.cxf.interceptor.Fault;
>>+import org.apache.cxf.interceptor.StaxOutInterceptor;
>>+//import org.apache.cxf.io.AbstractCachedOutputStream;
>>+import org.apache.cxf.message.Message;
>>+import org.apache.cxf.phase.AbstractPhaseInterceptor;
>>+import org.apache.cxf.phase.Phase;
>>+
>>+
>>+/**
>>+ *
>>+ */
>>+public class OutMessageRecorder extends AbstractPhaseInterceptor {
>>+
>>+    private List<SOAPMessage> outbound;
>>+    private Set<String> before =
>>Collections.singleton(StaxOutInterceptor.class.getName()); +
>>+    public OutMessageRecorder() {
>>+        outbound = new ArrayList<SOAPMessage>();
>>+        //setPhase(Phase.POST_STREAM);
>>+        setPhase(Phase.PRE_PROTOCOL);
>>+    }
>>+
>>+    public void handleMessage(Message message) throws Fault {
>>+        OutputStream os = message.getContent(OutputStream.class);
>>+        if (null == os) {
>>+            return;
>>+        }
>>+        ForkOutputStream fos = new ForkOutputStream(os);
>>+        message.setContent(OutputStream.class, fos);
>>+
>>+        /*
>>+        if (os instanceof AbstractCachedOutputStream) {
>>+            try {
>>+                String s =
>>((AbstractCachedOutputStream)os).toString(); +               
>>MessageFactory mf = MessageFactory.newInstance(); +               
>>ByteArrayInputStream bis = new ByteArrayInputStream(s.getBytes()); +   
>>            SOAPMessage sm = mf.createMessage(null, bis); +            
>>   outbound.add(sm);
>>+            } catch (Exception ex) {
>>+                ex.printStackTrace();
>>+            }
>>+        }
>>+        */
>>+    }
>>+
>>+    @Override
>>+    public Set<String> getBefore() {
>>+        return before;
>>+    }
>>+
>>+    protected List<SOAPMessage> getOutboundMessages() {
>>+        return outbound;
>>+    }
>>+
>>+    /**
>>+      * Output stream that multicasts its data to several underlying
>>output streams. +     */
>>+    class ForkOutputStream extends OutputStream {
>>+
>>+        final OutputStream original;
>>+        final ByteArrayOutputStream bos;
>>+
>>+        public ForkOutputStream(OutputStream o) {
>>+            original = o;
>>+            bos = new ByteArrayOutputStream();
>>+        }
>>+
>>+        @Override
>>+        public void close() throws IOException {
>>+            bos.close();
>>+            try {
>>+                MessageFactory mf = MessageFactory.newInstance();
>>+                ByteArrayInputStream bis = new
>>ByteArrayInputStream(bos.toByteArray()); +                SOAPMessage
>>sm = mf.createMessage(null, bis); +                outbound.add(sm);
>>+            } catch (Exception ex) {
>>+                ex.printStackTrace();
>>+            }
>>+            original.close();
>>+        }
>>+
>>+        @Override
>>+        public void flush() throws IOException {
>>+            bos.flush();
>>+            original.flush();
>>+        }
>>+
>>+        @Override
>>+        public void write(byte[] b, int off, int len) throws
>>IOException { +            bos.write(b, off, len);
>>+            original.write(b, off, len);
>>+        }
>>+
>>+        @Override
>>+        public void write(byte[] b) throws IOException {
>>+            bos.write(b);
>>+            original.write(b);
>>+        }
>>+
>>+        @Override
>>+        public void write(int b) throws IOException {
>>+            bos.write(b);
>>+            original.write(b);
>>+        }
>>+
>>+
>>+    }
>>+
>>+}
>>
>>Propchange:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/OutMessageRecorder.java
>>-----------------------------------------------------------------------
>>------- svn:eol-style = native
>>
>>Propchange:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/OutMessageRecorder.java
>>-----------------------------------------------------------------------
>>------- svn:keywords = Rev Date
>>
>>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=472063&r1=
>>472062&r2=472063
>>=======================================================================
>>======= ---
>>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 Tue Nov  7 03:12:10 2006 @@ -19,16 +19,20 @@
>>
>> package org.apache.cxf.systest.ws.rm;
>>
>>+import java.util.logging.Logger;
>>
>> import junit.framework.Test;
>> import junit.framework.TestSuite;
>>
>> import org.apache.cxf.Bus;
>> import org.apache.cxf.bus.spring.SpringBusFactory;
>>+import org.apache.cxf.greeter_control.Control;
>>+import org.apache.cxf.greeter_control.ControlService;
>> import org.apache.cxf.greeter_control.Greeter;
>> import org.apache.cxf.greeter_control.GreeterService;
>> import org.apache.cxf.systest.common.ClientServerSetupBase;
>> import org.apache.cxf.systest.common.ClientServerTestBase;
>>+import org.apache.cxf.ws.rm.RMConstants;
>>
>>
>> /**
>>@@ -37,7 +41,19 @@
>>  */
>> public class SequenceTest extends ClientServerTestBase {
>>
>>+    private static final Logger LOG =
>>Logger.getLogger(SequenceTest.class.getName()); +    private static
>>final String APP_NAMESPACE =
>>"http://celtix.objectweb.org/greeter_control"; +    private static
>>final String GREETMEONEWAY_ACTION = APP_NAMESPACE +
>>"/types/Greeter/greetMeOneWay"; +    //private static final String
>>GREETME_ACTION = APP_NAMESPACE + "/types/Greeter/greetMe"; +   
>>//private static final String GREETME_RESPONSE_ACTION = GREETME_ACTION
>>+ "Response"; +
>>+    private Control control;
>>+    private Bus greeterBus;
>>     private Greeter greeter;
>>+    private String currentCfgResource;
>>+    private MessageFlow mf;
>>+
>>+    private boolean doTestOnewayAnonymousAcks = true;
>>
>>     public static void main(String[] args) {
>>         junit.textui.TestRunner.run(SequenceTest.class);
>>@@ -47,45 +63,89 @@
>>         TestSuite suite = new TestSuite(SequenceTest.class);
>>         return new ClientServerSetupBase(suite) {
>>             public void startServers() throws Exception {
>>-                // special case handling for WS-Addressing system test
>>to avoid -                // UUID related issue when server is run as
>>separate process -                // via maven on Win2k
>>-                /*
>>-                boolean inProcess = "Windows
>>2000".equals(System.getProperty("os.name")); -               
>>assertTrue("server did not launch correctly", -                        
>>  launchServer(Server.class, inProcess)); -                */
>>                 assertTrue("server did not launch correctly",
>>launchServer(Server.class)); }
>>
>>             public void setUp() throws Exception {
>>                 startServers();
>>-                System.out.println("Started server");
>>+                LOG.fine("Started server");
>>
>>                 SpringBusFactory bf = new SpringBusFactory();
>>-                Bus bus =
>>bf.createBus("org/apache/cxf/systest/ws/rm/cxf.xml"); +               
>>Bus bus = bf.createBus();
>>                 bf.setDefaultBus(bus);
>>                 setBus(bus);
>>-                System.out.println("Created client bus");
>>+                LOG.fine("Created client bus");
>>             }
>>         };
>>     }
>>
>>     public void setUp() throws Exception {
>>         super.setUp();
>>-        GreeterService service = new GreeterService();
>>-        System.out.println("Created GreeterService");
>>-        greeter = service.getGreeterPort();
>>-        System.out.println("Created Greeter");
>>+        ControlService service = new ControlService();
>>+        LOG.fine("Created ControlService");
>>+        control = service.getControlPort();
>>+        LOG.fine("Created Control");
>>     }
>>
>>     public void tearDown() {
>>+        if (null != greeter) {
>>+            assertTrue("Failed to stop greeter",
>>control.stopGreeter()); +            greeterBus.shutdown(true);
>>+        }
>>     }
>>
>>-    //--Tests
>>+    // --- tests ---
>>
>>-    public void testOneway() {
>>-        System.out.println("Invoking greetMeOneWay ...");
>>-        greeter.greetMeOneWay("cxf");
>>+    public void testOnewayAnonymousAcks() throws Exception {
>>+        if (!doTestOnewayAnonymousAcks) {
>>+            return;
>>+        }
>>+        setupGreeter("org/apache/cxf/systest/ws/rm/anonymous.xml");
>>+
>>+        greeter.greetMeOneWay("once");
>>+        greeter.greetMeOneWay("twice");
>>+        greeter.greetMeOneWay("thrice");
>>+
>>+        // three application messages plus createSequence
>>+
>>+        mf.verifyMessages(4, true);
>>+        String[] expectedActions = new String[]
>>{RMConstants.getCreateSequenceAction(), GREETMEONEWAY_ACTION, +        
>>                                        GREETMEONEWAY_ACTION,
>>GREETMEONEWAY_ACTION}; +        expectedActions = new String[]
>>{RMConstants.getCreateSequenceAction(), "", "", ""}; +       
>>mf.verifyActions(expectedActions, true);
>>+        mf.verifyMessageNumbers(new String[] {null, "1", "2", "3"},
>>true); +
>>+        // createSequenceResponse plus ? partial responses
>>+        // partial responses not sent!
>>+        mf.verifyMessages(1, false);
>>+        expectedActions = new String[]
>>{RMConstants.getCreateSequenceResponseAction()}; +       
>>mf.verifyActions(expectedActions, false);
>>+        mf.verifyMessageNumbers(new String[] {null}, false);
>>+        mf.verifyAcknowledgements(new boolean[] {false}, false);
>>+    }
>>+
>>+    // --- test utilities ---
>>+
>>+    private void setupGreeter(String cfgResource) {
>>+
>>+        SpringBusFactory bf = new SpringBusFactory();
>>+        greeterBus = bf.createBus(cfgResource);
>>+        bf.setDefaultBus(greeterBus);
>>+
>>+        OutMessageRecorder outRecorder = new OutMessageRecorder();
>>+        greeterBus.getOutInterceptors().add(new
>>JaxwsInterceptorRemover()); +       
>>greeterBus.getOutInterceptors().add(outRecorder);
>>+        InMessageRecorder inRecorder = new InMessageRecorder();
>>+        greeterBus.getInInterceptors().add(inRecorder);
>>+        currentCfgResource = cfgResource;
>>+
>>+        assertTrue("Failed to start greeter",
>>control.startGreeter(cfgResource)); +
>>+        GreeterService service = new GreeterService();
>>+        greeter = service.getGreeterPort();
>>+
>>+        mf = new MessageFlow(outRecorder.getOutboundMessages(),
>>inRecorder.getInboundMessages()); +
>>+
>>     }
>> }
>>
>>Modified:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/Server.java URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java
>>/org/apache/cxf/systest/ws/rm/Server.java?view=diff&rev=472063&r1=472062
>>&r2=472063
>>=======================================================================
>>======= ---
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/Server.java (original) +++
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/Server.java Tue Nov  7 03:12:10 2006 @@ -28,16 +28,16 @@
>>
>> public class Server extends TestServerBase {
>>
>>-    private static final String ADDRESS =
>>"http://localhost:9020/SoapContext/GreeterPort"; +    private static
>>final String ADDRESS = "http://localhost:9001/SoapContext/ControlPort";
>>
>>     protected void run()  {
>>
>>         SpringBusFactory factory = new SpringBusFactory();
>>-        Bus bus =
>>factory.createBus("org/apache/cxf/systest/ws/rm/cxf.xml"); +        Bus
>>bus = factory.createBus();
>>         factory.setDefaultBus(bus);
>>         setBus(bus);
>>
>>-        GreeterImpl implementor = new GreeterImpl();
>>+        ControlImpl implementor = new ControlImpl();
>>         Endpoint.publish(ADDRESS, implementor);
>>     }
>>
>>
>>Copied:
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/anonymous.xml (from r471709,
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/cxf.xml) URL:
>>http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java
>>/org/apache/cxf/systest/ws/rm/anonymous.xml?view=diff&rev=472063&p1=incu
>>bator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm/cxf.
>>xml&r1=471709&p2=incubator/cxf/trunk/systests/src/test/java/org/apache/c
>>xf/systest/ws/rm/anonymous.xml&r2=472063
>>=======================================================================
>>======= ---
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/cxf.xml (original) +++
>>incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/ws/rm
>>/anonymous.xml Tue Nov  7 03:12:10 2006 @@ -33,8 +33,10 @@
>>     </bean>
>>     -->
>>
>>-
>>+    <!--
>>     <bean id="logOutgoing"
>>class="org.apache.cxf.interceptor.LoggingOutInterceptor"/> +    -->
>>+    <bean id="logOutgoing"
>>class="org.apache.cxf.systest.ws.rm.OutMessageRecorder"/> <bean
>>id="logIncoming"
>>class="org.apache.cxf.interceptor.LoggingInInterceptor"/> <bean
>>id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
>><bean id="mapCodec"
>>class="org.apache.cxf.ws.addressing.soap.MAPCodec"/> @@ -52,6 +54,8 @@
>>         <property name="inInterceptors">
>>             <list>
>>                 <ref bean="logIncoming"/>
>>+                <!--
>>+                -->
>>                 <ref bean="mapAggregator"/>
>>                 <ref bean="mapCodec"/>
>>                 <ref bean="rmLogicalIn"/>
>>@@ -61,6 +65,8 @@
>>         <property name="inFaultInterceptors">
>>             <list>
>>                 <ref bean="logIncoming"/>
>>+                <!--
>>+                -->
>>                 <ref bean="mapAggregator"/>
>>                 <ref bean="mapCodec"/>
>>                 <ref bean="rmLogicalIn"/>
>>    
>>
>
>  
>


Mime
View raw message