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 2017/03/27 01:21:32 UTC

[22/37] incubator-juneau-website git commit: Update javadocs

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/236aea45/content/site/apidocs/org/apache/juneau/xml/XmlParserSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/xml/XmlParserSession.html b/content/site/apidocs/org/apache/juneau/xml/XmlParserSession.html
index a8365b1..212b655 100644
--- a/content/site/apidocs/org/apache/juneau/xml/XmlParserSession.html
+++ b/content/site/apidocs/org/apache/juneau/xml/XmlParserSession.html
@@ -276,7 +276,7 @@ extends <a href="../../../../org/apache/juneau/parser/ParserSession.html" title=
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a></h3>
-<code><a href="../../../../org/apache/juneau/BeanSession.html#Z:Z_class--">_class</a>, <a href="../../../../org/apache/juneau/BeanSession.html#asMap--">asMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanMeta-java.lang.Class-">getBeanMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanRegistry--">getBeanRegistry</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanTypePropertyName--
 ">getBeanTypePropertyName</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassLoader--">getClassLoader</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.Class-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.reflect.Type-java.lang.reflect.Type...-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetaForObject-T-">getClassMetaForObject</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetas-java.lang.Class:A-">getClassMetas</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getLocale--">getLocale</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getMediaType--">getMediaType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getStringBuilder--">getStringBuilder</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getTimeZone--">getTimeZone</a>, <a href="../../../../org/apache/juneau/BeanSession.
 html#isBean-java.lang.Class-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isBean-java.lang.Object-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isDebug--">isDebug</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isIgnoreUnknownBeanProperties--">isIgnoreUnknownBeanProperties</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Object-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Object-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#object--">object</a>, <a href="../../../../org/apache/juneau/BeanSession.html#returnStringBuilder-java.lang.StringBuilder-">returnStringBuilder</a>, <a href="../../../../org/a
 pache/juneau/BeanSession.html#string--">string</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toArray-org.apache.juneau.ClassMeta-java.util.Collection-">toArray</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-">toBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-java.lang.Class-">toBeanMap</a></code></li>
+<code><a href="../../../../org/apache/juneau/BeanSession.html#Z:Z_class--">_class</a>, <a href="../../../../org/apache/juneau/BeanSession.html#asMap--">asMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanMeta-java.lang.Class-">getBeanMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanRegistry--">getBeanRegistry</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanTypePropertyName--
 ">getBeanTypePropertyName</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassLoader--">getClassLoader</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.Class-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.reflect.Type-java.lang.reflect.Type...-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetaForObject-T-">getClassMetaForObject</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetas-java.lang.reflect.Type:A-">getClassMetas</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getLocale--">getLocale</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getMediaType--">getMediaType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getStringBuilder--">getStringBuilder</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getTimeZone--">getTimeZone</a>, <a href="../../../../org/apache/juneau/BeanS
 ession.html#isBean-java.lang.Class-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isBean-java.lang.Object-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isDebug--">isDebug</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isIgnoreUnknownBeanProperties--">isIgnoreUnknownBeanProperties</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Object-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Object-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#object--">object</a>, <a href="../../../../org/apache/juneau/BeanSession.html#returnStringBuilder-java.lang.StringBuilder-">returnStringBuilder</a>, <a href="../../../.
 ./org/apache/juneau/BeanSession.html#string--">string</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toArray-org.apache.juneau.ClassMeta-java.util.Collection-">toArray</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-">toBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-java.lang.Class-">toBeanMap</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.juneau.Session">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/236aea45/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html b/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html
index fbbe3ff..1a13190 100644
--- a/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html
+++ b/content/site/apidocs/org/apache/juneau/xml/XmlSerializerSession.html
@@ -263,7 +263,7 @@ extends <a href="../../../../org/apache/juneau/serializer/SerializerSession.html
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.juneau.<a href="../../../../org/apache/juneau/BeanSession.html" title="class in org.apache.juneau">BeanSession</a></h3>
-<code><a href="../../../../org/apache/juneau/BeanSession.html#Z:Z_class--">_class</a>, <a href="../../../../org/apache/juneau/BeanSession.html#asMap--">asMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanMeta-java.lang.Class-">getBeanMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanRegistry--">getBeanRegistry</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanTypePropertyName--
 ">getBeanTypePropertyName</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassLoader--">getClassLoader</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.Class-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.reflect.Type-java.lang.reflect.Type...-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetaForObject-T-">getClassMetaForObject</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetas-java.lang.Class:A-">getClassMetas</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getLocale--">getLocale</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getMediaType--">getMediaType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getStringBuilder--">getStringBuilder</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getTimeZone--">getTimeZone</a>, <a href="../../../../org/apache/juneau/BeanSession.
 html#isBean-java.lang.Class-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isBean-java.lang.Object-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isDebug--">isDebug</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isIgnoreUnknownBeanProperties--">isIgnoreUnknownBeanProperties</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Object-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Object-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#object--">object</a>, <a href="../../../../org/apache/juneau/BeanSession.html#returnStringBuilder-java.lang.StringBuilder-">returnStringBuilder</a>, <a href="../../../../org/a
 pache/juneau/BeanSession.html#string--">string</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toArray-org.apache.juneau.ClassMeta-java.util.Collection-">toArray</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-">toBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-java.lang.Class-">toBeanMap</a></code></li>
+<code><a href="../../../../org/apache/juneau/BeanSession.html#Z:Z_class--">_class</a>, <a href="../../../../org/apache/juneau/BeanSession.html#asMap--">asMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Object-java.lang.Class-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#convertToType-java.lang.Object-java.lang.Object-org.apache.juneau.ClassMeta-">convertToType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanMeta-java.lang.Class-">getBeanMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanRegistry--">getBeanRegistry</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getBeanTypePropertyName--
 ">getBeanTypePropertyName</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassLoader--">getClassLoader</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.Class-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMeta-java.lang.reflect.Type-java.lang.reflect.Type...-">getClassMeta</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetaForObject-T-">getClassMetaForObject</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getClassMetas-java.lang.reflect.Type:A-">getClassMetas</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getLocale--">getLocale</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getMediaType--">getMediaType</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getStringBuilder--">getStringBuilder</a>, <a href="../../../../org/apache/juneau/BeanSession.html#getTimeZone--">getTimeZone</a>, <a href="../../../../org/apache/juneau/BeanS
 ession.html#isBean-java.lang.Class-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isBean-java.lang.Object-">isBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isDebug--">isDebug</a>, <a href="../../../../org/apache/juneau/BeanSession.html#isIgnoreUnknownBeanProperties--">isIgnoreUnknownBeanProperties</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBean-java.lang.Object-java.lang.Class-">newBean</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#newBeanMap-java.lang.Object-java.lang.Class-">newBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#object--">object</a>, <a href="../../../../org/apache/juneau/BeanSession.html#returnStringBuilder-java.lang.StringBuilder-">returnStringBuilder</a>, <a href="../../../.
 ./org/apache/juneau/BeanSession.html#string--">string</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toArray-org.apache.juneau.ClassMeta-java.util.Collection-">toArray</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-">toBeanMap</a>, <a href="../../../../org/apache/juneau/BeanSession.html#toBeanMap-T-java.lang.Class-">toBeanMap</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.juneau.Session">

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/236aea45/content/site/apidocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-summary.html b/content/site/apidocs/overview-summary.html
index fce34b7..bba44fa 100644
--- a/content/site/apidocs/overview-summary.html
+++ b/content/site/apidocs/overview-summary.html
@@ -2592,56 +2592,95 @@
          use and allowing much more flexibility.
    </p>
    <p>
-      Remoteable Services are implemented through a combination of the Server and Client libraries.
+      The remote proxy interface API allows you to invoke server-side POJO methods on the client side using REST as the communications protocol:
    </p>
-   <ul class='spaced-list'>
-      <li>Proxy interfaces are retrieved using the <a href="org/apache/juneau/rest/client/RestClient.html#getRemoteableProxy-java.lang.Class-"><code>RestClient.getRemoteableProxy(Class)</code></a> method.
-      <li>The <a href="org/apache/juneau/rest/client/RestClientBuilder.html#remoteableServletUri-java.lang.String-"><code>RestClientBuilder.remoteableServletUri(String)</code></a> method is used to specify the location
-         of the remoteable services servlet running on the server.
-      <li>The <a href="org/apache/juneau/rest/remoteable/RemoteableServlet.html" title="class in org.apache.juneau.rest.remoteable"><code>RemoteableServlet</code></a> class is a specialized subclass of <a href="org/apache/juneau/rest/RestServlet.html" title="class in org.apache.juneau.rest"><code>RestServlet</code></a> that provides a full-blown
-         REST interface for calling interfaces remotely. 
-   </ul>
-   <p>
-      In this example, you have the following interface defined that you want to call from the client side against
-         a POJO on the server side (i.e. a Remoteable Service):
    <p class='bcode'>
-   <jk>public interface</jk> IAddressBook {
-      Person createPerson(CreatePerson cp) <jk>throws</jk> Exception;
-   }
-   </p>        
+   <jc>// Get an interface proxy.</jc>
+   IAddressBook ab = restClient.getRemoteableProxy(IAddressBook.<jk>class</jk>);
+   
+   <jc>// Invoke a method on the server side and get the returned result.</jc>
+   Person p = ab.createPerson(
+      <jk>new</jk> Person(
+         <js>"John Smith"</js>, 
+         <js>"Aug 1, 1999"</js>,
+         <jk>new</jk> Address(<js>"My street"</js>, <js>"My city"</js>, <js>"My state"</js>, 12345, <jk>true</jk>)
+      )
+   );
+   </p>
    <p>
-      The client side code for invoking this method is shown below:
+      There are two ways to expose remoteable proxies on the server side:
+   </p>
+   <ol>
+      <li>Extending from <code>RemoteableServlet</code>.
+      <li>Using a <code><ja>@RestMethod</ja>(name=<js>"PROXY"</js>)</code> annotation on a Java method.
+   </ol>
+   <p>
+      The <code>RemoteableServlet</code> class is a simple specialized servlet with an abstract <code>getServiceMap()</code>
+      method to define the server-side POJOs:
    </p>
    <p class='bcode'>
-   <jc>// Create a RestClient using JSON for serialization, and point to the server-side remoteable servlet.</jc>
-   RestClient client = <jk>new</jk> RestClientBuilder()
-      .remoteableServletUri(<js>"https://localhost:9080/juneau/sample/remoteable"</js>)
-      .build();
+   <ja>@RestResource</ja>(
+      path=<js>"/remote"</js>
+   )
+   <jk>public class</jk> SampleRemoteableServlet <jk>extends</jk> RemoteableServlet {
    
-   <jc>// Create a proxy interface.</jc>
-   IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>);
+      <jc>// Our server-side POJO.</jc>
+      AddressBook <jf>addressBook</jf> = <jk>new</jk> AddressBook();
    
-   <jc>// Invoke a method on the server side and get the returned result.</jc>
-   Person p = ab.createPerson(
-      <jk>new</jk> CreatePerson(<js>"Test Person"</js>,
-         AddressBook.<jsm>toCalendar</jsm>(<js>"Aug 1, 1999"</js>),
-         <jk>new</jk> CreateAddress(<js>"Test street"</js>, <js>"Test city"</js>, <js>"Test state"</js>, 12345, <jk>true</jk>))
-   );
+      <ja>@Override</ja> <jc>/* RemoteableServlet */</jc>
+      <jk>protected</jk> Map&lt;Class&lt;?&gt;,Object&gt; getServiceMap() <jk>throws</jk> Exception {
+         Map&lt;Class&lt;?&gt;,Object&gt; m = <jk>new</jk> LinkedHashMap&lt;Class&lt;?&gt;,Object&gt;();
+   
+         <jc>// In this simplified example, we expose the same POJO service under two different interfaces.
+         // One is IAddressBook which only exposes methods defined on that interface, and
+         // the other is AddressBook itself which exposes all methods defined on the class itself (dangerous!).</jc>
+         m.put(IAddressBook.<jk>class</jk>, <jf>addressBook</jf>);
+         m.put(AddressBook.<jk>class</jk>, <jf>addressBook</jf>);
+         <jk>return</jk> m;
+      }
+   }
    </p>
    <p>
-      The requirements for a method to be callable through a remoteable service are:
+      The <code><ja>@RestMethod</ja>(name=<js>"PROXY"</js>)</code> approach is easier if you only have a single interface you want to expose.  
+      You simply define a Java method whose return type is an interface, and return the implementation of that interface:
+   </p>
+   <p class='bcode'>
+   <jc>// Our exposed proxy object.</jc>
+   <ja>@RestMethod</ja>(name=<js>"PROXY"</js>, path=<js>"/addressbookproxy/*"</js>)
+   <jk>public</jk> IAddressBook getProxy() {
+      <jk>return</jk> addressBook;
+   }
    </p>
-   <ul class='spaced-list'>
-      <li>The method must be public.
-      <li>The parameter and return types must be <a href='#Core.PojoCategories'>serializable and parsable</a>.
-   </ul>
    <p>
-      One significant feature is that the remoteable services servlet is a full-blown REST interface.  
+      In either case, the proxy communications layer is pure REST.   
+      Parameters passed in on the client side are serialized as an HTTP POST, parsed on the
+      server side, and then passed to the invocation method.  The returned POJO is then marshalled back as an HTTP response.
       Therefore, in cases where the interface classes are not available on the client side,
          the same method calls can be made through pure REST calls.  
       This can also aid significantly in debugging, since calls to the remoteable service
          can be made directly from a browser with no coding involved.
    </p>
+   <p>
+      The parameters and return types of the Java methods can be any of the supported serializable and parsable types in <a class='doclink' href='#Core.PojoCategories'>POJO Categories</a>.
+      This ends up being WAY more flexible than other proxy interfaces since Juneau can handle so may POJO types out-of-the-box.
+      Most of the time you don't even need to modify your existing Java implementation code.
+   </p>
+   <p>
+      The RemoteableServlet class itself shows how sophisticated REST interfaces can be built on the Juneau RestServlet
+      API using very little code.  The RemoteableServlet class itself consists of only 53 lines of code, yet is
+      a sophisticated discoverable and self-documenting REST interface.  And since the remote proxy API is built on top 
+      of REST, it can be debugged using just a browser.
+   </p>
+   <p>
+      The requirements for a method to be callable through a remoteable service are:
+   </p>
+   <ul class='spaced-list'>
+      <li>The method must be public.
+      <li>The parameter and return types must be <a href='#Core.PojoCategories'>serializable and parsable</a>.
+         Parameterized types are supported.
+      <li>Methods can throw <code>Throwables</code> with public no-arg or single-arg-string constructors which will be automatically 
+         recreated on the client side.
+   </ul>
    <h6 class='topic'>Additional Information</h6>
    <ul class='javahierarchy'>
       <li class='p'><a class='doclink' href='org/apache/juneau/server/remoteable/package-summary.html#TOC'>org.apache.juneau.rest.remoteable</a> - Juneau Remoteable API Javadocs.
@@ -6065,6 +6104,8 @@
             <li>New <a href="org/apache/juneau/svl/vars/SwitchVar.html" title="class in org.apache.juneau.svl.vars"><code>$SWITCH</code></a> variable for switch block logic.
             <li>Whitespace wasn't being ignored in some cases.
          </ul>
+         <li><a href="org/apache/juneau/html/HtmlParser.html" title="class in org.apache.juneau.html"><code>HtmlParser</code></a> can now parse full body contents generated by <a href="org/apache/juneau/html/HtmlDocSerializer.html" title="class in org.apache.juneau.html"><code>HtmlDocSerializer</code></a>. 
+         <li>Parse-args supported added to <a href="org/apache/juneau/msgpack/MsgPackParser.html" title="class in org.apache.juneau.msgpack"><code>MsgPackParser</code></a> to allow it to be used in remoteable proxies. 
       </ul>
       
       <h6 class='topic'>org.apache.juneau.rest</h6>
@@ -6114,11 +6155,46 @@
          <li><a href="org/apache/juneau/rest/annotation/RestResource.html#stylesheet--"><code>RestResource.stylesheet()</code></a> can now take in a comma-delimited list of stylesheet paths.
          <li><a href="org/apache/juneau/rest/StreamResource.html" title="class in org.apache.juneau.rest"><code>StreamResource</code></a> can now contain multiple sources from a variety of source types (e.g. <code><jk>byte</jk>[]</code> arrays, <code>InputStreams</code>, <code>Files</code>, etc...)
             and is now immutable.  It also includes a new <a href="org/apache/juneau/rest/StreamResource.Builder.html" title="class in org.apache.juneau.rest"><code>StreamResource.Builder</code></a> class.
+         <li>Simplified remoteable proxies using the <code><ja>@RestMethod</ja>(name=<js>"PROXY"</js>)</code> annotation on REST methods.
+            Used to expose interface proxies without the need for <a href="org/apache/juneau/rest/remoteable/RemoteableServlet.html" title="class in org.apache.juneau.rest.remoteable"><code>RemoteableServlet</code></a>.
+         <p class='bcode'>
+   <jc>// Server side</jc>
+   <ja>@RestMethod</ja>(name=<js>"PROXY"</js>, path=<js>"/myproxy/*"</js>)
+   <jk>public</jk> IAddressBook getProxy() {
+      <jk>return</jk> <jf>addressBook</jf>;
+   }
+
+   <jc>// Client side</jc>
+   RestClient client = <jk>new</jk> RestClientBuilder().rootUrl(<jf>samplesUrl</jf>).build();         
+   IAddressBook ab = client.getRemoteableProxy(IAddressBook.<jk>class</jk>, <js>"/addressBook/myproxy"</js>);
+         </p>
+            See <a href="org/apache/juneau/rest/annotation/RestMethod.html#name--"><code>RestMethod.name()</code></a> for more information.
+         <li>Updated doc: <a class='doclink' href='#Remoteable'>6 - Remoteable Services</a>
+         <li><a href="org/apache/juneau/rest/RestRequest.html#toString--"><code>RestRequest.toString()</code></a> can be called at any time to view the headers and content of the request
+            without affecting functionality.  Very useful for debugging.
       </ul>
 
       <h6 class='topic'>org.apache.juneau.rest.client</h6>
       <ul class='spaced-list'>
          <li>Revamped the client API to use builders.
+         <li>New methods added to <a href="org/apache/juneau/rest/client/RestCall.html" title="class in org.apache.juneau.rest.client"><code>RestCall</code></a>:
+         <ul>
+            <li><a href="org/apache/juneau/rest/client/RestCall.html#serializer-org.apache.juneau.serializer.Serializer-"><code>RestCall.serializer(Serializer)</code></a> - Override the serializer defined on the client for a single call.
+            <li><a href="org/apache/juneau/rest/client/RestCall.html#parser-org.apache.juneau.parser.Parser-"><code>RestCall.parser(Parser)</code></a> - Override the parser defined on the client for a single call.
+         </ul>
+         <li>New methods added to <a href="org/apache/juneau/rest/client/RestClient.html" title="class in org.apache.juneau.rest.client"><code>RestClient</code></a>:
+         <ul>
+            <li><a href="org/apache/juneau/rest/client/RestClient.html#getRemoteableProxy-java.lang.Class-java.lang.Object-"><code>RestClient.getRemoteableProxy(Class,Object)</code></a> - For interface proxies defined using <code><ja>@RestMethod</ja>(name=<js>"PROXY"</js>)</code>.
+            <li><a href="org/apache/juneau/rest/client/RestClient.html#getRemoteableProxy-java.lang.Class-java.lang.Object-org.apache.juneau.serializer.Serializer-org.apache.juneau.parser.Parser-"><code>RestClient.getRemoteableProxy(Class,Object,Serializer,Parser)</code></a> - Same as above, but overrides the serializer and parser defined on the client.
+         </ul>
+         <li>New methods added to <a href="org/apache/juneau/rest/client/RestClientBuilder.html" title="class in org.apache.juneau.rest.client"><code>RestClientBuilder</code></a>:
+         <ul>
+            <li><a href="org/apache/juneau/rest/client/RestClientBuilder.html#noTrace--"><code>RestClientBuilder.noTrace()</code></a> - Adds a <code>No-Trace: true</code> header on all requests to prevent
+               the servlet from logging errors.
+               Useful for testing scenarios when you don't want the console to end up showing errors done on purpose.
+            <li><a href="org/apache/juneau/rest/client/RestClientBuilder.html#debug-boolean-"><code>RestClientBuilder.debug(boolean)</code></a> now adds a <code>Debug: true</code> header on all requests.
+         </ul>
+         <li>New doc: <a class='doclink' href='org/apache/juneau/rest/client/package-summary.html#Debugging'>1.5 - Debugging</a>
       </ul>
       
       <h6 class='topic'>org.apache.juneau.microservice</h6>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/236aea45/content/site/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-tree.html b/content/site/apidocs/overview-tree.html
index d576a9c..4aba9c3 100644
--- a/content/site/apidocs/overview-tree.html
+++ b/content/site/apidocs/overview-tree.html
@@ -270,6 +270,7 @@
 </li>
 <li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/ClassUtils.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">ClassUtils</span></a></li>
 <li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/ClassUtils.ClassComparator.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">ClassUtils.ClassComparator</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/ClassUtils.MethodInfo.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">ClassUtils.MethodInfo</span></a></li>
 <li type="circle">org.apache.juneau.internal.<a href="org/apache/juneau/internal/CollectionUtils.html" title="class in org.apache.juneau.internal"><span class="typeNameLink">CollectionUtils</span></a></li>
 <li type="circle">org.apache.juneau.dto.cognos.<a href="org/apache/juneau/dto/cognos/Column.html" title="class in org.apache.juneau.dto.cognos"><span class="typeNameLink">Column</span></a></li>
 <li type="circle">org.apache.juneau.dto.atom.<a href="org/apache/juneau/dto/atom/Common.html" title="class in org.apache.juneau.dto.atom"><span class="typeNameLink">Common</span></a>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/236aea45/content/site/apidocs/serialized-form.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/serialized-form.html b/content/site/apidocs/serialized-form.html
index 51ae46d..ccc29b4 100644
--- a/content/site/apidocs/serialized-form.html
+++ b/content/site/apidocs/serialized-form.html
@@ -545,10 +545,22 @@
 <h4>e</h4>
 <pre>org.apache.http.client.HttpResponseException e</pre>
 </li>
-<li class="blockListLast">
+<li class="blockList">
 <h4>httpResponse</h4>
 <pre>org.apache.http.HttpResponse httpResponse</pre>
 </li>
+<li class="blockList">
+<h4>serverExceptionName</h4>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> serverExceptionName</pre>
+</li>
+<li class="blockList">
+<h4>serverExceptionMessage</h4>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> serverExceptionMessage</pre>
+</li>
+<li class="blockListLast">
+<h4>serverExceptionTrace</h4>
+<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> serverExceptionTrace</pre>
+</li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/236aea45/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html b/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html
index ce6ceec..6627ff9 100644
--- a/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html
+++ b/content/site/apidocs/src-html/org/apache/juneau/BeanSession.html
@@ -740,7 +740,7 @@
 <span class="sourceLineNo">732</span>      if (m == null)<a name="line.732"></a>
 <span class="sourceLineNo">733</span>         return null;<a name="line.733"></a>
 <span class="sourceLineNo">734</span>      T bean = null;<a name="line.734"></a>
-<span class="sourceLineNo">735</span>      if (m.constructorArgs.length == 0) <a name="line.735"></a>
+<span class="sourceLineNo">735</span>      if (m.constructorArgs.length == 0)<a name="line.735"></a>
 <span class="sourceLineNo">736</span>         bean = newBean(outer, c);<a name="line.736"></a>
 <span class="sourceLineNo">737</span>      return new BeanMap&lt;T&gt;(this, bean, m);<a name="line.737"></a>
 <span class="sourceLineNo">738</span>   }<a name="line.738"></a>
@@ -782,7 +782,7 @@
 <span class="sourceLineNo">774</span>         return null;<a name="line.774"></a>
 <span class="sourceLineNo">775</span>      try {<a name="line.775"></a>
 <span class="sourceLineNo">776</span>         T o = (T)m.newBean(outer);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>         if (o == null) <a name="line.777"></a>
+<span class="sourceLineNo">777</span>         if (o == null)<a name="line.777"></a>
 <span class="sourceLineNo">778</span>            throw new BeanRuntimeException(c, "Class does not have a no-arg constructor.");<a name="line.778"></a>
 <span class="sourceLineNo">779</span>         return o;<a name="line.779"></a>
 <span class="sourceLineNo">780</span>      } catch (BeanRuntimeException e) {<a name="line.780"></a>
@@ -851,13 +851,13 @@
 <span class="sourceLineNo">843</span>   }<a name="line.843"></a>
 <span class="sourceLineNo">844</span><a name="line.844"></a>
 <span class="sourceLineNo">845</span>   /**<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    * Given an array of {@link Class} objects, returns an array of corresponding {@link ClassMeta} objects.<a name="line.846"></a>
+<span class="sourceLineNo">846</span>    * Given an array of {@link Type} objects, returns an array of corresponding {@link ClassMeta} objects.<a name="line.846"></a>
 <span class="sourceLineNo">847</span>    * Constructs a new array on each call.<a name="line.847"></a>
 <span class="sourceLineNo">848</span>    *<a name="line.848"></a>
 <span class="sourceLineNo">849</span>    * @param classes The array of classes to get class metas for.<a name="line.849"></a>
 <span class="sourceLineNo">850</span>    * @return An array of {@link ClassMeta} objects corresponding to the classes.  Never &lt;jk&gt;null&lt;/jk&gt;.<a name="line.850"></a>
 <span class="sourceLineNo">851</span>    */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>   public final ClassMeta&lt;?&gt;[] getClassMetas(Class&lt;?&gt;[] classes) {<a name="line.852"></a>
+<span class="sourceLineNo">852</span>   public final ClassMeta&lt;?&gt;[] getClassMetas(Type[] classes) {<a name="line.852"></a>
 <span class="sourceLineNo">853</span>      assertFieldNotNull(classes, "classes");<a name="line.853"></a>
 <span class="sourceLineNo">854</span>      ClassMeta&lt;?&gt;[] cm = new ClassMeta&lt;?&gt;[classes.length];<a name="line.854"></a>
 <span class="sourceLineNo">855</span>      for (int i = 0; i &lt; classes.length; i++)<a name="line.855"></a>