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

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


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

commit d5b115f4128f2ce907b4a05463c07506c573a1a1
Author: JamesBognar <james.bog...@salesforce.com>
AuthorDate: Sat Jun 11 10:48:15 2022 -0400

    Javadocs
---
 juneau-doc/src/main/javadoc/overview.html          | 64 +++++++++++++++++++++-
 .../src/main/javadoc/resources/fragments/toc.html  |  2 +-
 2 files changed, 62 insertions(+), 4 deletions(-)

diff --git a/juneau-doc/src/main/javadoc/overview.html 
b/juneau-doc/src/main/javadoc/overview.html
index 83df7ca58..a40251cdd 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -221,7 +221,7 @@
                        <li><p><a class='doclink' 
href='#juneau-marshall.jm.SimpleVariableLanguage.jm.DefaultVarResolver'>VarResolver.DEFAULT</a><span
 class='update'>created: 8.1.0</span></p>
                        <li><p><a class='doclink' 
href='#juneau-marshall.jm.SimpleVariableLanguage.jm.SvlOtherNotes'>Other 
Notes</a></p>
                </ol>
-               <li><p><a class='doclink' 
href='#juneau-marshall.jm.Encoders'>Encoders</a><span class='update'>created: 
<b>9.0.0</b>, <b><red>TODO</red></b></span></p>
+               <li><p><a class='doclink' 
href='#juneau-marshall.jm.Encoders'>Encoders</a><span class='update'>created: 
<b>9.0.0</b></span></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.jm.HttpParts'>HTTP Parts</a><span 
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.jm.PojoTools'>POJO Tools</a><span 
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></p>
                <li><p><a class='doclink' 
href='#juneau-marshall.jm.JsonDetails'>JSON Details</a></p>
@@ -6177,11 +6177,69 @@
 
 <!-- 
====================================================================================================
 -->
 
-<h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.jm.Encoders' id='juneau-marshall.jm.Encoders'>2.23 - 
Encoders</a><span class='update'>created: <b>9.0.0</b>, 
<b><red>TODO</red></b></span></h3>
+<h3 class='topic' onclick='toggle(this)'><a 
href='#juneau-marshall.jm.Encoders' id='juneau-marshall.jm.Encoders'>2.23 - 
Encoders</a><span class='update'>created: <b>9.0.0</b></span></h3>
 <div class='topic'><!-- START: 2.23 - juneau-marshall.jm.Encoders -->
 <div class='topic'>
        <p>
-               TODO
+               The {@link org.apache.juneau.encoders} package defines an API 
for handling encoding-based matching
+               of <c>Accept-Encoding</c>/<c>Content-Encoding</c> HTTP headers. 
 It consists of the following classes:
+       </p>
+       <ul class='javatree'>
+               <li class='jc'>{@link org.apache.juneau.encoders.EncoderSet}
+               <li class='jcc'>{@link org.apache.juneau.encoders.Encoder}
+               <ul>
+                       <li class='jc'>{@link 
org.apache.juneau.encoders.IdentityEncoder}
+                       <li class='jc'>{@link 
org.apache.juneau.encoders.GzipEncoder}
+               </ul>
+       </ul>
+       <h5 class='topic'>EncoderSet</h5>
+       <p>
+               The {@link org.apache.juneau.encoders.EncoderSet} class 
represents the set of {@link Encoder encoders} keyed by codings.
+               It maintains a set of encoders and the codings that they can 
handle.
+               The {@link 
org.apache.juneau.encoders.EncoderSet#getEncoderMatch(String) 
getEncoderMatch(String)} and {@link 
org.apache.juneau.encoders.EncoderSet#getEncoder(String)} 
+               methods are then used to find appropriate encoders for specific 
<c>Accept-Encoding</c> and <c>Content-Encoding</c> header values.
+       </p>
+       
+       <h5 class='topic'>Match ordering</h5>
+       <p>
+               Encoders are tried in the order they appear in the set.  The 
{@link org.apache.juneau.encoders.EncoderSet.Builder#add(Class...)} / {@link 
org.apache.juneau.encoders.EncoderSet.Builder#add(Encoder...)}
+               methods prepend the values to the list to allow them the 
opportunity to override encoders already in the list.
+       </p>
+       <p>
+               For example, calling 
<code>builder.add(E1.<jk>class</jk>,E2.<jk>class</jk>).add(E3.<jk>class</jk>,
+               E4.<jk>class</jk>)</code> will result in the order <c>E3, E4, 
E1, E2</c>.
+       </p>
+       
+       <h5 class='section'>Example:</h5>
+       <p class='bjava'>
+       <jc>// Create an encoder group with support for gzip compression.</jc>
+       EncoderSet <jv>encoders</jv> = EncoderSet
+               .<jsm>create</jsm>()
+               .add(GzipEncoder.<jk>class</jk>)
+               .build();
+
+       <jc>// Should return "gzip"</jc>
+       String <jv>matchedCoding</jv> = 
<jv>encoders</jv>.findMatch(<js>"compress;q=1.0, gzip;q=0.8, identity;q=0.5, 
*;q=0"</js>);
+
+       <jc>// Get the encoder</jc>
+       Encoder <jv>encoder</jv> = 
<jv>encoders</jv>.getEncoder(<jv>matchedCoding</jv>);
+       </p>
+
+       <h5 class='topic'>Encoder API</h5>
+       <p>
+               The {@link org.apache.juneau.encoders.Encoder} interface is 
used for enabling decompression on requests and compression on responses, such 
as support for GZIP compression.
+               It is used to wrap input and output streams within 
compression/decompression streams.
+       </p>
+       <ul class='javatree'>
+               <li class='jac'>{@link org.apache.juneau.encoders.Encoder}
+               <ul class='javatreec'>
+                       <li class='jm'>{@link 
org.apache.juneau.encoders.Encoder#getCodings() getCodings()}
+                       <li class='jm'>{@link 
org.apache.juneau.encoders.Encoder#getInputStream(InputStream) 
getInputStream(InputStream)}
+                       <li class='jm'>{@link 
org.apache.juneau.encoders.Encoder#getOutputStream(OutputStream) 
getOutputStream(OutputStream)}
+               </ul>
+       </ul>
+       <p>
+               Encoders are registered with <c>RestServlets</c> through the 
<ja>@Rest(encoders)</ja> annotation.
        </p>
 </div>
 </div><!-- END: 2.23 - juneau-marshall.jm.Encoders -->
diff --git a/juneau-doc/src/main/javadoc/resources/fragments/toc.html 
b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
index 3ad946521..cdf4ddec2 100644
--- a/juneau-doc/src/main/javadoc/resources/fragments/toc.html
+++ b/juneau-doc/src/main/javadoc/resources/fragments/toc.html
@@ -75,7 +75,7 @@
                        <li><p><a class='doclink' 
href='{OVERVIEW_URL}#juneau-marshall.jm.SimpleVariableLanguage.jm.DefaultVarResolver'>VarResolver.DEFAULT</a><span
 class='update'>created: 8.1.0</span></p>
                        <li><p><a class='doclink' 
href='{OVERVIEW_URL}#juneau-marshall.jm.SimpleVariableLanguage.jm.SvlOtherNotes'>Other
 Notes</a></p>
                </ol>
-               <li><p><a class='doclink' 
href='{OVERVIEW_URL}#juneau-marshall.jm.Encoders'>Encoders</a><span 
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></p>
+               <li><p><a class='doclink' 
href='{OVERVIEW_URL}#juneau-marshall.jm.Encoders'>Encoders</a><span 
class='update'>created: <b>9.0.0</b></span></p>
                <li><p><a class='doclink' 
href='{OVERVIEW_URL}#juneau-marshall.jm.HttpParts'>HTTP Parts</a><span 
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></p>
                <li><p><a class='doclink' 
href='{OVERVIEW_URL}#juneau-marshall.jm.PojoTools'>POJO Tools</a><span 
class='update'>created: <b>9.0.0</b>, <b><red>TODO</red></b></span></p>
                <li><p><a class='doclink' 
href='{OVERVIEW_URL}#juneau-marshall.jm.JsonDetails'>JSON Details</a></p>

Reply via email to