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 2018/05/23 08:31:06 UTC

[incubator-pulsar] branch asf-site updated: Updated site at revision 928ba3d

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/incubator-pulsar.git


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

commit ec58979fb5e2146886437671dac32b87b2babd8d
Author: jenkins <bu...@apache.org>
AuthorDate: Wed May 23 08:30:57 2018 +0000

    Updated site at revision 928ba3d
---
 content/api/cpp/annotated.html                     |  20 +-
 content/api/cpp/classes.html                       |  36 +-
 ...asspulsar_1_1_client_configuration-members.html |  26 +-
 .../cpp/classpulsar_1_1_client_configuration.html  |  24 +
 ...cy.html => classpulsar_1_1_logger-members.html} |  57 +-
 ...ing_policy.html => classpulsar_1_1_logger.html} |  57 +-
 ...=> classpulsar_1_1_logger_factory-members.html} |  33 +-
 ...cy.html => classpulsar_1_1_logger_factory.html} |  44 +-
 .../classpulsar_1_1_message_routing_policy.html    |   2 +-
 .../api/cpp/client__configuration_8h_source.html   |   2 +-
 content/api/cpp/deprecated.html                    |   4 +-
 content/api/cpp/files.html                         |  23 +-
 content/api/cpp/functions.html                     |   3 +
 content/api/cpp/functions_func.html                |   3 +
 content/api/cpp/hierarchy.html                     |  24 +-
 content/api/cpp/namespacepulsar.html               |   7 +
 content/api/cpp/search/all_8.js                    |   4 +-
 content/api/cpp/search/all_c.js                    |   1 +
 content/api/cpp/search/classes_5.js                |   6 +-
 content/api/cpp/search/classes_6.js                |   6 +-
 content/api/cpp/search/classes_7.js                |   4 +-
 content/api/cpp/search/classes_8.js                |   3 +-
 content/api/cpp/search/classes_9.html              |  26 +
 .../api/cpp/search/{classes_8.js => classes_9.js}  |   0
 content/api/cpp/search/functions_b.js              |   1 +
 content/api/cpp/search/searchdata.js               |   2 +-
 content/api/pulsar-functions/allclasses-frame.html |  23 +
 .../api/pulsar-functions/allclasses-noframe.html   |  23 +
 content/api/pulsar-functions/constant-values.html  | 121 ++++
 content/api/pulsar-functions/deprecated-list.html  | 121 ++++
 content/api/pulsar-functions/help-doc.html         | 222 +++++++
 content/api/pulsar-functions/index-all.html        | 321 ++++++++++
 content/api/pulsar-functions/index.html            |  75 +++
 .../org/apache/pulsar/functions/api/Context.html   | 644 +++++++++++++++++++++
 .../org/apache/pulsar/functions/api/Function.html  | 242 ++++++++
 .../org/apache/pulsar/functions/api/SerDe.html     | 238 ++++++++
 .../apache/pulsar/functions/api/package-frame.html |  21 +
 .../pulsar/functions/api/package-summary.html      | 162 ++++++
 .../apache/pulsar/functions/api/package-tree.html  | 132 +++++
 .../pulsar/functions/api/utils/DefaultSerDe.html   | 308 ++++++++++
 .../functions/api/utils/IdentityFunction.html      | 284 +++++++++
 .../pulsar/functions/api/utils/JavaSerDe.html      | 308 ++++++++++
 .../pulsar/functions/api/utils/package-frame.html  |  21 +
 .../functions/api/utils/package-summary.html       | 151 +++++
 .../pulsar/functions/api/utils/package-tree.html   | 136 +++++
 content/api/pulsar-functions/overview-frame.html   |  21 +
 content/api/pulsar-functions/overview-summary.html | 155 +++++
 content/api/pulsar-functions/overview-tree.html    | 143 +++++
 content/api/pulsar-functions/package-list          |   2 +
 content/api/pulsar-functions/script.js             |  30 +
 content/api/pulsar-functions/stylesheet.css        | 574 ++++++++++++++++++
 content/contact/index.html                         |   3 +
 .../docs/latest/adaptors/KafkaWrapper/index.html   |   3 +
 .../docs/latest/adaptors/PulsarSpark/index.html    |  11 +-
 .../docs/latest/adaptors/PulsarStorm/index.html    |   9 +-
 content/docs/latest/admin-api/brokers/index.html   |   3 +
 content/docs/latest/admin-api/clusters/index.html  |   3 +
 .../docs/latest/admin-api/namespaces/index.html    |   3 +
 .../admin-api/non-persistent-topics/index.html     |   3 +
 content/docs/latest/admin-api/overview/index.html  |  13 +-
 .../latest/admin-api/partitioned-topics/index.html |   3 +
 .../docs/latest/admin-api/permissions/index.html   |   3 +
 .../latest/admin-api/persistent-topics/index.html  |   3 +
 content/docs/latest/admin-api/tenants/index.html   |   3 +
 content/docs/latest/admin/Authz/index.html         |  23 +-
 content/docs/latest/admin/Dashboard/index.html     |   3 +
 .../docs/latest/admin/GeoReplication/index.html    |   3 +
 .../docs/latest/admin/LoadDistribution/index.html  |   3 +
 content/docs/latest/admin/Proxy/index.html         |   3 +
 content/docs/latest/admin/Stats/index.html         |   3 +
 .../latest/admin/ZooKeeperBookKeeper/index.html    |   3 +
 content/docs/latest/clients/Cpp/index.html         |  11 +-
 content/docs/latest/clients/Java/index.html        |  15 +-
 content/docs/latest/clients/Python/index.html      |  11 +-
 content/docs/latest/clients/WebSocket/index.html   |  11 +-
 .../docs/latest/cookbooks/Encryption/index.html    |   9 +-
 .../latest/cookbooks/PartitionedTopics/index.html  |  17 +-
 .../latest/cookbooks/RetentionExpiry/index.html    |  17 +-
 .../cookbooks/message-deduplication/index.html     |  13 +-
 .../docs/latest/cookbooks/message-queue/index.html |  17 +-
 .../cookbooks/non-persistent-messaging/index.html  |   3 +
 .../docs/latest/deployment/Kubernetes/index.html   |   7 +-
 .../docs/latest/deployment/Monitoring/index.html   |   3 +
 .../docs/latest/deployment/aws-cluster/index.html  |   7 +-
 content/docs/latest/deployment/cluster/index.html  |   7 +-
 content/docs/latest/deployment/dcos/index.html     |   3 +
 content/docs/latest/deployment/instance/index.html |   7 +-
 content/docs/latest/functions/api/index.html       |   3 +
 .../docs/latest/functions/deployment/index.html    |   3 +
 .../docs/latest/functions/guarantees/index.html    |   3 +
 content/docs/latest/functions/metrics/index.html   |   3 +
 content/docs/latest/functions/overview/index.html  |   3 +
 .../docs/latest/functions/quickstart/index.html    |   3 +
 .../docs/latest/getting-started/Clients/index.html |   3 +
 .../ConceptsAndArchitecture/index.html             |   7 +-
 .../latest/getting-started/LocalCluster/index.html |   7 +-
 .../latest/getting-started/Pulsar-2.0/index.html   |   5 +-
 .../docs/latest/getting-started/docker/index.html  |   7 +-
 .../docs/latest/project/BinaryProtocol/index.html  |   7 +-
 content/docs/latest/project/Codebase/index.html    |   3 +
 .../latest/project/ModularLoadManager/index.html   |   3 +
 .../docs/latest/project/SimulationTools/index.html |   5 +-
 .../docs/latest/project/schema-storage/index.html  |   7 +-
 content/docs/latest/reference/CliTools/index.html  |  19 +-
 .../docs/latest/reference/Configuration/index.html |   3 +
 content/docs/latest/reference/RestApi/index.html   |   7 +-
 content/download/index.html                        |   3 +
 content/events/current-event/index.html            |   3 +
 content/index.html                                 |   3 +
 content/ja/adaptors/PulsarSpark/index.html         |  11 +-
 content/ja/adaptors/PulsarStorm/index.html         |   9 +-
 content/ja/admin/AdminInterface/index.html         |  17 +-
 content/ja/admin/Authz/index.html                  |  27 +-
 content/ja/admin/ClustersBrokers/index.html        |  11 +-
 content/ja/admin/Dashboard/index.html              |   3 +
 content/ja/admin/GeoReplication/index.html         |   3 +
 content/ja/admin/ModularLoadManager/index.html     |   3 +
 content/ja/admin/PropertiesNamespaces/index.html   |  11 +-
 content/ja/admin/Stats/index.html                  |   3 +
 content/ja/admin/ZooKeeperBookKeeper/index.html    |   3 +
 content/ja/advanced/PartitionedTopics/index.html   |  17 +-
 content/ja/advanced/RetentionExpiry/index.html     |  17 +-
 content/ja/clients/Cpp/index.html                  |  11 +-
 content/ja/clients/Java/index.html                 |  11 +-
 content/ja/clients/Python/index.html               |  11 +-
 content/ja/clients/WebSocket/index.html            |  11 +-
 content/ja/deployment/InstanceSetup/index.html     |  11 +-
 content/ja/deployment/Kubernetes/index.html        |   7 +-
 content/ja/deployment/Monitoring/index.html        |   3 +
 content/ja/getting-started/Clients/index.html      |   3 +
 .../ConceptsAndArchitecture/index.html             |   5 +-
 content/ja/getting-started/LocalCluster/index.html |   7 +-
 content/ja/project/BinaryProtocol/index.html       |   7 +-
 content/ja/project/Codebase/index.html             |   3 +
 content/ja/project/SimulationTools/index.html      |   5 +-
 content/ja/reference/CliTools/index.html           |  23 +-
 content/ja/reference/Configuration/index.html      |   3 +
 content/ja/reference/RestApi/index.html            |   7 +-
 content/javadoc/admin.html                         |  25 +
 content/javadoc/client.html                        |  25 +
 content/javadoc/pulsar-functions.html              |  26 +
 content/release-notes/index.html                   |   3 +
 content/resources/index.html                       |   3 +
 content/team/index.html                            |   3 +
 144 files changed, 5228 insertions(+), 388 deletions(-)

diff --git a/content/api/cpp/annotated.html b/content/api/cpp/annotated.html
index d40a7c5..9674cff 100644
--- a/content/api/cpp/annotated.html
+++ b/content/api/cpp/annotated.html
@@ -102,15 +102,17 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_crypto_key_reader.html" target="_self">CryptoKeyReader</a></td><td class="desc"></td></tr>
 <tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_deprecated_exception.html" target="_self">DeprecatedException</a></td><td class="desc"></td></tr>
 <tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_encryption_key_info.html" target="_self">EncryptionKeyInfo</a></td><td class="desc"></td></tr>
-<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">Message</a></td><td class="desc"></td></tr>
-<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_builder.html" target="_self">MessageBuilder</a></td><td class="desc"></td></tr>
-<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">MessageId</a></td><td class="desc"></td></tr>
-<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_routing_policy.html" target="_self">MessageRoutingPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">Producer</a></td><td class="desc"></td></tr>
-<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer_configuration.html" target="_self">ProducerConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">Reader</a></td><td class="desc"></td></tr>
-<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader_configuration.html" target="_self">ReaderConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">TopicMetadata</a></td><td class="desc"></td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger.html" target="_self">Logger</a></td><td class="desc"></td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger_factory.html" target="_self">LoggerFactory</a></td><td class="desc"></td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">Message</a></td><td class="desc"></td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_builder.html" target="_self">MessageBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">MessageId</a></td><td class="desc"></td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_routing_policy.html" target="_self">MessageRoutingPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">Producer</a></td><td class="desc"></td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer_configuration.html" target="_self">ProducerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">Reader</a></td><td class="desc"></td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader_configuration.html" target="_self">ReaderConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">TopicMetadata</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/content/api/cpp/classes.html b/content/api/cpp/classes.html
index 0d2dfed..02b34ab 100644
--- a/content/api/cpp/classes.html
+++ b/content/api/cpp/classes.html
@@ -88,30 +88,32 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">Class Index</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|& [...]
 <table class="classindex">
 <tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;A&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td></tr>
-<tr><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
-</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;L&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_T"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;T&#160;&#160;</div></td></tr></table>
 </td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_client.html">Client</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#1 [...]
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><t [...]
-</td><td valign="top"><a class="el" href="classpulsar_1_1_producer.html">Producer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#1 [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_consumer.html">Consumer</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;P&#160;&#160;</div></td></tr></table>
+</td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication.html">Authentication</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_logger.html">Logger</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&# [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_authentication_data_provider.html">AuthenticationDataProvider</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> (<a class="el" href="names [...]
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_auth_factory.html">AuthFactory</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_M"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;M&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_producer_configuration.html">ProducerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
 <tr><td rowspan="2" valign="bottom"><a name="letter_B"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;B&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_consumer_configuration.html">ConsumerConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#16 [...]
+</td><td rowspan="2" valign="bottom"><a name="letter_R"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;R&#160;&#160;</div></td></tr></table>
 </td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_crypto_key_reader.html">CryptoKeyReader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td valign="top"><a class="el" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;D&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_reader.html">Reader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
-<tr><td></td><td></td><td></td><td></td></tr>
-<tr><td></td><td valign="top"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_deprecated_exception.html">DeprecatedException</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_message.html">Message</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_broker_consumer_stats.html">BrokerConsumerStats</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_E"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;E&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_reader.html">Reader</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_C"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;C&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classpulsar_1_1_message_id.html">MessageId</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classpulsar_1_1_reader_configuration.html">ReaderConfiguration</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
+<tr><td valign="top"><a class="el" href="classpulsar_1_1_client.html">Client</a> (<a class="el" href="namespacepulsar.html">pulsar</a>)&#160;&#160;&#160;</td><td></td><td></td><td></td><td></td></tr>
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
-<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
+<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_B">B</a>&#160;|&#160;<a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_E">E</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|& [...]
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/content/api/cpp/classpulsar_1_1_client_configuration-members.html b/content/api/cpp/classpulsar_1_1_client_configuration-members.html
index 63286eb..2d3c09b 100644
--- a/content/api/cpp/classpulsar_1_1_client_configuration-members.html
+++ b/content/api/cpp/classpulsar_1_1_client_configuration-members.html
@@ -102,18 +102,20 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a4e22b6fc44b4555344ea49af9aaa2b81">getConcurrentLookupRequest</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a899019b5fc0af8ea20cc9e6f12cfc971">getIOThreads</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a529fd8eca1a762badfabbe6a379fd52e">getLogConfFilePath</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a5e0051dc9e1d106dac05038402c588f5">getMessageListenerThreads</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a6e6728b038a53f89481377e86c9e7da5">getOperationTimeoutSeconds</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>getStatsIntervalInSeconds</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getTlsTrustCertsFilePath</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>isTlsAllowInsecureConnection</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isUseTls</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0"><td class="entry"><b>operator=</b>(const ClientConfiguration &amp;) (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PulsarWrapper</b> (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a16a85a3a43b649d3e45b4e998695b723">setAuth</a>(const AuthenticationPtr &amp;authentication)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a0b9226918b57122b0ceb446657746e1c">setConcurrentLookupRequest</a>(int concurrentLookupRequest)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a5081ce72cb0eb615fc209decdea7ca7a">setIOThreads</a>(int threads)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#afffc25fc6be9f26221a206c49154b4cf">setLogConfFilePath</a>(const std::string &amp;logConfFilePath)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getLogger</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a5e0051dc9e1d106dac05038402c588f5">getMessageListenerThreads</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a6e6728b038a53f89481377e86c9e7da5">getOperationTimeoutSeconds</a>() const </td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getStatsIntervalInSeconds</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>getTlsTrustCertsFilePath</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>isTlsAllowInsecureConnection</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>isUseTls</b>() const  (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const ClientConfiguration &amp;) (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>PulsarWrapper</b> (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"><span class="mlabel">friend</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a16a85a3a43b649d3e45b4e998695b723">setAuth</a>(const AuthenticationPtr &amp;authentication)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a0b9226918b57122b0ceb446657746e1c">setConcurrentLookupRequest</a>(int concurrentLookupRequest)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a5081ce72cb0eb615fc209decdea7ca7a">setIOThreads</a>(int threads)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#afffc25fc6be9f26221a206c49154b4cf">setLogConfFilePath</a>(const std::string &amp;logConfFilePath)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#aa0dc0968fea7621352aae5a82bda7222">setLogger</a>(LoggerFactoryPtr loggerFactory)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#a1c85175f7b3694565b4bfe029c66f49f">setMessageListenerThreads</a>(int threads)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html#aebd024ea26e160328a66192e453b4a00">setOperationTimeoutSeconds</a>(int timeout)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
   <tr bgcolor="#f0f0f0"><td class="entry"><b>setStatsIntervalInSeconds</b>(const unsigned int &amp;) (defined in <a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_client_configuration.html">pulsar::ClientConfiguration</a></td><td class="entry"></td></tr>
diff --git a/content/api/cpp/classpulsar_1_1_client_configuration.html b/content/api/cpp/classpulsar_1_1_client_configuration.html
index 2e9ba45..cd5f5f2 100644
--- a/content/api/cpp/classpulsar_1_1_client_configuration.html
+++ b/content/api/cpp/classpulsar_1_1_client_configuration.html
@@ -129,6 +129,11 @@ Public Member Functions</h2></td></tr>
 <tr class="separator:afffc25fc6be9f26221a206c49154b4cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a529fd8eca1a762badfabbe6a379fd52e"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_client_configuration.html#a529fd8eca1a762badfabbe6a379fd52e">getLogConfFilePath</a> () const </td></tr>
 <tr class="separator:a529fd8eca1a762badfabbe6a379fd52e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa0dc0968fea7621352aae5a82bda7222"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_client_configuration.html#aa0dc0968fea7621352aae5a82bda7222">setLogger</a> (LoggerFactoryPtr loggerFactory)</td></tr>
+<tr class="separator:aa0dc0968fea7621352aae5a82bda7222"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc9e8373f9ffa033a8c1938998db4242"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afc9e8373f9ffa033a8c1938998db4242"></a>
+LoggerFactoryPtr&#160;</td><td class="memItemRight" valign="bottom"><b>getLogger</b> () const </td></tr>
+<tr class="separator:afc9e8373f9ffa033a8c1938998db4242"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aeb23afe3c07abf5430ccca33dc71af7d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb23afe3c07abf5430ccca33dc71af7d"></a>
 <a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>setUseTls</b> (bool useTls)</td></tr>
 <tr class="separator:aeb23afe3c07abf5430ccca33dc71af7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -349,6 +354,25 @@ class&#160;</td><td class="memItemRight" valign="bottom"><b>PulsarWrapper</b></t
   </table>
   </dd>
 </dl>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd></dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa0dc0968fea7621352aae5a82bda7222"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classpulsar_1_1_client_configuration.html">ClientConfiguration</a>&amp; pulsar::ClientConfiguration::setLogger </td>
+          <td>(</td>
+          <td class="paramtype">LoggerFactoryPtr&#160;</td>
+          <td class="paramname"><em>loggerFactory</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Configure a custom logger backend to route of Pulsar client library to a different logger implementation.</p>
+<p>By default, log messages are printed on standard output. </p>
 
 </div>
 </div>
diff --git a/content/api/cpp/classpulsar_1_1_message_routing_policy.html b/content/api/cpp/classpulsar_1_1_logger-members.html
similarity index 58%
copy from content/api/cpp/classpulsar_1_1_message_routing_policy.html
copy to content/api/cpp/classpulsar_1_1_logger-members.html
index f6de8a9..87baf27 100644
--- a/content/api/cpp/classpulsar_1_1_message_routing_policy.html
+++ b/content/api/cpp/classpulsar_1_1_logger-members.html
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.11"/>
-<title>pulsar-client-cpp: pulsar::MessageRoutingPolicy Class Reference</title>
+<title>pulsar-client-cpp: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -84,56 +84,25 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_logger.html">Logger</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="summary">
-<a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="classpulsar_1_1_message_routing_policy-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">pulsar::MessageRoutingPolicy Class Reference</div>  </div>
+<div class="title">pulsar::Logger Member List</div>  </div>
 </div><!--header-->
 <div class="contents">
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
-Public Member Functions</h2></td></tr>
-<tr class="memitem:a8071e740dd2e44ae75a91901e776c310"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">getPartition</a> (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg)</td></tr>
-<tr class="separator:a8071e740dd2e44ae75a91901e776c310"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a080148f08d302d032b0f49d68ada73de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a080148f08d302d032b0f49d68ada73de"></a>
-virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>getPartition</b> (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg, const <a class="el" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> &amp;topicMetadata)</td></tr>
-<tr class="separator:a080148f08d302d032b0f49d68ada73de"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a8071e740dd2e44ae75a91901e776c310"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual int pulsar::MessageRoutingPolicy::getPartition </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;&#160;</td>
-          <td class="paramname"><em>msg</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Use int getPartition(const Message&amp; msg, const TopicMetadata&amp; topicMetadata) </dd></dl>
 
-</div>
-</div>
-<hr/>The documentation for this class was generated from the following file:<ul>
-<li>include/pulsar/<a class="el" href="_message_routing_policy_8h_source.html">MessageRoutingPolicy.h</a></li>
-</ul>
-</div><!-- contents -->
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DEBUG</b> enum value (defined in <a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>ERROR</b> enum value (defined in <a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>INFO</b> enum value (defined in <a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>isEnabled</b>(Level level)=0 (defined in <a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Level</b> enum name (defined in <a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a></td><td class="entry"></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>log</b>(Level level, int line, const std::string &amp;message)=0 (defined in <a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>WARN</b> enum value (defined in <a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger.html">pulsar::Logger</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/content/api/cpp/classpulsar_1_1_message_routing_policy.html b/content/api/cpp/classpulsar_1_1_logger.html
similarity index 65%
copy from content/api/cpp/classpulsar_1_1_message_routing_policy.html
copy to content/api/cpp/classpulsar_1_1_logger.html
index f6de8a9..ee5effd 100644
--- a/content/api/cpp/classpulsar_1_1_message_routing_policy.html
+++ b/content/api/cpp/classpulsar_1_1_logger.html
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.11"/>
-<title>pulsar-client-cpp: pulsar::MessageRoutingPolicy Class Reference</title>
+<title>pulsar-client-cpp: pulsar::Logger Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -84,54 +84,39 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_logger.html">Logger</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="summary">
+<a href="#pub-types">Public Types</a> &#124;
 <a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="classpulsar_1_1_message_routing_policy-members.html">List of all members</a>  </div>
+<a href="classpulsar_1_1_logger-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">pulsar::MessageRoutingPolicy Class Reference</div>  </div>
+<div class="title">pulsar::Logger Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
+Public Types</h2></td></tr>
+<tr class="memitem:a4f0bd28596b09710b8ae434d2e09e02b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4f0bd28596b09710b8ae434d2e09e02b"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>Level</b> { <b>DEBUG</b> = 0, 
+<b>INFO</b> = 1, 
+<b>WARN</b> = 2, 
+<b>ERROR</b> = 3
+ }</td></tr>
+<tr class="separator:a4f0bd28596b09710b8ae434d2e09e02b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a8071e740dd2e44ae75a91901e776c310"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">getPartition</a> (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg)</td></tr>
-<tr class="separator:a8071e740dd2e44ae75a91901e776c310"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a080148f08d302d032b0f49d68ada73de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a080148f08d302d032b0f49d68ada73de"></a>
-virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>getPartition</b> (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg, const <a class="el" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> &amp;topicMetadata)</td></tr>
-<tr class="separator:a080148f08d302d032b0f49d68ada73de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d09f80fd8f35d5634af94a1305c86af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d09f80fd8f35d5634af94a1305c86af"></a>
+virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>isEnabled</b> (Level level)=0</td></tr>
+<tr class="separator:a6d09f80fd8f35d5634af94a1305c86af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a753385116eb2e4d73c075de94cc2039b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a753385116eb2e4d73c075de94cc2039b"></a>
+virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>log</b> (Level level, int line, const std::string &amp;message)=0</td></tr>
+<tr class="separator:a753385116eb2e4d73c075de94cc2039b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a8071e740dd2e44ae75a91901e776c310"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual int pulsar::MessageRoutingPolicy::getPartition </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;&#160;</td>
-          <td class="paramname"><em>msg</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Use int getPartition(const Message&amp; msg, const TopicMetadata&amp; topicMetadata) </dd></dl>
-
-</div>
-</div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>include/pulsar/<a class="el" href="_message_routing_policy_8h_source.html">MessageRoutingPolicy.h</a></li>
+<li>include/pulsar/<a class="el" href="_logger_8h_source.html">Logger.h</a></li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
diff --git a/content/api/cpp/deprecated.html b/content/api/cpp/classpulsar_1_1_logger_factory-members.html
similarity index 63%
copy from content/api/cpp/deprecated.html
copy to content/api/cpp/classpulsar_1_1_logger_factory-members.html
index 563cd37..9413463 100644
--- a/content/api/cpp/deprecated.html
+++ b/content/api/cpp/classpulsar_1_1_logger_factory-members.html
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.11"/>
-<title>pulsar-client-cpp: Deprecated List</title>
+<title>pulsar-client-cpp: Member List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -38,9 +38,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
   <div id="navrow1" class="tabs">
     <ul class="tablist">
       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
-      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
       <li><a href="namespaces.html"><span>Namespaces</span></a></li>
-      <li><a href="annotated.html"><span>Classes</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
       <li><a href="files.html"><span>Files</span></a></li>
       <li>
         <div id="MSearchBox" class="MSearchBoxInactive">
@@ -60,6 +60,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
       </li>
     </ul>
   </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
+      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
+    </ul>
+  </div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
      onmouseover="return searchBox.OnSearchSelectShow()"
@@ -74,19 +82,22 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 </iframe>
 </div>
 
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a></li>  </ul>
+</div>
 </div><!-- top -->
 <div class="header">
   <div class="headertitle">
-<div class="title">Deprecated List </div>  </div>
+<div class="title">pulsar::LoggerFactory Member List</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><dl class="reflist">
-<dt><a class="anchor" id="_deprecated000001"></a>Member <a class="el" href="classpulsar_1_1_broker_consumer_stats.html#ab58b97edf0a420f63c3dc2ed29a05485">pulsar::BrokerConsumerStats::getImpl</a>  () const </dt>
-<dd></dd>
-<dt><a class="anchor" id="_deprecated000002"></a>Member <a class="el" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">pulsar::MessageRoutingPolicy::getPartition</a>  (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg)</dt>
-<dd>Use int getPartition(const Message&amp; msg, const TopicMetadata&amp; topicMetadata) </dd>
-</dl>
-</div></div><!-- contents -->
+
+<p>This is the complete list of members for <a class="el" href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a>, including all inherited members.</p>
+<table class="directory">
+  <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>getLogger</b>(const std::string &amp;fileName)=0 (defined in <a class="el" href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr bgcolor="#f0f0f0"><td class="entry"><b>~LoggerFactory</b>() (defined in <a class="el" href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a>)</td><td class="entry"><a class="el" href="classpulsar_1_1_logger_factory.html">pulsar::LoggerFactory</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/content/api/cpp/classpulsar_1_1_message_routing_policy.html b/content/api/cpp/classpulsar_1_1_logger_factory.html
similarity index 65%
copy from content/api/cpp/classpulsar_1_1_message_routing_policy.html
copy to content/api/cpp/classpulsar_1_1_logger_factory.html
index f6de8a9..ca1910c 100644
--- a/content/api/cpp/classpulsar_1_1_message_routing_policy.html
+++ b/content/api/cpp/classpulsar_1_1_logger_factory.html
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.11"/>
-<title>pulsar-client-cpp: pulsar::MessageRoutingPolicy Class Reference</title>
+<title>pulsar-client-cpp: pulsar::LoggerFactory Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -84,54 +84,26 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacepulsar.html">pulsar</a></li><li class="navelem"><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="classpulsar_1_1_message_routing_policy-members.html">List of all members</a>  </div>
+<a href="classpulsar_1_1_logger_factory-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">pulsar::MessageRoutingPolicy Class Reference</div>  </div>
+<div class="title">pulsar::LoggerFactory Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a8071e740dd2e44ae75a91901e776c310"><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">getPartition</a> (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg)</td></tr>
-<tr class="separator:a8071e740dd2e44ae75a91901e776c310"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a080148f08d302d032b0f49d68ada73de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a080148f08d302d032b0f49d68ada73de"></a>
-virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>getPartition</b> (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg, const <a class="el" href="classpulsar_1_1_topic_metadata.html">TopicMetadata</a> &amp;topicMetadata)</td></tr>
-<tr class="separator:a080148f08d302d032b0f49d68ada73de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9fd7f68286de208bcee26239469b60ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9fd7f68286de208bcee26239469b60ac"></a>
+virtual <a class="el" href="classpulsar_1_1_logger.html">Logger</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>getLogger</b> (const std::string &amp;fileName)=0</td></tr>
+<tr class="separator:a9fd7f68286de208bcee26239469b60ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a class="anchor" id="a8071e740dd2e44ae75a91901e776c310"></a>
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">virtual int pulsar::MessageRoutingPolicy::getPartition </td>
-          <td>(</td>
-          <td class="paramtype">const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;&#160;</td>
-          <td class="paramname"><em>msg</em></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Use int getPartition(const Message&amp; msg, const TopicMetadata&amp; topicMetadata) </dd></dl>
-
-</div>
-</div>
 <hr/>The documentation for this class was generated from the following file:<ul>
-<li>include/pulsar/<a class="el" href="_message_routing_policy_8h_source.html">MessageRoutingPolicy.h</a></li>
+<li>include/pulsar/<a class="el" href="_logger_8h_source.html">Logger.h</a></li>
 </ul>
 </div><!-- contents -->
 <!-- start footer part -->
diff --git a/content/api/cpp/classpulsar_1_1_message_routing_policy.html b/content/api/cpp/classpulsar_1_1_message_routing_policy.html
index f6de8a9..c6b21f3 100644
--- a/content/api/cpp/classpulsar_1_1_message_routing_policy.html
+++ b/content/api/cpp/classpulsar_1_1_message_routing_policy.html
@@ -126,7 +126,7 @@ virtual int&#160;</td><td class="memItemRight" valign="bottom"><b>getPartition</
   </tr>
 </table>
 </div><div class="memdoc">
-<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Use int getPartition(const Message&amp; msg, const TopicMetadata&amp; topicMetadata) </dd></dl>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>Use int getPartition(const Message&amp; msg, const TopicMetadata&amp; topicMetadata) </dd></dl>
 
 </div>
 </div>
diff --git a/content/api/cpp/client__configuration_8h_source.html b/content/api/cpp/client__configuration_8h_source.html
index e7bb052..2272ed8 100644
--- a/content/api/cpp/client__configuration_8h_source.html
+++ b/content/api/cpp/client__configuration_8h_source.html
@@ -89,7 +89,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="title">client_configuration.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00023">< [...]
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/content/api/cpp/deprecated.html b/content/api/cpp/deprecated.html
index 563cd37..2fd8b26 100644
--- a/content/api/cpp/deprecated.html
+++ b/content/api/cpp/deprecated.html
@@ -83,7 +83,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <div class="textblock"><dl class="reflist">
 <dt><a class="anchor" id="_deprecated000001"></a>Member <a class="el" href="classpulsar_1_1_broker_consumer_stats.html#ab58b97edf0a420f63c3dc2ed29a05485">pulsar::BrokerConsumerStats::getImpl</a>  () const </dt>
 <dd></dd>
-<dt><a class="anchor" id="_deprecated000002"></a>Member <a class="el" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">pulsar::MessageRoutingPolicy::getPartition</a>  (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg)</dt>
+<dt><a class="anchor" id="_deprecated000002"></a>Member <a class="el" href="classpulsar_1_1_client_configuration.html#afffc25fc6be9f26221a206c49154b4cf">pulsar::ClientConfiguration::setLogConfFilePath</a>  (const std::string &amp;logConfFilePath)</dt>
+<dd></dd>
+<dt><a class="anchor" id="_deprecated000003"></a>Member <a class="el" href="classpulsar_1_1_message_routing_policy.html#a8071e740dd2e44ae75a91901e776c310">pulsar::MessageRoutingPolicy::getPartition</a>  (const <a class="el" href="classpulsar_1_1_message.html">Message</a> &amp;msg)</dt>
 <dd>Use int getPartition(const Message&amp; msg, const TopicMetadata&amp; topicMetadata) </dd>
 </dl>
 </div></div><!-- contents -->
diff --git a/content/api/cpp/files.html b/content/api/cpp/files.html
index a4e42d5..29a5e57 100644
--- a/content/api/cpp/files.html
+++ b/content/api/cpp/files.html
@@ -115,17 +115,18 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_0_0_10_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_crypto_key_reader_8h_source.html"><span class="icondoc"></span></a><b>CryptoKeyReader.h</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_11_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_deprecated_exception_8h_source.html"><span class="icondoc"></span></a><b>DeprecatedException.h</b></td><td class="desc"></td></tr>
 <tr id="row_0_0_12_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_encryption_key_info_8h_source.html"><span class="icondoc"></span></a><b>EncryptionKeyInfo.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_13_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_8h_source.html"><span class="icondoc"></span></a><b>Message.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_14_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_builder_8h_source.html"><span class="icondoc"></span></a><b>MessageBuilder.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_15_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_id_8h_source.html"><span class="icondoc"></span></a><b>MessageId.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_16_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_routing_policy_8h_source.html"><span class="icondoc"></span></a><b>MessageRoutingPolicy.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_17_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_8h_source.html"><span class="icondoc"></span></a><b>Producer.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_18_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_configuration_8h_source.html"><span class="icondoc"></span></a><b>ProducerConfiguration.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_19_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_crypto_failure_action_8h_source.html"><span class="icondoc"></span></a><b>ProducerCryptoFailureAction.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_20_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_reader_8h_source.html"><span class="icondoc"></span></a><b>Reader.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_21_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_reader_configuration_8h_source.html"><span class="icondoc"></span></a><b>ReaderConfiguration.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_22_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_result_8h_source.html"><span class="icondoc"></span></a><b>Result.h</b></td><td class="desc"></td></tr>
-<tr id="row_0_0_23_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_topic_metadata_8h_source.html"><span class="icondoc"></span></a><b>TopicMetadata.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_13_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_logger_8h_source.html"><span class="icondoc"></span></a><b>Logger.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_14_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_8h_source.html"><span class="icondoc"></span></a><b>Message.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_15_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_builder_8h_source.html"><span class="icondoc"></span></a><b>MessageBuilder.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_16_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_id_8h_source.html"><span class="icondoc"></span></a><b>MessageId.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_17_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_message_routing_policy_8h_source.html"><span class="icondoc"></span></a><b>MessageRoutingPolicy.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_18_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_8h_source.html"><span class="icondoc"></span></a><b>Producer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_19_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_configuration_8h_source.html"><span class="icondoc"></span></a><b>ProducerConfiguration.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_20_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_producer_crypto_failure_action_8h_source.html"><span class="icondoc"></span></a><b>ProducerCryptoFailureAction.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_21_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_reader_8h_source.html"><span class="icondoc"></span></a><b>Reader.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_22_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_reader_configuration_8h_source.html"><span class="icondoc"></span></a><b>ReaderConfiguration.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_23_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_result_8h_source.html"><span class="icondoc"></span></a><b>Result.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_0_24_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="_topic_metadata_8h_source.html"><span class="icondoc"></span></a><b>TopicMetadata.h</b></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/content/api/cpp/functions.html b/content/api/cpp/functions.html
index 9c7379a..f591cc7 100644
--- a/content/api/cpp/functions.html
+++ b/content/api/cpp/functions.html
@@ -379,6 +379,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>setLogConfFilePath()
 : <a class="el" href="classpulsar_1_1_client_configuration.html#afffc25fc6be9f26221a206c49154b4cf">pulsar::ClientConfiguration</a>
 </li>
+<li>setLogger()
+: <a class="el" href="classpulsar_1_1_client_configuration.html#aa0dc0968fea7621352aae5a82bda7222">pulsar::ClientConfiguration</a>
+</li>
 <li>setMaxPendingMessagesAcrossPartitions()
 : <a class="el" href="classpulsar_1_1_producer_configuration.html#a158f3061d38b91b3c9ccf81545278a61">pulsar::ProducerConfiguration</a>
 </li>
diff --git a/content/api/cpp/functions_func.html b/content/api/cpp/functions_func.html
index 28f7ee2..95022ad 100644
--- a/content/api/cpp/functions_func.html
+++ b/content/api/cpp/functions_func.html
@@ -379,6 +379,9 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <li>setLogConfFilePath()
 : <a class="el" href="classpulsar_1_1_client_configuration.html#afffc25fc6be9f26221a206c49154b4cf">pulsar::ClientConfiguration</a>
 </li>
+<li>setLogger()
+: <a class="el" href="classpulsar_1_1_client_configuration.html#aa0dc0968fea7621352aae5a82bda7222">pulsar::ClientConfiguration</a>
+</li>
 <li>setMaxPendingMessagesAcrossPartitions()
 : <a class="el" href="classpulsar_1_1_producer_configuration.html#a158f3061d38b91b3c9ccf81545278a61">pulsar::ProducerConfiguration</a>
 </li>
diff --git a/content/api/cpp/hierarchy.html b/content/api/cpp/hierarchy.html
index 7314040..f794435 100644
--- a/content/api/cpp/hierarchy.html
+++ b/content/api/cpp/hierarchy.html
@@ -100,17 +100,19 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
 <tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_consumer_configuration.html" target="_self">pulsar::ConsumerConfiguration</a></td><td class="desc"></td></tr>
 <tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_crypto_key_reader.html" target="_self">pulsar::CryptoKeyReader</a></td><td class="desc"></td></tr>
 <tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_encryption_key_info.html" target="_self">pulsar::EncryptionKeyInfo</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">pulsar::Message</a></td><td class="desc"></td></tr>
-<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_builder.html" target="_self">pulsar::MessageBuilder</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">pulsar::MessageId</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_routing_policy.html" target="_self">pulsar::MessageRoutingPolicy</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">pulsar::Producer</a></td><td class="desc"></td></tr>
-<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer_configuration.html" target="_self">pulsar::ProducerConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">pulsar::Reader</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader_configuration.html" target="_self">pulsar::ReaderConfiguration</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_18_" class="arrow" onclick="toggleFolder('18_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>runtime_error</b></td><td class="desc"></td></tr>
-<tr id="row_18_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_deprecated_exception.html" target="_self">pulsar::DeprecatedException</a></td><td class="desc"></td></tr>
-<tr id="row_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">pulsar::TopicMetadata</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger.html" target="_self">pulsar::Logger</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_logger_factory.html" target="_self">pulsar::LoggerFactory</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message.html" target="_self">pulsar::Message</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_builder.html" target="_self">pulsar::MessageBuilder</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_id.html" target="_self">pulsar::MessageId</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_message_routing_policy.html" target="_self">pulsar::MessageRoutingPolicy</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer.html" target="_self">pulsar::Producer</a></td><td class="desc"></td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_producer_configuration.html" target="_self">pulsar::ProducerConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader.html" target="_self">pulsar::Reader</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_reader_configuration.html" target="_self">pulsar::ReaderConfiguration</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_20_" class="arrow" onclick="toggleFolder('20_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>runtime_error</b></td><td class="desc"></td></tr>
+<tr id="row_20_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_deprecated_exception.html" target="_self">pulsar::DeprecatedException</a></td><td class="desc"></td></tr>
+<tr id="row_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classpulsar_1_1_topic_metadata.html" target="_self">pulsar::TopicMetadata</a></td><td class="desc"></td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
diff --git a/content/api/cpp/namespacepulsar.html b/content/api/cpp/namespacepulsar.html
index 73ec493..cfb6560 100644
--- a/content/api/cpp/namespacepulsar.html
+++ b/content/api/cpp/namespacepulsar.html
@@ -116,6 +116,10 @@ Classes</h2></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_encryption_key_info.html">EncryptionKeyInfo</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_logger.html">Logger</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message.html">Message</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpulsar_1_1_message_builder.html">MessageBuilder</a></td></tr>
@@ -175,6 +179,9 @@ typedef boost::shared_ptr&lt; <a class="el" href="classpulsar_1_1_crypto_key_rea
 <tr class="memitem:abec36d8aea08d253f5e0039a574f98ee"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abec36d8aea08d253f5e0039a574f98ee"></a>
 typedef boost::shared_ptr&lt; EncryptionKeyInfoImpl &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>EncryptionKeyInfoImplPtr</b></td></tr>
 <tr class="separator:abec36d8aea08d253f5e0039a574f98ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e71878163788d99d0b12ca8c39b9d89"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6e71878163788d99d0b12ca8c39b9d89"></a>
+typedef boost::shared_ptr&lt; <a class="el" href="classpulsar_1_1_logger_factory.html">LoggerFactory</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>LoggerFactoryPtr</b></td></tr>
+<tr class="separator:a6e71878163788d99d0b12ca8c39b9d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a83140f6753ca73111752f7f445f4eaa8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83140f6753ca73111752f7f445f4eaa8"></a>
 typedef boost::shared_ptr&lt; <a class="el" href="classpulsar_1_1_message_routing_policy.html">MessageRoutingPolicy</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>MessageRoutingPolicyPtr</b></td></tr>
 <tr class="separator:a83140f6753ca73111752f7f445f4eaa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
diff --git a/content/api/cpp/search/all_8.js b/content/api/cpp/search/all_8.js
index a572268..0d71e6a 100644
--- a/content/api/cpp/search/all_8.js
+++ b/content/api/cpp/search/all_8.js
@@ -1,4 +1,6 @@
 var searchData=
 [
-  ['latest',['latest',['../classpulsar_1_1_message_id.html#a6c5231ab632b49863c4a227e9cff353d',1,'pulsar::MessageId']]]
+  ['latest',['latest',['../classpulsar_1_1_message_id.html#a6c5231ab632b49863c4a227e9cff353d',1,'pulsar::MessageId']]],
+  ['logger',['Logger',['../classpulsar_1_1_logger.html',1,'pulsar']]],
+  ['loggerfactory',['LoggerFactory',['../classpulsar_1_1_logger_factory.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/all_c.js b/content/api/cpp/search/all_c.js
index 66b99ec..36d450a 100644
--- a/content/api/cpp/search/all_c.js
+++ b/content/api/cpp/search/all_c.js
@@ -12,6 +12,7 @@ var searchData=
   ['seteventtimestamp',['setEventTimestamp',['../classpulsar_1_1_message_builder.html#a445ac7f5cac5282ef8248df399995338',1,'pulsar::MessageBuilder']]],
   ['setiothreads',['setIOThreads',['../classpulsar_1_1_client_configuration.html#a5081ce72cb0eb615fc209decdea7ca7a',1,'pulsar::ClientConfiguration']]],
   ['setlogconffilepath',['setLogConfFilePath',['../classpulsar_1_1_client_configuration.html#afffc25fc6be9f26221a206c49154b4cf',1,'pulsar::ClientConfiguration']]],
+  ['setlogger',['setLogger',['../classpulsar_1_1_client_configuration.html#aa0dc0968fea7621352aae5a82bda7222',1,'pulsar::ClientConfiguration']]],
   ['setmaxpendingmessagesacrosspartitions',['setMaxPendingMessagesAcrossPartitions',['../classpulsar_1_1_producer_configuration.html#a158f3061d38b91b3c9ccf81545278a61',1,'pulsar::ProducerConfiguration']]],
   ['setmaxtotalreceiverqueuesizeacrosspartitions',['setMaxTotalReceiverQueueSizeAcrossPartitions',['../classpulsar_1_1_consumer_configuration.html#a9c07888abe996b80c2fd168278a24de3',1,'pulsar::ConsumerConfiguration']]],
   ['setmessagelistener',['setMessageListener',['../classpulsar_1_1_consumer_configuration.html#aeb4301821f8f471c6c542f486df9639d',1,'pulsar::ConsumerConfiguration']]],
diff --git a/content/api/cpp/search/classes_5.js b/content/api/cpp/search/classes_5.js
index a2bb3a5..073d5a0 100644
--- a/content/api/cpp/search/classes_5.js
+++ b/content/api/cpp/search/classes_5.js
@@ -1,7 +1,5 @@
 var searchData=
 [
-  ['message',['Message',['../classpulsar_1_1_message.html',1,'pulsar']]],
-  ['messagebuilder',['MessageBuilder',['../classpulsar_1_1_message_builder.html',1,'pulsar']]],
-  ['messageid',['MessageId',['../classpulsar_1_1_message_id.html',1,'pulsar']]],
-  ['messageroutingpolicy',['MessageRoutingPolicy',['../classpulsar_1_1_message_routing_policy.html',1,'pulsar']]]
+  ['logger',['Logger',['../classpulsar_1_1_logger.html',1,'pulsar']]],
+  ['loggerfactory',['LoggerFactory',['../classpulsar_1_1_logger_factory.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_6.js b/content/api/cpp/search/classes_6.js
index 8593cf4..a2bb3a5 100644
--- a/content/api/cpp/search/classes_6.js
+++ b/content/api/cpp/search/classes_6.js
@@ -1,5 +1,7 @@
 var searchData=
 [
-  ['producer',['Producer',['../classpulsar_1_1_producer.html',1,'pulsar']]],
-  ['producerconfiguration',['ProducerConfiguration',['../classpulsar_1_1_producer_configuration.html',1,'pulsar']]]
+  ['message',['Message',['../classpulsar_1_1_message.html',1,'pulsar']]],
+  ['messagebuilder',['MessageBuilder',['../classpulsar_1_1_message_builder.html',1,'pulsar']]],
+  ['messageid',['MessageId',['../classpulsar_1_1_message_id.html',1,'pulsar']]],
+  ['messageroutingpolicy',['MessageRoutingPolicy',['../classpulsar_1_1_message_routing_policy.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_7.js b/content/api/cpp/search/classes_7.js
index 9e58fde..8593cf4 100644
--- a/content/api/cpp/search/classes_7.js
+++ b/content/api/cpp/search/classes_7.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['reader',['Reader',['../classpulsar_1_1_reader.html',1,'pulsar']]],
-  ['readerconfiguration',['ReaderConfiguration',['../classpulsar_1_1_reader_configuration.html',1,'pulsar']]]
+  ['producer',['Producer',['../classpulsar_1_1_producer.html',1,'pulsar']]],
+  ['producerconfiguration',['ProducerConfiguration',['../classpulsar_1_1_producer_configuration.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_8.js b/content/api/cpp/search/classes_8.js
index 4c7c376..9e58fde 100644
--- a/content/api/cpp/search/classes_8.js
+++ b/content/api/cpp/search/classes_8.js
@@ -1,4 +1,5 @@
 var searchData=
 [
-  ['topicmetadata',['TopicMetadata',['../classpulsar_1_1_topic_metadata.html',1,'pulsar']]]
+  ['reader',['Reader',['../classpulsar_1_1_reader.html',1,'pulsar']]],
+  ['readerconfiguration',['ReaderConfiguration',['../classpulsar_1_1_reader_configuration.html',1,'pulsar']]]
 ];
diff --git a/content/api/cpp/search/classes_9.html b/content/api/cpp/search/classes_9.html
new file mode 100644
index 0000000..188dbb3
--- /dev/null
+++ b/content/api/cpp/search/classes_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.11"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/content/api/cpp/search/classes_8.js b/content/api/cpp/search/classes_9.js
similarity index 100%
copy from content/api/cpp/search/classes_8.js
copy to content/api/cpp/search/classes_9.js
diff --git a/content/api/cpp/search/functions_b.js b/content/api/cpp/search/functions_b.js
index 66b99ec..36d450a 100644
--- a/content/api/cpp/search/functions_b.js
+++ b/content/api/cpp/search/functions_b.js
@@ -12,6 +12,7 @@ var searchData=
   ['seteventtimestamp',['setEventTimestamp',['../classpulsar_1_1_message_builder.html#a445ac7f5cac5282ef8248df399995338',1,'pulsar::MessageBuilder']]],
   ['setiothreads',['setIOThreads',['../classpulsar_1_1_client_configuration.html#a5081ce72cb0eb615fc209decdea7ca7a',1,'pulsar::ClientConfiguration']]],
   ['setlogconffilepath',['setLogConfFilePath',['../classpulsar_1_1_client_configuration.html#afffc25fc6be9f26221a206c49154b4cf',1,'pulsar::ClientConfiguration']]],
+  ['setlogger',['setLogger',['../classpulsar_1_1_client_configuration.html#aa0dc0968fea7621352aae5a82bda7222',1,'pulsar::ClientConfiguration']]],
   ['setmaxpendingmessagesacrosspartitions',['setMaxPendingMessagesAcrossPartitions',['../classpulsar_1_1_producer_configuration.html#a158f3061d38b91b3c9ccf81545278a61',1,'pulsar::ProducerConfiguration']]],
   ['setmaxtotalreceiverqueuesizeacrosspartitions',['setMaxTotalReceiverQueueSizeAcrossPartitions',['../classpulsar_1_1_consumer_configuration.html#a9c07888abe996b80c2fd168278a24de3',1,'pulsar::ConsumerConfiguration']]],
   ['setmessagelistener',['setMessageListener',['../classpulsar_1_1_consumer_configuration.html#aeb4301821f8f471c6c542f486df9639d',1,'pulsar::ConsumerConfiguration']]],
diff --git a/content/api/cpp/search/searchdata.js b/content/api/cpp/search/searchdata.js
index aab787d..61fd6a9 100644
--- a/content/api/cpp/search/searchdata.js
+++ b/content/api/cpp/search/searchdata.js
@@ -1,7 +1,7 @@
 var indexSectionsWithContent =
 {
   0: "abcdeghilmprstu",
-  1: "abcdemprt",
+  1: "abcdelmprt",
   2: "p",
   3: "abcdeghilprsu",
   4: "mr",
diff --git a/content/api/pulsar-functions/allclasses-frame.html b/content/api/pulsar-functions/allclasses-frame.html
new file mode 100644
index 0000000..9686a5d
--- /dev/null
+++ b/content/api/pulsar-functions/allclasses-frame.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>All Classes (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api" target="classFrame"><span class="interfaceName">Context</span></a></li>
+<li><a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils" target="classFrame">DefaultSerDe</a></li>
+<li><a href="org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api" target="classFrame"><span class="interfaceName">Function</span></a></li>
+<li><a href="org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils" target="classFrame">IdentityFunction</a></li>
+<li><a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils" target="classFrame">JavaSerDe</a></li>
+<li><a href="org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api" target="classFrame"><span class="interfaceName">SerDe</span></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/content/api/pulsar-functions/allclasses-noframe.html b/content/api/pulsar-functions/allclasses-noframe.html
new file mode 100644
index 0000000..3b4e7d3
--- /dev/null
+++ b/content/api/pulsar-functions/allclasses-noframe.html
@@ -0,0 +1,23 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>All Classes (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api"><span class="interfaceName">Context</span></a></li>
+<li><a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils">DefaultSerDe</a></li>
+<li><a href="org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api"><span class="interfaceName">Function</span></a></li>
+<li><a href="org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils">IdentityFunction</a></li>
+<li><a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a></li>
+<li><a href="org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api"><span class="interfaceName">SerDe</span></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/content/api/pulsar-functions/constant-values.html b/content/api/pulsar-functions/constant-values.html
new file mode 100644
index 0000000..0c5a190
--- /dev/null
+++ b/content/api/pulsar-functions/constant-values.html
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Constant Field Values (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/deprecated-list.html b/content/api/pulsar-functions/deprecated-list.html
new file mode 100644
index 0000000..7c16405
--- /dev/null
+++ b/content/api/pulsar-functions/deprecated-list.html
@@ -0,0 +1,121 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Deprecated List (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/help-doc.html b/content/api/pulsar-functions/help-doc.html
new file mode 100644
index 0000000..f3fdaf6
--- /dev/null
+++ b/content/api/pulsar-functions/help-doc.html
@@ -0,0 +1,222 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>API Help (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/index-all.html b/content/api/pulsar-functions/index-all.html
new file mode 100644
index 0000000..41c517e
--- /dev/null
+++ b/content/api/pulsar-functions/index-all.html
@@ -0,0 +1,321 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Index (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a name="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#ack-byte:A-">ack(byte[])</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">By default acknowledgement management is done transparently by Pulsar Functions framework.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/IdentityFunction.html#apply-java.lang.Object-">apply(Object)</a></span> - Method in class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils">IdentityFunction</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Context</span></a> - Interface in <a href="org/apache/pulsar/functions/api/package-summary.html">org.apache.pulsar.functions.api</a></dt>
+<dd>
+<div class="block">Context provides contextual information to the executing function.</div>
+</dd>
+</dl>
+<a name="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">DefaultSerDe</span></a> - Class in <a href="org/apache/pulsar/functions/api/utils/package-summary.html">org.apache.pulsar.functions.api.utils</a></dt>
+<dd>
+<div class="block">Simplest form of SerDe.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html#DefaultSerDe-java.lang.Class-">DefaultSerDe(Class)</a></span> - Constructor for class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils">DefaultSerDe</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/SerDe.html#deserialize-byte:A-">deserialize(byte[])</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html#deserialize-byte:A-">deserialize(byte[])</a></span> - Method in class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils">DefaultSerDe</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html#deserialize-byte:A-">deserialize(byte[])</a></span> - Method in class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><a href="org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Function</span></a>&lt;<a href="org/apache/pulsar/functions/api/Function.html" title="type parameter in Function">I</a>,<a href="org/apache/pulsar/functions/api/Function.html" title="type parameter in Function">O</a>&gt; - Interface in <a href="org/apache/pulsar/functions/api/package-summary.html">org.apache.pulsar.functions.api</a></dt>
+<dd>
+<div class="block">This is the core interface of the function api.</div>
+</dd>
+</dl>
+<a name="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getCurrentMessageTopicName--">getCurrentMessageTopicName()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">The input topic that the message currently being processed belongs to</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getFunctionId--">getFunctionId()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">The id of the function that we are executing</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getFunctionName--">getFunctionName()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">The name of the function that we are executing</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getFunctionVersion--">getFunctionVersion()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">The version of the function that we are executing</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getInputTopics--">getInputTopics()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Get a list of all input topics</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getInstanceId--">getInstanceId()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">The id of the instance that invokes this function.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getLogger--">getLogger()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">The logger object that can be used to log in a function</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getMessageId--">getMessageId()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Returns the messageId of the message that we are processing
+ This messageId is a stringified version of the actual MessageId</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getNamespace--">getNamespace()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">The namespace this function belongs to</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getOutputSerdeClassName--">getOutputSerdeClassName()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Get output Serde class</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getOutputTopic--">getOutputTopic()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Get the output topic of the function</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getTenant--">getTenant()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">The tenant this function belongs to</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getUserConfigMap--">getUserConfigMap()</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Get a map of all user-defined key/value configs for the function</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getUserConfigValue-java.lang.String-">getUserConfigValue(String)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Get any user-defined key/value</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getUserConfigValueOrDefault-java.lang.String-java.lang.Object-">getUserConfigValueOrDefault(String, Object)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Get any user-defined key/value or a default value if none is present</div>
+</dd>
+</dl>
+<a name="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><a href="org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">IdentityFunction</span></a> - Class in <a href="org/apache/pulsar/functions/api/utils/package-summary.html">org.apache.pulsar.functions.api.utils</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/IdentityFunction.html#IdentityFunction--">IdentityFunction()</a></span> - Constructor for class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils">IdentityFunction</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#incrCounter-java.lang.String-long-">incrCounter(String, long)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Increment the builtin distributed counter refered by key</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html#IsSupportedType-java.lang.Class-">IsSupportedType(Class)</a></span> - Static method in class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils">DefaultSerDe</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:J">
+<!--   -->
+</a>
+<h2 class="title">J</h2>
+<dl>
+<dt><a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">JavaSerDe</span></a> - Class in <a href="org/apache/pulsar/functions/api/utils/package-summary.html">org.apache.pulsar.functions.api.utils</a></dt>
+<dd>
+<div class="block">Java Serialization based SerDe</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html#JavaSerDe--">JavaSerDe()</a></span> - Constructor for class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html#of--">of()</a></span> - Static method in class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/pulsar/functions/api/package-summary.html">org.apache.pulsar.functions.api</a> - package org.apache.pulsar.functions.api</dt>
+<dd>
+<div class="block">Provides a simple model for enabling lightweight computation on Apache Pulsar.</div>
+</dd>
+<dt><a href="org/apache/pulsar/functions/api/utils/package-summary.html">org.apache.pulsar.functions.api.utils</a> - package org.apache.pulsar.functions.api.utils</dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Function.html#process-I-org.apache.pulsar.functions.api.Context-">process(I, Context)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api">Function</a></dt>
+<dd>
+<div class="block">Process the input.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#publish-java.lang.String-O-java.lang.String-">publish(String, O, String)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Publish an object using serDe for serializing to the topic</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#publish-java.lang.String-O-">publish(String, O)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Publish an object using DefaultSerDe for serializing to the topic</div>
+</dd>
+</dl>
+<a name="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#recordMetric-java.lang.String-double-">recordMetric(String, double)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Record a user defined metric</div>
+</dd>
+</dl>
+<a name="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><a href="org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">SerDe</span></a>&lt;<a href="org/apache/pulsar/functions/api/SerDe.html" title="type parameter in SerDe">T</a>&gt; - Interface in <a href="org/apache/pulsar/functions/api/package-summary.html">org.apache.pulsar.functions.api</a></dt>
+<dd>
+<div class="block">An interface for serializer/deserializer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/SerDe.html#serialize-T-">serialize(T)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html#serialize-java.lang.Object-">serialize(Object)</a></span> - Method in class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils">DefaultSerDe</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html#serialize-java.lang.Object-">serialize(Object)</a></span> - Method in class org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/index.html b/content/api/pulsar-functions/index.html
new file mode 100644
index 0000000..ff28246
--- /dev/null
+++ b/content/api/pulsar-functions/index.html
@@ -0,0 +1,75 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Pulsar Functions Java SDK</title>
+<script type="text/javascript">
+    tmpTargetPage = "" + window.location.search;
+    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
+        tmpTargetPage = tmpTargetPage.substring(1);
+    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
+        tmpTargetPage = "undefined";
+    targetPage = tmpTargetPage;
+    function validURL(url) {
+        try {
+            url = decodeURIComponent(url);
+        }
+        catch (error) {
+            return false;
+        }
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_' ||
+                    ch.charCodeAt(0) > 127) {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
+<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/Context.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/Context.html
new file mode 100644
index 0000000..ac40a01
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/Context.html
@@ -0,0 +1,644 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Context (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Context (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/Context.html" target="_top">Frames</a></li>
+<li><a href="Context.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.pulsar.functions.api</div>
+<h2 title="Interface Context" class="title">Interface Context</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Context</span></pre>
+<div class="block">Context provides contextual information to the executing function.
+ Features like which message id we are handling, whats the topic name of the
+ message, what are our operating constraints, etc can be accessed by the
+ executing function</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>CompletableFuture&lt;Void&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#ack-byte:A-">ack</a></span>(byte[]&nbsp;messageId)</code>
+<div class="block">By default acknowledgement management is done transparently by Pulsar Functions framework.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getCurrentMessageTopicName--">getCurrentMessageTopicName</a></span>()</code>
+<div class="block">The input topic that the message currently being processed belongs to</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getFunctionId--">getFunctionId</a></span>()</code>
+<div class="block">The id of the function that we are executing</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getFunctionName--">getFunctionName</a></span>()</code>
+<div class="block">The name of the function that we are executing</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getFunctionVersion--">getFunctionVersion</a></span>()</code>
+<div class="block">The version of the function that we are executing</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>Collection&lt;String&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getInputTopics--">getInputTopics</a></span>()</code>
+<div class="block">Get a list of all input topics</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getInstanceId--">getInstanceId</a></span>()</code>
+<div class="block">The id of the instance that invokes this function.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>Logger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getLogger--">getLogger</a></span>()</code>
+<div class="block">The logger object that can be used to log in a function</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getMessageId--">getMessageId</a></span>()</code>
+<div class="block">Returns the messageId of the message that we are processing
+ This messageId is a stringified version of the actual MessageId</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getNamespace--">getNamespace</a></span>()</code>
+<div class="block">The namespace this function belongs to</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getOutputSerdeClassName--">getOutputSerdeClassName</a></span>()</code>
+<div class="block">Get output Serde class</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getOutputTopic--">getOutputTopic</a></span>()</code>
+<div class="block">Get the output topic of the function</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getTenant--">getTenant</a></span>()</code>
+<div class="block">The tenant this function belongs to</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>Map&lt;String,Object&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getUserConfigMap--">getUserConfigMap</a></span>()</code>
+<div class="block">Get a map of all user-defined key/value configs for the function</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>Optional&lt;Object&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getUserConfigValue-java.lang.String-">getUserConfigValue</a></span>(String&nbsp;key)</code>
+<div class="block">Get any user-defined key/value</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>Object</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getUserConfigValueOrDefault-java.lang.String-java.lang.Object-">getUserConfigValueOrDefault</a></span>(String&nbsp;key,
+                           Object&nbsp;defaultValue)</code>
+<div class="block">Get any user-defined key/value or a default value if none is present</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#incrCounter-java.lang.String-long-">incrCounter</a></span>(String&nbsp;key,
+           long&nbsp;amount)</code>
+<div class="block">Increment the builtin distributed counter refered by key</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>&lt;O&gt;&nbsp;CompletableFuture&lt;Void&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#publish-java.lang.String-O-">publish</a></span>(String&nbsp;topicName,
+       O&nbsp;object)</code>
+<div class="block">Publish an object using DefaultSerDe for serializing to the topic</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>&lt;O&gt;&nbsp;CompletableFuture&lt;Void&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#publish-java.lang.String-O-java.lang.String-">publish</a></span>(String&nbsp;topicName,
+       O&nbsp;object,
+       String&nbsp;serDeClassName)</code>
+<div class="block">Publish an object using serDe for serializing to the topic</div>
+</td>
+</tr>
+<tr id="i19" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#recordMetric-java.lang.String-double-">recordMetric</a></span>(String&nbsp;metricName,
+            double&nbsp;value)</code>
+<div class="block">Record a user defined metric</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getMessageId--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMessageId</h4>
+<pre>byte[]&nbsp;getMessageId()</pre>
+<div class="block">Returns the messageId of the message that we are processing
+ This messageId is a stringified version of the actual MessageId</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the messageId</dd>
+</dl>
+</li>
+</ul>
+<a name="getCurrentMessageTopicName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCurrentMessageTopicName</h4>
+<pre>String&nbsp;getCurrentMessageTopicName()</pre>
+<div class="block">The input topic that the message currently being processed belongs to</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The input topic name</dd>
+</dl>
+</li>
+</ul>
+<a name="getInputTopics--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInputTopics</h4>
+<pre>Collection&lt;String&gt;&nbsp;getInputTopics()</pre>
+<div class="block">Get a list of all input topics</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>a list of all input topics</dd>
+</dl>
+</li>
+</ul>
+<a name="getOutputTopic--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputTopic</h4>
+<pre>String&nbsp;getOutputTopic()</pre>
+<div class="block">Get the output topic of the function</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>output topic name</dd>
+</dl>
+</li>
+</ul>
+<a name="getOutputSerdeClassName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOutputSerdeClassName</h4>
+<pre>String&nbsp;getOutputSerdeClassName()</pre>
+<div class="block">Get output Serde class</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>output serde class</dd>
+</dl>
+</li>
+</ul>
+<a name="getTenant--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTenant</h4>
+<pre>String&nbsp;getTenant()</pre>
+<div class="block">The tenant this function belongs to</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the tenant this function belongs to</dd>
+</dl>
+</li>
+</ul>
+<a name="getNamespace--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNamespace</h4>
+<pre>String&nbsp;getNamespace()</pre>
+<div class="block">The namespace this function belongs to</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the namespace this function belongs to</dd>
+</dl>
+</li>
+</ul>
+<a name="getFunctionName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctionName</h4>
+<pre>String&nbsp;getFunctionName()</pre>
+<div class="block">The name of the function that we are executing</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Function name</dd>
+</dl>
+</li>
+</ul>
+<a name="getFunctionId--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctionId</h4>
+<pre>String&nbsp;getFunctionId()</pre>
+<div class="block">The id of the function that we are executing</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The function id</dd>
+</dl>
+</li>
+</ul>
+<a name="getInstanceId--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getInstanceId</h4>
+<pre>String&nbsp;getInstanceId()</pre>
+<div class="block">The id of the instance that invokes this function.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the instance id</dd>
+</dl>
+</li>
+</ul>
+<a name="getFunctionVersion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFunctionVersion</h4>
+<pre>String&nbsp;getFunctionVersion()</pre>
+<div class="block">The version of the function that we are executing</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The version id</dd>
+</dl>
+</li>
+</ul>
+<a name="getLogger--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLogger</h4>
+<pre>Logger&nbsp;getLogger()</pre>
+<div class="block">The logger object that can be used to log in a function</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the logger object</dd>
+</dl>
+</li>
+</ul>
+<a name="incrCounter-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incrCounter</h4>
+<pre>void&nbsp;incrCounter(String&nbsp;key,
+                 long&nbsp;amount)</pre>
+<div class="block">Increment the builtin distributed counter refered by key</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The name of the key</dd>
+<dd><code>amount</code> - The amount to be incremented</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserConfigMap--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserConfigMap</h4>
+<pre>Map&lt;String,Object&gt;&nbsp;getUserConfigMap()</pre>
+<div class="block">Get a map of all user-defined key/value configs for the function</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The full map of user-defined config values</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserConfigValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserConfigValue</h4>
+<pre>Optional&lt;Object&gt;&nbsp;getUserConfigValue(String&nbsp;key)</pre>
+<div class="block">Get any user-defined key/value</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The key</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Optional value specified by the user for that key.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserConfigValueOrDefault-java.lang.String-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserConfigValueOrDefault</h4>
+<pre>Object&nbsp;getUserConfigValueOrDefault(String&nbsp;key,
+                                   Object&nbsp;defaultValue)</pre>
+<div class="block">Get any user-defined key/value or a default value if none is present</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - </dd>
+<dd><code>defaultValue</code> - </dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Either the user config value associated with a given key or a supplied default value</dd>
+</dl>
+</li>
+</ul>
+<a name="recordMetric-java.lang.String-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>recordMetric</h4>
+<pre>void&nbsp;recordMetric(String&nbsp;metricName,
+                  double&nbsp;value)</pre>
+<div class="block">Record a user defined metric</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>metricName</code> - The name of the metric</dd>
+<dd><code>value</code> - The value of the metric</dd>
+</dl>
+</li>
+</ul>
+<a name="publish-java.lang.String-java.lang.Object-java.lang.String-">
+<!--   -->
+</a><a name="publish-java.lang.String-O-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>publish</h4>
+<pre>&lt;O&gt;&nbsp;CompletableFuture&lt;Void&gt;&nbsp;publish(String&nbsp;topicName,
+                                    O&nbsp;object,
+                                    String&nbsp;serDeClassName)</pre>
+<div class="block">Publish an object using serDe for serializing to the topic</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>topicName</code> - The name of the topic for publishing</dd>
+<dd><code>object</code> - The object that needs to be published</dd>
+<dd><code>serDeClassName</code> - The class name of the class that needs to be used to serialize the object before publishing</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A future that completes when the framework is done publishing the message</dd>
+</dl>
+</li>
+</ul>
+<a name="publish-java.lang.String-java.lang.Object-">
+<!--   -->
+</a><a name="publish-java.lang.String-O-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>publish</h4>
+<pre>&lt;O&gt;&nbsp;CompletableFuture&lt;Void&gt;&nbsp;publish(String&nbsp;topicName,
+                                    O&nbsp;object)</pre>
+<div class="block">Publish an object using DefaultSerDe for serializing to the topic</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>topicName</code> - The name of the topic for publishing</dd>
+<dd><code>object</code> - The object that needs to be published</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A future that completes when the framework is done publishing the message</dd>
+</dl>
+</li>
+</ul>
+<a name="ack-byte:A-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ack</h4>
+<pre>CompletableFuture&lt;Void&gt;&nbsp;ack(byte[]&nbsp;messageId)</pre>
+<div class="block">By default acknowledgement management is done transparently by Pulsar Functions framework.
+ However users can disable that and do ack management by themselves by using this API.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>messageId</code> - The messageId that needs to be acknowledged</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A future that completes when the framework is done acking the message</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/Context.html" target="_top">Frames</a></li>
+<li><a href="Context.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/Function.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/Function.html
new file mode 100644
index 0000000..5f8609c
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/Function.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Function (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Function (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/Function.html" target="_top">Frames</a></li>
+<li><a href="Function.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.pulsar.functions.api</div>
+<h2 title="Interface Function" class="title">Interface Function&lt;I,O&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Functional Interface:</dt>
+<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
+</dl>
+<hr>
+<br>
+<pre>@FunctionalInterface
+public interface <span class="typeNameLabel">Function&lt;I,O&gt;</span></pre>
+<div class="block">This is the core interface of the function api. The process is called
+ for every message of the input topic of the function. The incoming input bytes
+ are converted to the input type I for simple Java types(String, Integer, Boolean,
+ Map, and List types) and for org.Json type. If this serialization approach does not
+ meet your needs, you can use the byte stream handler defined in RawRequestHandler.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="type parameter in Function">O</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Function.html#process-I-org.apache.pulsar.functions.api.Context-">process</a></span>(<a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="type parameter in Function">I</a>&nbsp;input,
+       <a href="../../../../../org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a>&nbsp;context)</code>
+<div class="block">Process the input.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="process-java.lang.Object-org.apache.pulsar.functions.api.Context-">
+<!--   -->
+</a><a name="process-I-org.apache.pulsar.functions.api.Context-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>process</h4>
+<pre><a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="type parameter in Function">O</a>&nbsp;process(<a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="type parameter in Function">I</a>&nbsp;input,
+          <a href="../../../../../org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a>&nbsp;context)
+   throws Exception</pre>
+<div class="block">Process the input.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the output</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>Exception</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/Function.html" target="_top">Frames</a></li>
+<li><a href="Function.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/SerDe.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/SerDe.html
new file mode 100644
index 0000000..3753a10
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/SerDe.html
@@ -0,0 +1,238 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>SerDe (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SerDe (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/SerDe.html" target="_top">Frames</a></li>
+<li><a href="SerDe.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.pulsar.functions.api</div>
+<h2 title="Interface SerDe" class="title">Interface SerDe&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils">DefaultSerDe</a>, <a href="../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">SerDe&lt;T&gt;</span></pre>
+<div class="block">An interface for serializer/deserializer.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/pulsar/functions/api/SerDe.html" title="type parameter in SerDe">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/SerDe.html#deserialize-byte:A-">deserialize</a></span>(byte[]&nbsp;input)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/SerDe.html#serialize-T-">serialize</a></span>(<a href="../../../../../org/apache/pulsar/functions/api/SerDe.html" title="type parameter in SerDe">T</a>&nbsp;input)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="deserialize-byte:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deserialize</h4>
+<pre><a href="../../../../../org/apache/pulsar/functions/api/SerDe.html" title="type parameter in SerDe">T</a>&nbsp;deserialize(byte[]&nbsp;input)</pre>
+</li>
+</ul>
+<a name="serialize-java.lang.Object-">
+<!--   -->
+</a><a name="serialize-T-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>serialize</h4>
+<pre>byte[]&nbsp;serialize(<a href="../../../../../org/apache/pulsar/functions/api/SerDe.html" title="type parameter in SerDe">T</a>&nbsp;input)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/SerDe.html" target="_top">Frames</a></li>
+<li><a href="SerDe.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-frame.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-frame.html
new file mode 100644
index 0000000..441ca3d
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-frame.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.pulsar.functions.api (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/pulsar/functions/api/package-summary.html" target="classFrame">org.apache.pulsar.functions.api</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Context.html" title="interface in org.apache.pulsar.functions.api" target="classFrame"><span class="interfaceName">Context</span></a></li>
+<li><a href="Function.html" title="interface in org.apache.pulsar.functions.api" target="classFrame"><span class="interfaceName">Function</span></a></li>
+<li><a href="SerDe.html" title="interface in org.apache.pulsar.functions.api" target="classFrame"><span class="interfaceName">SerDe</span></a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-summary.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-summary.html
new file mode 100644
index 0000000..7f1b2cc
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-summary.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.pulsar.functions.api (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.pulsar.functions.api (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../../../org/apache/pulsar/functions/api/utils/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.pulsar.functions.api</h1>
+<div class="docSummary">
+<div class="block">Provides a simple model for enabling lightweight computation on Apache Pulsar.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></td>
+<td class="colLast">
+<div class="block">Context provides contextual information to the executing function.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api">Function</a>&lt;I,O&gt;</td>
+<td class="colLast">
+<div class="block">This is the core interface of the function api.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">An interface for serializer/deserializer.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.pulsar.functions.api Description">Package org.apache.pulsar.functions.api Description</h2>
+<div class="block">Provides a simple model for enabling lightweight computation on Apache Pulsar.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../../../org/apache/pulsar/functions/api/utils/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-tree.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-tree.html
new file mode 100644
index 0000000..e675ba6
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/package-tree.html
@@ -0,0 +1,132 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.pulsar.functions.api Class Hierarchy (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.pulsar.functions.api Class Hierarchy (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../../../org/apache/pulsar/functions/api/utils/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.pulsar.functions.api</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.pulsar.functions.api.<a href="../../../../../org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Context</span></a></li>
+<li type="circle">org.apache.pulsar.functions.api.<a href="../../../../../org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Function</span></a>&lt;I,O&gt;</li>
+<li type="circle">org.apache.pulsar.functions.api.<a href="../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">SerDe</span></a>&lt;T&gt;</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../../../org/apache/pulsar/functions/api/utils/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/pulsar/functions/api/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/DefaultSerDe.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/DefaultSerDe.html
new file mode 100644
index 0000000..353d439
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/DefaultSerDe.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>DefaultSerDe (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DefaultSerDe (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/DefaultSerDe.html" target="_top">Frames</a></li>
+<li><a href="DefaultSerDe.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.pulsar.functions.api.utils</div>
+<h2 title="Class DefaultSerDe" class="title">Class DefaultSerDe</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.pulsar.functions.api.utils.DefaultSerDe</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;Object&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DefaultSerDe</span>
+extends Object
+implements <a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;Object&gt;</pre>
+<div class="block">Simplest form of SerDe.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html#DefaultSerDe-java.lang.Class-">DefaultSerDe</a></span>(Class&nbsp;type)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd [...]
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>Object</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html#deserialize-byte:A-">deserialize</a></span>(byte[]&nbsp;input)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html#IsSupportedType-java.lang.Class-">IsSupportedType</a></span>(Class&nbsp;typ)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html#serialize-java.lang.Object-">serialize</a></span>(Object&nbsp;input)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DefaultSerDe-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DefaultSerDe</h4>
+<pre>public&nbsp;DefaultSerDe(Class&nbsp;type)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="deserialize-byte:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deserialize</h4>
+<pre>public&nbsp;Object&nbsp;deserialize(byte[]&nbsp;input)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html#deserialize-byte:A-">deserialize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;Object&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="serialize-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serialize</h4>
+<pre>public&nbsp;byte[]&nbsp;serialize(Object&nbsp;input)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html#serialize-T-">serialize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;Object&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="IsSupportedType-java.lang.Class-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IsSupportedType</h4>
+<pre>public static&nbsp;boolean&nbsp;IsSupportedType(Class&nbsp;typ)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/DefaultSerDe.html" target="_top">Frames</a></li>
+<li><a href="DefaultSerDe.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/IdentityFunction.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/IdentityFunction.html
new file mode 100644
index 0000000..d019aef
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/IdentityFunction.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>IdentityFunction (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IdentityFunction (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/IdentityFunction.html" target="_top">Frames</a></li>
+<li><a href="IdentityFunction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.pulsar.functions.api.utils</div>
+<h2 title="Class IdentityFunction" class="title">Class IdentityFunction</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.pulsar.functions.api.utils.IdentityFunction</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>java.util.function.Function&lt;Object,Object&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">IdentityFunction</span>
+extends Object
+implements java.util.function.Function&lt;Object,Object&gt;</pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/IdentityFunction.html#IdentityFunction--">IdentityFunction</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>Object</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/IdentityFunction.html#apply-java.lang.Object-">apply</a></span>(Object&nbsp;o)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.util.function.Function">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.function.Function</h3>
+<code>andThen, compose, identity</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="IdentityFunction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IdentityFunction</h4>
+<pre>public&nbsp;IdentityFunction()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="apply-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>apply</h4>
+<pre>public&nbsp;Object&nbsp;apply(Object&nbsp;o)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>apply</code>&nbsp;in interface&nbsp;<code>java.util.function.Function&lt;Object,Object&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/IdentityFunction.html" target="_top">Frames</a></li>
+<li><a href="IdentityFunction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/JavaSerDe.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/JavaSerDe.html
new file mode 100644
index 0000000..a95bd36
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/JavaSerDe.html
@@ -0,0 +1,308 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>JavaSerDe (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="JavaSerDe (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/JavaSerDe.html" target="_top">Frames</a></li>
+<li><a href="JavaSerDe.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.pulsar.functions.api.utils</div>
+<h2 title="Class JavaSerDe" class="title">Class JavaSerDe</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li>Object</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.pulsar.functions.api.utils.JavaSerDe</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;Object&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">JavaSerDe</span>
+extends Object
+implements <a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;Object&gt;</pre>
+<div class="block">Java Serialization based SerDe</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html#JavaSerDe--">JavaSerDe</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd [...]
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>Object</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html#deserialize-byte:A-">deserialize</a></span>(byte[]&nbsp;data)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html#of--">of</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html#serialize-java.lang.Object-">serialize</a></span>(Object&nbsp;resultValue)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;Object</h3>
+<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="JavaSerDe--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>JavaSerDe</h4>
+<pre>public&nbsp;JavaSerDe()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="of--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>of</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a>&nbsp;of()</pre>
+</li>
+</ul>
+<a name="serialize-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>serialize</h4>
+<pre>public&nbsp;byte[]&nbsp;serialize(Object&nbsp;resultValue)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html#serialize-T-">serialize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;Object&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="deserialize-byte:A-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>deserialize</h4>
+<pre>public&nbsp;Object&nbsp;deserialize(byte[]&nbsp;data)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html#deserialize-byte:A-">deserialize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;Object&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/JavaSerDe.html" target="_top">Frames</a></li>
+<li><a href="JavaSerDe.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-frame.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-frame.html
new file mode 100644
index 0000000..0526772
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-frame.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.pulsar.functions.api.utils (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/pulsar/functions/api/utils/package-summary.html" target="classFrame">org.apache.pulsar.functions.api.utils</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils" target="classFrame">DefaultSerDe</a></li>
+<li><a href="IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils" target="classFrame">IdentityFunction</a></li>
+<li><a href="JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils" target="classFrame">JavaSerDe</a></li>
+</ul>
+</div>
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-summary.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-summary.html
new file mode 100644
index 0000000..f3bd14a
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-summary.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.pulsar.functions.api.utils (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.pulsar.functions.api.utils (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/pulsar/functions/api/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.pulsar.functions.api.utils</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils">DefaultSerDe</a></td>
+<td class="colLast">
+<div class="block">Simplest form of SerDe.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils">IdentityFunction</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils">JavaSerDe</a></td>
+<td class="colLast">
+<div class="block">Java Serialization based SerDe</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/pulsar/functions/api/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-tree.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-tree.html
new file mode 100644
index 0000000..918abc5
--- /dev/null
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/utils/package-tree.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>org.apache.pulsar.functions.api.utils Class Hierarchy (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.pulsar.functions.api.utils Class Hierarchy (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/pulsar/functions/api/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.pulsar.functions.api.utils</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">Object
+<ul>
+<li type="circle">org.apache.pulsar.functions.api.utils.<a href="../../../../../../org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">DefaultSerDe</span></a> (implements org.apache.pulsar.functions.api.<a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.pulsar.functions.api.utils.<a href="../../../../../../org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">IdentityFunction</span></a> (implements java.util.function.Function&lt;T,R&gt;)</li>
+<li type="circle">org.apache.pulsar.functions.api.utils.<a href="../../../../../../org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">JavaSerDe</span></a> (implements org.apache.pulsar.functions.api.<a href="../../../../../../org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;T&gt;)</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/pulsar/functions/api/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/pulsar/functions/api/utils/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/overview-frame.html b/content/api/pulsar-functions/overview-frame.html
new file mode 100644
index 0000000..f4ac319
--- /dev/null
+++ b/content/api/pulsar-functions/overview-frame.html
@@ -0,0 +1,21 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Overview List (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All&nbsp;Classes</a></span></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/apache/pulsar/functions/api/package-frame.html" target="packageFrame">org.apache.pulsar.functions.api</a></li>
+<li><a href="org/apache/pulsar/functions/api/utils/package-frame.html" target="packageFrame">org.apache.pulsar.functions.api.utils</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+</body>
+</html>
diff --git a/content/api/pulsar-functions/overview-summary.html b/content/api/pulsar-functions/overview-summary.html
new file mode 100644
index 0000000..05b7674
--- /dev/null
+++ b/content/api/pulsar-functions/overview-summary.html
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Overview (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Pulsar Functions Java SDK</h1>
+</div>
+<div class="header">
+<div class="subTitle">
+<div class="block">
+    Javadoc for all classes and interfaces associated with the <a href="http://pulsar.incubator.apache.org/docs/latest/functions/api/#java">Java SDK</a> for <a href="http://pulsar.incubator.apache.org/docs/latest/functions/overview/">Pulsar Functions</a>.</div>
+</div>
+<p>See: <a href="#overview.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/pulsar/functions/api/package-summary.html">org.apache.pulsar.functions.api</a></td>
+<td class="colLast">
+<div class="block">Provides a simple model for enabling lightweight computation on Apache Pulsar.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/pulsar/functions/api/utils/package-summary.html">org.apache.pulsar.functions.api.utils</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<div class="contentContainer"><a name="overview.description">
+<!--   -->
+</a>
+<div class="block"><p>
+    Javadoc for all classes and interfaces associated with the <a href="http://pulsar.incubator.apache.org/docs/latest/functions/api/#java">Java SDK</a> for <a href="http://pulsar.incubator.apache.org/docs/latest/functions/overview/">Pulsar Functions</a>.
+  </p></div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/overview-tree.html b/content/api/pulsar-functions/overview-tree.html
new file mode 100644
index 0000000..9ebba27
--- /dev/null
+++ b/content/api/pulsar-functions/overview-tree.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<title>Class Hierarchy (Pulsar Functions Java SDK)</title>
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (Pulsar Functions Java SDK)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/pulsar/functions/api/package-tree.html">org.apache.pulsar.functions.api</a>, </li>
+<li><a href="org/apache/pulsar/functions/api/utils/package-tree.html">org.apache.pulsar.functions.api.utils</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">Object
+<ul>
+<li type="circle">org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/DefaultSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">DefaultSerDe</span></a> (implements org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/IdentityFunction.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">IdentityFunction</span></a> (implements java.util.function.Function&lt;T,R&gt;)</li>
+<li type="circle">org.apache.pulsar.functions.api.utils.<a href="org/apache/pulsar/functions/api/utils/JavaSerDe.html" title="class in org.apache.pulsar.functions.api.utils"><span class="typeNameLink">JavaSerDe</span></a> (implements org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api">SerDe</a>&lt;T&gt;)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Context</span></a></li>
+<li type="circle">org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Function.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">Function</span></a>&lt;I,O&gt;</li>
+<li type="circle">org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/SerDe.html" title="interface in org.apache.pulsar.functions.api"><span class="typeNameLink">SerDe</span></a>&lt;T&gt;</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+</body>
+</html>
diff --git a/content/api/pulsar-functions/package-list b/content/api/pulsar-functions/package-list
new file mode 100644
index 0000000..e18ac27
--- /dev/null
+++ b/content/api/pulsar-functions/package-list
@@ -0,0 +1,2 @@
+org.apache.pulsar.functions.api
+org.apache.pulsar.functions.api.utils
diff --git a/content/api/pulsar-functions/script.js b/content/api/pulsar-functions/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/content/api/pulsar-functions/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+    count = 0;
+    for (var key in methods) {
+        var row = document.getElementById(key);
+        if ((methods[key] &  type) != 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type)
+{
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
diff --git a/content/api/pulsar-functions/stylesheet.css b/content/api/pulsar-functions/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/content/api/pulsar-functions/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}
diff --git a/content/contact/index.html b/content/contact/index.html
index 2d76c49..2bef784 100644
--- a/content/contact/index.html
+++ b/content/contact/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/adaptors/KafkaWrapper/index.html b/content/docs/latest/adaptors/KafkaWrapper/index.html
index f41ea36..7b32fc5 100644
--- a/content/docs/latest/adaptors/KafkaWrapper/index.html
+++ b/content/docs/latest/adaptors/KafkaWrapper/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/adaptors/PulsarSpark/index.html b/content/docs/latest/adaptors/PulsarSpark/index.html
index 71c93f7..c8d4a0a 100644
--- a/content/docs/latest/adaptors/PulsarSpark/index.html
+++ b/content/docs/latest/adaptors/PulsarSpark/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -962,9 +965,9 @@
           
           
           
-          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
+          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
           
@@ -1184,9 +1187,9 @@
           
           
           
-          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
+          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
           
@@ -1326,6 +1329,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1478,8 +1483,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
diff --git a/content/docs/latest/adaptors/PulsarStorm/index.html b/content/docs/latest/adaptors/PulsarStorm/index.html
index b4a40bb..e5022cd 100644
--- a/content/docs/latest/adaptors/PulsarStorm/index.html
+++ b/content/docs/latest/adaptors/PulsarStorm/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -966,9 +969,9 @@
           
           
           
-          <li><a href="/docs/latest/adaptors/PulsarStorm/">Pulsar adaptor for Apache Storm</a></li>
           
           
+          <li><a href="/docs/latest/adaptors/PulsarStorm/">Pulsar adaptor for Apache Storm</a></li>
           
           
           
@@ -1104,6 +1107,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1256,8 +1261,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
diff --git a/content/docs/latest/admin-api/brokers/index.html b/content/docs/latest/admin-api/brokers/index.html
index 278ee49..da59b4c 100644
--- a/content/docs/latest/admin-api/brokers/index.html
+++ b/content/docs/latest/admin-api/brokers/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin-api/clusters/index.html b/content/docs/latest/admin-api/clusters/index.html
index 991b531..0873be0 100644
--- a/content/docs/latest/admin-api/clusters/index.html
+++ b/content/docs/latest/admin-api/clusters/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin-api/namespaces/index.html b/content/docs/latest/admin-api/namespaces/index.html
index 2aad3f5..1575046 100644
--- a/content/docs/latest/admin-api/namespaces/index.html
+++ b/content/docs/latest/admin-api/namespaces/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin-api/non-persistent-topics/index.html b/content/docs/latest/admin-api/non-persistent-topics/index.html
index 7352121..978051e 100644
--- a/content/docs/latest/admin-api/non-persistent-topics/index.html
+++ b/content/docs/latest/admin-api/non-persistent-topics/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin-api/overview/index.html b/content/docs/latest/admin-api/overview/index.html
index c14db26..48a7a94 100644
--- a/content/docs/latest/admin-api/overview/index.html
+++ b/content/docs/latest/admin-api/overview/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -882,6 +885,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1006,8 +1011,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
@@ -1128,9 +1131,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1566,6 +1569,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1718,8 +1723,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
diff --git a/content/docs/latest/admin-api/partitioned-topics/index.html b/content/docs/latest/admin-api/partitioned-topics/index.html
index e9aaf57..b19f15a 100644
--- a/content/docs/latest/admin-api/partitioned-topics/index.html
+++ b/content/docs/latest/admin-api/partitioned-topics/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin-api/permissions/index.html b/content/docs/latest/admin-api/permissions/index.html
index c7cc601..145b39e 100644
--- a/content/docs/latest/admin-api/permissions/index.html
+++ b/content/docs/latest/admin-api/permissions/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin-api/persistent-topics/index.html b/content/docs/latest/admin-api/persistent-topics/index.html
index 108ecb2..7b07a11 100644
--- a/content/docs/latest/admin-api/persistent-topics/index.html
+++ b/content/docs/latest/admin-api/persistent-topics/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin-api/tenants/index.html b/content/docs/latest/admin-api/tenants/index.html
index 80f82e4..8ab41a1 100644
--- a/content/docs/latest/admin-api/tenants/index.html
+++ b/content/docs/latest/admin-api/tenants/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin/Authz/index.html b/content/docs/latest/admin/Authz/index.html
index 3b19bc2..e0dd123 100644
--- a/content/docs/latest/admin/Authz/index.html
+++ b/content/docs/latest/admin/Authz/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -882,6 +885,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1006,8 +1011,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
@@ -1120,9 +1123,9 @@
           
           
           
-          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
+          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
           
@@ -1342,9 +1345,9 @@
           
           
           
-          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
+          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
           
@@ -1564,9 +1567,9 @@
           
           
           
-          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
+          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
           
@@ -1786,9 +1789,9 @@
           
           
           
-          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
+          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
           
@@ -2008,6 +2011,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -2160,8 +2165,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
@@ -2240,9 +2243,9 @@
           
           
           
-          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
+          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
           
@@ -2272,9 +2275,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
           
diff --git a/content/docs/latest/admin/Dashboard/index.html b/content/docs/latest/admin/Dashboard/index.html
index 42b5ba4..057bf81 100644
--- a/content/docs/latest/admin/Dashboard/index.html
+++ b/content/docs/latest/admin/Dashboard/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin/GeoReplication/index.html b/content/docs/latest/admin/GeoReplication/index.html
index b287dcf..0b0f09d 100644
--- a/content/docs/latest/admin/GeoReplication/index.html
+++ b/content/docs/latest/admin/GeoReplication/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin/LoadDistribution/index.html b/content/docs/latest/admin/LoadDistribution/index.html
index 844901d..914dd9f 100644
--- a/content/docs/latest/admin/LoadDistribution/index.html
+++ b/content/docs/latest/admin/LoadDistribution/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin/Proxy/index.html b/content/docs/latest/admin/Proxy/index.html
index abbe860..0b8ec1a 100644
--- a/content/docs/latest/admin/Proxy/index.html
+++ b/content/docs/latest/admin/Proxy/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin/Stats/index.html b/content/docs/latest/admin/Stats/index.html
index 5276ca3..4dcd37a 100644
--- a/content/docs/latest/admin/Stats/index.html
+++ b/content/docs/latest/admin/Stats/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/admin/ZooKeeperBookKeeper/index.html b/content/docs/latest/admin/ZooKeeperBookKeeper/index.html
index 03af320..1381240 100644
--- a/content/docs/latest/admin/ZooKeeperBookKeeper/index.html
+++ b/content/docs/latest/admin/ZooKeeperBookKeeper/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/clients/Cpp/index.html b/content/docs/latest/clients/Cpp/index.html
index c4f67c3..d0d1e43 100644
--- a/content/docs/latest/clients/Cpp/index.html
+++ b/content/docs/latest/clients/Cpp/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -890,6 +893,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1067,8 +1072,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -1110,9 +1113,9 @@
           
           
           
-          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
+          <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
           
@@ -1142,9 +1145,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
           
diff --git a/content/docs/latest/clients/Java/index.html b/content/docs/latest/clients/Java/index.html
index cf91c12..e1b8036 100644
--- a/content/docs/latest/clients/Java/index.html
+++ b/content/docs/latest/clients/Java/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -890,6 +893,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1067,8 +1072,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -1110,6 +1113,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1262,8 +1267,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
@@ -1388,9 +1391,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
@@ -1612,9 +1615,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
diff --git a/content/docs/latest/clients/Python/index.html b/content/docs/latest/clients/Python/index.html
index 619b9d7..1c27678 100644
--- a/content/docs/latest/clients/Python/index.html
+++ b/content/docs/latest/clients/Python/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -890,6 +893,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1067,8 +1072,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -1198,9 +1201,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
           
@@ -1220,9 +1223,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
diff --git a/content/docs/latest/clients/WebSocket/index.html b/content/docs/latest/clients/WebSocket/index.html
index 4797ad1..37588f5 100644
--- a/content/docs/latest/clients/WebSocket/index.html
+++ b/content/docs/latest/clients/WebSocket/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -990,9 +993,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
@@ -1212,9 +1215,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
@@ -1414,9 +1417,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
           
@@ -1436,9 +1439,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/Encryption/index.html b/content/docs/latest/cookbooks/Encryption/index.html
index 88cfeeb..fa40cfb 100644
--- a/content/docs/latest/cookbooks/Encryption/index.html
+++ b/content/docs/latest/cookbooks/Encryption/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -1398,9 +1401,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1626,9 +1629,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1654,9 +1657,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/PartitionedTopics/index.html b/content/docs/latest/cookbooks/PartitionedTopics/index.html
index ba1a118..b2cc02c 100644
--- a/content/docs/latest/cookbooks/PartitionedTopics/index.html
+++ b/content/docs/latest/cookbooks/PartitionedTopics/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -952,9 +955,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1174,9 +1177,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1326,6 +1329,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1450,8 +1455,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
@@ -1636,9 +1639,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1864,9 +1867,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1892,9 +1895,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/RetentionExpiry/index.html b/content/docs/latest/cookbooks/RetentionExpiry/index.html
index 965fd3f..a94ce2f 100644
--- a/content/docs/latest/cookbooks/RetentionExpiry/index.html
+++ b/content/docs/latest/cookbooks/RetentionExpiry/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -882,6 +885,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1006,8 +1011,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
@@ -1216,9 +1219,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -1438,9 +1441,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -1660,9 +1663,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -1858,9 +1861,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1886,9 +1889,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/message-deduplication/index.html b/content/docs/latest/cookbooks/message-deduplication/index.html
index 8fb7c95..7ae3c3f 100644
--- a/content/docs/latest/cookbooks/message-deduplication/index.html
+++ b/content/docs/latest/cookbooks/message-deduplication/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -882,6 +885,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1006,8 +1011,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
@@ -1142,9 +1145,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
@@ -1416,9 +1419,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1444,9 +1447,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/message-queue/index.html b/content/docs/latest/cookbooks/message-queue/index.html
index 4615e6f..6c4b728 100644
--- a/content/docs/latest/cookbooks/message-queue/index.html
+++ b/content/docs/latest/cookbooks/message-queue/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -954,9 +957,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1110,6 +1113,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1262,8 +1267,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/cookbooks/message-queue/">Using Pulsar as a message queue</a></li>
           
           
@@ -1430,9 +1433,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
           
@@ -1452,9 +1455,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
@@ -1862,9 +1865,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1890,9 +1893,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/non-persistent-messaging/index.html b/content/docs/latest/cookbooks/non-persistent-messaging/index.html
index e85272c..5fa2685 100644
--- a/content/docs/latest/cookbooks/non-persistent-messaging/index.html
+++ b/content/docs/latest/cookbooks/non-persistent-messaging/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/deployment/Kubernetes/index.html b/content/docs/latest/deployment/Kubernetes/index.html
index d16f78e..9303b0a 100644
--- a/content/docs/latest/deployment/Kubernetes/index.html
+++ b/content/docs/latest/deployment/Kubernetes/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -934,9 +937,9 @@
           
           
           
-          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
+          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
           
@@ -1156,9 +1159,9 @@
           
           
           
-          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
+          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/Monitoring/index.html b/content/docs/latest/deployment/Monitoring/index.html
index 29bd103..8a8e558 100644
--- a/content/docs/latest/deployment/Monitoring/index.html
+++ b/content/docs/latest/deployment/Monitoring/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/deployment/aws-cluster/index.html b/content/docs/latest/deployment/aws-cluster/index.html
index a2b60ca..ba3364c 100644
--- a/content/docs/latest/deployment/aws-cluster/index.html
+++ b/content/docs/latest/deployment/aws-cluster/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -882,6 +885,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1006,8 +1011,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
diff --git a/content/docs/latest/deployment/cluster/index.html b/content/docs/latest/deployment/cluster/index.html
index f499f72..8d32521 100644
--- a/content/docs/latest/deployment/cluster/index.html
+++ b/content/docs/latest/deployment/cluster/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -882,6 +885,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1006,8 +1011,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
diff --git a/content/docs/latest/deployment/dcos/index.html b/content/docs/latest/deployment/dcos/index.html
index 78c1efe..7676644 100644
--- a/content/docs/latest/deployment/dcos/index.html
+++ b/content/docs/latest/deployment/dcos/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/deployment/instance/index.html b/content/docs/latest/deployment/instance/index.html
index e4ff0f3..c64c2fa 100644
--- a/content/docs/latest/deployment/instance/index.html
+++ b/content/docs/latest/deployment/instance/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -882,6 +885,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1006,8 +1011,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
diff --git a/content/docs/latest/functions/api/index.html b/content/docs/latest/functions/api/index.html
index 3699456..fa0a10e 100644
--- a/content/docs/latest/functions/api/index.html
+++ b/content/docs/latest/functions/api/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/functions/deployment/index.html b/content/docs/latest/functions/deployment/index.html
index beda3d4..b9489c6 100644
--- a/content/docs/latest/functions/deployment/index.html
+++ b/content/docs/latest/functions/deployment/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/functions/guarantees/index.html b/content/docs/latest/functions/guarantees/index.html
index 6ddf28b..f6f4dd9 100644
--- a/content/docs/latest/functions/guarantees/index.html
+++ b/content/docs/latest/functions/guarantees/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/functions/metrics/index.html b/content/docs/latest/functions/metrics/index.html
index 0cb8bef..36a58c7 100644
--- a/content/docs/latest/functions/metrics/index.html
+++ b/content/docs/latest/functions/metrics/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/functions/overview/index.html b/content/docs/latest/functions/overview/index.html
index 1fb9a6f..4403d82 100644
--- a/content/docs/latest/functions/overview/index.html
+++ b/content/docs/latest/functions/overview/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/functions/quickstart/index.html b/content/docs/latest/functions/quickstart/index.html
index 354cb2f..82bc054 100644
--- a/content/docs/latest/functions/quickstart/index.html
+++ b/content/docs/latest/functions/quickstart/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/getting-started/Clients/index.html b/content/docs/latest/getting-started/Clients/index.html
index 054b4ec..4515e6c 100644
--- a/content/docs/latest/getting-started/Clients/index.html
+++ b/content/docs/latest/getting-started/Clients/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html b/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
index 124dbfb..f63c1d6 100644
--- a/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
+++ b/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -904,9 +907,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
@@ -1126,9 +1129,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/LocalCluster/index.html b/content/docs/latest/getting-started/LocalCluster/index.html
index 40f5f3c..b997a05 100644
--- a/content/docs/latest/getting-started/LocalCluster/index.html
+++ b/content/docs/latest/getting-started/LocalCluster/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -940,9 +943,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
@@ -1164,9 +1167,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/Pulsar-2.0/index.html b/content/docs/latest/getting-started/Pulsar-2.0/index.html
index b1fe183..081beed 100644
--- a/content/docs/latest/getting-started/Pulsar-2.0/index.html
+++ b/content/docs/latest/getting-started/Pulsar-2.0/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -1398,9 +1401,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/docker/index.html b/content/docs/latest/getting-started/docker/index.html
index b38eba9..36c378f 100644
--- a/content/docs/latest/getting-started/docker/index.html
+++ b/content/docs/latest/getting-started/docker/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -940,9 +943,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
@@ -1164,9 +1167,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
diff --git a/content/docs/latest/project/BinaryProtocol/index.html b/content/docs/latest/project/BinaryProtocol/index.html
index dbef538..f5b059a 100644
--- a/content/docs/latest/project/BinaryProtocol/index.html
+++ b/content/docs/latest/project/BinaryProtocol/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -886,9 +889,9 @@
           
           
           
-          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
+          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
           
@@ -1108,9 +1111,9 @@
           
           
           
-          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
+          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
           
diff --git a/content/docs/latest/project/Codebase/index.html b/content/docs/latest/project/Codebase/index.html
index d012d05..da28b91 100644
--- a/content/docs/latest/project/Codebase/index.html
+++ b/content/docs/latest/project/Codebase/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/project/ModularLoadManager/index.html b/content/docs/latest/project/ModularLoadManager/index.html
index 4973fcf..621aac4 100644
--- a/content/docs/latest/project/ModularLoadManager/index.html
+++ b/content/docs/latest/project/ModularLoadManager/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/project/SimulationTools/index.html b/content/docs/latest/project/SimulationTools/index.html
index 5d8460d..1320d56 100644
--- a/content/docs/latest/project/SimulationTools/index.html
+++ b/content/docs/latest/project/SimulationTools/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -982,9 +985,9 @@
           
           
           
-          <li><a href="/docs/latest/project/SimulationTools/">Simulation tools</a></li>
           
           
+          <li><a href="/docs/latest/project/SimulationTools/">Simulation tools</a></li>
           
           
           
diff --git a/content/docs/latest/project/schema-storage/index.html b/content/docs/latest/project/schema-storage/index.html
index 2b24c84..625f15c 100644
--- a/content/docs/latest/project/schema-storage/index.html
+++ b/content/docs/latest/project/schema-storage/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -928,9 +931,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
@@ -1152,9 +1155,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
diff --git a/content/docs/latest/reference/CliTools/index.html b/content/docs/latest/reference/CliTools/index.html
index 927ea01..7055fc3 100644
--- a/content/docs/latest/reference/CliTools/index.html
+++ b/content/docs/latest/reference/CliTools/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -882,6 +885,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/admin/Authz/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1006,8 +1011,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/deployment/aws-cluster/">Deploying a Pulsar cluster on AWS using Terraform and Ansible</a></li>
           
           
@@ -1128,9 +1131,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1352,6 +1355,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1529,8 +1534,6 @@
           
           
           
-          
-          
         </ul>
       </div>
     </div>
@@ -1580,9 +1583,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1802,9 +1805,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -2024,9 +2027,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
diff --git a/content/docs/latest/reference/Configuration/index.html b/content/docs/latest/reference/Configuration/index.html
index 3a83b8b..ae59e64 100644
--- a/content/docs/latest/reference/Configuration/index.html
+++ b/content/docs/latest/reference/Configuration/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/docs/latest/reference/RestApi/index.html b/content/docs/latest/reference/RestApi/index.html
index 92277a3..2bec04e 100644
--- a/content/docs/latest/reference/RestApi/index.html
+++ b/content/docs/latest/reference/RestApi/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -4191,7 +4194,7 @@
           <h5>
             <code class="highlighter-rouge get">GET</code>
           </h5>
-          <p>Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing tenant</p>
+          <p>Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing property</p>
           
           <h5>URL parameters</h5>
           <table>
@@ -4220,7 +4223,7 @@
               </tr>
               
               <tr>
-                <td><code class="highlighter-rouge">tenant</code></td>
+                <td><code class="highlighter-rouge">property</code></td>
                 <td>query</td>
                 <td>false</td>
                 <td>string</td>
diff --git a/content/download/index.html b/content/download/index.html
index fb357a0..2503bf1 100644
--- a/content/download/index.html
+++ b/content/download/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/events/current-event/index.html b/content/events/current-event/index.html
index e41f856..a89cf17 100644
--- a/content/events/current-event/index.html
+++ b/content/events/current-event/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/index.html b/content/index.html
index dfc98ff..eeb7e2b 100644
--- a/content/index.html
+++ b/content/index.html
@@ -149,6 +149,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/adaptors/PulsarSpark/index.html b/content/ja/adaptors/PulsarSpark/index.html
index cc1972d..347e6ca 100644
--- a/content/ja/adaptors/PulsarSpark/index.html
+++ b/content/ja/adaptors/PulsarSpark/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -749,9 +752,9 @@
           
           
           
+          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
-          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
           
@@ -971,9 +974,9 @@
           
           
           
+          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
-          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
           
@@ -1115,8 +1118,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -1302,6 +1303,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/adaptors/PulsarStorm/index.html b/content/ja/adaptors/PulsarStorm/index.html
index 338ad8c..21973b0 100644
--- a/content/ja/adaptors/PulsarStorm/index.html
+++ b/content/ja/adaptors/PulsarStorm/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -753,9 +756,9 @@
           
           
           
+          <li><a href="/ja/adaptors/PulsarStorm/">Apache StormのためのPulsarアダプタ</a></li>
           
           
-          <li><a href="/ja/adaptors/PulsarStorm/">Apache StormのためのPulsarアダプタ</a></li>
           
           
           
@@ -893,8 +896,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -1080,6 +1081,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/AdminInterface/index.html b/content/ja/admin/AdminInterface/index.html
index 4818624..6a68b2a 100644
--- a/content/ja/admin/AdminInterface/index.html
+++ b/content/ja/admin/AdminInterface/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -671,8 +674,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -691,6 +692,8 @@
           
           
           
+          
+          
           <li><a href="/ja/admin/ClustersBrokers/">PulsarクラスタとBrokerの管理</a></li>
           
           
@@ -749,9 +752,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -779,9 +782,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -915,9 +918,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1353,8 +1356,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -1540,6 +1541,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/Authz/index.html b/content/ja/admin/Authz/index.html
index 30a236e..d1edceb 100644
--- a/content/ja/admin/Authz/index.html
+++ b/content/ja/admin/Authz/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -671,8 +674,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -691,6 +692,8 @@
           
           
           
+          
+          
           <li><a href="/ja/admin/ClustersBrokers/">PulsarクラスタとBrokerの管理</a></li>
           
           
@@ -749,9 +752,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -779,9 +782,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -905,9 +908,9 @@
           
           
           
+          <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
-          <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
           
@@ -1127,9 +1130,9 @@
           
           
           
+          <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
-          <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
           
@@ -1349,9 +1352,9 @@
           
           
           
+          <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
-          <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
           
@@ -1571,9 +1574,9 @@
           
           
           
+          <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
-          <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
           
@@ -1795,8 +1798,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -1982,6 +1983,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -2023,8 +2026,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -2206,6 +2207,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/ClustersBrokers/index.html b/content/ja/admin/ClustersBrokers/index.html
index b724a47..e5d8acf 100644
--- a/content/ja/admin/ClustersBrokers/index.html
+++ b/content/ja/admin/ClustersBrokers/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -671,8 +674,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -691,6 +692,8 @@
           
           
           
+          
+          
           <li><a href="/ja/admin/ClustersBrokers/">PulsarクラスタとBrokerの管理</a></li>
           
           
@@ -749,9 +752,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -779,9 +782,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/admin/Dashboard/index.html b/content/ja/admin/Dashboard/index.html
index da5a71f..fbe51b9 100644
--- a/content/ja/admin/Dashboard/index.html
+++ b/content/ja/admin/Dashboard/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/admin/GeoReplication/index.html b/content/ja/admin/GeoReplication/index.html
index f47b3a8..51f0154 100644
--- a/content/ja/admin/GeoReplication/index.html
+++ b/content/ja/admin/GeoReplication/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/admin/ModularLoadManager/index.html b/content/ja/admin/ModularLoadManager/index.html
index 692c540..b02dd69 100644
--- a/content/ja/admin/ModularLoadManager/index.html
+++ b/content/ja/admin/ModularLoadManager/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/admin/PropertiesNamespaces/index.html b/content/ja/admin/PropertiesNamespaces/index.html
index 067f6c7..c7f0580 100644
--- a/content/ja/admin/PropertiesNamespaces/index.html
+++ b/content/ja/admin/PropertiesNamespaces/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -1115,8 +1118,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -1135,6 +1136,8 @@
           
           
           
+          
+          
           <li><a href="/ja/admin/ClustersBrokers/">PulsarクラスタとBrokerの管理</a></li>
           
           
@@ -1193,9 +1196,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1223,9 +1226,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/admin/Stats/index.html b/content/ja/admin/Stats/index.html
index 880f068..2ace673 100644
--- a/content/ja/admin/Stats/index.html
+++ b/content/ja/admin/Stats/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/admin/ZooKeeperBookKeeper/index.html b/content/ja/admin/ZooKeeperBookKeeper/index.html
index be69382..d31f6b9 100644
--- a/content/ja/admin/ZooKeeperBookKeeper/index.html
+++ b/content/ja/admin/ZooKeeperBookKeeper/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/advanced/PartitionedTopics/index.html b/content/ja/advanced/PartitionedTopics/index.html
index 9a62105..184b2e7 100644
--- a/content/ja/advanced/PartitionedTopics/index.html
+++ b/content/ja/advanced/PartitionedTopics/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -739,9 +742,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -961,9 +964,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1115,8 +1118,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -1135,6 +1136,8 @@
           
           
           
+          
+          
           <li><a href="/ja/admin/ClustersBrokers/">PulsarクラスタとBrokerの管理</a></li>
           
           
@@ -1193,9 +1196,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1223,9 +1226,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1419,9 +1422,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
diff --git a/content/ja/advanced/RetentionExpiry/index.html b/content/ja/advanced/RetentionExpiry/index.html
index eaee80e..7d9772f 100644
--- a/content/ja/advanced/RetentionExpiry/index.html
+++ b/content/ja/advanced/RetentionExpiry/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -671,8 +674,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -691,6 +692,8 @@
           
           
           
+          
+          
           <li><a href="/ja/admin/ClustersBrokers/">PulsarクラスタとBrokerの管理</a></li>
           
           
@@ -749,9 +752,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -779,9 +782,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1001,9 +1004,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1223,9 +1226,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1445,9 +1448,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/clients/Cpp/index.html b/content/ja/clients/Cpp/index.html
index 8ddd9a1..a9ba261 100644
--- a/content/ja/clients/Cpp/index.html
+++ b/content/ja/clients/Cpp/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -677,8 +680,6 @@
           
           
           
-          
-          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -856,6 +857,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -897,8 +900,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -1080,6 +1081,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/clients/Java/index.html b/content/ja/clients/Java/index.html
index e8a1c47..81419ef 100644
--- a/content/ja/clients/Java/index.html
+++ b/content/ja/clients/Java/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -677,8 +680,6 @@
           
           
           
-          
-          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -856,6 +857,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -899,8 +902,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -1086,6 +1087,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/clients/Python/index.html b/content/ja/clients/Python/index.html
index 14fd645..6615100 100644
--- a/content/ja/clients/Python/index.html
+++ b/content/ja/clients/Python/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -677,8 +680,6 @@
           
           
           
-          
-          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -856,6 +857,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -985,8 +988,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
@@ -1080,6 +1081,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/clients/WebSocket/index.html b/content/ja/clients/WebSocket/index.html
index 7f92029..612f52f 100644
--- a/content/ja/clients/WebSocket/index.html
+++ b/content/ja/clients/WebSocket/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -777,9 +780,9 @@
           
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
@@ -999,9 +1002,9 @@
           
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
@@ -1201,8 +1204,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
@@ -1296,6 +1297,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/deployment/InstanceSetup/index.html b/content/ja/deployment/InstanceSetup/index.html
index 27fb2ae..afb3fb7 100644
--- a/content/ja/deployment/InstanceSetup/index.html
+++ b/content/ja/deployment/InstanceSetup/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -671,8 +674,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -691,6 +692,8 @@
           
           
           
+          
+          
           <li><a href="/ja/admin/ClustersBrokers/">PulsarクラスタとBrokerの管理</a></li>
           
           
@@ -749,9 +752,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -779,9 +782,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/deployment/Kubernetes/index.html b/content/ja/deployment/Kubernetes/index.html
index e243b84..72a504f 100644
--- a/content/ja/deployment/Kubernetes/index.html
+++ b/content/ja/deployment/Kubernetes/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -721,9 +724,9 @@
           
           
           
+          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
-          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
           
@@ -943,9 +946,9 @@
           
           
           
+          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
-          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
           
diff --git a/content/ja/deployment/Monitoring/index.html b/content/ja/deployment/Monitoring/index.html
index d8270ad..af71573 100644
--- a/content/ja/deployment/Monitoring/index.html
+++ b/content/ja/deployment/Monitoring/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/getting-started/Clients/index.html b/content/ja/getting-started/Clients/index.html
index 3708d9a..3e78ee6 100644
--- a/content/ja/getting-started/Clients/index.html
+++ b/content/ja/getting-started/Clients/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/getting-started/ConceptsAndArchitecture/index.html b/content/ja/getting-started/ConceptsAndArchitecture/index.html
index 855d097..dec6c10 100644
--- a/content/ja/getting-started/ConceptsAndArchitecture/index.html
+++ b/content/ja/getting-started/ConceptsAndArchitecture/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -691,9 +694,9 @@
           
           
           
+          <li><a href="/ja/getting-started/ConceptsAndArchitecture/">Pulsarのコンセプトとアーキテクチャ</a></li>
           
           
-          <li><a href="/ja/getting-started/ConceptsAndArchitecture/">Pulsarのコンセプトとアーキテクチャ</a></li>
           
           
           
diff --git a/content/ja/getting-started/LocalCluster/index.html b/content/ja/getting-started/LocalCluster/index.html
index 3d47a3c..e8b7f66 100644
--- a/content/ja/getting-started/LocalCluster/index.html
+++ b/content/ja/getting-started/LocalCluster/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -727,9 +730,9 @@
           
           
           
+          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
-          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
           
@@ -949,9 +952,9 @@
           
           
           
+          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
-          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
           
diff --git a/content/ja/project/BinaryProtocol/index.html b/content/ja/project/BinaryProtocol/index.html
index 65dffd7..02595aa 100644
--- a/content/ja/project/BinaryProtocol/index.html
+++ b/content/ja/project/BinaryProtocol/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -673,9 +676,9 @@
           
           
           
+          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
-          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
           
@@ -895,9 +898,9 @@
           
           
           
+          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
-          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
           
diff --git a/content/ja/project/Codebase/index.html b/content/ja/project/Codebase/index.html
index 269a7cd..b7c5555 100644
--- a/content/ja/project/Codebase/index.html
+++ b/content/ja/project/Codebase/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/project/SimulationTools/index.html b/content/ja/project/SimulationTools/index.html
index bf5591b..cff10b5 100644
--- a/content/ja/project/SimulationTools/index.html
+++ b/content/ja/project/SimulationTools/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -769,9 +772,9 @@
           
           
           
+          <li><a href="/ja/project/SimulationTools/">シミュレーションツール</a></li>
           
           
-          <li><a href="/ja/project/SimulationTools/">シミュレーションツール</a></li>
           
           
           
diff --git a/content/ja/reference/CliTools/index.html b/content/ja/reference/CliTools/index.html
index add0f47..9195fdc 100644
--- a/content/ja/reference/CliTools/index.html
+++ b/content/ja/reference/CliTools/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -671,8 +674,6 @@
           
           
           
-          
-          
           <li><a href="/ja/admin/Authz/">Pulsarにおける認証と認可</a></li>
           
           
@@ -691,6 +692,8 @@
           
           
           
+          
+          
           <li><a href="/ja/admin/ClustersBrokers/">PulsarクラスタとBrokerの管理</a></li>
           
           
@@ -749,9 +752,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -779,9 +782,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -915,9 +918,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1137,8 +1140,6 @@
           
           
           
-          
-          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -1316,6 +1317,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -1365,9 +1368,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1587,9 +1590,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1809,9 +1812,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
diff --git a/content/ja/reference/Configuration/index.html b/content/ja/reference/Configuration/index.html
index ee6cc6f..e7aee97 100644
--- a/content/ja/reference/Configuration/index.html
+++ b/content/ja/reference/Configuration/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/ja/reference/RestApi/index.html b/content/ja/reference/RestApi/index.html
index 941554c..5b013de 100644
--- a/content/ja/reference/RestApi/index.html
+++ b/content/ja/reference/RestApi/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
@@ -3984,7 +3987,7 @@
           <h5>
             <code class="highlighter-rouge get">GET</code>
           </h5>
-          <p>Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing tenant</p>
+          <p>Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing property</p>
           
           <h5>URL parameters</h5>
           <table>
@@ -4013,7 +4016,7 @@
               </tr>
               
               <tr>
-                <td><code class="highlighter-rouge">tenant</code></td>
+                <td><code class="highlighter-rouge">property</code></td>
                 <td>query</td>
                 <td>false</td>
                 <td>string</td>
diff --git a/content/javadoc/admin.html b/content/javadoc/admin.html
new file mode 100644
index 0000000..f46cdfc
--- /dev/null
+++ b/content/javadoc/admin.html
@@ -0,0 +1,25 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<body>
+  <p>
+    Javadoc for all classes and interfaces associated with the Java client for <a href="https://pulsar.incubator.apache.org/">Pulsar</a>.
+  </p>
+</body>
diff --git a/content/javadoc/client.html b/content/javadoc/client.html
new file mode 100644
index 0000000..f46cdfc
--- /dev/null
+++ b/content/javadoc/client.html
@@ -0,0 +1,25 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<body>
+  <p>
+    Javadoc for all classes and interfaces associated with the Java client for <a href="https://pulsar.incubator.apache.org/">Pulsar</a>.
+  </p>
+</body>
diff --git a/content/javadoc/pulsar-functions.html b/content/javadoc/pulsar-functions.html
new file mode 100644
index 0000000..02c1139
--- /dev/null
+++ b/content/javadoc/pulsar-functions.html
@@ -0,0 +1,26 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<body>
+  <p>
+    Javadoc for all classes and interfaces associated with the <a href="http://pulsar.incubator.apache.org/docs/latest/functions/api/#java">Java SDK</a> for <a href="http://pulsar.incubator.apache.org/docs/latest/functions/overview/">Pulsar Functions</a>.
+  </p>
+</body>
+  
\ No newline at end of file
diff --git a/content/release-notes/index.html b/content/release-notes/index.html
index 9ef9a75..38350ad 100644
--- a/content/release-notes/index.html
+++ b/content/release-notes/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/resources/index.html b/content/resources/index.html
index 1984bce..a005734 100644
--- a/content/resources/index.html
+++ b/content/resources/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>
diff --git a/content/team/index.html b/content/team/index.html
index adbb33f..96f1103 100644
--- a/content/team/index.html
+++ b/content/team/index.html
@@ -153,6 +153,9 @@
           <a class="dropdown-item" href="/api/admin">
             Java admin Javadoc
           </a>
+          <a class="dropdown-item" href="/api/pulsar-functions">
+            Pulsar Functions Java SDK
+          </a>
           <a class="dropdown-item" href="/api/python">
             Python API docs
           </a>

-- 
To stop receiving notification emails like this one, please contact
mmerli@apache.org.