You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/03/28 16:59:17 UTC
incubator-juneau git commit: Bug fixes in interface proxy support.
Repository: incubator-juneau
Updated Branches:
refs/heads/master 8591ef182 -> b58e236ab
Bug fixes in interface proxy support.
Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/b58e236a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/b58e236a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/b58e236a
Branch: refs/heads/master
Commit: b58e236ab53ba5e8154e3df166dad9ebc548613d
Parents: 8591ef1
Author: JamesBognar <ja...@apache.org>
Authored: Tue Mar 28 12:59:14 2017 -0400
Committer: JamesBognar <ja...@apache.org>
Committed: Tue Mar 28 12:59:14 2017 -0400
----------------------------------------------------------------------
.../org/apache/juneau/html/HtmlSerializer.java | 14 +++++++---
.../apache/juneau/rest/test/InterfaceProxy.java | 6 ++++-
.../rest/test/InterfaceProxyResource.java | 22 +++++++++++++++
.../juneau/rest/test/InterfaceProxyTest.java | 28 ++++++++++++++++++++
4 files changed, 65 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b58e236a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
index 0f79e8e..a4d8c7d 100644
--- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlSerializer.java
@@ -390,7 +390,7 @@ public class HtmlSerializer extends XmlSerializer {
out.i(i+2);
out.eTag("td").nl();
out.sTag(i+2, "td");
- cr = serializeAnything(session, out, value, valueType, (key == null ? "_x0000_" : key.toString()), 2, null, false);
+ cr = serializeAnything(session, out, value, valueType, (key == null ? "_x0000_" : session.toString(key)), 2, null, false);
if (cr == CR_NORMAL)
out.i(i+2);
out.eTag("td").nl();
@@ -485,8 +485,11 @@ public class HtmlSerializer extends XmlSerializer {
out.oTag(i, "table").attr(btpn, type2).append('>').nl();
out.sTag(i+1, "tr").nl();
- for (Object key : th)
- out.sTag(i+2, "th").append(key).eTag("th").nl();
+ for (Object key : th) {
+ out.sTag(i+2, "th");
+ out.text(session.convertToType(key, String.class));
+ out.eTag("th").nl();
+ }
out.eTag(i+1, "tr").nl();
for (Object o : c) {
@@ -565,7 +568,6 @@ public class HtmlSerializer extends XmlSerializer {
return null;
c = session.sort(c);
Object[] th;
- Set<Object> s = new TreeSet<Object>();
Set<ClassMeta> prevC = new HashSet<ClassMeta>();
Object o1 = null;
for (Object o : c)
@@ -622,6 +624,10 @@ public class HtmlSerializer extends XmlSerializer {
th = set.toArray(new Object[set.size()]);
}
prevC.add(cm);
+ boolean isSortable = true;
+ for (Object o : th)
+ isSortable &= (o instanceof Comparable);
+ Set<Object> s = (isSortable ? new TreeSet<Object>() : new LinkedHashSet<Object>());
s.addAll(Arrays.asList(th));
for (Object o : c) {
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b58e236a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java
index 38f8aa3..7420516 100644
--- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java
+++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxy.java
@@ -54,6 +54,8 @@ public interface InterfaceProxy {
Map<Integer,List<Bean>> returnBeanListMapIntegerKeys();
SwappedPojo returnSwappedPojo();
SwappedPojo[][][] returnSwappedPojo3dArray();
+ Map<SwappedPojo,SwappedPojo> returnSwappedPojoMap();
+ Map<SwappedPojo,SwappedPojo[][][]> returnSwappedPojo3dMap();
//--------------------------------------------------------------------------------
// Test server-side exception serialization.
@@ -91,6 +93,8 @@ public interface InterfaceProxy {
void setBeanListMapIntegerKeys(Map<Integer,List<Bean>> x);
void setSwappedPojo(SwappedPojo x);
void setSwappedPojo3dArray(SwappedPojo[][][] x);
+ void setSwappedPojoMap(Map<SwappedPojo,SwappedPojo> x);
+ void setSwappedPojo3dMap(Map<SwappedPojo,SwappedPojo[][][]> x);
public static class Bean {
public int a;
@@ -122,7 +126,7 @@ public interface InterfaceProxy {
public static class SwappedPojoSwap extends PojoSwap<SwappedPojo,String> {
@Override
public String swap(BeanSession session, SwappedPojo c) throws SerializeException {
- return "[{(<swapped>)}]";
+ return "[{(<swapped>)}]"; // Use special characters.
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b58e236a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java
index cf4132e..f8f56e2 100644
--- a/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java
+++ b/juneau-rest-test/src/main/java/org/apache/juneau/rest/test/InterfaceProxyResource.java
@@ -147,6 +147,14 @@ public class InterfaceProxyResource extends RestServletJenaDefault {
return new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null};
}
@Override
+ public Map<SwappedPojo,SwappedPojo> returnSwappedPojoMap() {
+ return new AMap<SwappedPojo,SwappedPojo>().append(new SwappedPojo(), new SwappedPojo());
+ }
+ @Override
+ public Map<SwappedPojo,SwappedPojo[][][]> returnSwappedPojo3dMap() {
+ return new AMap<SwappedPojo,SwappedPojo[][][]>().append(new SwappedPojo(), new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null});
+ }
+ @Override
public void throwException1() throws InterfaceProxy.InterfaceProxyException1 {
throw new InterfaceProxy.InterfaceProxyException1("foo");
}
@@ -269,6 +277,20 @@ public class InterfaceProxyResource extends RestServletJenaDefault {
assertObjectEquals("[[['[{(<swapped>)}]',null],null],null]", x);
assertTrue(x[0][0][0].wasUnswapped);
}
+ @Override
+ public void setSwappedPojoMap(Map<SwappedPojo,SwappedPojo> x) {
+ assertObjectEquals("{'[{(<swapped>)}]':'[{(<swapped>)}]'}", x);
+ Map.Entry<SwappedPojo,SwappedPojo> e = x.entrySet().iterator().next();
+ assertTrue(e.getKey().wasUnswapped);
+ assertTrue(e.getValue().wasUnswapped);
+ }
+ @Override
+ public void setSwappedPojo3dMap(Map<SwappedPojo,SwappedPojo[][][]> x) {
+ assertObjectEquals("{'[{(<swapped>)}]':[[['[{(<swapped>)}]',null],null],null]}", x);
+ Map.Entry<SwappedPojo,SwappedPojo[][][]> e = x.entrySet().iterator().next();
+ assertTrue(e.getKey().wasUnswapped);
+ assertTrue(e.getValue()[0][0][0].wasUnswapped);
+ }
};
}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b58e236a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java
----------------------------------------------------------------------
diff --git a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java
index c4c0299..11a7fe0 100644
--- a/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java
+++ b/juneau-rest-test/src/test/java/org/apache/juneau/rest/test/InterfaceProxyTest.java
@@ -220,6 +220,24 @@ public class InterfaceProxyTest extends RestTestcase {
}
@Test
+ public void returnSwappedPojoMap() {
+ Map<SwappedPojo,SwappedPojo> x = getProxy().returnSwappedPojoMap();
+ assertObjectEquals("{'[{(<swapped>)}]':'[{(<swapped>)}]'}", x);
+ Map.Entry<SwappedPojo,SwappedPojo> e = x.entrySet().iterator().next();
+ assertTrue(e.getKey().wasUnswapped);
+ assertTrue(e.getValue().wasUnswapped);
+ }
+
+ @Test
+ public void returnSwappedPojo3dMap() {
+ Map<SwappedPojo,SwappedPojo[][][]> x = getProxy().returnSwappedPojo3dMap();
+ assertObjectEquals("{'[{(<swapped>)}]':[[['[{(<swapped>)}]',null],null],null]}", x);
+ Map.Entry<SwappedPojo,SwappedPojo[][][]> e = x.entrySet().iterator().next();
+ assertTrue(e.getKey().wasUnswapped);
+ assertTrue(e.getValue()[0][0][0].wasUnswapped);
+ }
+
+ @Test
public void throwException1() {
try {
getProxy().throwException1();
@@ -390,4 +408,14 @@ public class InterfaceProxyTest extends RestTestcase {
public void setSwappedPojo3dArray() {
getProxy().setSwappedPojo3dArray(new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null});
}
+
+ @Test
+ public void setSwappedPojoMap() {
+ getProxy().setSwappedPojoMap(new AMap<SwappedPojo,SwappedPojo>().append(new SwappedPojo(), new SwappedPojo()));
+ }
+
+ @Test
+ public void setSwappedPojo3dMap() {
+ getProxy().setSwappedPojo3dMap(new AMap<SwappedPojo,SwappedPojo[][][]>().append(new SwappedPojo(), new SwappedPojo[][][]{{{new SwappedPojo(),null},null},null}));
+ }
}