You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2016/05/26 21:46:00 UTC

[32/50] [abbrv] cxf git commit: Squash commit of ws-transfer implementation from Erich Duda (dudaerich) This closes #33

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/java/org/apache/cxf/systest/ws/transfer/validator/StudentPutResourceValidator.java
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/java/org/apache/cxf/systest/ws/transfer/validator/StudentPutResourceValidator.java b/systests/ws-transfer/src/test/java/org/apache/cxf/systest/ws/transfer/validator/StudentPutResourceValidator.java
new file mode 100644
index 0000000..c96eec5
--- /dev/null
+++ b/systests/ws-transfer/src/test/java/org/apache/cxf/systest/ws/transfer/validator/StudentPutResourceValidator.java
@@ -0,0 +1,47 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.ws.transfer.validator;
+
+import org.w3c.dom.Element;
+import org.apache.cxf.ws.transfer.Representation;
+import org.apache.cxf.ws.transfer.shared.faults.PutDenied;
+import org.apache.cxf.ws.transfer.validationtransformation.ResourceValidator;
+
+public class StudentPutResourceValidator implements ResourceValidator {
+
+    public static final String UID_NAMESPACE = "http://university.edu/student";
+    
+    public static final String UID_NAME = "uid";
+    
+    @Override
+    public boolean validate(Representation newRepresentation, Representation oldRepresentation) {
+        Element newRepresentationEl = (Element) newRepresentation.getAny();
+        Element oldRepresentationEl = (Element) oldRepresentation.getAny();
+        
+        String newUid = newRepresentationEl.getElementsByTagNameNS(UID_NAMESPACE, UID_NAME).item(0).getTextContent();
+        String oldUid = oldRepresentationEl.getElementsByTagNameNS(UID_NAMESPACE, UID_NAME).item(0).getTextContent();
+        
+        if (!newUid.equals(oldUid)) {
+            throw new PutDenied();
+        }
+        return true;
+    } 
+    
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/java/org/apache/cxf/systest/ws/transfer/validator/TeacherResourceValidator.java
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/java/org/apache/cxf/systest/ws/transfer/validator/TeacherResourceValidator.java b/systests/ws-transfer/src/test/java/org/apache/cxf/systest/ws/transfer/validator/TeacherResourceValidator.java
new file mode 100644
index 0000000..0371366
--- /dev/null
+++ b/systests/ws-transfer/src/test/java/org/apache/cxf/systest/ws/transfer/validator/TeacherResourceValidator.java
@@ -0,0 +1,51 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cxf.systest.ws.transfer.validator;
+
+import org.w3c.dom.Element;
+import org.apache.cxf.ws.transfer.Representation;
+import org.apache.cxf.ws.transfer.shared.faults.PutDenied;
+import org.apache.cxf.ws.transfer.validationtransformation.ResourceValidator;
+
+public class TeacherResourceValidator implements ResourceValidator {
+    
+    public static final String UID_NAMESPACE = "http://university.edu/teacher";
+    
+    public static final String UID_NAME = "uid";
+    
+    @Override
+    public boolean validate(Representation newRepresentation, Representation oldRepresentation) {
+        if (oldRepresentation != null) {
+            Element newRepresentationEl = (Element) newRepresentation.getAny();
+            Element oldRepresentationEl = (Element) oldRepresentation.getAny();
+
+            String newUid = newRepresentationEl.getElementsByTagNameNS(
+                UID_NAMESPACE, UID_NAME).item(0).getTextContent();
+            String oldUid = oldRepresentationEl.getElementsByTagNameNS(
+                UID_NAMESPACE, UID_NAME).item(0).getTextContent();
+
+            if (!newUid.equals(oldUid)) {
+                throw new PutDenied();
+            }
+        }
+        return true;
+    } 
+    
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/schema/studentCreate.xsd
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/schema/studentCreate.xsd b/systests/ws-transfer/src/test/resources/schema/studentCreate.xsd
new file mode 100644
index 0000000..1947c45
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/schema/studentCreate.xsd
@@ -0,0 +1,46 @@
+<?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.
+-->
+
+<xs:schema version="1.0"
+           targetNamespace="http://university.edu/student"
+           xmlns:ns="http://university.edu/student"
+           xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           elementFormDefault="qualified">
+
+    <xs:complexType name="birthDateType">
+        <xs:sequence>
+            <xs:element name="day" type="xs:integer"/>
+            <xs:element name="month" type="xs:integer"/>
+            <xs:element name="year" type="xs:integer"/>
+        </xs:sequence>
+    </xs:complexType>
+    
+    <xs:element name="student">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
+                <xs:element name="surname" type="xs:string" minOccurs="0" maxOccurs="1" />
+                <xs:element name="birthdate" type="ns:birthDateType" minOccurs="0" maxOccurs="1" />
+                <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="1" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/schema/studentPut.xsd
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/schema/studentPut.xsd b/systests/ws-transfer/src/test/resources/schema/studentPut.xsd
new file mode 100644
index 0000000..831ffce
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/schema/studentPut.xsd
@@ -0,0 +1,47 @@
+<?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.
+-->
+
+<xs:schema version="1.0"
+           targetNamespace="http://university.edu/student"
+           xmlns:ns="http://university.edu/student"
+           xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           elementFormDefault="qualified">
+
+    <xs:complexType name="birthDateType">
+        <xs:sequence>
+            <xs:element name="day" type="xs:integer"/>
+            <xs:element name="month" type="xs:integer"/>
+            <xs:element name="year" type="xs:integer"/>
+        </xs:sequence>
+    </xs:complexType>
+    
+    <xs:element name="student">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
+                <xs:element name="surname" type="xs:string" minOccurs="0" maxOccurs="1" />
+                <xs:element name="birthdate" type="ns:birthDateType" minOccurs="0" maxOccurs="1" />
+                <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="1" />
+                <xs:element name="uid" type="xs:integer" minOccurs="1" maxOccurs="1" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/schema/teacher.xsd
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/schema/teacher.xsd b/systests/ws-transfer/src/test/resources/schema/teacher.xsd
new file mode 100644
index 0000000..8dab259
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/schema/teacher.xsd
@@ -0,0 +1,47 @@
+<?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.
+-->
+
+<xs:schema version="1.0"
+           targetNamespace="http://university.edu/teacher"
+           xmlns:ns="http://university.edu/teacher"
+           xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           elementFormDefault="qualified">
+
+    <xs:complexType name="birthDateType">
+        <xs:sequence>
+            <xs:element name="day" type="xs:integer"/>
+            <xs:element name="month" type="xs:integer"/>
+            <xs:element name="year" type="xs:integer"/>
+        </xs:sequence>
+    </xs:complexType>
+    
+    <xs:element name="teacher">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1" />
+                <xs:element name="surname" type="xs:string" minOccurs="0" maxOccurs="1" />
+                <xs:element name="birthdate" type="ns:birthDateType" minOccurs="0" maxOccurs="1" />
+                <xs:element name="address" type="xs:string" minOccurs="0" maxOccurs="1" />
+                <xs:element name="uid" type="xs:integer" minOccurs="1" maxOccurs="1" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+</xs:schema>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/schema/teacherCreateBasic.xsd
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/schema/teacherCreateBasic.xsd b/systests/ws-transfer/src/test/resources/schema/teacherCreateBasic.xsd
new file mode 100644
index 0000000..db1965f
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/schema/teacherCreateBasic.xsd
@@ -0,0 +1,35 @@
+<?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.
+-->
+
+<xs:schema version="1.0"
+           targetNamespace="http://university.edu/teacher"
+           xmlns:xs="http://www.w3.org/2001/XMLSchema"
+           elementFormDefault="qualified">
+
+    <xs:element name="teacher">
+        <xs:complexType>
+            <xs:sequence>
+                <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax" />
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+    
+</xs:schema>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/createStudent.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/createStudent.xml b/systests/ws-transfer/src/test/resources/xml/createStudent.xml
new file mode 100644
index 0000000..cb021af
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/createStudent.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<student xmlns="http://university.edu/student">
+    <name>John</name>
+    <surname>Smith</surname>
+    <birthdate>
+        <day>14</day>
+        <month>3</month>
+        <year>1994</year>
+    </birthdate>
+    <address>Street 21</address>
+</student>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/createStudentPartial.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/createStudentPartial.xml b/systests/ws-transfer/src/test/resources/xml/createStudentPartial.xml
new file mode 100644
index 0000000..3c00e64
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/createStudentPartial.xml
@@ -0,0 +1,29 @@
+<?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.
+-->
+
+<student xmlns="http://university.edu/student">
+    <name>John</name>
+    <birthdate>
+        <day>14</day>
+        <month>3</month>
+        <year>1994</year>
+    </birthdate>
+</student>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/createStudentWrong.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/createStudentWrong.xml b/systests/ws-transfer/src/test/resources/xml/createStudentWrong.xml
new file mode 100644
index 0000000..957af34
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/createStudentWrong.xml
@@ -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.
+-->
+
+<student xmlns="http://university.edu/student">
+    <name>John</name>
+    <surname>Smith</surname>
+    <birthdate>
+        <day>14</day>
+        <month>3</month>
+        <year>1994</year>
+    </birthdate>
+    <address>Street 21</address>
+    <school>Standford</school>
+</student>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/createTeacher.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/createTeacher.xml b/systests/ws-transfer/src/test/resources/xml/createTeacher.xml
new file mode 100644
index 0000000..0d6e18b
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/createTeacher.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<teacher xmlns="http://university.edu/teacher">
+    <name>Bob</name>
+    <surname>Stuart</surname>
+    <birthdate>
+        <day>5</day>
+        <month>7</month>
+        <year>1971</year>
+    </birthdate>
+    <address>Street 526</address>
+</teacher>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/createTeacherPartial.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/createTeacherPartial.xml b/systests/ws-transfer/src/test/resources/xml/createTeacherPartial.xml
new file mode 100644
index 0000000..f9025b2
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/createTeacherPartial.xml
@@ -0,0 +1,25 @@
+<?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.
+-->
+
+<teacher xmlns="http://university.edu/teacher">
+    <name>Bob</name>
+    <address>Street 526</address>
+</teacher>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/createTeacherWrong.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/createTeacherWrong.xml b/systests/ws-transfer/src/test/resources/xml/createTeacherWrong.xml
new file mode 100644
index 0000000..31f86e6
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/createTeacherWrong.xml
@@ -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.
+-->
+
+<teacher xmlns="http://university.edu/teacher">
+    <name>Bob</name>
+    <surname>Stuart</surname>
+    <birthdate>
+        <day>5</day>
+        <month>7</month>
+        <year>1971</year>
+    </birthdate>
+    <address>Street 526</address>
+    <school>Standford</school>
+</teacher>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/putStudent.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/putStudent.xml b/systests/ws-transfer/src/test/resources/xml/putStudent.xml
new file mode 100644
index 0000000..2112f8c
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/putStudent.xml
@@ -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.
+-->
+
+<student xmlns="http://university.edu/student">
+    <name>John</name>
+    <surname>Smith</surname>
+    <birthdate>
+        <day>14</day>
+        <month>3</month>
+        <year>1994</year>
+    </birthdate>
+    <address>Street 12</address>
+    <uid>1</uid>
+</student>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/putTeacher.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/putTeacher.xml b/systests/ws-transfer/src/test/resources/xml/putTeacher.xml
new file mode 100644
index 0000000..dda58a8
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/putTeacher.xml
@@ -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.
+-->
+
+<teacher xmlns="http://university.edu/teacher">
+    <name>Bob</name>
+    <surname>Stuart</surname>
+    <birthdate>
+        <day>5</day>
+        <month>7</month>
+        <year>1971</year>
+    </birthdate>
+    <address>Street 526</address>
+    <uid>1</uid>
+</teacher>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xml/random.xml
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xml/random.xml b/systests/ws-transfer/src/test/resources/xml/random.xml
new file mode 100644
index 0000000..43aa6b7
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xml/random.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+
+<foo>
+	<bar/>
+</foo>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xslt/studentCreate.xsl
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xslt/studentCreate.xsl b/systests/ws-transfer/src/test/resources/xslt/studentCreate.xsl
new file mode 100644
index 0000000..e9255f9
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xslt/studentCreate.xsl
@@ -0,0 +1,110 @@
+<?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.
+-->
+
+<xsl:stylesheet xmlns="http://university.edu/student"
+                xmlns:ns="http://university.edu/student"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:uid="org.apache.cxf.systest.ws.transfer.UIDManager"
+                exclude-result-prefixes="uid"
+                version="1.0">
+    <xsl:output method="xml"/>
+
+    <xsl:template match="/">
+        <xsl:element name="student">
+            <xsl:call-template name="name"/>
+            <xsl:call-template name="surname"/>
+            <xsl:call-template name="birthdate"/>
+            <xsl:call-template name="address"/>
+            <xsl:call-template name="uid"/>
+        </xsl:element>
+    </xsl:template>
+    
+    <xsl:template name="name">
+        <xsl:choose>
+            <xsl:when test="/ns:student/ns:name">
+                <xsl:element name="name">
+                    <xsl:value-of select="/ns:student/ns:name" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="name">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="surname">
+        <xsl:choose>
+            <xsl:when test="/ns:student/ns:surname">
+                <xsl:element name="surname">
+                    <xsl:value-of select="/ns:student/ns:surname" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="surname">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="birthdate">
+        <xsl:choose>
+            <xsl:when test="/ns:student/ns:birthdate">
+                <xsl:element name="date">
+                    <xsl:element name="day">
+                        <xsl:value-of select="/ns:student/ns:birthdate/ns:day" />
+                    </xsl:element>
+                    <xsl:element name="month">
+                        <xsl:value-of select="/ns:student/ns:birthdate/ns:month" />
+                    </xsl:element>
+                    <xsl:element name="year">
+                        <xsl:value-of select="/ns:student/ns:birthdate/ns:year" />
+                    </xsl:element>
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="date">
+                    <xsl:element name="day">Unspecified</xsl:element>
+                    <xsl:element name="month">Unspecified</xsl:element>
+                    <xsl:element name="year">Unspecified</xsl:element>
+                </xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="address">
+        <xsl:choose>
+            <xsl:when test="/ns:student/ns:address">
+                <xsl:element name="address">
+                    <xsl:value-of select="/ns:student/ns:address" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="address">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="uid">
+        <xsl:element name="uid">
+            <xsl:value-of select="uid:getUID()" />
+        </xsl:element>
+    </xsl:template>
+
+</xsl:stylesheet>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xslt/studentPut.xsl
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xslt/studentPut.xsl b/systests/ws-transfer/src/test/resources/xslt/studentPut.xsl
new file mode 100644
index 0000000..2768e5e
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xslt/studentPut.xsl
@@ -0,0 +1,108 @@
+<?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.
+-->
+
+<xsl:stylesheet xmlns="http://university.edu/student"
+                xmlns:ns="http://university.edu/student"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+    <xsl:output method="xml"/>
+
+    <xsl:template match="/">
+        <xsl:element name="student">
+            <xsl:call-template name="name"/>
+            <xsl:call-template name="surname"/>
+            <xsl:call-template name="birthdate"/>
+            <xsl:call-template name="address"/>
+            <xsl:call-template name="uid"/>
+        </xsl:element>
+    </xsl:template>
+    
+    <xsl:template name="name">
+        <xsl:choose>
+            <xsl:when test="/ns:student/ns:name">
+                <xsl:element name="name">
+                    <xsl:value-of select="/ns:student/ns:name" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="name">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="surname">
+        <xsl:choose>
+            <xsl:when test="/ns:student/ns:surname">
+                <xsl:element name="surname">
+                    <xsl:value-of select="/ns:student/ns:surname" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="surname">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="birthdate">
+        <xsl:choose>
+            <xsl:when test="/ns:student/ns:birthdate">
+                <xsl:element name="date">
+                    <xsl:element name="day">
+                        <xsl:value-of select="/ns:student/ns:birthdate/ns:day" />
+                    </xsl:element>
+                    <xsl:element name="month">
+                        <xsl:value-of select="/ns:student/ns:birthdate/ns:month" />
+                    </xsl:element>
+                    <xsl:element name="year">
+                        <xsl:value-of select="/ns:student/ns:birthdate/ns:year" />
+                    </xsl:element>
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="date">
+                    <xsl:element name="day">Unspecified</xsl:element>
+                    <xsl:element name="month">Unspecified</xsl:element>
+                    <xsl:element name="year">Unspecified</xsl:element>
+                </xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="address">
+        <xsl:choose>
+            <xsl:when test="/ns:student/ns:address">
+                <xsl:element name="address">
+                    <xsl:value-of select="/ns:student/ns:address" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="address">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="uid">
+        <xsl:element name="uid">
+            <xsl:value-of select="ns:student/ns:uid" />
+        </xsl:element>
+    </xsl:template>
+
+</xsl:stylesheet>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xslt/teacherCreateBasic.xsl
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xslt/teacherCreateBasic.xsl b/systests/ws-transfer/src/test/resources/xslt/teacherCreateBasic.xsl
new file mode 100644
index 0000000..25c0aac
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xslt/teacherCreateBasic.xsl
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+
+<xsl:stylesheet xmlns="http://university.edu/teacher"
+                xmlns:ns="http://university.edu/teacher"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:uid="org.apache.cxf.systest.ws.transfer.UIDManager"
+                exclude-result-prefixes="uid"
+                version="1.0">
+    <xsl:output method="xml"/>
+
+    <xsl:template match="@*|node()">
+        <xsl:copy>
+            <xsl:apply-templates select="@*|node()" />
+        </xsl:copy>
+    </xsl:template>
+    
+    <xsl:template match="/ns:teacher">
+        <xsl:element name="teacher">
+            <xsl:apply-templates select="@*|node()" />
+            <xsl:element name="uid">
+                <xsl:value-of select="uid:getUID()" />
+            </xsl:element>
+        </xsl:element>
+    </xsl:template>
+
+</xsl:stylesheet>

http://git-wip-us.apache.org/repos/asf/cxf/blob/517ef67f/systests/ws-transfer/src/test/resources/xslt/teacherDefaultValues.xsl
----------------------------------------------------------------------
diff --git a/systests/ws-transfer/src/test/resources/xslt/teacherDefaultValues.xsl b/systests/ws-transfer/src/test/resources/xslt/teacherDefaultValues.xsl
new file mode 100644
index 0000000..6ab40d3
--- /dev/null
+++ b/systests/ws-transfer/src/test/resources/xslt/teacherDefaultValues.xsl
@@ -0,0 +1,108 @@
+<?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.
+-->
+
+<xsl:stylesheet xmlns="http://university.edu/teacher"
+                xmlns:ns="http://university.edu/teacher"
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version="1.0">
+    <xsl:output method="xml"/>
+
+    <xsl:template match="/">
+        <xsl:element name="teacher">
+            <xsl:call-template name="name"/>
+            <xsl:call-template name="surname"/>
+            <xsl:call-template name="birthdate"/>
+            <xsl:call-template name="address"/>
+            <xsl:call-template name="uid" />
+        </xsl:element>
+    </xsl:template>
+    
+    <xsl:template name="name">
+        <xsl:choose>
+            <xsl:when test="/ns:teacher/ns:name">
+                <xsl:element name="name">
+                    <xsl:value-of select="/ns:teacher/ns:name" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="name">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="surname">
+        <xsl:choose>
+            <xsl:when test="/ns:teacher/ns:surname">
+                <xsl:element name="surname">
+                    <xsl:value-of select="/ns:teacher/ns:surname" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="surname">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="birthdate">
+        <xsl:choose>
+            <xsl:when test="/ns:teacher/ns:birthdate">
+                <xsl:element name="date">
+                    <xsl:element name="day">
+                        <xsl:value-of select="/ns:teacher/ns:birthdate/ns:day" />
+                    </xsl:element>
+                    <xsl:element name="month">
+                        <xsl:value-of select="/ns:teacher/ns:birthdate/ns:month" />
+                    </xsl:element>
+                    <xsl:element name="year">
+                        <xsl:value-of select="/ns:teacher/ns:birthdate/ns:year" />
+                    </xsl:element>
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="date">
+                    <xsl:element name="day">Unspecified</xsl:element>
+                    <xsl:element name="month">Unspecified</xsl:element>
+                    <xsl:element name="year">Unspecified</xsl:element>
+                </xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="address">
+        <xsl:choose>
+            <xsl:when test="/ns:teacher/ns:address">
+                <xsl:element name="address">
+                    <xsl:value-of select="/ns:teacher/ns:address" />
+                </xsl:element>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:element name="address">Unspecified</xsl:element>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+    
+    <xsl:template name="uid">
+        <xsl:element name="uid">
+            <xsl:value-of select="/ns:teacher/ns:uid" />
+        </xsl:element>
+    </xsl:template>
+
+</xsl:stylesheet>