Just wondering where the code to turn off out schema validation is going to
land? Its gone from message mode out interceptor but the diff does not seem
to add it in anywhere.

I am without a computer so I can't check the code out to look but wanted to
make sure it was not lost-
On Aug 14, 2013 11:53 AM, <ff...@apache.org> wrote:

> Author: ffang
> Date: Wed Aug 14 01:53:02 2013
> New Revision: 1513711
>
> URL: http://svn.apache.org/r1513711
> Log:
> [CXF-5169]move the out message schemavalidate to source databinding
>
> Modified:
>
> cxf/trunk/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
>
> cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
>
> cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/ClientServerSourceTest.java
>
> cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/GreeterImpl.java
>
> Modified:
> cxf/trunk/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
> URL:
> http://svn.apache.org/viewvc/cxf/trunk/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java?rev=1513711&r1=1513710&r2=1513711&view=diff
>
> ==============================================================================
> ---
> cxf/trunk/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
> (original)
> +++
> cxf/trunk/core/src/main/java/org/apache/cxf/databinding/source/XMLStreamDataWriter.java
> Wed Aug 14 01:53:02 2013
> @@ -28,12 +28,15 @@ import javax.xml.stream.XMLStreamReader;
>  import javax.xml.stream.XMLStreamWriter;
>  import javax.xml.transform.Source;
>  import javax.xml.transform.dom.DOMSource;
> +import javax.xml.transform.stream.StreamSource;
>  import javax.xml.validation.Schema;
>
>  import org.w3c.dom.Document;
>  import org.w3c.dom.DocumentFragment;
>  import org.w3c.dom.Node;
>
> +import org.xml.sax.SAXException;
> +
>  import org.apache.cxf.common.i18n.Message;
>  import org.apache.cxf.common.logging.LogUtils;
>  import org.apache.cxf.databinding.DataWriter;
> @@ -46,6 +49,8 @@ import org.apache.cxf.staxutils.W3CDOMSt
>  public class XMLStreamDataWriter implements DataWriter<XMLStreamWriter> {
>      private static final Logger LOG =
> LogUtils.getL7dLogger(XMLStreamDataWriter.class);
>
> +    private Schema schema;
> +
>      public void write(Object obj, MessagePartInfo part, XMLStreamWriter
> output) {
>          write(obj, output);
>      }
> @@ -55,14 +60,24 @@ public class XMLStreamDataWriter impleme
>              XMLStreamReader reader = null;
>              if (obj instanceof DataSource) {
>                  DataSource ds = (DataSource)obj;
> +                if (schema != null) {
> +                    StreamSource ss = new
> StreamSource(ds.getInputStream());
> +                    schema.newValidator().validate(ss);
> +                }
>                  reader =
> StaxUtils.createXMLStreamReader(ds.getInputStream());
>                  StaxUtils.copy(reader, writer);
>                  reader.close();
>              } else if (obj instanceof Node) {
> +                if (schema != null) {
> +                    schema.newValidator().validate(new
> DOMSource((Node)obj));
> +                }
>                  Node nd = (Node)obj;
>                  writeNode(nd, writer);
>              } else {
>                  Source s = (Source) obj;
> +                if (schema != null) {
> +                    schema.newValidator().validate(s);
> +                }
>                  if (s instanceof DOMSource
>                      && ((DOMSource) s).getNode() == null) {
>                      return;
> @@ -74,6 +89,9 @@ public class XMLStreamDataWriter impleme
>                              e.getClass().getCanonicalName(),
> e.getMessage());
>          } catch (IOException e) {
>              throw new Fault(new Message("COULD_NOT_WRITE_XML_STREAM",
> LOG), e);
> +        } catch (SAXException e) {
> +            throw new Fault("COULD_NOT_WRITE_XML_STREAM_CAUSED_BY", LOG,
> e,
> +                            e.getClass().getCanonicalName(),
> e.getMessage());
>          }
>      }
>
> @@ -119,6 +137,7 @@ public class XMLStreamDataWriter impleme
>      }
>
>      public void setSchema(Schema s) {
> +        this.schema = s;
>      }
>
>      public void setAttachments(Collection<Attachment> attachments) {
>
> Modified:
> cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
> URL:
> http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java?rev=1513711&r1=1513710&r2=1513711&view=diff
>
> ==============================================================================
> ---
> cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
> (original)
> +++
> cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/MessageModeOutInterceptor.java
> Wed Aug 14 01:53:02 2013
> @@ -34,15 +34,11 @@ import javax.xml.soap.SOAPPart;
>  import javax.xml.stream.XMLStreamException;
>  import javax.xml.stream.XMLStreamWriter;
>  import javax.xml.transform.Source;
> -import javax.xml.transform.dom.DOMSource;
> -import javax.xml.validation.Schema;
>
>  import org.w3c.dom.DocumentFragment;
>  import org.w3c.dom.Node;
>
> -import org.xml.sax.SAXException;
>
> -import org.apache.cxf.annotations.SchemaValidation.SchemaValidationType;
>  import org.apache.cxf.attachment.AttachmentDeserializer;
>  import org.apache.cxf.binding.soap.Soap12;
>  import org.apache.cxf.binding.soap.SoapFault;
> @@ -53,7 +49,6 @@ import org.apache.cxf.binding.soap.saaj.
>  import org.apache.cxf.binding.soap.saaj.SAAJStreamWriter;
>  import org.apache.cxf.binding.soap.saaj.SAAJUtils;
>  import org.apache.cxf.helpers.IOUtils;
> -import org.apache.cxf.helpers.ServiceUtils;
>  import org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor;
>  import org.apache.cxf.interceptor.Fault;
>  import org.apache.cxf.interceptor.StaxOutInterceptor;
> @@ -64,13 +59,10 @@ import org.apache.cxf.message.MessageImp
>  import org.apache.cxf.message.MessageUtils;
>  import org.apache.cxf.phase.AbstractPhaseInterceptor;
>  import org.apache.cxf.phase.Phase;
> -import org.apache.cxf.service.Service;
>  import org.apache.cxf.service.model.BindingMessageInfo;
>  import org.apache.cxf.service.model.BindingOperationInfo;
> -import org.apache.cxf.service.model.ServiceModelUtil;
>  import org.apache.cxf.staxutils.StaxUtils;
>  import org.apache.cxf.staxutils.W3CDOMStreamWriter;
> -import org.apache.cxf.ws.addressing.EndpointReferenceUtils;
>
>  public class MessageModeOutInterceptor extends
> AbstractPhaseInterceptor<Message> {
>      MessageModeOutInterceptorInternal internal;
> @@ -90,7 +82,6 @@ public class MessageModeOutInterceptor e
>          this.bindingName = bname;
>      }
>      public void handleMessage(Message message) throws Fault {
> -        checkSchemaValidation(message);
>          BindingOperationInfo bop =
> message.getExchange().get(BindingOperationInfo.class);
>          if (bop != null &&
> !bindingName.equals(bop.getBinding().getName())) {
>              return;
> @@ -303,50 +294,6 @@ public class MessageModeOutInterceptor e
>          }
>      }
>
> -    private void checkSchemaValidation(Message message) {
> -
> -        if
> (ServiceUtils.isSchemaValidationEnabled(SchemaValidationType.OUT, message))
> {
> -            Service service =
> ServiceModelUtil.getService(message.getExchange());
> -            if (service == null) {
> -                return;
> -            }
> -            Schema schema =
> EndpointReferenceUtils.getSchema(service.getServiceInfos().get(0),
> -                            message.getExchange().getBus());
> -            if (schema == null) {
> -                return;
> -            }
> -            MessageContentsList list =
> (MessageContentsList)message.getContent(List.class);
> -            if (list == null || list.isEmpty()) {
> -                return;
> -            }
> -            Object o = list.get(0);
> -            SOAPMessage soapMessage = null;
> -
> -            if (o instanceof SOAPMessage) {
> -                soapMessage = (SOAPMessage)o;
> -
> -                try {
> -                    DOMSource source = new
> DOMSource(soapMessage.getSOAPBody().getFirstChild());
> -                    schema.newValidator().validate(source);
> -                } catch (SAXException e) {
> -                    throw new Fault(e);
> -                } catch (IOException e) {
> -                    throw new Fault(e);
> -                } catch (SOAPException e) {
> -                    throw new Fault(e);
> -                }
> -            } else if (o instanceof Source) {
> -                Source source = (Source)o;
> -                try {
> -                    schema.newValidator().validate(source);
> -                } catch (SAXException e) {
> -                    throw new Fault(e);
> -                } catch (IOException e) {
> -                    throw new Fault(e);
> -                }
> -            }
> -        }
> -
> -    }
> +
>
>  }
>
> Modified:
> cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/ClientServerSourceTest.java
> URL:
> http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/ClientServerSourceTest.java?rev=1513711&r1=1513710&r2=1513711&view=diff
>
> ==============================================================================
> ---
> cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/ClientServerSourceTest.java
> (original)
> +++
> cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/ClientServerSourceTest.java
> Wed Aug 14 01:53:02 2013
> @@ -87,7 +87,7 @@ public class ClientServerSourceTest exte
>          DOMSource ds = new DOMSource(doc);
>          DOMSource resp = port.sayHi(ds);
>          assertEquals("We should get the right response", "Bonjour",
> -                     DOMUtils.getContent(getElement(resp.getNode())));
> +
> DOMUtils.getContent(getElement(resp.getNode().getFirstChild().getFirstChild())));
>
>          doc = DOMUtils.newDocument();
>          Element el = doc.createElementNS("
> http://apache.org/hello_world_soap_http_source/source/types";,
>
> Modified:
> cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/GreeterImpl.java
> URL:
> http://svn.apache.org/viewvc/cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/GreeterImpl.java?rev=1513711&r1=1513710&r2=1513711&view=diff
>
> ==============================================================================
> ---
> cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/GreeterImpl.java
> (original)
> +++
> cxf/trunk/systests/databinding/src/test/java/org/apache/cxf/systest/source/GreeterImpl.java
> Wed Aug 14 01:53:02 2013
> @@ -44,9 +44,11 @@ public class GreeterImpl implements Gree
>          Document doc = DOMUtils.newDocument();
>          Element el = doc.createElementNS("
> http://apache.org/hello_world_soap_http_source/source/types";,
>              "ns1:sayHiResponse");
> -        el.appendChild(doc.createTextNode("Bonjour"));
> +        Element el2 = doc.createElementNS("
> http://apache.org/hello_world_soap_http_source/source/types";,
> +            "ns1:responseType");
> +        el2.appendChild(doc.createTextNode("Bonjour"));
> +        el.appendChild(el2);
>          doc.appendChild(el);
> -
>          return new DOMSource(doc);
>      }
>      private Element getElement(Node nd) {
>
>
>

Reply via email to