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:
// <object>
// <name>John Smith</name>
// <age>21</age>
@@ -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);
+ }
}
}