cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dsosno...@apache.org
Subject svn commit: r1137112 [4/7] - in /cxf/trunk: rt/ws/rm/ rt/ws/rm/src/main/build-resources/ rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/ rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/feature/ rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/persistence/ rt/ws/rm...
Date Sat, 18 Jun 2011 01:51:04 GMT
Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java?rev=1137112&r1=1137111&r2=1137112&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RMSoapInterceptor.java Sat Jun 18 01:51:01 2011
@@ -19,10 +19,10 @@
 
 package org.apache.cxf.ws.rm.soap;
 
-
 import java.net.HttpURLConnection;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.ListIterator;
@@ -31,15 +31,10 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBElement;
 import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import javax.xml.bind.Unmarshaller;
 import javax.xml.namespace.QName;
-import javax.xml.soap.SOAPException;
 
 import org.w3c.dom.Attr;
-import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -47,13 +42,10 @@ import org.apache.cxf.binding.Binding;
 import org.apache.cxf.binding.soap.Soap11;
 import org.apache.cxf.binding.soap.SoapFault;
 import org.apache.cxf.binding.soap.SoapMessage;
-import org.apache.cxf.binding.soap.SoapVersion;
 import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
 import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.common.util.PackageUtils;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.headers.Header;
-import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.interceptor.BareInInterceptor;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.interceptor.Interceptor;
@@ -70,21 +62,21 @@ import org.apache.cxf.service.model.Bind
 import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.ws.addressing.AddressingProperties;
 import org.apache.cxf.ws.addressing.AttributedURIType;
-//import org.apache.cxf.ws.addressing.Names;
 import org.apache.cxf.ws.addressing.soap.MAPCodec;
 import org.apache.cxf.ws.rm.AbstractRMInterceptor;
-import org.apache.cxf.ws.rm.AckRequestedType;
+import org.apache.cxf.ws.rm.EncoderDecoder;
+import org.apache.cxf.ws.rm.RM10Constants;
+import org.apache.cxf.ws.rm.RM11Constants;
 import org.apache.cxf.ws.rm.RMConstants;
 import org.apache.cxf.ws.rm.RMContextUtils;
 import org.apache.cxf.ws.rm.RMEndpoint;
 import org.apache.cxf.ws.rm.RMManager;
 import org.apache.cxf.ws.rm.RMMessageConstants;
 import org.apache.cxf.ws.rm.RMProperties;
-import org.apache.cxf.ws.rm.SequenceAcknowledgement;
 import org.apache.cxf.ws.rm.SequenceFault;
-import org.apache.cxf.ws.rm.SequenceFaultType;
-import org.apache.cxf.ws.rm.SequenceType;
-
+import org.apache.cxf.ws.rm.VersionTransformer;
+import org.apache.cxf.ws.rm.v200702.AckRequestedType;
+import org.apache.cxf.ws.rm.v200702.SequenceAcknowledgement;
 
 /**
  * Protocol Handler responsible for {en|de}coding the RM 
@@ -93,10 +85,16 @@ import org.apache.cxf.ws.rm.SequenceType
 public class RMSoapInterceptor extends AbstractSoapInterceptor {
 
     protected static JAXBContext jaxbContext;
+    
+    private static final Set<QName> HEADERS;
+    static {
+        Set<QName> set = new HashSet<QName>();
+        set.addAll(RM10Constants.HEADERS);
+        set.addAll(RM11Constants.HEADERS);
+        HEADERS = set;
+    }
 
     private static final Logger LOG = LogUtils.getL7dLogger(RMSoapInterceptor.class);
-    private static final String WS_RM_PACKAGE = 
-        PackageUtils.getPackageName(SequenceType.class);
     
     /**
      * Constructor.
@@ -113,7 +111,7 @@ public class RMSoapInterceptor extends A
      * @return the set of SOAP headers understood by this handler 
      */
     public Set<QName> getUnderstoodHeaders() {
-        return RMConstants.getHeaders();
+        return HEADERS;
     }
     
     // Interceptor interface
@@ -121,18 +119,15 @@ public class RMSoapInterceptor extends A
     /* (non-Javadoc)
      * @see org.apache.cxf.interceptor.Interceptor#handleMessage(org.apache.cxf.message.Message)
      */
-
     public void handleMessage(SoapMessage message) throws Fault {
         mediate(message);
     }
 
-
     /**
      * Mediate message flow, peforming RMProperties {en|de}coding.
      * 
      * @param message the messsage
      */ 
-
     void mediate(SoapMessage message) {
         if (MessageUtils.isOutbound(message)) {
             encode(message);
@@ -147,7 +142,6 @@ public class RMSoapInterceptor extends A
      *
      * @param message the SOAP message
      */
-    
     void encode(SoapMessage message) {
         RMProperties rmps = RMContextUtils.retrieveRMProperties(message, true);
         if (null != rmps) {
@@ -174,65 +168,25 @@ public class RMSoapInterceptor extends A
         LOG.log(Level.FINE, "encoding RMPs in SOAP headers");
         
         try {
-            List<Header> header = message.getHeaders();
-            discardRMHeaders(header);
             
-            Document doc = DOMUtils.createDocument();
-            SoapVersion version = Soap11.getInstance();
-            Element hdr = doc.createElementNS(version.getHeader().getNamespaceURI(), 
-                    version.getHeader().getLocalPart());
-            // add WSRM namespace declaration to header, instead of
-            // repeating in each individual child node
+            List<Header> headers = message.getHeaders();
+            discardRMHeaders(headers);
             
-            Attr attr = doc.createAttributeNS("http://www.w3.org/2000/xmlns/", 
-                                   "xmlns:" + RMConstants.getNamespacePrefix());
-            attr.setValue(RMConstants.getNamespace());
-            hdr.setAttributeNodeNS(attr);
-
-            Marshaller marshaller = getJAXBContext().createMarshaller();
-            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
-           
-            SequenceType seq = rmps.getSequence();
-            if (null != seq) {
-                encodeProperty(seq, 
-                               RMConstants.getSequenceQName(), 
-                               SequenceType.class, 
-                               hdr,
-                               marshaller);
-            } 
-            Collection<SequenceAcknowledgement> acks = rmps.getAcks();
-            if (null != acks) {
-                for (SequenceAcknowledgement ack : acks) {
-                    encodeProperty(ack, 
-                                   RMConstants.getSequenceAckQName(), 
-                                   SequenceAcknowledgement.class, 
-                                   hdr,
-                                   marshaller);
-                }
-            }
-            Collection<AckRequestedType> requested = rmps.getAcksRequested();
-            if (null != requested) {
-                for (AckRequestedType ar : requested) {
-                    encodeProperty(ar, 
-                                   RMConstants.getAckRequestedQName(), 
-                                   AckRequestedType.class, 
-                                   hdr,
-                                   marshaller);
-                }
-            }
-            Node node = hdr.getFirstChild();
+            AddressingProperties maps = RMContextUtils.retrieveMAPs(message, false, true);
+            EncoderDecoder codec = VersionTransformer
+                .getEncoderDecoder(rmps.getNamespaceURI(), maps.getNamespaceURI());
+            Element header = codec.buildHeaders(rmps, Soap11.getInstance().getHeader());
+            Node node = header.getFirstChild();
             if (node != null && MessageUtils.isPartialResponse(message)) {
                 // make sure the response is returned as HTTP 200 and not 202
                 message.put(Message.RESPONSE_CODE, HttpURLConnection.HTTP_OK);
             }
             while (node != null) {
                 Header holder = new Header(new QName(node.getNamespaceURI(), node.getLocalName()), node);
-                header.add(holder);
+                headers.add(holder);
                 node = node.getNextSibling();
             }
 
-        } catch (SOAPException se) {
-            LOG.log(Level.WARNING, "SOAP_HEADER_ENCODE_FAILURE_MSG", se); 
         } catch (JAXBException je) {
             LOG.log(Level.WARNING, "SOAP_HEADER_ENCODE_FAILURE_MSG", je);
         }        
@@ -250,38 +204,23 @@ public class RMSoapInterceptor extends A
         }
         LOG.log(Level.FINE, "Encoding SequenceFault in SOAP header");
         try {
-            List<Header> header = message.getHeaders();
-            discardRMHeaders(header);
-            
-            Document doc = DOMUtils.createDocument();
-            SoapVersion version = message.getVersion();
-            Element hdr = doc.createElementNS(version.getHeader().getNamespaceURI(), 
-                    version.getHeader().getLocalPart());
-            // add WSRM namespace declaration to header, instead of
-            // repeating in each individual child node
-//            hdr.setAttributeNS("http://www.w3.org/2000/xmlns/",
-//                                  "xmlns:" + RMConstants.getNamespacePrefix(),
-//                                 RMConstants.getNamespace());
-            Marshaller marshaller = getJAXBContext().createMarshaller();
-            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
-
-            encodeProperty(sf.getSequenceFault(), 
-                           RMConstants.getSequenceFaultQName(), 
-                           SequenceFaultType.class, 
-                           hdr, 
-                           marshaller);
-            Node node = hdr.getFirstChild();
+            List<Header> headers = message.getHeaders();
+            discardRMHeaders(headers);
+            Message inmsg = message.getExchange().getInMessage();
+            RMProperties rmps = RMContextUtils.retrieveRMProperties(inmsg, false);
+            AddressingProperties maps = RMContextUtils.retrieveMAPs(inmsg, false, false);
+            EncoderDecoder codec = VersionTransformer
+                .getEncoderDecoder(rmps.getNamespaceURI(), maps.getNamespaceURI());
+            Element header = codec.buildHeaderFault(sf, Soap11.getInstance().getHeader());
+            Node node = header.getFirstChild();
             if (node instanceof Element) {
-                
-                Attr attr = doc.createAttributeNS("http://www.w3.org/2000/xmlns/", 
-                                                  "xmlns:" + RMConstants.getNamespacePrefix());
-                attr.setValue(RMConstants.getNamespace());
+                Attr attr = header.getOwnerDocument().createAttributeNS("http://www.w3.org/2000/xmlns/",
+                    "xmlns:" + RMConstants.NAMESPACE_PREFIX);
+                attr.setValue(rmps.getNamespaceURI());
                 ((Element)node).setAttributeNodeNS(attr);
             }
             
-            header.add(new Header(new QName(node.getNamespaceURI(), node.getLocalName()), node));
-        } catch (SOAPException se) {
-            LOG.log(Level.WARNING, "SOAP_HEADER_ENCODE_FAILURE_MSG", se); 
+            headers.add(new Header(new QName(node.getNamespaceURI(), node.getLocalName()), node));
         } catch (JAXBException je) {
             LOG.log(Level.WARNING, "SOAP_HEADER_ENCODE_FAILURE_MSG", je);
         }        
@@ -307,135 +246,86 @@ public class RMSoapInterceptor extends A
      */
     public RMProperties unmarshalRMProperties(SoapMessage message) { 
         RMProperties rmps = new RMProperties();
-        
+        List<Header> headers = message.getHeaders();
+        if (headers != null) {
+            decodeHeaders(message, headers, rmps);
+        } 
+        return rmps;
+    }
+
+    public void decodeHeaders(SoapMessage message, List<Header> headers, RMProperties rmps) {
         try {
             Collection<SequenceAcknowledgement> acks = new ArrayList<SequenceAcknowledgement>();
             Collection<AckRequestedType> requested = new ArrayList<AckRequestedType>();           
             
-            List<Header> header = message.getHeaders();
- 
-            if (header != null) {
-                Unmarshaller unmarshaller = 
-                    getJAXBContext().createUnmarshaller();
-                Iterator<Header> iter = header.iterator();
-                while (iter.hasNext()) {
-                    Object node = iter.next().getObject();
-                    if (node instanceof Element) {
-                        Element elem = (Element) node;
-                        if (Node.ELEMENT_NODE != elem.getNodeType()) {
-                            continue;
+            String rmUri = null;
+            EncoderDecoder codec = null;
+            Iterator<Header> iter = headers.iterator();
+            while (iter.hasNext()) {
+                Object node = iter.next().getObject();
+                if (node instanceof Element) {
+                    Element elem = (Element) node;
+                    if (Node.ELEMENT_NODE != elem.getNodeType()) {
+                        continue;
+                    }
+                    String ns = elem.getNamespaceURI();
+                    if (rmUri == null && (RM10Constants.NAMESPACE_URI.equals(ns)
+                        || RM11Constants.NAMESPACE_URI.equals(ns))) {
+                        LOG.log(Level.FINE, "set RM namespace {0}", ns);
+                        rmUri = ns;
+                        rmps.exposeAs(rmUri);
+                    }
+                    if (rmUri != null && rmUri.equals(ns)) {
+                        if (codec == null) {
+                            AddressingProperties maps =
+                                RMContextUtils.retrieveMAPs(message, false, false);
+                            codec = VersionTransformer.getEncoderDecoder(rmUri, maps.getNamespaceURI());
+                            if (codec == null) {
+                                LOG.log(Level.WARNING, "NAMESPACE_ERROR_MSG", maps.getNamespaceURI()); 
+                                break;
+                            }
                         }
-                        String headerURI = elem.getNamespaceURI();
                         String localName = elem.getLocalName();
-                        if (RMConstants.getNamespace().equals(headerURI)) {
-                            LOG.log(Level.FINE, "decoding RM header {0}", localName);
-                            if (RMConstants.getSequenceName().equals(localName)) {
-                                SequenceType s = decodeProperty(SequenceType.class,
-                                        elem,
-                                                                unmarshaller);
-                                
-                                rmps.setSequence(s);
-                            } else if (RMConstants.getSequenceAckName().equals(localName)) {
-                                SequenceAcknowledgement ack = decodeProperty(SequenceAcknowledgement.class,
-                                        elem,
-                                                                unmarshaller);
-                                acks.add(ack);                            
-                            } else if (RMConstants.getAckRequestedName().equals(localName)) {
-                                AckRequestedType ar = decodeProperty(AckRequestedType.class,
-                                        elem,
-                                                                unmarshaller);
-                                requested.add(ar);
-                            }
+                        LOG.log(Level.FINE, "decoding RM header {0}", localName);
+                        if (RMConstants.SEQUENCE_NAME.equals(localName)) {
+                            rmps.setSequence(codec.decodeSequenceType(elem));
+                        } else if (RMConstants.SEQUENCE_ACK_NAME.equals(localName)) {
+                            acks.add(codec.decodeSequenceAcknowledgement(elem));
+                        } else if (RMConstants.ACK_REQUESTED_NAME.equals(localName)) {
+                            requested.add(codec.decodeAckRequestedType(elem));
                         }
                     }
                 }
-                if (acks.size() > 0) {
-                    rmps.setAcks(acks);
-                }
-                if (requested.size() > 0) {
-                    rmps.setAcksRequested(requested);
-                }
-            } 
+            }
+            if (acks.size() > 0) {
+                rmps.setAcks(acks);
+            }
+            if (requested.size() > 0) {
+                rmps.setAcksRequested(requested);
+            }
         } catch (JAXBException ex) {
             LOG.log(Level.WARNING, "SOAP_HEADER_DECODE_FAILURE_MSG", ex); 
         }
-        return rmps;
-    }
-
-
-    /**
-     * @return a JAXBContext
-     */
-    private static synchronized JAXBContext getJAXBContext() throws JAXBException {
-        if (jaxbContext == null) {
-            jaxbContext =
-                JAXBContext.newInstance(
-                    WS_RM_PACKAGE,
-                    SequenceAcknowledgement.class.getClassLoader());
-        }
-        return jaxbContext;
-    }
-    
-    /**
-     * Encodes an RM property as a SOAP header.
-     *
-     * @param value the value to encode
-     * @param qname the QName for the header 
-     * @param clz the class
-     * @param header the SOAP header element
-     * @param marshaller the JAXB marshaller to use
-     */
-    private static <T> void encodeProperty(T value, 
-                                           QName qname, 
-                                           Class<T> clz, 
-                                           Element header,
-                                           Marshaller marshaller)
-        throws JAXBException {
-        if (value != null) {
-            LOG.log(Level.FINE, "encoding " + value + " into RM header {0}", qname);
-            marshaller.marshal(new JAXBElement<T>(qname, clz, value), header);
-        }
-    }
-    
-    /**
-     * Decodes an RM property from a SOAP header.
-     * 
-     * @param clz the class
-     * @param headerElement the SOAP header element
-     * @param marshaller the JAXB marshaller to use
-     * @return the decoded EndpointReference
-     */
-    public static <T> T decodeProperty(Class<T> clz,
-                                       Element headerElement,
-                                       Unmarshaller unmarshaller)
-        throws JAXBException {
-        if (null == unmarshaller) {
-            unmarshaller = getJAXBContext().createUnmarshaller();
-        }
-        JAXBElement<T> element =
-            unmarshaller.unmarshal(headerElement, clz);
-        return element.getValue();
     }
 
-
     /**
      * Discard any pre-existing RM headers - this may occur if the runtime
      * re-uses a SOAP message.
      *
      * @param header the SOAP header element
      */
-    private static void discardRMHeaders(List<Header> header) throws SOAPException {
-        
+    private static void discardRMHeaders(List<Header> header) {
         Iterator<Header> iter = header.iterator();
         while (iter.hasNext()) {
             Header hdr = iter.next();
-            if (RMConstants.getNamespace().equals(hdr.getName().getNamespaceURI())) {
+            String uri = hdr.getName().getNamespaceURI();
+            if (RM10Constants.NAMESPACE_URI.equals(uri)
+                || RM11Constants.NAMESPACE_URI.equals(uri)) {
                 iter.remove();
             }
         }
     }
     
-    
     /**
      * When invoked inbound, check if the action indicates that this is one of the 
      * RM protocol messages (CreateSequence, CreateSequenceResponse, TerminateSequence)
@@ -453,12 +343,12 @@ public class RMSoapInterceptor extends A
         String action = null == actionURI ? null : actionURI.getValue().trim();
         
         LOG.fine("action: " + action);
-   
-        if (!(RMConstants.getCreateSequenceAction().equals(action)
-            || RMConstants.getCreateSequenceResponseAction().equals(action)
-            || RMConstants.getTerminateSequenceAction().equals(action)
-            || RMConstants.getSequenceAckAction().equals(action)
-            || RMConstants.getLastMessageAction().equals(action))) {
+        RMConstants consts;
+        if (RM10Constants.ACTIONS.contains(action)) {
+            consts = RM10Constants.INSTANCE;
+        } else if (RM11Constants.ACTIONS.contains(action)) {
+            consts = RM11Constants.INSTANCE;
+        } else {
             return;
         }
         
@@ -482,26 +372,26 @@ public class RMSoapInterceptor extends A
         BindingInfo bi = rme.getEndpoint().getEndpointInfo().getBinding();
         BindingOperationInfo boi = null;
         boolean isOneway = true;
-        if (RMConstants.getCreateSequenceAction().equals(action)) {
+        if (consts.getCreateSequenceAction().equals(action)) {
             if (RMContextUtils.isServerSide(message)) {
-                boi = bi.getOperation(RMConstants.getCreateSequenceOperationName());
+                boi = bi.getOperation(consts.getCreateSequenceOperationName());
                 isOneway = false;
             } else {
-                boi = bi.getOperation(RMConstants.getCreateSequenceOnewayOperationName());
+                boi = bi.getOperation(consts.getCreateSequenceOnewayOperationName());
             }
-        } else if (RMConstants.getCreateSequenceResponseAction().equals(action)) {
+        } else if (consts.getCreateSequenceResponseAction().equals(action)) {
             if (RMContextUtils.isServerSide(message)) {
-                boi = bi.getOperation(RMConstants.getCreateSequenceResponseOnewayOperationName());
+                boi = bi.getOperation(consts.getCreateSequenceResponseOnewayOperationName());
             } else {
-                boi = bi.getOperation(RMConstants.getCreateSequenceOperationName());
+                boi = bi.getOperation(consts.getCreateSequenceOperationName());
                 isOneway = false;
             }
-        } else if (RMConstants.getSequenceAckAction().equals(action)) {
-            boi = bi.getOperation(RMConstants.getSequenceAckOperationName()); 
-        } else if (RMConstants.getTerminateSequenceAction().equals(action)) {
-            boi = bi.getOperation(RMConstants.getTerminateSequenceOperationName()); 
-        } else if (RMConstants.getLastMessageAction().equals(action)) {
-            boi = bi.getOperation(RMConstants.getLastMessageOperationName()); 
+        } else if (consts.getSequenceAckAction().equals(action)) {
+            boi = bi.getOperation(consts.getSequenceAckOperationName()); 
+        } else if (consts.getTerminateSequenceAction().equals(action)) {
+            boi = bi.getOperation(consts.getTerminateSequenceOperationName()); 
+        } else if (consts.getCloseSequenceAction().equals(action)) {
+            boi = bi.getOperation(consts.getCloseSequenceOperationName()); 
         }
         assert boi != null;
         exchange.put(BindingOperationInfo.class, boi);
@@ -515,7 +405,7 @@ public class RMSoapInterceptor extends A
         // server originated oneway RM protocol messages.        
         // 
         
-        if (!RMConstants.getCreateSequenceResponseAction().equals(action)) {
+        if (!consts.getCreateSequenceResponseAction().equals(action)) {
             LOG.fine("Changing requestor role from " + message.get(Message.REQUESTOR_ROLE)
                      + " to false");
             Object originalRequestorRole = message.get(Message.REQUESTOR_ROLE);
@@ -526,7 +416,7 @@ public class RMSoapInterceptor extends A
         }       
         
         // replace WrappedInInterceptor with BareInInterceptor if necessary
-        // as RM protocol messages use paremeter style BARE
+        // as RM protocol messages use parameter style BARE
 
         InterceptorChain chain = message.getInterceptorChain();
         ListIterator it = chain.getIterator();            
@@ -560,11 +450,4 @@ public class RMSoapInterceptor extends A
         }
         return null;
     }
-}
-
-
-
-
-
-
-
+}
\ No newline at end of file

Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java?rev=1137112&r1=1137111&r2=1137112&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/RetransmissionQueueImpl.java Sat Jun 18 01:51:01 2011
@@ -51,9 +51,9 @@ import org.apache.cxf.transport.Conduit;
 import org.apache.cxf.transport.MessageObserver;
 import org.apache.cxf.ws.addressing.AddressingProperties;
 import org.apache.cxf.ws.addressing.AttributedURIType;
+import org.apache.cxf.ws.addressing.EndpointReferenceType;
 import org.apache.cxf.ws.policy.AssertionInfo;
 import org.apache.cxf.ws.policy.builder.jaxb.JaxbAssertion;
-import org.apache.cxf.ws.rm.Identifier;
 import org.apache.cxf.ws.rm.RMContextUtils;
 import org.apache.cxf.ws.rm.RMManager;
 import org.apache.cxf.ws.rm.RMMessageConstants;
@@ -61,11 +61,12 @@ import org.apache.cxf.ws.rm.RMProperties
 import org.apache.cxf.ws.rm.RMUtils;
 import org.apache.cxf.ws.rm.RetransmissionCallback;
 import org.apache.cxf.ws.rm.RetransmissionQueue;
-import org.apache.cxf.ws.rm.SequenceType;
 import org.apache.cxf.ws.rm.SourceSequence;
 import org.apache.cxf.ws.rm.persistence.RMStore;
-import org.apache.cxf.ws.rm.policy.PolicyUtils;
-import org.apache.cxf.ws.rm.policy.RMAssertion;
+import org.apache.cxf.ws.rm.policy.RM10PolicyUtils;
+import org.apache.cxf.ws.rm.v200702.Identifier;
+import org.apache.cxf.ws.rm.v200702.SequenceType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
 
 /**
  * 
@@ -282,8 +283,7 @@ public class RetransmissionQueueImpl imp
             public synchronized Conduit selectConduit(Message message) {
                 Conduit conduit = null;
                 EndpointInfo endpointInfo = reliableEndpoint.getEndpointInfo();
-                org.apache.cxf.ws.addressing.EndpointReferenceType original = 
-                    endpointInfo.getTarget();
+                EndpointReferenceType original =  endpointInfo.getTarget();
                 try {
                     if (null != address) {
                         endpointInfo.setAddress(address);
@@ -390,7 +390,8 @@ public class RetransmissionQueueImpl imp
             message = m;
             resends = 0;
             out = m.getContent(OutputStream.class);
-            RMAssertion rma = PolicyUtils.getRMAssertion(manager.getRMAssertion(), message);
+            org.apache.cxf.ws.rmp.v200502.RMAssertion rma = 
+                RM10PolicyUtils.getRMAssertion(manager.getRMAssertion(), message);
             long baseRetransmissionInterval = 
                 rma.getBaseRetransmissionInterval().getMilliseconds().longValue();
             backoff = null != rma.getExponentialBackoff() 

Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java?rev=1137112&r1=1137111&r2=1137112&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/soap/SoapFaultFactory.java Sat Jun 18 01:51:01 2011
@@ -22,10 +22,6 @@ package org.apache.cxf.ws.rm.soap;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
-
-import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 import org.apache.cxf.binding.Binding;
@@ -33,19 +29,19 @@ import org.apache.cxf.binding.soap.Soap1
 import org.apache.cxf.binding.soap.SoapBinding;
 import org.apache.cxf.binding.soap.SoapFault;
 import org.apache.cxf.binding.soap.SoapVersion;
-import org.apache.cxf.common.i18n.Message;
 import org.apache.cxf.common.logging.LogUtils;
-import org.apache.cxf.common.util.PackageUtils;
-import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.ws.addressing.AddressingProperties;
 import org.apache.cxf.ws.rm.BindingFaultFactory;
-import org.apache.cxf.ws.rm.Identifier;
+import org.apache.cxf.ws.rm.EncoderDecoder;
 import org.apache.cxf.ws.rm.RMConstants;
-import org.apache.cxf.ws.rm.SequenceAcknowledgement;
+import org.apache.cxf.ws.rm.RMContextUtils;
+import org.apache.cxf.ws.rm.RMProperties;
 import org.apache.cxf.ws.rm.SequenceFault;
-import org.apache.cxf.ws.rm.SequenceType;
-
-
+import org.apache.cxf.ws.rm.VersionTransformer;
+import org.apache.cxf.ws.rm.v200702.Identifier;
+import org.apache.cxf.ws.rm.v200702.SequenceAcknowledgement;
 
 /**
  * 
@@ -53,8 +49,6 @@ import org.apache.cxf.ws.rm.SequenceType
 public class SoapFaultFactory implements BindingFaultFactory {
 
     private static final Logger LOG = LogUtils.getL7dLogger(SoapFaultFactory.class); 
-    private static final String WS_RM_PACKAGE = 
-        PackageUtils.getPackageName(SequenceType.class);
     
     private SoapVersion version;
     
@@ -62,14 +56,14 @@ public class SoapFaultFactory implements
         version = ((SoapBinding)binding).getSoapVersion();
     }
     
-    public Fault createFault(SequenceFault sf) {
+    public Fault createFault(SequenceFault sf, Message msg) {
         Fault f = null;
         if (version == Soap11.getInstance()) {
             f = createSoap11Fault(sf);
             // so we can encode the SequenceFault as header   
             f.initCause(sf);
         } else {
-            f = createSoap12Fault(sf);
+            f = createSoap12Fault(sf, msg);
         }
         return f;
     }
@@ -81,7 +75,7 @@ public class SoapFaultFactory implements
         return fault;
     }
     
-    Fault createSoap12Fault(SequenceFault sf) {
+    Fault createSoap12Fault(SequenceFault sf, Message msg) {
         SoapFault fault = (SoapFault)createSoap11Fault(sf);
         Object detail = sf.getDetail();
         if (null == detail) {
@@ -89,7 +83,11 @@ public class SoapFaultFactory implements
         }
 
         try {
-            setDetail(fault, detail);
+            RMProperties rmps = RMContextUtils.retrieveRMProperties(msg, false);
+            AddressingProperties maps = RMContextUtils.retrieveMAPs(msg, false, false);
+            EncoderDecoder codec = VersionTransformer
+                .getEncoderDecoder(rmps.getNamespaceURI(), maps.getNamespaceURI());
+            setDetail(fault, detail, codec);
         } catch (Exception ex) {
             LogUtils.log(LOG, Level.SEVERE, "MARSHAL_FAULT_DETAIL_EXC", ex); 
             ex.printStackTrace();
@@ -97,32 +95,23 @@ public class SoapFaultFactory implements
         return fault;
     }
     
-    void setDetail(SoapFault fault, Object detail) throws Exception {
-        Document doc = DOMUtils.createDocument();
-        Element elem = null;
-        
-        JAXBContext ctx = JAXBContext.newInstance(
-            WS_RM_PACKAGE,
-            SequenceAcknowledgement.class.getClassLoader());
-        Marshaller m = ctx.createMarshaller();
-        if (RMConstants.getInvalidAcknowledgmentFaultCode().equals(fault.getSubCode())) {
-            SequenceAcknowledgement ack = (SequenceAcknowledgement)detail;
-            m.marshal(ack, doc);
-        } else if (!RMConstants.getCreateSequenceRefusedFaultCode().equals(fault.getSubCode())) {
-            Identifier id = (Identifier)detail;  
-            m.marshal(id, doc);            
+    void setDetail(SoapFault fault, Object detail, EncoderDecoder codec) throws Exception {
+        String name = fault.getSubCode().getLocalPart();
+        Element element = null;
+        if (RMConstants.INVALID_ACKNOWLEDGMENT_FAULT_CODE.equals(name)) {
+            element = codec.encodeSequenceAcknowledgement((SequenceAcknowledgement)detail);
+        } else if (!RMConstants.CREATE_SEQUENCE_REFUSED_FAULT_CODE.equals(name)
+            && !RMConstants.WSRM_REQUIRED_FAULT_CODE.equals(name)) {
+            element = codec.encodeIdentifier((Identifier)detail);  
         }
-        
-        elem =  (Element)doc.getFirstChild();
-        fault.setDetail(elem);
+        fault.setDetail(element);
     }
     
     public String toString(Fault f) {
         SoapFault sf = (SoapFault)f;
-        Message msg = new Message("SEQ_FAULT_MSG", LOG, 
-            new Object[] {sf.getReason(), sf.getFaultCode(), sf.getSubCode()});
+        org.apache.cxf.common.i18n.Message msg
+            = new org.apache.cxf.common.i18n.Message("SEQ_FAULT_MSG", LOG, 
+                new Object[] {sf.getReason(), sf.getFaultCode(), sf.getSubCode()});
         return msg.toString();
     }
-        
-
-}
+}
\ No newline at end of file

Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMFeatureBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMFeatureBeanDefinitionParser.java?rev=1137112&r1=1137111&r2=1137112&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMFeatureBeanDefinitionParser.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMFeatureBeanDefinitionParser.java Sat Jun 18 01:51:01 2011
@@ -24,7 +24,6 @@ import org.w3c.dom.Element;
 
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
 import org.apache.cxf.ws.rm.feature.RMFeature;
-import org.apache.cxf.ws.rm.policy.RMAssertion;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 
@@ -44,7 +43,11 @@ public class RMFeatureBeanDefinitionPars
         mapElementToJaxbProperty(element, bean, 
                 new QName("http://schemas.xmlsoap.org/ws/2005/02/rm/policy", "RMAssertion"), 
                 "RMAssertion",
-                RMAssertion.class);
+                org.apache.cxf.ws.rmp.v200502.RMAssertion.class);
+        mapElementToJaxbProperty(element, bean, 
+                new QName("http://docs.oasis-open.org/ws-rx/wsrmp/200702", "RMAssertion"), 
+                "RMAssertion",
+                org.apache.cxf.ws.rmp.v200702.RMAssertion.class);
         
         super.parseChildElements(element, ctx, bean);                
         ctx.getDelegate().parsePropertyElements(element, bean.getBeanDefinition());
@@ -54,6 +57,8 @@ public class RMFeatureBeanDefinitionPars
     protected void mapElement(ParserContext ctx, BeanDefinitionBuilder bean, Element e, String name) {
         if ("store".equals(name)) {            
             setFirstChildAsProperty(e, ctx, bean, name);
+        } else if ("addressingNamespace".equals(name)) {
+            bean.addPropertyValue("addressingNamespace", e.getTextContent());
         }
     }
 

Modified: cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java?rev=1137112&r1=1137111&r2=1137112&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java (original)
+++ cxf/trunk/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/spring/RMManagerBeanDefinitionParser.java Sat Jun 18 01:51:01 2011
@@ -18,7 +18,6 @@
  */
 package org.apache.cxf.ws.rm.spring;
 
-
 import javax.xml.namespace.QName;
 
 import org.w3c.dom.Element;
@@ -26,7 +25,6 @@ import org.w3c.dom.Element;
 import org.apache.cxf.configuration.spring.AbstractBeanDefinitionParser;
 import org.apache.cxf.configuration.spring.BusWiringType;
 import org.apache.cxf.ws.rm.RMManager;
-import org.apache.cxf.ws.rm.policy.RMAssertion;
 import org.springframework.beans.factory.support.BeanDefinitionBuilder;
 import org.springframework.beans.factory.xml.ParserContext;
 
@@ -46,7 +44,11 @@ public class RMManagerBeanDefinitionPars
         mapElementToJaxbProperty(element, bean, 
                 new QName("http://schemas.xmlsoap.org/ws/2005/02/rm/policy", "RMAssertion"), 
                 "RMAssertion",
-                RMAssertion.class);
+                org.apache.cxf.ws.rmp.v200502.RMAssertion.class);
+        mapElementToJaxbProperty(element, bean, 
+                new QName("http://docs.oasis-open.org/ws-rx/wsrmp/200702", "RMAssertion"), 
+                "RMAssertion",
+                org.apache.cxf.ws.rmp.v200702.RMAssertion.class);
         
         ctx.getDelegate().parsePropertyElements(element, bean.getBeanDefinition());
         
@@ -64,6 +66,8 @@ public class RMManagerBeanDefinitionPars
     protected void mapElement(ParserContext ctx, BeanDefinitionBuilder bean, Element e, String name) {
         if ("store".equals(name)) {  
             setFirstChildAsProperty(e, ctx, bean, name);
+        } else if ("addressingNamespace".equals(name)) {
+            bean.addPropertyValue("addressingNamespace", e.getTextContent());
         }
     }
 

Modified: cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager-types.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager-types.xsd?rev=1137112&r1=1137111&r2=1137112&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager-types.xsd (original)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager-types.xsd Sat Jun 18 01:51:01 2011
@@ -33,7 +33,7 @@
       </xs:documentation>
     </xs:annotation>
 
-    <xs:import namespace="http://schemas.xmlsoap.org/ws/2005/02/rm/policy" schemaLocation="http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd"/>
+    <xs:import namespace="http://schemas.xmlsoap.org/ws/2005/02/rm/policy" schemaLocation="wsrm-policy.xsd"/>
 
     <xs:complexType name="SourcePolicyType">
         <xs:annotation>
@@ -204,11 +204,27 @@
             </xs:element>
         </xs:sequence>
     </xs:complexType>
+    
+<!--    <xs:simpleType name="RM10AddressingNamespaceType">
+      <xs:annotation>
+        <xs:documentation>
+            The WS-Addressing namespace to be used for WS-ReliableMessaging 1.0.
+            For the client, this determines the addressing namespace used when sending
+            requests to the server. Both client and server will accept either namespace
+            in incoming messages.
+        </xs:documentation>          
+      </xs:annotation>
+       <xs:restriction base="xs:anyURI">
+       	<xs:enumeration value="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
+       	<xs:enumeration value="http://www.w3.org/2005/08/addressing"/>
+       </xs:restriction>
+    </xs:simpleType>  -->
 
  
     <xs:element name="deliveryAssurance" type="tns:DeliveryAssuranceType"/>
     <xs:element name="sourcePolicy" type="tns:SourcePolicyType"/>
     <xs:element name="destinationPolicy" type="tns:DestinationPolicyType"/>
+<!--    <xs:element name="rm10AddressingNamespace" type="tns:RM10AddressingNamespaceType"/> -->
 
     <!--
     <xs:complexType name="RMManagerConfigBean">

Modified: cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager.xsd?rev=1137112&r1=1137111&r2=1137112&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager.xsd (original)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-manager.xsd Sat Jun 18 01:51:01 2011
@@ -33,10 +33,10 @@
     </xs:documentation>
   </xs:annotation>
 
-  <xs:include schemaLocation="http://cxf.apache.org/schemas/configuration/wsrm-manager-types.xsd"/>
+  <xs:include schemaLocation="wsrm-manager-types.xsd"/>
   <xs:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
   <xs:import namespace="http://cxf.apache.org/configuration/beans" schemaLocation="http://cxf.apache.org/schemas/configuration/cxf-beans.xsd"/>
-  <xs:import namespace="http://schemas.xmlsoap.org/ws/2005/02/rm/policy" schemaLocation="http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd"/>
+  <xs:import namespace="http://schemas.xmlsoap.org/ws/2005/02/rm/policy" schemaLocation="wsrm-policy.xsd"/>
 
   <xs:element name="reliableMessaging">
     <xs:annotation>
@@ -98,6 +98,16 @@
           </xs:documentation>          
         </xs:annotation>
       </xs:element>
+<!--      <xs:element name="rm10AddressingNamespace" minOccurs="0" type="tns:rm10AddressingNamespace">
+        <xs:annotation>
+          <xs:documentation>
+              The WS-Addressing namespace to be used for WS-ReliableMessaging 1.0.
+              For the client, this determines the addressing namespace used when sending
+              requests to the server. Both client and server will accept either namespace
+              in incoming messages.
+          </xs:documentation>          
+        </xs:annotation>
+      </xs:element> -->
       <xs:element name="store" type="xs:anyType" minOccurs="0">
         <xs:annotation>
           <xs:documentation>

Modified: cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-policy.xjb
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-policy.xjb?rev=1137112&r1=1137111&r2=1137112&view=diff
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-policy.xjb (original)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrm-policy.xjb Sat Jun 18 01:51:01 2011
@@ -22,13 +22,13 @@
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
   jaxb:extensionBindingPrefixes="xjc">
-    <jaxb:bindings schemaLocation="http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd" node="/xs:schema">
+    <jaxb:bindings schemaLocation="wsrm-policy.xsd" node="/xs:schema">
         <jaxb:schemaBindings>
-            <jaxb:package name="org.apache.cxf.ws.rm.policy"/>
+            <jaxb:package name="org.apache.cxf.ws.rmp.v200502"/>
         </jaxb:schemaBindings>
         <jaxb:globalBindings generateIsSetMethod="true"/>
     </jaxb:bindings>
-    <jaxb:bindings schemaLocation="http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd"
+    <jaxb:bindings schemaLocation="wsrm-policy.xsd"
          node="//xs:element[@name='AcknowledgementInterval']//xs:attribute[@name='Milliseconds']">
         <jaxb:property>
             <jaxb:baseType>
@@ -36,7 +36,7 @@
             </jaxb:baseType>
         </jaxb:property>
     </jaxb:bindings>
-    <jaxb:bindings schemaLocation="http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd"
+    <jaxb:bindings schemaLocation="wsrm-policy.xsd"
          node="//xs:element[@name='BaseRetransmissionInterval']//xs:attribute[@name='Milliseconds']">
         <jaxb:property>
             <jaxb:baseType>
@@ -44,7 +44,7 @@
             </jaxb:baseType>
         </jaxb:property>
     </jaxb:bindings>
-    <jaxb:bindings schemaLocation="http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd"
+    <jaxb:bindings schemaLocation="wsrm-policy.xsd"
          node="//xs:element[@name='InactivityTimeout']//xs:attribute[@name='Milliseconds']">
         <jaxb:property>
             <jaxb:baseType>

Added: cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrmp-1.1-schema-200702.xjb
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrmp-1.1-schema-200702.xjb?rev=1137112&view=auto
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrmp-1.1-schema-200702.xjb (added)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrmp-1.1-schema-200702.xjb Sat Jun 18 01:51:01 2011
@@ -0,0 +1,32 @@
+<?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.
+-->
+<jaxb:bindings version="1.0"
+  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
+  jaxb:extensionBindingPrefixes="xjc">
+    <jaxb:bindings schemaLocation="wsrmp-1.1-schema-200702.xsd" node="/xs:schema">
+        <jaxb:schemaBindings>
+            <jaxb:package name="org.apache.cxf.ws.rmp.v200702"/>
+        </jaxb:schemaBindings>
+        <jaxb:globalBindings generateIsSetMethod="true"/>
+    </jaxb:bindings>
+
+</jaxb:bindings>

Added: cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrmp-1.1-schema-200702.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrmp-1.1-schema-200702.xsd?rev=1137112&view=auto
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrmp-1.1-schema-200702.xsd (added)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/configuration/wsrmp-1.1-schema-200702.xsd Sat Jun 18 01:51:01 2011
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright(C) OASIS(R) 1993-2007. All Rights Reserved.
+     OASIS trademark, IPR and other policies apply.  -->
+<xs:schema xmlns:tns="http://docs.oasis-open.org/ws-rx/wsrmp/200702" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://docs.oasis-open.org/ws-rx/wsrmp/200702" elementFormDefault="qualified" attributeFormDefault="unqualified">
+  <xs:element name="RMAssertion">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="SequenceSTR">
+    <xs:complexType>
+      <xs:sequence/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="SequenceTransportSecurity">
+    <xs:complexType>
+      <xs:sequence/>
+      <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="DeliveryAssurance">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ExactlyOnce">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="AtLeastOnce">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="AtMostOnce">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="InOrder">
+    <xs:complexType>
+      <xs:sequence/>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>

Added: cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0-wsa15.xjb
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0-wsa15.xjb?rev=1137112&view=auto
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0-wsa15.xjb (added)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0-wsa15.xjb Sat Jun 18 01:51:01 2011
@@ -0,0 +1,71 @@
+<?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.
+-->
+<jaxb:bindings version="1.0"
+  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
+  jaxb:extensionBindingPrefixes="xjc">
+    <jaxb:bindings schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd" node="/xs:schema">
+        <jaxb:schemaBindings>
+            <jaxb:package name="org.apache.cxf.ws.addressing"/>
+        </jaxb:schemaBindings>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0-wsa15.xsd" node="/xs:schema">
+        <jaxb:schemaBindings>
+            <jaxb:package name="org.apache.cxf.ws.rm.v200502wsa15"/>
+        </jaxb:schemaBindings>
+        <jaxb:globalBindings generateIsSetMethod="true"/>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0-wsa15.xsd" node="//xs:element[@name='Nack']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0-wsa15.xsd" node="//xs:element[@name='MessageNumber']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0-wsa15.xsd" node="//xs:element[@name='MaxMessageNumberUsed']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0-wsa15.xsd" node="//xs:attribute[@name='Upper']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0-wsa15.xsd" node="//xs:attribute[@name='Lower']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+</jaxb:bindings>

Added: cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0-wsa15.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0-wsa15.xsd?rev=1137112&view=auto
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0-wsa15.xsd (added)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0-wsa15.xsd Sat Jun 18 01:51:01 2011
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+ 
+Copyright Notice
+(c) 2002-2005 BEA Systems, IBM, Microsoft Corporation, Inc, and 
+TIBCO Software Inc.. All rights reserved.
+
+Permission to copy and display the Web Services Reliable Messaging Protocol
+Specification (the 'Specification', which includes WSDL and schema documents),
+in any medium without fee or royalty is hereby granted, provided that you
+include the following on ALL copies of the Specification that you make:
+
+1. A link or URL to the Specification at one of the Authors' websites
+2. The copyright notice as shown in the Specification.
+
+BEA Systems, IBM, Microsoft and TIBCO Software (collectively, the 'Authors')
+each agree to grant you a license, under royalty-free and otherwise reasonable,
+non-discriminatory terms and conditions, to their respective essential patent
+claims that they deem necessary to implement the Specification.
+
+THE SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS
+OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR
+TITLE; THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE;
+NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
+PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF
+THE SPECIFICATION.
+
+The name and trademarks of the Authors may NOT be used in any manner, including
+advertising or publicity pertaining to the Specification or its contents
+without specific, written prior permission. Title to copyright in the
+Specification will at all times remain with the Authors.
+
+No other rights are granted by implication, estoppel or otherwise.
+
+-->
+<xs:schema targetNamespace="http://schemas.xmlsoap.org/ws/2005/02/rm" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm" elementFormDefault="qualified" attributeFormDefault="unqualified">
+    <xs:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd"/>
+    <!-- Protocol Elements -->
+    <xs:complexType name="SequenceType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:element name="MessageNumber" type="xs:unsignedLong"/>
+            <xs:element name="LastMessage" minOccurs="0">
+                <xs:complexType>
+                    <xs:sequence/>
+                </xs:complexType>
+            </xs:element>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="Sequence" type="wsrm:SequenceType"/>
+    <xs:element name="SequenceAcknowledgement">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="wsrm:Identifier"/>
+                <xs:choice>
+                    <xs:element name="AcknowledgementRange" maxOccurs="unbounded">
+                        <xs:complexType>
+                            <xs:sequence/>
+                            <xs:attribute name="Upper" type="xs:unsignedLong" use="required"/>
+                            <xs:attribute name="Lower" type="xs:unsignedLong" use="required"/>
+                            <xs:anyAttribute namespace="##other" processContents="lax"/>
+                        </xs:complexType>
+                    </xs:element>
+                    <xs:element name="Nack" type="xs:unsignedLong" maxOccurs="unbounded"/>
+                </xs:choice>
+                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+            <xs:anyAttribute namespace="##other" processContents="lax"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:complexType name="AckRequestedType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:element name="MaxMessageNumberUsed" type="xs:unsignedLong" minOccurs="0"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="AckRequested" type="wsrm:AckRequestedType"/>
+    <xs:element name="Identifier">
+        <xs:complexType>
+            <xs:annotation>
+                <xs:documentation>
+This type is for elements whose [children] is an anyURI and can have arbitrary attributes.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:simpleContent>
+                <xs:extension base="xs:anyURI">
+                    <xs:anyAttribute namespace="##other" processContents="lax"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+    <!-- Fault Container and Codes -->
+    <xs:simpleType name="FaultCodes">
+        <xs:restriction base="xs:QName">
+            <xs:enumeration value="wsrm:UnknownSequence"/>
+            <xs:enumeration value="wsrm:SequenceTerminated"/>
+            <xs:enumeration value="wsrm:InvalidAcknowledgement"/>
+            <xs:enumeration value="wsrm:MessageNumberRollover"/>
+            <xs:enumeration value="wsrm:CreateSequenceRefused"/>
+            <xs:enumeration value="wsrm:LastMessageNumberExceeded"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:complexType name="SequenceFaultType">
+        <xs:sequence>
+            <xs:element name="FaultCode" type="xs:QName"/>
+            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="SequenceFault" type="wsrm:SequenceFaultType"/>
+    <xs:element name="CreateSequence" type="wsrm:CreateSequenceType"/>
+    <xs:element name="CreateSequenceResponse" type="wsrm:CreateSequenceResponseType"/>
+    <xs:element name="TerminateSequence" type="wsrm:TerminateSequenceType"/>
+    <xs:complexType name="CreateSequenceType">
+        <xs:sequence>
+            <xs:element ref="wsrm:AcksTo"/>
+            <xs:element ref="wsrm:Expires" minOccurs="0"/>
+            <xs:element name="Offer" type="wsrm:OfferType" minOccurs="0"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+It is the authors intent that this extensibility be used to transfer a Security Token Reference as defined in WS-Security.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:any>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:complexType name="CreateSequenceResponseType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:element ref="wsrm:Expires" minOccurs="0"/>
+            <xs:element name="Accept" type="wsrm:AcceptType" minOccurs="0"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:complexType name="TerminateSequenceType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="AcksTo" type="wsa:EndpointReferenceType"/>
+    <xs:complexType name="OfferType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:element ref="wsrm:Expires" minOccurs="0"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:complexType name="AcceptType">
+        <xs:sequence>
+            <xs:element ref="wsrm:AcksTo"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="Expires">
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:duration">
+                    <xs:anyAttribute namespace="##other" processContents="lax"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>
\ No newline at end of file

Added: cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0.xjb
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0.xjb?rev=1137112&view=auto
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0.xjb (added)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0.xjb Sat Jun 18 01:51:01 2011
@@ -0,0 +1,71 @@
+<?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.
+-->
+<jaxb:bindings version="1.0"
+  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
+  jaxb:extensionBindingPrefixes="xjc">
+    <jaxb:bindings schemaLocation="http://schemas.xmlsoap.org/ws/2004/08/addressing" node="/xs:schema">
+        <jaxb:schemaBindings>
+            <jaxb:package name="org.apache.cxf.ws.addressing.v200408"/>
+        </jaxb:schemaBindings>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0.xsd" node="/xs:schema">
+        <jaxb:schemaBindings>
+            <jaxb:package name="org.apache.cxf.ws.rm.v200502"/>
+        </jaxb:schemaBindings>
+        <jaxb:globalBindings generateIsSetMethod="true"/>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0.xsd" node="//xs:element[@name='Nack']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0.xsd" node="//xs:element[@name='MessageNumber']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0.xsd" node="//xs:element[@name='MaxMessageNumberUsed']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0.xsd" node="//xs:attribute[@name='Upper']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.0.xsd" node="//xs:attribute[@name='Lower']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+</jaxb:bindings>

Added: cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0.xsd?rev=1137112&view=auto
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0.xsd (added)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.0.xsd Sat Jun 18 01:51:01 2011
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+ 
+Copyright Notice
+(c) 2002-2005 BEA Systems, IBM, Microsoft Corporation, Inc, and 
+TIBCO Software Inc.. All rights reserved.
+
+Permission to copy and display the Web Services Reliable Messaging Protocol
+Specification (the 'Specification', which includes WSDL and schema documents),
+in any medium without fee or royalty is hereby granted, provided that you
+include the following on ALL copies of the Specification that you make:
+
+1. A link or URL to the Specification at one of the Authors' websites
+2. The copyright notice as shown in the Specification.
+
+BEA Systems, IBM, Microsoft and TIBCO Software (collectively, the 'Authors')
+each agree to grant you a license, under royalty-free and otherwise reasonable,
+non-discriminatory terms and conditions, to their respective essential patent
+claims that they deem necessary to implement the Specification.
+
+THE SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO REPRESENTATIONS
+OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR
+TITLE; THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE;
+NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
+PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+
+THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF
+THE SPECIFICATION.
+
+The name and trademarks of the Authors may NOT be used in any manner, including
+advertising or publicity pertaining to the Specification or its contents
+without specific, written prior permission. Title to copyright in the
+Specification will at all times remain with the Authors.
+
+No other rights are granted by implication, estoppel or otherwise.
+
+-->
+<xs:schema targetNamespace="http://schemas.xmlsoap.org/ws/2005/02/rm" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsrm="http://schemas.xmlsoap.org/ws/2005/02/rm" elementFormDefault="qualified" attributeFormDefault="unqualified">
+    <xs:import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" schemaLocation="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
+    <!-- Protocol Elements -->
+    <xs:complexType name="SequenceType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:element name="MessageNumber" type="xs:unsignedLong"/>
+            <xs:element name="LastMessage" minOccurs="0">
+                <xs:complexType>
+                    <xs:sequence/>
+                </xs:complexType>
+            </xs:element>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="Sequence" type="wsrm:SequenceType"/>
+    <xs:element name="SequenceAcknowledgement">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="wsrm:Identifier"/>
+                <xs:choice>
+                    <xs:element name="AcknowledgementRange" maxOccurs="unbounded">
+                        <xs:complexType>
+                            <xs:sequence/>
+                            <xs:attribute name="Upper" type="xs:unsignedLong" use="required"/>
+                            <xs:attribute name="Lower" type="xs:unsignedLong" use="required"/>
+                            <xs:anyAttribute namespace="##other" processContents="lax"/>
+                        </xs:complexType>
+                    </xs:element>
+                    <xs:element name="Nack" type="xs:unsignedLong" maxOccurs="unbounded"/>
+                </xs:choice>
+                <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+            <xs:anyAttribute namespace="##other" processContents="lax"/>
+        </xs:complexType>
+    </xs:element>
+    <xs:complexType name="AckRequestedType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:element name="MaxMessageNumberUsed" type="xs:unsignedLong" minOccurs="0"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="AckRequested" type="wsrm:AckRequestedType"/>
+    <xs:element name="Identifier">
+        <xs:complexType>
+            <xs:annotation>
+                <xs:documentation>
+This type is for elements whose [children] is an anyURI and can have arbitrary attributes.
+                </xs:documentation>
+            </xs:annotation>
+            <xs:simpleContent>
+                <xs:extension base="xs:anyURI">
+                    <xs:anyAttribute namespace="##other" processContents="lax"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+    <!-- Fault Container and Codes -->
+    <xs:simpleType name="FaultCodes">
+        <xs:restriction base="xs:QName">
+            <xs:enumeration value="wsrm:UnknownSequence"/>
+            <xs:enumeration value="wsrm:SequenceTerminated"/>
+            <xs:enumeration value="wsrm:InvalidAcknowledgement"/>
+            <xs:enumeration value="wsrm:MessageNumberRollover"/>
+            <xs:enumeration value="wsrm:CreateSequenceRefused"/>
+            <xs:enumeration value="wsrm:LastMessageNumberExceeded"/>
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:complexType name="SequenceFaultType">
+        <xs:sequence>
+            <xs:element name="FaultCode" type="xs:QName"/>
+            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##any" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="SequenceFault" type="wsrm:SequenceFaultType"/>
+    <xs:element name="CreateSequence" type="wsrm:CreateSequenceType"/>
+    <xs:element name="CreateSequenceResponse" type="wsrm:CreateSequenceResponseType"/>
+    <xs:element name="TerminateSequence" type="wsrm:TerminateSequenceType"/>
+    <xs:complexType name="CreateSequenceType">
+        <xs:sequence>
+            <xs:element ref="wsrm:AcksTo"/>
+            <xs:element ref="wsrm:Expires" minOccurs="0"/>
+            <xs:element name="Offer" type="wsrm:OfferType" minOccurs="0"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+It is the authors intent that this extensibility be used to transfer a Security Token Reference as defined in WS-Security.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:any>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:complexType name="CreateSequenceResponseType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:element ref="wsrm:Expires" minOccurs="0"/>
+            <xs:element name="Accept" type="wsrm:AcceptType" minOccurs="0"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:complexType name="TerminateSequenceType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="AcksTo" type="wsa:EndpointReferenceType"/>
+    <xs:complexType name="OfferType">
+        <xs:sequence>
+            <xs:element ref="wsrm:Identifier"/>
+            <xs:element ref="wsrm:Expires" minOccurs="0"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:complexType name="AcceptType">
+        <xs:sequence>
+            <xs:element ref="wsrm:AcksTo"/>
+            <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+        </xs:sequence>
+        <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+    <xs:element name="Expires">
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:duration">
+                    <xs:anyAttribute namespace="##other" processContents="lax"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>
\ No newline at end of file

Added: cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.1.xjb
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.1.xjb?rev=1137112&view=auto
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.1.xjb (added)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.1.xjb Sat Jun 18 01:51:01 2011
@@ -0,0 +1,78 @@
+<?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.
+-->
+<jaxb:bindings version="1.0"
+  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
+  jaxb:extensionBindingPrefixes="xjc">
+    <jaxb:bindings schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd" node="/xs:schema">
+        <jaxb:schemaBindings>
+            <jaxb:package name="org.apache.cxf.ws.addressing"/>
+        </jaxb:schemaBindings>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.1.xsd" node="/xs:schema">
+        <jaxb:schemaBindings>
+            <jaxb:package name="org.apache.cxf.ws.rm.v200702"/>
+        </jaxb:schemaBindings>
+        <jaxb:globalBindings generateIsSetMethod="true"/>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.1.xsd" node="//xs:element[@name='Nack']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.1.xsd" node="//xs:element[@name='MessageNumber']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.1.xsd" node="//xs:attribute[@name='Upper']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.1.xsd" node="//xs:attribute[@name='Lower']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.1.xsd" node="//xs:complexType[@name='CloseSequenceType']//xs:element[@name='LastMsgNumber']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+    <jaxb:bindings schemaLocation="wsrm-1.1.xsd" node="//xs:complexType[@name='TerminateSequenceType']//xs:element[@name='LastMsgNumber']">
+        <jaxb:property>
+            <jaxb:baseType>
+                <jaxb:javaType name="java.lang.Long"/>
+            </jaxb:baseType>
+        </jaxb:property>
+    </jaxb:bindings>
+</jaxb:bindings>

Added: cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.1.xsd
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.1.xsd?rev=1137112&view=auto
==============================================================================
--- cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.1.xsd (added)
+++ cxf/trunk/rt/ws/rm/src/main/resources/schemas/wsdl/wsrm-1.1.xsd Sat Jun 18 01:51:01 2011
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright(C) OASIS(R) 1993-2007. All Rights Reserved.
+     OASIS trademark, IPR and other policies apply.  -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsrm="http://docs.oasis-open.org/ws-rx/wsrm/200702" targetNamespace="http://docs.oasis-open.org/ws-rx/wsrm/200702" elementFormDefault="qualified" attributeFormDefault="unqualified">
+  <xs:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="http://www.w3.org/2006/03/addressing/ws-addr.xsd"/>
+  <!-- Protocol Elements -->
+  <xs:complexType name="SequenceType">
+    <xs:sequence>
+      <xs:element ref="wsrm:Identifier"/>
+      <xs:element name="MessageNumber" type="wsrm:MessageNumberType"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:element name="Sequence" type="wsrm:SequenceType"/>
+  <xs:element name="SequenceAcknowledgement">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="wsrm:Identifier"/>
+        <xs:choice>
+          <xs:sequence>
+            <xs:choice>
+              <xs:element name="AcknowledgementRange" maxOccurs="unbounded">
+                <xs:complexType>
+                  <xs:sequence/>
+                  <xs:attribute name="Upper" type="xs:unsignedLong" use="required"/>
+                  <xs:attribute name="Lower" type="xs:unsignedLong" use="required"/>
+                  <xs:anyAttribute namespace="##other" processContents="lax"/>
+                </xs:complexType>
+              </xs:element>
+              <xs:element name="None">
+                <xs:complexType>
+                  <xs:sequence/>
+                </xs:complexType>
+              </xs:element>
+            </xs:choice>
+            <xs:element name="Final" minOccurs="0">
+              <xs:complexType>
+                <xs:sequence/>
+              </xs:complexType>
+            </xs:element>
+          </xs:sequence>
+          <xs:element name="Nack" type="xs:unsignedLong" maxOccurs="unbounded"/>
+        </xs:choice>
+        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+      </xs:sequence>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:complexType name="AckRequestedType">
+    <xs:sequence>
+      <xs:element ref="wsrm:Identifier"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:element name="AckRequested" type="wsrm:AckRequestedType"/>
+  <xs:element name="Identifier">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:documentation>
+          This type is for elements whose [children] is an anyURI and can have arbitrary attributes.
+        </xs:documentation>
+      </xs:annotation>
+      <xs:simpleContent>
+        <xs:extension base="xs:anyURI">
+          <xs:anyAttribute namespace="##other" processContents="lax"/>
+        </xs:extension>
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="Address">
+    <xs:complexType>
+      <xs:simpleContent>
+        <xs:extension base="xs:anyURI">
+          <xs:anyAttribute namespace="##other" processContents="lax"/>
+        </xs:extension>
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:simpleType name="MessageNumberType">
+    <xs:restriction base="xs:unsignedLong">
+      <xs:minInclusive value="1"/>
+      <xs:maxInclusive value="9223372036854775807"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <!-- Fault Container and Codes -->
+  <xs:simpleType name="FaultCodes">
+    <xs:restriction base="xs:QName">
+      <xs:enumeration value="wsrm:SequenceTerminated"/>
+      <xs:enumeration value="wsrm:UnknownSequence"/>
+      <xs:enumeration value="wsrm:InvalidAcknowledgement"/>
+      <xs:enumeration value="wsrm:MessageNumberRollover"/>
+      <xs:enumeration value="wsrm:CreateSequenceRefused"/>
+      <xs:enumeration value="wsrm:SequenceClosed"/>
+      <xs:enumeration value="wsrm:WSRMRequired"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:complexType name="SequenceFaultType">
+    <xs:sequence>
+      <xs:element name="FaultCode" type="wsrm:FaultCodes"/>
+      <xs:element name="Detail" type="wsrm:DetailType" minOccurs="0"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="DetailType">
+    <xs:sequence>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:element name="SequenceFault" type="wsrm:SequenceFaultType"/>
+  <xs:element name="CreateSequence" type="wsrm:CreateSequenceType"/>
+  <xs:element name="CreateSequenceResponse" type="wsrm:CreateSequenceResponseType"/>
+  <xs:element name="CloseSequence" type="wsrm:CloseSequenceType"/>
+  <xs:element name="CloseSequenceResponse" type="wsrm:CloseSequenceResponseType"/>
+  <xs:element name="TerminateSequence" type="wsrm:TerminateSequenceType"/>
+  <xs:element name="TerminateSequenceResponse" type="wsrm:TerminateSequenceResponseType"/>
+  <xs:complexType name="CreateSequenceType">
+    <xs:sequence>
+      <xs:element ref="wsrm:AcksTo"/>
+      <xs:element ref="wsrm:Expires" minOccurs="0"/>
+      <xs:element name="Offer" type="wsrm:OfferType" minOccurs="0"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>
+            It is the authors intent that this extensibility be used to transfer a Security Token Reference as defined in WS-Security.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:any>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="CreateSequenceResponseType">
+    <xs:sequence>
+      <xs:element ref="wsrm:Identifier"/>
+      <xs:element ref="wsrm:Expires" minOccurs="0"/>
+      <xs:element name="IncompleteSequenceBehavior" type="wsrm:IncompleteSequenceBehaviorType" minOccurs="0"/>
+      <xs:element name="Accept" type="wsrm:AcceptType" minOccurs="0"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="CloseSequenceType">
+    <xs:sequence>
+      <xs:element ref="wsrm:Identifier"/>
+      <xs:element name="LastMsgNumber" type="wsrm:MessageNumberType" minOccurs="0"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="CloseSequenceResponseType">
+    <xs:sequence>
+      <xs:element ref="wsrm:Identifier"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="TerminateSequenceType">
+    <xs:sequence>
+      <xs:element ref="wsrm:Identifier"/>
+      <xs:element name="LastMsgNumber" type="wsrm:MessageNumberType" minOccurs="0"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="TerminateSequenceResponseType">
+    <xs:sequence>
+      <xs:element ref="wsrm:Identifier"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:element name="AcksTo" type="wsa:EndpointReferenceType"/>
+  <xs:complexType name="OfferType">
+    <xs:sequence>
+      <xs:element ref="wsrm:Identifier"/>
+      <xs:element name="Endpoint" type="wsa:EndpointReferenceType"/>
+      <xs:element ref="wsrm:Expires" minOccurs="0"/>
+      <xs:element name="IncompleteSequenceBehavior" type="wsrm:IncompleteSequenceBehaviorType" minOccurs="0"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:complexType name="AcceptType">
+    <xs:sequence>
+      <xs:element ref="wsrm:AcksTo"/>
+      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:anyAttribute namespace="##other" processContents="lax"/>
+  </xs:complexType>
+  <xs:element name="Expires">
+    <xs:complexType>
+      <xs:simpleContent>
+        <xs:extension base="xs:duration">
+          <xs:anyAttribute namespace="##other" processContents="lax"/>
+        </xs:extension>
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:simpleType name="IncompleteSequenceBehaviorType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="DiscardEntireSequence"/>
+      <xs:enumeration value="DiscardFollowingFirstGap"/>
+      <xs:enumeration value="NoDiscard"/>
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="UsesSequenceSTR">
+    <xs:complexType>
+      <xs:sequence/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="UsesSequenceSSL">
+    <xs:complexType>
+      <xs:sequence/>
+      <xs:anyAttribute namespace="##other" processContents="lax"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="UnsupportedElement">
+    <xs:simpleType>
+      <xs:restriction base="xs:QName"/>
+    </xs:simpleType>
+  </xs:element>
+</xs:schema>



Mime
View raw message