Skip to content

Commit

Permalink
Deploying to gh-pages from @ 561a78b 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
mizosoft committed Dec 27, 2024
1 parent 3995c6c commit c98b574
Show file tree
Hide file tree
Showing 14 changed files with 106 additions and 45 deletions.
62 changes: 62 additions & 0 deletions CHANGELOG/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -882,6 +882,15 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>

<li class="md-nav__item">
<a href="#version-180" class="md-nav__link">
<span class="md-ellipsis">
Version 1.8.0
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#version-170" class="md-nav__link">
<span class="md-ellipsis">
Expand Down Expand Up @@ -997,6 +1006,15 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>

<li class="md-nav__item">
<a href="#version-180" class="md-nav__link">
<span class="md-ellipsis">
Version 1.8.0
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#version-170" class="md-nav__link">
<span class="md-ellipsis">
Expand Down Expand Up @@ -1097,6 +1115,50 @@


<h1 id="change-log">Change Log<a class="headerlink" href="#change-log" title="Permanent link">&para;</a></h1>
<h2 id="version-180">Version 1.8.0<a class="headerlink" href="#version-180" title="Permanent link">&para;</a></h2>
<p>Ok, here we go. That took a while, but I'm glad I could make it.</p>
<p>There's been a number of unreleased features brewing in the last two and a half years (!). Guess I could say I've been cooking some Meth—anol, and now it's ready to serve. What's—my—name? Please don't say <a href="https://en.wikipedia.org/wiki/Heisenbug#:~:text=In%20computer%20programming%20jargon%2C%20a,one%20attempts%20to%20study%20it.">Heisenbug</a>.</p>
<p>Anyhow, here's what's new:</p>
<ul>
<li>Added a <a href="https://mizosoft.github.io/methanol/redis/">Redis storage backend</a> for the HTTP cache, which supports Standalone &amp; Cluster setups.</li>
<li>Added the ability to chain caches with different storage backends, expectedly in the order of decreasing locality.
This will work well with the Redis cache. Consider the case where you have multiple instances of your service all sharing
a Redis setup, you can have a chain of (JVM memory -&gt; Redis) or even (JVM memory -&gt; disk -&gt; Redis) caches, so each node can have a local cache to consult first, and the shared Redis cache after.</li>
<li>The object mapping mechanism has been reworked to stay away from <code>ServiceLoader</code> &amp; static state.
We now have an <code>AdapterCodec</code> that is registered per-client.
<div class="highlight"><pre><span></span><code><span class="kd">var</span><span class="w"> </span><span class="n">mapper</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">JsonMapper</span><span class="p">();</span>
<span class="kd">var</span><span class="w"> </span><span class="n">adapterCodec</span><span class="w"> </span><span class="o">=</span>
<span class="w"> </span><span class="n">AdapterCodec</span><span class="p">.</span><span class="na">newBuilder</span><span class="p">()</span>
<span class="w"> </span><span class="p">.</span><span class="na">encoder</span><span class="p">(</span><span class="n">JacksonAdapterFactory</span><span class="p">.</span><span class="na">createJsonEncoder</span><span class="p">(</span><span class="n">mapper</span><span class="p">))</span>
<span class="w"> </span><span class="p">.</span><span class="na">decoder</span><span class="p">(</span><span class="n">JacksonAdapterFactory</span><span class="p">.</span><span class="na">createJsonDecoder</span><span class="p">(</span><span class="n">mapper</span><span class="p">))</span>
<span class="w"> </span><span class="p">.</span><span class="na">build</span><span class="p">();</span>
<span class="kd">var</span><span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="o">=</span>
<span class="w"> </span><span class="n">Methanol</span><span class="p">.</span><span class="na">newBuilder</span><span class="p">()</span>
<span class="w"> </span><span class="p">.</span><span class="na">adapterCodec</span><span class="p">(</span><span class="n">adapterCodec</span><span class="p">)</span>
<span class="w"> </span><span class="p">.</span><span class="na">build</span><span class="p">();</span>

<span class="kd">record</span> <span class="nc">Person</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">name</span><span class="p">)</span><span class="w"> </span><span class="p">{}</span>

<span class="n">HttpResponse</span><span class="o">&lt;</span><span class="n">Person</span><span class="o">&gt;</span><span class="w"> </span><span class="n">response</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">client</span><span class="p">.</span><span class="na">send</span><span class="p">(</span>
<span class="w"> </span><span class="n">MutableRequest</span><span class="p">.</span><span class="na">GET</span><span class="p">(</span><span class="s">&quot;.../echo&quot;</span><span class="p">,</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Person</span><span class="p">(</span><span class="s">&quot;Jack Reacher&quot;</span><span class="p">),</span><span class="w"> </span><span class="n">MediaType</span><span class="p">.</span><span class="na">APPLICATION_JSON</span><span class="p">),</span>
<span class="w"> </span><span class="n">Person</span><span class="p">.</span><span class="na">class</span><span class="p">);</span>
</code></pre></div></li>
<li>Added hip Kotlin extensions. These were enjoyable to work on. <a href="https://mizosoft.github.io/methanol/kotlin/">Check them out!</a>.</li>
<li>Added adapters for <a href="https://github.com/square/moshi">Moshi</a>. This is mainly intended for Kotlin.</li>
<li>Added hints API for adapters. This allows carrying arbitrary parameters to customize encoders &amp; decoders. Currently, supported
adapters expose no customization. If you think there's a useful, generalizable customization that can be passed to any of the supported adapters, feel free to create an issue.</li>
<li>Added <code>MoreBodyPublishers::ofOutputStream</code> &amp; <code>MoreBodyPublishers::ofByteChannel</code> to be used in favor of <code>WritableBodyPublisher</code>.</li>
<li>Added adapters for <a href="https://mizosoft.github.io/methanol/api/latest/methanol/com/github/mizosoft/methanol/AdapterCodec.Builder.html#basic()">basic</a> types in the core module.</li>
<li>Added the ability to conditionally handle responses with <a href="https://mizosoft.github.io/methanol/api/latest/methanol/com/github/mizosoft/methanol/ResponsePayload.html"><code>ResponsePayload</code></a> using the basic adapter.</li>
<li>Disk cache writes became considerably faster by avoiding <code>fsync</code> on entry writes/updates, which was used to provide durability in a manner that later turned out
to be unnecessary for caches. Now CRC checks are used. Reads however became slightly slower.</li>
<li>Added adapters for JAXB Jakarta. They're practically the same as JAXB JavaEE, but use the newer namespaces.</li>
<li>New <code>HttpClient</code> APIs for closure &amp; for setting a local socket address have been implemented.</li>
<li>As of Java 16, <code>sendAsync(...).cancel(true)</code>, or an interruption for the thread calling <code>send</code> can cancel the underlying
exchange. This is made sure to continue being the case even after the Methanol seasoning.</li>
</ul>
<p>There are other incremental improvements here and there that I may have missed. I promise though your code won't break after the update. If that happens, please file an issue.</p>
<p>Later!</p>
<h2 id="version-170">Version 1.7.0<a class="headerlink" href="#version-170" title="Permanent link">&para;</a></h2>
<p><em>9-5-2022</em></p>
<p>A full year has passed since the last Methanol release! Time truly flies. It's been difficult to find
Expand Down
4 changes: 2 additions & 2 deletions adapters/gson/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1044,13 +1044,13 @@ <h1 id="methanol-gson">methanol-gson<a class="headerlink" href="#methanol-gson"
<p>Adapters for JSON using <a href="https://github.com/google/gson">Gson</a>.</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<h3 id="gradle">Gradle<a class="headerlink" href="#gradle" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.github.mizosoft.methanol:methanol-gson:1.7.0&quot;</span><span class="p">)</span>
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.github.mizosoft.methanol:methanol-gson:1.8.0&quot;</span><span class="p">)</span>
</code></pre></div>
<h3 id="maven">Maven<a class="headerlink" href="#maven" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>com.github.mizosoft.methanol<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>methanol-gson<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.7.0<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>
<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
Expand Down
4 changes: 2 additions & 2 deletions adapters/jackson/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1062,13 +1062,13 @@ <h1 id="methanol-jackson">methanol-jackson<a class="headerlink" href="#methanol-
<p>Adapters for <a href="https://github.com/FasterXML/jackson">Jackson</a>.</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<h3 id="gradle">Gradle<a class="headerlink" href="#gradle" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>implementation(&quot;com.github.mizosoft.methanol:methanol-jackson:1.7.0&quot;)
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.github.mizosoft.methanol:methanol-jackson:1.8.0&quot;</span><span class="p">)</span>
</code></pre></div>
<h3 id="maven">Maven<a class="headerlink" href="#maven" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>com.github.mizosoft.methanol<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>methanol-jackson<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.7.0<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>
<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
Expand Down
4 changes: 2 additions & 2 deletions adapters/jackson_flux/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1091,13 +1091,13 @@ <h2 id="encoding">Encoding<a class="headerlink" href="#encoding" title="Permanen
<code>Mono</code> sources are encoded to a single JSON object (if completed with any).</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<h3 id="gradle">Gradle<a class="headerlink" href="#gradle" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>implementation(&quot;com.github.mizosoft.methanol:methanol-jackson-flux:1.7.0&quot;)
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.github.mizosoft.methanol:methanol-jackson-flux:1.8.0&quot;</span><span class="p">)</span>
</code></pre></div>
<h3 id="maven">Maven<a class="headerlink" href="#maven" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>com.github.mizosoft.methanol<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>methanol-jackson-flux<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.7.0<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>
<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
Expand Down
4 changes: 2 additions & 2 deletions adapters/jaxb/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1044,13 +1044,13 @@ <h1 id="methanol-jaxb">methanol-jaxb<a class="headerlink" href="#methanol-jaxb"
<p>Adapters for XML using Java EE's <a href="https://javaee.github.io/jaxb-v2/">JAXB</a>.</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<h3 id="gradle">Gradle<a class="headerlink" href="#gradle" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>implementation(&quot;com.github.mizosoft.methanol:methanol-jaxb:1.7.0&quot;)
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.github.mizosoft.methanol:methanol-jaxb:1.8.0&quot;</span><span class="p">)</span>
</code></pre></div>
<h3 id="maven">Maven<a class="headerlink" href="#maven" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>com.github.mizosoft.methanol<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>methanol-jaxb<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.7.0<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>
<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
Expand Down
4 changes: 2 additions & 2 deletions adapters/jaxb_jakarta/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1044,13 +1044,13 @@ <h1 id="methanol-jaxb-jakarta">methanol-jaxb-jakarta<a class="headerlink" href="
<p>Adapters for XML using Jakarta EE's <a href="https://eclipse-ee4j.github.io/jaxb-ri/">JAXB</a>.</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<h3 id="gradle">Gradle<a class="headerlink" href="#gradle" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>implementation(&quot;com.github.mizosoft.methanol:methanol-jaxb-jakarta:1.7.0&quot;)
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.github.mizosoft.methanol:methanol-jaxb-jakarta:1.8.0&quot;</span><span class="p">)</span>
</code></pre></div>
<h3 id="maven">Maven<a class="headerlink" href="#maven" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>com.github.mizosoft.methanol<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>methanol-jaxb-jakarta<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.7.0<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>
<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
Expand Down
4 changes: 2 additions & 2 deletions adapters/moshi/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1044,13 +1044,13 @@ <h1 id="methanol-moshi">methanol-moshi<a class="headerlink" href="#methanol-mosh
<p>Adapters for JSON using <a href="https://github.com/square/moshi">moshi</a>.</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<h3 id="gradle">Gradle<a class="headerlink" href="#gradle" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>implementation(&quot;com.github.mizosoft.methanol:methanol-moshi:1.7.0&quot;)
<div class="highlight"><pre><span></span><code>implementation(&quot;com.github.mizosoft.methanol:methanol-moshi:1.8.0&quot;)
</code></pre></div>
<h3 id="maven">Maven<a class="headerlink" href="#maven" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>com.github.mizosoft.methanol<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>methanol-moshi<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.7.0<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>
<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
Expand Down
4 changes: 2 additions & 2 deletions adapters/protobuf/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1047,13 +1047,13 @@ <h2 id="encoding-decoding">Encoding &amp; Decoding<a class="headerlink" href="#e
<code>ExtensionRegistryLite</code> or an <code>ExtensionRegistry</code> to enable <a href="https://developers.google.com/protocol-buffers/docs/proto#extensions">message extensions</a>.</p>
<h2 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h2>
<h3 id="gradle">Gradle<a class="headerlink" href="#gradle" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>implementation(&quot;com.github.mizosoft.methanol:methanol-protobuf:1.7.0&quot;)
<div class="highlight"><pre><span></span><code><span class="n">implementation</span><span class="p">(</span><span class="s">&quot;com.github.mizosoft.methanol:methanol-protobuf:1.8.0&quot;</span><span class="p">)</span>
</code></pre></div>
<h3 id="maven">Maven<a class="headerlink" href="#maven" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nt">&lt;dependency&gt;</span>
<span class="w"> </span><span class="nt">&lt;groupId&gt;</span>com.github.mizosoft.methanol<span class="nt">&lt;/groupId&gt;</span>
<span class="w"> </span><span class="nt">&lt;artifactId&gt;</span>methanol-protobuf<span class="nt">&lt;/artifactId&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.7.0<span class="nt">&lt;/version&gt;</span>
<span class="w"> </span><span class="nt">&lt;version&gt;</span>1.8.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
</code></pre></div>
<h2 id="usage">Usage<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h2>
Expand Down
Loading

0 comments on commit c98b574

Please sign in to comment.