Repository: incubator-juneau Updated Branches: refs/heads/master cebe92113 -> 46f0645bb
Consolidate HTML "class" and "type" attributes into a single "_type" attribute. Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/46f0645b Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/46f0645b Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/46f0645b Branch: refs/heads/master Commit: 46f0645bb2fb22ca91742ddf39320eba5ee9d2a5 Parents: cebe921 Author: jamesbognar <[email protected]> Authored: Sat Sep 10 13:01:41 2016 -0400 Committer: jamesbognar <[email protected]> Committed: Sat Sep 10 13:01:41 2016 -0400 ---------------------------------------------------------------------- .../java/org/apache/juneau/BeanDictionary.java | 10 ++++++ .../java/org/apache/juneau/html/HtmlParser.java | 26 ++++++++++------ .../org/apache/juneau/html/HtmlSerializer.java | 32 ++++++++++---------- .../java/org/apache/juneau/BeanMapTest.java | 2 +- .../juneau/a/rttests/RoundTripMapsTest.java | 2 +- .../apache/juneau/html/CommonParserTest.java | 16 +++++----- .../java/org/apache/juneau/html/CommonTest.java | 26 ++++++++-------- .../java/org/apache/juneau/html/HtmlTest.java | 30 +++++++++--------- .../juneau/transforms/CalendarSwapTest.java | 4 +-- 9 files changed, 83 insertions(+), 65 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/juneau-core/src/main/java/org/apache/juneau/BeanDictionary.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/BeanDictionary.java b/juneau-core/src/main/java/org/apache/juneau/BeanDictionary.java index 22dff49..3c8dc4f 100644 --- a/juneau-core/src/main/java/org/apache/juneau/BeanDictionary.java +++ b/juneau-core/src/main/java/org/apache/juneau/BeanDictionary.java @@ -92,4 +92,14 @@ public class BeanDictionary { throw new BeanRuntimeException("Could not find bean type ''{0}'' in dictionary.", typeName); return cm; } + + /** + * Returns <jk>true</jk> if this dictionary has an entry for the specified type name. + * + * @param typeName The bean type name. + * @return <jk>true</jk> if this dictionary has an entry for the specified type name. + */ + public boolean hasName(String typeName) { + return map.containsKey(typeName); + } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java index 2c04a79..e3a141e 100644 --- a/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java +++ b/juneau-core/src/main/java/org/apache/juneau/html/HtmlParser.java @@ -107,7 +107,13 @@ public final class HtmlParser extends ReaderParser { } else { Tag tag = Tag.forString(event.asStartElement().getName().getLocalPart(), false); - String tableType = "object"; + + // The _type attribute can be any of the following: + // "object" - A map. + // "array" - An array. + // "X" - A bean type name as defined through @Bean.typeName(). + + String typeName = "object"; String text = ""; if (tag.isOneOf(STRING, NUMBER, BOOLEAN, BR, FF, BS, TB)) @@ -115,10 +121,12 @@ public final class HtmlParser extends ReaderParser { if (tag == TABLE) { Map<String,String> attrs = getAttributes(event); - tableType = attrs.get("type"); - String c = attrs.get(bc.getBeanTypePropertyName()); - if (c != null) - sType = eType = (ClassMeta<T>)bd.getClassMeta(c); + typeName = attrs.get(bc.getBeanTypePropertyName()); + if (bd.hasName(typeName)) + sType = eType = (ClassMeta<T>)bd.getClassMeta(typeName); + // Reset to "object" if it was a bean type name. + if (! typeName.equals("array")) + typeName = "object"; } boolean isValid = true; @@ -135,9 +143,9 @@ public final class HtmlParser extends ReaderParser { else if (tag == BOOLEAN) o = Boolean.parseBoolean(text); else if (tag == TABLE) { - if (tableType.equals("object")) { + if (typeName.equals("object")) { o = parseIntoMap(session, r, (Map)new ObjectMap(bc), sType.getKeyType(), sType.getValueType(), pMeta); - } else if (tableType.equals("array")) { + } else if (typeName.equals("array")) { o = parseTableIntoCollection(session, r, (Collection)new ObjectList(bc), sType.getElementType(), pMeta); } else isValid = false; @@ -158,7 +166,7 @@ public final class HtmlParser extends ReaderParser { else if (tag == BOOLEAN && sType.isBoolean()) o = Boolean.parseBoolean(text); else if (tag == TABLE) { - if (tableType.equals("object")) { + if (typeName.equals("object")) { if (sType.isMap()) { o = parseIntoMap(session, r, (Map)(sType.canCreateNewInstance(outer) ? sType.newInstance(outer) : new ObjectMap(bc)), sType.getKeyType(), sType.getValueType(), pMeta); } else if (sType.canCreateNewInstanceFromObjectMap(outer)) { @@ -171,7 +179,7 @@ public final class HtmlParser extends ReaderParser { } else isValid = false; - } else if (tableType.equals("array")) { + } else if (typeName.equals("array")) { if (sType.isCollection()) o = parseTableIntoCollection(session, r, (Collection)(sType.canCreateNewInstance(outer) ? sType.newInstance(outer) : new ObjectList(bc)), sType.getElementType(), pMeta); else if (sType.isArray()) http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/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 bb31659..3e31577 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 @@ -243,22 +243,22 @@ public class HtmlSerializer extends XmlSerializer { else if (sType.hasToObjectMapMethod()) serializeMap(session, out, sType.toObjectMap(o), eType, typeName, pMeta); else if (sType.isBean()) - serializeBeanMap(session, out, bc.forBean(o), typeName, pMeta); + serializeBeanMap(session, out, bc.forBean(o), pMeta); else if (sType.isNumber()) out.sTag(i, "number").append(o).eTag("number").nl(); else if (sType.isBoolean()) out.sTag(i, "boolean").append(o).eTag("boolean").nl(); else if (sType.isMap()) { if (o instanceof BeanMap) - serializeBeanMap(session, out, (BeanMap)o, typeName, pMeta); + serializeBeanMap(session, out, (BeanMap)o, pMeta); else serializeMap(session, out, (Map)o, eType, typeName, pMeta); } else if (sType.isCollection()) { - serializeCollection(session, out, (Collection)o, eType, name, null, pMeta); + serializeCollection(session, out, (Collection)o, eType, name, pMeta); } else if (sType.isArray()) { - serializeCollection(session, out, toList(sType.getInnerClass(), o), eType, name, null, pMeta); + serializeCollection(session, out, toList(sType.getInnerClass(), o), eType, name, pMeta); } else if (session.isUri(sType, pMeta, o)) { String label = session.getAnchorText(pMeta, o); @@ -274,14 +274,15 @@ public class HtmlSerializer extends XmlSerializer { } @SuppressWarnings({ "rawtypes", "unchecked" }) - private void serializeMap(HtmlSerializerSession session, HtmlWriter out, Map m, ClassMeta<?> type, String classAttr, BeanPropertyMeta ppMeta) throws Exception { + private void serializeMap(HtmlSerializerSession session, HtmlWriter out, Map m, ClassMeta<?> type, String typeName, BeanPropertyMeta ppMeta) throws Exception { ClassMeta<?> keyType = type.getKeyType(), valueType = type.getValueType(); ClassMeta<?> aType = session.getBeanContext().getClassMetaForObject(m); // The actual type + BeanContext bc = session.getBeanContext(); int i = session.getIndent(); - out.oTag(i, "table").attr("type", "object"); - if (classAttr != null) - out.attr("class", classAttr); + if (typeName == null) + typeName = "object"; + out.oTag(i, "table").attr(bc.getBeanTypePropertyName(), typeName); out.appendln(">"); if (! (aType.getExtendedMeta(HtmlClassMeta.class).isNoTableHeaders() || (ppMeta != null && ppMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isNoTableHeaders()))) { out.sTag(i+1, "tr").nl(); @@ -313,7 +314,7 @@ public class HtmlSerializer extends XmlSerializer { out.eTag(i, "table").nl(); } - private void serializeBeanMap(HtmlSerializerSession session, HtmlWriter out, BeanMap<?> m, String classAttr, BeanPropertyMeta ppMeta) throws Exception { + private void serializeBeanMap(HtmlSerializerSession session, HtmlWriter out, BeanMap<?> m, BeanPropertyMeta ppMeta) throws Exception { int i = session.getIndent(); BeanContext bc = session.getBeanContext(); @@ -328,9 +329,10 @@ public class HtmlSerializer extends XmlSerializer { return; } - out.oTag(i, "table").attr("type", "object"); - if (classAttr != null) - out.attr(bc.getBeanTypePropertyName(), classAttr); + String typeName = m.getMeta().getDictionaryName(); + if (typeName == null) + typeName = "object"; + out.oTag(i, "table").attr(bc.getBeanTypePropertyName(), typeName); out.append('>').nl(); if (! (m.getClassMeta().getExtendedMeta(HtmlClassMeta.class).isNoTableHeaders() || (ppMeta != null && ppMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isNoTableHeaders()))) { out.sTag(i+1, "tr").nl(); @@ -373,7 +375,7 @@ public class HtmlSerializer extends XmlSerializer { } @SuppressWarnings({ "rawtypes", "unchecked" }) - private void serializeCollection(HtmlSerializerSession session, HtmlWriter out, Collection c, ClassMeta<?> type, String name, String classAttr, BeanPropertyMeta ppMeta) throws Exception { + private void serializeCollection(HtmlSerializerSession session, HtmlWriter out, Collection c, ClassMeta<?> type, String name, BeanPropertyMeta ppMeta) throws Exception { BeanContext bc = session.getBeanContext(); ClassMeta<?> elementType = type.getElementType(); @@ -395,9 +397,7 @@ public class HtmlSerializer extends XmlSerializer { if (th != null) { - out.oTag(i, "table").attr("type", "array"); - if (classAttr != null) - out.attr(bc.getBeanTypePropertyName(), classAttr); + out.oTag(i, "table").attr(bc.getBeanTypePropertyName(), "array"); out.append('>').nl(); out.sTag(i+1, "tr").nl(); for (String key : th) http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java b/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java index c51757b..1d22c32 100755 --- a/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java @@ -963,7 +963,7 @@ public class BeanMapTest { } // HTML - String html = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>baz</string></td><td><number>789</number></td></tr><tr><td><string>foo</string></td><td><number>123</number></td></tr><tr><td><string>bar</string></td><td><number>456</number></td></tr></table>"; + String html = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>baz</string></td><td><number>789</number></td></tr><tr><td><string>foo</string></td><td><number>123</number></td></tr><tr><td><string>bar</string></td><td><number>456</number></td></tr></table>"; p = new HtmlParser().setProperty(BEAN_ignoreUnknownBeanProperties, true); t = p.parse(html, O.class); assertEquals(123, t.foo); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java index a695842..efd6ef9 100755 --- a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java @@ -117,7 +117,7 @@ public class RoundTripMapsTest extends RoundTripTest { assertEquals(e, r); s = new HtmlSerializer.Sq().addPojoSwaps(getPojoSwaps()).setProperty(SERIALIZER_trimNullProperties, false); - e = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>AQID</string></td><td><string>a</string></td></tr><tr><td><string>BAUG</string></td><td><null/></td></tr><tr><td><null/></td><td><string>b</string></td></tr></table>"; + e = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>AQID</string></td><td><string>a</string></td></tr><tr><td><string>BAUG</string></td><td><null/></td></tr><tr><td><null/></td><td><string>b</string></td></tr></table>"; r = s.serialize(t); assertEquals(e, r); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/juneau-core/src/test/java/org/apache/juneau/html/CommonParserTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/html/CommonParserTest.java b/juneau-core/src/test/java/org/apache/juneau/html/CommonParserTest.java index 6fb6e6f..ca1da18 100755 --- a/juneau-core/src/test/java/org/apache/juneau/html/CommonParserTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/html/CommonParserTest.java @@ -35,27 +35,27 @@ public class CommonParserTest { Map m = null; String in; - in = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr></table>"; + in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr></table>"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); - in = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><string>foo bar</string></td></tr></table>"; + in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><string>foo bar</string></td></tr></table>"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals("foo bar", m.get("b")); - in = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><string>foo bar</string></td></tr><tr><td><string>c</string></td><td><boolean>false</boolean></td></tr></table>"; + in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><string>foo bar</string></td></tr><tr><td><string>c</string></td><td><boolean>false</boolean></td></tr></table>"; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals(false, m.get("c")); - in = " <table type='object'> <tr> <th> <string> key </string> </th> <th> <string> value </string> </th> </tr> <tr> <td> <string> a </string> </td> <td> <number> 1 </number> </td> </tr> <tr> <td> <string> b </string> </td> <td> <string> foo </string> </td> </tr> <tr> <td> <string> c </string> </td> <td> <boolean> false </boolean> </td> </tr> </table> "; + in = " <table _type='object'> <tr> <th> <string> key </string> </th> <th> <string> value </string> </th> </tr> <tr> <td> <string> a </string> </td> <td> <number> 1 </number> </td> </tr> <tr> <td> <string> b </string> </td> <td> <string> foo </string> </td> </tr> <tr> <td> <string> c </string> </td> <td> <boolean> false </boolean> </td> </tr> </table> "; m = (Map)p.parse(in, Object.class); assertEquals(1, m.get("a")); assertEquals("foo", m.get("b")); assertEquals(false, m.get("c")); - in = "<table type='array'><tr><th>attribute</th></tr><tr><td><string>value</string></td></tr><tr><td><string>value</string></td></tr></table>"; + in = "<table _type='array'><tr><th>attribute</th></tr><tr><td><string>value</string></td></tr><tr><td><string>value</string></td></tr></table>"; ObjectList jl = (ObjectList)p.parse(in, Object.class); assertEquals("value", jl.getObjectMap(0).getString("attribute")); assertEquals("value", jl.getObjectMap(1).getString("attribute")); @@ -100,7 +100,7 @@ public class CommonParserTest { ReaderParser p = new HtmlParser().setProperty(BEAN_ignoreUnknownBeanProperties, true); B t; - String in = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>unknown</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><number>2</number></td></tr></table>"; + String in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>unknown</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><number>2</number></td></tr></table>"; t = p.parse(in, B.class); assertEquals(t.a, 1); assertEquals(t.b, 2); @@ -123,7 +123,7 @@ public class CommonParserTest { public void testCollectionPropertiesWithNoSetters() throws Exception { ReaderParser p = HtmlParser.DEFAULT; - String in = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>ints</string></td><td><ul><li><number>1</number></li><li><number>2</number></li><li><number>3</number></li></ul></td></tr><tr><td><string>beans</string></td><td><table type='array'><tr><th>a</th><th>b</th></tr><tr><td><number>1</number></td><td><number>2</number></td></tr></table></td></tr></table>"; + String in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>ints</string></td><td><ul><li><number>1</number></li><li><number>2</number></li><li><number>3</number></li></ul></td></tr><tr><td><string>beans</string></td><td><table _type='array'><tr><th>a</th><th>b</th></tr><tr><td><number>1</number></td><td><number>2</number></td></tr></table></td></tr></table>"; C t = p.parse(in, C.class); assertEquals(t.getInts().size(), 3); assertEquals(t.getBeans().get(0).b, 2); @@ -156,7 +156,7 @@ public class CommonParserTest { } ); - String in = "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>unknown</string></td><td><string>/foo</string></td></tr><tr><td><string>b</string></td><td><number>2</number></td></tr></table>"; + String in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>unknown</string></td><td><string>/foo</string></td></tr><tr><td><string>b</string></td><td><number>2</number></td></tr></table>"; p.parse(in, B.class); assertEquals(1, events.size()); assertEquals("unknown,-1,-1", events.get(0)); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/juneau-core/src/test/java/org/apache/juneau/html/CommonTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/html/CommonTest.java b/juneau-core/src/test/java/org/apache/juneau/html/CommonTest.java index 401a6ca..52fb201 100755 --- a/juneau-core/src/test/java/org/apache/juneau/html/CommonTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/html/CommonTest.java @@ -42,13 +42,13 @@ public class CommonTest { s.setProperty(SERIALIZER_trimNullProperties, false); String r = s.serialize(t1); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>s1</string></td><td><null/></td></tr><tr><td><string>s2</string></td><td><string>s2</string></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>s1</string></td><td><null/></td></tr><tr><td><string>s2</string></td><td><string>s2</string></td></tr></table>", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); s.setProperty(SERIALIZER_trimNullProperties, true); r = s.serialize(t1); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>s2</string></td><td><string>s2</string></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>s2</string></td><td><string>s2</string></td></tr></table>", r); t2 = p.parse(r, A.class); assertEqualObjects(t1, t2); } @@ -75,13 +75,13 @@ public class CommonTest { s.setProperty(SERIALIZER_trimEmptyMaps, false); r = s.serialize(t1); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr></table></td></tr><tr><td><string>f2</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2a</string></td><td><null/></td></tr><tr><td><string>f2b</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>s2</string></td><td><string>s2</string></td></tr></table></td></tr></table></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr></table></td></tr><tr><td><string>f2</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2a</string></td><td><null/></td></tr><tr><td><string>f2b</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>s2</string></td><td><string>s2</string></td></tr></table></td></tr></table></td></tr></table>", r); t2 = p.parse(r, B.class); assertEqualObjects(t1, t2); s.setProperty(SERIALIZER_trimEmptyMaps, true); r = s.serialize(t1); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2a</string></td><td><null/></td></tr><tr><td><string>f2b</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>s2</string></td><td><string>s2</string></td></tr></table></td></tr></table></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2a</string></td><td><null/></td></tr><tr><td><string>f2b</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>s2</string></td><td><string>s2</string></td></tr></table></td></tr></table></td></tr></table>", r); t2 = p.parse(r, B.class); assertNull(t2.f1); } @@ -109,13 +109,13 @@ public class CommonTest { s.setProperty(SERIALIZER_trimEmptyLists, false); r = s.serialize(t1); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><ul></ul></td></tr><tr><td><string>f2</string></td><td><table type='array'><tr><th>s1</th><th>s2</th></tr><tr><null/></tr><tr><td><null/></td><td><string>s2</string></td></tr></table></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><ul></ul></td></tr><tr><td><string>f2</string></td><td><table _type='array'><tr><th>s1</th><th>s2</th></tr><tr><null/></tr><tr><td><null/></td><td><string>s2</string></td></tr></table></td></tr></table>", r); t2 = p.parse(r, C.class); assertEqualObjects(t1, t2); s.setProperty(SERIALIZER_trimEmptyLists, true); r = s.serialize(t1); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2</string></td><td><table type='array'><tr><th>s1</th><th>s2</th></tr><tr><null/></tr><tr><td><null/></td><td><string>s2</string></td></tr></table></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2</string></td><td><table _type='array'><tr><th>s1</th><th>s2</th></tr><tr><null/></tr><tr><td><null/></td><td><string>s2</string></td></tr></table></td></tr></table>", r); t2 = p.parse(r, C.class); assertNull(t2.f1); } @@ -143,13 +143,13 @@ public class CommonTest { s.setProperty(SERIALIZER_trimEmptyLists, false); r = s.serialize(t1); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><ul></ul></td></tr><tr><td><string>f2</string></td><td><table type='array'><tr><th>s1</th><th>s2</th></tr><tr><null/></tr><tr><td><null/></td><td><string>s2</string></td></tr></table></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><ul></ul></td></tr><tr><td><string>f2</string></td><td><table _type='array'><tr><th>s1</th><th>s2</th></tr><tr><null/></tr><tr><td><null/></td><td><string>s2</string></td></tr></table></td></tr></table>", r); t2 = p.parse(r, D.class); assertEqualObjects(t1, t2); s.setProperty(SERIALIZER_trimEmptyLists, true); r = s.serialize(t1); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2</string></td><td><table type='array'><tr><th>s1</th><th>s2</th></tr><tr><null/></tr><tr><td><null/></td><td><string>s2</string></td></tr></table></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2</string></td><td><table _type='array'><tr><th>s1</th><th>s2</th></tr><tr><null/></tr><tr><td><null/></td><td><string>s2</string></td></tr></table></td></tr></table>", r); t2 = p.parse(r, D.class); assertNull(t2.f1); } @@ -175,7 +175,7 @@ public class CommonTest { String r; r = s.serialize(t); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>x1</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><number>1</number></td></tr></table></td></tr><tr><td><string>x2</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><number>1</number></td></tr></table></td></tr><tr><td><string>x3</string></td><td><table type='array'><tr><th>f1</th></tr><tr><td><number>1</number></td></tr></table></td></tr><tr><td><string>x4</string></td><td><table type='array'><tr><th>f1</th></tr><tr><td><number>1</number></td></tr></table></td></tr><tr><td><string>x5</string></td><td><table type='array'><tr><th>f1</th></tr><tr><td><number>1</number></td></tr></table></td></tr><tr><td><string>x6</string></td><td><table type='array'><tr><th>f1</th></tr><tr><td>< number>1</number></td></tr></table></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>x1</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><number>1</number></td></tr></table></td></tr><tr><td><string>x2</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><number>1</number></td></tr></table></td></tr><tr><td><string>x3</string></td><td><table _type='array'><tr><th>f1</th></tr><tr><td><number>1</number></td></tr></table></td></tr><tr><td><string>x4</string></td><td><table _type='array'><tr><th>f1</th></tr><tr><td><number>1</number></td></tr></table></td></tr><tr><td><string>x5</string></td><td><table _type='array'><tr><th>f1</th></tr><tr><td><number>1</number></td></tr></table></td></tr><tr><td><string>x6</string></td><td><table _type='array'><tr><th>f1</th></tr><t r><td><number>1</number></td></tr></table></td></tr></table>", r); r = s.getSchemaSerializer().serialize(new E1()); assertTrue(r.indexOf("f2") == -1); } @@ -211,7 +211,7 @@ public class CommonTest { t.x1.add(new F()); l.add(t); String html = s.serialize(l); - assertEquals("<table type='array'><tr><th>x1</th><th>x2</th></tr><tr><td><table type='array'><tr><th>x2</th></tr><tr><td><number>2</number></td></tr></table></td><td><number>2</number></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>x1</th><th>x2</th></tr><tr><td><table _type='array'><tr><th>x2</th></tr><tr><td><number>2</number></td></tr></table></td><td><number>2</number></td></tr></table>", html); } public static class F { @@ -428,7 +428,7 @@ public class CommonTest { private String strip(String html) { return html - .replace("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr>", "") + .replace("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr>", "") .replace("</table>", "") .replace("<tr><td><string>", "\n[") .replace("</string></td><td>", "]=") @@ -492,7 +492,7 @@ public class CommonTest { } s.setProperty(SERIALIZER_ignoreRecursions, true); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>name</string></td><td><string>foo</string></td></tr><tr><td><string>r2</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>name</string></td><td><string>bar</string></td></tr><tr><td><string>r3</string></td><td><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>name</string></td><td><string>baz</string></td></tr></table></td></tr></table></td></tr></table>", + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>name</string></td><td><string>foo</string></td></tr><tr><td><string>r2</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>name</string></td><td><string>bar</string></td></tr><tr><td><string>r3</string></td><td><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>name</string></td><td><string>baz</string></td></tr></table></td></tr></table></td></tr></table>", s.serialize(r1)); // Make sure this doesn't blow up. @@ -523,7 +523,7 @@ public class CommonTest { a.setF1("J"); a.setF2(100); a.setF3(true); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><string>J</string></td></tr><tr><td><string>f2</string></td><td><number>100</number></td></tr><tr><td><string>f3</string></td><td><boolean>true</boolean></td></tr></table>", s.serialize(a)); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><string>J</string></td></tr><tr><td><string>f2</string></td><td><number>100</number></td></tr><tr><td><string>f3</string></td><td><boolean>true</boolean></td></tr></table>", s.serialize(a)); } public static class J { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java b/juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java index 26515f8..0c657ab 100755 --- a/juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java @@ -40,50 +40,50 @@ public class HtmlTest { t = new Object[] {new A1(), new A1()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); t = new Object[] {new A1(), new A2()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); t = new Object[] {new A1(), new ObjectMap("{f1:'f1'}")}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); t = new Object[] {new ObjectMap("{f1:'f1'}"), new A1()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); // This should be serialized as a list since the objects have different properties. t = new Object[] {new A1(), new ObjectMap("{f2:'f2'}")}; html = s.serialize(t); - assertEquals("<ul><li><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><string>f1</string></td></tr></table></li><li><table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2</string></td><td><string>f2</string></td></tr></table></li></ul>", html); + assertEquals("<ul><li><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><string>f1</string></td></tr></table></li><li><table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f2</string></td><td><string>f2</string></td></tr></table></li></ul>", html); // Tables with some beans with @Bean#properties annotations. t = new Object[] {new A1(), new A3()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); t = new Object[] {new A3(), new A1()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); // Tables with some beans with @Bean#transforms annotations. t = new Object[] {new A4(), new A1()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); t = new Object[] {new A1(), new A4()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); t = new Object[] {new A5(), new A1()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); t = new Object[] {new A1(), new A5()}; html = s.serialize(t); - assertEquals("<table type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); + assertEquals("<table _type='array'><tr><th>f1</th></tr><tr><td><string>f1</string></td></tr><tr><td><string>f1</string></td></tr></table>", html); } public static class A1 { @@ -300,7 +300,7 @@ public class HtmlTest { private String strip(String html) { return html - .replace("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr>", "") + .replace("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr>", "") .replace("</table>", "") .replace("<tr><td><string>", "\n[") .replace("</string></td><td>", "]=") @@ -322,7 +322,7 @@ public class HtmlTest { o = new B2(); r = s.serialize(o); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><f1></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><f1></td></tr></table>", r); } @Html(asPlainText=true) @@ -354,7 +354,7 @@ public class HtmlTest { o = new C2(); r = s.serialize(o); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><string><f1></string></td></tr></table>", r); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>f1</string></td><td><string><f1></string></td></tr></table>", r); } @Html(asXml=true) @@ -380,7 +380,7 @@ public class HtmlTest { m.put("foo", "bar"); o = new ObjectList().append(m); r = s.serialize(o); - assertEquals("<ul><li><table type='object'><tr><td><string>foo</string></td><td><string>bar</string></td></tr></table></li></ul>", r); + assertEquals("<ul><li><table _type='object'><tr><td><string>foo</string></td><td><string>bar</string></td></tr></table></li></ul>", r); } @Html(noTables=true, noTableHeaders=true) http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/46f0645b/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java index 2d796fc..df82751 100755 --- a/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java @@ -430,7 +430,7 @@ public class CalendarSwapTest { Class<?> f = CalendarMapSwap.class; WriterSerializer s = new HtmlSerializer.Sq().addPojoSwaps(f); ReaderParser p = new HtmlParser().addPojoSwaps(f); - doTest(s, p, true, "<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>time</string></td><td><number>-2172116928000</number></td></tr><tr><td><string>timeZone</string></td><td><string>PST</string></td></tr></table>"); + doTest(s, p, true, "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>time</string></td><td><number>-2172116928000</number></td></tr><tr><td><string>timeZone</string></td><td><string>PST</string></td></tr></table>"); } //==================================================================================================== @@ -579,7 +579,7 @@ public class CalendarSwapTest { Calendar c = testDate; A t = new A(c); String html = s.serialize(t); - assertEquals("<table type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>d1</string></td><td><string>1901-03-03T18:11:12Z</string></td></tr><tr><td><string>d2</string></td><td><string>Sun, 03 Mar 1901 18:11:12 GMT</string></td></tr><tr><td><string>d3</string></td><td><number>-2172116928000</number></td></tr></table>", html); + assertEquals("<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>d1</string></td><td><string>1901-03-03T18:11:12Z</string></td></tr><tr><td><string>d2</string></td><td><string>Sun, 03 Mar 1901 18:11:12 GMT</string></td></tr><tr><td><string>d3</string></td><td><number>-2172116928000</number></td></tr></table>", html); t = p.parse(html, A.class); assertEquals(t.d1.getTime().getTime(), c.getTime().getTime()); assertEquals(t.getD2().getTime().getTime(), c.getTime().getTime());
