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/09/10 20:32:36 UTC

[24/34] incubator-juneau-website git commit: Update javadocs

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/overview-summary.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-summary.html b/content/site/apidocs/overview-summary.html
index 6ff8830..92f2522 100644
--- a/content/site/apidocs/overview-summary.html
+++ b/content/site/apidocs/overview-summary.html
@@ -434,7 +434,7 @@
       <li><p><a class='doclink' href='#Core.Transforms'>Transforms</a></p>
       <ol>
          <li><p><a class='doclink' href='#Core.PojoSwaps'>PojoSwaps</a></p>
-         <li><p><a class='doclink' href='#Core.PojoAnnotation'>@Pojo annotation</a></p>
+         <li><p><a class='doclink' href='#Core.SwapAnnotation'>@Swap annotation</a></p>
          <li><p><a class='doclink' href='#Core.SwapMethods'>Swap methods</a></p>
          <li><p><a class='doclink' href='#Core.BeanFilters'>BeanFilters and @Bean annotations</a></p>
          <li><p><a class='doclink' href='#Core.SerializingReadersAndInputStreams'>Serializing Readers and InputStreams</a></p>
@@ -1123,7 +1123,7 @@
       </p>
       <ul class='doctree'>
          <li class='ja'>
-            <a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><code>@Pojo</code></a> 
+            <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> 
             - Used to tailor how non-bean POJOs get interpreted by the framework.
          <li class='ja'>
             <a href="org/apache/juneau/annotation/Bean.html" title="annotation in org.apache.juneau.annotation"><code>@Bean</code></a> 
@@ -1250,17 +1250,17 @@
       </div>
    
       <!-- ======================================================================================================== -->
-      <a id="Core.PojoAnnotation"></a>
-      <h4 class='topic' onclick='toggle(this)'>2.6.2 - @Pojo annotation</h4>
+      <a id="Core.SwapAnnotation"></a>
+      <h4 class='topic' onclick='toggle(this)'>2.6.2 - @Swap annotation</h4>
       <div class='topic'>
          <p>
-            <a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><code>@Pojo</code></a> can be used to associate a swap class using an 
+            <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> can be used to associate a swap class using an 
             annotation.
             This is often cleaner than using the builder <code>pojoSwaps()</code> method since you can keep
             your swap class near your POJO class. 
          </p>
          <p class='bcode'>
-   <ja>@Pojo</ja>(swap=MyPojoSwap.<jk>class</jk>)
+   <ja>@Swap</ja>(MyPojoSwap.<jk>class</jk>)
    <jk>public class</jk> MyPojo {
       ...
    }
@@ -1531,7 +1531,7 @@
             all other renditions as-is:
          </p>        
          <p class='bcode'>
-   <ja>@Pojo</ja>(swap=MyBeanSwap.<jk>class</jk>)
+   <ja>@Swap</ja>(MyBeanSwap.<jk>class</jk>)
    <jk>public class</jk> MyBean {...}
    
    <jk>public class</jk> MyBeanSwap <jk>extends</jk> PojoSwap&lt;MyBean,Object&gt; {
@@ -2440,8 +2440,7 @@
             </td>
             <td>
                Juneau uses swaps to convert non-serializable object to serializable forms:
-               <br><a href="org/apache/juneau/annotation/BeanProperty.html#swap--"><code>@BeanProperty(swap=...)</code></a>
-               <br><a href="org/apache/juneau/annotation/Pojo.html#swap--"><code>@Pojo(swap=...)</code></a>
+               <br><a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a>
             </td>
          </tr>
          <tr>
@@ -7090,7 +7089,7 @@
    
    <h5 class='toc'>What's new in each release</h5>
    <ul class='toc'>
-      <li><p><a class='doclink' href='#6.3.2'>6.3.2 (TBD)</a></p>
+      <li><p><a class='doclink' href='#6.4.0'>6.4.0 (TBD)</a></p>
       <li><p><a class='doclink' href='#6.3.1'>6.3.1 (Aug 1, 2017)</a></p>
       <li><p><a class='doclink' href='#6.3.0'>6.3.0 (Jun 30, 2017)</a></p>
       <li><p><a class='doclink' href='#6.2.0'>6.2.0 (Apr 28, 2017)</a></p>
@@ -7160,8 +7159,8 @@
    </ul>
 
    <!-- ======================================================================================================== -->
-   <a id="6.3.2"></a>
-   <h3 class='topic' onclick='toggle(this)'>6.3.2 (TBD)</h3>
+   <a id="6.4.0"></a>
+   <h3 class='topic' onclick='toggle(this)'>6.4.0 (TBD)</h3>
    <div class='topic'>
       <p>
          The major change in this release is the project structure
@@ -7174,8 +7173,8 @@
             <th>Category</th><th>Maven Artifacts</th><th>Description</th><th>Prereqs</th>
          </tr>
          <tr class='dark bb'>
-            <td rowspan="5" style='text-align:center;font-weight:bold;padding:20px;'><a class='doclink' href='#JuneauCore'>Juneau Core</a></td>
-            <td class='code'><a class='doclink' href='#juneau-marshall'>juneau-marshall</a></td>
+            <td rowspan="5" style='text-align:center;font-weight:bold;padding:20px;'>Juneau Core</td>
+            <td class='code'>juneau-marshall</td>
             <td>Serializers and parsers for:
                <ul style='margin:0px 10px;'>
                   <li>JSON
@@ -7198,7 +7197,7 @@
             </td>
          </tr>
          <tr class='dark bb'>
-            <td class='code'><a class='doclink' href='#juneau-marshall-rdf'>juneau-marshall-rdf</a></td>
+            <td class='code'>juneau-marshall-rdf</td>
             <td>
                Serializers and parsers for:
                <ul style='margin:0px 10px;'>
@@ -7217,7 +7216,7 @@
             </td>
          </tr>
          <tr class='dark bb'>
-            <td class='code'><a class='doclink' href='#juneau-dto'>juneau-dto</a></td>
+            <td class='code'>juneau-dto</td>
             <td>
                Data Transfer Objects for:
                <ul style='margin:0px 10px;'>
@@ -7231,22 +7230,22 @@
             <td><ul style='margin:0px 10px;'><li>Java 6</li></ul></td>
          </tr>
          <tr class='dark bb'>
-            <td class='code'><a class='doclink' href='#juneau-svl'>juneau-svl</a></td>
+            <td class='code'>juneau-svl</td>
             <td>
                Simple Variable Language API
             </td>
             <td><ul style='margin:0px 10px;'><li>Java 6</li></ul></td>
          </tr>
          <tr class='dark bb'>
-            <td class='code'><a class='doclink' href='#juneau-config'>juneau-config</a></td>
+            <td class='code'>juneau-config</td>
             <td>
                Configuration file API
             </td>
             <td><ul style='margin:0px 10px;'><li>Java 6</li></ul></td>
          </tr>
          <tr class='light bb'>
-            <td rowspan="5" style='text-align:center;font-weight:bold;padding:20px;'><a class='doclink' href='#JuneauRest'>Juneau REST</a></td>
-            <td class='code'><a class='doclink' href='#juneau-rest-server'>juneau-rest-server</a></td>
+            <td rowspan="3" style='text-align:center;font-weight:bold;padding:20px;'>Juneau REST</td>
+            <td class='code'>juneau-rest-server</td>
             <td>
                REST Servlet API
             </td>
@@ -7258,7 +7257,7 @@
             </td>
          </tr>
          <tr class='light bb'>
-            <td class='code'><a class='doclink' href='#juneau-rest-server-jaxrs'>juneau-rest-server-jaxrs</a></td>
+            <td class='code'>juneau-rest-server-jaxrs</td>
             <td>
                Optional JAX-RS support
             </td>
@@ -7270,7 +7269,7 @@
             </td>
          </tr>
          <tr class='light bb'>
-            <td class='code'><a class='doclink' href='#juneau-rest-client'>juneau-rest-client</a></td>
+            <td class='code'>juneau-rest-client</td>
             <td>
                REST Client API
             </td>
@@ -7281,10 +7280,11 @@
                </ul>
             </td>
          </tr>
-         <tr class='light bb'>
-            <td class='code'><a class='doclink' href='#juneau-microservice'>juneau-microservice</a></td>
+         <tr class='dark bb'>
+            <td rowspan="2" style='text-align:center;font-weight:bold;padding:20px;'>Juneau Microservice</td>
+            <td class='code'>juneau-microservice-server</td>
             <td>
-               REST Microservice API
+               REST Microservice Server API
             </td>
             <td>
                <ul style='margin:0px 10px;'>
@@ -7293,8 +7293,8 @@
                </ul>
             </td>
          </tr>
-         <tr class='light bb'>
-            <td class='code'><a class='doclink' href='#juneau-microservice-template'>juneau-microservice-template</a></td>
+         <tr class='dark bb'>
+            <td class='code'>juneau-microservice-template</td>
             <td>
                Developer template project
             </td>
@@ -7305,23 +7305,23 @@
                </ul>
             </td>
          </tr>
-         <tr class='dark bb'>
-            <td rowspan="2" style='text-align:center;font-weight:bold;padding:20px;'><a class='doclink' href='#Examples'>Examples</a></td>
+         <tr class='light bb'>
+            <td rowspan="2" style='text-align:center;font-weight:bold;padding:20px;'>Examples</td>
             <td class='code'><code>juneau-examples-core</code></td>
             <td>
                Core code examples
             </td>
             <td></td>
          </tr>
-         <tr class='dark bb'>
+         <tr class='light bb'>
             <td class='code'><code>juneau-examples-rest</code></td>
             <td>
                REST code examples
             </td>
             <td></td>
          </tr>
-         <tr class='light bb'>
-            <td rowspan="1" style='text-align:center;font-weight:bold;padding:20px;'><a class='doclink' href='#JuneauAll'>Juneau All</a></td>
+         <tr class='dark bb'>
+            <td rowspan="1" style='text-align:center;font-weight:bold;padding:20px;'>Juneau All</td>
             <td class='code'><code>juneau-all</code></td>
             <td>
                Combination of the following:
@@ -7347,6 +7347,72 @@
       <h6 class='topic'>juneau-marshall</h6>
       <ul class='spaced-list'>
          <li>
+            Improvements to swap support.
+            <ul>
+               <li>New <a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><code>@Swap</code></a> annotation.
+                  <br>Replaces the <code>@Pojo</code> and <code>@BeanProperty.swap()</code> annotations.
+               <li>Support for per-media-type swaps.
+                  <br>Programmatic example:
+                  <p class='bcode'>
+   <ja>@Swap</ja>(MyJsonOnlySwap.<jk>class</jk>)         
+   <jk>public class</jk> MyPojo {}
+
+   <jk>public class</jk> MyJsonOnlySwap <jk>extends</jk> PojoSwap&lt;MyPojo,String&gt; {
+
+         <jk>public</jk> MediaType[] forMediaTypes() {
+            <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/json"</js>);
+         }
+
+         <jk>public</jk> String swap(BeanSession session, MyPojo o) <jk>throws</jk> Exception {
+            <jk>return</jk> <js>"It's JSON!"</js>;
+      }
+                  </p>
+                  <br>Annotated example:
+                  <p class='bcode'>
+   <ja>@Swap</ja>(impl=ToStringSwap.<jk>class</jk>, mediaTypes=<js>"&#42;/json"</js>)
+   <jk>public class</jk> MyBean { ... }
+
+   <jk>public class</jk> ToStringSwap <jk>extends</jk> PojoSwap&lt;Object,String&gt; {
+      <jk>public</jk> String swap(BeanSession session, Object o) <jk>throws</jk> Exception {
+         <jk>return</jk> o.toString();
+      }
+   }
+                  </p>
+               <li>Support for templated swaps which provide additional context information for a swap.
+                  <br>The following is an example of a templated swap class used to serialize POJOs to HTML using FreeMarker:
+                  <p class='bcode'>
+   <jc>// Our abstracted templated swap class.</jc>
+   <jk>public abstract class</jk> FreeMarkerSwap <jk>extends</jk> PojoSwap&lt;Object,Reader&gt; {
+
+      <jk>public</jk> MediaType[] forMediaTypes() {
+         <jk>return</jk> MediaType.<jsm>forStrings</jsm>(<js>"&#42;/html"</js>);
+      }
+
+      <jk>public</jk> Reader swap(BeanSession session, Object o, String template) <jk>throws</jk> Exception {
+         <jk>return</jk> getFreeMarkerReader(template, o);  <jc>// Some method that creates raw HTML.</jc>
+      }
+   }
+                  </p>
+                  <p class='bcode'>
+      <ja>@Swap</ja>(impl=FreeMarkerSwap.<jk>class</jk>, template=<js>"MyPojo.div.ftl"</js>)
+      <jk>public class</jk> MyPojo {}
+                  </p>
+               <li>New <a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><code>@Swaps</code></a> annotation for defining multiple swaps
+                  against the same POJO when they're differentiated by media types:
+                  <p class='bcode'>
+   <ja>@Swaps</ja>(
+      {
+         <ja>@Swap</ja>(MyJsonSwap.<jk>class</jk>),
+         <ja>@Swap</ja>(MyXmlSwap.<jk>class</jk>),
+         <ja>@Swap</ja>(MyOtherSwap.<jk>class</jk>)
+      }
+   )
+   <jk>public class</jk> MyPojo {}
+                  </p>
+            </ul>
+         <li>
+            New <a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><code>Surrogate</code></a> interface for identifying surrogate classes.
+         <li>
             Serializers can now serialize to <a href="http://docs.oracle.com/javase/7/docs/api/java/util/StringBuilder.html?is-external=true" title="class or interface in java.util"><code>StringBuilders</code></a>.
          <li>
             Serializers now serialize the contents of <a href="http://docs.oracle.com/javase/7/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io"><code>Readers</code></a> and <a href="http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io"><code>InputStreams</code></a>
@@ -7382,10 +7448,10 @@
    <jc>// Same, but using a session object</jc>
    SerializerSession session = JsonSerializer.<jsf>DEFAULT</jsf>.createSession();
    <jk>try</jk> {
-     session.serialize(writer1, pojo1);
-     session.serialize(writer2, pojo2);
+      session.serialize(writer1, pojo1);
+      session.serialize(writer2, pojo2);
    } <jk>finally</jk> {
-     session.close();
+      session.close();
    }           
             </p>
             This is mostly an internal change and doesn't affect the existing APIs.
@@ -8822,7 +8888,7 @@
                <li><a href="org/apache/juneau/BeanPropertyMetaExtended.html" title="class in org.apache.juneau"><code>BeanPropertyMetaExtended</code></a> / <a href="org/apache/juneau/BeanPropertyMeta.html#getExtendedMeta-java.lang.Class-"><code>BeanPropertyMeta.getExtendedMeta(Class)</code></a> 
             </ul>
          </li>
-         <li>Renamed <code>@Transform</code> annotation to <a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><code>@Pojo</code></a> so that it can be used for various POJO-related behavior, not just associating transforms.  
+         <li>Renamed <code>@Transform</code> annotation to <code><del>@Pojo</del></code> so that it can be used for various POJO-related behavior, not just associating transforms.  
          <li>Introduced <a href="org/apache/juneau/dto/swagger/package-summary.html"><code>Swagger DTOs</code></a>.
       </ul>    
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau-website/blob/62afb533/content/site/apidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/content/site/apidocs/overview-tree.html b/content/site/apidocs/overview-tree.html
index 6f1ac6b..83a05fa 100644
--- a/content/site/apidocs/overview-tree.html
+++ b/content/site/apidocs/overview-tree.html
@@ -1408,6 +1408,7 @@
 <li type="circle">org.apache.juneau.rest.<a href="org/apache/juneau/rest/RestResourceResolver.html" title="interface in org.apache.juneau.rest"><span class="typeNameLink">RestResourceResolver</span></a></li>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/Setter.html" title="interface in org.apache.juneau"><span class="typeNameLink">Setter</span></a></li>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/Streamable.html" title="interface in org.apache.juneau"><span class="typeNameLink">Streamable</span></a></li>
+<li type="circle">org.apache.juneau.transform.<a href="org/apache/juneau/transform/Surrogate.html" title="interface in org.apache.juneau.transform"><span class="typeNameLink">Surrogate</span></a></li>
 <li type="circle">org.apache.juneau.<a href="org/apache/juneau/Writable.html" title="interface in org.apache.juneau"><span class="typeNameLink">Writable</span></a></li>
 <li type="circle">org.apache.juneau.utils.<a href="org/apache/juneau/utils/ZipFileList.ZipFileEntry.html" title="interface in org.apache.juneau.utils"><span class="typeNameLink">ZipFileList.ZipFileEntry</span></a></li>
 </ul>
@@ -1415,7 +1416,8 @@
 <ul>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/URI.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">URI</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/ThreadSafe.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">ThreadSafe</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/Pojo.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Pojo</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/Swaps.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Swaps</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/Swap.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Swap</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/ParentProperty.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">ParentProperty</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/Overrideable.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">Overrideable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.juneau.annotation.<a href="org/apache/juneau/annotation/NameProperty.html" title="annotation in org.apache.juneau.annotation"><span class="typeNameLink">NameProperty</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>