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 2007/08/20 05:37:50 UTC

svn commit: r567536 [3/4] - in /incubator/servicemix/trunk/deployables: bindingcomponents/servicemix-cxf-bc/ bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/servicemix/cxfbc/ bindingcomponents/servicemix-cxf-bc/src/main/java/org/apache/ser...

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageFlow.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageFlow.java?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageFlow.java (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageFlow.java Sun Aug 19 20:37:48 2007
@@ -0,0 +1,511 @@
+/*
+ * 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.servicemix.cxfbc.ws.rm;
+
+import java.io.ByteArrayInputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import junit.framework.Assert;
+import org.apache.cxf.ws.rm.RMConstants;
+
+
+
+
+public class MessageFlow extends Assert {
+    
+    private List<byte[]> inStreams;
+    private List<byte[]> outStreams;
+    private List<Document> outboundMessages;
+    private List<Document> inboundMessages;
+      
+    public MessageFlow(List<byte[]> out, List<byte[]> in) throws Exception {
+        inboundMessages = new ArrayList<Document>();
+        outboundMessages = new ArrayList<Document>();
+        reset(out, in);
+    }
+    
+    public void clear() throws Exception {
+        inStreams.clear();
+        outStreams.clear();
+    }
+    
+    public final void reset(List<byte[]> out, List<byte[]> in) throws Exception {
+        for (int i = 0; i < inboundMessages.size(); i++) {
+            in.remove(0);
+        }
+        inStreams = in;
+        for (int i = 0; i < outboundMessages.size(); i++) {
+            out.remove(0);
+        }
+        outStreams = out;
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        factory.setNamespaceAware(true);
+        DocumentBuilder parser = factory.newDocumentBuilder();
+        inboundMessages.clear();
+        for (int i = 0; i < inStreams.size(); i++) {
+            byte[] bytes = inStreams.get(i);
+            ByteArrayInputStream is = new ByteArrayInputStream(bytes);
+            Document document = parser.parse(is);
+            inboundMessages.add(document);
+        }
+        outboundMessages.clear();
+        for (int i = 0; i < outStreams.size(); i++) {
+            byte[] bytes = outStreams.get(i);
+            ByteArrayInputStream is = new ByteArrayInputStream(bytes);
+            Document document = parser.parse(is);
+            outboundMessages.add(document);
+        }
+    }
+    
+    public void verifyActions(String[] expectedActions, boolean outbound) throws Exception {
+
+        assertEquals(expectedActions.length, outbound ? outboundMessages.size() : inboundMessages.size());
+
+        for (int i = 0; i < expectedActions.length; 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);
+            } else {
+                assertEquals((outbound ? "Outbound " : "Inbound") + " message " + i
+                             + " does not contain expected action header"
+                             + System.getProperty("line.separator"), expectedActions[i], action);
+            }
+        }
+    }
+
+    public void verifyActionsIgnoringPartialResponses(String[] expectedActions) throws Exception {
+        int j = 0;
+        for (int i = 0; i < inboundMessages.size() && j < expectedActions.length; i++) {
+            String action = getAction(inboundMessages.get(i));
+            if (null == action && emptyBody(inboundMessages.get(i))) {
+                continue;
+            }
+            if (null == expectedActions[j]) {
+                assertNull("Inbound message " + i + " has unexpected action: " + action, action);
+            } else {
+                assertEquals("Inbound message " + i + " has unexpected action: ", expectedActions[j], action);
+            }
+            j++;
+        }
+        if (j < expectedActions.length) {
+            fail("Inbound messages do not contain all expected actions.");
+        }
+    }
+    
+    public boolean checkActions(String[] expectedActions, boolean outbound) throws Exception {
+
+        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(inboundMessages.get(i));
+            if (null == expectedActions[i]) {
+                if (action != null) {
+                    return false;
+                }
+            } else {
+                if (!expectedActions[i].equals(action)) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    public void verifyAction(String expectedAction,
+                             int expectedCount,
+                             boolean outbound,
+                             boolean exact) throws Exception {
+        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(inboundMessages.get(i));
+            if (null == expectedAction) {
+                if (action == null) {
+                    count++;
+                }
+            } else {
+                if (expectedAction.equals(action)) {
+                    count++;                    
+                }
+            }
+        }
+        if (exact) {
+            assertEquals("unexpected count for action: " + expectedAction,
+                         expectedCount,
+                         count);
+        } else {
+            assertTrue("unexpected count for action: " + expectedAction + ": " + count,
+                       expectedCount <= count);
+        }
+        
+    }
+
+    public void verifyMessageNumbers(String[] expectedMessageNumbers, boolean outbound) throws Exception {
+        verifyMessageNumbers(expectedMessageNumbers, outbound, true);
+    }
+
+    public void verifyMessageNumbers(String[] expectedMessageNumbers,
+                                     boolean outbound,
+                                     boolean exact) throws Exception {
+
+        int actualMessageCount = 
+            outbound ? outboundMessages.size() : inboundMessages.size();
+        if (exact) {
+            assertEquals(expectedMessageNumbers.length, actualMessageCount);
+        } else {
+            assertTrue(expectedMessageNumbers.length <= actualMessageCount);
+        }
+
+        if (exact) {
+            for (int i = 0; i < expectedMessageNumbers.length; i++) {
+                Element e = outbound ? getSequence(outboundMessages.get(i))
+                    : getSequence(inboundMessages.get(i));
+                if (null == expectedMessageNumbers[i]) {
+                    assertNull((outbound ? "Outbound" : "Inbound") + " message " + i
+                        + " contains unexpected message number ", e);
+                } else {
+                    assertEquals((outbound ? "Outbound" : "Inbound") + " message " + i
+                        + " does not contain expected message number "
+                                 + expectedMessageNumbers[i], expectedMessageNumbers[i], 
+                                 getMessageNumber(e));
+                }
+            }
+        } else {
+            boolean[] matches = new boolean[expectedMessageNumbers.length];
+            for (int i = 0; i < actualMessageCount; i++) {
+                String messageNumber = null;
+                Element e = outbound ? getSequence(outboundMessages.get(i))
+                    : getSequence(inboundMessages.get(i));
+                messageNumber = null == e ? null : getMessageNumber(e);
+                for (int j = 0; j < expectedMessageNumbers.length; j++) {
+                    if (messageNumber == null) {
+                        if (expectedMessageNumbers[j] == null && !matches[j]) {
+                            matches[j] = true;
+                            break;
+                        }
+                    } else {
+                        if (messageNumber.equals(expectedMessageNumbers[j]) && !matches[j]) {
+                            matches[j] = true;
+                            break;                                
+                        }
+                    }
+                }
+            }
+            for (int k = 0; k < expectedMessageNumbers.length; k++) {
+                assertTrue("no match for message number: " + expectedMessageNumbers[k],
+                           matches[k]);
+            }
+        }
+    }
+
+    public void verifyLastMessage(boolean[] expectedLastMessages,
+                                  boolean outbound) throws Exception {
+        verifyLastMessage(expectedLastMessages, outbound, true);
+    }
+
+    public void verifyLastMessage(boolean[] expectedLastMessages,
+                                  boolean outbound,
+                                  boolean exact) throws Exception {
+        
+        int actualMessageCount =
+            outbound ? outboundMessages.size() : inboundMessages.size();
+        if (exact) {
+            assertEquals(expectedLastMessages.length, actualMessageCount);
+        } else {
+            assertTrue(expectedLastMessages.length <= actualMessageCount);
+        }
+        
+        for (int i = 0; i < expectedLastMessages.length; i++) { 
+            boolean lastMessage;
+            Element e = outbound ? getSequence(outboundMessages.get(i))
+                : getSequence(inboundMessages.get(i));
+            lastMessage = null == e ? false : getLastMessage(e);
+            assertEquals("Outbound message " + i 
+                         + (expectedLastMessages[i] ? " does not contain expected last message element."
+                             : " contains last message element."),
+                         expectedLastMessages[i], lastMessage);  
+        
+        }
+    }
+    
+    public void verifyAcknowledgements(boolean[] expectedAcks, boolean outbound) throws Exception {
+        assertEquals(expectedAcks.length, outbound ? outboundMessages.size()
+            : inboundMessages.size());
+        
+        for (int i = 0; i < expectedAcks.length; i++) {
+            boolean ack = outbound ? (null != getAcknowledgment(outboundMessages.get(i))) 
+                : (null != getAcknowledgment(inboundMessages.get(i)));
+            
+            if (expectedAcks[i]) {
+                assertTrue((outbound ? "Outbound" : "Inbound") + " message " + i 
+                           + " does not contain expected acknowledgement", ack);
+            } else {
+                assertFalse((outbound ? "Outbound" : "Inbound") + " message " + i 
+                           + " contains unexpected acknowledgement", ack);
+            }
+        }
+    }
+    
+    public void verifyAcknowledgements(int expectedAcks,
+                                       boolean outbound,
+                                       boolean exact) throws Exception {
+        
+        int actualMessageCount = 
+            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(inboundMessages.get(i)));
+            if (ack) {
+                ackCount++;
+            }
+        }
+        if (exact) {
+            assertEquals("unexpected number of acks", expectedAcks, ackCount);
+        } else {
+            assertTrue("unexpected number of acks: " + ackCount,
+                       expectedAcks <= ackCount);
+        }
+    }
+
+
+    public void verifyAckRequestedOutbound(boolean outbound) throws Exception {
+        boolean found = false;
+        List<Document> messages = outbound ? outboundMessages : inboundMessages;
+        for (Document d : messages) {
+            Element se = getAckRequested(d);
+            if (se != null) {
+                found = true;
+                break;
+            }
+        }
+        assertTrue("expected AckRequested", found);
+    }
+    
+    public void verifySequenceFault(QName code, boolean outbound, int index) throws Exception {
+        Document d = outbound ? outboundMessages.get(index) : inboundMessages.get(index);
+        assert null != getRMHeaderElement(d, RMConstants.getSequenceFaultName());
+    }
+    
+    public void verifyHeader(QName name, boolean outbound, int index) throws Exception {
+        Document d = outbound ? outboundMessages.get(index) : inboundMessages.get(index);
+        assertNotNull((outbound ? "Outbound" : "Inbound")
+            + " message " + index + " does not have " + name + "header.",
+            getHeaderElement(d, name.getNamespaceURI(), name.getLocalPart()));
+    }
+    
+    public void verifyNoHeader(QName name, boolean outbound, int index) throws Exception {
+        Document d = outbound ? outboundMessages.get(index) : inboundMessages.get(index);
+        assertNull((outbound ? "Outbound" : "Inbound")
+            + " message " + index + " has " + name + "header.",
+            getHeaderElement(d, name.getNamespaceURI(), name.getLocalPart()));
+    }
+   
+    protected String getAction(Document document) throws Exception {
+        Element e = getHeaderElement(document, RMConstants.getAddressingNamespace(), "Action");
+        if (null != e) {
+            return getText(e);
+        }
+        return null;
+    }
+
+    protected Element getSequence(Document document) throws Exception {
+        return getRMHeaderElement(document, RMConstants.getSequenceName());
+    }
+
+    public String getMessageNumber(Element elem) throws Exception {
+        for (Node nd = elem.getFirstChild(); nd != null; nd = nd.getNextSibling()) {
+            if (Node.ELEMENT_NODE == nd.getNodeType() && "MessageNumber".equals(nd.getLocalName())) {
+                return getText(nd);
+            }
+        }
+        return null;    
+    }
+
+    private boolean getLastMessage(Element element) throws Exception {
+        for (Node nd = element.getFirstChild(); nd != null; nd = nd.getNextSibling()) { 
+            if (Node.ELEMENT_NODE == nd.getNodeType() && "LastMessage".equals(nd.getLocalName())) {
+                return true;
+            }
+        } 
+        return false;
+    }
+
+    protected Element getAcknowledgment(Document document) throws Exception {
+        return getRMHeaderElement(document, RMConstants.getSequenceAckName());
+    }
+    
+    private Element getAckRequested(Document document) throws Exception {
+        return getRMHeaderElement(document, RMConstants.getAckRequestedName());
+    }
+
+    private Element getRMHeaderElement(Document document, String name) throws Exception {
+        return getHeaderElement(document, RMConstants.getNamespace(),  name);
+    }
+
+    private Element getHeaderElement(Document document, String namespace, String localName)
+        throws Exception {
+        Element envelopeElement = document.getDocumentElement();
+        Element headerElement = null;
+        for (Node nd = envelopeElement.getFirstChild(); nd != null; nd = nd.getNextSibling()) {
+            if (Node.ELEMENT_NODE == nd.getNodeType() && "Header".equals(nd.getLocalName())) {
+                headerElement = (Element)nd;
+                break;
+            }
+        }
+        if (null == headerElement) {
+            return null;
+        }
+        for (Node nd = headerElement.getFirstChild(); nd != null; nd = nd.getNextSibling()) { 
+            if (Node.ELEMENT_NODE != nd.getNodeType()) {
+                continue;
+            } 
+            Element element = (Element)nd;
+            String ns = element.getNamespaceURI();
+            String ln = element.getLocalName();
+            if (namespace.equals(ns)
+                && localName.equals(ln)) {
+                return element;
+            }
+        }
+        return null;
+    }
+    
+    
+    public void verifyMessages(int nExpected, boolean outbound) {
+        verifyMessages(nExpected, outbound, true);
+    }
+    
+    public void verifyMessages(int nExpected, boolean outbound, boolean exact) {
+        if (outbound) {
+            if (exact) {
+                assertEquals("Unexpected number of outbound messages" + outboundDump(),
+                             nExpected, outboundMessages.size());
+            } else {
+                assertTrue("Unexpected number of outbound messages: " + outboundDump(),
+                           nExpected <= outboundMessages.size());
+            }
+        } else {
+            if (exact) {
+                assertEquals("Unexpected number of inbound messages", nExpected, inboundMessages.size());
+            } else {
+                assertTrue("Unexpected number of inbound messages: " + inboundMessages.size(),
+                           nExpected <= inboundMessages.size());                
+            }
+        }
+    }
+    
+    public void purgePartialResponses() throws Exception {
+        for (int i = inboundMessages.size() - 1; i >= 0; i--) {
+            if (isPartialResponse(inboundMessages.get(i))) {
+                inboundMessages.remove(i);
+            }
+        }
+    }
+    
+    public void purge() {
+        inboundMessages.clear();
+        outboundMessages.clear();
+        inStreams.clear();
+        outStreams.clear();
+    }
+    
+    public void verifyPartialResponses(int nExpected) throws Exception {
+        verifyPartialResponses(nExpected, null);
+    }
+
+    public void verifyPartialResponses(int nExpected, boolean[] piggybackedAcks) throws Exception {
+        int npr = 0;
+        for (int i =  0; i < inboundMessages.size(); i++) {
+            if (isPartialResponse(inboundMessages.get(i))) {
+                if (piggybackedAcks != null) {
+                    Element ack = getAcknowledgment(inboundMessages.get(i));
+                    if (piggybackedAcks[npr]) {
+                        assertNotNull("Partial response " + npr + " does not include acknowledgement.", ack);
+                    } else {
+                        assertNull("Partial response " + npr + " has unexpected acknowledgement.", ack);
+                    }
+                }
+                npr++;   
+            }
+        }
+        assertEquals("Inbound messages did not contain expected number of partial responses.",
+                     nExpected, npr);
+    }
+    
+    public boolean isPartialResponse(Document d) throws Exception {
+        return null == getAction(d) && emptyBody(d);
+    }
+    
+    public boolean emptyBody(Document d) throws Exception {
+        Element envelopeElement = d.getDocumentElement();
+        Element bodyElement = null;
+        for (Node nd = envelopeElement.getFirstChild(); nd != null; nd = nd.getNextSibling()) {
+            if (Node.ELEMENT_NODE == nd.getNodeType() && "Body".equals(nd.getLocalName())) {
+                bodyElement = (Element)nd;
+                break;
+            }
+        }
+        if (null != bodyElement && bodyElement.hasChildNodes()) {
+            return false;
+        }
+        return true;
+    }
+   
+   
+    private String outboundDump() {
+        StringBuffer buf = new StringBuffer();
+        try {
+            buf.append(System.getProperty("line.separator"));
+            for (int i = 0; i < outStreams.size(); i++) {
+                buf.append("[");
+                buf.append(i);
+                buf.append("] : ");
+                buf.append(new String(outStreams.get(i)));
+                buf.append(System.getProperty("line.separator"));
+            }
+        } catch (Exception ex) {
+            return "";
+        }
+        
+        return buf.toString();
+    }
+
+    private String getText(Node node) {
+        for (Node nd = node.getFirstChild(); nd != null; nd = nd.getNextSibling()) {
+            if (Node.TEXT_NODE == nd.getNodeType()) {
+                return nd.getNodeValue();
+            }
+        }
+        return null;
+    }
+
+    protected QName getNodeName(Node nd) {
+        return new QName(nd.getNamespaceURI(), nd.getLocalName());
+    }
+    
+}

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageFlow.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageFlow.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageLossSimulator.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageLossSimulator.java?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageLossSimulator.java (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageLossSimulator.java Sun Aug 19 20:37:48 2007
@@ -0,0 +1,122 @@
+/*
+ * 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.servicemix.cxfbc.ws.rm;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.math.BigInteger;
+import java.util.ListIterator;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.interceptor.InterceptorChain;
+import org.apache.cxf.interceptor.MessageSenderInterceptor;
+import org.apache.cxf.io.AbstractWrappedOutputStream;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageUtils;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.phase.Phase;
+import org.apache.cxf.phase.PhaseInterceptor;
+import org.apache.cxf.ws.addressing.AddressingProperties;
+import org.apache.cxf.ws.rm.RMContextUtils;
+
+public class MessageLossSimulator extends AbstractPhaseInterceptor<Message> {
+
+    private static final Logger LOG = Logger.getLogger(MessageLossSimulator.class.getName());
+    private int appMessageCount; 
+    
+    public MessageLossSimulator() {
+        super(Phase.PREPARE_SEND);
+        addBefore(MessageSenderInterceptor.class.getName());
+    }
+
+    public void handleMessage(Message message) throws Fault {
+        AddressingProperties maps =
+            RMContextUtils.retrieveMAPs(message, false, true);
+        RMContextUtils.ensureExposedVersion(maps);
+        String action = null;
+        if (maps != null && null != maps.getAction()) {
+            action = maps.getAction().getValue();
+        }
+        if (RMContextUtils.isRMProtocolMessage(action)) {
+            return;
+        }
+        if (MessageUtils.isPartialResponse(message)) {
+            return;
+        }
+        appMessageCount++;
+        if (0 != (appMessageCount % 2)) {
+            return;
+        }
+        
+        InterceptorChain chain = message.getInterceptorChain();
+        ListIterator it = chain.getIterator();
+        while (it.hasNext()) {
+            PhaseInterceptor pi = (PhaseInterceptor)it.next();
+            if (MessageSenderInterceptor.class.getName().equals(pi.getId())) {
+                chain.remove(pi);
+                LOG.fine("Removed MessageSenderInterceptor from interceptor chain.");
+                break;
+            }
+        }
+        
+        message.setContent(OutputStream.class, new WrappedOutputStream(message));     
+        
+        message.getInterceptorChain().add(new AbstractPhaseInterceptor<Message>(Phase.PREPARE_SEND_ENDING) {
+
+            public void handleMessage(Message message) throws Fault {
+                try {
+                    message.getContent(OutputStream.class).close();
+                } catch (IOException e) {
+                    throw new Fault(e);
+                }
+            }
+            
+        });
+    }
+    
+    private class WrappedOutputStream extends AbstractWrappedOutputStream {
+
+        private Message outMessage;
+
+        public WrappedOutputStream(Message m) {
+            this.outMessage = m;
+        }
+
+        @Override
+        protected void onFirstWrite() throws IOException {
+            if (LOG.isLoggable(Level.FINE)) {
+                BigInteger nr = RMContextUtils.retrieveRMProperties(outMessage, true)
+                    .getSequence().getMessageNumber();
+                LOG.fine("Losing message " + nr);
+            }
+            wrappedStream = new DummyOutputStream();
+        }
+    }
+    
+    private class DummyOutputStream extends OutputStream {
+
+        @Override
+        public void write(int b) throws IOException {
+            // TODO Auto-generated method stub
+            
+        }
+        
+    }
+    
+}

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageLossSimulator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageLossSimulator.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageRecorder.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageRecorder.java?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageRecorder.java (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageRecorder.java Sun Aug 19 20:37:48 2007
@@ -0,0 +1,55 @@
+/*
+ * 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.servicemix.cxfbc.ws.rm;
+
+import junit.framework.Assert;
+
+public class MessageRecorder extends Assert {
+    
+    private OutMessageRecorder outRecorder;
+    private InMessageRecorder inRecorder;
+
+    public MessageRecorder(OutMessageRecorder or, InMessageRecorder ir) {
+        inRecorder = ir;
+        outRecorder = or;
+    }
+ 
+    public void awaitMessages(int nExpectedOut, int nExpectedIn, int timeout) {
+        int waited = 0;
+        int nOut = 0;
+        int nIn = 0;
+        while (waited <= timeout) {                
+            synchronized (outRecorder) {
+                nOut = outRecorder.getOutboundMessages().size();
+            }
+            synchronized (inRecorder) {
+                nIn = inRecorder.getInboundMessages().size();
+            }
+            if (nIn >= nExpectedIn && nOut >= nExpectedOut) {
+                return;
+            }
+            try {
+                Thread.sleep(100);
+            } catch (InterruptedException ex) {
+                // ignore
+            }
+            waited += 100;
+        }
+        assertEquals("Did not receive expected number of inbound messages", nExpectedIn, nIn);
+        assertEquals("Did not send expected number of outbound messages", nExpectedOut, nOut);        
+    }    
+}

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageRecorder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/MessageRecorder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/OutMessageRecorder.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/OutMessageRecorder.java?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/OutMessageRecorder.java (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/OutMessageRecorder.java Sun Aug 19 20:37:48 2007
@@ -0,0 +1,87 @@
+/*
+ * 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.servicemix.cxfbc.ws.rm;
+
+import java.io.ByteArrayOutputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.interceptor.StaxOutInterceptor;
+import org.apache.cxf.io.CachedOutputStream;
+import org.apache.cxf.io.CachedOutputStreamCallback;
+import org.apache.cxf.io.WriteOnCloseOutputStream;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.phase.Phase;
+import org.apache.cxf.ws.rm.RMUtils;
+import org.apache.cxf.ws.rm.RetransmissionInterceptor;
+
+public class OutMessageRecorder extends AbstractPhaseInterceptor {
+    
+    private static final Logger LOG = Logger.getLogger(OutMessageRecorder.class.getName());
+    private List<byte[]> outbound;
+
+    public OutMessageRecorder() {
+        super(Phase.PRE_STREAM);
+        outbound = new ArrayList<byte[]>();
+        addAfter(RetransmissionInterceptor.class.getName());
+        addBefore(StaxOutInterceptor.class.getName());
+    }
+    
+    public void handleMessage(Message message) throws Fault {
+        OutputStream os = message.getContent(OutputStream.class);
+        if (null == os) {
+            return;
+        }
+
+        WriteOnCloseOutputStream stream = RMUtils.createCachedStream(message, os);
+        stream.registerCallback(new RecorderCallback());
+    }
+    
+    public List<byte[]> getOutboundMessages() {
+        return outbound;
+    } 
+
+    class RecorderCallback implements CachedOutputStreamCallback {
+
+        public void onFlush(CachedOutputStream cos) {  
+
+        }
+        
+        public void onClose(CachedOutputStream cos) {
+            // bytes were already copied after flush
+            OutputStream os = cos.getOut();
+            if (os instanceof ByteArrayOutputStream) {
+                ByteArrayOutputStream bos = (ByteArrayOutputStream)os;
+                outbound.add(bos.toByteArray());
+                if (LOG.isLoggable(Level.FINE)) {
+                    LOG.fine("outbound: " + bos.toString());
+                }
+                LOG.info("***outbound: " + bos.toString());
+            } else {
+                LOG.fine("Can't record message from output stream class: " + os.getClass().getName());
+            }
+        }
+        
+    }
+
+}
+

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/OutMessageRecorder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/OutMessageRecorder.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/TwowayThread.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/TwowayThread.java?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/TwowayThread.java (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/TwowayThread.java Sun Aug 19 20:37:48 2007
@@ -0,0 +1,38 @@
+/*
+ * 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.servicemix.cxfbc.ws.rm;
+
+import org.apache.cxf.greeter_control.Greeter;
+
+public class TwowayThread extends Thread {
+    
+    private String response;
+    private Greeter greeter;
+    public TwowayThread(Greeter gr) {
+        greeter = gr;
+    }
+    @Override
+    public void run() {
+        
+        response = greeter.greetMe("twoway");
+    }
+    
+    public String getResponse() {
+        return response;
+    }
+
+}
\ No newline at end of file

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/TwowayThread.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/rm/TwowayThread.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBCSecurityTest.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBCSecurityTest.java?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBCSecurityTest.java (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBCSecurityTest.java Sun Aug 19 20:37:48 2007
@@ -0,0 +1,80 @@
+/*
+ * 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.servicemix.cxfbc.ws.security;
+
+import java.util.logging.Logger;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.hello_world_soap_http.Greeter;
+import org.apache.servicemix.tck.SpringTestSupport;
+import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+
+public class CxfBCSecurityTest extends SpringTestSupport {
+
+    private static final Logger LOG = Logger.getLogger(CxfBCSecurityTest.class
+            .getName());
+    
+    private static final java.net.URL WSDL_LOC;
+    static {
+        java.net.URL tmp = null;
+        try {
+            tmp = CxfBCSecurityTest.class.getClassLoader().getResource(
+                "org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
+            );
+        } catch (final Exception e) {
+            e.printStackTrace();
+        }
+        WSDL_LOC = tmp;
+    }
+    
+    public void testTimestampSignEncrypt() {
+        LOG.info("test security");
+        Bus bus = new SpringBusFactory().createBus(
+                "org/apache/servicemix/cxfbc/ws/security/client.xml"); 
+        BusFactory.setDefaultBus(bus);
+        LoggingInInterceptor in = new LoggingInInterceptor();
+        bus.getInInterceptors().add(in);
+        bus.getInFaultInterceptors().add(in);
+        LoggingOutInterceptor out = new LoggingOutInterceptor();
+        bus.getOutInterceptors().add(out);
+        bus.getOutFaultInterceptors().add(out);
+        final javax.xml.ws.Service svc = javax.xml.ws.Service.create(WSDL_LOC,
+                new javax.xml.namespace.QName(
+                        "http://apache.org/hello_world_soap_http",
+                        "SOAPServiceWSSecurity"));
+        final Greeter greeter = svc.getPort(new javax.xml.namespace.QName(
+                "http://apache.org/hello_world_soap_http",
+                "TimestampSignEncrypt"), Greeter.class);
+        String ret = greeter.sayHi();
+        assertEquals(ret, "Bonjour");
+        ret = greeter.greetMe("ffang");
+        assertEquals(ret, "Hello ffang");
+    }
+    
+    @Override
+    protected AbstractXmlApplicationContext createBeanFactory() {
+        // load cxf se and bc from spring config file
+        return new ClassPathXmlApplicationContext(
+            "org/apache/servicemix/cxfbc/ws/security/xbean.xml");
+    }
+
+}

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBCSecurityTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/CxfBCSecurityTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/GreeterImpl.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/GreeterImpl.java?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/GreeterImpl.java (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/GreeterImpl.java Sun Aug 19 20:37:48 2007
@@ -0,0 +1,33 @@
+/*
+ * 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.servicemix.cxfbc.ws.security;
+
+@javax.jws.WebService(
+        serviceName = "SOAPServiceWSSecurity", 
+        portName = "TimestampSignEncrypt", 
+        endpointInterface = "org.apache.hello_world_soap_http.Greeter",
+        targetNamespace = "http://apache.org/hello_world_soap_http",
+        wsdlLocation = "org/apache/servicemix/cxfbc/ws/security/hello_world.wsdl"
+    )
+public class GreeterImpl 
+    extends org.apache.hello_world_soap_http.GreeterImpl {
+    public String greetMe(String me) {
+        System.out.println("\n\n*** GreetMe called with: " + me + "***\n\n");
+        return "Hello " + me;
+    }
+        
+}

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/GreeterImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/GreeterImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/KeystorePasswordCallback.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/KeystorePasswordCallback.java?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/KeystorePasswordCallback.java (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/KeystorePasswordCallback.java Sun Aug 19 20:37:48 2007
@@ -0,0 +1,62 @@
+/*
+ * 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.servicemix.cxfbc.ws.security;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.ws.security.WSPasswordCallback;
+
+public class KeystorePasswordCallback implements CallbackHandler {
+    
+    private Map<String, String> passwords = 
+        new HashMap<String, String>();
+    
+    public KeystorePasswordCallback() {
+        passwords.put("alice", "password");
+        passwords.put("bob", "password");
+    }
+
+    /**
+     * It attempts to get the password from the private 
+     * alias/passwords map.
+     */
+    public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+        for (int i = 0; i < callbacks.length; i++) {
+            WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
+
+            String pass = passwords.get(pc.getIdentifer());
+            if (pass != null) {
+                pc.setPassword(pass);
+                return;
+            }
+        }
+    }
+    
+    /**
+     * Add an alias/password pair to the callback mechanism.
+     */
+    public void setAliasPassword(String alias, String password) {
+        passwords.put(alias, password);
+    }
+}
+

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/KeystorePasswordCallback.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/java/org/apache/servicemix/cxfbc/ws/security/KeystorePasswordCallback.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/atmostonce.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/atmostonce.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/atmostonce.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/atmostonce.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,45 @@
+<?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-mgr="http://cxf.apache.org/ws/rm/manager"
+	xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
+	xsi:schemaLocation="
+http://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd
+http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<import resource="rminterceptors.xml" />
+
+	<wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
+        <wsrm-policy:RMAssertion>
+			<wsrm-policy:BaseRetransmissionInterval Milliseconds="60000" />
+			<wsrm-policy:AcknowledgementInterval Milliseconds="10000" />
+		</wsrm-policy:RMAssertion>
+		<wsrm-mgr:deliveryAssurance>
+			<wsrm-mgr:AtMostOnce />
+		</wsrm-mgr:deliveryAssurance>
+		<wsrm-mgr:destinationPolicy>
+			<wsrm-mgr:acksPolicy intraMessageThreshold="0" />
+		</wsrm-mgr:destinationPolicy>
+	</wsrm-mgr:rmManager>
+
+
+</beans>
\ No newline at end of file

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/atmostonce.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/atmostonce.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/atmostonce.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/decoupled.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/decoupled.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/decoupled.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/decoupled.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,63 @@
+<?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:http="http://cxf.apache.org/transports/http/configuration"
+       xsi:schemaLocation="
+http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+  
+    <http:conduit name="{http://cxf.apache.org/greeter_control}GreeterPort.http-conduit">
+      <http:client DecoupledEndpoint="http://localhost:9995/decoupled_endpoint"/>
+    </http:conduit>
+    
+    <bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
+    <bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>
+
+    <!-- We are adding the interceptors to the bus as we will have only one endpoint/service/bus. -->
+
+    <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
+        <property name="inInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+            </list>
+        </property>
+        <property name="inFaultInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+            </list>
+        </property>
+        <property name="outInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+            </list>
+        </property>
+        <property name="outFaultInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+            </list>
+        </property>
+    </bean>
+
+</beans>
\ No newline at end of file

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/decoupled.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/decoupled.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/decoupled.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/deferred.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/deferred.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/deferred.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/deferred.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,41 @@
+<?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-mgr="http://cxf.apache.org/ws/rm/manager"
+       xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
+       xsi:schemaLocation="
+http://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd
+http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    
+    <import resource="rminterceptors.xml"/>
+    
+    <wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
+    <wsrm-policy:RMAssertion>         
+          <wsrm-policy:BaseRetransmissionInterval Milliseconds="10000"/>           
+          <wsrm-policy:AcknowledgementInterval Milliseconds="2000"/>                                                        
+      </wsrm-policy:RMAssertion>
+      <wsrm-mgr:destinationPolicy>
+          <wsrm-mgr:acksPolicy intraMessageThreshold="0"/>                    
+      </wsrm-mgr:destinationPolicy>      
+    </wsrm-mgr:rmManager>
+    
+</beans>

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/deferred.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/deferred.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/deferred.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/inactivity-timeout.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/inactivity-timeout.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/inactivity-timeout.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/inactivity-timeout.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,38 @@
+<?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-mgr="http://cxf.apache.org/ws/rm/manager"
+	xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
+	xsi:schemaLocation="
+http://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd
+http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<import resource="rminterceptors.xml" />
+
+	<wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
+		<wsrm-policy:RMAssertion>
+			<wsrm-policy:InactivityTimeout Milliseconds="200" />
+		</wsrm-policy:RMAssertion>
+	</wsrm-mgr:rmManager>
+
+
+</beans>
\ No newline at end of file

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/inactivity-timeout.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/inactivity-timeout.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/inactivity-timeout.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss-server.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss-server.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss-server.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss-server.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,89 @@
+<?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-mgr="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://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd
+http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
+    <bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>
+    <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"/>
+    <bean id="messageLoss" class="org.apache.servicemix.cxfbc.ws.rm.MessageLossSimulator"/>
+
+    <!-- We are adding the interceptors to the bus as we will have only one endpoint/service/bus. -->
+
+    <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
+        <property name="inInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="rmLogicalIn"/>
+                <ref bean="rmCodec"/>
+            </list>
+        </property>
+        <property name="inFaultInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="rmLogicalIn"/>
+                <ref bean="rmCodec"/>
+            </list>
+        </property>
+        <property name="outInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="rmLogicalOut"/>
+                <ref bean="rmCodec"/>
+                <ref bean="messageLoss"/>
+            </list>
+        </property>
+        <property name="outFaultInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="rmLogicalOut"/>
+                <ref bean="rmCodec"/>
+            </list>
+        </property>
+    </bean>
+	
+	
+
+	<wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
+		<wsrm-policy:RMAssertion>
+			<!-- avoid server side resends, change programatically for client -->
+			<wsrm-policy:BaseRetransmissionInterval Milliseconds="2000" />
+		</wsrm-policy:RMAssertion>
+	</wsrm-mgr:rmManager>
+
+
+</beans>

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss-server.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss-server.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss-server.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,41 @@
+<?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-mgr="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://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd
+http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<import resource="rminterceptors.xml" />
+
+	<wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
+		<wsrm-policy:RMAssertion>
+			<!-- avoid server side resends, change programatically for client -->
+			<wsrm-policy:BaseRetransmissionInterval Milliseconds="60000" />
+			<wsrm-policy:AcknowledgementInterval Milliseconds="2000" />
+		</wsrm-policy:RMAssertion>
+	</wsrm-mgr:rmManager>
+
+
+</beans>
\ No newline at end of file

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/message-loss.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/no-offer.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/no-offer.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/no-offer.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/no-offer.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,42 @@
+<?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-mgr="http://cxf.apache.org/ws/rm/manager"
+	xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
+	xsi:schemaLocation="
+http://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd
+http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<import resource="rminterceptors.xml" />
+
+	<wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">		
+		<wsrm-policy:RMAssertion>
+			<wsrm-policy:BaseRetransmissionInterval Milliseconds="60000" />
+			<wsrm-policy:AcknowledgementInterval Milliseconds="60000" />
+		</wsrm-policy:RMAssertion>
+		<wsrm-mgr:sourcePolicy includeOffer="false"/>
+		<wsrm-mgr:destinationPolicy>
+			<wsrm-mgr:acksPolicy intraMessageThreshold="0" />
+		</wsrm-mgr:destinationPolicy>
+	</wsrm-mgr:rmManager>
+
+</beans>
\ No newline at end of file

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/no-offer.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/no-offer.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/no-offer.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/rminterceptors.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/rminterceptors.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/rminterceptors.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/rminterceptors.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,70 @@
+<?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"
+       xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+    <bean id="mapAggregator" class="org.apache.cxf.ws.addressing.MAPAggregator"/>
+    <bean id="mapCodec" class="org.apache.cxf.ws.addressing.soap.MAPCodec"/>
+    <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"/>
+
+
+    <bean id="cxf" class="org.apache.cxf.bus.CXFBusImpl">
+        <property name="inInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="rmLogicalIn"/>
+                <ref bean="rmCodec"/>
+            </list>
+        </property>
+        <property name="inFaultInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="rmLogicalIn"/>
+                <ref bean="rmCodec"/>
+            </list>
+        </property>
+        <property name="outInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="rmLogicalOut"/>
+                <ref bean="rmCodec"/>
+            </list>
+        </property>
+        <property name="outFaultInterceptors">
+            <list>
+                <ref bean="mapAggregator"/>
+                <ref bean="mapCodec"/>
+                <ref bean="rmLogicalOut"/>
+                <ref bean="rmCodec"/>
+            </list>
+        </property>
+    </bean>
+</beans>

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/rminterceptors.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/rminterceptors.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/rminterceptors.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength1.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength1.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength1.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength1.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,35 @@
+<?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-mgr="http://cxf.apache.org/ws/rm/manager"
+       xsi:schemaLocation="
+http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<import resource="rminterceptors.xml" />
+
+	<wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
+		<wsrm-mgr:sourcePolicy>
+			<wsrm-mgr:sequenceTerminationPolicy maxLength="1" />
+		</wsrm-mgr:sourcePolicy>
+	</wsrm-mgr:rmManager>
+
+</beans>
\ No newline at end of file

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength1.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength1.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength1.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength10.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength10.xml?rev=567536&view=auto
==============================================================================
--- incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength10.xml (added)
+++ incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength10.xml Sun Aug 19 20:37:48 2007
@@ -0,0 +1,36 @@
+<?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-mgr="http://cxf.apache.org/ws/rm/manager"
+	xmlns:http="http://cxf.apache.org/transports/http/configuration"
+	xsi:schemaLocation="
+http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+	<import resource="rminterceptors.xml" />
+
+	<wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
+		<wsrm-mgr:sourcePolicy>
+			<wsrm-mgr:sequenceTerminationPolicy maxLength="10" />
+		</wsrm-mgr:sourcePolicy>
+	</wsrm-mgr:rmManager>
+
+</beans>
\ No newline at end of file

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength10.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength10.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/servicemix/trunk/deployables/bindingcomponents/servicemix-cxf-bc/src/test/resources/org/apache/servicemix/cxfbc/ws/rm/seqlength10.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml