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"><?xml version='1.0'
encoding='UTF-8'?><![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"><?xml version='1.0'
encoding='UTF-8'?><![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"><?xml version='1.0'
encoding='UTF-8'?><![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