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 <[email protected]>
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>