You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/01/13 22:12:01 UTC
[2/4] juneau git commit: Update javadocs.
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
index 7b5b921..a0b090f 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
@@ -531,6 +531,32 @@ public class SerializerBuilder extends BeanContextBuilder {
}
/**
+ * Configuration property: URI context bean.
+ *
+ * <p>
+ * Same as {@link #uriContext(UriContext)} but allows you to pass in a JSON string.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode'>
+ * WriterSerializer s = JsonSerializer
+ * .<jsm>create</jsm>()
+ * .uriContext(<js>"{authority:'http://localhost:10000',contextRoot:'/myContext',servletPath:'/myServlet',pathInfo:'/foo'}"</js>)
+ * .build();
+ * </p>
+ *
+ * <h5 class='section'>See Also:</h5>
+ * <ul>
+ * <li class='jf'>{@link Serializer#SERIALIZER_uriContext}
+ * </ul>
+ *
+ * @param value The new value for this property.
+ * @return This object (for method chaining).
+ */
+ public SerializerBuilder uriContext(String value) {
+ return set(SERIALIZER_uriContext, value);
+ }
+
+ /**
* Configuration property: URI relativity.
*
* <p>
@@ -551,6 +577,34 @@ public class SerializerBuilder extends BeanContextBuilder {
}
/**
+ * Configuration property: URI relativity.
+ *
+ * <p>
+ * Same as {@link #uriRelativity(UriRelativity)} but allows you to pass in a string.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode'>
+ * WriterSerializer s = JsonSerializer
+ * .<jsm>create</jsm>()
+ * .uriRelativity(<js>"PATH_INFO"</js>)
+ * .build();
+ * </p>
+ *
+ * <h5 class='section'>See Also:</h5>
+ * <ul>
+ * <li class='jf'>{@link Serializer#SERIALIZER_uriRelativity}
+ * </ul>
+ *
+ * @param value
+ * The new value for this property.
+ * <br>The default is {@link UriRelativity#RESOURCE}
+ * @return This object (for method chaining).
+ */
+ public SerializerBuilder uriRelativity(String value) {
+ return set(SERIALIZER_uriRelativity, value);
+ }
+
+ /**
* Configuration property: URI resolution.
*
* <p>
@@ -571,6 +625,34 @@ public class SerializerBuilder extends BeanContextBuilder {
}
/**
+ * Configuration property: URI resolution.
+ *
+ * <p>
+ * Same as {@link #uriResolution(UriResolution)} but allows you to pass in a string.
+ *
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode'>
+ * WriterSerializer s = JsonSerializer
+ * .<jsm>create</jsm>()
+ * .uriResolution(<js>"ROOT_RELATIVE"</js>)
+ * .build();
+ * </p>
+ *
+ * <h5 class='section'>See Also:</h5>
+ * <ul>
+ * <li class='jf'>{@link Serializer#SERIALIZER_uriResolution}
+ * </ul>
+ *
+ * @param value
+ * The new value for this property.
+ * <br>The default is {@link UriResolution#NONE}
+ * @return This object (for method chaining).
+ */
+ public SerializerBuilder uriResolution(String value) {
+ return set(SERIALIZER_uriResolution, value);
+ }
+
+ /**
* Configuration property: Use whitespace.
*
* <p>
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index c4a1b0e..b55768b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -672,7 +672,7 @@ public abstract class SerializerSession extends BeanSession {
* <li><js>"context:/foo"</js> - Context-root-relative URI.
* <li><js>"context:/"</js> - Context-root URI.
* <li><js>"servlet:/foo"</js> - Servlet-path-relative URI.
- * <li><js>"servlet:/"</js> - Servlet-path URI.
+ * <li><js>"servlet:/"</js> - Servlet-path URI.
* <li><js>"request:/foo"</js> - Request-path-relative URI.
* <li><js>"request:/"</js> - Request-path URI.
* <li><js>"foo"</js> - Path-info-relative URI.
@@ -791,8 +791,8 @@ public abstract class SerializerSession extends BeanSession {
*
* @return A map, typically containing something like <code>{line:123,column:456,currentProperty:"foobar"}</code>
*/
- protected final Map<String,Object> getLastLocation() {
- Map<String,Object> m = new LinkedHashMap<>();
+ protected final ObjectMap getLastLocation() {
+ ObjectMap m = new ObjectMap();
if (currentClass != null)
m.put("currentClass", currentClass);
if (currentProperty != null)
@@ -897,4 +897,25 @@ public abstract class SerializerSession extends BeanSession {
public Map<String,String> getResponseHeaders() {
return Collections.emptyMap();
}
+
+
+ /**
+ * Returns the listener associated with this session.
+ *
+ * @return The listener associated with this session, or <jk>null</jk> if there is no listener.
+ */
+ public SerializerListener getListener() {
+ return listener;
+ }
+
+ /**
+ * Returns the listener associated with this session.
+ *
+ * @param c The listener class to cast to.
+ * @return The listener associated with this session, or <jk>null</jk> if there is no listener.
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends SerializerListener> T getListener(Class<T> c) {
+ return (T)listener;
+ }
}
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
index e1c2928..3edf746 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSessionArgs.java
@@ -26,35 +26,90 @@ import org.apache.juneau.http.*;
*/
public final class SerializerSessionArgs extends BeanSessionArgs {
- final Method javaMethod;
- final UriContext uriContext;
+ Method javaMethod;
+ UriContext uriContext;
+
+ /**
+ * Constructor
+ */
+ public SerializerSessionArgs() {}
/**
* Constructor.
*
* @param properties
* Session-level properties.
- * These override context-level properties.
- * Can be <jk>null</jk>.
+ * <br>These override context-level properties.
+ * <br>Can be <jk>null</jk>.
* @param javaMethod
* The java method that called this serializer, usually the method in a REST servlet.
- * Can be <jk>null</jk>.
+ * <br>Can be <jk>null</jk>.
* @param locale
* The session locale.
- * If <jk>null</jk>, then the locale defined on the context is used.
+ * <br>If <jk>null</jk>, then the locale defined on the context is used.
* @param timeZone
* The session timezone.
- * If <jk>null</jk>, then the timezone defined on the context is used.
+ * <br>If <jk>null</jk>, then the timezone defined on the context is used.
* @param mediaType
* The session media type (e.g. <js>"application/json"</js>).
- * Can be <jk>null</jk>.
+ * <br>Can be <jk>null</jk>.
* @param uriContext
* The URI context.
- * Identifies the current request URI used for resolution of URIs to absolute or root-relative form.
+ * <br>Identifies the current request URI used for resolution of URIs to absolute or root-relative form.
*/
public SerializerSessionArgs(ObjectMap properties, Method javaMethod, Locale locale, TimeZone timeZone, MediaType mediaType, UriContext uriContext) {
super(properties, locale, timeZone, mediaType);
this.javaMethod = javaMethod;
this.uriContext = uriContext;
}
+
+ /**
+ * The java method that called this serializer, usually the method in a REST servlet.
+ *
+ * @param javaMethod
+ * The java method that called this serializer, usually the method in a REST servlet.
+ * <br>Can be <jk>null</jk>.
+ * @return This object (for method chaining).
+ */
+ public SerializerSessionArgs javaMethod(Method javaMethod) {
+ this.javaMethod = javaMethod;
+ return this;
+ }
+
+ /**
+ * The URI context.
+ *
+ * @param uriContext
+ * The URI context.
+ * <br>Identifies the current request URI used for resolution of URIs to absolute or root-relative form.
+ * @return This object (for method chaining).
+ */
+ public SerializerSessionArgs uriContext(UriContext uriContext) {
+ this.uriContext = uriContext;
+ return this;
+ }
+
+ @Override /* BeanSessionArgs */
+ public SerializerSessionArgs locale(Locale locale) {
+ super.locale(locale);
+ return this;
+ }
+
+ @Override /* BeanSessionArgs */
+ public SerializerSessionArgs timeZone(TimeZone timeZone) {
+ super.timeZone(timeZone);
+ return this;
+ }
+
+ @Override /* BeanSessionArgs */
+ public SerializerSessionArgs mediaType(MediaType mediaType) {
+ super.mediaType(mediaType);
+ return this;
+ }
+
+ @Override /* SessionArgs */
+ public SerializerSessionArgs properties(ObjectMap properties) {
+ super.properties(properties);
+ return this;
+ }
}
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
index 3ba6ce8..e910294 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializer.java
@@ -41,7 +41,7 @@ public final class SoapXmlSerializer extends XmlSerializer {
/**
* Configuration property: The <code>SOAPAction</code> HTTP header value to set on responses.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"SoapXmlSerializer.SOAPAction.s"</js>
* <li><b>Data type:</b> <code>String</code>
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
index 7e56858..b583756 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/AnnotationBeanFilterBuilder.java
@@ -45,7 +45,7 @@ public final class AnnotationBeanFilterBuilder<T> extends BeanFilterBuilder<T> {
Bean b = li.previous();
if (! b.properties().isEmpty())
- includeProperties(split(b.properties()));
+ properties(split(b.properties()));
if (! b.typeName().isEmpty())
typeName(b.typeName());
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
index 5ed83f7..54288a6 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/BeanFilterBuilder.java
@@ -50,9 +50,9 @@ import org.apache.juneau.annotation.*;
* </p>
*
* <h6 class='topic'>Documentation</h6>
- * <ul>
- * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.BeanFilters">Overview > BeanFilters</a>
- * </ul>
+ * <ul>
+ *. <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.BeanFilters">Overview > BeanFilters</a>
+ *.</ul>
*
* @param <T> The bean type that this filter applies to.
*/
@@ -94,7 +94,7 @@ public class BeanFilterBuilder<T> {
*
* <h5 class='section'>Example:</h5>
* <p class='bcode'>
- * <jc>// Define our filter.</jc>
+ * <jc>// Define our filter.</jc>
* <jk>public class</jk> MyFilter <jk>extends</jk> BeanFilterBuilder<MyBean> {
* <jk>public</jk> MyFilter() {
* typeName(<js>"mybean"</js>);
@@ -160,7 +160,7 @@ public class BeanFilterBuilder<T> {
* <br>Values can contain comma-delimited list of property names.
* @return This object (for method chaining).
*/
- public BeanFilterBuilder<T> includeProperties(String...value) {
+ public BeanFilterBuilder<T> properties(String...value) {
this.includeProperties = value;
return this;
}
@@ -476,8 +476,8 @@ public class BeanFilterBuilder<T> {
* <p>
* The property filter to use for intercepting and altering getter and setter calls.
*
- * <h5 class='section'>Example:</h5>
- * <p class='bcode'>
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode'>
* <jc>// Define our filter.</jc>
* <jk>public class</jk> MyFilter <jk>extends</jk> BeanFilterBuilder<MyBean> {
* <jk>public</jk> MyFilter() {
@@ -491,7 +491,7 @@ public class BeanFilterBuilder<T> {
* .<jsm>create</jsm>()
* .beanFilters(MyFilter.<jk>class</jk>)
* .build();
- * </p>
+ * </p>
*
* <h5 class='section'>See Also:</h5>
* <ul>
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
index ae1eef0..6faff41 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/InterfaceBeanFilterBuilder.java
@@ -61,7 +61,7 @@ public class InterfaceBeanFilterBuilder<T> extends BeanFilterBuilder<T> {
Bean b = li.previous();
if (! b.properties().isEmpty())
- includeProperties(split(b.properties()));
+ properties(split(b.properties()));
if (! b.typeName().isEmpty())
typeName(b.typeName());
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PojoSwap.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PojoSwap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PojoSwap.java
index 6b6fa1c..4f46c6c 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PojoSwap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PojoSwap.java
@@ -152,9 +152,9 @@ public abstract class PojoSwap<T,S> {
* This method is the programmatic equivalent to the {@link Swap#mediaTypes() @Swap.mediaTypes()} annotation.
*
* <h6 class='topic'>Documentation</h6>
- * <ul>
- * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.PerMediaTypePojoSwaps">Overview > Per-media-type PojoSwaps</a>
- * </ul>
+ * <ul>
+ * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.PerMediaTypePojoSwaps">Overview > Per-media-type PojoSwaps</a>
+ * </ul>
* @return The media types that this swap is applicable to, or <jk>null</jk> if it's applicable for all media types.
*/
public MediaType[] forMediaTypes() {
@@ -173,10 +173,10 @@ public abstract class PojoSwap<T,S> {
* <p>
* This method is the programmatic equivalent to the {@link Swap#template() @Swap.template()} annotation.
*
- * <h5 class='section'>Documentation:</h5>
- * <ul>
- * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.TemplatedSwaps">Overview > Templated Swaps</a>
- * </ul>
+ * <h5 class='section'>Documentation:</h5>
+ * <ul>
+ * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.TemplatedSwaps">Overview > Templated Swaps</a>
+ * </ul>
*
* @return Additional context information, or <jk>null</jk> if not specified.
*/
@@ -188,9 +188,9 @@ public abstract class PojoSwap<T,S> {
* Sets the media types that this swap is associated with.
*
* <h6 class='topic'>Documentation</h6>
- * <ul>
- * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.PerMediaTypePojoSwaps">Overview > Per-media-type PojoSwaps</a>
- * </ul>
+ * <ul>
+ * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.PerMediaTypePojoSwaps">Overview > Per-media-type PojoSwaps</a>
+ * </ul>
*
* @param mediaTypes The media types that this swap is associated with.
* @return This object (for method chaining).
@@ -203,10 +203,10 @@ public abstract class PojoSwap<T,S> {
/**
* Sets the template string on this swap.
*
- * <h5 class='section'>Documentation:</h5>
- * <ul>
- * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.TemplatedSwaps">Overview > Templated Swaps</a>
- * </ul>
+ * <h5 class='section'>Documentation:</h5>
+ * <ul>
+ * <li><a class="doclink" href="../../../../overview-summary.html#juneau-marshall.TemplatedSwaps">Overview > Templated Swaps</a>
+ * </ul>
*
* @param template The template string on this swap.
* @return This object (for method chaining).
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PropertyFilter.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PropertyFilter.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PropertyFilter.java
index 18b7c32..16c641b 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PropertyFilter.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/transform/PropertyFilter.java
@@ -87,18 +87,18 @@ public class PropertyFilter {
* <p>
* Subclasses can override this property to convert property values to some other object just before serialization.
*
- * <h5 class='section'>Example:</h5>
- * <p class='bcode'>
- * <jc>// Address filter that strips out sensitive information.</jc>
- * <jk>public class</jk> AddressPropertyFilter <jk>extends</jk> PropertyFilter {
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode'>
+ * <jc>// Address filter that strips out sensitive information.</jc>
+ * <jk>public class</jk> AddressPropertyFilter <jk>extends</jk> PropertyFilter {
*
- * <jk>public</jk> Object readProperty(Object bean, String name, Object value) {
- * <jk>if</jk> (<js>"taxInfo"</js>.equals(name))
- * <jk>return</jk> <js>"redacted"</js>;
- * <jk>return</jk> value;
- * }
- * }
- * </p>
+ * <jk>public</jk> Object readProperty(Object bean, String name, Object value) {
+ * <jk>if</jk> (<js>"taxInfo"</js>.equals(name))
+ * <jk>return</jk> <js>"redacted"</js>;
+ * <jk>return</jk> value;
+ * }
+ * }
+ * </p>
*
* @param bean The bean from which the property was read.
* @param name The property name.
@@ -116,19 +116,19 @@ public class PropertyFilter {
* Subclasses can override this property to convert property values to some other object just before calling the
* bean setter.
*
- * <h5 class='section'>Example:</h5>
- * <p class='bcode'>
- * <jc>// Address filter that strips out sensitive information.</jc>
- * <jk>public class</jk> AddressPropertyFilter <jk>extends</jk> PropertyFilter {
+ * <h5 class='section'>Example:</h5>
+ * <p class='bcode'>
+ * <jc>// Address filter that strips out sensitive information.</jc>
+ * <jk>public class</jk> AddressPropertyFilter <jk>extends</jk> PropertyFilter {
*
- * <jk>public</jk> Object writeProperty(Object bean, String name, Object value) {
- * AddressBook a = (Address)bean;
- * <jk>if</jk> (<js>"taxInfo"</js>.equals(name) && <js>"redacted"</js>.equals(value))
- * <jk>return</jk> TaxInfoUtils.<jsm>lookup</jsm>(a.getStreet(), a.getCity(), a.getState());
- * <jk>return</jk> value;
- * }
- * }
- * </p>
+ * <jk>public</jk> Object writeProperty(Object bean, String name, Object value) {
+ * AddressBook a = (Address)bean;
+ * <jk>if</jk> (<js>"taxInfo"</js>.equals(name) && <js>"redacted"</js>.equals(value))
+ * <jk>return</jk> TaxInfoUtils.<jsm>lookup</jsm>(a.getStreet(), a.getCity(), a.getState());
+ * <jk>return</jk> value;
+ * }
+ * }
+ * </p>
*
* @param bean The bean from which the property was read.
* @param name The property name.
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
index 122f033..ad8838e 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParser.java
@@ -38,7 +38,7 @@ public class UonParser extends ReaderParser {
/**
* Configuration property: Decode <js>"%xx"</js> sequences.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"UonParser.decoding.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -50,7 +50,7 @@ public class UonParser extends ReaderParser {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Specify <jk>true</jk> if URI encoded characters should be decoded, <jk>false</jk> if they've already been decoded
* before being passed to this parser.
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
index 0f0ad07..1a93afe 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java
@@ -125,7 +125,7 @@ public class UonSerializer extends WriterSerializer {
/**
* Configuration property: Add <js>"_type"</js> properties when needed.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"UonSerializer.addBeanTypeProperties.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -137,7 +137,7 @@ public class UonSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred
* through reflection.
@@ -154,7 +154,7 @@ public class UonSerializer extends WriterSerializer {
/**
* Configuration property: Encode non-valid URI characters.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"UonSerializer.encoding.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -167,7 +167,7 @@ public class UonSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Encode non-valid URI characters with <js>"%xx"</js> constructs.
*
@@ -181,7 +181,7 @@ public class UonSerializer extends WriterSerializer {
/**
* Configuration property: Format to use for query/form-data/header values.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"UrlEncodingSerializer.paramFormat.s"</js>
* <li><b>Data type:</b> <code>String</code> ({@link ParamFormat})
@@ -194,7 +194,7 @@ public class UonSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Specifies the format to use for URL GET parameter keys and values.
*/
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index e7191cd..8dd9270 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -44,7 +44,7 @@ public class UrlEncodingParser extends UonParser {
/**
* Configuration property: Parser bean property collections/arrays as separate key/value pairs
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"UrlEncodingParser.expandedParams.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -56,7 +56,7 @@ public class UrlEncodingParser extends UonParser {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* This is the parser-side equivalent of the {@link #URLENC_expandedParams} setting.
*
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
index cabb5b6..6482448 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java
@@ -120,7 +120,7 @@ public class UrlEncodingSerializer extends UonSerializer {
/**
* Configuration property: Serialize bean property collections/arrays as separate key/value pairs.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"UrlEncodingSerializer.expandedParams.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -133,7 +133,7 @@ public class UrlEncodingSerializer extends UonSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If <jk>false</jk>, serializing the array <code>[1,2,3]</code> results in <code>?key=$a(1,2,3)</code>.
* If <jk>true</jk>, serializing the same array results in <code>?key=1&key=2&key=3</code>.
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java
index ce1f34d..28df465 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/MessageBundle.java
@@ -351,7 +351,7 @@ public class MessageBundle extends ResourceBundle {
*
* <p>
* Useful for debugging purposes.
- * Note that any class that implements a <code>toObjectMap()</code> method will automatically be serialized by
+ * Note that any class that implements a <code>swap()</code> method will automatically be serialized by
* calling this method and serializing the result.
*
* <p>
@@ -359,7 +359,7 @@ public class MessageBundle extends ResourceBundle {
*
* @return A new map containing all the keys and values in this bundle.
*/
- public ObjectMap toObjectMap() {
+ public ObjectMap swap() {
ObjectMap om = new ObjectMap();
for (String k : allKeys)
om.put(k, getString(k));
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
index 96a3f8b..df6e8ef 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParser.java
@@ -40,7 +40,7 @@ public class XmlParser extends ReaderParser {
/**
* Configuration property: XML event allocator.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlParser.eventAllocator.c"</js>
* <li><b>Data type:</b> <code>Class<? <jk>extends</jk> {@link XMLEventAllocator}></code>
@@ -52,7 +52,7 @@ public class XmlParser extends ReaderParser {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Associates an {@link XMLEventAllocator} with this parser.
*/
@@ -61,7 +61,7 @@ public class XmlParser extends ReaderParser {
/**
* Configuration property: Preserve root element during generalized parsing.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlParser.preserveRootElement.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -74,12 +74,12 @@ public class XmlParser extends ReaderParser {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If <jk>true</jk>, when parsing into a generic {@link ObjectMap}, the map will contain a single entry whose key
* is the root element name.
*
- * <h5 class='section'>Example:</h5>
+ * <h5 class='section'>Example:</h5>
* <table class='styled'>
* <tr>
* <td>XML</td>
@@ -98,7 +98,7 @@ public class XmlParser extends ReaderParser {
/**
* Configuration property: XML reporter.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlParser.reporter.c"</js>
* <li><b>Data type:</b> <code>Class<? <jk>extends</jk> {@link XMLReporter}></code>
@@ -110,7 +110,7 @@ public class XmlParser extends ReaderParser {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Associates an {@link XMLReporter} with this parser.
*
@@ -124,7 +124,7 @@ public class XmlParser extends ReaderParser {
/**
* Configuration property: XML resolver.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlParser.resolver.c"</js>
* <li><b>Data type:</b> <code>Class<? <jk>extends</jk> {@link XMLResolver}></code>
@@ -136,7 +136,7 @@ public class XmlParser extends ReaderParser {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Associates an {@link XMLResolver} with this parser.
*/
@@ -145,7 +145,7 @@ public class XmlParser extends ReaderParser {
/**
* Configuration property: Enable validation.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlParser.validating.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -158,7 +158,7 @@ public class XmlParser extends ReaderParser {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If <jk>true</jk>, XML document will be validated.
*
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
index ea9a891..29cc1db 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java
@@ -120,7 +120,7 @@ public class XmlSerializer extends WriterSerializer {
/**
* Configuration property: Add <js>"_type"</js> properties when needed.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlSerializer.addBeanTypeProperties.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -132,7 +132,7 @@ public class XmlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred
* through reflection.
@@ -149,7 +149,7 @@ public class XmlSerializer extends WriterSerializer {
/**
* Configuration property: Add namespace URLs to the root element.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlSerializer.addNamespaceUrisToRoot.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -162,7 +162,7 @@ public class XmlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Use this setting to add {@code xmlns:x} attributes to the root element for the default and all mapped namespaces.
*
@@ -174,7 +174,7 @@ public class XmlSerializer extends WriterSerializer {
/**
* Configuration property: Auto-detect namespace usage.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlSerializer.autoDetectNamespaces.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -186,7 +186,7 @@ public class XmlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Detect namespace usage before serialization.
*
@@ -213,7 +213,7 @@ public class XmlSerializer extends WriterSerializer {
/**
* Configuration property: Default namespace.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlSerializer.defaultNamespace.s"</js>
* <li><b>Data type:</b> <code>String</code> ({@link Namespace})
@@ -225,7 +225,7 @@ public class XmlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Specifies the default namespace URI for this document.
*/
@@ -234,7 +234,7 @@ public class XmlSerializer extends WriterSerializer {
/**
* Configuration property: Enable support for XML namespaces.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlSerializer.enableNamespaces.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -246,7 +246,7 @@ public class XmlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If not enabled, XML output will not contain any namespaces regardless of any other settings.
*/
@@ -255,7 +255,7 @@ public class XmlSerializer extends WriterSerializer {
/**
* Configuration property: Default namespaces.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlSerializer.namespaces.ls"</js>
* <li><b>Data type:</b> <code>Set<String></code> ({@link Namespace})
@@ -267,7 +267,7 @@ public class XmlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* The default list of namespaces associated with this serializer.
*/
@@ -276,7 +276,7 @@ public class XmlSerializer extends WriterSerializer {
/**
* Configuration property: XMLSchema namespace.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"XmlSerializer.xsNamespace.s"</js>
* <li><b>Data type:</b> <code>String</code> ({@link Namespace})
@@ -288,7 +288,7 @@ public class XmlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Specifies the namespace for the <code>XMLSchema</code> namespace, used by the schema generated by the
* {@link XmlSchemaSerializer} class.
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java
index 8257bfb..e9e63fe 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/yaml/proto/YamlSerializer.java
@@ -87,7 +87,7 @@ public class YamlSerializer extends WriterSerializer {
/**
* Configuration property: Add <js>"_type"</js> properties when needed.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"JsonSerializer.addBeanTypeProperties.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -99,7 +99,7 @@ public class YamlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred
* through reflection.
@@ -116,7 +116,7 @@ public class YamlSerializer extends WriterSerializer {
/**
* Configuration property: Prefix solidus <js>'/'</js> characters with escapes.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"JsonSerializer.escapeSolidus.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -128,7 +128,7 @@ public class YamlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If <jk>true</jk>, solidus (e.g. slash) characters should be escaped.
* The JSON specification allows for either format.
@@ -140,7 +140,7 @@ public class YamlSerializer extends WriterSerializer {
/**
* Configuration property: Simple JSON mode.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"JsonSerializer.simpleMode.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -153,7 +153,7 @@ public class YamlSerializer extends WriterSerializer {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* If <jk>true</jk>, JSON attribute names will only be quoted when necessary.
* Otherwise, they are always quoted.
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-doc/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-doc/src/main/javadoc/overview.html b/juneau-doc/src/main/javadoc/overview.html
index 903684b..d592213 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -105,11 +105,11 @@
<li><p><a class='doclink' href='#juneau-marshall.BeanIgnoreAnnotation'>@BeanIgnore Annotation</a></p>
<li><p><a class='doclink' href='#juneau-marshall.NamePropertyAnnotation'>@NameProperty Annotation</a></p>
<li><p><a class='doclink' href='#juneau-marshall.ParentPropertyAnnotation'>@ParentProperty Annotation</a></p>
- <li><p><a class='doclink' href='#juneau-marshall.URIAnnotation'>@URI Annotation</a></p>
+ <li><p><a class='doclink' href='#juneau-marshall.URIs'>URIs</a></p>
<li><p><a class='doclink' href='#juneau-marshall.BeanFilters'>BeanFilters</a></p>
+ <li><p><a class='doclink' href='#juneau-marshall.InterfaceFilters'>Interface filters</a></p>
<li><p><a class='doclink' href='#juneau-marshall.StopClasses'>Stop Classes</a></p>
- <li><p><a class='doclink' href='#juneau-marshall.SerializingToObjectMaps'>Serializing to ObjectMaps</a></p>
- <li><p><a class='doclink' href='#juneau-marshall.SerializingReadersAndInputStreams'>Serializing Readers and InputStreams</a></p>
+ <li><p><a class='doclink' href='#juneau-marshall.BypassSerialization'>Bypass Serialization using Readers and InputStreams</a></p>
</ol>
<li><p><a class='doclink' href='#juneau-marshall.BeanDictionaries'>Bean Name and Dictionaries</a></p>
<ol>
@@ -2283,31 +2283,109 @@
</div>
<!-- =================================================================================================== -->
- <a id="juneau-marshall.URIAnnotation"></a>
- <h4 class='topic' onclick='toggle(this)'>2.1.7.14 - @URI Annotation</h4>
+ <a id="juneau-marshall.URIs"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.1.7.14 - URIs</h4>
<div class='topic'>
<p>
- The {@link org.apache.juneau.annotation.URI @URI} annotation is used to identify a class or bean
- property as a URI.
+ Juneau serializers have sophisticated support for transforming relative URIs to absolute form.
</p>
<p>
- By default, instances of {@link java.net.URL} and {@link java.net.URI} are considered URIs during serialization and
- are handled differently depending on the serializer (e.g. <code>HtmlSerializer</code> creates a
- hyperlink, <code>RdfXmlSerializer</code> creates an <code>rdf:resource</code> object, etc...).
- <br>This annotation allows you to identify other classes that return URIs via <code>toString()</code>
- as URI objects.
+ The following example shows a bean containing URIs of various forms and how they end up serialized.
</p>
- <p>
- URIs are automatically resolved to absolute or root-relative form based on the serializer
- {@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution} and
- {@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity}
- configuration settings, and the URI context defined by the {@link org.apache.juneau.UriContext} that's part of the
- serializer session.
- <br>Refer to the {@link org.apache.juneau.UriResolver} class for information about the types of URIs that can be
- resolved during serialization.
+ <p class='bcode'>
+ <jc>// Our bean with properties containing various kinds of URIs.</jc>
+ <jk>public class</jk> TestURIs {
+ <jk>public</jk> URI
+ <jf>f1a</jf> = URI.<jsm>create</jsm>(<js>"http://www.apache.org/f1a"</js>),
+ <jf>f1b</jf> = URI.<jsm>create</jsm>(<js>"/f1b"</js>),
+ <jf>f1c</jf> = URI.<jsm>create</jsm>(<js>"/f1c/x/y"</js>),
+ <jf>f1d</jf> = URI.<jsm>create</jsm>(<js>"f1d"</js>),
+ <jf>f1e</jf> = URI.<jsm>create</jsm>(<js>"f1e/x/y"</js>),
+ <jf>f1f</jf> = URI.<jsm>create</jsm>(<js>""</js>),
+ <jf>f2a</jf> = URI.<jsm>create</jsm>(<js>"context:/f2a/x"</js>),
+ <jf>f2b</jf> = URI.<jsm>create</jsm>(<js>"context:/f2b"</js>),
+ <jf>f2c</jf> = URI.<jsm>create</jsm>(<js>"context:/"</js>),
+ <jf>f2d</jf> = URI.<jsm>create</jsm>(<js>"context:/.."</js>),
+ <jf>f3a</jf> = URI.<jsm>create</jsm>(<js>"servlet:/f3a/x"</js>),
+ <jf>f3b</jf> = URI.<jsm>create</jsm>(<js>"servlet:/f3b"</js>),
+ <jf>f3c</jf> = URI.<jsm>create</jsm>(<js>"servlet:/"</js>),
+ <jf>f3d</jf> = URI.<jsm>create</jsm>(<js>"servlet:/.."</js>),
+ <jf>f4a</jf> = URI.<jsm>create</jsm>(<js>"request:/f4a/x"</js>),
+ <jf>f4b</jf> = URI.<jsm>create</jsm>(<js>"request:/f4b"</js>),
+ <jf>f4c</jf> = URI.<jsm>create</jsm>(<js>"request:/"</js>),
+ <jf>f4d</jf> = URI.<jsm>create</jsm>(<js>"request:/.."</js>),
+ <jf>f5 </jf> = <jk>null</jk>;
+ }
+
+ <jc>// Create a serializer.</jc>
+ WriterSerializer s = JsonSerializer
+ <jsm>create</jsm>()
+ .simple()
+ .uriContext(<js>"{authority:'http://foo.com:123',contextRoot:'/myContext',servletPath:'/myServlet',pathInfo:'/myPath'}"</js>)
+ .uriResolution(<jsf>ABSOLUTE</jsf>)
+ .uriRelativity(<jsf>RESOURCE</jsf>)
+ .build();
+
+ <jc>// Produces:</jc>
+ <jc>// {</jc>
+ <jc>// f1a:'http://www.apache.org/f1a',</jc>
+ <jc>// f1b:'http://foo.com:123/f1b',</jc>
+ <jc>// f1c:'http://foo.com:123/f1c/x/y',</jc>
+ <jc>// f1d:'http://foo.com:123/myContext/myServlet/f1d',</jc>
+ <jc>// f1e:'http://foo.com:123/myContext/myServlet/f1e/x/y',</jc>
+ <jc>// f1f:'http://foo.com:123/myContext/myServlet',</jc>
+ <jc>// f2a:'http://foo.com:123/myContext/f2a/x',</jc>
+ <jc>// f2b:'http://foo.com:123/myContext/f2b',</jc>
+ <jc>// f2c:'http://foo.com:123/myContext',</jc>
+ <jc>// f2d:'http://foo.com:123'</jc>
+ <jc>// f3a:'http://foo.com:123/myContext/myServlet/f3a/x',</jc>
+ <jc>// f3b:'http://foo.com:123/myContext/myServlet/f3b',</jc>
+ <jc>// f3c:'http://foo.com:123/myContext/myServlet',</jc>
+ <jc>// f3d:'http://foo.com:123/myContext',</jc>
+ <jc>// f4a:'http://foo.com:123/myContext/myServlet/myPath/f4a/x',</jc>
+ <jc>// f4b:'http://foo.com:123/myContext/myServlet/myPath/f4b',</jc>
+ <jc>// f4c:'http://foo.com:123/myContext/myServlet/myPath',</jc>
+ <jc>// f4d:'http://foo.com:123/myContext/myServlet',</jc>
+ <jc>// }</jc>
+ String json = s.serialize(<jk>new</jk> TestURIs());
+ </p>
+ <p>
+ URI resolution is controlled by the following settings:
</p>
+ <ul class='doctree'>
+ <li class='jf'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriContext}
+ <br>Setting that defines the URI contextual information used to resolve relative URIs.
+ <li class='jf'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity}
+ <br>Setting that defines how relative URIs should be interpreted.
+ <br>Possible values:
+ <ul>
+ <li class='jf'>{@link org.apache.juneau.UriRelativity#RESOURCE}
+ <br>Relative URIs should be considered relative to the servlet URI.
+ <br>(e.g. <js>"http://host:port/context-root/servlet-path"</js>).
+ <li class='jf'>{@link org.apache.juneau.UriRelativity#PATH_INFO}
+ <br>Relative URIs should be considered relative to the request URI.
+ <br>(e.g. <js>"http://host:port/context-root/servlet-path/path-info"</js>).
+ </ul>
+ <li class='jf'>{@link org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution}
+ <br>Setting that defines the final format of serialized URIs.
+ <br>Possible values:
+ <ul>
+ <li class='jf'>{@link org.apache.juneau.UriResolution#ABSOLUTE}
+ <br>Resolve to an absolute URL.
+ <br>(e.g. <js>"http://host:port/context-root/servlet-path/path-info"</js>).
+ <li class='jf'>{@link org.apache.juneau.UriResolution#ROOT_RELATIVE}
+ <br>Resolve to a root-relative URL.
+ <br>(e.g. <js>"/context-root/servlet-path/path-info"</js>).
+ <li class='jf'>{@link org.apache.juneau.UriResolution#NONE}
+ <br>Don't do any URL resolution.
+ </ul>
+ </ul>
<p>
- This annotation can be applied to classes, interfaces, or bean property methods for fields.
+ Juneau automatically interprets any {@link java.net.URL} and {@link java.net.URI} objects as URIs and will
+ resolve them accordingly.
+ <br>The {@link org.apache.juneau.annotation.URI @URI} annotation can be used to extend that to other bean
+ properties and class types so that they also get interpreted as URIs.
+ <br>For example:
</p>
<p class='bcode'>
<jc>// Applied to a class whose toString() method returns a URI.</jc>
@@ -2423,133 +2501,163 @@
</div>
<!-- =================================================================================================== -->
- <a id="juneau-marshall.StopClasses"></a>
- <h4 class='topic' onclick='toggle(this)'>2.1.7.16 - Stop Classes</h4>
+ <a id="juneau-marshall.InterfaceFilters"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.1.7.16 - Interface Filters</h4>
<div class='topic'>
<p>
Occasionally, you may want to limit bean properties to only those defined on a parent class or interface.
- <br>There are a couple of ways of doing this.
+ <br>This is accomplished through interface filters.
</p>
<p>
- For example, let's define the following parent class and subclass:
+ Interface filters are defined through the following:
+ </p>
+ <ul>
+ <li class='jf'>{@link org.apache.juneau.BeanContext#BEAN_beanFilters}
+ <li class='ja'>{@link org.apache.juneau.annotation.Bean#interfaceClass() @Bean.interfaceClass()}
+ <li class='jm'>{@link org.apache.juneau.transform.BeanFilterBuilder#interfaceClass(Class)}
+ </ul>
+ <p>
+ For example, let's define the following interface and implementation:
</p>
<p class='bcode'>
- <jc>// Abstract parent class</jc>
- <jk>public abstract class</jk> MyClass {
- <jk>public</jk> String <jf>foo</jf>=<js>"foo"</js>;
+ <jc>// Interface</jc>
+ <jk>public class</jk> MyInterface {
+ <jk>public</jk> String getFoo();
}
- <jc>// Subclass</jc>
- <jk>public class</jk> MyClassBar <jk>extends</jk> MyClass {
- <jk>public</jk> String <jf>bar</jf>=<js>"bar"</js>;
+ <jc>// Implementation</jc>
+ <jk>public class</jk> MyInterfaceImpl <jk>implements</jk> MyInterface {
+ <jk>public</jk> String getFoo() {...}
+ <jk>public</jk> String getBar() {...}
}
</p>
<p>
- Suppose we only want to render the properties defined on <code>MyClass</code>, not those defined on
- child classes.
+ Suppose we only want to render the properties defined on our interface, not the implementation.
<br>To do so, we can define the following bean filter:
</p>
<p class='bcode'>
<jc>// Define transform that limits properties to only those defined on MyClass</jc>
- <jk>public class</jk> MyBeanFilter <jk>extends</jk> BeanFilter<MyClass> {
- <jk>public</jk> MyBeanFilter() {
- interfaceClass(MyClass.<jk>class</jk>);
+ <jk>public class</jk> MyInterfaceFilter <jk>extends</jk> BeanFilter<MyInterface> {
+ <jk>public</jk> MyInterfaceFilter() {
+ interfaceClass(MyInterface.<jk>class</jk>);
}
}
</p>
<p>
- When serialized, the serialized bean will only include properties defined on the parent class.
+ When serialized, the serialized bean will only include properties defined on the interface.
</p>
<p class='bcode'>
WriterSerializer s = JsonSerializer
.<jsm>create</jsm>()
.simple()
- .beanFilters(MyBeanFilter.<jk>class</jk>)
+ .beanFilters(MyInterfaceFilter.<jk>class</jk>)
.build();
- MyClass c = <jk>new</jk> MyClassBar();
- String json = s.serialize(p); <jc>// Prints "{foo:'foo'}"</jc>
+ MyInterface o = <jk>new</jk> MyInterfaceImpl();
+
+ <jc>// Prints "{foo:'foo'}"</jc>
+ <jc>// bar is ignored because it's not on the interface</jc>
+ String json = s.serialize(o);
</p>
<p>
- The equivalent can be done through an annotation on the parent class, which applies to all child classes:
+ The {@link org.apache.juneau.BeanContextBuilder#beanFilters(Object...)} method will automatically interpret any
+ non-<code>BeanFilter</code> classes passed in as meaning interface classes.
+ <br>So in the previous example, the <code>BeanFilter</code> class could have been avoided altogether by just
+ passing in <code>MyInterface.<jk>class</jk></code> to the serializer, like so:
</p>
<p class='bcode'>
- <jc>// All subclasses of MyClass should only show the 'foo' property.</jc>
- <ja>@Bean</ja>(interfaceClass=MyClass.<jk>class</jk>)
- <jk>public abstract class</jk> MyClass {
- <jk>public</jk> String <jf>foo</jf>=<js>"foo"</js>;
- }
+ WriterSerializer s = JsonSerializer
+ .<jsm>create</jsm>()
+ .beanFilters(MyInterface.<jk>class</jk>) <jc>Shortcut!</jc>
+ .build();
</p>
<p>
- The annotation can also be applied on the individual child classes, like so...
+ The annotation equivalent is {@link org.apache.juneau.annotation.Bean#interfaceClass() Bean#interfaceClass()}.
</p>
<p class='bcode'>
- <jc>// Only serialize 'foo' property from parent class.</jc>
- <ja>@Bean</ja>(interfaceClass=MyClass.<jk>class</jk>)
- <jk>public class</jk> MyClassBar <jk>extends</jk> MyClass {
- <jk>public</jk> String <jf>bar</jf>=<js>"bar"</js>;
+ <ja>@Bean</ja>(interfaceClass=MyInterface.<jk>class</jk>)
+ <jk>public class</jk> MyInterfaceImpl <jk>implements</jk> MyInterface {
+ <jk>public</jk> String getFoo() {...}
+ <jk>public</jk> String getBar() {...}
}
</p>
<p>
- Also, the <code>beanFilters()</code> methods will automatically interpret any non-<code>BeanFilter</code>
- classes passed in as meaning interface classes.
- <br>So in the previous example, the <code>BeanFilter</code> class could have been avoided altogether by just
- passing in <code>MyClass.<jk>class</jk></code> to the serializer, like so:
+ The annotation can be used in a couple of ways.
+ </p>
+ <p>
+ Using the annotation on an interface will be inherited by all children.
</p>
<p class='bcode'>
- WriterSerializer s = JsonSerializer
- .<jsm>create</jsm>()
- .beanFilters(MyClass.<jk>class</jk>) <jc>Shortcut!</jc>
- .build();
+ <ja>@Bean</ja>(interfaceClass=MyInterface.<jk>class</jk>)
+ <jk>public class</jk> MyInterface {
+ <jk>public</jk> String getFoo();
+ }
</p>
<p>
- The {@link org.apache.juneau.transform.BeanFilterBuilder#stopClass(Class)} method and
- {@link org.apache.juneau.annotation.Bean#stopClass() @Bean.stopClass()} annotation are equivalent,
- but filters from the other direction.
- <br>(i.e. filter out properties found on parent classes and interfaces)
+ The annotation can be used on parent classes as well.
+ <br>Child beans will only serialize properties defined on the parent class.
+ <p class='bcode'>
+ <ja>@Bean</ja>(interfaceClass=MyAbstractClass.<jk>class</jk>)
+ <jk>public abstract class</jk> MyAbstractClass {
+ <jk>public</jk> String getFoo() {...};
+ }
+ </p>
</div>
-
+
<!-- =================================================================================================== -->
- <a id="juneau-marshall.SerializingToObjectMaps"></a>
- <h4 class='topic' onclick='toggle(this)'>2.1.7.17 - Serializing to ObjectMaps</h4>
+ <a id="juneau-marshall.StopClasses"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.1.7.17 - Stop Classes</h4>
<div class='topic'>
<p>
- A shortcut method for transforming is provided that can often be simpler than defining transforms.
- In this case, we add methods to our class to serialize to {@link org.apache.juneau.ObjectMap ObjectMaps}
+ Whereas interface filters limit properties defined on child classes, stop filters
+ do the opposite and limit properties defined on parent classes.
</p>
<p>
- <p class='bcode'>
- <jk>public class</jk> MyClass {
- <jk>private</jk> String <jf>f1</jf>;
-
- <jc>// Constructor that takes in an ObjectMap</jc>
- <jk>public</jk> MyClass(ObjectMap m) {
- <jf>f1</jf> = m.getString(<js>"f1"</js>);
- }
-
- <jc>// Method that converts object to an ObjectMap</jc>
- <jk>public</jk> ObjectMap toObjectMap() {
- <jk>return new</jk> ObjectMap().append(<js>"f1"</js>, <jf>f1</jf>);
- }
+ Stop classes are defined through the following:
</p>
+ <ul>
+ <li class='ja'>{@link org.apache.juneau.annotation.Bean#stopClass() @Bean.stopClass()}
+ <li class='jf'>{@link org.apache.juneau.transform.BeanFilterBuilder#stopClass(Class)}
+ </ul>
<p>
- The <code>toObjectMap()</code> method will automatically be used during serialization, and
- the constructor will automatically be used during parsing.
- This will work for all serializers and parsers.
+ Stop classes are identical in purpose to the stop class specified by {@link java.beans.Introspector#getBeanInfo(Class, Class)}.
+ <br>Any properties in the stop class or in its base classes will be ignored during serialization.
+ </p>
+ <p>
+ For example, in the following class hierarchy, instances of <code>C3</code> will include property <code>p3</code>,
+ but not <code>p1</code> or <code>p2</code>.
+ </p>
+ <p class='bcode'>
+ <jk>public class</jk> C1 {
+ <jk>public int</jk> getP1();
+ }
+
+ <jk>public class</jk> C2 <jk>extends</jk> C1 {
+ <jk>public int</jk> getP2();
+ }
+
+ <ja>@Bean</ja>(stopClass=C2.<jk>class</jk>)
+ <jk>public class</jk> C3 <jk>extends</jk> C2 {
+ <jk>public int</jk> getP3();
+ }
+
+ <jc>// Serializes property 'p3', but NOT 'p1' or 'p2'.</jc>
+ String json = JsonSerializer.<jsf>DEFAULT</jsf>.serialize(<jk>new</jk> C3());
</p>
</div>
<!-- =================================================================================================== -->
- <a id="juneau-marshall.SerializingReadersAndInputStreams"></a>
- <h4 class='topic' onclick='toggle(this)'>2.1.7.18 - Serializing Readers and InputStreams</h4>
+ <a id="juneau-marshall.BypassSerialization"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.1.7.18 - Bypass Serialization using Readers and InputStreams</h4>
<div class='topic'>
<p>
Juneau serializers treat instances of <code>Readers</code> and <code>InputStreams</code> special by
simply serializing their contents directly to the output stream or writer.
- This allows you to embed fully customized serializer output.
+ <br>This allows you to embed fully customized serializer output.
</p>
<p class='bcode'>
<jk>public class</jk> MyBean {
+ <jc>// A bean property that produces raw JSON.</jc>
<jk>public</jk> Reader f1 = <jk>new</jk> StringReader(<js>"{'foo':'bar'}"</js>);
}
@@ -2570,6 +2678,8 @@
<ja>@Swap</ja>(MyBeanSwapSometimes.<jk>class</jk>)
<jk>public class</jk> MyBean {...}
+ <jc>// A swap that produces specialized output for JSON, but default serialization for</jc>
+ <jc>// all other media types.</jc>
<jk>public class</jk> MyBeanSwapSometimes <jk>extends</jk> PojoSwap<MyBean,Object> {
<jk>public</jk> Object swap(BeanSession session, MyPojo o) <jk>throws</jk> Exception {
MediaType mt = session.getMediaType();
@@ -9028,14 +9138,27 @@
Code for marshalling of parts have been removed from the URL-Encoding serializers and parsers.
<li>
<code>ContextBuilder.property(String,Object)</code> renamed to {@link org.apache.juneau.ContextBuilder#set(String,Object)}.
- <li><code>ResourceFinder</code> class has been replaced with the following:
+ <li>
+ <code>ResourceFinder</code> class has been replaced with the following:
<ul>
<li>{@link org.apache.juneau.utils.ClasspathResourceFinder}
<li>{@link org.apache.juneau.utils.ClasspathResourceFinderSimple}
<li>{@link org.apache.juneau.utils.ClasspathResourceFinderBasic}
<li>{@link org.apache.juneau.utils.ClasspathResourceFinderRecursive}
<li>{@link org.apache.juneau.utils.ClasspathResourceManager}
- </ul>
+ </ul>
+ <li>
+ New methods on {@link org.apache.juneau.serializer.SerializerSession}:
+ <ul>
+ <li>{@link org.apache.juneau.serializer.SerializerSession#getListener() getListener()}
+ <li>{@link org.apache.juneau.serializer.SerializerSession#getListener(Class) getListener(Class)}
+ </ul>
+ <li>
+ New methods on {@link org.apache.juneau.parser.ParserSession}:
+ <ul>
+ <li>{@link org.apache.juneau.parser.ParserSession#getListener() getListener()}
+ <li>{@link org.apache.juneau.parser.ParserSession#getListener(Class) getListener(Class)}
+ </ul>
</ul>
<h6 class='topic'>juneau-rest-server</h6>
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
index ba064a2..b0e91e5 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestCall.java
@@ -124,12 +124,12 @@ public final class RestCall extends BeanSession {
*
* <p>
* Can be any of the following types:
- * <ul>
- * <li>{@link URI}
- * <li>{@link URL}
- * <li>{@link URIBuilder}
- * <li>Anything else converted to a string using {@link Object#toString()}.
- * </ul>
+ * <ul>
+ * <li>{@link URI}
+ * <li>{@link URL}
+ * <li>{@link URIBuilder}
+ * <li>Anything else converted to a string using {@link Object#toString()}.
+ * </ul>
*
* <p>
* Relative URL strings will be interpreted as relative to the root URL defined on the client.
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
index 2d62063..30ff8c6 100644
--- a/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
+++ b/juneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestClient.java
@@ -73,7 +73,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Debug.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.debug.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -84,7 +84,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Enable debug mode.
*/
@@ -93,7 +93,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Executor service.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.executorService.o"</js>
* <li><b>Data type:</b> <code>Class<? <jk>implements</jk> ExecutorService></code> or {@link ExecutorService}.
@@ -104,8 +104,8 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
- * <p>
+ * <h5 class='section'>Description:</h5>
+ * <p>
* Defines the executor service to use when calling future methods on the {@link RestCall} class.
*
* <p>
@@ -126,7 +126,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Shut down executor service on close.</b>
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.executorServiceShutdownOnClose.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -137,7 +137,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Call {@link ExecutorService#shutdown()} when {@link RestClient#close()} is called.
*/
@@ -146,7 +146,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Request headers.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.requestHeader.sms"</js>
* <li><b>Data type:</b> <code>Map<String,String></code>
@@ -158,7 +158,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Headers to add to every request.
*/
@@ -167,7 +167,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Call interceptors.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.interceptors.lo"</js>
* <li><b>Data type:</b> <code>List<Class<? <jk>implements</jk> RestCallInterceptor | RestCallInterceptor</code>></code>
@@ -178,8 +178,8 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
- * <p>
+ * <h5 class='section'>Description:</h5>
+ * <p>
* Interceptors that get called immediately after a connection is made.
*/
public static final String RESTCLIENT_interceptors = PREFIX + "interceptors.lo";
@@ -192,7 +192,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Keep HttpClient open.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.keepHttpClientOpen.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
@@ -203,7 +203,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Don't close this client when the {@link RestClient#close()} method is called.
*/
@@ -212,7 +212,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Parser.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.parser.o"</js>
* <li><b>Data type:</b> <code>Class<? <jk>extends</jk> Parser></code> or {@link Parser}.
@@ -224,7 +224,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* The parser to use for parsing POJOs in response bodies.
*/
@@ -233,7 +233,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Part serializer.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.urlEncodingSerializer.o"</js>
* <li><b>Data type:</b> <code>Class<? <jk>implements</jk> HttpPartSerializer></code> or {@link HttpPartSerializer}.
@@ -245,7 +245,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* The serializer to use for serializing POJOs in form data, query parameters, headers, and path variables.
*/
@@ -254,7 +254,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Request query parameters.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.query.sms"</js>
* <li><b>Data type:</b> <code>Map<String,String></code>
@@ -265,7 +265,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Query parameters to add to every request.
*/
@@ -274,7 +274,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Number of retries to attempt.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.retries.i"</js>
* <li><b>Data type:</b> <code>Integer</code>
@@ -285,7 +285,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* The number of retries to attempt when the connection cannot be made or a <code>>400</code> response is received.
*/
@@ -294,7 +294,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: The time in milliseconds between retry attempts.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.retryInterval.i"</js>
* <li><b>Data type:</b> <code>Integer</code>
@@ -305,7 +305,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* The time in milliseconds between retry attempts.
* <code>-1</code> means retry immediately.
@@ -315,7 +315,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Retry-on determination object.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.retryOn.o"</js>
* <li><b>Data type:</b> <code>Class<? extends {@link RetryOn}</code> or {@link RetryOn}
@@ -326,7 +326,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* Object used for determining whether a retry should be attempted.
*/
@@ -335,7 +335,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Root URI.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.rootUri.s"</js>
* <li><b>Data type:</b> <code>String</code>
@@ -346,7 +346,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* When set, relative URL strings passed in through the various rest call methods (e.g. {@link RestClient#doGet(Object)}
* will be prefixed with the specified root.
@@ -358,7 +358,7 @@ public class RestClient extends BeanContext {
/**
* Configuration property: Serializer.
*
- * <h5 class='section'>Property:</h5>
+ * <h5 class='section'>Property:</h5>
* <ul>
* <li><b>Name:</b> <js>"RestClient.serializer.o"</js>
* <li><b>Data type:</b> <code>Class<? <jk>extends</jk> Serializer></code> or {@link Serializer}.
@@ -370,7 +370,7 @@ public class RestClient extends BeanContext {
* </ul>
* </ul>
*
- * <h5 class='section'>Description:</h5>
+ * <h5 class='section'>Description:</h5>
* <p>
* The serializer to use for serializing POJOs in request bodies.
*/
http://git-wip-us.apache.org/repos/asf/juneau/blob/0ab0b231/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
----------------------------------------------------------------------
diff --git a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
index a085127..c187616 100644
--- a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
+++ b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/ReaderResource.java
@@ -72,7 +72,7 @@ public class ReaderResource implements Writable {
* <li><code>Reader</code> - Converted to UTF-8 bytes.
* <li><code>File</code>
* <li><code>CharSequence</code> - Converted to UTF-8 bytes.
- * </ul>
+ * </ul>
* @throws IOException
*/
public ReaderResource(MediaType mediaType, Map<String,String> headers, VarResolverSession varSession, Object...contents) throws IOException {
@@ -149,7 +149,7 @@ public class ReaderResource implements Writable {
* <li><code>Reader</code> - Converted to UTF-8 bytes.
* <li><code>File</code>
* <li><code>CharSequence</code> - Converted to UTF-8 bytes.
- * </ul>
+ * </ul>
* @return This object (for method chaining).
*/
public Builder contents(Object...contents) {