Modification to UON spec.  Remove bean subtype 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/097b8103
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/097b8103
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/097b8103

Branch: refs/heads/master
Commit: 097b8103237202ecd3b79a8232773591c957aa9d
Parents: 268a3e3
Author: JamesBognar <jamesbog...@apache.org>
Authored: Wed Feb 15 15:50:33 2017 -0500
Committer: JamesBognar <jamesbog...@apache.org>
Committed: Wed Feb 15 15:50:33 2017 -0500

----------------------------------------------------------------------
 .../java/org/apache/juneau/jena/RdfParser.java  |  35 +-
 .../org/apache/juneau/jena/RdfSerializer.java   |  14 +-
 .../juneau/jena/RdfSerializerSession.java       |   2 +-
 .../java/org/apache/juneau/BeanFilterTest.java  |  14 +-
 .../java/org/apache/juneau/BeanMapTest.java     |   6 +-
 .../test/java/org/apache/juneau/TestUtils.java  |  14 +-
 .../juneau/a/rttests/RoundTripBeanMapsTest.java |  51 +-
 .../a/rttests/RoundTripLargeObjectsTest.java    |  14 +-
 .../juneau/a/rttests/RoundTripMapsTest.java     |   4 +-
 .../apache/juneau/a/rttests/RoundTripTest.java  |  28 +-
 .../a/rttests/RoundTripTransformBeansTest.java  |   7 +-
 .../apache/juneau/dto/cognos/CognosXmlTest.java |   2 +-
 .../juneau/dto/html5/BasicHtmlSchemaTest.java   | 745 ++++++++++++++++++-
 .../juneau/dto/jsonschema/JsonSchemaTest.java   |  13 +-
 .../java/org/apache/juneau/html/CommonTest.java |   2 +-
 .../apache/juneau/jena/CommonParserTest.java    |   4 +-
 .../java/org/apache/juneau/jena/CommonTest.java |   2 +-
 .../org/apache/juneau/jena/CommonXmlTest.java   |   2 +-
 .../juneau/json/JsonParserEdgeCasesTest.java    |   2 +-
 .../juneau/transforms/CalendarSwapTest.java     |  30 +-
 .../urlencoding/CommonParser_UonTest.java       |  12 +-
 .../CommonParser_UrlEncodingTest.java           |  16 +-
 .../juneau/urlencoding/Common_UonTest.java      |  81 +-
 .../urlencoding/Common_UrlEncodingTest.java     |  71 +-
 .../juneau/urlencoding/UonParserTest.java       | 205 +++--
 .../juneau/urlencoding/UonSerializerTest.java   | 364 ++++-----
 .../urlencoding/UrlEncodingParserTest.java      | 273 +++----
 .../urlencoding/UrlEncodingSerializerTest.java  | 313 ++++----
 .../org/apache/juneau/utils/PojoRestTest.java   |   6 +-
 .../org/apache/juneau/xml/XmlContentTest.java   |   4 +-
 juneau-core/.project                            |  47 +-
 .../java/org/apache/juneau/BeanContext.java     |   6 +-
 .../main/java/org/apache/juneau/BeanMap.java    |   9 -
 .../main/java/org/apache/juneau/BeanMeta.java   | 133 +---
 .../org/apache/juneau/BeanPropertyMeta.java     |  11 +-
 .../java/org/apache/juneau/BeanRegistry.java    |  69 +-
 .../java/org/apache/juneau/BeanSession.java     |  24 +-
 .../main/java/org/apache/juneau/ClassMeta.java  |  44 +-
 .../main/java/org/apache/juneau/CoreApi.java    |  10 +-
 .../java/org/apache/juneau/LockedException.java |   2 +-
 .../java/org/apache/juneau/annotation/Bean.java |  56 +-
 .../org/apache/juneau/dto/atom/AtomBuilder.java |   6 +-
 .../apache/juneau/dto/html5/HtmlElement.java    |   3 +
 .../juneau/dto/html5/HtmlElementContainer.java  |   3 +-
 .../juneau/dto/html5/HtmlElementMixed.java      |   3 +-
 .../juneau/dto/html5/HtmlElementText.java       |   3 +
 .../java/org/apache/juneau/dto/html5/Pre.java   |   2 +-
 .../org/apache/juneau/dto/html5/Script.java     |   1 +
 .../java/org/apache/juneau/dto/html5/Style.java |   1 +
 .../apache/juneau/dto/jsonschema/Sample.java    |   4 +-
 .../apache/juneau/encoders/EncoderGroup.java    |   4 +-
 .../apache/juneau/html/HtmlDocSerializer.java   |   4 +-
 .../juneau/html/HtmlDocSerializerSession.java   |   2 +-
 .../java/org/apache/juneau/html/HtmlParser.java |  32 +-
 .../apache/juneau/html/HtmlParserSession.java   |  16 -
 .../org/apache/juneau/html/HtmlSerializer.java  |   6 +-
 .../juneau/html/HtmlSerializerSession.java      |   2 +-
 .../java/org/apache/juneau/html/HtmlWriter.java |   6 +-
 .../java/org/apache/juneau/ini/ConfigMgr.java   |   8 +-
 .../org/apache/juneau/internal/AsciiSet.java    |  15 +
 .../java/org/apache/juneau/json/JsonParser.java |  20 +-
 .../org/apache/juneau/json/JsonSerializer.java  |  43 +-
 .../juneau/json/JsonSerializerContext.java      |  17 -
 .../juneau/json/JsonSerializerSession.java      |  16 +-
 .../java/org/apache/juneau/json/JsonWriter.java |   9 +-
 .../apache/juneau/msgpack/MsgPackParser.java    | 139 ++--
 .../juneau/msgpack/MsgPackSerializer.java       |  15 +-
 .../org/apache/juneau/parser/ParserGroup.java   |   4 +-
 .../org/apache/juneau/parser/ParserReader.java  |  35 +-
 .../org/apache/juneau/parser/ParserSession.java |  74 ++
 .../serializer/OutputStreamSerializer.java      |  16 +-
 .../apache/juneau/serializer/Serializer.java    |  15 +-
 .../juneau/serializer/SerializerContext.java    |  16 +-
 .../juneau/serializer/SerializerGroup.java      |  14 +-
 .../juneau/serializer/SerializerSession.java    |  78 +-
 .../juneau/serializer/SerializerWriter.java     |  39 +-
 .../juneau/serializer/WriterSerializer.java     |   2 +-
 .../transform/AnnotationBeanFilterBuilder.java  |  19 +-
 .../org/apache/juneau/transform/BeanFilter.java |  35 +-
 .../juneau/transform/BeanFilterBuilder.java     |  88 +--
 .../org/apache/juneau/transform/package.html    |  75 --
 .../apache/juneau/urlencoding/UonParser.java    | 223 +++---
 .../juneau/urlencoding/UonParserContext.java    |  20 +-
 .../juneau/urlencoding/UonParserSession.java    |  14 +-
 .../juneau/urlencoding/UonSerializer.java       | 248 ++----
 .../urlencoding/UonSerializerContext.java       |  80 --
 .../urlencoding/UonSerializerSession.java       |  26 +-
 .../apache/juneau/urlencoding/UonWriter.java    | 104 +--
 .../juneau/urlencoding/UrlEncodingParser.java   |  41 +-
 .../urlencoding/UrlEncodingSerializer.java      | 134 +---
 .../urlencoding/doc-files/Example_HTML.png      | Bin 32778 -> 136001 bytes
 .../doc-files/Example_UrlEncoding.png           | Bin 20958 -> 0 bytes
 .../juneau/urlencoding/doc-files/rfc_uon.txt    | 177 ++---
 .../org/apache/juneau/urlencoding/package.html  | 344 +++++----
 .../java/org/apache/juneau/xml/XmlParser.java   |  26 +-
 .../apache/juneau/xml/XmlSchemaSerializer.java  |   2 +-
 .../org/apache/juneau/xml/XmlSerializer.java    |   8 +-
 .../apache/juneau/xml/XmlSerializerSession.java |   2 +-
 .../java/org/apache/juneau/xml/XmlWriter.java   |   6 +-
 .../src/main/javadoc/doc-files/Server.Uon.png   | Bin 28160 -> 0 bytes
 .../javadoc/doc-files/Server.UrlEncoding.png    | Bin 32516 -> 0 bytes
 juneau-core/src/main/javadoc/overview.html      |  58 +-
 .../src/main/javadoc/resources/juneau-code.css  |  10 +-
 .../examples/rest/AddressBookResourceTest.java  |  16 +-
 .../juneau/examples/rest/RestTestcase.java      |  37 +
 .../juneau/examples/rest/RootResourcesTest.java |   2 +-
 .../SampleRemoteableServicesResourceTest.java   |   4 +-
 .../juneau/examples/rest/TestMicroservice.java  |  57 ++
 .../rest/TestMultiPartFormPostsTest.java        |   2 +-
 .../apache/juneau/examples/rest/TestUtils.java  |   2 +-
 .../apache/juneau/examples/rest/_TestSuite.java |  18 +-
 .../apache/juneau/rest/test/ParamsResource.java |  10 +-
 .../juneau/rest/test/AcceptCharsetTest.java     |   2 +-
 .../rest/test/BeanContextPropertiesTest.java    |   2 +-
 .../juneau/rest/test/CallbackStringsTest.java   |   2 +-
 .../juneau/rest/test/CharsetEncodingsTest.java  |   2 +-
 .../juneau/rest/test/ClientVersionTest.java     |   2 +-
 .../org/apache/juneau/rest/test/ConfigTest.java |   2 +-
 .../org/apache/juneau/rest/test/Constants.java  |   2 +-
 .../apache/juneau/rest/test/ContentTest.java    | 102 +--
 .../rest/test/DefaultContentTypesTest.java      |   2 +-
 .../juneau/rest/test/ErrorConditionsTest.java   |   2 +-
 .../org/apache/juneau/rest/test/GroupsTest.java |   2 +-
 .../org/apache/juneau/rest/test/GzipTest.java   |   2 +-
 .../juneau/rest/test/InheritanceTest.java       |   2 +-
 .../apache/juneau/rest/test/LargePojosTest.java |   2 +-
 .../apache/juneau/rest/test/MessagesTest.java   |   2 +-
 .../juneau/rest/test/NlsPropertyTest.java       |   2 +-
 .../org/apache/juneau/rest/test/NlsTest.java    |   2 +-
 .../juneau/rest/test/NoParserInputTest.java     |   2 +-
 .../apache/juneau/rest/test/OnPostCallTest.java |   2 +-
 .../apache/juneau/rest/test/OnPreCallTest.java  |   2 +-
 .../juneau/rest/test/OptionsWithoutNlsTest.java |   2 +-
 .../rest/test/OverlappingMethodsTest.java       |   2 +-
 .../org/apache/juneau/rest/test/ParamsTest.java |  80 +-
 .../apache/juneau/rest/test/ParsersTest.java    |   2 +-
 .../org/apache/juneau/rest/test/PathTest.java   |   2 +-
 .../org/apache/juneau/rest/test/PathsTest.java  |   2 +-
 .../apache/juneau/rest/test/PropertiesTest.java |   2 +-
 .../apache/juneau/rest/test/RestClientTest.java |   2 +-
 .../apache/juneau/rest/test/RestTestcase.java   |  36 +
 .../apache/juneau/rest/test/RestUtilsTest.java  |   2 +-
 .../juneau/rest/test/SerializersTest.java       |   2 +-
 .../juneau/rest/test/StaticFilesTest.java       |   2 +-
 .../juneau/rest/test/TestMicroservice.java      |  60 ++
 .../org/apache/juneau/rest/test/TestUtils.java  |   4 +-
 .../apache/juneau/rest/test/TransformsTest.java |   2 +-
 .../org/apache/juneau/rest/test/UrisTest.java   |   2 +-
 .../apache/juneau/rest/test/UrlContentTest.java |   2 +-
 .../juneau/rest/test/UrlPathPatternTest.java    |   2 +-
 .../org/apache/juneau/rest/test/_TestSuite.java |  22 +-
 .../org/apache/juneau/rest/RestRequest.java     |  18 +-
 .../apache/juneau/rest/RestServletDefault.java  |  12 -
 .../rest/jena/RestServletJenaDefault.java       |  12 -
 .../juneau/rest/response/DefaultHandler.java    |   2 +-
 155 files changed, 2815 insertions(+), 2907 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java 
b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
index 468afc0..3d5baef 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfParser.java
@@ -182,19 +182,10 @@ public class RdfParser extends ReaderParser {
                if (rbm.hasBeanUri() && r2.getURI() != null)
                        rbm.getBeanUriProperty().set(m, r2.getURI());
                Property subTypeIdProperty = null;
-               BeanPropertyMeta stp = bm.getSubTypeProperty();
-               if (stp != null) {
-                       subTypeIdProperty = session.getProperty(stp.getName());
-                       Statement st = r2.getProperty(subTypeIdProperty);
-                       if (st == null)
-                               throw new ParseException(session, "Could not 
find subtype ID property for bean of type ''{0}''", m.getClassMeta());
-                       String subTypeId = st.getLiteral().getString();
-                       stp.set(m, subTypeId);
-               }
                for (StmtIterator i = r2.listProperties(); i.hasNext();) {
                        Statement st = i.next();
                        Property p = st.getPredicate();
-                       if (p.equals(subTypeIdProperty))
+                       if (subTypeIdProperty != null && 
p.equals(subTypeIdProperty))
                                continue;
                        String key = session.decodeString(p.getLocalName());
                        BeanPropertyMeta pMeta = m.getPropertyMeta(key);
@@ -212,14 +203,8 @@ public class RdfParser extends ReaderParser {
                                        setName(cm, value, key);
                                        pMeta.set(m, value);
                                }
-                       } else if (! (p.equals(session.getRootProperty()) || 
p.equals(session.getTypeProperty()) || p.equals(subTypeIdProperty))) {
-                               if (bm.isSubTyped()) {
-                                       RDFNode o = st.getObject();
-                                       Object value = parseAnything(session, 
object(), o, m.getBean(false), pMeta);
-                                       m.put(key, value);
-                               } else {
-                                       onUnknownProperty(session, key, m, -1, 
-1);
-                               }
+                       } else if (! (p.equals(session.getRootProperty()) || 
p.equals(session.getTypeProperty()) || (subTypeIdProperty != null && 
p.equals(subTypeIdProperty)))) {
+                               onUnknownProperty(session, key, m, -1, -1);
                        }
                        session.setCurrentProperty(null);
                }
@@ -240,15 +225,15 @@ public class RdfParser extends ReaderParser {
                PojoSwap<T,Object> transform = 
(PojoSwap<T,Object>)eType.getPojoSwap();
                ClassMeta<?> sType = eType.getSerializedClassMeta();
                session.setCurrentClass(sType);
-               BeanRegistry breg = pMeta == null ? session.getBeanRegistry() : 
pMeta.getBeanRegistry();
 
                if (! sType.canCreateNewInstance(outer)) {
                        if (n.isResource()) {
                                Statement st = 
n.asResource().getProperty(session.getTypeProperty());
                                if (st != null) {
                                        String c = st.getLiteral().getString();
-                                       if (breg.hasName(c))
-                                               sType = eType = 
(ClassMeta<T>)breg.getClassMeta(c);
+                                       ClassMeta tcm = session.getClassMeta(c, 
pMeta, eType);
+                                       if (tcm != null)
+                                               sType = eType = tcm;
                                }
                        }
                }
@@ -337,6 +322,14 @@ public class RdfParser extends ReaderParser {
                        o = sType.newInstanceFromString(outer, 
session.decodeString(getValue(session, n, outer)));
                } else if (sType.canCreateNewInstanceFromNumber(outer)) {
                        o = sType.newInstanceFromNumber(session, outer, 
parseNumber(getValue(session, n, outer).toString(), 
sType.getNewInstanceFromNumberClass()));
+               } else if (n.isResource()) {
+                       Resource r = n.asResource();
+                       Map m = new ObjectMap(session);
+                       parseIntoMap(session, r, m, sType.getKeyType(), 
sType.getValueType());
+                       if (m.containsKey(session.getBeanTypePropertyName()))
+                               o = session.cast((ObjectMap)m, pMeta, eType);
+                       else
+                               throw new ParseException(session, "Class 
''{0}'' could not be instantiated.  Reason: ''{1}''", 
sType.getInnerClass().getName(), sType.getNotABeanReason());
                } else {
                        throw new ParseException("Class ''{0}'' could not be 
instantiated.  Reason: ''{1}''", sType.getInnerClass().getName(), 
sType.getNotABeanReason());
                }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java 
b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
index 9bb6d94..4746592 100644
--- a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
+++ b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializer.java
@@ -189,6 +189,8 @@ public class RdfSerializer extends WriterSerializer {
                        sType = eType.getSerializedClassMeta();
                }
 
+               String typeName = session.getBeanTypeName(eType, aType, bpm);
+
                RDFNode n = null;
 
                if (o == null || sType.isChar() && ((Character)o).charValue() 
== 0) {
@@ -221,7 +223,7 @@ public class RdfSerializer extends WriterSerializer {
                                        uri = rbm.getBeanUriProperty().get(bm);
                                String uri2 = getUri(session, uri, null);
                                n = m.createResource(uri2);
-                               serializeBeanMap(session, bm, (Resource)n);
+                               serializeBeanMap(session, bm, (Resource)n, 
typeName);
                        } else {
                                Map m2 = (Map)o;
                                n = m.createResource();
@@ -236,7 +238,7 @@ public class RdfSerializer extends WriterSerializer {
                                uri = rbm.getBeanUriProperty().get(bm);
                        String uri2 = getUri(session, uri, null);
                        n = m.createResource(uri2);
-                       serializeBeanMap(session, bm, (Resource)n);
+                       serializeBeanMap(session, bm, (Resource)n, typeName);
 
                } else if (sType.isCollectionOrArray() || (wType != null && 
wType.isCollection())) {
                        Collection c = session.sort(sType.isCollection() ? 
(Collection)o : toList(sType.getInnerClass(), o));
@@ -315,8 +317,8 @@ public class RdfSerializer extends WriterSerializer {
                }
        }
 
-       private void serializeBeanMap(RdfSerializerSession session, BeanMap<?> 
m, Resource r) throws SerializeException {
-               List<BeanPropertyValue> l = m.getValues(session.isTrimNulls());
+       private void serializeBeanMap(RdfSerializerSession session, BeanMap<?> 
m, Resource r, String typeName) throws SerializeException {
+               List<BeanPropertyValue> l = m.getValues(session.isTrimNulls(), 
typeName != null ? session.createBeanTypeNameProperty(m, typeName) : null);
                Collections.reverse(l);
                for (BeanPropertyValue bpv : l) {
                        BeanPropertyMeta pMeta = bpv.getMeta();
@@ -756,8 +758,8 @@ public class RdfSerializer extends WriterSerializer {
        }
 
        @Override /* Serializer */
-       public RdfSerializer setUseIndentation(boolean value) throws 
LockedException {
-               super.setUseIndentation(value);
+       public RdfSerializer setUseWhitespace(boolean value) throws 
LockedException {
+               super.setUseWhitespace(value);
                return this;
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
 
b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
index 831ba08..d03b775 100644
--- 
a/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
+++ 
b/juneau-core-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerSession.java
@@ -60,7 +60,7 @@ public final class RdfSerializerSession extends 
SerializerSession {
        protected RdfSerializerSession(RdfSerializerContext ctx, ObjectMap op, 
Object output, Method javaMethod, Locale locale, TimeZone timeZone, MediaType 
mediaType) {
                super(ctx, op, output, javaMethod, locale, timeZone, mediaType);
                ObjectMap jenaSettings = new ObjectMap();
-               jenaSettings.put("rdfXml.tab", isUseIndentation() ? 2 : 0);
+               jenaSettings.put("rdfXml.tab", isUseWhitespace() ? 2 : 0);
                jenaSettings.put("rdfXml.attributeQuoteChar", 
Character.toString(getQuoteChar()));
                jenaSettings.putAll(ctx.jenaSettings);
                if (op == null || op.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java 
b/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java
index fb27219..8116344 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/BeanFilterTest.java
@@ -36,7 +36,7 @@ public class BeanFilterTest {
                a1.fb = new B2();
                ((B2)a1.fb).f2 = "f2";
                String r = s.serialize(a1);
-               
assertEquals("{subType:'A1',f0:'f0',fb:{subType:'B2',f0b:'f0b',f2:'f2'},f1:'f1'}",
 r);
+               
assertEquals("{_type:'A1',f0:'f0',fb:{_type:'B2',f0b:'f0b',f2:'f2'},f1:'f1'}", 
r);
 
                A a = p.parse(r, A.class);
                assertTrue(a instanceof A1);
@@ -45,7 +45,7 @@ public class BeanFilterTest {
                assertEquals("f2", ((B2)a.fb).f2);
 
                // Try out-of-order creation.
-               r = 
"{f0:'f0',f1:'f1',subType:'A1',fb:{f0b:'f0b',f2:'f2',subType:'B2'}}";
+               r = 
"{f0:'f0',f1:'f1',_type:'A1',fb:{f0b:'f0b',f2:'f2',_type:'B2'}}";
                a = p.parse(r, A.class);
                assertTrue(a instanceof A1);
                assertTrue(a.fb instanceof B2);
@@ -53,10 +53,7 @@ public class BeanFilterTest {
                assertEquals("f2", ((B2)a.fb).f2);
        }
 
-       @Bean(
-               subTypeProperty="subType",
-               subTypes={A1.class,A2.class}
-       )
+       @Bean(beanDictionary={A1.class, A2.class})
        public static abstract class A {
                public String f0 = "f0";
                public B fb;
@@ -72,10 +69,7 @@ public class BeanFilterTest {
                public String f2;
        }
 
-       @Bean(
-               subTypeProperty="subType",
-               subTypes={B1.class,B2.class}
-       )
+       @Bean(beanDictionary={B1.class,B2.class})
        public static abstract class B {
                public String f0b = "f0b";
        }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java 
b/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java
index 3343a6d..0b328db 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/BeanMapTest.java
@@ -652,13 +652,13 @@ public class BeanMapTest {
                BeanMap m = session.toBeanMap(t7);
                m.put("enum1", "ONE");
                m.put("enum2", "TWO");
-               assertEquals("{enum1:'ONE',enum2:'TWO'}", 
serializer.serialize(t7));
+               assertEquals("{_type:'H',enum1:'ONE',enum2:'TWO'}", 
serializer.serialize(t7));
                assertEquals(HEnum.ONE, t7.enum1);
                assertEquals(HEnum.TWO, t7.getEnum2());
 
                // Use BeanContext to create bean instance.
                m = 
BeanContext.DEFAULT.createSession().newBeanMap(H.class).load("{enum1:'TWO',enum2:'THREE'}");
-               assertEquals("{enum1:'TWO',enum2:'THREE'}", 
serializer.serialize(m.getBean()));
+               assertEquals("{_type:'H',enum1:'TWO',enum2:'THREE'}", 
serializer.serialize(m.getBean()));
                t7 = (H)m.getBean();
                assertEquals(HEnum.TWO, t7.enum1);
                assertEquals(HEnum.THREE, t7.getEnum2());
@@ -666,7 +666,7 @@ public class BeanMapTest {
                // Create instance directly from JSON.
                JsonParser p = new JsonParser().addToBeanDictionary(H.class);
                t7 = (H)p.parse("{_type:'H',enum1:'THREE',enum2:'ONE'}", 
Object.class);
-               assertEquals("{enum1:'THREE',enum2:'ONE'}", 
serializer.serialize(t7));
+               assertEquals("{_type:'H',enum1:'THREE',enum2:'ONE'}", 
serializer.serialize(t7));
                assertEquals(HEnum.THREE, t7.enum1);
                assertEquals(HEnum.ONE, t7.getEnum2());
        }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
----------------------------------------------------------------------
diff --git a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java 
b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
index 1e278b5..7f6bade 100755
--- a/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
+++ b/juneau-core-test/src/test/java/org/apache/juneau/TestUtils.java
@@ -147,7 +147,7 @@ public class TestUtils {
 
        private static void printLines(String[] lines) {
                for (int i = 0; i < lines.length; i++)
-                       System.err.println(String.format("%4s:" + lines[i], 
i+1));
+                       System.err.println(String.format("%4s:" + lines[i], 
i+1)); // NOT DEBUG
        }
 
        /**
@@ -221,7 +221,7 @@ public class TestUtils {
         * Test whitespace and generated schema.
         */
        public static void validateXml(Object o, XmlSerializer s) throws 
Exception {
-               s = 
s.clone().setUseIndentation(true).setEnableNamespaces(true).setAddNamespaceUrisToRoot(true);
+               s = 
s.clone().setUseWhitespace(true).setEnableNamespaces(true).setAddNamespaceUrisToRoot(true);
                String xml = s.serialize(o);
 
                String xmlSchema = null;
@@ -231,10 +231,10 @@ public class TestUtils {
                        TestUtils.checkXmlWhitespace(xmlSchema);
                        TestUtils.validateXml(xml, xmlSchema);
                } catch (Exception e) {
-                       System.err.println("---XML---");
-                       System.err.println(xml);
-                       System.err.println("---XMLSchema---");
-                       System.err.println(xmlSchema);
+                       System.err.println("---XML---");       // NOT DEBUG
+                       System.err.println(xml);               // NOT DEBUG
+                       System.err.println("---XMLSchema---"); // NOT DEBUG
+                       System.err.println(xmlSchema);         // NOT DEBUG
                        throw e;
                }
        }
@@ -271,7 +271,7 @@ public class TestUtils {
 
        public static void debugOut(Object o) {
                try {
-                       
System.err.println(StringUtils.decodeHex(JsonSerializer.DEFAULT_LAX.serialize(o)));
+                       
System.err.println(StringUtils.decodeHex(JsonSerializer.DEFAULT_LAX.serialize(o)));
 // NOT DEBUG
                } catch (SerializeException e) {
                        e.printStackTrace();
                }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
index 7d30f9a..d99f5ff 100755
--- 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java
@@ -19,6 +19,7 @@ import java.util.*;
 
 import javax.xml.datatype.*;
 
+import org.apache.juneau.BeanDictionaryMap;
 import org.apache.juneau.annotation.*;
 import org.apache.juneau.json.*;
 import org.apache.juneau.json.annotation.*;
@@ -231,24 +232,23 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                Object r = s.serialize(b1);
                B b = p.parse(r, B.class);
                assertTrue(b instanceof B1);
-               assertObjectEquals("{subType:'B1',f0:'f0',f1:'f1'}", b, js);
+               assertObjectEquals("{_type:'B1',f0:'f0',f1:'f1'}", b, js);
 
                B2 b2 = B2.create();
                r = s.serialize(b2);
                b = p.parse(r, B.class);
                assertTrue(b instanceof B2);
-               assertObjectEquals("{subType:'B2',f0:'f0',f2:1}", b, js);
+               assertObjectEquals("{_type:'B2',f0:'f0',f2:1}", b, js);
 
                B3 b3 = B3.create();
                r = s.serialize(b3);
                b = p.parse(r, B.class);
                assertTrue(b instanceof B3);
-               
assertObjectEquals("{subType:'B3',f0:'f0',f3:'2001-01-01T12:34:56.789Z'}", b, 
js);
+               
assertObjectEquals("{_type:'B3',f0:'f0',f3:'2001-01-01T12:34:56.789Z'}", b, js);
 }
 
        @Bean(
-               subTypeProperty="subType",
-               subTypes={B1.class,B2.class,B3.class}
+               beanDictionary={B1.class,B2.class,B3.class}
        )
        public abstract static class B {
                public String f0 = "f0";
@@ -357,13 +357,18 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
        public static class CFilter extends BeanFilterBuilder {
                public CFilter() {
                        super(C.class);
-                       setSubTypeProperty("subType");
-                       addSubType("C1", C1.class);
-                       addSubType("C2", C2.class);
-                       addSubType("C3", C3.class);
+                       addToBeanDictionary(CFilterDictionaryMap.class);
                }
        }
 
+       public static class CFilterDictionaryMap extends BeanDictionaryMap {
+               public CFilterDictionaryMap() {
+                       addClass("C1", C1.class);
+                       addClass("C2", C2.class);
+                       addClass("C3", C3.class);
+               }
+       }
+       
        
//====================================================================================================
        // Test @Bean(subTypeProperty=xxx) with real bean property
        
//====================================================================================================
@@ -380,16 +385,12 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                Object r = s.serialize(ba1);
                BA b = p.parse(r, BA.class);
                assertTrue(b instanceof BA1);
-               assertEquals("BA1", b.subType);
-               
assertObjectEquals("{subType:'BA1',f0a:'f0a',f0b:'f0b',f1:'f1'}", b);
+               assertObjectEquals("{_type:'BA1',f0a:'f0a',f0b:'f0b',f1:'f1'}", 
b);
        }
 
-       @Bean(
-               subTypeProperty="subType",
-               subTypes={BA1.class,BA2.class}
-       )
+       @Bean(beanDictionary={BA1.class,BA2.class})
        public abstract static class BA {
-               public String f0a, subType, f0b;
+               public String f0a, f0b;
        }
 
        @Bean(typeName="BA1")
@@ -400,7 +401,6 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                        b.f0a = "f0a";
                        b.f0b = "f0b";
                        b.f1 = "f1";
-                       b.subType = "xxx";// Should be ignored.
                        return b;
                }
        }
@@ -427,12 +427,11 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                Object r = s.serialize(c1);
                CA c = p.parse(r, CA.class);
                assertTrue(c instanceof CA1);
-               assertEquals("CA1", c.subType);
-               
assertObjectEquals("{f0a:'f0a',subType:'CA1',f0b:'f0b',f1:'f1'}", c);
+               assertObjectEquals("{f0a:'f0a',f0b:'f0b',f1:'f1'}", c);
        }
 
        public abstract static class CA {
-               public String f0a, subType, f0b;
+               public String f0a, f0b;
        }
 
        public static class CA1 extends CA {
@@ -442,7 +441,6 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
                        c.f0a = "f0a";
                        c.f0b = "f0b";
                        c.f1 = "f1";
-                       c.subType = "xxx";// Should be ignored.
                        return c;
                }
        }
@@ -454,12 +452,17 @@ public class RoundTripBeanMapsTest extends RoundTripTest {
        public static class CAFilter extends BeanFilterBuilder {
                public CAFilter() {
                        super(CA.class);
-                       setSubTypeProperty("subType");
-                       addSubType("CA1", CA1.class);
-                       addSubType("CA2", CA2.class);
+                       addToBeanDictionary(CAFilterDictionaryMap.class);
                }
        }
 
+       public static class CAFilterDictionaryMap extends BeanDictionaryMap {
+               public CAFilterDictionaryMap() {
+                       addClass("CA1", CA1.class);
+                       addClass("CA2", CA2.class);
+               }
+       }
+       
        
//====================================================================================================
        // Test @Bean(properties=xxx)
        
//====================================================================================================

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
index 33b6886..7bbd8d9 100755
--- 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripLargeObjectsTest.java
@@ -66,7 +66,7 @@ public class RoundTripLargeObjectsTest extends RoundTripTest {
                        },
                        { /* 3 */
                                "Xml DEFAULT w/namespaces,validation",
-                               new 
XmlSerializer.NsSq().setTrimNullProperties(false).setAddNamespaceUrisToRoot(true).setUseIndentation(true),
+                               new 
XmlSerializer.NsSq().setTrimNullProperties(false).setAddNamespaceUrisToRoot(true).setUseWhitespace(true),
                                XmlParser.DEFAULT,
                                CHECK_XML_WHITESPACE | VALIDATE_XML
                        },
@@ -84,13 +84,13 @@ public class RoundTripLargeObjectsTest extends 
RoundTripTest {
                        },
                        { /* 6 */
                                "UrlEncoding",
-                               new 
UrlEncodingSerializer().setTrimNullProperties(false).setSimpleMode(false),
+                               new 
UrlEncodingSerializer().setTrimNullProperties(false),
                                UrlEncodingParser.DEFAULT,
                                0
                        },
                        { /* 7 */
                                "Uon",
-                               new 
UonSerializer().setTrimNullProperties(false).setSimpleMode(false),
+                               new 
UonSerializer().setTrimNullProperties(false),
                                UonParser.DEFAULT,
                                0
                        },
@@ -144,22 +144,22 @@ public class RoundTripLargeObjectsTest extends 
RoundTripTest {
                A a = A.create();
                Serializer s = getSerializer();
                Parser p = getParser();
-               System.err.println("\n---Speed test on " + label + "---");
+               System.err.println("\n---Speed test on " + label + "---"); // 
NOT DEBUG
                Object r = "";
 
                // Initialization run.
                r = s.serialize(a);
-               System.err.println(MessageFormat.format("Serialized size: 
{0,number} ", (r instanceof String ? r.toString().length() : 
((byte[])r).length)));
+               System.err.println(MessageFormat.format("Serialized size: 
{0,number} ", (r instanceof String ? r.toString().length() : 
((byte[])r).length))); // NOT DEBUG
                p.parse(r, A.class);
 
                startTime = System.currentTimeMillis();
                for (int i = 0; i < numRuns; i++)
                        r = s.serialize(a);
-               System.err.println(MessageFormat.format("Average serialize 
time: {0,number}ms", (System.currentTimeMillis()-startTime)/numRuns));
+               System.err.println(MessageFormat.format("Average serialize 
time: {0,number}ms", (System.currentTimeMillis()-startTime)/numRuns)); // NOT 
DEBUG
                startTime = System.currentTimeMillis();
                for (int i = 0; i < numRuns; i++)
                        a = p.parse(r, A.class);
-               System.err.println(MessageFormat.format("Average parsed time: 
{0,number}ms", (System.currentTimeMillis()-startTime)/numRuns));
+               System.err.println(MessageFormat.format("Average parsed time: 
{0,number}ms", (System.currentTimeMillis()-startTime)/numRuns)); // NOT DEBUG
        }
 
        public static class A {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
index a644e85..f7d2d13 100755
--- 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripMapsTest.java
@@ -121,12 +121,12 @@ public class RoundTripMapsTest extends RoundTripTest {
                assertEquals(e, r);
 
                s = new 
UonSerializer.Encoding().addPojoSwaps(getPojoSwaps()).setTrimNullProperties(false);
-               e = "$o(AQID=a,BAUG=%00,%00=b)";
+               e = "(AQID=a,BAUG=null,null=b)";
                r = s.serialize(t);
                assertEquals(e, r);
 
                s = new 
UrlEncodingSerializer().addPojoSwaps(getPojoSwaps()).setTrimNullProperties(false);
-               e = "AQID=a&BAUG=%00&%00=b";
+               e = "AQID=a&BAUG=null&null=b";
                r = s.serialize(t);
                assertEquals(e, r);
        }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
index 1912417..25c8222 100755
--- 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTest.java
@@ -66,7 +66,7 @@ public abstract class RoundTripTest {
                        },
                        { /* 3 */
                                "Xml - namespaces, validation, readable",
-                               new 
XmlSerializer.NsSq().setTrimNullProperties(false).setAddNamespaceUrisToRoot(true).setUseIndentation(true),
+                               new 
XmlSerializer.NsSq().setTrimNullProperties(false).setAddNamespaceUrisToRoot(true).setUseWhitespace(true),
                                XmlParser.DEFAULT,
                                CHECK_XML_WHITESPACE | VALIDATE_XML
                        },
@@ -96,37 +96,37 @@ public abstract class RoundTripTest {
                        },
                        { /* 8 */
                                "Uon - default",
-                               new 
UonSerializer().setTrimNullProperties(false).setSimpleMode(false),
+                               new 
UonSerializer().setTrimNullProperties(false),
                                UonParser.DEFAULT,
                                0
                        },
                        { /* 9 */
                                "Uon - readable",
-                               new 
UonSerializer.Readable().setTrimNullProperties(false).setSimpleMode(false),
-                               UonParser.DEFAULT_WS_AWARE,
+                               new 
UonSerializer.Readable().setTrimNullProperties(false),
+                               UonParser.DEFAULT,
                                0
                        },
                        { /* 10 */
                                "Uon - encoded",
-                               new 
UonSerializer.Encoding().setTrimNullProperties(false).setSimpleMode(false),
+                               new 
UonSerializer.Encoding().setTrimNullProperties(false),
                                UonParser.DEFAULT_DECODING,
                                0
                        },
                        { /* 11 */
                                "UrlEncoding - default",
-                               new 
UrlEncodingSerializer().setTrimNullProperties(false).setSimpleMode(false),
+                               new 
UrlEncodingSerializer().setTrimNullProperties(false),
                                UrlEncodingParser.DEFAULT,
                                0
                        },
                        { /* 12 */
                                "UrlEncoding - readable",
-                               new 
UrlEncodingSerializer.Readable().setTrimNullProperties(false).setSimpleMode(false),
-                               UrlEncodingParser.DEFAULT_WS_AWARE,
+                               new 
UrlEncodingSerializer.Readable().setTrimNullProperties(false),
+                               UrlEncodingParser.DEFAULT,
                                0
                        },
                        { /* 13 */
                                "UrlEncoding - expanded params",
-                               new 
UrlEncodingSerializer().setExpandedParams(true).setSimpleMode(false),
+                               new 
UrlEncodingSerializer().setExpandedParams(true),
                                new UrlEncodingParser().setExpandedParams(true),
                                0
                        },
@@ -192,8 +192,8 @@ public abstract class RoundTripTest {
        public boolean debug = false;
 
        public RoundTripTest(String label, Serializer s, Parser p, int flags) 
throws Exception {
-               this.s = 
s.clone().addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps()).addToBeanDictionary(getDictionary());
-               this.p = p == null ? null : 
p.clone().addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps()).addToBeanDictionary(getDictionary());
+               this.s = 
s.clone().addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps()).addToBeanDictionary(getDictionary()).setProperties(getProperties());
+               this.p = p == null ? null : 
p.clone().addBeanFilters(getBeanFilters()).addPojoSwaps(getPojoSwaps()).addToBeanDictionary(getDictionary()).setProperties(getProperties());
                this.label = label;
 
                Map<Class<Object>, Class<? extends Object>> m = 
getImplClasses();
@@ -221,6 +221,10 @@ public abstract class RoundTripTest {
        public Class<?>[] getDictionary() {
                return new Class<?>[0];
        }
+       
+       public ObjectMap getProperties() {
+               return ObjectMap.EMPTY_MAP;
+       }
 
        public <T> Map<Class<T>,Class<? extends T>> getImplClasses() {
                return null;
@@ -286,7 +290,7 @@ public abstract class RoundTripTest {
                }
 
                if (debug)
-                       System.err.println("Serialized contents from 
["+label+"]...\n---START---\n" + (out instanceof byte[] ? 
TestUtils.toReadableBytes((byte[])out) : out) + "\n---END---\n");
+                       System.err.println("Serialized contents from 
["+label+"]...\n---START---\n" + (out instanceof byte[] ? 
TestUtils.toReadableBytes((byte[])out) : out) + "\n---END---\n"); // NOT DEBUG
 
                if (validateXmlWhitespace)
                        TestUtils.checkXmlWhitespace(out.toString());

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
index c4d792f..cc6c1b9 100755
--- 
a/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
@@ -275,14 +275,11 @@ public class RoundTripTransformBeansTest extends 
RoundTripTest {
 
                C1 c1 = C3.create();
                String r = s.serialize(c1);
-               
assertEquals("{\"type\":\"C3\",\"f1\":{\"f2\":\"f2\",\"f3\":3}}", r);
+               
assertEquals("{\"_type\":\"C3\",\"f1\":{\"f2\":\"f2\",\"f3\":3}}", r);
        }
 
 
-       @Bean(
-               subTypeProperty="type",
-               subTypes={C3.class}
-       )
+       @Bean(beanDictionary={C3.class})
        public static interface C1<T> extends Serializable {
                void setF1(T f1);
                T getF1();

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/097b8103/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
----------------------------------------------------------------------
diff --git 
a/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
 
b/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
index bd98a6d..358d8e3 100755
--- 
a/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
+++ 
b/juneau-core-test/src/test/java/org/apache/juneau/dto/cognos/CognosXmlTest.java
@@ -73,7 +73,7 @@ public class CognosXmlTest {
                };
 
                XmlSerializer s = new XmlSerializer()
-                       .setUseIndentation(true)
+                       .setUseWhitespace(true)
                        .setQuoteChar('\'')
                        .setDefaultNamespace("cognos")
                        .setEnableNamespaces(true)


Reply via email to