You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2009/03/06 04:28:19 UTC

svn commit: r750759 - in /cxf/trunk: api/src/main/java/org/apache/cxf/databinding/ common/ common/common/src/main/java/org/apache/cxf/staxutils/ common/wstx-msv-validation/ common/wstx-msv-validation/src/ common/wstx-msv-validation/src/main/ common/wst...

Author: bimargulies
Date: Fri Mar  6 03:28:16 2009
New Revision: 750759

URL: http://svn.apache.org/viewvc?rev=750759&view=rev
Log:
A rather large raft of changes moving in the direction of Aegis schema validation via Woodstox and msv. Not Turned On Yet!

Added:
    cxf/trunk/api/src/main/java/org/apache/cxf/databinding/BaseDataReader.java   (with props)
    cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReaderValidation2.java   (with props)
    cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxValidationManager.java   (with props)
    cxf/trunk/common/wstx-msv-validation/
    cxf/trunk/common/wstx-msv-validation/pom.xml   (with props)
    cxf/trunk/common/wstx-msv-validation/src/
    cxf/trunk/common/wstx-msv-validation/src/main/
    cxf/trunk/common/wstx-msv-validation/src/main/java/
    cxf/trunk/common/wstx-msv-validation/src/main/java/org/
    cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/
    cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/
    cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/
    cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/Stax2ValidationUtils.java   (with props)
    cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/W3CMultiSchemaFactory.java   (with props)
    cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/WoodstoxValidationImpl.java   (with props)
    cxf/trunk/common/wstx-msv-validation/src/main/resources/
    cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/
    cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/
    cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.xml   (with props)
    cxf/trunk/common/wstx-msv-validation/src/test/
    cxf/trunk/common/wstx-msv-validation/src/test/java/
    cxf/trunk/common/wstx-msv-validation/src/test/java/org/
    cxf/trunk/common/wstx-msv-validation/src/test/java/org/apache/
    cxf/trunk/common/wstx-msv-validation/src/test/java/org/apache/cxf/
    cxf/trunk/common/wstx-msv-validation/src/test/java/org/apache/cxf/wstx_msv_validation/
    cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/SchemaValidationTest.java   (with props)
    cxf/trunk/rt/databinding/aegis/src/test/resources/org/apache/cxf/aegis/integration/invalidArrayMessage.xml   (with props)
Modified:
    cxf/trunk/api/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java
    cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReader.java
    cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
    cxf/trunk/common/pom.xml
    cxf/trunk/parent/pom.xml
    cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
    cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataReader.java
    cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java

Modified: cxf/trunk/api/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/databinding/AbstractDataBinding.java Fri Mar  6 03:28:16 2009
@@ -25,6 +25,7 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.annotation.Resource;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.transform.dom.DOMSource;
@@ -33,6 +34,7 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
+import org.apache.cxf.Bus;
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.common.xmlschema.SchemaCollection;
 import org.apache.cxf.helpers.DOMUtils;
@@ -53,10 +55,24 @@
     
     
     protected int mtomThreshold;
-    
+    private Bus bus;
     private Collection<DOMSource> schemas;
     private Map<String, String> namespaceMap;
     private boolean hackAroundEmptyNamespaceIssue;
+    
+    protected Bus getBus() {
+        return bus;
+    }
+    
+    /**
+     * This call is used to set the bus. It should only be called once.
+     * @param bus
+     */
+    @Resource(name = "cxf")
+    public void setBus(Bus bus) {
+        assert this.bus == null || this.bus == bus;
+        this.bus = bus;
+    }
 
     public Collection<DOMSource> getSchemas() {
         return schemas;

Added: cxf/trunk/api/src/main/java/org/apache/cxf/databinding/BaseDataReader.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/databinding/BaseDataReader.java?rev=750759&view=auto
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/databinding/BaseDataReader.java (added)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/databinding/BaseDataReader.java Fri Mar  6 03:28:16 2009
@@ -0,0 +1,55 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.databinding;
+
+import java.util.Collection;
+
+import javax.xml.validation.Schema;
+
+import org.apache.cxf.message.Attachment;
+
+/**
+ * Non-parameterized base interface for DataReader&lt;T&gt;
+ */
+public interface BaseDataReader {
+    String FAULT = DataReader.class.getName() + "Fault";
+    String ENDPOINT = DataReader.class.getName() + "Endpoint";
+    /**
+     * Supply a schema to validate the input. Bindings silently ignore this parameter if they
+     * do not support schema validation, or the particular form of validation implied by
+     * a particular form of Schema.
+     * @param s
+     */
+    void setSchema(Schema s);
+    /**
+     * Attach a collection of attachments to a binding. This permits a binding to process the contents
+     * of one or more attachments as part of reading from this reader.
+     * @param attachments attachments.
+     */
+    void setAttachments(Collection<Attachment> attachments);
+    /**
+     * Set an arbitrary property on the reader.
+     * {@link #FAULT} and {@link #ENDPOINT} specify two common properties: the Fault object being read
+     * and the {@link org.apache.cxf.endpoint.Endpoint}.
+     * @param prop Name of the property.
+     * @param value Value of the property.
+     */
+    void setProperty(String prop, Object value);
+}

Propchange: cxf/trunk/api/src/main/java/org/apache/cxf/databinding/BaseDataReader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/api/src/main/java/org/apache/cxf/databinding/BaseDataReader.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReader.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReader.java?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReader.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReader.java Fri Mar  6 03:28:16 2009
@@ -19,12 +19,7 @@
 
 package org.apache.cxf.databinding;
 
-import java.util.Collection;
-
 import javax.xml.namespace.QName;
-import javax.xml.validation.Schema;
-
-import org.apache.cxf.message.Attachment;
 import org.apache.cxf.service.model.MessagePartInfo;
 
 /**
@@ -32,10 +27,7 @@
  * from a source of type T.
  * @param <T> The type of the source. Each data binding defines the set of source types that it supports.
  */
-public interface DataReader<T> {
-    String FAULT = DataReader.class.getName() + "Fault";
-    String ENDPOINT = DataReader.class.getName() + "Endpoint";
-
+public interface DataReader<T> extends BaseDataReader {
     /**
      * Read an object from the input.
      * @param input input source object.
@@ -64,25 +56,4 @@
      * @return item read.
      */
     Object read(QName elementQName, T input, Class type);
-    /**
-     * Supply a schema to validate the input. Bindings silently ignore this parameter if they
-     * do not support schema validation, or the particular form of validation implied by
-     * a particular form of Schema.
-     * @param s
-     */
-    void setSchema(Schema s);
-    /**
-     * Attach a collection of attachments to a binding. This permits a binding to process the contents
-     * of one or more attachments as part of reading from this reader.
-     * @param attachments attachments.
-     */
-    void setAttachments(Collection<Attachment> attachments);
-    /**
-     * Set an arbitrary property on the reader.
-     * {@link #FAULT} and {@link #ENDPOINT} specify two common properties: the Fault object being read
-     * and the {@link org.apache.cxf.endpoint.Endpoint}.
-     * @param prop Name of the property.
-     * @param value Value of the property.
-     */
-    void setProperty(String prop, Object value);
 }

Added: cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReaderValidation2.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReaderValidation2.java?rev=750759&view=auto
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReaderValidation2.java (added)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReaderValidation2.java Fri Mar  6 03:28:16 2009
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.databinding;
+
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+
+/**
+ * If a DataReader<T> implements this interface, it prefers to be supplied with schema
+ * for validation via an XmlSchemaCollection instead of via a packaged Schema object.
+ */
+public interface DataReaderValidation2 {
+    /**
+     * 
+     * @param schema
+     */
+    void setSchema(XmlSchemaCollection schema);
+
+}

Propchange: cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReaderValidation2.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/api/src/main/java/org/apache/cxf/databinding/DataReaderValidation2.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java (original)
+++ cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxUtils.java Fri Mar  6 03:28:16 2009
@@ -95,7 +95,14 @@
     
     private StaxUtils() {
     }
-    
+
+    /**
+     * CXF works with multiple STaX parsers. When we can't find any other way to work 
+     * against the different parsers, this can be used to condition code. Note: if you've got
+     * Woodstox in the class path without being the default provider, this will return
+     * the wrong answer.
+     * @return true if Woodstox is in the classpath. 
+     */
     public static boolean isWoodstox() {
         try {
             ClassLoaderUtils.loadClass("org.codehaus.stax2.XMLStreamReader2", StaxUtils.class);
@@ -104,7 +111,7 @@
         }
         return true;
     }
-
+    
     /**
      * Return a cached, namespace-aware, factory.
      * @return

Added: cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxValidationManager.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxValidationManager.java?rev=750759&view=auto
==============================================================================
--- cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxValidationManager.java (added)
+++ cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxValidationManager.java Fri Mar  6 03:28:16 2009
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.staxutils;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+
+/**
+ * This interface defines a bus service for Stax validation.
+ * Initially, this is purely with Woodstox4 and msv.
+ */
+public interface StaxValidationManager {
+    /**
+     * Install the schemas onto the reader for validation.
+     * @param reader
+     * @param schemas
+     * @throws XMLStreamException 
+     */
+    void setupValidation(XMLStreamReader reader, XmlSchemaCollection schemas) throws XMLStreamException;
+
+}

Propchange: cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxValidationManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/common/common/src/main/java/org/apache/cxf/staxutils/StaxValidationManager.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/trunk/common/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/common/pom.xml?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/common/pom.xml (original)
+++ cxf/trunk/common/pom.xml Fri Mar  6 03:28:16 2009
@@ -36,6 +36,7 @@
         <module>xsd</module>
         <module>schemas</module>
         <module>xjc</module>
+	<module>wstx-msv-validation</module>
     </modules>
 
 

Added: cxf/trunk/common/wstx-msv-validation/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/common/wstx-msv-validation/pom.xml?rev=750759&view=auto
==============================================================================
--- cxf/trunk/common/wstx-msv-validation/pom.xml (added)
+++ cxf/trunk/common/wstx-msv-validation/pom.xml Fri Mar  6 03:28:16 2009
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<!--
+    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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.cxf</groupId>
+  <artifactId>cxf-wstx-msv-validation</artifactId>
+  <packaging>jar</packaging>
+  <version>2.2-SNAPSHOT</version>
+  <name>Apache CXF Woodstox/MSV Schema Validation</name>
+  <url>http://cxf.apache.org</url>
+  <parent>
+    <groupId>org.apache.cxf</groupId>
+    <artifactId>cxf-parent</artifactId>
+    <version>2.2-SNAPSHOT</version>
+    <relativePath>../../parent/pom.xml</relativePath>
+  </parent>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.cxf</groupId>
+      <artifactId>cxf-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.cxf</groupId>
+      <artifactId>cxf-common-utilities</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-annotation_1.0_spec</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.woodstox</groupId>
+      <artifactId>woodstox-core-asl</artifactId>
+      <version>4.0.2</version>
+    </dependency>
+    <dependency>
+      <groupId>msv</groupId>
+      <artifactId>relaxngDatatype</artifactId>
+      <version>20050913</version>
+    </dependency>
+    <dependency>
+      <groupId>msv</groupId>
+      <artifactId>isorelax</artifactId>
+      <version>20050913</version>
+    </dependency>
+    <dependency>
+      <groupId>msv</groupId>
+      <artifactId>msv</artifactId>
+      <version>20050913</version>
+    </dependency>
+    <dependency>
+      <groupId>msv</groupId>
+      <artifactId>xsdlib</artifactId>
+      <version>20050913</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.ws.commons.schema</groupId>
+      <artifactId>XmlSchema</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>${stax.impl.groupId}</groupId>
+      <artifactId>${stax.impl.artifactId}</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/cxf/trunk/common/wstx-msv-validation</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/cxf/trunk/common/wstx-msv-validation</developerConnection>
+  </scm>
+</project>

Propchange: cxf/trunk/common/wstx-msv-validation/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/common/wstx-msv-validation/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/common/wstx-msv-validation/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/Stax2ValidationUtils.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/Stax2ValidationUtils.java?rev=750759&view=auto
==============================================================================
--- cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/Stax2ValidationUtils.java (added)
+++ cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/Stax2ValidationUtils.java Fri Mar  6 03:28:16 2009
@@ -0,0 +1,102 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.wstx_msv_validation;
+
+import java.io.Reader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.w3c.dom.Document;
+
+import org.xml.sax.InputSource;
+
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchemaSerializer;
+import org.apache.ws.commons.schema.XmlSchemaSerializer.XmlSchemaSerializerException;
+import org.codehaus.stax2.XMLStreamReader2;
+import org.codehaus.stax2.validation.XMLValidationSchema;
+
+/**
+ * This class touches stax2 API, so it is kept separate to allow graceful
+ * fallback.
+ */
+class Stax2ValidationUtils {
+    
+    /** {@inheritDoc}
+     * @throws XMLStreamException */
+    public void setupValidation(XMLStreamReader reader, 
+                                XmlSchemaCollection schemas) throws XMLStreamException {
+        XMLStreamReader2 reader2 = (XMLStreamReader2)reader;
+        XMLValidationSchema vs = getValidator(schemas);
+        reader2.validateAgainst(vs);
+
+
+    }
+    
+    private Reader getSchemaAsStream(DOMSource source) {
+        StringWriter writer = new StringWriter();
+        StreamResult result = new StreamResult(writer);
+        try {
+            TransformerFactory.newInstance().newTransformer().transform(source, result);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return new StringReader(writer.toString());
+    }
+
+    /**
+     * Create woodstox validator for a schema set.
+     * @param schemas
+     * @return
+     * @throws XMLStreamException
+     */
+    private XMLValidationSchema getValidator(XmlSchemaCollection schemas) throws XMLStreamException {
+        List<InputSource> sources = new ArrayList<InputSource>();
+        XmlSchemaSerializer serializer = new XmlSchemaSerializer();
+        for (XmlSchema sch : schemas.getXmlSchemas()) {
+            Document[] serialized;
+            try {
+                serialized = serializer.serializeSchema(sch, false);
+            } catch (XmlSchemaSerializerException e) {
+                throw new RuntimeException(e);
+            }
+            DOMSource domSource = new DOMSource(serialized[0]);
+            Reader schemaReader = getSchemaAsStream(domSource);
+            InputSource inputSource = new InputSource(schemaReader);
+            inputSource.setSystemId(sch.getSourceURI());
+            sources.add(inputSource);
+        }
+        
+        W3CMultiSchemaFactory factory = new W3CMultiSchemaFactory();
+        XMLValidationSchema vs;
+        vs = factory.loadSchemas(sources.toArray(new InputSource[sources.size()]));
+        return vs;
+    }
+
+}

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/Stax2ValidationUtils.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/Stax2ValidationUtils.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/W3CMultiSchemaFactory.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/W3CMultiSchemaFactory.java?rev=750759&view=auto
==============================================================================
--- cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/W3CMultiSchemaFactory.java (added)
+++ cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/W3CMultiSchemaFactory.java Fri Mar  6 03:28:16 2009
@@ -0,0 +1,98 @@
+/**
+ * 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.
+ */
+/*
+ * Code in this file derives from source code in Woodstox which 
+ * carries a ASL 2.0 license.
+ */
+
+package org.apache.cxf.wstx_msv_validation;
+
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.stream.XMLStreamException;
+
+import org.xml.sax.InputSource;
+import org.xml.sax.Locator;
+
+import com.ctc.wstx.msv.BaseSchemaFactory;
+import com.ctc.wstx.msv.W3CSchema;
+import com.sun.msv.grammar.xmlschema.XMLSchemaGrammar;
+import com.sun.msv.reader.xmlschema.MultiSchemaReader;
+import com.sun.msv.reader.xmlschema.XMLSchemaReader;
+
+import org.codehaus.stax2.validation.XMLValidationSchema;
+
+final class MyGrammarController extends com.sun.msv.reader.util.IgnoreController {
+    private String mErrorMsg;
+
+    public MyGrammarController() {
+    }
+
+    // public void warning(Locator[] locs, String errorMessage) { }
+
+    public void error(Locator[] locs, String msg, Exception nestedException) {
+        if (getMErrorMsg() == null) {
+            setMErrorMsg(msg);
+        } else {
+            setMErrorMsg(getMErrorMsg() + "; " + msg);
+        }
+    }
+
+    public void setMErrorMsg(String mErrorMsg) {
+        this.mErrorMsg = mErrorMsg;
+    }
+
+    public String getMErrorMsg() {
+        return mErrorMsg;
+    }
+}
+
+/**
+ * 
+ */
+public class W3CMultiSchemaFactory extends BaseSchemaFactory {
+    
+    private MultiSchemaReader multiSchemaReader;  
+    private SAXParserFactory parserFactory;
+    private XMLSchemaReader xmlSchemaReader;
+    private MyGrammarController ctrl = new MyGrammarController();
+
+    public W3CMultiSchemaFactory() {
+        super(XMLValidationSchema.SCHEMA_ID_RELAXNG);
+    }
+    
+    public XMLValidationSchema loadSchemas(InputSource[] sources) throws XMLStreamException {
+        parserFactory = getSaxFactory();
+        xmlSchemaReader = new XMLSchemaReader(ctrl, parserFactory);
+        multiSchemaReader = new MultiSchemaReader(xmlSchemaReader);
+        for (InputSource source : sources) {
+            multiSchemaReader.parse(source);
+        }
+        
+        XMLSchemaGrammar grammar = multiSchemaReader.getResult();
+        if (grammar == null) {
+            throw new XMLStreamException("Failed to load schemas: " + ctrl.getMErrorMsg());
+        }
+        return new W3CSchema(grammar); 
+    }
+
+    @Override
+    protected XMLValidationSchema loadSchema(InputSource src, Object sysRef) throws XMLStreamException {
+        throw new XMLStreamException("W3CMultiSchemaFactory does not support the provider API.");
+    }
+}

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/W3CMultiSchemaFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/W3CMultiSchemaFactory.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/WoodstoxValidationImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/WoodstoxValidationImpl.java?rev=750759&view=auto
==============================================================================
--- cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/WoodstoxValidationImpl.java (added)
+++ cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/WoodstoxValidationImpl.java Fri Mar  6 03:28:16 2009
@@ -0,0 +1,67 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.wstx_msv_validation;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.staxutils.StaxValidationManager;
+
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+
+/**
+ * 
+ */
+public class WoodstoxValidationImpl implements StaxValidationManager {
+    
+    private Bus bus;
+    private Stax2ValidationUtils utils;
+
+    @Resource
+    public void setBus(Bus b) {
+        bus = b;
+    }
+    
+    @PostConstruct
+    public void register() {
+        
+        try {
+            utils = new Stax2ValidationUtils();
+        } catch (Exception e) {
+            /* If the dependencies are missing ... */ 
+            return;
+        }
+        
+        if (null != bus) {
+            bus.setExtension(this, StaxValidationManager.class);
+        }
+    }
+
+
+    /** {@inheritDoc}
+     * @throws XMLStreamException */
+    public void setupValidation(XMLStreamReader reader, 
+                                XmlSchemaCollection schemas) throws XMLStreamException {
+        utils.setupValidation(reader, schemas);
+    }
+}

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/WoodstoxValidationImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/java/org/apache/cxf/wstx_msv_validation/WoodstoxValidationImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.xml?rev=750759&view=auto
==============================================================================
--- cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.xml (added)
+++ cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.xml Fri Mar  6 03:28:16 2009
@@ -0,0 +1,23 @@
+<?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.
+-->
+<extensions xmlns="http://cxf.apache.org/bus/extension">
+    <extension class="org.apache.cxf.wstx_msv_validation.WoodstoxValidationImpl"
+           interface="org.apache.cxf.staxutils.StaxValidationManager"/>
+</extensions>

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/common/wstx-msv-validation/src/main/resources/META-INF/cxf/bus-extensions.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/parent/pom.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/parent/pom.xml?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/parent/pom.xml (original)
+++ cxf/trunk/parent/pom.xml Fri Mar  6 03:28:16 2009
@@ -1064,7 +1064,6 @@
                 <stax.impl.version>4.0.2</stax.impl.version>
             </properties>
         </profile>
-
         <profile>
             <id>axis2-saaj</id>
             <properties>

Modified: cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java (original)
+++ cxf/trunk/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractInDatabindingInterceptor.java Fri Mar  6 03:28:16 2009
@@ -31,6 +31,7 @@
 
 import org.apache.cxf.common.i18n.BundleUtils;
 import org.apache.cxf.databinding.DataReader;
+import org.apache.cxf.databinding.DataReaderValidation2;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.message.Exchange;
 import org.apache.cxf.message.Message;
@@ -103,6 +104,13 @@
             //all serviceInfos have the same schemas
             Schema schema = EndpointReferenceUtils.getSchema(service.getServiceInfos().get(0));
             reader.setSchema(schema);
+            /* This might be a reader that wants to grab the schema from the
+             * service info. 
+             */
+            if (reader instanceof DataReaderValidation2) {
+                ((DataReaderValidation2)reader).setSchema(service.getServiceInfos().get(0)
+                                                          .getXmlSchemaCollection().getXmlSchemaCollection());
+            }
         }
     }
     

Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/AegisDatabinding.java Fri Mar  6 03:28:16 2009
@@ -147,7 +147,7 @@
     public <T> DataReader<T> createReader(Class<T> cls) {
         ensureInitialized();
         if (cls.equals(XMLStreamReader.class)) {
-            return (DataReader<T>)new XMLStreamDataReader(this);
+            return (DataReader<T>)new XMLStreamDataReader(this, getBus());
         } else if (cls.equals(Node.class)) {
             return (DataReader<T>)new ElementDataReader(this);
         } else {

Modified: cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataReader.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataReader.java?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataReader.java (original)
+++ cxf/trunk/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/XMLStreamDataReader.java Fri Mar  6 03:28:16 2009
@@ -24,19 +24,26 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.validation.Schema;
 
+import org.apache.cxf.Bus;
 import org.apache.cxf.aegis.AegisXMLStreamDataReader;
 import org.apache.cxf.aegis.type.Type;
 import org.apache.cxf.databinding.DataReader;
+import org.apache.cxf.databinding.DataReaderValidation2;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.message.Attachment;
 import org.apache.cxf.service.model.MessagePartInfo;
+import org.apache.cxf.staxutils.StaxValidationManager;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
 
-public class XMLStreamDataReader implements DataReader<XMLStreamReader> {
+public class XMLStreamDataReader implements DataReader<XMLStreamReader>, DataReaderValidation2 {
 
     private AegisDatabinding databinding;
     private AegisXMLStreamDataReader reader;
-
-    public XMLStreamDataReader(AegisDatabinding databinding) {
+    private Bus bus;
+    private XmlSchemaCollection schemas;
+    
+    public XMLStreamDataReader(AegisDatabinding databinding, Bus bus) {
+        this.bus = bus;
         this.databinding = databinding;
         reader = new AegisXMLStreamDataReader(databinding.getAegisContext());
     }
@@ -44,6 +51,12 @@
     public Object read(MessagePartInfo part, XMLStreamReader input) {
         Type type = databinding.getType(part);
         try {
+            if (schemas != null) {
+                StaxValidationManager mgr = bus.getExtension(StaxValidationManager.class);
+                if (mgr != null) {
+                    mgr.setupValidation(input, schemas);
+                }
+            }
             return reader.read(input, type); 
         } catch (Exception e) {
             throw new Fault(e);
@@ -74,4 +87,7 @@
         reader.setSchema(s);
     }
 
+    public void setSchema(XmlSchemaCollection validationSchemas) {
+        this.schemas = validationSchemas; 
+    }
 }

Added: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/SchemaValidationTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/SchemaValidationTest.java?rev=750759&view=auto
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/SchemaValidationTest.java (added)
+++ cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/SchemaValidationTest.java Fri Mar  6 03:28:16 2009
@@ -0,0 +1,53 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.aegis.integration;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+import org.apache.cxf.aegis.services.ArrayService;
+import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.message.Message;
+
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * 
+ */
+public class SchemaValidationTest extends AbstractAegisTest {
+
+    private ArrayService arrayService;
+
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+        setEnableJDOM(true);
+        arrayService = new ArrayService();
+        Server server = createService(ArrayService.class, 
+                                      arrayService, "Array", new QName("urn:Array", "Array"));
+        server.getEndpoint().getService().put(Message.SCHEMA_VALIDATION_ENABLED, Boolean.TRUE); 
+    }
+    
+    @Test
+    public void testInvalidArray() throws Exception {
+        invoke("Array", "/org/apache/cxf/aegis/integration/invalidArrayMessage.xml");
+    }
+}

Propchange: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/SchemaValidationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/SchemaValidationTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/trunk/rt/databinding/aegis/src/test/resources/org/apache/cxf/aegis/integration/invalidArrayMessage.xml
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/databinding/aegis/src/test/resources/org/apache/cxf/aegis/integration/invalidArrayMessage.xml?rev=750759&view=auto
==============================================================================
--- cxf/trunk/rt/databinding/aegis/src/test/resources/org/apache/cxf/aegis/integration/invalidArrayMessage.xml (added)
+++ cxf/trunk/rt/databinding/aegis/src/test/resources/org/apache/cxf/aegis/integration/invalidArrayMessage.xml Fri Mar  6 03:28:16 2009
@@ -0,0 +1,34 @@
+<?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.
+-->
+<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" 
+                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <soap-env:Body xmlns:jns0='urn:Array' >
+  <jns0:submitW3CArray>
+   <jns0:whoops/>
+   <jns0:before>before items</jns0:before>
+   <jns0:anything>
+       <jns0:anyType><walrus xmlns='uri:iam'>tusks</walrus></jns0:anyType>
+       <jns0:anyType><penguin xmlns='uri:linux'>emperor</penguin></jns0:anyType>
+       <jns0:anyType><moon xmlns='uri:planets'>blue</moon></jns0:anyType>
+    </jns0:anything>
+    <jns0:after>after items</jns0:after>
+    </jns0:submitW3CArray>
+  </soap-env:Body>
+</soap-env:Envelope>

Propchange: cxf/trunk/rt/databinding/aegis/src/test/resources/org/apache/cxf/aegis/integration/invalidArrayMessage.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/rt/databinding/aegis/src/test/resources/org/apache/cxf/aegis/integration/invalidArrayMessage.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: cxf/trunk/rt/databinding/aegis/src/test/resources/org/apache/cxf/aegis/integration/invalidArrayMessage.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java?rev=750759&r1=750758&r2=750759&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java (original)
+++ cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java Fri Mar  6 03:28:16 2009
@@ -264,7 +264,7 @@
      * Sets the bean implementing the service. If this is set a
      * <code>BeanInvoker</code> is created for the provided bean.
      *
-     * @param serviceBean an instantiated implementaiton object
+     * @param serviceBean an instantiated implementation object
      */
     public void setServiceBean(Object serviceBean) {
         this.serviceBean = serviceBean;