Repository: cxf Updated Branches: refs/heads/3.0.x-fixes 9bf166b3c -> b0c0a1d0c
[CXF-6971] Updating Jettison version to 1.3.8 Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/b0c0a1d0 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/b0c0a1d0 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/b0c0a1d0 Branch: refs/heads/3.0.x-fixes Commit: b0c0a1d0c39ef8531d543be41978476c045c2051 Parents: 9bf166b Author: Sergey Beryozkin <[email protected]> Authored: Mon Jul 18 21:34:46 2016 +0300 Committer: Sergey Beryozkin <[email protected]> Committed: Mon Jul 18 21:48:10 2016 +0300 ---------------------------------------------------------------------- parent/pom.xml | 2 +- .../jaxrs/provider/json/JSONProviderTest.java | 47 ++++++++++++++++++++ .../org/apache/cxf/jaxrs/resources/TagVO.java | 12 ++++- 3 files changed, 59 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/b0c0a1d0/parent/pom.xml ---------------------------------------------------------------------- diff --git a/parent/pom.xml b/parent/pom.xml index 680fd13..1084817 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -126,7 +126,7 @@ <cxf.jaxb.xjc.version>${cxf.jaxb21.xjc.version}</cxf.jaxb.xjc.version> <cxf.joda.time.version>2.2</cxf.joda.time.version> <cxf.jdom.version>1.0</cxf.jdom.version> - <cxf.jettison.version>1.3.7</cxf.jettison.version> + <cxf.jettison.version>1.3.8</cxf.jettison.version> <cxf.jetty.version>8.1.19.v20160209</cxf.jetty.version> <cxf.jetty.osgi.version>[7.6,8.2)</cxf.jetty.osgi.version> <cxf.jibx.version>1.2.6</cxf.jibx.version> http://git-wip-us.apache.org/repos/asf/cxf/blob/b0c0a1d0/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/json/JSONProviderTest.java ---------------------------------------------------------------------- diff --git a/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/json/JSONProviderTest.java b/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/json/JSONProviderTest.java index b1217e5..2021e99 100644 --- a/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/json/JSONProviderTest.java +++ b/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/provider/json/JSONProviderTest.java @@ -77,6 +77,7 @@ import org.apache.cxf.jaxrs.resources.jaxb.Book2; import org.apache.cxf.jaxrs.resources.jaxb.Book2NoRootElement; import org.apache.cxf.staxutils.DelegatingXMLStreamWriter; import org.apache.cxf.staxutils.StaxUtils; +import org.apache.cxf.staxutils.transform.TransformUtils; import org.junit.Assert; import org.junit.Test; @@ -1338,6 +1339,52 @@ public class JSONProviderTest extends Assert { } @Test + public void testAttributesAsElementsWithTransform() throws Exception { + JSONProvider<TagVO2Holder> provider = new JSONProvider<TagVO2Holder>() { + protected XMLStreamWriter createTransformWriterIfNeeded(XMLStreamWriter writer, + OutputStream os, + boolean dropAtXmlLevel) { + return TransformUtils.createTransformWriterIfNeeded(writer, os, + Collections.<String, String>emptyMap(), + null, + Collections.<String, String>emptyMap(), + true, + null); + } + }; + provider.setIgnoreNamespaces(true); + TagVO2 tag = new TagVO2("A", "B"); + tag.setAttrInt(123); + TagVO2Holder holder = new TagVO2Holder(); + holder.setTag(tag); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + provider.writeTo(holder, TagVO2Holder.class, TagVO2Holder.class, + new Annotation[0], MediaType.TEXT_XML_TYPE, new MetadataMap<String, Object>(), bos); + String expected = + "{\"tagholder\":{\"attr\":\"attribute\",\"thetag\":{\"attrInt\":123,\"group\":\"B\",\"name\":\"A\"}}}"; + assertEquals(expected, bos.toString()); + } + + @Test + public void testAttributesAsElementsWithInteger() throws Exception { + JSONProvider<TagVO2Holder> provider = new JSONProvider<TagVO2Holder>(); + provider.setAttributesToElements(true); + provider.setIgnoreNamespaces(true); + TagVO2 tag = new TagVO2("A", "B"); + tag.setAttrInt(123); + TagVO2Holder holder = new TagVO2Holder(); + holder.setTag(tag); + + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + provider.writeTo(holder, TagVO2Holder.class, TagVO2Holder.class, + new Annotation[0], MediaType.TEXT_XML_TYPE, new MetadataMap<String, Object>(), bos); + String expected = + "{\"tagholder\":{\"attr\":\"attribute\",\"thetag\":{\"attrInt\":123,\"group\":\"B\",\"name\":\"A\"}}}"; + assertEquals(expected, bos.toString()); + } + + @Test public void testOutAttributesAsElementsForList() throws Exception { //Provider http://git-wip-us.apache.org/repos/asf/cxf/blob/b0c0a1d0/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/TagVO.java ---------------------------------------------------------------------- diff --git a/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/TagVO.java b/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/TagVO.java index 6d9c081..3b6320d 100644 --- a/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/TagVO.java +++ b/rt/rs/extensions/providers/src/test/java/org/apache/cxf/jaxrs/resources/TagVO.java @@ -19,12 +19,14 @@ package org.apache.cxf.jaxrs.resources; +import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement public class TagVO { private String name; private String group; + private Integer attrInt; public TagVO() { @@ -50,5 +52,13 @@ public class TagVO { public String getGroup() { return group; } - + + @XmlAttribute + public Integer getAttrInt() { + return attrInt; + } + + public void setAttrInt(Integer attrInt) { + this.attrInt = attrInt; + } }
