Author: bimargulies
Date: Tue Oct  5 01:41:02 2010
New Revision: 1004502

URL: http://svn.apache.org/viewvc?rev=1004502&view=rev
Log:
extend test case to remove type namespace for user types

Added:
    
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceJava5TypeCreator.java
   (with props)
    
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceTypeCreator.java
   (with props)
Modified:
    
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceAegisElementProvider.java
    
cxf/trunk/rt/frontend/jaxrs/src/test/resources/org/apache/cxf/jaxrs/provider/jsonCases.xml

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceAegisElementProvider.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceAegisElementProvider.java?rev=1004502&r1=1004501&r2=1004502&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceAegisElementProvider.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceAegisElementProvider.java
 Tue Oct  5 01:41:02 2010
@@ -24,7 +24,14 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.apache.cxf.aegis.AegisContext;
+import org.apache.cxf.aegis.type.AbstractTypeCreator;
+import org.apache.cxf.aegis.type.DefaultTypeMapping;
 import org.apache.cxf.aegis.type.TypeCreationOptions;
+import org.apache.cxf.aegis.type.TypeCreator;
+import org.apache.cxf.aegis.type.TypeMapping;
+import org.apache.cxf.aegis.type.XMLTypeCreator;
+import org.apache.cxf.aegis.type.java5.Java5TypeCreator;
+import org.apache.cxf.common.util.SOAPConstants;
 
 /**
  * Class that sets options to disable xml namespaces.
@@ -34,6 +41,29 @@ class NoNamespaceAegisElementProvider ex
      * This can't use the cache in AbstractAegisProvider. It could have its 
own cache.
      */
 
+    private TypeCreator createTypeCreator(TypeCreationOptions options) {
+        AbstractTypeCreator xmlCreator = createRootTypeCreator(options);
+
+        Java5TypeCreator j5Creator = new NoNamespaceJava5TypeCreator();
+        j5Creator.setNextCreator(createDefaultTypeCreator(options));
+        j5Creator.setConfiguration(options);
+        xmlCreator.setNextCreator(j5Creator);
+
+        return xmlCreator;
+    }
+
+    protected AbstractTypeCreator createRootTypeCreator(TypeCreationOptions 
options) {
+        AbstractTypeCreator creator = new XMLTypeCreator();
+        creator.setConfiguration(options);
+        return creator;
+    }
+
+    protected AbstractTypeCreator createDefaultTypeCreator(TypeCreationOptions 
options) {
+        AbstractTypeCreator creator = new NoNamespaceTypeCreator();
+        creator.setConfiguration(options);
+        return creator;
+    }
+
     @Override
     protected AegisContext getAegisContext(Class<?> plainClass, Type 
genericType) {
         AegisContext context = new AegisContext();
@@ -45,6 +75,12 @@ class NoNamespaceAegisElementProvider ex
         rootClasses.add(genericType);
         context.setTypeCreationOptions(tco);
         context.setRootClasses(rootClasses);
+        TypeMapping baseMapping = 
DefaultTypeMapping.createSoap11TypeMapping(true, false, false);
+        DefaultTypeMapping mapping = new DefaultTypeMapping(SOAPConstants.XSD, 
baseMapping);
+        TypeCreator stockTypeCreator = createTypeCreator(tco);
+
+        mapping.setTypeCreator(stockTypeCreator);
+        context.setTypeMapping(mapping);
         context.initialize();
         return context;
     }

Added: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceJava5TypeCreator.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceJava5TypeCreator.java?rev=1004502&view=auto
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceJava5TypeCreator.java
 (added)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceJava5TypeCreator.java
 Tue Oct  5 01:41:02 2010
@@ -0,0 +1,36 @@
+/**
+ * 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.jaxrs.provider;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.aegis.type.java5.Java5TypeCreator;
+
+/**
+ *
+ */
+public class NoNamespaceJava5TypeCreator extends Java5TypeCreator {
+
+    @Override
+    public QName createQName(Class typeClass) {
+        QName defName = super.createQName(typeClass);
+        return new QName(defName.getLocalPart());
+    }
+}

Propchange: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceJava5TypeCreator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceJava5TypeCreator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceTypeCreator.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceTypeCreator.java?rev=1004502&view=auto
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceTypeCreator.java
 (added)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceTypeCreator.java
 Tue Oct  5 01:41:02 2010
@@ -0,0 +1,37 @@
+/**
+ * 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.jaxrs.provider;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.aegis.type.DefaultTypeCreator;
+
+/**
+ *
+ */
+public class NoNamespaceTypeCreator extends DefaultTypeCreator {
+
+    @Override
+    protected QName createQName(Class javaType) {
+        // no namespace.
+        QName defQname = super.createQName(javaType);
+        return new QName(defQname.getLocalPart());
+    }
+}

Propchange: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceTypeCreator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/NoNamespaceTypeCreator.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/test/resources/org/apache/cxf/jaxrs/provider/jsonCases.xml
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/resources/org/apache/cxf/jaxrs/provider/jsonCases.xml?rev=1004502&r1=1004501&r2=1004502&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/test/resources/org/apache/cxf/jaxrs/provider/jsonCases.xml
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/test/resources/org/apache/cxf/jaxrs/provider/jsonCases.xml
 Tue Oct  5 01:41:02 2010
@@ -2,6 +2,6 @@
 <properties>
 <entry 
key="testReadWriteComplexMap.expected">{"ns1.AegisTestBean2AegisSuperBeanMap":{"@xsi.type":"ns1:AegisTestBean2AegisSuperBeanMap","ns1.entry":{"ns1.key":{"@xsi.type":"ns2:AegisTestBean","ns2.boolValue":true,"ns2.strValue":"hovercraft"},"ns1.value":{"@xsi.type":"ns2:AegisSuperBean","ns2.boolValue":true,"ns2.strValue":"hovercraft2"}}}}</entry>
 <entry key="simpleBeanXml">&lt;?xml version='1.0' 
encoding='UTF-8'?&gt;<![CDATA[<ns1:AegisTestBean 
xmlns:ns1="http://fortest.jaxrs.cxf.apache.org"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="ns1:AegisTestBean"><ns1:boolValue>true</ns1:boolValue><ns1:strValue>hovercraft</ns1:strValue></ns1:AegisTestBean>]]></entry>
-<entry key="noNamespaceBeanXml">&lt;?xml version='1.0' 
encoding='UTF-8'?&gt;<![CDATA[<ns1:AegisTestBean 
xmlns:ns1="http://fortest.jaxrs.cxf.apache.org"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="ns1:AegisTestBean"><boolValue>true</boolValue><strValue>hovercraft</strValue></ns1:AegisTestBean>]]></entry>
+<entry key="noNamespaceBeanXml">&lt;?xml version='1.0' 
encoding='UTF-8'?&gt;<![CDATA[<AegisTestBean 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="AegisTestBean"><boolValue>true</boolValue><strValue>hovercraft</strValue></AegisTestBean>]]></entry>
 <entry key="testAegisWriteXml"><![CDATA[<ns1:Book 
xmlns:ns1="http://resources.jaxrs.cxf.apache.org"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="ns1:Book"><ns1:id>127</ns1:id><ns1:name>CXF</ns1:name><ns1:state></ns1:state></ns1:Book>]]></entry>
 </properties>
\ No newline at end of file


Reply via email to