Author: sergeyb
Date: Thu Jan 19 11:42:09 2012
New Revision: 1233296
URL: http://svn.apache.org/viewvc?rev=1233296&view=rev
Log:
Merged revisions 1233289,1233294 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1233289 | sergeyb | 2012-01-19 11:29:14 +0000 (Thu, 19 Jan 2012) | 1 line
[CXF-4043] Some updates to do with ignoreNamespaces & collections
........
r1233294 | sergeyb | 2012-01-19 11:38:08 +0000 (Thu, 19 Jan 2012) | 1 line
[CXF-4043] One more update to do with ignoreNamespaces and dropRootElement
........
Modified:
cxf/branches/2.5.x-fixes/ (props changed)
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONProvider.java
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONUtils.java
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JSONProviderTest.java
Propchange: cxf/branches/2.5.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Jan 19 11:42:09 2012
@@ -1 +1 @@
-/cxf/trunk:1233075,1233112
+/cxf/trunk:1233075,1233112,1233289-1233294
Propchange: cxf/branches/2.5.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONProvider.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONProvider.java?rev=1233296&r1=1233295&r2=1233296&view=diff
==============================================================================
---
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONProvider.java
(original)
+++
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONProvider.java
Thu Jan 19 11:42:09 2012
@@ -467,7 +467,9 @@ public class JSONProvider extends Abstra
Type genericType, String enc, OutputStream os, boolean isCollection)
throws Exception {
QName qname = getQName(actualClass, genericType, actualObject, true);
-
+ if (ignoreNamespaces && (isCollection || dropRootElement)) {
+ qname = new QName(qname.getLocalPart());
+ }
if (BADGER_FISH_CONVENTION.equals(convention)) {
return JSONUtils.createBadgerFishWriter(os);
}
@@ -482,7 +484,7 @@ public class JSONProvider extends Abstra
writeXsiType && !ignoreNamespaces, config, serializeAsArray,
arrayKeys,
isCollection || dropRootElement);
writer = JSONUtils.createIgnoreMixedContentWriterIfNeeded(writer,
ignoreMixedContent);
- writer = JSONUtils.createIgnoreNsWriterIfNeeded(writer,
ignoreNamespaces && !isCollection);
+ writer = JSONUtils.createIgnoreNsWriterIfNeeded(writer,
ignoreNamespaces);
return createTransformWriterIfNeeded(writer, os);
}
Modified:
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONUtils.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONUtils.java?rev=1233296&r1=1233295&r2=1233296&view=diff
==============================================================================
---
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONUtils.java
(original)
+++
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/JSONUtils.java
Thu Jan 19 11:42:09 2012
@@ -221,6 +221,11 @@ public final class JSONUtils {
}
@Override
+ public void writeStartElement(String local) throws XMLStreamException {
+ this.writeStartElement("", local, "");
+ }
+
+ @Override
public void writeEndElement() throws XMLStreamException {
index--;
if (rootDropped && index == 0) {
Modified:
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JSONProviderTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JSONProviderTest.java?rev=1233296&r1=1233295&r2=1233296&view=diff
==============================================================================
---
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JSONProviderTest.java
(original)
+++
cxf/branches/2.5.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JSONProviderTest.java
Thu Jan 19 11:42:09 2012
@@ -274,6 +274,22 @@ public class JSONProviderTest extends As
@SuppressWarnings("unchecked")
@Test
+ public void testWriteToSingleTag2NoNs() throws Exception {
+ JSONProvider<TagVO2> p = new JSONProvider<TagVO2>();
+ p.setIgnoreNamespaces(true);
+ TagVO2 tag = createTag2("a", "b");
+
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+
+ p.writeTo(tag, TagVO2.class, TagVO2.class,
TagVO2.class.getAnnotations(),
+ MediaType.APPLICATION_JSON_TYPE, new MetadataMap<String,
Object>(), os);
+
+ String s = os.toString();
+ assertEquals("{\"thetag\":{\"group\":\"b\",\"name\":\"a\"}}", s);
+
+ }
+
+ @Test
public void testCopyReaderToDocument() throws Exception {
String s = "{\"tagVO\":{\"group\":\"b\",\"name\":\"a\"}}";
@@ -381,6 +397,7 @@ public class JSONProviderTest extends As
public void testDropRootElement() throws Exception {
JSONProvider p = new JSONProvider();
p.setDropRootElement(true);
+ p.setIgnoreNamespaces(true);
Map<String, String> namespaceMap = new HashMap<String, String>();
namespaceMap.put("http://tags", "ns1");
p.setNamespaceMap(namespaceMap);
@@ -457,7 +474,6 @@ public class JSONProviderTest extends As
Method m = CollectionsResource.class.getMethod("getBooks", new
Class[0]);
p.writeTo(books, m.getReturnType(), m.getGenericReturnType(), new
Annotation[0],
MediaType.APPLICATION_JSON_TYPE, new MetadataMap<String,
Object>(), os);
- System.out.println(os.toString());
assertEquals("{\"Book\":[{\"id\":123,\"name\":\"CXF\",\"state\":\"\"}]}",
os.toString());
@@ -569,6 +585,7 @@ public class JSONProviderTest extends As
MediaType.APPLICATION_JSON_TYPE, new MetadataMap<String,
Object>(), os);
String s = os.toString();
+ System.out.println(s);
assertEquals("{\"ns1.thetag\":{\"group\":\"b\",\"name\":\"a\"}}", s);
}