You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2019/08/11 09:09:03 UTC

[pulsar] branch asf-site updated: Updated site at revision bdfefc7

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

mmerli pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 6669af0  Updated site at revision bdfefc7
6669af0 is described below

commit 6669af06775ca5cb0fddbb03608a0e12575b4dc0
Author: jenkins <bu...@apache.org>
AuthorDate: Sun Aug 11 09:08:52 2019 +0000

    Updated site at revision bdfefc7
---
 content/docs/en/next/admin-api-overview.html       |  40 ++--
 content/docs/en/next/admin-api-overview/index.html |  40 ++--
 content/docs/en/next/concepts-messaging.html       |   6 +-
 content/docs/en/next/concepts-messaging/index.html |   6 +-
 content/docs/en/next/functions-api.html            |  12 +-
 content/docs/en/next/functions-api/index.html      |  12 +-
 content/docs/en/next/functions-overview.html       |   2 +-
 content/docs/en/next/functions-overview/index.html |   2 +-
 content/docs/fr/next/admin-api-overview.html       |  40 ++--
 content/docs/fr/next/admin-api-overview/index.html |  40 ++--
 content/docs/fr/next/concepts-messaging.html       |   6 +-
 content/docs/fr/next/concepts-messaging/index.html |   6 +-
 content/docs/fr/next/functions-api.html            |  12 +-
 content/docs/fr/next/functions-api/index.html      |  12 +-
 content/docs/fr/next/functions-overview.html       |   2 +-
 content/docs/fr/next/functions-overview/index.html |   2 +-
 content/docs/ja/next/admin-api-overview.html       |  40 ++--
 content/docs/ja/next/admin-api-overview/index.html |  40 ++--
 content/docs/ja/next/concepts-messaging.html       |   6 +-
 content/docs/ja/next/concepts-messaging/index.html |   6 +-
 content/docs/ja/next/functions-api.html            |  12 +-
 content/docs/ja/next/functions-api/index.html      |  12 +-
 content/docs/ja/next/functions-overview.html       |   2 +-
 content/docs/ja/next/functions-overview/index.html |   2 +-
 content/docs/zh-CN/next/admin-api-overview.html    |  44 ++---
 .../docs/zh-CN/next/admin-api-overview/index.html  |  44 ++---
 content/docs/zh-CN/next/concepts-messaging.html    |   6 +-
 .../docs/zh-CN/next/concepts-messaging/index.html  |   6 +-
 content/docs/zh-CN/next/functions-api.html         |  12 +-
 content/docs/zh-CN/next/functions-api/index.html   |  12 +-
 content/docs/zh-CN/next/functions-overview.html    |   2 +-
 .../docs/zh-CN/next/functions-overview/index.html  |   2 +-
 content/swagger/2.5.0-SNAPSHOT/swagger.json        |  34 ++--
 .../swagger/2.5.0-SNAPSHOT/swaggerfunctions.json   | 202 ++++++++++-----------
 content/swagger/swagger.json                       |  34 ++--
 content/swagger/swaggerfunctions.json              | 202 ++++++++++-----------
 36 files changed, 464 insertions(+), 496 deletions(-)

diff --git a/content/docs/en/next/admin-api-overview.html b/content/docs/en/next/admin-api-overview.html
index 1720498..8e6e8fa 100644
--- a/content/docs/en/next/admin-api-overview.html
+++ b/content/docs/en/next/admin-api-overview.html
@@ -118,42 +118,38 @@ to handle redirections.</li>
 .</p>
 <h3><a class="anchor" aria-hidden="true" id="java-admin-client"></a><a href="#java-admin-client" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object, specifying a URL for a Pulsar <a href="/docs/en/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
+ object, specifying a URL for a Pulsar <a href="/docs/en/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdminBuilder">PulsarAdminBuilder</a>
 . Here's a minimal example using <code>localhost</code>:</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080"</span>;
 <span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 <p>If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security is enabled.</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>;
+<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/client-libraries-websocket"><span class="arrow-prev">← </span><span class="function-name-prevnext">WebSocket</span></a><a class="docs-next button" href="/docs/en/next/admin-api-clusters"><span>Clusters</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/next/admin-api-overview/index.html b/content/docs/en/next/admin-api-overview/index.html
index 1720498..8e6e8fa 100644
--- a/content/docs/en/next/admin-api-overview/index.html
+++ b/content/docs/en/next/admin-api-overview/index.html
@@ -118,42 +118,38 @@ to handle redirections.</li>
 .</p>
 <h3><a class="anchor" aria-hidden="true" id="java-admin-client"></a><a href="#java-admin-client" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object, specifying a URL for a Pulsar <a href="/docs/en/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
+ object, specifying a URL for a Pulsar <a href="/docs/en/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdminBuilder">PulsarAdminBuilder</a>
 . Here's a minimal example using <code>localhost</code>:</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080"</span>;
 <span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 <p>If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security is enabled.</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>;
+<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/en/next/client-libraries-websocket"><span class="arrow-prev">← </span><span class="function-name-prevnext">WebSocket</span></a><a class="docs-next button" href="/docs/en/next/admin-api-clusters"><span>Clusters</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/en/next/concepts-messaging.html b/content/docs/en/next/concepts-messaging.html
index 7db92bab..f438776 100644
--- a/content/docs/en/next/concepts-messaging.html
+++ b/content/docs/en/next/concepts-messaging.html
@@ -196,7 +196,7 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <p><img src="/docs/assets/pulsar-subscription-modes.png" alt="Subscription modes"></p>
 <h3><a class="anchor" aria-hidden="true" id="exclusive"></a><a href="#exclusive" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>In <em>exclusive</em> mode, only a single consumer is allowed to attach to the subscription. If more than one consumer attempts to subscribe to a topic using the same subscription, the consumer receives an error.</p>
-<p>In the diagram above, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
+<p>In the diagram below, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
 <blockquote>
 <p>Exclusive mode is the default subscription mode.</p>
 </blockquote>
@@ -204,11 +204,11 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <h3><a class="anchor" aria-hidden="true" id="failover"></a><a href="#failover" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In <em>failover</em> mode, multiple consumers can attach to the same subscription. The consumers will be lexically sorted by the consumer's name and the first consumer will initially be the only one receiving messages. This consumer is called the <em>master consumer</em>.</p>
 <p>When the master consumer disconnects, all (non-acked and subsequent) messages will be delivered to the next consumer in line.</p>
-<p>In the diagram above, Consumer-C-1 is the master consumer while Consumer-C-2 would be the next in line to receive messages if Consumer-C-1 disconnected.</p>
+<p>In the diagram below, <strong>Consumer-B-0</strong> is the master consumer while <strong>Consumer-B-1</strong> would be the next in line to receive messages if <strong>Consumer-B-0</strong> disconnected.</p>
 <p><img src="/docs/assets/pulsar-failover-subscriptions.png" alt="Failover subscriptions"></p>
 <h3><a class="anchor" aria-hidden="true" id="shared"></a><a href="#shared" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p>In <em>shared</em> or <em>round robin</em> mode, multiple consumers can attach to the same subscription. Messages are delivered in a round robin distribution across consumers, and any given message is delivered to only one consumer. When a consumer disconnects, all the messages that were sent to it and not acknowledged will be rescheduled for sending to the remaining consumers.</p>
-<p>In the diagram above, <strong>Consumer-B-1</strong> and <strong>Consumer-B-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-1</strong> and others could as well.</p>
+<p>In the diagram below, <strong>Consumer-C-1</strong> and <strong>Consumer-C-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-3</strong> and others could as well.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="limitations-of-shared-mode"></a><a href="#limitations-of-shared-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
 <p>There are two important things to be aware of when using shared mode:</p>
diff --git a/content/docs/en/next/concepts-messaging/index.html b/content/docs/en/next/concepts-messaging/index.html
index 7db92bab..f438776 100644
--- a/content/docs/en/next/concepts-messaging/index.html
+++ b/content/docs/en/next/concepts-messaging/index.html
@@ -196,7 +196,7 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <p><img src="/docs/assets/pulsar-subscription-modes.png" alt="Subscription modes"></p>
 <h3><a class="anchor" aria-hidden="true" id="exclusive"></a><a href="#exclusive" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>In <em>exclusive</em> mode, only a single consumer is allowed to attach to the subscription. If more than one consumer attempts to subscribe to a topic using the same subscription, the consumer receives an error.</p>
-<p>In the diagram above, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
+<p>In the diagram below, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
 <blockquote>
 <p>Exclusive mode is the default subscription mode.</p>
 </blockquote>
@@ -204,11 +204,11 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <h3><a class="anchor" aria-hidden="true" id="failover"></a><a href="#failover" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In <em>failover</em> mode, multiple consumers can attach to the same subscription. The consumers will be lexically sorted by the consumer's name and the first consumer will initially be the only one receiving messages. This consumer is called the <em>master consumer</em>.</p>
 <p>When the master consumer disconnects, all (non-acked and subsequent) messages will be delivered to the next consumer in line.</p>
-<p>In the diagram above, Consumer-C-1 is the master consumer while Consumer-C-2 would be the next in line to receive messages if Consumer-C-1 disconnected.</p>
+<p>In the diagram below, <strong>Consumer-B-0</strong> is the master consumer while <strong>Consumer-B-1</strong> would be the next in line to receive messages if <strong>Consumer-B-0</strong> disconnected.</p>
 <p><img src="/docs/assets/pulsar-failover-subscriptions.png" alt="Failover subscriptions"></p>
 <h3><a class="anchor" aria-hidden="true" id="shared"></a><a href="#shared" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p>In <em>shared</em> or <em>round robin</em> mode, multiple consumers can attach to the same subscription. Messages are delivered in a round robin distribution across consumers, and any given message is delivered to only one consumer. When a consumer disconnects, all the messages that were sent to it and not acknowledged will be rescheduled for sending to the remaining consumers.</p>
-<p>In the diagram above, <strong>Consumer-B-1</strong> and <strong>Consumer-B-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-1</strong> and others could as well.</p>
+<p>In the diagram below, <strong>Consumer-C-1</strong> and <strong>Consumer-C-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-3</strong> and others could as well.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="limitations-of-shared-mode"></a><a href="#limitations-of-shared-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
 <p>There are two important things to be aware of when using shared mode:</p>
diff --git a/content/docs/en/next/functions-api.html b/content/docs/en/next/functions-api.html
index 6594a48..2558d87 100644
--- a/content/docs/en/next/functions-api.html
+++ b/content/docs/en/next/functions-api.html
@@ -199,9 +199,9 @@
 <h2><a class="anchor" aria-hidden="true" id="functions-for-java"></a><a href="#functions-for-java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>Writing Pulsar Functions in Java involves implementing one of two interfaces:</p>
 <ul>
-<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface</li>
+<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface</li>
 <li>The <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Function">Function</a>
- interface. This interface works much like the <code>java.util.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
+ interface. This interface works much like the <code>java.util.function.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
  object that you can use in a <a href="#context">variety of ways</a></li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="get-started"></a><a href="#get-started" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
@@ -225,23 +225,23 @@
 </code></pre></li>
 </ul>
 <h4><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
+<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.function.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="starter-repo"></a><a href="#starter-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>If you'd like to get up and running quickly, you can use <a href="https://github.com/streamlio/pulsar-functions-java-starter">this repo</a>, which contains the necessary Maven configuration to build a fat JAR as well as some example functions.</p>
 </blockquote>
 <h3><a class="anchor" aria-hidden="true" id="java-native-functions"></a><a href="#java-native-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface, which has this very simple, single-method signature:</p>
+<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface, which has this very simple, single-method signature:</p>
 <pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">I</span>, <span class="hljs-title">O</span>&gt; </span>{
     <span class="hljs-function">O <span class="hljs-title">apply</span><span class="hljs-params">(I input)</span></span>;
 }
 </code></pre>
 <p>Here's an example function that takes a string as its input, adds an exclamation point to the end of the string, and then publishes the resulting string:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">process</span><span class="hljs-params">(String input)</span> </span>{
+    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">apply</span><span class="hljs-params">(String input)</span> </span>{
         <span class="hljs-keyword">return</span> String.format(<span class="hljs-string">"%s!"</span>, input);
     }
 }
diff --git a/content/docs/en/next/functions-api/index.html b/content/docs/en/next/functions-api/index.html
index 6594a48..2558d87 100644
--- a/content/docs/en/next/functions-api/index.html
+++ b/content/docs/en/next/functions-api/index.html
@@ -199,9 +199,9 @@
 <h2><a class="anchor" aria-hidden="true" id="functions-for-java"></a><a href="#functions-for-java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>Writing Pulsar Functions in Java involves implementing one of two interfaces:</p>
 <ul>
-<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface</li>
+<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface</li>
 <li>The <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Function">Function</a>
- interface. This interface works much like the <code>java.util.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
+ interface. This interface works much like the <code>java.util.function.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
  object that you can use in a <a href="#context">variety of ways</a></li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="get-started"></a><a href="#get-started" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
@@ -225,23 +225,23 @@
 </code></pre></li>
 </ul>
 <h4><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
+<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.function.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="starter-repo"></a><a href="#starter-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>If you'd like to get up and running quickly, you can use <a href="https://github.com/streamlio/pulsar-functions-java-starter">this repo</a>, which contains the necessary Maven configuration to build a fat JAR as well as some example functions.</p>
 </blockquote>
 <h3><a class="anchor" aria-hidden="true" id="java-native-functions"></a><a href="#java-native-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface, which has this very simple, single-method signature:</p>
+<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface, which has this very simple, single-method signature:</p>
 <pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">I</span>, <span class="hljs-title">O</span>&gt; </span>{
     <span class="hljs-function">O <span class="hljs-title">apply</span><span class="hljs-params">(I input)</span></span>;
 }
 </code></pre>
 <p>Here's an example function that takes a string as its input, adds an exclamation point to the end of the string, and then publishes the resulting string:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">process</span><span class="hljs-params">(String input)</span> </span>{
+    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">apply</span><span class="hljs-params">(String input)</span> </span>{
         <span class="hljs-keyword">return</span> String.format(<span class="hljs-string">"%s!"</span>, input);
     }
 }
diff --git a/content/docs/en/next/functions-overview.html b/content/docs/en/next/functions-overview.html
index 0b5a7a2..ef184b0 100644
--- a/content/docs/en/next/functions-overview.html
+++ b/content/docs/en/next/functions-overview.html
@@ -81,7 +81,7 @@
 <li>publish the results of the computation to another topic.</li>
 </ul>
 <p>The following is an example of a Pulsar Function written in Java (using the <a href="/docs/en/next/functions-api#java-native-functions">native interface</a>).</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
diff --git a/content/docs/en/next/functions-overview/index.html b/content/docs/en/next/functions-overview/index.html
index 0b5a7a2..ef184b0 100644
--- a/content/docs/en/next/functions-overview/index.html
+++ b/content/docs/en/next/functions-overview/index.html
@@ -81,7 +81,7 @@
 <li>publish the results of the computation to another topic.</li>
 </ul>
 <p>The following is an example of a Pulsar Function written in Java (using the <a href="/docs/en/next/functions-api#java-native-functions">native interface</a>).</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
diff --git a/content/docs/fr/next/admin-api-overview.html b/content/docs/fr/next/admin-api-overview.html
index ea3040b..042f01f 100644
--- a/content/docs/fr/next/admin-api-overview.html
+++ b/content/docs/fr/next/admin-api-overview.html
@@ -116,42 +116,38 @@
 .</p>
 <h3><a class="anchor" aria-hidden="true" id="java-admin-client"></a><a href="#java-admin-client" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object, specifying a URL for a Pulsar <a href="/docs/fr/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
+ object, specifying a URL for a Pulsar <a href="/docs/fr/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdminBuilder">PulsarAdminBuilder</a>
 . Here's a minimal example using <code>localhost</code>:</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080"</span>;
 <span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 <p>If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security is enabled.</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>;
+<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/client-libraries-websocket"><span class="arrow-prev">← </span><span class="function-name-prevnext">WebSocket</span></a><a class="docs-next button" href="/docs/fr/next/admin-api-clusters"><span>Clusters</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/next/admin-api-overview/index.html b/content/docs/fr/next/admin-api-overview/index.html
index ea3040b..042f01f 100644
--- a/content/docs/fr/next/admin-api-overview/index.html
+++ b/content/docs/fr/next/admin-api-overview/index.html
@@ -116,42 +116,38 @@
 .</p>
 <h3><a class="anchor" aria-hidden="true" id="java-admin-client"></a><a href="#java-admin-client" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object, specifying a URL for a Pulsar <a href="/docs/fr/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
+ object, specifying a URL for a Pulsar <a href="/docs/fr/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdminBuilder">PulsarAdminBuilder</a>
 . Here's a minimal example using <code>localhost</code>:</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080"</span>;
 <span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 <p>If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security is enabled.</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>;
+<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/fr/next/client-libraries-websocket"><span class="arrow-prev">← </span><span class="function-name-prevnext">WebSocket</span></a><a class="docs-next button" href="/docs/fr/next/admin-api-clusters"><span>Clusters</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/fr/next/concepts-messaging.html b/content/docs/fr/next/concepts-messaging.html
index 17eb338..e5ab771 100644
--- a/content/docs/fr/next/concepts-messaging.html
+++ b/content/docs/fr/next/concepts-messaging.html
@@ -196,7 +196,7 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <p><img src="/docs/assets/pulsar-subscription-modes.png" alt="Subscription modes"></p>
 <h3><a class="anchor" aria-hidden="true" id="exclusive"></a><a href="#exclusive" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>In <em>exclusive</em> mode, only a single consumer is allowed to attach to the subscription. If more than one consumer attempts to subscribe to a topic using the same subscription, the consumer receives an error.</p>
-<p>In the diagram above, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
+<p>In the diagram below, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
 <blockquote>
 <p>Exclusive mode is the default subscription mode.</p>
 </blockquote>
@@ -204,11 +204,11 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <h3><a class="anchor" aria-hidden="true" id="failover"></a><a href="#failover" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In <em>failover</em> mode, multiple consumers can attach to the same subscription. The consumers will be lexically sorted by the consumer's name and the first consumer will initially be the only one receiving messages. This consumer is called the <em>master consumer</em>.</p>
 <p>When the master consumer disconnects, all (non-acked and subsequent) messages will be delivered to the next consumer in line.</p>
-<p>In the diagram above, Consumer-C-1 is the master consumer while Consumer-C-2 would be the next in line to receive messages if Consumer-C-1 disconnected.</p>
+<p>In the diagram below, <strong>Consumer-B-0</strong> is the master consumer while <strong>Consumer-B-1</strong> would be the next in line to receive messages if <strong>Consumer-B-0</strong> disconnected.</p>
 <p><img src="/docs/assets/pulsar-failover-subscriptions.png" alt="Failover subscriptions"></p>
 <h3><a class="anchor" aria-hidden="true" id="shared"></a><a href="#shared" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p>In <em>shared</em> or <em>round robin</em> mode, multiple consumers can attach to the same subscription. Messages are delivered in a round robin distribution across consumers, and any given message is delivered to only one consumer. When a consumer disconnects, all the messages that were sent to it and not acknowledged will be rescheduled for sending to the remaining consumers.</p>
-<p>In the diagram above, <strong>Consumer-B-1</strong> and <strong>Consumer-B-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-1</strong> and others could as well.</p>
+<p>In the diagram below, <strong>Consumer-C-1</strong> and <strong>Consumer-C-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-3</strong> and others could as well.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="limitations-of-shared-mode"></a><a href="#limitations-of-shared-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
 <p>There are two important things to be aware of when using shared mode: * Message ordering is not guaranteed. * You cannot use cumulative acknowledgment with shared mode.</p>
diff --git a/content/docs/fr/next/concepts-messaging/index.html b/content/docs/fr/next/concepts-messaging/index.html
index 17eb338..e5ab771 100644
--- a/content/docs/fr/next/concepts-messaging/index.html
+++ b/content/docs/fr/next/concepts-messaging/index.html
@@ -196,7 +196,7 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <p><img src="/docs/assets/pulsar-subscription-modes.png" alt="Subscription modes"></p>
 <h3><a class="anchor" aria-hidden="true" id="exclusive"></a><a href="#exclusive" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>In <em>exclusive</em> mode, only a single consumer is allowed to attach to the subscription. If more than one consumer attempts to subscribe to a topic using the same subscription, the consumer receives an error.</p>
-<p>In the diagram above, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
+<p>In the diagram below, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
 <blockquote>
 <p>Exclusive mode is the default subscription mode.</p>
 </blockquote>
@@ -204,11 +204,11 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <h3><a class="anchor" aria-hidden="true" id="failover"></a><a href="#failover" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In <em>failover</em> mode, multiple consumers can attach to the same subscription. The consumers will be lexically sorted by the consumer's name and the first consumer will initially be the only one receiving messages. This consumer is called the <em>master consumer</em>.</p>
 <p>When the master consumer disconnects, all (non-acked and subsequent) messages will be delivered to the next consumer in line.</p>
-<p>In the diagram above, Consumer-C-1 is the master consumer while Consumer-C-2 would be the next in line to receive messages if Consumer-C-1 disconnected.</p>
+<p>In the diagram below, <strong>Consumer-B-0</strong> is the master consumer while <strong>Consumer-B-1</strong> would be the next in line to receive messages if <strong>Consumer-B-0</strong> disconnected.</p>
 <p><img src="/docs/assets/pulsar-failover-subscriptions.png" alt="Failover subscriptions"></p>
 <h3><a class="anchor" aria-hidden="true" id="shared"></a><a href="#shared" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p>In <em>shared</em> or <em>round robin</em> mode, multiple consumers can attach to the same subscription. Messages are delivered in a round robin distribution across consumers, and any given message is delivered to only one consumer. When a consumer disconnects, all the messages that were sent to it and not acknowledged will be rescheduled for sending to the remaining consumers.</p>
-<p>In the diagram above, <strong>Consumer-B-1</strong> and <strong>Consumer-B-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-1</strong> and others could as well.</p>
+<p>In the diagram below, <strong>Consumer-C-1</strong> and <strong>Consumer-C-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-3</strong> and others could as well.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="limitations-of-shared-mode"></a><a href="#limitations-of-shared-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
 <p>There are two important things to be aware of when using shared mode: * Message ordering is not guaranteed. * You cannot use cumulative acknowledgment with shared mode.</p>
diff --git a/content/docs/fr/next/functions-api.html b/content/docs/fr/next/functions-api.html
index 5b75f98..e24bb4b 100644
--- a/content/docs/fr/next/functions-api.html
+++ b/content/docs/fr/next/functions-api.html
@@ -195,9 +195,9 @@
 <h2><a class="anchor" aria-hidden="true" id="functions-for-java"></a><a href="#functions-for-java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>Writing Pulsar Functions in Java involves implementing one of two interfaces:</p>
 <ul>
-<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface</li>
+<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface</li>
 <li>The <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Function">Function</a>
- interface. This interface works much like the <code>java.util.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
+ interface. This interface works much like the <code>java.util.function.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
  object that you can use in a <a href="#context">variety of ways</a></li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="get-started"></a><a href="#get-started" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
@@ -221,23 +221,23 @@
 </code></pre></li>
 </ul>
 <h4><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
+<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.function.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="starter-repo"></a><a href="#starter-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>If you'd like to get up and running quickly, you can use <a href="https://github.com/streamlio/pulsar-functions-java-starter">this repo</a>, which contains the necessary Maven configuration to build a fat JAR as well as some example functions.</p>
 </blockquote>
 <h3><a class="anchor" aria-hidden="true" id="java-native-functions"></a><a href="#java-native-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface, which has this very simple, single-method signature:</p>
+<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface, which has this very simple, single-method signature:</p>
 <pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">I</span>, <span class="hljs-title">O</span>&gt; </span>{
     <span class="hljs-function">O <span class="hljs-title">apply</span><span class="hljs-params">(I input)</span></span>;
 }
 </code></pre>
 <p>Here's an example function that takes a string as its input, adds an exclamation point to the end of the string, and then publishes the resulting string:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">process</span><span class="hljs-params">(String input)</span> </span>{
+    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">apply</span><span class="hljs-params">(String input)</span> </span>{
         <span class="hljs-keyword">return</span> String.format(<span class="hljs-string">"%s!"</span>, input);
     }
 }
diff --git a/content/docs/fr/next/functions-api/index.html b/content/docs/fr/next/functions-api/index.html
index 5b75f98..e24bb4b 100644
--- a/content/docs/fr/next/functions-api/index.html
+++ b/content/docs/fr/next/functions-api/index.html
@@ -195,9 +195,9 @@
 <h2><a class="anchor" aria-hidden="true" id="functions-for-java"></a><a href="#functions-for-java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>Writing Pulsar Functions in Java involves implementing one of two interfaces:</p>
 <ul>
-<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface</li>
+<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface</li>
 <li>The <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Function">Function</a>
- interface. This interface works much like the <code>java.util.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
+ interface. This interface works much like the <code>java.util.function.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
  object that you can use in a <a href="#context">variety of ways</a></li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="get-started"></a><a href="#get-started" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
@@ -221,23 +221,23 @@
 </code></pre></li>
 </ul>
 <h4><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
+<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.function.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="starter-repo"></a><a href="#starter-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>If you'd like to get up and running quickly, you can use <a href="https://github.com/streamlio/pulsar-functions-java-starter">this repo</a>, which contains the necessary Maven configuration to build a fat JAR as well as some example functions.</p>
 </blockquote>
 <h3><a class="anchor" aria-hidden="true" id="java-native-functions"></a><a href="#java-native-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface, which has this very simple, single-method signature:</p>
+<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface, which has this very simple, single-method signature:</p>
 <pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">I</span>, <span class="hljs-title">O</span>&gt; </span>{
     <span class="hljs-function">O <span class="hljs-title">apply</span><span class="hljs-params">(I input)</span></span>;
 }
 </code></pre>
 <p>Here's an example function that takes a string as its input, adds an exclamation point to the end of the string, and then publishes the resulting string:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">process</span><span class="hljs-params">(String input)</span> </span>{
+    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">apply</span><span class="hljs-params">(String input)</span> </span>{
         <span class="hljs-keyword">return</span> String.format(<span class="hljs-string">"%s!"</span>, input);
     }
 }
diff --git a/content/docs/fr/next/functions-overview.html b/content/docs/fr/next/functions-overview.html
index 07a09ae..919bdc5 100644
--- a/content/docs/fr/next/functions-overview.html
+++ b/content/docs/fr/next/functions-overview.html
@@ -81,7 +81,7 @@
 <li>publish the results of the computation to another topic.</li>
 </ul>
 <p>The following is an example of a Pulsar Function written in Java (using the <a href="/docs/fr/next/functions-api#java-native-functions">native interface</a>).</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
diff --git a/content/docs/fr/next/functions-overview/index.html b/content/docs/fr/next/functions-overview/index.html
index 07a09ae..919bdc5 100644
--- a/content/docs/fr/next/functions-overview/index.html
+++ b/content/docs/fr/next/functions-overview/index.html
@@ -81,7 +81,7 @@
 <li>publish the results of the computation to another topic.</li>
 </ul>
 <p>The following is an example of a Pulsar Function written in Java (using the <a href="/docs/fr/next/functions-api#java-native-functions">native interface</a>).</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
diff --git a/content/docs/ja/next/admin-api-overview.html b/content/docs/ja/next/admin-api-overview.html
index a1e9a30..96f4ecc 100644
--- a/content/docs/ja/next/admin-api-overview.html
+++ b/content/docs/ja/next/admin-api-overview.html
@@ -116,42 +116,38 @@
 .</p>
 <h3><a class="anchor" aria-hidden="true" id="java-admin-client"></a><a href="#java-admin-client" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object, specifying a URL for a Pulsar <a href="/docs/ja/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
+ object, specifying a URL for a Pulsar <a href="/docs/ja/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdminBuilder">PulsarAdminBuilder</a>
 . Here's a minimal example using <code>localhost</code>:</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080"</span>;
 <span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 <p>If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security is enabled.</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>;
+<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/client-libraries-websocket"><span class="arrow-prev">← </span><span class="function-name-prevnext">WebSocket</span></a><a class="docs-next button" href="/docs/ja/next/admin-api-clusters"><span>Clusters</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/ja/next/admin-api-overview/index.html b/content/docs/ja/next/admin-api-overview/index.html
index a1e9a30..96f4ecc 100644
--- a/content/docs/ja/next/admin-api-overview/index.html
+++ b/content/docs/ja/next/admin-api-overview/index.html
@@ -116,42 +116,38 @@
 .</p>
 <h3><a class="anchor" aria-hidden="true" id="java-admin-client"></a><a href="#java-admin-client" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object, specifying a URL for a Pulsar <a href="/docs/ja/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
+ object, specifying a URL for a Pulsar <a href="/docs/ja/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdminBuilder">PulsarAdminBuilder</a>
 . Here's a minimal example using <code>localhost</code>:</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080"</span>;
 <span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 <p>If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security is enabled.</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>;
+<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/ja/next/client-libraries-websocket"><span class="arrow-prev">← </span><span class="function-name-prevnext">WebSocket</span></a><a class="docs-next button" href="/docs/ja/next/admin-api-clusters"><span>Clusters</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#admin-setup">Admin setup</a><ul class="toc-headings"><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/ja/next/concepts-messaging.html b/content/docs/ja/next/concepts-messaging.html
index cfe6e24..16e01f7 100644
--- a/content/docs/ja/next/concepts-messaging.html
+++ b/content/docs/ja/next/concepts-messaging.html
@@ -196,7 +196,7 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <p><img src="/docs/assets/pulsar-subscription-modes.png" alt="Subscription modes"></p>
 <h3><a class="anchor" aria-hidden="true" id="exclusive"></a><a href="#exclusive" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>In <em>exclusive</em> mode, only a single consumer is allowed to attach to the subscription. If more than one consumer attempts to subscribe to a topic using the same subscription, the consumer receives an error.</p>
-<p>In the diagram above, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
+<p>In the diagram below, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
 <blockquote>
 <p>Exclusive mode is the default subscription mode.</p>
 </blockquote>
@@ -204,11 +204,11 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <h3><a class="anchor" aria-hidden="true" id="failover"></a><a href="#failover" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In <em>failover</em> mode, multiple consumers can attach to the same subscription. The consumers will be lexically sorted by the consumer's name and the first consumer will initially be the only one receiving messages. This consumer is called the <em>master consumer</em>.</p>
 <p>When the master consumer disconnects, all (non-acked and subsequent) messages will be delivered to the next consumer in line.</p>
-<p>In the diagram above, Consumer-C-1 is the master consumer while Consumer-C-2 would be the next in line to receive messages if Consumer-C-1 disconnected.</p>
+<p>In the diagram below, <strong>Consumer-B-0</strong> is the master consumer while <strong>Consumer-B-1</strong> would be the next in line to receive messages if <strong>Consumer-B-0</strong> disconnected.</p>
 <p><img src="/docs/assets/pulsar-failover-subscriptions.png" alt="Failover subscriptions"></p>
 <h3><a class="anchor" aria-hidden="true" id="shared"></a><a href="#shared" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p>In <em>shared</em> or <em>round robin</em> mode, multiple consumers can attach to the same subscription. Messages are delivered in a round robin distribution across consumers, and any given message is delivered to only one consumer. When a consumer disconnects, all the messages that were sent to it and not acknowledged will be rescheduled for sending to the remaining consumers.</p>
-<p>In the diagram above, <strong>Consumer-B-1</strong> and <strong>Consumer-B-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-1</strong> and others could as well.</p>
+<p>In the diagram below, <strong>Consumer-C-1</strong> and <strong>Consumer-C-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-3</strong> and others could as well.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="limitations-of-shared-mode"></a><a href="#limitations-of-shared-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
 <p>There are two important things to be aware of when using shared mode: * Message ordering is not guaranteed. * You cannot use cumulative acknowledgment with shared mode.</p>
diff --git a/content/docs/ja/next/concepts-messaging/index.html b/content/docs/ja/next/concepts-messaging/index.html
index cfe6e24..16e01f7 100644
--- a/content/docs/ja/next/concepts-messaging/index.html
+++ b/content/docs/ja/next/concepts-messaging/index.html
@@ -196,7 +196,7 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <p><img src="/docs/assets/pulsar-subscription-modes.png" alt="Subscription modes"></p>
 <h3><a class="anchor" aria-hidden="true" id="exclusive"></a><a href="#exclusive" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p>In <em>exclusive</em> mode, only a single consumer is allowed to attach to the subscription. If more than one consumer attempts to subscribe to a topic using the same subscription, the consumer receives an error.</p>
-<p>In the diagram above, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
+<p>In the diagram below, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
 <blockquote>
 <p>Exclusive mode is the default subscription mode.</p>
 </blockquote>
@@ -204,11 +204,11 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <h3><a class="anchor" aria-hidden="true" id="failover"></a><a href="#failover" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>In <em>failover</em> mode, multiple consumers can attach to the same subscription. The consumers will be lexically sorted by the consumer's name and the first consumer will initially be the only one receiving messages. This consumer is called the <em>master consumer</em>.</p>
 <p>When the master consumer disconnects, all (non-acked and subsequent) messages will be delivered to the next consumer in line.</p>
-<p>In the diagram above, Consumer-C-1 is the master consumer while Consumer-C-2 would be the next in line to receive messages if Consumer-C-1 disconnected.</p>
+<p>In the diagram below, <strong>Consumer-B-0</strong> is the master consumer while <strong>Consumer-B-1</strong> would be the next in line to receive messages if <strong>Consumer-B-0</strong> disconnected.</p>
 <p><img src="/docs/assets/pulsar-failover-subscriptions.png" alt="Failover subscriptions"></p>
 <h3><a class="anchor" aria-hidden="true" id="shared"></a><a href="#shared" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <p>In <em>shared</em> or <em>round robin</em> mode, multiple consumers can attach to the same subscription. Messages are delivered in a round robin distribution across consumers, and any given message is delivered to only one consumer. When a consumer disconnects, all the messages that were sent to it and not acknowledged will be rescheduled for sending to the remaining consumers.</p>
-<p>In the diagram above, <strong>Consumer-B-1</strong> and <strong>Consumer-B-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-1</strong> and others could as well.</p>
+<p>In the diagram below, <strong>Consumer-C-1</strong> and <strong>Consumer-C-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-3</strong> and others could as well.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="limitations-of-shared-mode"></a><a href="#limitations-of-shared-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
 <p>There are two important things to be aware of when using shared mode: * Message ordering is not guaranteed. * You cannot use cumulative acknowledgment with shared mode.</p>
diff --git a/content/docs/ja/next/functions-api.html b/content/docs/ja/next/functions-api.html
index 7c5114c..e254fad 100644
--- a/content/docs/ja/next/functions-api.html
+++ b/content/docs/ja/next/functions-api.html
@@ -195,9 +195,9 @@
 <h2><a class="anchor" aria-hidden="true" id="functions-for-java"></a><a href="#functions-for-java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>Writing Pulsar Functions in Java involves implementing one of two interfaces:</p>
 <ul>
-<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface</li>
+<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface</li>
 <li>The <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Function">Function</a>
- interface. This interface works much like the <code>java.util.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
+ interface. This interface works much like the <code>java.util.function.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
  object that you can use in a <a href="#context">variety of ways</a></li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="get-started"></a><a href="#get-started" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
@@ -221,23 +221,23 @@
 </code></pre></li>
 </ul>
 <h4><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
+<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.function.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="starter-repo"></a><a href="#starter-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>If you'd like to get up and running quickly, you can use <a href="https://github.com/streamlio/pulsar-functions-java-starter">this repo</a>, which contains the necessary Maven configuration to build a fat JAR as well as some example functions.</p>
 </blockquote>
 <h3><a class="anchor" aria-hidden="true" id="java-native-functions"></a><a href="#java-native-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface, which has this very simple, single-method signature:</p>
+<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface, which has this very simple, single-method signature:</p>
 <pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">I</span>, <span class="hljs-title">O</span>&gt; </span>{
     <span class="hljs-function">O <span class="hljs-title">apply</span><span class="hljs-params">(I input)</span></span>;
 }
 </code></pre>
 <p>Here's an example function that takes a string as its input, adds an exclamation point to the end of the string, and then publishes the resulting string:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">process</span><span class="hljs-params">(String input)</span> </span>{
+    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">apply</span><span class="hljs-params">(String input)</span> </span>{
         <span class="hljs-keyword">return</span> String.format(<span class="hljs-string">"%s!"</span>, input);
     }
 }
diff --git a/content/docs/ja/next/functions-api/index.html b/content/docs/ja/next/functions-api/index.html
index 7c5114c..e254fad 100644
--- a/content/docs/ja/next/functions-api/index.html
+++ b/content/docs/ja/next/functions-api/index.html
@@ -195,9 +195,9 @@
 <h2><a class="anchor" aria-hidden="true" id="functions-for-java"></a><a href="#functions-for-java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>Writing Pulsar Functions in Java involves implementing one of two interfaces:</p>
 <ul>
-<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface</li>
+<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface</li>
 <li>The <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Function">Function</a>
- interface. This interface works much like the <code>java.util.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
+ interface. This interface works much like the <code>java.util.function.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
  object that you can use in a <a href="#context">variety of ways</a></li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="get-started"></a><a href="#get-started" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
@@ -221,23 +221,23 @@
 </code></pre></li>
 </ul>
 <h4><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
+<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.function.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="starter-repo"></a><a href="#starter-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>If you'd like to get up and running quickly, you can use <a href="https://github.com/streamlio/pulsar-functions-java-starter">this repo</a>, which contains the necessary Maven configuration to build a fat JAR as well as some example functions.</p>
 </blockquote>
 <h3><a class="anchor" aria-hidden="true" id="java-native-functions"></a><a href="#java-native-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface, which has this very simple, single-method signature:</p>
+<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface, which has this very simple, single-method signature:</p>
 <pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">I</span>, <span class="hljs-title">O</span>&gt; </span>{
     <span class="hljs-function">O <span class="hljs-title">apply</span><span class="hljs-params">(I input)</span></span>;
 }
 </code></pre>
 <p>Here's an example function that takes a string as its input, adds an exclamation point to the end of the string, and then publishes the resulting string:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">process</span><span class="hljs-params">(String input)</span> </span>{
+    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">apply</span><span class="hljs-params">(String input)</span> </span>{
         <span class="hljs-keyword">return</span> String.format(<span class="hljs-string">"%s!"</span>, input);
     }
 }
diff --git a/content/docs/ja/next/functions-overview.html b/content/docs/ja/next/functions-overview.html
index 7ac63fe..a439889 100644
--- a/content/docs/ja/next/functions-overview.html
+++ b/content/docs/ja/next/functions-overview.html
@@ -81,7 +81,7 @@
 <li>publish the results of the computation to another topic.</li>
 </ul>
 <p>The following is an example of a Pulsar Function written in Java (using the <a href="/docs/ja/next/functions-api#java-native-functions">native interface</a>).</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
diff --git a/content/docs/ja/next/functions-overview/index.html b/content/docs/ja/next/functions-overview/index.html
index 7ac63fe..a439889 100644
--- a/content/docs/ja/next/functions-overview/index.html
+++ b/content/docs/ja/next/functions-overview/index.html
@@ -81,7 +81,7 @@
 <li>publish the results of the computation to another topic.</li>
 </ul>
 <p>The following is an example of a Pulsar Function written in Java (using the <a href="/docs/ja/next/functions-api#java-native-functions">native interface</a>).</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
diff --git a/content/docs/zh-CN/next/admin-api-overview.html b/content/docs/zh-CN/next/admin-api-overview.html
index 578b4cf..98c3481 100644
--- a/content/docs/zh-CN/next/admin-api-overview.html
+++ b/content/docs/zh-CN/next/admin-api-overview.html
@@ -116,43 +116,39 @@
 <p>您可以在此<a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">document</a>
 参考文档中找到Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>暴露的REST API的文档。</p>
 <h3><a class="anchor" aria-hidden="true" id="java-管理客户端"></a><a href="#java-管理客户端" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>要使用 Java 管理 API, 请实例化一个 <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
-对象, 指定Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>URL 和 <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
-。 下面是一个使用 <code>localhost</code> 的最小示例:</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
+<p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ object, specifying a URL for a Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdminBuilder">PulsarAdminBuilder</a>
+. 下面是一个使用 <code>localhost</code> 的最小示例:</p>
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080"</span>;
 <span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 <p>If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security is enabled.</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>;
+<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/client-libraries-websocket"><span class="arrow-prev">← </span><span class="function-name-prevnext">WebSocket</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-clusters"><span>集群</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#管理设置">管理设置</a><ul class="toc-headings"><li><a href="#rest-api" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/next/admin-api-overview/index.html b/content/docs/zh-CN/next/admin-api-overview/index.html
index 578b4cf..98c3481 100644
--- a/content/docs/zh-CN/next/admin-api-overview/index.html
+++ b/content/docs/zh-CN/next/admin-api-overview/index.html
@@ -116,43 +116,39 @@
 <p>您可以在此<a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">document</a>
 参考文档中找到Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>暴露的REST API的文档。</p>
 <h3><a class="anchor" aria-hidden="true" id="java-管理客户端"></a><a href="#java-管理客户端" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1 [...]
-<p>要使用 Java 管理 API, 请实例化一个 <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
-对象, 指定Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>URL 和 <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/ClientConfiguration">ClientConfiguration</a>
-。 下面是一个使用 <code>localhost</code> 的最小示例:</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080"</span>);
+<p>To use the Java admin API, instantiate a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ object, specifying a URL for a Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a> and a <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdminBuilder">PulsarAdminBuilder</a>
+. 下面是一个使用 <code>localhost</code> 的最小示例:</p>
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080"</span>;
 <span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 <p>If you have multiple brokers to use, you can use multi-host like Pulsar service. For example,</p>
-<pre><code class="hljs css language-java">URL url = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>);
-<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security is enabled.</span>
-String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>; 
+<pre><code class="hljs css language-java">String url = <span class="hljs-string">"http://localhost:8080,localhost:8081,localhost:8082"</span>;
+<span class="hljs-comment">// Pass auth-plugin class fully-qualified name if Pulsar-security enabled</span>
+String authPluginClassName = <span class="hljs-string">"com.org.MyAuthPluginClass"</span>;
 <span class="hljs-comment">// Pass auth-param if auth-plugin class requires it</span>
 String authParams = <span class="hljs-string">"param1=value1"</span>;
 <span class="hljs-keyword">boolean</span> useTls = <span class="hljs-keyword">false</span>;
 <span class="hljs-keyword">boolean</span> tlsAllowInsecureConnection = <span class="hljs-keyword">false</span>;
 String tlsTrustCertsFilePath = <span class="hljs-keyword">null</span>;
-
-ClientConfiguration config = <span class="hljs-keyword">new</span> ClientConfiguration();
-config.setAuthentication(authPluginClassName, authParams);
-config.setUseTls(useTls);
-config.setTlsAllowInsecureConnection(tlsAllowInsecureConnection);
-config.setTlsTrustCertsFilePath(tlsTrustCertsFilePath);
-
-PulsarAdmin admin = <span class="hljs-keyword">new</span> PulsarAdmin(url, config);
+PulsarAdmin admin = PulsarAdmin.builder()
+.authentication(authPluginClassName,authParams)
+.serviceHttpUrl(url)
+.tlsTrustCertsFilePath(tlsTrustCertsFilePath)
+.allowTlsInsecureConnection(tlsAllowInsecureConnection)
+.build();
 </code></pre>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/client-libraries-websocket"><span class="arrow-prev">← </span><span class="function-name-prevnext">WebSocket</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-clusters"><span>集群</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#管理设置">管理设置</a><ul class="toc-headings"><li><a href="#rest-api" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/next/concepts-messaging.html b/content/docs/zh-CN/next/concepts-messaging.html
index 8b39463..c494215 100644
--- a/content/docs/zh-CN/next/concepts-messaging.html
+++ b/content/docs/zh-CN/next/concepts-messaging.html
@@ -196,7 +196,7 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <p><img src="/docs/assets/pulsar-subscription-modes.png" alt="订阅模型"></p>
 <h3><a class="anchor" aria-hidden="true" id="exclusive"></a><a href="#exclusive" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p><em>独占</em>模式,只能有一个消费者绑定到订阅上。 如果多于一个消费者尝试以同样方式去订阅主题,消费者将会收到错误。</p>
-<p>上面的图中,只有<strong>Consumer A</strong>可以消费。</p>
+<p>In the diagram below, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
 <blockquote>
 <p>Exclusive模式为默认订阅模式。</p>
 </blockquote>
@@ -204,11 +204,11 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <h3><a class="anchor" aria-hidden="true" id="failover-灾备"></a><a href="#failover-灾备" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
 <p><em>Failover</em>模式中,多个consumer可以绑定到同一个subscription。 Consumer将会按字典顺序排序,第一个consumer被初始化为唯一接受消息的消费者。 这个consumer被称为<em>master consumer</em>。</p>
 <p>当master consumer断开时,所有的消息(未被确认和后续进入的)将会被分发给队列中的下一个consumer。</p>
-<p>第一幅图中,Consumer-C-1是master consumer,当Consumer-C-1断开连接时,由于Consumer-C-2在队列中下一个位置,那么它将会开始接收消息。</p>
+<p>In the diagram below, <strong>Consumer-B-0</strong> is the master consumer while <strong>Consumer-B-1</strong> would be the next in line to receive messages if <strong>Consumer-B-0</strong> disconnected.</p>
 <p><img src="/docs/assets/pulsar-failover-subscriptions.png" alt="灾备订阅"></p>
 <h3><a class="anchor" aria-hidden="true" id="shared-共享"></a><a href="#shared-共享" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p><em>shared</em>或者<em>round robin</em>模式中,多个消费者可以绑定到同一个订阅上。 消息通过round robin轮询机制分发给不同的消费者,并且每个消息仅会被分发给一个消费者。 当消费者断开连接,所有被发送给他,但没有被确认的消息将被重新安排,分发给其它存活的消费者。</p>
-<p>第一幅图中,<strong>Consumer-B-1</strong>和<strong>Consumer-B-2</strong>都可以订阅主题,其实<strong>Consumer-C-1</strong>或者其它Consumer也可以订阅。</p>
+<p>In the diagram below, <strong>Consumer-C-1</strong> and <strong>Consumer-C-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-3</strong> and others could as well.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="shared模式的限制"></a><a href="#shared模式的限制" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
 <p>使用shared模式时,需要重点注意以下两点: * 消息的顺序无法保证。 * 你不可以使用累积确认。</p>
diff --git a/content/docs/zh-CN/next/concepts-messaging/index.html b/content/docs/zh-CN/next/concepts-messaging/index.html
index 8b39463..c494215 100644
--- a/content/docs/zh-CN/next/concepts-messaging/index.html
+++ b/content/docs/zh-CN/next/concepts-messaging/index.html
@@ -196,7 +196,7 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <p><img src="/docs/assets/pulsar-subscription-modes.png" alt="订阅模型"></p>
 <h3><a class="anchor" aria-hidden="true" id="exclusive"></a><a href="#exclusive" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p><em>独占</em>模式,只能有一个消费者绑定到订阅上。 如果多于一个消费者尝试以同样方式去订阅主题,消费者将会收到错误。</p>
-<p>上面的图中,只有<strong>Consumer A</strong>可以消费。</p>
+<p>In the diagram below, only <strong>Consumer-A</strong> is allowed to consume messages.</p>
 <blockquote>
 <p>Exclusive模式为默认订阅模式。</p>
 </blockquote>
@@ -204,11 +204,11 @@ Currently, dead letter topic is enabled only in the shared subscription mode.</p
 <h3><a class="anchor" aria-hidden="true" id="failover-灾备"></a><a href="#failover-灾备" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
 <p><em>Failover</em>模式中,多个consumer可以绑定到同一个subscription。 Consumer将会按字典顺序排序,第一个consumer被初始化为唯一接受消息的消费者。 这个consumer被称为<em>master consumer</em>。</p>
 <p>当master consumer断开时,所有的消息(未被确认和后续进入的)将会被分发给队列中的下一个consumer。</p>
-<p>第一幅图中,Consumer-C-1是master consumer,当Consumer-C-1断开连接时,由于Consumer-C-2在队列中下一个位置,那么它将会开始接收消息。</p>
+<p>In the diagram below, <strong>Consumer-B-0</strong> is the master consumer while <strong>Consumer-B-1</strong> would be the next in line to receive messages if <strong>Consumer-B-0</strong> disconnected.</p>
 <p><img src="/docs/assets/pulsar-failover-subscriptions.png" alt="灾备订阅"></p>
 <h3><a class="anchor" aria-hidden="true" id="shared-共享"></a><a href="#shared-共享" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
 <p><em>shared</em>或者<em>round robin</em>模式中,多个消费者可以绑定到同一个订阅上。 消息通过round robin轮询机制分发给不同的消费者,并且每个消息仅会被分发给一个消费者。 当消费者断开连接,所有被发送给他,但没有被确认的消息将被重新安排,分发给其它存活的消费者。</p>
-<p>第一幅图中,<strong>Consumer-B-1</strong>和<strong>Consumer-B-2</strong>都可以订阅主题,其实<strong>Consumer-C-1</strong>或者其它Consumer也可以订阅。</p>
+<p>In the diagram below, <strong>Consumer-C-1</strong> and <strong>Consumer-C-2</strong> are able to subscribe to the topic, but <strong>Consumer-C-3</strong> and others could as well.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="shared模式的限制"></a><a href="#shared模式的限制" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
 <p>使用shared模式时,需要重点注意以下两点: * 消息的顺序无法保证。 * 你不可以使用累积确认。</p>
diff --git a/content/docs/zh-CN/next/functions-api.html b/content/docs/zh-CN/next/functions-api.html
index c255e23..bf2e358 100644
--- a/content/docs/zh-CN/next/functions-api.html
+++ b/content/docs/zh-CN/next/functions-api.html
@@ -195,9 +195,9 @@
 <h2><a class="anchor" aria-hidden="true" id="functions-for-java"></a><a href="#functions-for-java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>Writing Pulsar Functions in Java involves implementing one of two interfaces:</p>
 <ul>
-<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface</li>
+<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface</li>
 <li>The <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Function">Function</a>
- interface. This interface works much like the <code>java.util.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
+ interface. This interface works much like the <code>java.util.function.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
  object that you can use in a <a href="#context">variety of ways</a></li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="get-started"></a><a href="#get-started" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
@@ -221,23 +221,23 @@
 </code></pre></li>
 </ul>
 <h4><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
+<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.function.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="starter-repo"></a><a href="#starter-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>If you'd like to get up and running quickly, you can use <a href="https://github.com/streamlio/pulsar-functions-java-starter">this repo</a>, which contains the necessary Maven configuration to build a fat JAR as well as some example functions.</p>
 </blockquote>
 <h3><a class="anchor" aria-hidden="true" id="java-native-functions"></a><a href="#java-native-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface, which has this very simple, single-method signature:</p>
+<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface, which has this very simple, single-method signature:</p>
 <pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">I</span>, <span class="hljs-title">O</span>&gt; </span>{
     <span class="hljs-function">O <span class="hljs-title">apply</span><span class="hljs-params">(I input)</span></span>;
 }
 </code></pre>
 <p>Here's an example function that takes a string as its input, adds an exclamation point to the end of the string, and then publishes the resulting string:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">process</span><span class="hljs-params">(String input)</span> </span>{
+    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">apply</span><span class="hljs-params">(String input)</span> </span>{
         <span class="hljs-keyword">return</span> String.format(<span class="hljs-string">"%s!"</span>, input);
     }
 }
diff --git a/content/docs/zh-CN/next/functions-api/index.html b/content/docs/zh-CN/next/functions-api/index.html
index c255e23..bf2e358 100644
--- a/content/docs/zh-CN/next/functions-api/index.html
+++ b/content/docs/zh-CN/next/functions-api/index.html
@@ -195,9 +195,9 @@
 <h2><a class="anchor" aria-hidden="true" id="functions-for-java"></a><a href="#functions-for-java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
 <p>Writing Pulsar Functions in Java involves implementing one of two interfaces:</p>
 <ul>
-<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface</li>
+<li>The <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface</li>
 <li>The <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Function">Function</a>
- interface. This interface works much like the <code>java.util.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
+ interface. This interface works much like the <code>java.util.function.Function</code> interface, but with the important difference that it provides a <a href="https://pulsar.incubator.apache.org/api/pulsar-functions/org/apache/pulsar/functions/api/Context">Context</a>
  object that you can use in a <a href="#context">variety of ways</a></li>
 </ul>
 <h3><a class="anchor" aria-hidden="true" id="get-started"></a><a href="#get-started" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42 [...]
@@ -221,23 +221,23 @@
 </code></pre></li>
 </ul>
 <h4><a class="anchor" aria-hidden="true" id="packaging"></a><a href="#packaging" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
+<p>Whether you're writing Java Pulsar Functions using the <a href="#java-native-functions">native</a> Java <code>java.util.function.Function</code> interface or using the <a href="#java-sdk-functions">Java SDK</a>, you'll need to package your function(s) as a &quot;fat&quot; JAR.</p>
 <blockquote>
 <h4><a class="anchor" aria-hidden="true" id="starter-repo"></a><a href="#starter-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>If you'd like to get up and running quickly, you can use <a href="https://github.com/streamlio/pulsar-functions-java-starter">this repo</a>, which contains the necessary Maven configuration to build a fat JAR as well as some example functions.</p>
 </blockquote>
 <h3><a class="anchor" aria-hidden="true" id="java-native-functions"></a><a href="#java-native-functions" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
-<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.Function</code></a> interface, which has this very simple, single-method signature:</p>
+<p>If your function doesn't require access to its <a href="#context">context</a>, you can create a Pulsar Function by implementing the <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html"><code>java.util.function.Function</code></a> interface, which has this very simple, single-method signature:</p>
 <pre><code class="hljs css language-java"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">I</span>, <span class="hljs-title">O</span>&gt; </span>{
     <span class="hljs-function">O <span class="hljs-title">apply</span><span class="hljs-params">(I input)</span></span>;
 }
 </code></pre>
 <p>Here's an example function that takes a string as its input, adds an exclamation point to the end of the string, and then publishes the resulting string:</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
-    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">process</span><span class="hljs-params">(String input)</span> </span>{
+    <span class="hljs-function"><span class="hljs-keyword">public</span> String <span class="hljs-title">apply</span><span class="hljs-params">(String input)</span> </span>{
         <span class="hljs-keyword">return</span> String.format(<span class="hljs-string">"%s!"</span>, input);
     }
 }
diff --git a/content/docs/zh-CN/next/functions-overview.html b/content/docs/zh-CN/next/functions-overview.html
index f4eee9e..79168b6 100644
--- a/content/docs/zh-CN/next/functions-overview.html
+++ b/content/docs/zh-CN/next/functions-overview.html
@@ -81,7 +81,7 @@
 <li>publish the results of the computation to another topic.</li>
 </ul>
 <p>The following is an example of a Pulsar Function written in Java (using the <a href="/docs/zh-CN/next/functions-api#java-native-functions">native interface</a>).</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
diff --git a/content/docs/zh-CN/next/functions-overview/index.html b/content/docs/zh-CN/next/functions-overview/index.html
index f4eee9e..79168b6 100644
--- a/content/docs/zh-CN/next/functions-overview/index.html
+++ b/content/docs/zh-CN/next/functions-overview/index.html
@@ -81,7 +81,7 @@
 <li>publish the results of the computation to another topic.</li>
 </ul>
 <p>The following is an example of a Pulsar Function written in Java (using the <a href="/docs/zh-CN/next/functions-api#java-native-functions">native interface</a>).</p>
-<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.Function;
+<pre><code class="hljs css language-java"><span class="hljs-keyword">import</span> java.util.function.Function;
 
 <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">ExclamationFunction</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">Function</span>&lt;<span class="hljs-title">String</span>, <span class="hljs-title">String</span>&gt; </span>{
     <span class="hljs-meta">@Override</span>
diff --git a/content/swagger/2.5.0-SNAPSHOT/swagger.json b/content/swagger/2.5.0-SNAPSHOT/swagger.json
index e90b9bc..8715795 100644
--- a/content/swagger/2.5.0-SNAPSHOT/swagger.json
+++ b/content/swagger/2.5.0-SNAPSHOT/swagger.json
@@ -8866,41 +8866,41 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "underLoaded" : {
           "type" : "boolean"
         },
-        "overLoaded" : {
-          "type" : "boolean"
-        },
-        "loadReportType" : {
-          "type" : "string"
-        },
-        "bandwidthOut" : {
+        "memory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "memory" : {
+        "directMemory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "cpu" : {
+        "bandwidthIn" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "directMemory" : {
+        "bandwidthOut" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
         "lastUpdate" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "bandwidthIn" : {
-          "$ref" : "#/definitions/ResourceUsage"
-        },
         "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
+        },
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "overLoaded" : {
+          "type" : "boolean"
+        },
+        "cpu" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
+        "loadReportType" : {
+          "type" : "string"
         }
       }
     },
diff --git a/content/swagger/2.5.0-SNAPSHOT/swaggerfunctions.json b/content/swagger/2.5.0-SNAPSHOT/swaggerfunctions.json
index 3fad06c..36e81e2 100644
--- a/content/swagger/2.5.0-SNAPSHOT/swaggerfunctions.json
+++ b/content/swagger/2.5.0-SNAPSHOT/swaggerfunctions.json
@@ -57,13 +57,13 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -94,19 +94,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -124,7 +124,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           },
           "408" : {
             "description" : "Request timeout"
@@ -141,25 +141,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The functions tenant",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The functions namespace",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The functions name",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "A JSON value presenting functions configuration payload. An example of the expected functions can be found here.  \nautoAck  \n  Whether or not the framework will automatically acknowledge messages.  \nruntime  \n  What is the runtime of the function. Possible Values: [JAVA, PYTHON, GO]  \nresources  \n  The size of the system resources allowed by the function runtime. The resources include: cpu, ram, disk.  \nclassName  \n  The class name of functions.  \ncust [...]
+          "description" : "A JSON value presenting configuration payload of a Pulsar Function. An example of the expected Pulsar Function can be found here.  \n- **autoAck**  \n  Whether or not the framework acknowledges messages automatically.  \n- **runtime**  \n  What is the runtime of the Pulsar Function. Possible Values: [JAVA, PYTHON, GO]  \n- **resources**  \n  The size of the system resources allowed by the Pulsar Function runtime. The resources include: cpu, ram, disk.  \n- **cl [...]
           "required" : false,
           "schema" : {
             "$ref" : "#/definitions/FunctionConfig"
@@ -173,7 +173,7 @@
             "description" : "Pulsar Function successfully created"
           },
           "400" : {
-            "description" : "Invalid request (function already exists, etc.)"
+            "description" : "Invalid request (The Pulsar Function already exists, etc.)"
           },
           "403" : {
             "description" : "The requester doesn't have admin permissions"
@@ -193,25 +193,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "A JSON value presenting a functions config playload. An example of the expected functions can be found down here.  \nautoAck  \n  Whether or not the framework will automatically acknowledge messages.  \nruntime  \n  What is the runtime of the function. Possible Values: [JAVA, PYTHON, GO]  \nresources  \n  The size of the system resources allowed by the function runtime. The resources include: cpu, ram, disk.  \nclassName  \n  The class name of functions.  \ncus [...]
+          "description" : "A JSON value presenting configuration payload of a Pulsar Function. An example of the expected Pulsar Function can be found here.  \n- **autoAck**  \n  Whether or not the framework acknowledges messages automatically.  \n- **runtime**  \n  What is the runtime of the Pulsar Function. Possible Values: [JAVA, PYTHON, GO]  \n- **resources**  \n  The size of the system resources allowed by the Pulsar Function runtime. The resources include: cpu, ram, disk.  \n- **cl [...]
           "required" : false,
           "schema" : {
             "$ref" : "#/definitions/FunctionConfig"
@@ -233,7 +233,7 @@
             "description" : "Pulsar Function successfully updated"
           },
           "400" : {
-            "description" : "Invalid request (function doesn't exist, etc.)"
+            "description" : "Invalid request (The Pulsar Function doesn't exist, etc.)"
           },
           "403" : {
             "description" : "The requester doesn't have admin permissions"
@@ -250,25 +250,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
         "responses" : {
           "200" : {
-            "description" : "The function was successfully deleted"
+            "description" : "The Pulsar Function was successfully deleted"
           },
           "400" : {
             "description" : "Invalid request"
@@ -277,7 +277,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           },
           "408" : {
             "description" : "Request timeout"
@@ -288,7 +288,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/restart" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Restart all function instances",
+        "summary" : "Restart all instances of a Pulsar Function",
         "description" : "",
         "operationId" : "restartFunction",
         "consumes" : [ "application/json" ],
@@ -296,19 +296,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -317,7 +317,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -328,7 +328,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/start" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Start all function instances",
+        "summary" : "Start all instances of a Pulsar Function",
         "description" : "",
         "operationId" : "startFunction",
         "consumes" : [ "application/json" ],
@@ -336,19 +336,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -357,7 +357,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -376,19 +376,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
@@ -455,7 +455,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -474,19 +474,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -504,7 +504,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           }
         }
       }
@@ -520,19 +520,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -550,7 +550,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           }
         }
       }
@@ -558,7 +558,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/stop" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Stop all function instances",
+        "summary" : "Stop all instances of a Pulsar Function",
         "description" : "",
         "operationId" : "stopFunction",
         "consumes" : [ "application/json" ],
@@ -566,19 +566,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -587,7 +587,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -606,25 +606,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "The value with which you want to trigger the function",
+          "description" : "The value with which you want to trigger the Pulsar Function",
           "required" : false,
           "schema" : {
             "type" : "string"
@@ -632,7 +632,7 @@
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "The path to the file that contains the data with which you'd like to trigger the function",
+          "description" : "The path to the file that contains the data with which you'd like to trigger the Pulsar Function",
           "required" : false,
           "schema" : {
             "$ref" : "#/definitions/InputStream"
@@ -640,7 +640,7 @@
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "The specific topic name that the function consumes from which you want to inject the data to",
+          "description" : "The specific topic name that the Pulsar Function consumes from which you want to inject the data to",
           "required" : false,
           "schema" : {
             "type" : "string"
@@ -657,7 +657,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "408" : {
             "description" : "Request timeout"
@@ -671,7 +671,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/restart" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Restart function instance",
+        "summary" : "Restart an instance of a Pulsar Function",
         "description" : "",
         "operationId" : "restartFunction",
         "consumes" : [ "application/json" ],
@@ -679,25 +679,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, all instances are restarted",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are restarted",
           "required" : true,
           "type" : "string"
         } ],
@@ -706,7 +706,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -717,7 +717,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/start" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Start function instance",
+        "summary" : "Start an instance of a Pulsar Function",
         "description" : "",
         "operationId" : "startFunction",
         "consumes" : [ "application/json" ],
@@ -725,25 +725,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, all instances sre started. ",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, all instances sre started. ",
           "required" : true,
           "type" : "string"
         } ],
@@ -752,7 +752,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -771,25 +771,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, the stats of all instances is returned",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned",
           "required" : true,
           "type" : "string"
         } ],
@@ -807,7 +807,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           }
         }
       }
@@ -823,25 +823,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, the stats of all instances is returned",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned",
           "required" : true,
           "type" : "string"
         } ],
@@ -859,7 +859,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           }
         }
       }
@@ -867,7 +867,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/stop" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Stop function instance",
+        "summary" : "Stop an instance of a Pulsar Function",
         "description" : "",
         "operationId" : "stopFunction",
         "consumes" : [ "application/json" ],
@@ -875,25 +875,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, all instances are stopped. ",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are stopped. ",
           "required" : true,
           "type" : "string"
         } ],
@@ -902,7 +902,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -1348,19 +1348,16 @@
     "Message" : {
       "type" : "object",
       "properties" : {
-        "schemaVersion" : {
+        "topicName" : {
+          "type" : "string"
+        },
+        "keyBytes" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
         },
-        "messageId" : {
-          "$ref" : "#/definitions/MessageId"
-        },
-        "replicated" : {
-          "type" : "boolean"
-        },
         "publishTime" : {
           "type" : "integer",
           "format" : "int64"
@@ -1369,39 +1366,42 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "keyBytes" : {
+        "sequenceId" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "orderingKey" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
         },
-        "topicName" : {
-          "type" : "string"
+        "encryptionCtx" : {
+          "$ref" : "#/definitions/EncryptionContext"
         },
-        "sequenceId" : {
-          "type" : "integer",
-          "format" : "int64"
+        "messageId" : {
+          "$ref" : "#/definitions/MessageId"
         },
         "redeliveryCount" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "orderingKey" : {
+        "schemaVersion" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
         },
-        "encryptionCtx" : {
-          "$ref" : "#/definitions/EncryptionContext"
+        "producerName" : {
+          "type" : "string"
         },
         "replicatedFrom" : {
           "type" : "string"
         },
-        "producerName" : {
-          "type" : "string"
+        "replicated" : {
+          "type" : "boolean"
         },
         "data" : {
           "type" : "array",
diff --git a/content/swagger/swagger.json b/content/swagger/swagger.json
index e90b9bc..8715795 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/swagger.json
@@ -8866,41 +8866,41 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "underLoaded" : {
           "type" : "boolean"
         },
-        "overLoaded" : {
-          "type" : "boolean"
-        },
-        "loadReportType" : {
-          "type" : "string"
-        },
-        "bandwidthOut" : {
+        "memory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "memory" : {
+        "directMemory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "cpu" : {
+        "bandwidthIn" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "directMemory" : {
+        "bandwidthOut" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
         "lastUpdate" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "bandwidthIn" : {
-          "$ref" : "#/definitions/ResourceUsage"
-        },
         "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
+        },
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "overLoaded" : {
+          "type" : "boolean"
+        },
+        "cpu" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
+        "loadReportType" : {
+          "type" : "string"
         }
       }
     },
diff --git a/content/swagger/swaggerfunctions.json b/content/swagger/swaggerfunctions.json
index 3fad06c..36e81e2 100644
--- a/content/swagger/swaggerfunctions.json
+++ b/content/swagger/swaggerfunctions.json
@@ -57,13 +57,13 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -94,19 +94,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -124,7 +124,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           },
           "408" : {
             "description" : "Request timeout"
@@ -141,25 +141,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The functions tenant",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The functions namespace",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The functions name",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "A JSON value presenting functions configuration payload. An example of the expected functions can be found here.  \nautoAck  \n  Whether or not the framework will automatically acknowledge messages.  \nruntime  \n  What is the runtime of the function. Possible Values: [JAVA, PYTHON, GO]  \nresources  \n  The size of the system resources allowed by the function runtime. The resources include: cpu, ram, disk.  \nclassName  \n  The class name of functions.  \ncust [...]
+          "description" : "A JSON value presenting configuration payload of a Pulsar Function. An example of the expected Pulsar Function can be found here.  \n- **autoAck**  \n  Whether or not the framework acknowledges messages automatically.  \n- **runtime**  \n  What is the runtime of the Pulsar Function. Possible Values: [JAVA, PYTHON, GO]  \n- **resources**  \n  The size of the system resources allowed by the Pulsar Function runtime. The resources include: cpu, ram, disk.  \n- **cl [...]
           "required" : false,
           "schema" : {
             "$ref" : "#/definitions/FunctionConfig"
@@ -173,7 +173,7 @@
             "description" : "Pulsar Function successfully created"
           },
           "400" : {
-            "description" : "Invalid request (function already exists, etc.)"
+            "description" : "Invalid request (The Pulsar Function already exists, etc.)"
           },
           "403" : {
             "description" : "The requester doesn't have admin permissions"
@@ -193,25 +193,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "A JSON value presenting a functions config playload. An example of the expected functions can be found down here.  \nautoAck  \n  Whether or not the framework will automatically acknowledge messages.  \nruntime  \n  What is the runtime of the function. Possible Values: [JAVA, PYTHON, GO]  \nresources  \n  The size of the system resources allowed by the function runtime. The resources include: cpu, ram, disk.  \nclassName  \n  The class name of functions.  \ncus [...]
+          "description" : "A JSON value presenting configuration payload of a Pulsar Function. An example of the expected Pulsar Function can be found here.  \n- **autoAck**  \n  Whether or not the framework acknowledges messages automatically.  \n- **runtime**  \n  What is the runtime of the Pulsar Function. Possible Values: [JAVA, PYTHON, GO]  \n- **resources**  \n  The size of the system resources allowed by the Pulsar Function runtime. The resources include: cpu, ram, disk.  \n- **cl [...]
           "required" : false,
           "schema" : {
             "$ref" : "#/definitions/FunctionConfig"
@@ -233,7 +233,7 @@
             "description" : "Pulsar Function successfully updated"
           },
           "400" : {
-            "description" : "Invalid request (function doesn't exist, etc.)"
+            "description" : "Invalid request (The Pulsar Function doesn't exist, etc.)"
           },
           "403" : {
             "description" : "The requester doesn't have admin permissions"
@@ -250,25 +250,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
         "responses" : {
           "200" : {
-            "description" : "The function was successfully deleted"
+            "description" : "The Pulsar Function was successfully deleted"
           },
           "400" : {
             "description" : "Invalid request"
@@ -277,7 +277,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           },
           "408" : {
             "description" : "Request timeout"
@@ -288,7 +288,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/restart" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Restart all function instances",
+        "summary" : "Restart all instances of a Pulsar Function",
         "description" : "",
         "operationId" : "restartFunction",
         "consumes" : [ "application/json" ],
@@ -296,19 +296,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -317,7 +317,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -328,7 +328,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/start" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Start all function instances",
+        "summary" : "Start all instances of a Pulsar Function",
         "description" : "",
         "operationId" : "startFunction",
         "consumes" : [ "application/json" ],
@@ -336,19 +336,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -357,7 +357,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -376,19 +376,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
@@ -455,7 +455,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -474,19 +474,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -504,7 +504,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           }
         }
       }
@@ -520,19 +520,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -550,7 +550,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           }
         }
       }
@@ -558,7 +558,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/stop" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Stop all function instances",
+        "summary" : "Stop all instances of a Pulsar Function",
         "description" : "",
         "operationId" : "stopFunction",
         "consumes" : [ "application/json" ],
@@ -566,19 +566,19 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         } ],
@@ -587,7 +587,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -606,25 +606,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "The value with which you want to trigger the function",
+          "description" : "The value with which you want to trigger the Pulsar Function",
           "required" : false,
           "schema" : {
             "type" : "string"
@@ -632,7 +632,7 @@
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "The path to the file that contains the data with which you'd like to trigger the function",
+          "description" : "The path to the file that contains the data with which you'd like to trigger the Pulsar Function",
           "required" : false,
           "schema" : {
             "$ref" : "#/definitions/InputStream"
@@ -640,7 +640,7 @@
         }, {
           "in" : "body",
           "name" : "body",
-          "description" : "The specific topic name that the function consumes from which you want to inject the data to",
+          "description" : "The specific topic name that the Pulsar Function consumes from which you want to inject the data to",
           "required" : false,
           "schema" : {
             "type" : "string"
@@ -657,7 +657,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "408" : {
             "description" : "Request timeout"
@@ -671,7 +671,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/restart" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Restart function instance",
+        "summary" : "Restart an instance of a Pulsar Function",
         "description" : "",
         "operationId" : "restartFunction",
         "consumes" : [ "application/json" ],
@@ -679,25 +679,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, all instances are restarted",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are restarted",
           "required" : true,
           "type" : "string"
         } ],
@@ -706,7 +706,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -717,7 +717,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/start" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Start function instance",
+        "summary" : "Start an instance of a Pulsar Function",
         "description" : "",
         "operationId" : "startFunction",
         "consumes" : [ "application/json" ],
@@ -725,25 +725,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, all instances sre started. ",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, all instances sre started. ",
           "required" : true,
           "type" : "string"
         } ],
@@ -752,7 +752,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -771,25 +771,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, the stats of all instances is returned",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned",
           "required" : true,
           "type" : "string"
         } ],
@@ -807,7 +807,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           }
         }
       }
@@ -823,25 +823,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, the stats of all instances is returned",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, the stats of all instances is returned",
           "required" : true,
           "type" : "string"
         } ],
@@ -859,7 +859,7 @@
             "description" : "The requester doesn't have admin permissions"
           },
           "404" : {
-            "description" : "The function doesn't exist"
+            "description" : "The Pulsar Function doesn't exist"
           }
         }
       }
@@ -867,7 +867,7 @@
     "/functions/{tenant}/{namespace}/{functionName}/{instanceId}/stop" : {
       "post" : {
         "tags" : [ "functions" ],
-        "summary" : "Stop function instance",
+        "summary" : "Stop an instance of a Pulsar Function",
         "description" : "",
         "operationId" : "stopFunction",
         "consumes" : [ "application/json" ],
@@ -875,25 +875,25 @@
         "parameters" : [ {
           "name" : "tenant",
           "in" : "path",
-          "description" : "The tenant of functions",
+          "description" : "The tenant of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "namespace",
           "in" : "path",
-          "description" : "The namespace of functions",
+          "description" : "The namespace of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "functionName",
           "in" : "path",
-          "description" : "The name of functions",
+          "description" : "The name of a Pulsar Function",
           "required" : true,
           "type" : "string"
         }, {
           "name" : "instanceId",
           "in" : "path",
-          "description" : "The function instanceId (if instance-id is not provided, all instances are stopped. ",
+          "description" : "The instanceId of a Pulsar Function (if instance-id is not provided, all instances are stopped. ",
           "required" : true,
           "type" : "string"
         } ],
@@ -902,7 +902,7 @@
             "description" : "Invalid request"
           },
           "404" : {
-            "description" : "The function does not exist"
+            "description" : "The Pulsar Function does not exist"
           },
           "500" : {
             "description" : "Internal server error"
@@ -1348,19 +1348,16 @@
     "Message" : {
       "type" : "object",
       "properties" : {
-        "schemaVersion" : {
+        "topicName" : {
+          "type" : "string"
+        },
+        "keyBytes" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
         },
-        "messageId" : {
-          "$ref" : "#/definitions/MessageId"
-        },
-        "replicated" : {
-          "type" : "boolean"
-        },
         "publishTime" : {
           "type" : "integer",
           "format" : "int64"
@@ -1369,39 +1366,42 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "keyBytes" : {
+        "sequenceId" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "orderingKey" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
         },
-        "topicName" : {
-          "type" : "string"
+        "encryptionCtx" : {
+          "$ref" : "#/definitions/EncryptionContext"
         },
-        "sequenceId" : {
-          "type" : "integer",
-          "format" : "int64"
+        "messageId" : {
+          "$ref" : "#/definitions/MessageId"
         },
         "redeliveryCount" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "orderingKey" : {
+        "schemaVersion" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
         },
-        "encryptionCtx" : {
-          "$ref" : "#/definitions/EncryptionContext"
+        "producerName" : {
+          "type" : "string"
         },
         "replicatedFrom" : {
           "type" : "string"
         },
-        "producerName" : {
-          "type" : "string"
+        "replicated" : {
+          "type" : "boolean"
         },
         "data" : {
           "type" : "array",