This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 7d1ea40  Javadocs.
7d1ea40 is described below

commit 7d1ea409de293a27c969afcce250dab53d46b98d
Author: JamesBognar <[email protected]>
AuthorDate: Sun Jul 15 13:55:10 2018 -0400

    Javadocs.
---
 .../apache/juneau/httppart/UonPartParserTest.java  | 112 ++++----
 .../org/apache/juneau/httppart/HttpPartParser.java |  51 ++++
 .../juneau/httppart/HttpPartParserSession.java     |  39 ++-
 .../apache/juneau/httppart/HttpPartSerializer.java |  15 ++
 .../juneau/httppart/HttpPartSerializerSession.java |   2 +-
 .../apache/juneau/httppart/OpenApiPartParser.java  |   2 +-
 .../apache/juneau/httppart/SimplePartParser.java   |  17 ++
 .../juneau/httppart/SimplePartParserSession.java   |  21 +-
 .../juneau/httppart/SimplePartSerializer.java      |   5 +
 .../org/apache/juneau/httppart/UonPartParser.java  |  17 ++
 .../juneau/httppart/UonPartParserSession.java      |  89 ++++---
 .../apache/juneau/httppart/UonPartSerializer.java  |   9 +-
 juneau-doc/src/main/javadoc/overview.html          | 287 +++++++++++++++++----
 .../rest/test/client/RequestBeanProxyTest.java     |  14 +-
 .../rest/test/client/ThirdPartyProxyTest.java      |   7 +-
 15 files changed, 524 insertions(+), 163 deletions(-)

diff --git 
a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/UonPartParserTest.java
 
b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/UonPartParserTest.java
index 2b327a6..9bffad8 100644
--- 
a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/UonPartParserTest.java
+++ 
b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/httppart/UonPartParserTest.java
@@ -41,18 +41,18 @@ public class UonPartParserTest {
                // Simple string
                // Top level
                t = "a";
-               assertEquals("a", p.parse(HttpPartType.HEADER, t, bs.object()));
-               assertEquals("a", p.parse(HttpPartType.HEADER, t, bs.string()));
+               assertEquals("a", p.parse(null, t, bs.object()));
+               assertEquals("a", p.parse(null, t, bs.string()));
                t = "'a'";
-               assertEquals("a", p.parse(HttpPartType.HEADER, t, bs.string()));
-               assertEquals("a", p.parse(HttpPartType.HEADER, t, bs.object()));
+               assertEquals("a", p.parse(null, t, bs.string()));
+               assertEquals("a", p.parse(null, t, bs.object()));
                t = " 'a' ";
-               assertEquals("a", p.parse(HttpPartType.HEADER, t, bs.string()));
+               assertEquals("a", p.parse(null, t, bs.string()));
 
                // Simple map
                // Top level
                t = "(a=b,c=123,d=false,e=true,f=%00)";
-               m = p.parse(HttpPartType.HEADER, t, bs.getClassMeta(Map.class));
+               m = p.parse(null, t, bs.getClassMeta(Map.class));
                assertEquals("b", m.get("a"));
                assertTrue(m.get("c") instanceof Number);
                assertEquals(123, m.get("c"));
@@ -63,32 +63,32 @@ public class UonPartParserTest {
                assertEquals("%00", m.get("f"));
 
                t = "(a=b,c=123,d=false,e=true,f=null)";
-               m = p.parse(HttpPartType.HEADER, t, bs.getClassMeta(Map.class));
+               m = p.parse(null, t, bs.getClassMeta(Map.class));
                assertTrue(m.containsKey("f"));
                assertNull(m.get("f"));
 
                // null
                // Top level
                t = "null";
-               assertNull(p.parse(HttpPartType.HEADER, t, bs.object()));
+               assertNull(p.parse(null, t, bs.object()));
 
                // Empty array
                // Top level
                t = "@()";
-               l = (List)p.parse(HttpPartType.HEADER, t, bs.object());
+               l = (List)p.parse(null, t, bs.object());
                assertTrue(l.isEmpty());
                t = " @( ) ";
-               l = p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(List.class));
+               l = p.parse(null, t, bs.getClassMeta(List.class));
                assertTrue(l.isEmpty());
 
                // Empty 2 dimensional array
                t = "@(@())";
-               l = (List)p.parse(HttpPartType.HEADER, t, bs.object());
+               l = (List)p.parse(null, t, bs.object());
                assertTrue(l.size() == 1);
                l = (List)l.get(0);
                assertTrue(l.isEmpty());
                t = "@(@())";
-               l = (List)p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(LinkedList.class, List.class));
+               l = (List)p.parse(null, t, bs.getClassMeta(LinkedList.class, 
List.class));
                assertTrue(l.size() == 1);
                l = (List)l.get(0);
                assertTrue(l.isEmpty());
@@ -96,23 +96,23 @@ public class UonPartParserTest {
                // Array containing empty string
                // Top level
                t = "@('')";
-               l = (List)p.parse(HttpPartType.HEADER, t, bs.object());
+               l = (List)p.parse(null, t, bs.object());
                assertTrue(l.size() == 1);
                assertEquals("", l.get(0));
                t = "@('')";
-               l = (List)p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(List.class, String.class));
+               l = (List)p.parse(null, t, bs.getClassMeta(List.class, 
String.class));
                assertTrue(l.size() == 1);
                assertEquals("", l.get(0));
 
                // Array containing 3 empty strings
                t = "@('','','')";
-               l = (List)p.parse(HttpPartType.HEADER, t, bs.object());
+               l = (List)p.parse(null, t, bs.object());
                assertTrue(l.size() == 3);
                assertEquals("", l.get(0));
                assertEquals("", l.get(1));
                assertEquals("", l.get(2));
                t = "@('','','')";
-               l = (List)p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(List.class, Object.class));
+               l = (List)p.parse(null, t, bs.getClassMeta(List.class, 
Object.class));
                assertTrue(l.size() == 3);
                assertEquals("", l.get(0));
                assertEquals("", l.get(1));
@@ -121,22 +121,22 @@ public class UonPartParserTest {
                // String containing \u0000
                // Top level
                t = "'\u0000'";
-               assertEquals("\u0000", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("\u0000", p.parse(null, t, bs.object()));
                t = "'\u0000'";
-               assertEquals("\u0000", p.parse(HttpPartType.HEADER, t, 
bs.string()));
-               assertEquals("\u0000", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("\u0000", p.parse(null, t, bs.string()));
+               assertEquals("\u0000", p.parse(null, t, bs.object()));
 
                // Boolean
                // Top level
                t = "_value=false";
                Boolean b = false;
                t = "false";
-               b = (Boolean)p.parse(HttpPartType.HEADER, t, bs.object());
+               b = (Boolean)p.parse(null, t, bs.object());
                assertEquals(Boolean.FALSE, b);
-               b = p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(Boolean.class));
+               b = p.parse(null, t, bs.getClassMeta(Boolean.class));
                assertEquals(Boolean.FALSE, b);
                t = "false";
-               b = p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(Boolean.class));
+               b = p.parse(null, t, bs.getClassMeta(Boolean.class));
                assertEquals(Boolean.FALSE, b);
 
                // Number
@@ -145,69 +145,69 @@ public class UonPartParserTest {
                Integer i = -1;
                Double d = -1d;
                Float f = -1f;
-               i = (Integer)p.parse(HttpPartType.HEADER, t, bs.object());
+               i = (Integer)p.parse(null, t, bs.object());
                assertEquals(123, i.intValue());
-               i = p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(Integer.class));
+               i = p.parse(null, t, bs.getClassMeta(Integer.class));
                assertEquals(123, i.intValue());
-               d = p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(Double.class));
+               d = p.parse(null, t, bs.getClassMeta(Double.class));
                assertEquals(123, d.intValue());
-               f = p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(Float.class));
+               f = p.parse(null, t, bs.getClassMeta(Float.class));
                assertEquals(123, f.intValue());
                t = "123";
-               i = p.parse(HttpPartType.HEADER, t, 
bs.getClassMeta(Integer.class));
+               i = p.parse(null, t, bs.getClassMeta(Integer.class));
                assertEquals(123, i.intValue());
 
                // Unencoded chars
                // Top level
                t = "x;/?:@-_.!*'";
-               assertEquals("x;/?:@-_.!*'", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("x;/?:@-_.!*'", p.parse(null, t, bs.object()));
 
                // Encoded chars
                // Top level
                t = "x{}|\\^[]`<>#%\"&+";
-               assertEquals("x{}|\\^[]`<>#%\"&+", p.parse(HttpPartType.HEADER, 
t, bs.object()));
+               assertEquals("x{}|\\^[]`<>#%\"&+", p.parse(null, t, 
bs.object()));
                t = "x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B";
-               assertEquals("x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B", 
p.parse(HttpPartType.HEADER, t, bs.object()));
-               assertEquals("x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B", 
p.parse(HttpPartType.HEADER, t, bs.string()));
+               assertEquals("x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B", 
p.parse(null, t, bs.object()));
+               assertEquals("x%7B%7D%7C%5C%5E%5B%5D%60%3C%3E%23%25%22%26%2B", 
p.parse(null, t, bs.string()));
 
                // Special chars
                // These characters are escaped and not encoded.
                // Top level
                t = "'x$,()'";
-               assertEquals("x$,()", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("x$,()", p.parse(null, t, bs.object()));
 
                // Equals sign
                // Gets encoded at top level, and encoded+escaped at 2nd level.
                // Top level
                t = "'x='";
-               assertEquals("x=", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("x=", p.parse(null, t, bs.object()));
                t = "'x%3D'";
-               assertEquals("x%3D", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("x%3D", p.parse(null, t, bs.object()));
 
                // String starting with parenthesis
                // Top level
                t = "'()'";
-               assertEquals("()", p.parse(HttpPartType.HEADER, t, 
bs.object()));
-               assertEquals("()", p.parse(HttpPartType.HEADER, t, 
bs.string()));
+               assertEquals("()", p.parse(null, t, bs.object()));
+               assertEquals("()", p.parse(null, t, bs.string()));
 
                // String starting with $
                // Top level
                t = "$a";
-               assertEquals("$a", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("$a", p.parse(null, t, bs.object()));
                t = "$a";
-               assertEquals("$a", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("$a", p.parse(null, t, bs.object()));
 
                // Blank string
                // Top level
                t = "";
-               assertEquals("", p.parse(HttpPartType.HEADER, t, bs.object()));
+               assertEquals("", p.parse(null, t, bs.object()));
 
                // Newline character
                // Top level
                t = "'%0A'";
-               assertEquals("%0A", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("%0A", p.parse(null, t, bs.object()));
                t = "'\n'";
-               assertEquals("\n", p.parse(HttpPartType.HEADER, t, 
bs.object()));
+               assertEquals("\n", p.parse(null, t, bs.object()));
        }
 
        
//====================================================================================================
@@ -220,29 +220,29 @@ public class UonPartParserTest {
                // 2-byte UTF-8 character
                // Top level
                t = "¢";
-               assertEquals("¢", p.parse(HttpPartType.HEADER, t, bs.object()));
-               assertEquals("¢", p.parse(HttpPartType.HEADER, t, bs.string()));
+               assertEquals("¢", p.parse(null, t, bs.object()));
+               assertEquals("¢", p.parse(null, t, bs.string()));
                t = "%C2%A2";
-               assertEquals("%C2%A2", p.parse(HttpPartType.HEADER, t, 
bs.object()));
-               assertEquals("%C2%A2", p.parse(HttpPartType.HEADER, t, 
bs.string()));
+               assertEquals("%C2%A2", p.parse(null, t, bs.object()));
+               assertEquals("%C2%A2", p.parse(null, t, bs.string()));
 
                // 3-byte UTF-8 character
                // Top level
                t = "€";
-               assertEquals("€", p.parse(HttpPartType.HEADER, t, bs.object()));
-               assertEquals("€", p.parse(HttpPartType.HEADER, t, bs.string()));
+               assertEquals("€", p.parse(null, t, bs.object()));
+               assertEquals("€", p.parse(null, t, bs.string()));
                t = "%E2%82%AC";
-               assertEquals("%E2%82%AC", p.parse(HttpPartType.HEADER, t, 
bs.object()));
-               assertEquals("%E2%82%AC", p.parse(HttpPartType.HEADER, t, 
bs.string()));
+               assertEquals("%E2%82%AC", p.parse(null, t, bs.object()));
+               assertEquals("%E2%82%AC", p.parse(null, t, bs.string()));
 
                // 4-byte UTF-8 character
                // Top level
                t = "𤭢";
-               assertEquals("𤭢", p.parse(HttpPartType.HEADER, t, bs.object()));
-               assertEquals("𤭢", p.parse(HttpPartType.HEADER, t, bs.string()));
+               assertEquals("𤭢", p.parse(null, t, bs.object()));
+               assertEquals("𤭢", p.parse(null, t, bs.string()));
                t = "%F0%A4%AD%A2";
-               assertEquals("%F0%A4%AD%A2", p.parse(HttpPartType.HEADER, t, 
bs.object()));
-               assertEquals("%F0%A4%AD%A2", p.parse(HttpPartType.HEADER, t, 
bs.string()));
+               assertEquals("%F0%A4%AD%A2", p.parse(null, t, bs.object()));
+               assertEquals("%F0%A4%AD%A2", p.parse(null, t, bs.string()));
        }
 
        
//====================================================================================================
@@ -255,12 +255,12 @@ public class UonPartParserTest {
                String s = null;
 
                s = "(f1=foo,f2=123)";
-               t = p.parse(HttpPartType.HEADER, s, bs.getClassMeta(A.class));
+               t = p.parse(null, s, bs.getClassMeta(A.class));
                assertEquals("foo", t.f1);
                assertEquals(123, t.f2);
 
                s = "('f1'='foo','f2'=123)";
-               t = p.parse(HttpPartType.HEADER, s, bs.getClassMeta(A.class));
+               t = p.parse(null, s, bs.getClassMeta(A.class));
                assertEquals("foo", t.f1);
                assertEquals(123, t.f2);
        }
@@ -274,7 +274,7 @@ public class UonPartParserTest {
        public void testParseParameterObjectMap() throws Exception {
                String in = "(name='foo bar')";
 
-               ObjectMap r =  
UonPartParser.DEFAULT.createSession().parse(HttpPartType.QUERY, in, 
BeanContext.DEFAULT.createSession().getClassMeta(ObjectMap.class));
+               ObjectMap r =  
UonPartParser.DEFAULT.createSession().parse(null, in, 
BeanContext.DEFAULT.createSession().getClassMeta(ObjectMap.class));
 
                assertEquals("{name:'foo bar'}", 
SimpleJsonSerializer.DEFAULT.toString(r));
        }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartParser.java
index 1b71811..bfd00af 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartParser.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.httppart;
 
+import java.lang.reflect.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.parser.*;
 
@@ -47,4 +49,53 @@ public interface HttpPartParser {
         * @return A new parser session.
         */
        public HttpPartParserSession createSession(ParserSessionArgs args);
+
+       /**
+        * Convenience method for creating a no-arg session and parsing a part.
+        *
+        * @param partType The category of value being parsed.
+        * @param schema
+        *      Schema information about the part.
+        *      <br>May be <jk>null</jk>.
+        *      <br>Not all part parsers use the schema information.
+        * @param in The value being parsed.
+        * @param toType The POJO type to transform the input into.
+        * @return The parsed value.
+        * @throws ParseException If a problem occurred while trying to parse 
the input.
+        * @throws SchemaValidationException If the input fails schema 
validation.
+        */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> toType) throws ParseException, SchemaValidationException;
+
+       /**
+        * Convenience method for creating a no-arg session and parsing a part.
+        *
+        * @param partType The category of value being parsed.
+        * @param schema
+        *      Schema information about the part.
+        *      <br>May be <jk>null</jk>.
+        *      <br>Not all part parsers use the schema information.
+        * @param in The value being parsed.
+        * @param toType The POJO type to transform the input into.
+        * @return The parsed value.
+        * @throws ParseException If a problem occurred while trying to parse 
the input.
+        * @throws SchemaValidationException If the input fails schema 
validation.
+        */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Class<T> toType) throws ParseException, SchemaValidationException;
+
+       /**
+        * Convenience method for creating a no-arg session and parsing a part.
+        *
+        * @param partType The category of value being parsed.
+        * @param schema
+        *      Schema information about the part.
+        *      <br>May be <jk>null</jk>.
+        *      <br>Not all part parsers use the schema information.
+        * @param in The value being parsed.
+        * @param toType The POJO type to transform the input into.
+        * @param toTypeArgs The POJO type arguments for Collections and Maps.
+        * @return The parsed value.
+        * @throws ParseException If a problem occurred while trying to parse 
the input.
+        * @throws SchemaValidationException If the input fails schema 
validation.
+        */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Type toType, Type...toTypeArgs) throws ParseException, 
SchemaValidationException;
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartParserSession.java
index 880a7dc..136531f 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartParserSession.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.httppart;
 
+import java.lang.reflect.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.parser.*;
 
@@ -33,10 +35,43 @@ public interface HttpPartParserSession {
         *      <br>May be <jk>null</jk>.
         *      <br>Not all part parsers use the schema information.
         * @param in The input being parsed.
-        * @param type The category of value being parsed.
+        * @param toType The POJO type to transform the input into.
+        * @return The parsed value.
+        * @throws ParseException If a problem occurred while trying to parse 
the input.
+        * @throws SchemaValidationException If the input or resulting HTTP 
part object fails schema validation.
+        */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> toType) throws ParseException, SchemaValidationException;
+
+       /**
+        * Converts the specified input to the specified class type.
+        *
+        * @param partType The part type being parsed.
+        * @param schema
+        *      Schema information about the part.
+        *      <br>May be <jk>null</jk>.
+        *      <br>Not all part parsers use the schema information.
+        * @param in The input being parsed.
+        * @param toType The POJO type to transform the input into.
+        * @return The parsed value.
+        * @throws ParseException If a problem occurred while trying to parse 
the input.
+        * @throws SchemaValidationException If the input or resulting HTTP 
part object fails schema validation.
+        */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Class<T> toType) throws ParseException, SchemaValidationException;
+
+       /**
+        * Converts the specified input to the specified class type.
+        *
+        * @param partType The part type being parsed.
+        * @param schema
+        *      Schema information about the part.
+        *      <br>May be <jk>null</jk>.
+        *      <br>Not all part parsers use the schema information.
+        * @param in The input being parsed.
+        * @param toType The POJO type to transform the input into.
+        * @param toTypeArgs The POJO type arguments for Collection and Map 
types.
         * @return The parsed value.
         * @throws ParseException If a problem occurred while trying to parse 
the input.
         * @throws SchemaValidationException If the input or resulting HTTP 
part object fails schema validation.
         */
-       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> type) throws ParseException, SchemaValidationException;
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Type toType, Type...toTypeArgs) throws ParseException, 
SchemaValidationException;
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializer.java
index a635cf6..046db35 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializer.java
@@ -63,4 +63,19 @@ public interface HttpPartSerializer {
         * @return A new serializer session.
         */
        public HttpPartSerializerSession createSession(SerializerSessionArgs 
args);
+
+       /**
+        * Convenience method for creating a no-arg session and serializing a 
part.
+        *
+        * @param partType The category of value being serialized.
+        * @param schema
+        *      Schema information about the part.
+        *      <br>May be <jk>null</jk>.
+        *      <br>Not all part serializer use the schema information.
+        * @param value The value being serialized.
+        * @return The serialized value.
+        * @throws SerializeException If a problem occurred while trying to 
parse the input.
+        * @throws SchemaValidationException If the output fails schema 
validation.
+        */
+       public String serialize(HttpPartType partType, HttpPartSchema schema, 
Object value) throws SchemaValidationException, SerializeException ;
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializerSession.java
index 5d48665..02f62b9 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/HttpPartSerializerSession.java
@@ -34,7 +34,7 @@ public interface HttpPartSerializerSession {
         * @param schema
         *      Schema information about the part.
         *      <br>May be <jk>null</jk>.
-        *      <br>Not all part serializer use the schema information.
+        *      <br>Not all part serializers use the schema information.
         * @param value The value being serialized.
         * @return The serialized value.
         * @throws SerializeException If a problem occurred while trying to 
parse the input.
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartParser.java
index fadafcf..7510058 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/OpenApiPartParser.java
@@ -161,7 +161,7 @@ public class OpenApiPartParser extends UonPartParser {
        
//-------------------------------------------------------------------------------------------------------------------
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
-       
+
        private final HttpPartSchema schema;
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParser.java
index 2af625e..3ecef0b 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParser.java
@@ -12,6 +12,9 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.httppart;
 
+import java.lang.reflect.*;
+
+import org.apache.juneau.*;
 import org.apache.juneau.parser.*;
 
 /**
@@ -69,4 +72,18 @@ public class SimplePartParser implements HttpPartParser {
                return new SimplePartParserSession();
        }
 
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> toType) throws ParseException, SchemaValidationException {
+               return createSession().parse(partType, schema, in, toType);
+       }
+
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Class<T> toType) throws ParseException, SchemaValidationException {
+               return createSession().parse(partType, schema, in, toType);
+       }
+
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Type toType, Type...toTypeArgs) throws ParseException, 
SchemaValidationException {
+               return createSession().parse(partType, schema, in, toType, 
toTypeArgs);
+       }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParserSession.java
index c328b1c..569e8cb 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartParserSession.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.httppart;
 
+import java.lang.reflect.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.internal.*;
 import org.apache.juneau.parser.*;
@@ -25,8 +27,21 @@ import org.apache.juneau.parser.*;
  */
 public class SimplePartParserSession implements HttpPartParserSession {
 
-       @Override
-       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> type) throws ParseException, SchemaValidationException {
-               return ClassUtils.fromString(type.getInnerClass(), in);
+       @Override /* HttpPartParserSession */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> toType) throws ParseException, SchemaValidationException {
+               return ClassUtils.fromString(toType.getInnerClass(), in);
+       }
+
+       @Override /* HttpPartParserSession */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Class<T> toType) throws ParseException, SchemaValidationException {
+               return ClassUtils.fromString(toType, in);
+       }
+
+       @SuppressWarnings("unchecked")
+       @Override /* HttpPartParserSession */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Type toType, Type...toTypeArgs) throws ParseException, 
SchemaValidationException {
+               if (toType instanceof Class)
+                       return (T)ClassUtils.fromString((Class<?>)toType, in);
+               return null;
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartSerializer.java
index 2c82741..faf6503 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/SimplePartSerializer.java
@@ -47,4 +47,9 @@ public class SimplePartSerializer implements 
HttpPartSerializer {
        public SimplePartSerializerSession createSession() {
                return new SimplePartSerializerSession();
        }
+
+       @Override /* HttpPartSerializer */
+       public String serialize(HttpPartType partType, HttpPartSchema schema, 
Object value) {
+               return createSession().serialize(partType, schema, value);
+       }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartParser.java
index df5e60b..d14bb58 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartParser.java
@@ -12,6 +12,8 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.httppart;
 
+import java.lang.reflect.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.uon.*;
@@ -83,4 +85,19 @@ public class UonPartParser extends UonParser implements 
HttpPartParser {
        public UonPartParserSession createSession() {
                return new UonPartParserSession(this, 
ParserSessionArgs.DEFAULT);
        }
+
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> toType) throws ParseException, SchemaValidationException {
+               return createSession().parse(partType, schema, in, toType);
+       }
+
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Class<T> toType) throws ParseException, SchemaValidationException {
+               return createSession().parse(partType, schema, in, toType);
+       }
+
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Type toType, Type...toTypeArgs) throws ParseException, 
SchemaValidationException {
+               return createSession().parse(partType, schema, in, toType, 
toTypeArgs);
+       }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartParserSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartParserSession.java
index 4a9e4da..0c7d2b7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartParserSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartParserSession.java
@@ -14,6 +14,8 @@ package org.apache.juneau.httppart;
 
 import static org.apache.juneau.internal.StringUtils.*;
 
+import java.lang.reflect.*;
+
 import org.apache.juneau.*;
 import org.apache.juneau.parser.*;
 import org.apache.juneau.uon.*;
@@ -41,22 +43,56 @@ public class UonPartParserSession extends UonParserSession 
implements HttpPartPa
                super(ctx, args);
        }
 
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> toType) throws ParseException, SchemaValidationException {
+               if (in == null)
+                       return null;
+               if (toType.isString() && in.length() > 0) {
+                       // Shortcut - If we're returning a string and the value 
doesn't start with "'" or is "null", then
+                       // just return the string since it's a plain value.
+                       // This allows us to bypass the creation of a 
UonParserSession object.
+                       char x = firstNonWhitespaceChar(in);
+                       if (x != '\'' && x != 'n' && in.indexOf('~') == -1)
+                               return (T)in;
+                       if (x == 'n' && "null".equals(in))
+                               return null;
+               }
+               try (ParserPipe pipe = createPipe(in)) {
+                       try (UonReader r = getUonReader(pipe, false)) {
+                               return parseAnything(toType, r, null, true, 
null);
+                       }
+               } catch (ParseException e) {
+                       throw e;
+               } catch (Exception e) {
+                       throw new ParseException(e);
+               }
+       }
+
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Class<T> toType) throws ParseException, SchemaValidationException {
+               return parse(null, schema, in, getClassMeta(toType));
+       }
+
+       @Override /* HttpPartParser */
+       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, Type toType, Type...toTypeArgs) throws ParseException, 
SchemaValidationException {
+               return (T)parse(null, schema, in, getClassMeta(toType, 
toTypeArgs));
+       }
+
        /**
-        * Convenience method for parsing a part to a map or collection.
+        * Convenience method for parsing a part.
         *
         * @param schema
         *      Schema information about the part.
         *      <br>May be <jk>null</jk>.
         *      <br>Not all part parsers use the schema information.
         * @param in The input being parsed.
-        * @param type The category of value being parsed.
-        * @param args The type arguments of the map or collection.
+        * @param toType The POJO type being created.
         * @return The parsed value.
         * @throws ParseException If a problem occurred while trying to parse 
the input.
         * @throws SchemaValidationException If the input or resulting HTTP 
part object fails schema validation.
         */
-       public <T> T parse(HttpPartSchema schema, String in, 
java.lang.reflect.Type type, java.lang.reflect.Type...args) throws 
ParseException, SchemaValidationException {
-               return (T)parse(null, schema, in, getClassMeta(type, args));
+       public <T> T parse(HttpPartSchema schema, String in, Class<T> toType) 
throws ParseException, SchemaValidationException {
+               return parse(null, schema, in, getClassMeta(toType));
        }
 
        /**
@@ -67,53 +103,30 @@ public class UonPartParserSession extends UonParserSession 
implements HttpPartPa
         *      <br>May be <jk>null</jk>.
         *      <br>Not all part parsers use the schema information.
         * @param in The input being parsed.
-        * @param type The category of value being parsed.
+        * @param toType The POJO type being created.
         * @return The parsed value.
         * @throws ParseException If a problem occurred while trying to parse 
the input.
         * @throws SchemaValidationException If the input or resulting HTTP 
part object fails schema validation.
         */
-       public <T> T parse(HttpPartSchema schema, String in, Class<T> type) 
throws ParseException, SchemaValidationException {
-               return parse(null, schema, in, getClassMeta(type));
+       public <T> T parse(HttpPartSchema schema, String in, ClassMeta<T> 
toType) throws ParseException, SchemaValidationException {
+               return parse(null, schema, in, toType);
        }
 
        /**
         * Convenience method for parsing a part.
         *
-        * @param partType
-        *      The part type being parsed.
+        * @param schema
+        *      Schema information about the part.
         *      <br>May be <jk>null</jk>.
+        *      <br>Not all part parsers use the schema information.
         * @param in The input being parsed.
-        * @param type The category of value being parsed.
+        * @param toType The POJO type being created.
+        * @param toTypeArgs The type arguments for the POJO collection or map 
type being created.
         * @return The parsed value.
         * @throws ParseException If a problem occurred while trying to parse 
the input.
         * @throws SchemaValidationException If the input or resulting HTTP 
part object fails schema validation.
         */
-       public <T> T parse(HttpPartType partType, String in, ClassMeta<T> type) 
throws ParseException, SchemaValidationException {
-               return parse(partType, null, in, type);
-       }
-
-       @Override /* HttpPartParser */
-       public <T> T parse(HttpPartType partType, HttpPartSchema schema, String 
in, ClassMeta<T> type) throws ParseException, SchemaValidationException {
-               if (in == null)
-                       return null;
-               if (type.isString() && in.length() > 0) {
-                       // Shortcut - If we're returning a string and the value 
doesn't start with "'" or is "null", then
-                       // just return the string since it's a plain value.
-                       // This allows us to bypass the creation of a 
UonParserSession object.
-                       char x = firstNonWhitespaceChar(in);
-                       if (x != '\'' && x != 'n' && in.indexOf('~') == -1)
-                               return (T)in;
-                       if (x == 'n' && "null".equals(in))
-                               return null;
-               }
-               try (ParserPipe pipe = createPipe(in)) {
-                       try (UonReader r = getUonReader(pipe, false)) {
-                               return parseAnything(type, r, null, true, null);
-                       }
-               } catch (ParseException e) {
-                       throw e;
-               } catch (Exception e) {
-                       throw new ParseException(e);
-               }
+       public <T> T parse(HttpPartSchema schema, String in, Type toType, 
Type...toTypeArgs) throws ParseException, SchemaValidationException {
+               return (T)parse(null, schema, in, getClassMeta(toType, 
toTypeArgs));
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartSerializer.java
index c61597a..f388c12 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/httppart/UonPartSerializer.java
@@ -72,13 +72,18 @@ public class UonPartSerializer extends UonSerializer 
implements HttpPartSerializ
        // Entry point methods
        
//-----------------------------------------------------------------------------------------------------------------
 
-       @Override
+       @Override /* HttpPartSerializer */
        public UonPartSerializerSession createSession(SerializerSessionArgs 
args) {
                return new UonPartSerializerSession(this, args);
        }
 
-       @Override
+       @Override /* HttpPartSerializer */
        public UonPartSerializerSession createSession() {
                return new UonPartSerializerSession(this, 
SerializerSessionArgs.DEFAULT);
        }
+
+       @Override /* HttpPartSerializer */
+       public String serialize(HttpPartType partType, HttpPartSchema schema, 
Object value) throws SchemaValidationException, SerializeException {
+               return createSession().serialize(partType, schema, value);
+       }
 }
diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index bb3b830..b89af1d 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -86,7 +86,13 @@
        <li><p class='toc2'><a class='doclink' 
href='#juneau-marshall'><i>juneau-marshall</i></a></p>
        <ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.Serializers'>Serializers</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HttpPartSerializers'>HTTP Part Serializers</a></p>
+               </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.Parsers'>Parsers</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HttpPartParsers'>HTTP Part Parsers</a></p>
+               </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.Groups'>SerializerGroups and ParserGroups</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.ObjectMap'>ObjectMap and ObjectList</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a></p>
@@ -130,18 +136,18 @@
                <li><p><a class='doclink' 
href='#juneau-marshall.PojoCategories'>POJO Categories</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails'>JSON Details</a></p>
                <ol>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.JsonMethodology'>JSON Methodology</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.JsonSerializers'>JSON Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.Methodology'>JSON Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.Serializers'>JSON Serializers</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.SimplifiedJson'>Simplified JSON</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.JsonParsers'>JSON Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.Parsers'>JSON Parsers</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.JsonAnnotation'>@Json Annotation</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.JsonDetails.JsonSchema'>JSON-Schema Support</a></p>
                </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails'>XML Details</a></p>
                <ol>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.XmlMethodology'>XML Methodology</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.XmlSerializers'>XML Serializers</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.XmlParsers'>XML Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.Methodology'>XML Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.Serializers'>XML Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.Parsers'>XML Parsers</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.BeanTypeNameAnnotation'>@Bean(typeName) 
Annotation</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.XmlChildNameAnnotation'>@Xml(childName) 
Annotation</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.XmlDetails.XmlFormatAnnotation'>@Xml(format) 
Annotation</a></p>
@@ -151,9 +157,9 @@
                </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails'>HTML Details</a></p>
                <ol>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.HtmlMethodology'>HTML Methodology</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.HtmlSerializers'>HTML Serializers</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.HtmlParsers'>HTML Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.Methodology'>HTML Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.Serializers'>HTML Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.Parsers'>HTML Parsers</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.HtmlAnnotation'>@Html Annotation</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.HtmlRenderAnnotation'>@Html(render) 
Annotation</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.HtmlDetails.HtmlDocSerializer'>HtmlDocSerializer</a></p>
@@ -162,22 +168,28 @@
                </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails'>UON Details</a></p>
                <ol>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.UonMethodology'>UON Methodology</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.UonSerializers'>UON Serializers</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.UonParsers'>UON Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.Methodology'>UON Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.Serializers'>UON Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UonDetails.Parsers'>UON Parsers</a></p>
                </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails'>URL-Encoding Details</a></p>
                <ol>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingMethodology'>URL-Encoding 
Methodology</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingSerializers'>URL-Encoding 
Serializers</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingParsers'>URL-Encoding 
Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.Methodology'>URL-Encoding 
Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.Serializers'>URL-Encoding 
Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.Parsers'>URL-Encoding Parsers</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>@UrlEncoding 
Annotation</a></p>
                </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.MsgPackDetails'>MessagePack Details</a></p>
                <ol>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.MsgPackMethodology'>MessagePack 
Methodology</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.MspPackSerializers'>MessagePack 
Serializers</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall.UrlEncodingDetails.MsgPackParsers'>MessagePack 
Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.MsgPackDetails.Methodology'>MessagePack 
Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.MsgPackDetails.Serializers'>MessagePack 
Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.MsgPackDetails.Parsers'>MessagePack Parsers</a></p>
+               </ol>
+               <li><p><a class='doclink' 
href='#juneau-marshall.OpenApiDetails'>OpenApi Details</a></p>
+               <ol>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.OpenApiDetails.Methodology'>OpenApi Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.OpenApiDetails.Serializers'>OpenApi Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall.OpenApiDetails.Parsers'>OpenApi Parsers</a></p>
                </ol>
                <li><p><a class='doclink' 
href='#juneau-marshall.SoapDetails'>SOAP Details</a></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.CsvDetails'>CSV Details</a></p>
@@ -188,9 +200,9 @@
        <ol>
                <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails'>RDF Details</a></p>
                <ol>
-                       <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.RdfMethodology'>RDF Methodology</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.RdfSerializers'>RDF Serializers</a></p>
-                       <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.RdfParsers'>RDF Parsers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.Methodology'>RDF Methodology</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.Serializers'>RDF Serializers</a></p>
+                       <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.Parsers'>RDF Parsers</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.RdfAnnotation'>@Rdf Annotation</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.Namespaces'>Namespaces</a></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall-rdf.RdfDetails.UriProperties'>URI Properties</a></p>
@@ -773,10 +785,14 @@
        Person p = <jk>new</jk> Person();
 
        <jc>// Produces:
-       //      "{name:'John Smith',age:21}"</jc>
+       //      "{\"name\":\"John Smith\",\"age\":21}"</jc>
        String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(p);
 
        <jc>// Produces:
+       //      "{name:'John Smith',age:21}"</jc>
+       String json = SimpleJsonSerializer.<jsf>DEFAULT</jsf>.serialize(p);
+
+       <jc>// Produces:
        //      &lt;object&gt;
        //        &lt;name&gt;John Smith&lt;/name&gt;
        //        &lt;age&gt;21&lt;/age&gt;
@@ -885,6 +901,52 @@
                                </ul>
                        </ul>
                </ul>
+               
+               <!-- === 2.1.1 - HTTP Part Serializers 
================================================================ -->
+               
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.HttpPartSerializers' 
id='juneau-marshall.HttpPartSerializers'>2.1.1 - HTTP Part Serializers</a></h4>
+               <div class='topic'>
+                       <p>
+                               There is a separate set of serializers for 
serializing HTTP parts (query, form-data, headers, path variables, and 
plain-text request bodies).
+                               <br>The distinction is that these are designed 
to serialize directly to strings based on Open-API schema information.
+                       </p>
+                       <p class='bcode w800'>
+       <jc>// Schema information about our part.</jc>
+       HttpPartSchema schema = HttpPartSchema
+               .<jsm>create</jsm>(<js>"array"</js>)
+               .collectionFormat(<js>"pipes"</js>)
+               .items(
+                       HttpPartSchema
+                               .<jsm>create</jsm>(<js>"array"</js>)
+                               .collectionFormat(<js>"csv"</js>)
+                               .items(
+                                       
HttpPartSchema.<jsm>create</jsm>(<js>"integer"</js>,<js>"int64"</js>)
+                               )
+               )
+               .build();
+
+       <jc>// Our value to serialize</jc>
+       Object value = <jk>new long</jk>[][]{{1,2,3},{4,5,6},{7,8,9}};
+
+       <jc>// Produces "1,2,3|4,5,6|7,8,9"</jc>
+       String output = 
OpenApiPartSerializer.<jsf>DEFAULT</jsf>.serialize(HttpPartType.<jsf>HEADER</jsf>,
 schema, value);
+                       </p>
+                       <p>
+                               The class hierarchy for the part serializers 
are:
+                       </p>
+                       
+                       <ul class='doctree'>
+                               <li class='jic'>{@link 
org.apache.juneau.httppart.HttpPartSerializer}
+                               <ul>
+                                       <li class='jc'>{@link 
org.apache.juneau.httppart.SimplePartSerializer} - Serializes directly to 
strings.
+                                       <li class='jc'>{@link 
org.apache.juneau.httppart.UonPartSerializer} - Serializes to UON notation.
+                                       <ul>
+                                               <li class='jc'>{@link 
org.apache.juneau.httppart.OpenApiPartSerializer} - Serializes using Open-API 
schema rules.
+                                               <li class='jc'>{@link 
org.apache.juneau.httppart.SimpleUonPartSerializer} - Serializes to UON 
notation for beans and maps only.
+                                       </ul>
+                               </ul>
+                       </ul>
+               </div>
        </div>
        
        <!-- === 2.2 - Parsers 
============================================================================== 
-->
@@ -964,6 +1026,90 @@
                                Many of the JSON examples provided will use lax 
syntax which is easier to read since we don't have to deal 
                                with escapes.  
                </ul>
+               
+               <p>
+                       The class hierarchy for the parsers (excluding 
specialized subclasses) are:
+               </p>
+               <ul class='doctree'>
+                       <li class='jac'>{@link org.apache.juneau.parser.Parser}
+                       <ul>
+                               <li class='jac'>{@link 
org.apache.juneau.parser.ReaderParser}
+                               <ul>
+                                       <li class='jc'>{@link 
org.apache.juneau.json.JsonParser}
+                                       <li class='jc'>{@link 
org.apache.juneau.plaintext.PlainTextParser}
+                                       <li class='jc'>{@link 
org.apache.juneau.jena.RdfParser}
+                                       <ul>
+                                               <li class='jc'>{@link 
org.apache.juneau.jena.RdfXmlParser}
+                                               <li class='jc'>{@link 
org.apache.juneau.jena.N3Parser}
+                                               <li class='jc'>{@link 
org.apache.juneau.jena.NTripleParser}
+                                               <li class='jc'>{@link 
org.apache.juneau.jena.TurtleParser}
+                                       </ul>
+                                       <li class='jc'>{@link 
org.apache.juneau.uon.UonParser}
+                                       <ul>
+                                               <li class='jc'>{@link 
org.apache.juneau.httppart.UonPartParser}
+                                               <ul>
+                                                       <li class='jc'>{@link 
org.apache.juneau.httppart.OpenApiPartParser}
+                                               </ul>
+                                               <li class='jc'>{@link 
org.apache.juneau.urlencoding.UrlEncodingParser}
+                                       </ul>
+                                       <li class='jc'>{@link 
org.apache.juneau.xml.XmlParser}
+                                       <ul>
+                                               <li class='jc'>{@link 
org.apache.juneau.html.HtmlParser}
+                                       </ul>
+                               </ul>
+                               <li class='jac'>{@link 
org.apache.juneau.parser.InputStreamParser}
+                               <ul>
+                                       <li class='jc'>{@link 
org.apache.juneau.jso.JsoParser}
+                                       <li class='jc'>{@link 
org.apache.juneau.msgpack.MsgPackParser}
+                               </ul>
+                       </ul>
+               </ul>           
+               
+               
+               <!-- === 2.2.1 - HTTP Part Parsers 
============================================================== -->
+               
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.HttpPartParsers' 
id='juneau-marshall.HttpPartParsers'>2.2.1 - HTTP Part Parsers</a></h4>
+               <div class='topic'>
+                       <p>
+                               There is a separate set of parsers for parsing 
HTTP parts (query, form-data, headers, path variables, and plain-text request 
bodies).
+                               <br>The distinction is that these are designed 
to parse directly from strings based on Open-API schema information.
+                       </p>
+                       <p class='bcode w800'>
+       <jc>// Schema information about our part.</jc>
+       HttpPartSchema schema = HttpPartSchema
+               .<jsm>create</jsm>(<js>"array"</js>)
+               .collectionFormat(<js>"pipes"</js>)
+               .items(
+                       HttpPartSchema
+                               .<jsm>create</jsm>(<js>"array"</js>)
+                               .collectionFormat(<js>"csv"</js>)
+                               .items(
+                                       
HttpPartSchema.<jsm>create</jsm>(<js>"integer"</js>,<js>"int64"</js>)
+                               )
+               )
+               .build();
+
+       <jc>// Our input to parse.</jc>
+       String input = <js>"1,2,3|4,5,6|7,8,9"</js>;
+
+       <jc>// Produces "[[1,2,3],[4,5,6],[7,8,9]]</jc>
+       <jk>long</jk>[][] value = 
OpenApiPartParser.<jsf>DEFAULT</jsf>.parse(HttpPartType.<jsf>HEADER</jsf>, 
schema, input, <jk>long</jk>[][].<jk>class</jk>);
+                       </p>
+                       <p>
+                               The class hierarchy for the part serializers 
are:
+                       </p>
+                       
+                       <ul class='doctree'>
+                               <li class='jic'>{@link 
org.apache.juneau.httppart.HttpPartParser}
+                               <ul>
+                                       <li class='jc'>{@link 
org.apache.juneau.httppart.SimplePartParser} - Parses directly from strings.
+                                       <li class='jc'>{@link 
org.apache.juneau.httppart.UonPartParser} - Parses from UON notation.
+                                       <ul>
+                                               <li class='jc'>{@link 
org.apache.juneau.httppart.OpenApiPartParser} - Parses using Open-API schema 
rules.
+                                       </ul>
+                               </ul>
+                       </ul>
+               </div>
        </div>
        
        <!-- === 2.3 - SerializerGroups and ParserGroups 
==================================================== -->
@@ -1175,8 +1321,7 @@
                </p>
                <p class='bcode w800'>
        <jc>// Serialize a POJO to LAX JSON.</jc>
-       String json = SimpleJsonSerializer.<jsf>DEFAULT</jsf>
-.serialize(myPojo);
+       String json = SimpleJsonSerializer.<jsf>DEFAULT</jsf>.serialize(myPojo);
                </p>
                <p>
                        For performance reasons, serializers and parsers are 
immutable.
@@ -1193,7 +1338,7 @@
 
                <!-- === 2.5.1 - Common Properties 
============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.ConfigurableProperties.Common' 
id='juneau-marshall.ConfigurableProperties.Common'></a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.ConfigurableProperties.Common' 
id='juneau-marshall.ConfigurableProperties.Common'>2.5.1 - Common 
Properties</a></h4>
                <div class='topic'>
                        <p>
                                All serializers and parsers extend from the 
{@link org.apache.juneau.BeanContext} class.
@@ -1242,7 +1387,7 @@
                
                <!-- === 2.5.2 - Common Serializer Properties 
=================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.ConfigurableProperties.CommonSerializer' 
id='juneau-marshall.ConfigurableProperties.CommonSerializer'></a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.ConfigurableProperties.CommonSerializer' 
id='juneau-marshall.ConfigurableProperties.CommonSerializer'>2.5.2 - Common 
Serializer Properties</a></h4>
                <div class='topic'>
                        <p>
                                In addition to the common properties above, the 
following properties are common to all serializers:
@@ -4110,7 +4255,7 @@
                
                <!-- === 2.15.1 - JSON Methodology 
============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.JsonDetails.JsonMethodology' 
id='juneau-marshall.JsonDetails.JsonMethodology'>2.15.1 - JSON 
Methodology</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.JsonDetails.Methodology' 
id='juneau-marshall.JsonDetails.Methodology'>2.15.1 - JSON Methodology</a></h4>
                <div class='topic'>
                        <p>
                                The JSON data type produced depends on the Java 
object type being serialized.
@@ -4186,7 +4331,7 @@
                
                <!-- === 2.15.2 - JSON Serializers 
============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.JsonDetails.JsonSerializers' 
id='juneau-marshall.JsonDetails.JsonSerializers'>2.15.2 - JSON 
Serializers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.JsonDetails.Serializers' 
id='juneau-marshall.JsonDetails.Serializers'>2.15.2 - JSON Serializers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link 
org.apache.juneau.json.JsonSerializer} class is used to serialize POJOs into 
JSON.
@@ -4230,7 +4375,7 @@
                
                <!-- === 2.15.4 - JSON Parsers 
================================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.JsonDetails.JsonParsers' 
id='juneau-marshall.JsonDetails.JsonParsers'>2.15.4 - JSON Parsers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.JsonDetails.Parsers' 
id='juneau-marshall.JsonDetails.Parsers'>2.15.4 - JSON Parsers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link org.apache.juneau.json.JsonParser} 
class is used to parse JSON into POJOs.
@@ -4495,7 +4640,7 @@
 
                <!-- === 2.16.1 - XML Methodology 
=============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.XmlDetails.XmlMethodology' 
id='juneau-marshall.XmlDetails.XmlMethodology'>2.16.1 - XML Methodology</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.XmlDetails.Methodology' 
id='juneau-marshall.XmlDetails.Methodology'>2.16.1 - XML Methodology</a></h4>
                <div class='topic'>
 
                        <p>
@@ -4903,7 +5048,7 @@
                
                <!-- === 2.16.2 - XML Serializers 
=============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.XmlDetails.XmlSerializers' 
id='juneau-marshall.XmlDetails.XmlSerializers'>2.16.2 - XML Serializers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.XmlDetails.Serializers' 
id='juneau-marshall.XmlDetails.Serializers'>2.16.2 - XML Serializers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link org.apache.juneau.xml.XmlSerializer} 
class is used to serialize POJOs into XML.
@@ -4949,7 +5094,7 @@
                
                <!-- === 2.16.3 - XML Parsers 
=================================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.XmlDetails.XmlParsers' 
id='juneau-marshall.XmlDetails.XmlParsers'>2.16.3 - XML Parsers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.XmlDetails.Parsers' 
id='juneau-marshall.XmlDetails.Parsers'>2.16.3 - XML Parsers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link org.apache.juneau.xml.XmlParser} 
class is used to parse XML into POJOs.
@@ -6712,7 +6857,7 @@
                
                <!-- === 2.17.1 - HTML Methodology 
============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.HtmlDetails.HtmlMethodology' 
id='juneau-marshall.HtmlDetails.HtmlMethodology'>2.17.1 - HTML 
Methodology</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.HtmlDetails.Methodology' 
id='juneau-marshall.HtmlDetails.Methodology'>2.17.1 - HTML Methodology</a></h4>
                <div class='topic'>
 
                        <p>
@@ -7227,7 +7372,7 @@
                
                <!-- === 2.17.2 - HTML Serializers 
============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.HtmlDetails.HtmlSerializers' 
id='juneau-marshall.HtmlDetails.HtmlSerializers'>2.17.2 - HTML 
Serializers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.HtmlDetails.Serializers' 
id='juneau-marshall.HtmlDetails.Serializers'>2.17.2 - HTML Serializers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link 
org.apache.juneau.html.HtmlSerializer} class is used to serialize POJOs into 
HTML.
@@ -7286,7 +7431,7 @@
                
                <!-- === 2.17.3 - HTML Parsers 
================================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.HtmlDetails.HtmlParsers' 
id='juneau-marshall.HtmlDetails.HtmlParsers'>2.17.3 - HTML Parsers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.HtmlDetails.Parsers' 
id='juneau-marshall.HtmlDetails.Parsers'>2.17.3 - HTML Parsers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link org.apache.juneau.html.HtmlParser} 
class is used to parse HTML into POJOs.
@@ -7422,7 +7567,7 @@
                
                <!-- === 2.18.1 - UON Methodology 
=============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UonDetails.UonMethodology' 
id='juneau-marshall.UonDetails.UonMethodology'>2.18.1 - UON Methodology</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UonDetails.Methodology' 
id='juneau-marshall.UonDetails.Methodology'>2.18.1 - UON Methodology</a></h4>
                <div class='topic'>
                        <h5 class='figure'>General methodology:</h5>
                        <table class='styled w800' 
style='border-collapse:collapse'>
@@ -7485,7 +7630,7 @@
                
                <!-- === 2.18.2 - UON Serializers 
=============================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UonDetails.UonSerializers' 
id='juneau-marshall.UonDetails.UonSerializers'>2.18.2 - UON Serializers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UonDetails.Serializers' 
id='juneau-marshall.UonDetails.Serializers'>2.18.2 - UON Serializers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link org.apache.juneau.uon.UonSerializer} 
class is used to serialize POJOs into UON.
@@ -7518,7 +7663,7 @@
                
                <!-- === 2.18.3 - UON Parsers 
=================================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UonDetails.UonParsers' 
id='juneau-marshall.UonDetails.UonParsers'>2.18.3 - UON Parsers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UonDetails.Parsers' 
id='juneau-marshall.UonDetails.Parsers'>2.18.3 - UON Parsers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link org.apache.juneau.uon.UonParser} 
class is used to parse UON into POJOs.
@@ -7621,7 +7766,7 @@
                
                <!-- === 2.19.1 - URL-Encoding Methodology 
====================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingMethodology' 
id='juneau-marshall.UrlEncodingDetails.UrlEncodingMethodology'>2.19.1 - 
URL-Encoding Methodology</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UrlEncodingDetails.Methodology' 
id='juneau-marshall.UrlEncodingDetails.Methodology'>2.19.1 - URL-Encoding 
Methodology</a></h4>
                <div class='topic'>
                        <h5 class='figure'>General methodology:</h5>
                        <table class='styled w800' 
style='border-collapse:collapse'>
@@ -7684,7 +7829,7 @@
                
                <!-- === 2.19.2 - URL-Encoding Serializers 
====================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingSerializers' 
id='juneau-marshall.UrlEncodingDetails.UrlEncodingSerializers'>2.19.2 - 
URL-Encoding Serializers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UrlEncodingDetails.Serializers' 
id='juneau-marshall.UrlEncodingDetails.Serializers'>2.19.2 - URL-Encoding 
Serializers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link 
org.apache.juneau.urlencoding.UrlEncodingSerializer} class is used to serialize 
POJOs into URL-Encoding.
@@ -7717,7 +7862,7 @@
                
                <!-- === 2.19.3 - URL-Encoding Parsers 
========================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingParsers' 
id='juneau-marshall.UrlEncodingDetails.UrlEncodingParsers'>2.19.3 - 
URL-Encoding Parsers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.UrlEncodingDetails.Parsers' 
id='juneau-marshall.UrlEncodingDetails.Parsers'>2.19.3 - URL-Encoding 
Parsers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link 
org.apache.juneau.urlencoding.UrlEncodingParser} class is used to parse 
URL-Encoding into POJOs.
@@ -7760,7 +7905,7 @@
        
                <!-- === 2.20.1 - MessagePack Methodology 
======================================================= -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.MsgPackDetails.MsgPackMethodology' 
id='juneau-marshall.MsgPackDetails.MsgPackMethodology'>2.20.1 - MessagePack 
Methodology</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.MsgPackDetails.Methodology' 
id='juneau-marshall.MsgPackDetails.Methodology'>2.20.1 - MessagePack 
Methodology</a></h4>
                <div class='topic'>
                </div>
        
@@ -7796,7 +7941,7 @@
 
                <!-- === 2.20.3 - MessagePack Parsers 
=========================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.MsgPackDetails.MsgPackParsers' 
id='juneau-marshall.MsgPackDetails.MsgPackParsers'>2.20.3 - MessagePack 
Parsers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.MsgPackDetails.Parsers' 
id='juneau-marshall.MsgPackDetails.Parsers'>2.20.3 - MessagePack 
Parsers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link 
org.apache.juneau.msgpack.MsgPackParser} class is used to parse MessagePack 
into POJOs.
@@ -7821,30 +7966,59 @@
                
        </div>
 
-       <!-- === 2.21 - SOAP Details 
======================================================================== -->
+       <!-- === 2.21 - OpenApi Details 
================================================================= -->
+       
+       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.OpenApiDetails' id='juneau-marshall.OpenApiDetails'>2.21 
- OpenApi Details</a></h3>
+       <div class='topic'>
+               TODO
+       
+               <!-- === 2.21.1 - OpenApi Methodology 
======================================================= -->
+               
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.OpenApiDetails.Methodology' 
id='juneau-marshall.OpenApiDetails.Methodology'>2.21.1 - OpenApi 
Methodology</a></h4>
+               <div class='topic'>
+                       TODO
+               </div>
+       
+               <!-- === 2.21.2 - OpenApi Serializers 
======================================================= -->
+               
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.OpenApiDetails.OpenApiSerializers' 
id='juneau-marshall.OpenApiDetails.OpenApiSerializers'>2.21.2 - OpenApi 
Serializers</a></h4>
+               <div class='topic'>
+                       TODO
+               </div>
+
+               <!-- === 2.21.3 - OpenApi Parsers 
=========================================================== -->
+               
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.OpenApiDetails.Parsers' 
id='juneau-marshall.OpenApiDetails.Parsers'>2.21.3 - OpenApi Parsers</a></h4>
+               <div class='topic'>
+                       TODO
+               </div>
+               
+       </div>
+
+       <!-- === 2.22 - SOAP Details 
======================================================================== -->
        
-       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.SoapDetails' id='juneau-marshall.SoapDetails'>2.21 - 
SOAP Details</a></h3>
+       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.SoapDetails' id='juneau-marshall.SoapDetails'>2.22 - 
SOAP Details</a></h3>
        <div class='topic'>
                TODO
        </div>
 
-       <!-- === 2.22 - CSV Details 
========================================================================= -->
+       <!-- === 2.23 - CSV Details 
========================================================================= -->
        
-       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.CsvDetails' id='juneau-marshall.CsvDetails'>2.22 - CSV 
Details</a></h3>
+       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.CsvDetails' id='juneau-marshall.CsvDetails'>2.23 - CSV 
Details</a></h3>
        <div class='topic'>
                TODO
        </div>
 
-       <!-- === 2.23 - Java Serialized Object Details 
====================================================== -->
+       <!-- === 2.24 - Java Serialized Object Details 
====================================================== -->
        
-       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.JsoDetails' id='juneau-marshall.JsoDetails'>2.23 - Java 
Serialized Object Details</a></h3>
+       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.JsoDetails' id='juneau-marshall.JsoDetails'>2.24 - Java 
Serialized Object Details</a></h3>
        <div class='topic'>
                TODO
        </div>
        
-       <!-- === 2.24 - Best Practices 
====================================================================== -->
+       <!-- === 2.25 - Best Practices 
====================================================================== -->
        
-       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.BestPractices' id='juneau-marshall.BestPractices'>2.24 - 
Best Practices</a></h3>
+       <h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.BestPractices' id='juneau-marshall.BestPractices'>2.25 - 
Best Practices</a></h3>
        <div class='topic'>
                <ol class='spaced-list'>
                        <li>
@@ -7966,14 +8140,14 @@
 
                <!-- === 3.1.1 - RDF Methodology 
================================================================ -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall-rdf.RdfDetails.RdfMethodology' 
id='juneau-marshall-rdf.RdfDetails.RdfMethodology'>3.1.1 - RDF 
Methodology</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall-rdf.RdfDetails.Methodology' 
id='juneau-marshall-rdf.RdfDetails.Methodology'>3.1.1 - RDF Methodology</a></h4>
                <div class='topic'>
                        TODO
                </div>
 
                <!-- === 3.1.2 - RDF Serializers 
================================================================ -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall-rdf.RdfDetails.RdfSerializers' 
id='juneau-marshall-rdf.RdfDetails.RdfSerializers'>3.1.2 - RDF 
Serializers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall-rdf.RdfDetails.Serializers' 
id='juneau-marshall-rdf.RdfDetails.Serializers'>3.1.2 - RDF Serializers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link 
org.apache.juneau.jena.RdfSerializer} class is the top-level class for all 
Jena-based serializers.
@@ -8072,7 +8246,7 @@
                
                <!-- === 3.1.3 - Rdf Parsers 
==================================================================== -->
                
-               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall-rdf.RdfDetails.RdfParsers' 
id='juneau-marshall-rdf.RdfDetails.RdfParsers'>3.1.3 - Rdf Parsers</a></h4>
+               <h4 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall-rdf.RdfDetails.Parsers' 
id='juneau-marshall-rdf.RdfDetails.Parsers'>3.1.3 - Rdf Parsers</a></h4>
                <div class='topic'>
                        <p>
                                The {@link org.apache.juneau.jena.RdfParser} 
class is the top-level class for all Jena-based parsers.
@@ -14243,8 +14417,7 @@
                <p>
                        The following is the default list of supported 
variables.
                </p>
-               <a href='#DefaultRestSvlVariables' 
id='DefaultRestSvlVariables'></a>
-               <h5 class='figure'>Default REST SVL Variables:</h5>
+               <h5 class='figure'><a href='#DefaultRestSvlVariables' 
id='DefaultRestSvlVariables'>Default REST SVL Variables:</a></h5>
                <table class='styled w800'>
                        <tr>
                                
<th>Module</th><th>Class</th><th>Pattern</th><th>Initialization<br>time</th><th>Request<br>time</th>
@@ -24185,7 +24358,7 @@
                                <br>Allows easy user-defined serialization of 
these objects.
                                <br>The interface can be used in the following 
locations:
                                <ul>
-                                       
<li><code><del>org.apache.juneau.rest.client.RestClientBuilder#partSerializer(Class)}
+                                       
<li><code><del>org.apache.juneau.rest.client.RestClientBuilder.partSerializer(Class)</del></code>
 
                                        
<li><code><del>org.apache.juneau.remoteable.Path.serializer</del></code> 
                                        
<li><code><del>org.apache.juneau.remoteable.Query.serializer</del></code> 
                                        
<li><code><del>org.apache.juneau.remoteable.QueryIfNE.serializer</del></code> 
diff --git 
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java
 
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java
index 8a58f0c..ff39f9f 100644
--- 
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java
+++ 
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/RequestBeanProxyTest.java
@@ -1162,7 +1162,7 @@ public class RequestBeanProxyTest {
                public HttpPartSerializerSession 
createSession(SerializerSessionArgs args) {
                        return new HttpPartSerializerSession() {
                                @Override
-                               public String serialize(HttpPartType type, 
HttpPartSchema schema, Object value) throws SerializeException, 
SchemaValidationException {
+                               public String serialize(HttpPartType partType, 
HttpPartSchema schema, Object value) throws SerializeException, 
SchemaValidationException {
                                        if (value == null)
                                                return "NULL";
                                        if (value instanceof Collection)
@@ -1173,6 +1173,11 @@ public class RequestBeanProxyTest {
                                }
                        };
                }
+
+               @Override
+               public String serialize(HttpPartType partType, HttpPartSchema 
schema, Object value) throws SchemaValidationException, SerializeException {
+                       return createSession(null).serialize(partType, schema, 
value);
+               }
        }
 
        public static class ListSerializer implements HttpPartSerializer {
@@ -1180,7 +1185,7 @@ public class RequestBeanProxyTest {
                public HttpPartSerializerSession 
createSession(SerializerSessionArgs args) {
                        return new HttpPartSerializerSession() {
                                @Override
-                               public String serialize(HttpPartType type, 
HttpPartSchema schema, Object value) throws SerializeException, 
SchemaValidationException {
+                               public String serialize(HttpPartType partType, 
HttpPartSchema schema, Object value) throws SerializeException, 
SchemaValidationException {
                                        if (value == null)
                                                return "NULL";
                                        if (value instanceof Collection)
@@ -1191,5 +1196,10 @@ public class RequestBeanProxyTest {
                                }
                        };
                }
+
+               @Override
+               public String serialize(HttpPartType partType, HttpPartSchema 
schema, Object value) throws SchemaValidationException, SerializeException {
+                       return createSession(null).serialize(partType, schema, 
value);
+               }
        }
 }
diff --git 
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
 
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
index cf1d5f8..dc9b589 100644
--- 
a/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
+++ 
b/juneau-microservice/juneau-microservice-test/src/test/java/org/apache/juneau/rest/test/client/ThirdPartyProxyTest.java
@@ -2865,10 +2865,15 @@ public class ThirdPartyProxyTest extends RestTestcase {
                public HttpPartSerializerSession 
createSession(SerializerSessionArgs args) {
                        return new HttpPartSerializerSession() {
                                @Override
-                               public String serialize(HttpPartType type, 
HttpPartSchema schema, Object value) throws SerializeException, 
SchemaValidationException {
+                               public String serialize(HttpPartType partType, 
HttpPartSchema schema, Object value) throws SerializeException, 
SchemaValidationException {
                                        return "dummy-"+value;
                                }
                        };
                }
+
+               @Override
+               public String serialize(HttpPartType partType, HttpPartSchema 
schema, Object value) throws SchemaValidationException, SerializeException {
+                       return createSession(null).serialize(partType, schema, 
value);
+               }
        }
 }

Reply via email to