You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by rx...@apache.org on 2019/10/10 02:45:27 UTC

[pulsar] 01/01: replace SendWithMsgID with SendAndGetMsgID

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

rxl pushed a commit to branch xiaolong/send_return_msg
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit 933d5efca2f055dc3116dd9c02720c8aaab6cf13
Merge: 5564bc8 5df6488
Author: xiaolong.ran <ra...@gmail.com>
AuthorDate: Thu Oct 10 10:44:54 2019 +0800

    replace SendWithMsgID with SendAndGetMsgID
    
    Signed-off-by: xiaolong.ran <ra...@gmail.com>

 .github/PULL_REQUEST_TEMPLATE.md                   |     2 +-
 .gitignore                                         |     1 +
 README.md                                          |     4 +-
 bin/pulsar                                         |     2 +-
 conf/broker.conf                                   |    37 +
 conf/functions_worker.yml                          |     6 +
 conf/log4j2.yaml                                   |     3 +-
 conf/presto/catalog/pulsar.properties              |    27 +-
 conf/standalone.conf                               |    40 +
 dashboard/Dockerfile                               |     6 +-
 dashboard/django/collector.py                      |     4 +-
 dashboard/django/stats/models.py                   |     6 +
 dashboard/django/stats/static/stats/additional.css |    54 +
 .../django/stats/templates/stats/messages.html     |    58 +-
 dashboard/django/stats/templates/stats/peek.html   |    22 -
 dashboard/django/stats/urls.py                     |     7 +-
 dashboard/django/stats/views.py                    |   289 +-
 dashboard/django/utils/__init__.py                 |    19 +
 dashboard/django/utils/import_utils.py             |    27 +
 dashboard/requirements.txt                         |     8 +
 deployment/kubernetes/README.md                    |     2 +-
 deployment/kubernetes/generic/admin.yaml           |    44 -
 .../generic/k8s-1-9-and-above/admin.yaml           |    44 +
 .../generic/k8s-1-9-and-above/bookie.yaml          |   134 +
 .../generic/k8s-1-9-and-above/broker.yaml          |   108 +
 .../{ => k8s-1-9-and-above}/cluster-metadata.yaml  |     0
 .../generic/k8s-1-9-and-above/monitoring.yaml      |   207 +
 .../generic/k8s-1-9-and-above/proxy.yaml           |    92 +
 .../generic/k8s-1-9-and-above/zookeeper.yaml       |   149 +
 deployment/kubernetes/generic/original/admin.yaml  |    44 +
 .../kubernetes/generic/{ => original}/bookie.yaml  |     0
 .../kubernetes/generic/{ => original}/broker.yaml  |     0
 .../generic/{ => original}/cluster-metadata.yaml   |     0
 .../generic/{ => original}/monitoring.yaml         |     0
 .../kubernetes/generic/{ => original}/proxy.yaml   |     0
 .../generic/{ => original}/zookeeper.yaml          |     0
 .../pulsar/templates/autorecovery-deployment.yaml  |     2 +-
 distribution/io/src/assemble/io.xml                |     3 +
 distribution/offloaders/pom.xml                    |     2 +-
 distribution/server/src/assemble/LICENSE.bin.txt   |    16 +-
 docker/pulsar-standalone/django/collector.py       |     2 +-
 docker/pulsar/Dockerfile                           |     7 +-
 docker/pulsar/pom.xml                              |    28 +
 docker/pulsar/scripts/gen-yml-from-env.py          |     2 +-
 managed-ledger-shaded/pom.xml                      |   295 -
 managed-ledger/pom.xml                             |     2 +-
 .../apache/bookkeeper/mledger/AsyncCallbacks.java  |     3 +-
 .../apache/bookkeeper/mledger/ManagedCursor.java   |    21 +
 .../apache/bookkeeper/mledger/ManagedLedger.java   |     5 +
 .../bookkeeper/mledger/impl/ManagedCursorImpl.java |    77 +-
 .../bookkeeper/mledger/impl/ManagedLedgerImpl.java |    64 +-
 .../apache/bookkeeper/mledger/impl/OpAddEntry.java |     2 +-
 .../bookkeeper/mledger/impl/OpFindNewest.java      |     5 +-
 .../mledger/impl/ReadOnlyManagedLedgerImpl.java    |     2 +-
 .../mledger/impl/EntryCacheManagerTest.java        |     9 +-
 .../mledger/impl/ManagedCursorConcurrencyTest.java |    14 +-
 .../mledger/impl/ManagedCursorContainerTest.java   |    30 +-
 .../bookkeeper/mledger/impl/ManagedCursorTest.java |   123 +-
 .../mledger/impl/ManagedLedgerErrorsTest.java      |    56 +-
 .../impl/ManagedLedgerSingleBookieTest.java        |     6 +-
 .../mledger/impl/ManagedLedgerTerminationTest.java |    10 +-
 .../bookkeeper/mledger/impl/ManagedLedgerTest.java |   229 +-
 .../mledger/impl/NonDurableCursorTest.java         |    25 +-
 .../mledger/impl/OffloadLedgerDeleteTest.java      |     3 +-
 .../mledger/impl/OffloadPrefixReadTest.java        |     1 +
 .../bookkeeper/mledger/impl/OffloadPrefixTest.java |   245 +-
 .../bookkeeper/mledger/impl/PositionTest.java      |     8 +-
 .../mledger/impl/ReadOnlyCursorTest.java           |    10 +-
 .../bookkeeper/mledger/util/CallbackMutexTest.java |    15 +-
 .../bookkeeper/mledger/util/RangeCacheTest.java    |    21 +-
 .../org/apache/bookkeeper/test/PortManager.java    |     8 +-
 .../java/org/apache/zookeeper/MockZooKeeper.java   |    87 +-
 pom.xml                                            |    12 +-
 pulsar-broker-auth-athenz/pom.xml                  |     2 +-
 pulsar-broker-auth-sasl/pom.xml                    |     2 +-
 .../authentication/SaslAuthenticateTest.java       |    20 +-
 .../apache/pulsar/broker/ServiceConfiguration.java |    86 +-
 .../authentication/AuthenticationProviderTls.java  |     2 +-
 .../broker/cache/ConfigurationCacheService.java    |    12 +-
 .../PulsarConfigurationLoaderTest.java             |     2 +
 pulsar-broker/pom.xml                              |     6 +-
 .../org/apache/pulsar/PulsarBrokerStarter.java     |     2 +-
 .../java/org/apache/pulsar/PulsarStandalone.java   |     2 +-
 .../pulsar/broker/BookKeeperClientFactoryImpl.java |    61 +-
 .../org/apache/pulsar/broker/PulsarService.java    |    35 +-
 .../apache/pulsar/broker/admin/AdminResource.java  |    93 +-
 .../pulsar/broker/admin/impl/BrokersBase.java      |     7 +
 .../pulsar/broker/admin/impl/ClustersBase.java     |    15 +-
 .../pulsar/broker/admin/impl/FunctionsBase.java    |   358 +-
 .../pulsar/broker/admin/impl/NamespacesBase.java   |   266 +-
 .../broker/admin/impl/PersistentTopicsBase.java    |   813 +-
 .../apache/pulsar/broker/admin/impl/SinksBase.java |   254 +-
 .../pulsar/broker/admin/impl/SourcesBase.java      |   210 +-
 .../apache/pulsar/broker/admin/v1/Namespaces.java  |    93 +-
 .../broker/admin/v1/NonPersistentTopics.java       |    23 +-
 .../pulsar/broker/admin/v1/PersistentTopics.java   |   142 +-
 .../org/apache/pulsar/broker/admin/v2/Bookies.java |    23 +-
 .../apache/pulsar/broker/admin/v2/Namespaces.java  |   104 +-
 .../broker/admin/v2/NonPersistentTopics.java       |    24 +-
 .../pulsar/broker/admin/v2/PersistentTopics.java   |   108 +-
 .../pulsar/broker/admin/v2/SchemasResource.java    |   238 +-
 .../broker/cache/LocalZooKeeperCacheService.java   |     4 +
 .../broker/loadbalance/LeaderElectionService.java  |    20 +-
 .../pulsar/broker/loadbalance/LoadManager.java     |     6 +-
 .../pulsar/broker/loadbalance/NoopLoadManager.java |     1 +
 .../broker/loadbalance/impl/LoadManagerShared.java |    66 +-
 .../loadbalance/impl/ModularLoadManagerImpl.java   |    22 +-
 .../broker/loadbalance/impl/OverloadShedder.java   |     8 +-
 .../loadbalance/impl/SimpleLoadManagerImpl.java    |    17 +-
 .../pulsar/broker/namespace/NamespaceService.java  |   123 +-
 .../broker/namespace/ServiceUnitZkUtils.java       |     2 +-
 .../pulsar/broker/protocol/ProtocolHandler.java    |    97 +
 .../broker/protocol/ProtocolHandlerDefinition.java |    46 +
 .../protocol/ProtocolHandlerDefinitions.java       |    35 +
 .../broker/protocol/ProtocolHandlerMetadata.java   |    42 +
 .../broker/protocol/ProtocolHandlerUtils.java      |   156 +
 .../protocol/ProtocolHandlerWithClassLoader.java   |    83 +
 .../pulsar/broker/protocol/ProtocolHandlers.java   |   148 +
 .../pulsar/broker/protocol/package-info.java       |    22 +
 .../broker/service/AbstractBaseDispatcher.java     |     4 +
 .../AbstractDispatcherMultipleConsumers.java       |     6 +-
 .../AbstractDispatcherSingleActiveConsumer.java    |    11 +
 .../pulsar/broker/service/AbstractTopic.java       |    18 +-
 .../pulsar/broker/service/BrokerService.java       |   184 +-
 .../broker/service/BrokerServiceException.java     |     8 +
 .../org/apache/pulsar/broker/service/Consumer.java |    30 +-
 .../apache/pulsar/broker/service/Dispatcher.java   |     8 +
 .../org/apache/pulsar/broker/service/Producer.java |     2 +-
 .../apache/pulsar/broker/service/ServerCnx.java    |   118 +-
 .../org/apache/pulsar/broker/service/Topic.java    |     9 +-
 .../nonpersistent/NonPersistentDispatcher.java     |     2 +-
 .../NonPersistentDispatcherMultipleConsumers.java  |     8 +-
 ...onPersistentDispatcherSingleActiveConsumer.java |     2 +-
 .../nonpersistent/NonPersistentSubscription.java   |    50 +-
 .../service/nonpersistent/NonPersistentTopic.java  |     4 +-
 .../service/persistent/MessageDeduplication.java   |    75 +-
 .../PersistentDispatcherMultipleConsumers.java     |    44 +-
 .../PersistentDispatcherSingleActiveConsumer.java  |    14 +-
 .../persistent/PersistentMessageExpiryMonitor.java |    14 +-
 .../persistent/PersistentMessageFinder.java        |     7 +-
 .../service/persistent/PersistentReplicator.java   |    29 +
 .../service/persistent/PersistentSubscription.java |    84 +-
 .../broker/service/persistent/PersistentTopic.java |   208 +-
 .../schema/AvroSchemaBasedCompatibilityCheck.java  |    14 +-
 .../schema/DefaultSchemaRegistryService.java       |    15 +
 .../schema/JsonSchemaCompatibilityCheck.java       |    23 +-
 .../schema/KeyValueSchemaCompatibilityCheck.java   |    24 +-
 .../service/schema/SchemaCompatibilityCheck.java   |    38 +-
 .../broker/service/schema/SchemaRegistry.java      |     7 +
 .../service/schema/SchemaRegistryService.java      |     1 +
 .../service/schema/SchemaRegistryServiceImpl.java  |   156 +-
 .../exceptions/IncompatibleSchemaException.java    |     4 +
 .../service/schema/exceptions/SchemaException.java |     4 +
 ...hemaRegistryServiceWithSchemaDataValidator.java |    24 +-
 .../stats/prometheus/NamespaceStatsAggregator.java |     5 +
 .../pulsar/broker/stats/prometheus/TopicStats.java |    27 +-
 .../metrics/DataSketchesSummaryLogger.java         |   125 +
 .../broker/stats/prometheus/metrics/Summary.java   |   131 +
 .../transaction/buffer/TransactionBuffer.java      |   129 +
 .../buffer/TransactionBufferProvider.java          |    62 +
 .../buffer/TransactionBufferReader.java            |    51 +
 .../transaction/buffer/TransactionCursor.java      |    73 +
 .../transaction/buffer/TransactionEntry.java       |    72 +
 .../broker/transaction/buffer/TransactionMeta.java |   110 +
 .../exceptions/EndOfTransactionException.java      |    31 +
 .../NoTxnsCommittedAtLedgerException.java          |    31 +
 .../exceptions/TransactionBufferException.java     |    39 +
 .../exceptions/TransactionNotFoundException.java   |    31 +
 .../exceptions/TransactionNotSealedException.java  |    31 +
 .../exceptions/TransactionSealedException.java     |    33 +
 .../exceptions/UnexpectedTxnStatusException.java   |    37 +
 .../buffer/exceptions/package-info.java            |    22 +
 .../buffer/impl/InMemTransactionBuffer.java        |   337 +
 .../impl/InMemTransactionBufferProvider.java       |    33 +
 .../buffer/impl/InMemTransactionBufferReader.java  |    95 +
 .../buffer/impl/PersistentTransactionBuffer.java   |   268 +
 .../impl/PersistentTransactionBufferReader.java    |   134 +
 .../buffer/impl/TransactionCursorImpl.java         |   126 +
 .../buffer/impl/TransactionEntryImpl.java          |    79 +
 .../buffer/impl/TransactionMetaImpl.java           |   163 +
 .../transaction/buffer/impl/package-info.java      |    22 +
 .../broker/transaction/buffer/package-info.java    |    22 +
 .../apache/pulsar/client/impl/RawReaderImpl.java   |     6 +-
 .../org/apache/pulsar/PulsarBrokerStarterTest.java |   126 +-
 .../broker/BookKeeperClientFactoryImplTest.java    |   159 +
 .../broker/admin/AdminApiGetLastMessageIdTest.java |     6 -
 .../pulsar/broker/admin/AdminApiSchemaTest.java    |    78 +
 .../admin/AdminApiSchemaValidationEnforced.java    |    42 +-
 .../apache/pulsar/broker/admin/AdminApiTest.java   |    72 +-
 .../apache/pulsar/broker/admin/AdminApiTest2.java  |    11 +-
 .../org/apache/pulsar/broker/admin/AdminTest.java  |    22 +-
 .../apache/pulsar/broker/admin/BookiesApiTest.java |   115 +
 .../apache/pulsar/broker/admin/NamespacesTest.java |   147 +-
 .../pulsar/broker/admin/PersistentTopicsTest.java  |   128 +-
 .../pulsar/broker/admin/v1/V1_AdminApiTest.java    |     5 +-
 .../pulsar/broker/admin/v1/V1_AdminApiTest2.java   |     5 +-
 .../pulsar/broker/auth/AuthorizationTest.java      |   154 +-
 .../broker/auth/MockedPulsarServiceBaseTest.java   |     1 +
 .../delayed/InMemoryDeliveryTrackerTest.java       |    19 +-
 .../AntiAffinityNamespaceGroupTest.java            |    19 +-
 .../broker/loadbalance/LoadBalancerTest.java       |    15 +-
 .../loadbalance/ModularLoadManagerImplTest.java    |     1 -
 .../loadbalance/SimpleLoadManagerImplTest.java     |    14 +-
 .../loadbalance/impl/LoadManagerSharedTest.java    |    86 +
 .../loadbalance/impl/OverloadShedderTest.java      |     9 +
 .../broker/lookup/http/HttpTopicLookupv2Test.java  |     1 -
 .../broker/namespace/NamespaceServiceTest.java     |    14 +-
 .../broker/namespace/OwnershipCacheTest.java       |    22 +-
 .../broker/protocol/MockProtocolHandler.java       |    67 +
 .../broker/protocol/ProtocolHandlerUtilsTest.java  |   155 +
 .../ProtocolHandlerWithClassLoaderTest.java        |    70 +
 .../broker/protocol/ProtocolHandlersTest.java      |   166 +
 .../broker/service/BacklogQuotaManagerTest.java    |    43 +-
 .../pulsar/broker/service/BatchMessageTest.java    |    32 +-
 .../broker/service/BrokerBkEnsemblesTests.java     |     1 +
 .../broker/service/BrokerBookieIsolationTest.java  |     5 +-
 .../BrokerServiceAutoTopicCreationTest.java        |   123 +
 .../pulsar/broker/service/BrokerServiceTest.java   |    16 +
 .../service/BrokerServiceThrottlingTest.java       |     2 -
 .../pulsar/broker/service/PeerReplicatorTest.java  |     3 +-
 .../PersistentDispatcherFailoverConsumerTest.java  |    35 +-
 .../service/PersistentMessageFinderTest.java       |    99 +-
 .../service/PersistentTopicConcurrentTest.java     |    13 +-
 .../broker/service/PersistentTopicE2ETest.java     |    56 +-
 .../pulsar/broker/service/PersistentTopicTest.java |    62 +-
 .../broker/service/ReplicatorRateLimiterTest.java  |    10 +-
 .../pulsar/broker/service/ReplicatorTest.java      |   109 +-
 .../pulsar/broker/service/ReplicatorTestBase.java  |     3 +
 .../pulsar/broker/service/ResendRequestTest.java   |     7 +-
 .../pulsar/broker/service/ServerCnxTest.java       |     5 +-
 .../service/persistent/DelayedDeliveryTest.java    |     5 +-
 .../service/persistent/MessageDuplicationTest.java |   322 +
 .../persistent/PersistentSubscriptionTest.java     |     2 +-
 .../broker/service/schema/SchemaServiceTest.java   |    35 +
 .../stats/BookieClientsStatsGeneratorTest.java     |     4 +-
 .../pulsar/broker/stats/PrometheusMetricsTest.java |   102 +-
 .../buffer/InMemTransactionBufferReaderTest.java   |   152 +
 .../buffer/PersistentTransactionBufferTest.java    |   726 ++
 .../transaction/buffer/TransactionBufferTest.java  |   276 +
 .../buffer/TransactionEntryImplTest.java           |    50 +
 .../zookeeper/ZooKeeperClientAspectJTest.java      |     3 +-
 .../pulsar/client/api/BrokerServiceLookupTest.java |     6 +-
 .../client/api/ClientDeduplicationFailureTest.java |   418 +
 .../apache/pulsar/client/api/ClientErrorsTest.java |     2 +-
 .../pulsar/client/api/ConsumerRedeliveryTest.java  |    16 +-
 .../apache/pulsar/client/api/InterceptorsTest.java |   101 +
 .../client/api/MessageDispatchThrottlingTest.java  |    46 +
 .../pulsar/client/api/NonPersistentTopicTest.java  |     3 +
 .../api/PartitionedProducerConsumerTest.java       |     4 +-
 .../client/api/SimpleProducerConsumerStatTest.java |     3 +-
 .../client/api/SimpleProducerConsumerTest.java     |   125 +-
 .../apache/pulsar/client/api/SimpleSchemaTest.java |   134 +
 .../SubscriptionMessageDispatchThrottlingTest.java |    47 +
 .../client/api/v1/V1_ProducerConsumerTest.java     |    31 +-
 .../client/impl/BrokerClientIntegrationTest.java   |    45 +-
 .../pulsar/client/impl/MessageRedeliveryTest.java  |     2 -
 .../client/impl/PatternTopicsConsumerImplTest.java |    61 +-
 .../pulsar/client/impl/TopicFromMessageTest.java   |    20 +-
 .../pulsar/client/impl/TopicsConsumerImplTest.java |   111 +-
 .../impl/UnAcknowledgedMessagesTimeoutTest.java    |     7 +-
 .../pulsar/common/naming/NamespaceBundleTest.java  |    23 +-
 .../pulsar/common/naming/NamespaceBundlesTest.java |    10 +-
 .../worker/PulsarFunctionE2ESecurityTest.java      |     5 +-
 .../worker/PulsarFunctionLocalRunTest.java         |    22 +-
 .../worker/PulsarFunctionPublishTest.java          |    17 +-
 .../functions/worker/PulsarFunctionStateTest.java  |    57 +-
 .../worker/PulsarWorkerAssignmentTest.java         |     2 +-
 .../apache/pulsar/io/PulsarFunctionAdminTest.java  |     3 +-
 .../apache/pulsar/io/PulsarFunctionE2ETest.java    |    40 +-
 .../websocket/proxy/ProxyAuthenticationTest.java   |     8 +-
 .../websocket/proxy/ProxyAuthorizationTest.java    |    28 +-
 .../websocket/proxy/ProxyPublishConsumeTest.java   |    90 +-
 .../proxy/ProxyPublishConsumeTlsTest.java          |     2 -
 .../configurations/pulsar_broker_test.conf         |     3 +
 .../pulsar/client/api/ProducerConfiguration.java   |    10 +-
 .../pulsar/client/impl/v1/ConsumerV1Impl.java      |     7 +
 .../org/apache/pulsar/client/admin/Namespaces.java |    62 +-
 .../org/apache/pulsar/client/admin/Schemas.java    |    60 +
 .../java/org/apache/pulsar/client/admin/Sinks.java |     8 +
 .../org/apache/pulsar/client/admin/Sources.java    |     9 +
 .../org/apache/pulsar/client/admin/Topics.java     |    33 +-
 .../client/admin/internal/NamespacesImpl.java      |    94 +-
 .../pulsar/client/admin/internal/SchemasImpl.java  |   147 +-
 .../pulsar/client/admin/internal/SinksImpl.java    |    10 +
 .../pulsar/client/admin/internal/SourcesImpl.java  |    10 +
 .../pulsar/client/admin/internal/TopicsImpl.java   |    13 +-
 pulsar-client-api/pom.xml                          |    24 +
 .../apache/pulsar/client/api/Authentication.java   |     7 +-
 .../client/api/AuthenticationDataProvider.java     |     6 +-
 .../pulsar/client/api/AuthenticationFactory.java   |     8 +-
 .../pulsar/client/api/BatchMessageContainer.java   |     4 +-
 .../apache/pulsar/client/api/BatcherBuilder.java   |    17 +-
 .../apache/pulsar/client/api/ClientBuilder.java    |   104 +-
 .../apache/pulsar/client/api/CompressionType.java  |    10 +-
 .../org/apache/pulsar/client/api/Consumer.java     |   134 +-
 .../apache/pulsar/client/api/ConsumerBuilder.java  |   166 +-
 .../client/api/ConsumerCryptoFailureAction.java    |    12 +-
 .../pulsar/client/api/ConsumerInterceptor.java     |    22 +-
 .../apache/pulsar/client/api/ConsumerStats.java    |     2 +-
 .../apache/pulsar/client/api/CryptoKeyReader.java  |     7 +-
 .../api/EncodedAuthenticationParameterSupport.java |     3 +
 .../apache/pulsar/client/api/HashingScheme.java    |     2 +-
 .../java/org/apache/pulsar/client/api/Message.java |    46 +-
 .../org/apache/pulsar/client/api/MessageId.java    |    38 +-
 .../apache/pulsar/client/api/MessageListener.java  |    10 +-
 .../pulsar/client/api/MessageRoutingMode.java      |    21 +-
 .../org/apache/pulsar/client/api/Producer.java     |    52 +-
 .../apache/pulsar/client/api/ProducerBuilder.java  |   183 +-
 .../client/api/ProducerCryptoFailureAction.java    |     6 +-
 .../pulsar/client/api/ProducerInterceptor.java     |    28 +-
 .../apache/pulsar/client/api/ProducerStats.java    |     2 +-
 .../org/apache/pulsar/client/api/PulsarClient.java |    98 +-
 .../pulsar/client/api/PulsarClientException.java   |   363 +-
 .../java/org/apache/pulsar/client/api/Reader.java  |    55 +-
 .../apache/pulsar/client/api/ReaderBuilder.java    |    54 +-
 .../apache/pulsar/client/api/ReaderListener.java   |    14 +-
 .../pulsar/client/api/RegexSubscriptionMode.java   |     6 +-
 .../java/org/apache/pulsar/client/api/Schema.java  |    79 +-
 .../client/api/SchemaSerializationException.java   |    18 +
 .../pulsar/client/api/ServiceUrlProvider.java      |    14 +-
 .../client/api/SubscriptionInitialPosition.java    |    11 +-
 .../apache/pulsar/client/api/SubscriptionType.java |    29 +-
 .../pulsar/client/api/TypedMessageBuilder.java     |   153 +-
 .../org/apache/pulsar/client/api/package-info.java |    22 +
 .../org/apache/pulsar/client/api/schema/Field.java |     2 +-
 .../client/api/schema/FieldSchemaBuilder.java      |    16 +-
 .../pulsar/client/api/schema/SchemaDefinition.java |    29 +-
 .../client/api/schema/SchemaDefinitionBuilder.java |    12 +-
 .../client/api/schema/SchemaInfoProvider.java      |     7 +-
 .../pulsar/client/api/schema/SchemaReader.java     |    30 +-
 .../pulsar/client/api/schema/SchemaWriter.java     |     2 +-
 .../pulsar/client/api/schema/package-info.java     |    22 +
 .../pulsar/client/api/transaction/Transaction.java |    42 +
 .../client/api/transaction/TransactionBuilder.java |    50 +
 .../client/api/transaction/package-info.java       |    22 +
 .../client/internal/DefaultImplementation.java     |   100 +-
 .../pulsar/client/internal/package-info.java       |    22 +
 .../org/apache/pulsar/common/api/AuthData.java     |    11 +-
 .../pulsar/common/api/EncryptionContext.java       |     6 +
 .../org/apache/pulsar/common/api/package-info.java |    22 +
 .../org/apache/pulsar/common/schema/KeyValue.java  |     2 +-
 .../pulsar/common/schema/KeyValueEncodingType.java |    11 +-
 .../apache/pulsar/common/schema/SchemaInfo.java    |     9 +-
 .../common/schema/SchemaInfoWithVersion.java       |    46 +
 .../apache/pulsar/common/schema/SchemaType.java    |    65 +-
 .../apache/pulsar/common/schema/package-info.java  |    22 +
 .../client/impl/auth/AuthenticationAthenzTest.java |     7 +-
 pulsar-client-cpp/.gitignore                       |     7 +-
 pulsar-client-cpp/CMakeLists.txt                   |    25 +-
 pulsar-client-cpp/README.md                        |     1 +
 pulsar-client-cpp/docker-build.sh                  |     2 +-
 pulsar-client-cpp/docker-lib-check.sh              |    23 +
 pulsar-client-cpp/docker-tests.sh                  |     2 +-
 pulsar-client-cpp/include/pulsar/Message.h         |     3 +
 pulsar-client-cpp/include/pulsar/MessageBatch.h    |    49 +
 pulsar-client-cpp/include/pulsar/MessageId.h       |    10 +-
 pulsar-client-cpp/include/pulsar/Producer.h        |     3 +
 pulsar-client-cpp/include/pulsar/Schema.h          |     1 +
 pulsar-client-cpp/lib/BatchMessageContainer.cc     |     7 +-
 pulsar-client-cpp/lib/BatchMessageContainer.h      |     1 +
 pulsar-client-cpp/lib/CMakeLists.txt               |    17 +-
 pulsar-client-cpp/lib/ClientConnection.cc          |    16 +-
 pulsar-client-cpp/lib/ClientImpl.cc                |     9 +-
 pulsar-client-cpp/lib/Commands.cc                  |    39 +
 pulsar-client-cpp/lib/Commands.h                   |     5 +-
 pulsar-client-cpp/lib/CompressionCodecSnappy.cc    |    35 +-
 pulsar-client-cpp/lib/CompressionCodecSnappy.h     |     2 +-
 pulsar-client-cpp/lib/ConnectionPool.cc            |    13 +
 pulsar-client-cpp/lib/ConnectionPool.h             |     2 +
 pulsar-client-cpp/lib/Message.cc                   |     2 +
 pulsar-client-cpp/lib/MessageBatch.cc              |    57 +
 pulsar-client-cpp/lib/MultiTopicsConsumerImpl.cc   |    16 +-
 pulsar-client-cpp/lib/Producer.cc                  |     7 +
 pulsar-client-cpp/lib/ProducerImpl.cc              |    19 +-
 pulsar-client-cpp/lib/ProducerImpl.h               |     6 +
 pulsar-client-cpp/pkg/deb/docker-build-deb.sh      |     2 +-
 pulsar-client-cpp/python/pulsar/__init__.py        |    42 +
 pulsar-client-cpp/python/src/enums.cc              |     1 +
 pulsar-client-cpp/python/src/message.cc            |    17 +
 pulsar-client-cpp/python/src/utils.h               |     1 +
 pulsar-client-cpp/test-conf/standalone-ssl.conf    |     9 +
 pulsar-client-cpp/test-conf/standalone.conf        |     9 +
 pulsar-client-cpp/tests/BasicEndToEndTest.cc       |    73 +-
 pulsar-client-cpp/tests/BatchMessageTest.cc        |    93 +-
 pulsar-client-cpp/tests/CMakeLists.txt             |     2 +-
 .../tests/CompressionCodecSnappyTest.cc            |    38 +
 pulsar-client-cpp/tests/ConsumerStatsTest.cc       |    28 +-
 pulsar-client-cpp/tests/PulsarFriend.h             |     4 +
 pulsar-client-cpp/tests/standalone.conf            |     9 +
 .../examples/sendWithMsgID/producer.go             |     2 +-
 pulsar-client-go/pulsar/c_client.go                |    14 +-
 pulsar-client-go/pulsar/c_consumer.go              |     6 +-
 pulsar-client-go/pulsar/c_producer.go              |     8 +-
 pulsar-client-go/pulsar/c_reader.go                |     2 +-
 pulsar-client-go/pulsar/producer.go                |     4 +-
 pulsar-client-go/pulsar/producer_test.go           |     4 +-
 pulsar-client-kafka-compat/pom.xml                 |     6 +
 .../pulsar-client-kafka-shaded_0_8/pom.xml         |   433 +
 .../pulsar-client-kafka-shaded_0_9/pom.xml         |   271 +
 .../pulsar-client-kafka-tests/pom.xml              |     2 +-
 .../kafka/compat/examples/ProducerAvroExample.java |     1 +
 .../kafka/compat/examples/ProducerExample.java     |     1 +
 .../pulsar-client-kafka-tests_0_8/pom.xml          |    77 +
 .../compat/examples/HighLevelConsumerExample.java  |   121 +
 .../compat/examples/LowLevelConsumerExample.java   |   146 +
 .../kafka/compat/examples/ProducerExample.java     |   131 +
 .../client/kafka/compat/examples/utils/Tweet.java  |    67 +
 .../pulsar-client-kafka-tests_0_9/pom.xml          |    70 +
 .../kafka/compat/examples/ConsumerAvroExample.java |    75 +
 .../kafka/compat/examples/ConsumerExample.java     |    60 +
 .../kafka/compat/examples/ProducerAvroExample.java |    69 +
 .../kafka/compat/examples/ProducerExample.java     |    52 +
 .../client/kafka/compat/examples/utils/Bar.java    |    30 +
 .../client/kafka/compat/examples/utils/Foo.java    |    35 +
 .../pulsar-client-kafka/pom.xml                    |     5 +
 .../clients/consumer/PulsarKafkaConsumer.java      |     2 +-
 .../clients/producer/PulsarKafkaProducer.java      |     6 +-
 .../pulsar/client/kafka/compat/MessageIdUtils.java |    44 -
 .../kafka/compat/PulsarClientKafkaConfig.java      |     7 +
 .../pulsar-client-kafka_0_8/pom.xml                |   120 +
 .../kafka/clients/consumer/ConsumerConnector.java  |   230 +
 .../kafka/clients/consumer/ConsumerIterator.java   |   143 +
 .../clients/consumer/PulsarConsumerConfig.java     |    28 +
 .../clients/consumer/PulsarKafkaConsumer.java      |    30 +
 .../kafka/clients/consumer/PulsarKafkaStream.java  |    68 +
 .../clients/consumer/PulsarMessageAndMetadata.java |    92 +
 .../clients/producer/PulsarClientKafkaConfig.java  |   169 +
 .../clients/producer/PulsarKafkaProducer.java      |   303 +
 .../consumer/PulsarByteBufferMessageSet.java       |    93 +
 .../simple/consumer/PulsarFetchResponse.java       |    47 +
 .../simple/consumer/PulsarKafkaSimpleConsumer.java |   354 +
 .../clients/simple/consumer/PulsarMessage.java     |    41 +
 .../simple/consumer/PulsarMsgAndOffset.java        |    40 +
 .../simple/consumer/PulsarOffsetCommitRequest.java |    61 +
 .../consumer/PulsarOffsetCommitResponse.java       |    43 +
 .../simple/consumer/PulsarOffsetFetchRequest.java  |    36 +
 .../simple/consumer/PulsarOffsetFetchResponse.java |    40 +
 .../consumer/PulsarOffsetMetadataAndError.java     |    44 +
 .../simple/consumer/PulsarOffsetRequest.java       |    40 +
 .../simple/consumer/PulsarOffsetResponse.java      |    52 +
 .../simple/consumer/PulsarPartitionMetadata.java   |    51 +
 .../simple/consumer/PulsarTopicMetadata.java       |    42 +
 .../consumer/PulsarTopicMetadataResponse.java      |    71 +
 .../clients/consumer/PulsarKafkaConsumerTest.java  |    75 +
 .../clients/producer/PulsarKafkaProducerTest.java  |   124 +
 .../kafka/test/KafkaProducerConsumerTest.java      |   247 +
 .../test/KafkaProducerSimpleConsumerTest.java      |   256 +
 .../pulsar-client-kafka_0_9/pom.xml                |    71 +
 .../clients/consumer/PulsarKafkaConsumer.java      |   597 ++
 .../clients/producer/PulsarKafkaProducer.java      |   330 +
 .../client/kafka/compat/KafkaMessageRouter.java    |    44 +
 .../kafka/compat/PulsarClientKafkaConfig.java      |     0
 .../kafka/compat/PulsarConsumerKafkaConfig.java    |    72 +
 .../client/kafka/compat/PulsarKafkaSchema.java     |    77 +
 .../kafka/compat/PulsarProducerKafkaConfig.java    |    65 +
 .../clients/producer/PulsarKafkaProducerTest.java  |   192 +
 pulsar-client-tools-test/pom.xml                   |     2 +-
 .../apache/pulsar/admin/cli/CmdFunctionsTest.java  |    73 +-
 .../org/apache/pulsar/admin/cli/CliCommand.java    |    10 +-
 .../apache/pulsar/admin/cli/CmdFunctionWorker.java |     6 +-
 .../org/apache/pulsar/admin/cli/CmdFunctions.java  |    89 +-
 .../org/apache/pulsar/admin/cli/CmdSchemas.java    |    38 +-
 .../java/org/apache/pulsar/admin/cli/CmdSinks.java |    10 +
 .../org/apache/pulsar/admin/cli/CmdSources.java    |    10 +
 .../pulsar/admin/cli/utils/SchemaExtractor.java    |    11 +-
 .../org/apache/pulsar/client/cli/CmdConsume.java   |    44 +-
 .../org/apache/pulsar/client/cli/CmdProduce.java   |    34 +-
 .../org/apache/pulsar/client/cli/NoSplitter.java   |    39 +
 .../org/apache/pulsar/client/impl/Backoff.java     |    32 +-
 .../apache/pulsar/client/impl/BackoffBuilder.java  |    16 +-
 .../client/impl/BatchMessageContainerImpl.java     |     8 +-
 .../client/impl/BatchMessageKeyBasedContainer.java |    31 +-
 .../client/impl/BinaryProtoLookupService.java      |     2 -
 .../pulsar/client/impl/ClientBuilderImpl.java      |     2 +-
 .../org/apache/pulsar/client/impl/ClientCnx.java   |    40 +-
 .../apache/pulsar/client/impl/ConsumerBase.java    |    80 +-
 .../pulsar/client/impl/ConsumerBuilderImpl.java    |    11 +-
 .../apache/pulsar/client/impl/ConsumerImpl.java    |   110 +-
 .../pulsar/client/impl/ConsumerInterceptors.java   |    12 +-
 .../pulsar/client/impl/DefaultBatcherBuilder.java  |     2 +
 .../pulsar/client/impl/HttpLookupService.java      |     3 +-
 .../pulsar/client/impl/KeyBasedBatcherBuilder.java |     2 +
 .../org/apache/pulsar/client/impl/MessageImpl.java |     2 +-
 .../pulsar/client/impl/MultiMessageIdImpl.java     |   111 +
 .../client/impl/MultiTopicsConsumerImpl.java       |   154 +-
 .../impl/PatternMultiTopicsConsumerImpl.java       |     7 +-
 .../PersistentAcknowledgmentsGroupingTracker.java  |     2 +-
 .../apache/pulsar/client/impl/ProducerBase.java    |    18 +
 .../pulsar/client/impl/ProducerBuilderImpl.java    |    14 +-
 .../apache/pulsar/client/impl/ProducerImpl.java    |     6 +-
 .../pulsar/client/impl/ProducerInterceptors.java   |     6 +-
 .../client/impl/ProducerStatsRecorderImpl.java     |     2 +-
 .../pulsar/client/impl/PulsarClientImpl.java       |    90 +-
 .../pulsar/client/impl/ReaderBuilderImpl.java      |     3 +-
 .../org/apache/pulsar/client/impl/ReaderImpl.java  |     3 +-
 .../pulsar/client/impl/TopicMessageIdImpl.java     |     2 +-
 .../client/impl/TypedMessageBuilderImpl.java       |    42 +-
 .../pulsar/client/impl/ZeroQueueConsumerImpl.java  |    13 +-
 .../client/impl/conf/ClientConfigurationData.java  |     4 +-
 .../impl/conf/ProducerConfigurationData.java       |    36 +-
 .../pulsar/client/impl/schema/AbstractSchema.java  |    64 +
 .../client/impl/schema/AutoConsumeSchema.java      |    80 +-
 .../pulsar/client/impl/schema/AvroSchema.java      |     9 +-
 .../pulsar/client/impl/schema/BooleanSchema.java   |    12 +-
 .../pulsar/client/impl/schema/ByteBufSchema.java   |    12 +-
 .../client/impl/schema/ByteBufferSchema.java       |    18 +-
 .../pulsar/client/impl/schema/ByteSchema.java      |    20 +-
 .../pulsar/client/impl/schema/BytesSchema.java     |    16 +-
 .../pulsar/client/impl/schema/DateSchema.java      |    14 +-
 .../pulsar/client/impl/schema/DoubleSchema.java    |    27 +-
 .../pulsar/client/impl/schema/FloatSchema.java     |    26 +-
 .../pulsar/client/impl/schema/IntSchema.java       |    27 +-
 .../pulsar/client/impl/schema/JSONSchema.java      |     3 +-
 .../pulsar/client/impl/schema/KeyValueSchema.java  |   133 +-
 .../client/impl/schema/KeyValueSchemaInfo.java     |    39 +-
 .../pulsar/client/impl/schema/LongSchema.java      |    26 +-
 .../pulsar/client/impl/schema/ProtobufSchema.java  |     3 +-
 .../pulsar/client/impl/schema/SchemaUtils.java     |    69 +-
 .../pulsar/client/impl/schema/ShortSchema.java     |    26 +-
 .../pulsar/client/impl/schema/StringSchema.java    |    29 +-
 .../pulsar/client/impl/schema/StructSchema.java    |    54 +-
 .../pulsar/client/impl/schema/TimeSchema.java      |    14 +-
 .../pulsar/client/impl/schema/TimestampSchema.java |    14 +-
 .../impl/schema/generic/GenericAvroReader.java     |    30 +-
 .../impl/schema/generic/GenericAvroSchema.java     |    15 +-
 .../impl/schema/generic/GenericJsonReader.java     |    27 +-
 .../impl/schema/generic/GenericJsonSchema.java     |    11 +-
 .../generic/MultiVersionSchemaInfoProvider.java    |    58 +-
 .../client/impl/schema/reader/AvroReader.java      |    32 +-
 .../client/impl/schema/reader/JsonReader.java      |    24 +-
 .../client/impl/schema/reader/ProtobufReader.java  |    26 +-
 .../impl/transaction/TransactionBuilderImpl.java   |    55 +
 .../transaction/TransactionCoordinatorClient.java  |    80 +
 .../TransactionCoordinatorClientImpl.java          |    59 +
 .../client/impl/transaction/TransactionImpl.java   |   129 +
 .../client/impl/transaction/package-info.java      |    22 +
 .../apache/pulsar/client/util/MessageIdUtils.java  |    44 +
 .../apache/pulsar/client/api/ConsumerIdTest.java   |    20 +-
 .../pulsar/client/examples/TransactionExample.java |    98 +
 .../org/apache/pulsar/client/impl/BackoffTest.java |     4 +-
 .../pulsar/client/impl/BatchMessageIdImplTest.java |    40 +-
 .../apache/pulsar/client/impl/BuildersTest.java    |    24 +-
 .../client/impl/ClientInitializationTest.java      |     3 +-
 .../pulsar/client/impl/ConnectionTimeoutTest.java  |     2 -
 .../pulsar/client/impl/ConsumerImplTest.java       |    21 +-
 .../pulsar/client/impl/MessageIdCompareToTest.java |   246 +-
 .../apache/pulsar/client/impl/MessageImplTest.java |    13 +-
 .../client/impl/MultiTopicsConsumerImplTest.java   |     2 +-
 .../client/impl/ProducerBuilderImplTest.java       |    28 +
 .../client/impl/ProducerStatsRecorderImplTest.java |    57 +
 .../client/impl/TypedMessageBuilderImplTest.java   |     6 +-
 .../impl/conf/ConfigurationDataUtilsTest.java      |     8 +-
 .../pulsar/client/impl/schema/AvroSchemaTest.java  |    26 +
 .../client/impl/schema/BooleanSchemaTest.java      |    15 +-
 .../pulsar/client/impl/schema/BytesSchemaTest.java |     7 +
 .../pulsar/client/impl/schema/DateSchemaTest.java  |    17 +-
 .../client/impl/schema/DefaultSchemasTest.java     |     4 +-
 .../client/impl/schema/DoubleSchemaTest.java       |    15 +-
 .../pulsar/client/impl/schema/FloatSchemaTest.java |    17 +-
 .../pulsar/client/impl/schema/IntSchemaTest.java   |    15 +-
 .../pulsar/client/impl/schema/JSONSchemaTest.java  |    24 +
 .../client/impl/schema/KeyValueSchemaInfoTest.java |    18 +-
 .../pulsar/client/impl/schema/LongSchemaTest.java  |    17 +-
 .../client/impl/schema/PrimitiveSchemaTest.java    |     7 +-
 .../client/impl/schema/ProtobufSchemaTest.java     |    16 +
 .../pulsar/client/impl/schema/SchemaTestUtils.java |    11 +
 .../pulsar/client/impl/schema/ShortSchemaTest.java |    15 +-
 .../client/impl/schema/StringSchemaTest.java       |    23 +
 .../schema/SupportVersioningAvroSchemaTest.java    |     3 +-
 .../SupportVersioningKeyValueSchemaTest.java       |     5 +-
 .../pulsar/client/impl/schema/TimeSchemaTest.java  |    10 +-
 .../client/impl/schema/TimestampSchemaTest.java    |    12 +-
 .../impl/schema/generic/GenericAvroSchemaTest.java |     3 +-
 .../impl/schema/generic/GenericSchemaImplTest.java |   182 +-
 .../MultiVersionSchemaInfoProviderTest.java        |     4 +-
 pulsar-common/pom.xml                              |    20 +
 .../client/api/url/DataURLStreamHandler.java       |     6 +
 .../api/url/PulsarURLStreamHandlerFactory.java     |     4 +
 .../java/org/apache/pulsar/client/api/url/URL.java |     3 +
 .../apache/pulsar/client/api/url/package-info.java |    22 +
 .../common/allocator/PulsarByteBufAllocator.java   |     3 +
 .../pulsar/common/allocator/package-info.java      |    22 +
 .../apache/pulsar/common/api/proto/PulsarApi.java  | 10203 ++++++++++++++++++-
 .../pulsar/common/api/proto/PulsarMarkers.java     |   369 +
 .../pulsar/common/api/raw/MessageParser.java       |    20 +-
 .../apache/pulsar/common/api/raw/RawMessage.java   |    18 +-
 .../apache/pulsar/common/api/raw/RawMessageId.java |     3 +
 .../common/api/raw/ReferenceCountedObject.java     |     5 +
 .../apache/pulsar/common/api/raw/package-info.java |    22 +
 .../common/compression/CompressionCodec.java       |     9 +-
 .../common/compression/CompressionCodecLZ4.java    |     8 +-
 .../common/compression/CompressionCodecNone.java   |     6 +-
 .../compression/CompressionCodecProvider.java      |     9 +
 .../common/compression/CompressionCodecSnappy.java |     7 +-
 .../common/compression/CompressionCodecZLib.java   |     2 +-
 .../common/compression/CompressionCodecZstd.java   |     2 +-
 .../pulsar/common/compression/package-info.java    |    22 +
 .../common/conf/InternalConfigurationData.java     |     3 +
 .../apache/pulsar/common/conf/package-info.java    |    22 +
 .../pulsar/common/functions/ConsumerConfig.java    |     9 +-
 .../pulsar/common/functions/FunctionConfig.java    |    25 +-
 .../pulsar/common/functions/FunctionState.java     |    15 +-
 .../apache/pulsar/common/functions/Resources.java  |    18 +-
 .../pulsar/common/functions/UpdateOptions.java     |     4 +-
 .../org/apache/pulsar/common/functions/Utils.java  |    15 +-
 .../pulsar/common/functions/WindowConfig.java      |     8 +-
 .../apache/pulsar/common/functions/WorkerInfo.java |     5 +-
 .../pulsar/common/functions/package-info.java      |    22 +
 .../pulsar/common/io/ConnectorDefinition.java      |    15 +-
 .../org/apache/pulsar/common/io/SinkConfig.java    |    15 +-
 .../org/apache/pulsar/common/io/SourceConfig.java  |    17 +-
 .../org/apache/pulsar/common/io/package-info.java  |    22 +
 .../pulsar/common/lookup/data/LookupData.java      |    23 +-
 .../pulsar/common/lookup/data/package-info.java    |    22 +
 .../org/apache/pulsar/common/naming/Constants.java |     3 +
 .../org/apache/pulsar/common/naming/Metadata.java  |     3 +
 .../apache/pulsar/common/naming/NamedEntity.java   |     2 +-
 .../apache/pulsar/common/naming/NamespaceName.java |    12 +-
 .../apache/pulsar/common/naming/ServiceUnitId.java |    13 +-
 .../apache/pulsar/common/naming/TopicDomain.java   |     3 +
 .../org/apache/pulsar/common/naming/TopicName.java |    48 +-
 .../apache/pulsar/common/naming/package-info.java  |    22 +
 .../org/apache/pulsar/common/nar/FileUtils.java    |    10 +-
 .../apache/pulsar/common/nar/NarClassLoader.java   |    17 +-
 .../org/apache/pulsar/common/nar/NarUnpacker.java  |     5 +-
 .../org/apache/pulsar/common/nar/package-info.java |    22 +
 .../org/apache/pulsar/common/net/package-info.java |    22 +
 .../common/partition/PartitionedTopicMetadata.java |     3 +
 .../pulsar/common/partition/package-info.java      |    22 +
 .../pulsar/common/policies/AutoFailoverPolicy.java |     7 +-
 .../common/policies/NamespaceIsolationPolicy.java  |    23 +-
 .../pulsar/common/policies/data/AuthAction.java    |     8 +-
 .../pulsar/common/policies/data/AuthPolicies.java  |     9 +-
 .../policies/data/AutoFailoverPolicyData.java      |     8 +-
 .../policies/data/AutoFailoverPolicyType.java      |     7 +-
 .../pulsar/common/policies/data/BacklogQuota.java  |    21 +-
 .../policies/data/BookieAffinityGroupData.java     |     3 +
 .../pulsar/common/policies/data/BookieInfo.java    |     3 +
 .../policies/data/BookiesRackConfiguration.java    |    21 +-
 .../common/policies/data/BrokerAssignment.java     |     3 +
 .../data/BrokerNamespaceIsolationData.java         |    18 +-
 .../pulsar/common/policies/data/BrokerStatus.java  |     3 +
 .../pulsar/common/policies/data/BundlesData.java   |     6 +-
 .../pulsar/common/policies/data/ClusterData.java   |     6 +-
 .../pulsar/common/policies/data/ConsumerStats.java |    31 +-
 .../pulsar/common/policies/data/DispatchRate.java  |     6 +-
 .../pulsar/common/policies/data/ErrorData.java     |     3 +
 .../common/policies/data/ExceptionInformation.java |     3 +
 .../pulsar/common/policies/data/FailureDomain.java |     3 +
 .../pulsar/common/policies/data/FunctionStats.java |   110 +-
 .../common/policies/data/FunctionStatus.java       |    14 +-
 .../pulsar/common/policies/data/LocalPolicies.java |     3 +
 .../policies/data/NamespaceIsolationData.java      |     7 +-
 .../policies/data/NamespaceOwnershipStatus.java    |     6 +
 .../policies/data/NonPersistentPublisherStats.java |     3 +-
 .../data/NonPersistentReplicatorStats.java         |     5 +-
 .../data/NonPersistentSubscriptionStats.java       |     5 +-
 .../policies/data/NonPersistentTopicStats.java     |    18 +-
 .../data/PartitionedTopicInternalStats.java        |     7 +-
 .../policies/data/PartitionedTopicStats.java       |     7 +-
 .../common/policies/data/PersistencePolicies.java  |     6 +-
 .../policies/data/PersistentOfflineTopicStats.java |    29 +-
 .../data/PersistentTopicInternalStats.java         |    12 +-
 .../common/policies/data/PersistentTopicStats.java |     2 +-
 .../pulsar/common/policies/data/Policies.java      |    28 +-
 .../common/policies/data/PublisherStats.java       |    25 +-
 .../common/policies/data/ReplicatorStats.java      |    27 +-
 .../pulsar/common/policies/data/ResourceQuota.java |    54 +-
 .../common/policies/data/RetentionPolicies.java    |     1 +
 .../SchemaAutoUpdateCompatibilityStrategy.java     |     2 +-
 .../pulsar/common/policies/data/SinkStatus.java    |    14 +-
 .../pulsar/common/policies/data/SourceStatus.java  |    14 +-
 .../pulsar/common/policies/data/SubscribeRate.java |     3 +
 .../common/policies/data/SubscriptionAuthMode.java |     6 +-
 .../common/policies/data/SubscriptionStats.java    |    29 +-
 .../pulsar/common/policies/data/TenantInfo.java    |     7 +-
 .../pulsar/common/policies/data/TopicStats.java    |    33 +-
 .../policies/data/WorkerFunctionInstanceStats.java |     8 +-
 .../pulsar/common/policies/data/package-info.java  |    22 +
 .../policies/impl/AutoFailoverPolicyFactory.java   |     3 +
 .../common/policies/impl/MinAvailablePolicy.java   |     9 +-
 .../policies/impl/NamespaceIsolationPolicies.java  |    39 +-
 .../impl/NamespaceIsolationPolicyImpl.java         |    25 +-
 .../pulsar/common/policies/impl/package-info.java  |    22 +
 .../pulsar/common/policies/package-info.java       |    22 +
 .../apache/pulsar/common/protocol/ByteBufPair.java |     8 +-
 .../pulsar/common/protocol/CommandUtils.java       |     6 +-
 .../apache/pulsar/common/protocol/Commands.java    |   418 +-
 .../org/apache/pulsar/common/protocol/Markers.java |    81 +-
 .../pulsar/common/protocol/PulsarDecoder.java      |   141 +-
 .../pulsar/common/protocol/PulsarHandler.java      |     9 +-
 .../pulsar/common/protocol/package-info.java       |    22 +
 .../common/protocol/schema/BytesSchemaVersion.java |   155 +-
 .../protocol/schema/DeleteSchemaResponse.java      |     3 +
 .../common/protocol/schema/EmptyVersion.java       |     3 +
 .../schema/GetAllVersionsSchemaResponse.java       |    36 +
 .../common/protocol/schema/GetSchemaResponse.java  |     3 +
 .../protocol/schema/IsCompatibilityResponse.java   |    37 +
 .../common/protocol/schema/LatestVersion.java      |     3 +
 .../protocol/schema/LongSchemaVersionResponse.java |    35 +
 .../common/protocol/schema/PostSchemaPayload.java  |     3 +
 .../common/protocol/schema/PostSchemaResponse.java |     3 +
 .../pulsar/common/protocol/schema/SchemaData.java  |     5 +-
 .../common/protocol/schema/SchemaInfoUtil.java     |     7 +-
 .../common/protocol/schema/SchemaVersion.java      |     3 +
 .../common/protocol/schema/package-info.java       |    22 +
 .../common/sasl/JAASCredentialsContainer.java      |    10 +-
 .../apache/pulsar/common/sasl/KerberosName.java    |    51 +-
 .../pulsar/common/sasl/TGTRefreshThread.java       |     5 +-
 .../apache/pulsar/common/sasl/package-info.java    |    22 +
 .../apache/pulsar/common/stats/AllocatorStats.java |    15 +
 .../common/stats/JvmDefaultGCMetricsLogger.java    |     9 +-
 .../pulsar/common/stats/JvmG1GCMetricsLogger.java  |     3 +
 .../pulsar/common/stats/JvmGCMetricsLogger.java    |     6 +-
 .../org/apache/pulsar/common/stats/JvmMetrics.java |    12 +-
 .../org/apache/pulsar/common/stats/Metrics.java    |    19 +-
 .../apache/pulsar/common/stats/package-info.java   |    22 +
 .../common/util/ClientSslContextRefresher.java     |     5 +-
 .../apache/pulsar/common/util/DateFormatter.java   |     2 +-
 .../common/util/DefaultSslContextBuilder.java      |     1 +
 .../org/apache/pulsar/common/util/FieldParser.java |    56 +-
 .../common/util/FileModifiedTimeUpdater.java       |     7 +-
 .../org/apache/pulsar/common/util/FutureUtil.java  |     5 +-
 .../java/org/apache/pulsar/common/util/Hash.java   |     7 +-
 .../apache/pulsar/common/util/KeyStoreHolder.java  |     5 +
 .../apache/pulsar/common/util/Murmur3_32Hash.java  |     7 +-
 .../util/NamespaceBundleStatsComparator.java       |     1 -
 .../pulsar/common/util/NettySslContextBuilder.java |    10 +-
 .../apache/pulsar/common/util/NumberFormat.java    |     3 +
 .../pulsar/common/util/ObjectMapperFactory.java    |     1 +
 .../org/apache/pulsar/common/util/RateLimiter.java |    57 +-
 .../pulsar/common/util/RelativeTimeUtil.java       |     5 +-
 .../apache/pulsar/common/util/SecurityUtility.java |    28 +-
 .../common/util/SslContextAutoRefreshBuilder.java  |     8 +-
 .../common/util/collections/ConcurrentBitSet.java  |     3 +
 .../util/collections/ConcurrentLongHashMap.java    |    20 +-
 .../util/collections/ConcurrentLongPairSet.java    |    44 +-
 .../util/collections/ConcurrentOpenHashMap.java    |    17 +-
 .../util/collections/ConcurrentOpenHashSet.java    |    19 +-
 .../ConcurrentOpenLongPairRangeSet.java            |    55 +-
 .../collections/ConcurrentSortedLongPairSet.java   |     9 +-
 .../collections/GrowableArrayBlockingQueue.java    |     7 +-
 .../collections/GrowablePriorityLongPairQueue.java |    39 +-
 .../common/util/collections/LongPairRangeSet.java  |    95 +-
 .../common/util/collections/LongPairSet.java       |    34 +-
 .../util/collections/TripleLongPriorityQueue.java  |    26 +-
 .../common/util/collections/package-info.java      |    22 +
 .../pulsar/common/util/netty/EventLoopUtil.java    |     6 +-
 .../pulsar/common/util/netty/package-info.java     |    22 +
 .../apache/pulsar/common/util/package-info.java    |    22 +
 .../util/protobuf/ByteBufCodedInputStream.java     |     5 +-
 .../util/protobuf/ByteBufCodedOutputStream.java    |     5 +-
 .../pulsar/common/util/protobuf/package-info.java  |    22 +
 .../policies/data/loadbalancer/BrokerUsage.java    |    14 +-
 .../policies/data/loadbalancer/JSONWritable.java   |     7 +-
 .../policies/data/loadbalancer/JvmUsage.java       |     2 +-
 .../data/loadbalancer/LoadManagerReport.java       |    43 +-
 .../policies/data/loadbalancer/LoadReport.java     |    30 +-
 .../data/loadbalancer/LoadReportDeserializer.java  |     9 +-
 .../data/loadbalancer/LocalBrokerData.java         |    30 +-
 .../data/loadbalancer/NamespaceBundleStats.java    |    18 +-
 .../policies/data/loadbalancer/NamespaceUsage.java |    28 +-
 .../data/loadbalancer/ResourceUnitRanking.java     |    53 +-
 .../policies/data/loadbalancer/ResourceUsage.java  |     5 +-
 .../data/loadbalancer/ServiceLookupData.java       |    31 +-
 .../data/loadbalancer/SystemResourceUsage.java     |     4 +-
 .../policies/data/loadbalancer/package-info.java   |    22 +
 pulsar-common/src/main/proto/PulsarApi.proto       |   918 +-
 pulsar-common/src/main/proto/PulsarMarkers.proto   |     8 +
 .../common/compression/CompressorCodecTest.java    |     4 +-
 .../pulsar/common/naming/NamespaceNameTest.java    |    12 +-
 .../apache/pulsar/common/naming/TopicNameTest.java |     9 +-
 .../policies/data/AutoFailoverPolicyDataTest.java  |    12 +-
 .../common/policies/data/ClusterDataTest.java      |    21 +-
 .../common/policies/data/ConsumerStatsTest.java    |    40 +-
 .../common/policies/data/LocalPolicesTest.java     |    11 +-
 .../policies/data/NamespaceIsolationDataTest.java  |    13 +-
 .../policies/data/PersistencePoliciesTest.java     |     9 +-
 .../common/policies/data/PoliciesDataTest.java     |    14 +-
 .../common/policies/data/PublisherStatsTest.java   |    58 +-
 .../common/policies/data/RetentionPolicesTest.java |    13 +-
 .../policies/impl/MinAvailablePolicyTest.java      |    12 +-
 .../impl/NamespaceIsolationPoliciesTest.java       |    29 +-
 .../impl/NamespaceIsolationPolicyImplTest.java     |    40 +-
 .../apache/pulsar/common/protocol/MarkersTest.java |    39 +
 .../apache/pulsar/common/util/RateLimiterTest.java |    12 +-
 .../collections/ConcurrentLongHashMapTest.java     |    18 +-
 .../collections/ConcurrentLongPairSetTest.java     |     8 +-
 .../collections/ConcurrentOpenHashMapTest.java     |    18 +-
 .../collections/ConcurrentOpenHashSetTest.java     |     6 +-
 .../ConcurrentOpenLongPairRangeSetTest.java        |    40 +-
 .../ConcurrentSortedLongPairSetTest.java           |     6 +-
 .../GrowableArrayBlockingQueueTest.java            |    12 +-
 .../GrowablePriorityLongPairQueueTest.java         |     7 +-
 .../collections/TripleLongPriorityQueueTest.java   |     7 +-
 pulsar-discovery-service/pom.xml                   |     4 +-
 .../service/web/ZookeeperCacheLoaderTest.java      |     1 -
 pulsar-flink/pom.xml                               |    19 +
 .../connectors/pulsar/BasePulsarOutputFormat.java  |    22 +-
 .../connectors/pulsar/PulsarAvroOutputFormat.java  |     4 +-
 .../connectors/pulsar/PulsarCsvOutputFormat.java   |     3 +-
 .../connectors/pulsar/PulsarJsonOutputFormat.java  |     3 +-
 .../connectors/pulsar/PulsarOutputFormat.java      |     3 +-
 .../batch/connectors/pulsar/package-info.java      |    22 +
 .../serialization/AvroSerializationSchema.java     |     7 +-
 .../serialization/CsvSerializationSchema.java      |     7 +-
 .../pulsar/serialization/package-info.java         |    22 +
 .../connectors/pulsar/FlinkPulsarProducer.java     |    25 +-
 .../connectors/pulsar/PulsarConsumerSource.java    |    21 +-
 .../connectors/pulsar/PulsarSourceBuilder.java     |    46 +-
 .../connectors/pulsar/PulsarTableSink.java         |    12 +-
 .../streaming/connectors/pulsar/package-info.java  |    22 +
 .../pulsar/partitioner/PulsarKeyExtractor.java     |     4 +-
 .../pulsar/partitioner/package-info.java           |    22 +
 .../serialization/AvroSerializationSchemaTest.java |     5 +-
 .../pulsar/PulsarConsumerSourceTests.java          |    51 +-
 pulsar-function-go/conf/conf.go                    |    22 +-
 .../pulsar/functions/instance/ContextImpl.java     |    18 +-
 .../functions/instance/JavaInstanceRunnable.java   |    20 +-
 .../pulsar/functions/instance/LogAppender.java     |     5 +-
 .../functions/instance/state/StateContextImpl.java |    18 +-
 .../instance/stats/ComponentStatsManager.java      |    13 +-
 .../pulsar/functions/sink/PulsarSinkDisable.java   |     2 +-
 .../pulsar/functions/instance/ContextImplTest.java |    32 +-
 .../instance/state/StateContextImplTest.java       |    12 +
 .../pulsar/functions/sink/PulsarSinkTest.java      |    10 +-
 .../pulsar/functions/source/PulsarSourceTest.java  |     7 +-
 .../windowing/WindowFunctionExecutorTest.java      |     1 -
 .../python-examples/custom_object_function.py      |     4 +-
 .../functions/runtime/KubernetesRuntime.java       |    73 +-
 .../runtime/KubernetesRuntimeFactory.java          |     8 +
 .../apache/pulsar/functions/runtime/Runtime.java   |     4 +
 .../runtime/KubernetesRuntimeFactoryTest.java      |     4 +-
 .../functions/runtime/KubernetesRuntimeTest.java   |   149 +-
 .../ClearTextSecretsProviderTest.java              |    13 +-
 .../EnvironmentBasedSecretsProviderTest.java       |    11 +-
 .../pulsar/functions/utils/FunctionCommon.java     |     5 +
 .../functions/utils/FunctionConfigUtils.java       |    18 +-
 .../pulsar/functions/utils/ReflectionsTest.java    |     5 +-
 .../pulsar/functions/worker/ConnectorsManager.java |     6 +-
 .../pulsar/functions/worker/FunctionActioner.java  |     6 +-
 .../functions/worker/FunctionRuntimeManager.java   |     9 +-
 .../pulsar/functions/worker/WorkerConfig.java      |    12 +
 .../pulsar/functions/worker/WorkerService.java     |     3 +
 .../functions/worker/rest/api/ComponentImpl.java   |    17 +
 .../functions/worker/FunctionActionerTest.java     |    11 +-
 .../worker/FunctionRuntimeManagerTest.java         |   159 +-
 .../functions/worker/MembershipManagerTest.java    |    15 +-
 .../worker/rest/api/FunctionsImplTest.java         |    26 +-
 .../rest/api/v3/FunctionApiV3ResourceTest.java     |    54 +
 .../pulsar/io/canal/CanalAbstractSource.java       |    17 +-
 .../apache/pulsar/io/common/IOConfigUtilsTest.java |     1 -
 pulsar-io/debezium/core/pom.xml                    |     2 +-
 .../PollingZooKeeperConfigurationProvider.java     |     7 +-
 .../pulsar/io/flume/source/AbstractSource.java     |    17 +-
 .../node/TestAbstractConfigurationProvider.java    |    83 +-
 .../pulsar/io/hdfs2/AbstractHdfsConnector.java     |     7 +-
 .../pulsar/io/hdfs3/AbstractHdfsConnector.java     |     7 +-
 .../apache/pulsar/io/jdbc/JdbcAbstractSink.java    |    36 +-
 .../org/apache/pulsar/io/jdbc/JdbcSinkTest.java    |    63 +-
 pulsar-io/kafka-connect-adaptor/pom.xml            |     2 +-
 .../io/kafka/connect/KafkaConnectSourceTest.java   |     8 +-
 pulsar-io/kinesis/pom.xml                          |    25 +-
 .../io/kinesis/AbstractKinesisConnector.java       |   133 +
 .../io/kinesis/AwsCredentialProviderPlugin.java    |    26 +
 .../io/kinesis/AwsDefaultProviderChainPlugin.java  |    47 +
 .../pulsar/io/kinesis/BaseKinesisConfig.java       |    73 +
 .../apache/pulsar/io/kinesis/KinesisRecord.java    |    91 +
 .../pulsar/io/kinesis/KinesisRecordProcessor.java  |   123 +
 .../io/kinesis/KinesisRecordProcessorFactory.java  |    41 +
 .../org/apache/pulsar/io/kinesis/KinesisSink.java  |    91 +-
 .../pulsar/io/kinesis/KinesisSinkConfig.java       |    48 +-
 .../apache/pulsar/io/kinesis/KinesisSource.java    |   142 +
 .../pulsar/io/kinesis/KinesisSourceConfig.java     |   200 +
 .../io/kinesis/STSAssumeRoleProviderPlugin.java    |    64 +
 .../resources/META-INF/services/pulsar-io.yaml     |     3 +-
 .../pulsar/io/kinesis/KinesisSinkConfigTests.java  |    71 +
 .../apache/pulsar/io/kinesis/KinesisSinkTest.java  |    12 +-
 .../io/kinesis/KinesisSourceConfigTests.java       |   146 +
 .../org/apache/pulsar/io/kinesis/UtilsTest.java    |    45 +-
 .../kinesis/src/test/resources/sinkConfig.yaml     |    27 +
 .../kinesis/src/test/resources/sourceConfig.yaml   |    32 +
 pulsar-io/mongo/pom.xml                            |     6 +-
 .../org/apache/pulsar/io/mongodb/MongoConfig.java  |    29 +-
 .../org/apache/pulsar/io/mongodb/MongoSink.java    |    24 +-
 .../org/apache/pulsar/io/mongodb/MongoSource.java  |   167 +
 .../resources/META-INF/services/pulsar-io.yaml     |     3 +-
 .../apache/pulsar/io/mongodb/MongoConfigTest.java  |     6 +-
 .../apache/pulsar/io/mongodb/MongoSourceTest.java  |   129 +
 pulsar-metadata/pom.xml                            |    51 +
 .../org/apache/pulsar/metadata/api/GetResult.java  |    38 +
 .../apache/pulsar/metadata/api/MetadataStore.java  |   111 +
 .../pulsar/metadata/api/MetadataStoreConfig.java   |    42 +
 .../metadata/api/MetadataStoreException.java       |    49 +
 .../pulsar/metadata/api/MetadataStoreFactory.java  |    46 +
 .../java/org/apache/pulsar/metadata/api/Stat.java  |    42 +
 .../metadata/impl/zookeeper/ZKMetadataStore.java   |   251 +
 .../apache/pulsar/metadata/MetadataStoreTest.java  |   250 +
 .../org/apache/pulsar/metadata/TestZKServer.java   |   119 +
 pulsar-proxy/pom.xml                               |     2 +-
 .../pulsar/proxy/server/LookupProxyHandler.java    |    31 +-
 .../pulsar/proxy/server/ProxyConfiguration.java    |     6 +
 .../apache/pulsar/proxy/server/ProxyService.java   |     4 +-
 .../pulsar/proxy/server/ProxyServiceStarter.java   |     3 +-
 .../org/apache/pulsar/proxy/server/WebServer.java  |     6 +-
 .../org/apache/pulsar/proxy/server/ProxyTest.java  |     5 +-
 .../pulsar/spark/SparkStreamingPulsarReceiver.java |    22 +-
 pulsar-sql/pom.xml                                 |    24 +-
 pulsar-sql/presto-distribution/LICENSE             |     2 +-
 pulsar-sql/presto-distribution/pom.xml             |     2 +-
 pulsar-sql/presto-pulsar/pom.xml                   |     4 +-
 .../pulsar/sql/presto/AvroSchemaHandler.java       |    15 +-
 .../pulsar/sql/presto/JSONSchemaHandler.java       |    14 +-
 .../pulsar/sql/presto/PulsarColumnHandle.java      |    62 +-
 .../pulsar/sql/presto/PulsarColumnMetadata.java    |    41 +-
 .../apache/pulsar/sql/presto/PulsarConnector.java  |    17 +-
 .../pulsar/sql/presto/PulsarConnectorCache.java    |    36 +-
 .../pulsar/sql/presto/PulsarConnectorConfig.java   |   138 +-
 .../pulsar/sql/presto/PulsarConnectorFactory.java  |    14 +-
 .../pulsar/sql/presto/PulsarConnectorId.java       |    11 +-
 .../sql/presto/PulsarConnectorMetricsTracker.java  |   229 +-
 .../pulsar/sql/presto/PulsarConnectorModule.java   |    18 +-
 .../pulsar/sql/presto/PulsarConnectorUtils.java    |    27 +-
 .../pulsar/sql/presto/PulsarHandleResolver.java    |    17 +-
 .../pulsar/sql/presto/PulsarInternalColumn.java    |    63 +-
 .../apache/pulsar/sql/presto/PulsarMetadata.java   |   248 +-
 .../org/apache/pulsar/sql/presto/PulsarPlugin.java |     6 +-
 .../sql/presto/PulsarPrimitiveSchemaHandler.java   |    63 +
 .../pulsar/sql/presto/PulsarRecordCursor.java      |    71 +-
 .../apache/pulsar/sql/presto/PulsarRecordSet.java  |     8 +-
 .../pulsar/sql/presto/PulsarRecordSetProvider.java |    11 +-
 .../pulsar/sql/presto/PulsarSchemaHandlers.java    |    58 +
 .../org/apache/pulsar/sql/presto/PulsarSplit.java  |    53 +-
 .../pulsar/sql/presto/PulsarSplitManager.java      |   207 +-
 .../pulsar/sql/presto/PulsarTableHandle.java       |    12 +-
 .../pulsar/sql/presto/PulsarTableLayoutHandle.java |    24 +-
 .../pulsar/sql/presto/PulsarTopicDescription.java  |     9 +-
 .../pulsar/sql/presto/PulsarTransactionHandle.java |     3 +
 .../apache/pulsar/sql/presto/SchemaHandler.java    |     3 +
 .../org/apache/pulsar/sql/presto/package-info.java |    22 +
 .../pulsar/sql/presto/TestPulsarConnector.java     |    51 +-
 .../sql/presto/TestPulsarConnectorConfig.java      |    52 +
 .../pulsar/sql/presto/TestPulsarMetadata.java      |   105 +-
 .../presto/TestPulsarPrimitiveSchemaHandler.java   |   162 +
 .../pulsar/sql/presto/TestPulsarSplitManager.java  |   138 +-
 .../java/org/apache/pulsar/storm/PulsarSpout.java  |     4 +-
 pulsar-testclient/pom.xml                          |     2 +-
 .../pulsar/testclient/PerformanceConsumer.java     |    10 +-
 .../pulsar/testclient/PerformanceProducer.java     |   370 +-
 pulsar-transaction/buffer/pom.xml                  |    57 -
 .../transaction/buffer/TransactionBuffer.java      |   131 -
 .../buffer/TransactionBufferProvider.java          |    62 -
 .../buffer/TransactionBufferReader.java            |    51 -
 .../transaction/buffer/TransactionEntry.java       |    72 -
 .../pulsar/transaction/buffer/TransactionMeta.java |    52 -
 .../exceptions/EndOfTransactionException.java      |    31 -
 .../exceptions/TransactionBufferException.java     |    39 -
 .../exceptions/TransactionNotFoundException.java   |    31 -
 .../exceptions/TransactionNotSealedException.java  |    31 -
 .../exceptions/TransactionSealedException.java     |    33 -
 .../exceptions/UnexpectedTxnStatusException.java   |    37 -
 .../buffer/exceptions/package-info.java            |    22 -
 .../buffer/impl/InMemTransactionBuffer.java        |   291 -
 .../impl/InMemTransactionBufferProvider.java       |    33 -
 .../buffer/impl/InMemTransactionBufferReader.java  |    97 -
 .../buffer/impl/TransactionEntryImpl.java          |    79 -
 .../transaction/buffer/impl/package-info.java      |    22 -
 .../pulsar/transaction/buffer/package-info.java    |    22 -
 .../impl/InMemTransactionBufferReaderTest.java     |   152 -
 .../buffer/impl/TransactionBufferTest.java         |   280 -
 .../buffer/impl/TransactionEntryImplTest.java      |    49 -
 pulsar-transaction/pom.xml                         |     1 -
 pulsar-websocket/pom.xml                           |     2 +-
 .../apache/pulsar/websocket/ProducerHandler.java   |     6 +-
 pulsar-zookeeper-utils/pom.xml                     |     6 +-
 .../broker/zookeeper/aspectj/ClientCnxnAspect.java |     7 +-
 .../pulsar/zookeeper/GlobalZooKeeperCache.java     |     2 +-
 .../pulsar/zookeeper/LocalBookkeeperEnsemble.java  |    37 +-
 .../pulsar/zookeeper/LocalZooKeeperCache.java      |     2 +-
 .../zookeeper/ZkBookieRackAffinityMapping.java     |    10 +-
 .../apache/pulsar/zookeeper/ZooKeeperCache.java    |   167 +-
 .../pulsar/zookeeper/ZooKeeperChildrenCache.java   |    43 +-
 .../pulsar/zookeeper/ZooKeeperDataCache.java       |    27 +-
 .../LocalZooKeeperConnectionServiceTest.java       |    21 +-
 .../zookeeper/ZkBookieRackAffinityMappingTest.java |    21 +-
 ...kIsolatedBookieEnsemblePlacementPolicyTest.java |     3 +-
 .../pulsar/zookeeper/ZookeeperCacheTest.java       |    88 +-
 site/_data/sidebar.yaml                            |     2 +
 site2/.gitignore                                   |     2 +-
 site2/docs/adaptors-kafka.md                       |     1 +
 site2/docs/admin-api-non-partitioned-topics.md     |    97 +
 site2/docs/admin-api-non-persistent-topics.md      |    10 +
 site2/docs/admin-api-overview.md                   |    40 +-
 site2/docs/admin-api-partitioned-topics.md         |    37 +-
 site2/docs/admin-api-schemas.md                    |    98 -
 site2/docs/administration-dashboard.md             |    27 +-
 site2/docs/administration-geo.md                   |    85 +-
 site2/docs/administration-load-balance.md          |   119 +-
 site2/docs/administration-proxy.md                 |    42 +-
 site2/docs/administration-stats.md                 |    94 +-
 site2/docs/administration-upgrade.md               |   150 +
 site2/docs/administration-zk-bk.md                 |   120 +-
 site2/docs/assets/schema-autoupdate-consumer.png   |   Bin 0 -> 86897 bytes
 site2/docs/assets/schema-autoupdate-producer.png   |   Bin 0 -> 116544 bytes
 site2/docs/assets/schema-consumer.png              |   Bin 0 -> 56594 bytes
 site2/docs/assets/schema-producer.png              |   Bin 0 -> 56467 bytes
 site2/docs/client-libraries-java.md                |   118 +-
 site2/docs/client-libraries-node.md                |   401 +
 site2/docs/client-libraries-python.md              |     2 +-
 site2/docs/concepts-messaging.md                   |    35 +-
 site2/docs/concepts-overview.md                    |     1 -
 site2/docs/concepts-schema-registry.md             |    81 -
 site2/docs/concepts-tiered-storage.md              |     6 +-
 site2/docs/cookbooks-compaction.md                 |     7 +-
 site2/docs/cookbooks-retention-expiry.md           |    38 +-
 site2/docs/deploy-aws.md                           |    83 +-
 site2/docs/deploy-bare-metal-multi-cluster.md      |   207 +-
 site2/docs/deploy-bare-metal.md                    |   223 +-
 site2/docs/deploy-dcos.md                          |    38 +-
 site2/docs/deploy-kubernetes.md                    |   112 +-
 site2/docs/deploy-monitoring.md                    |    46 +-
 site2/docs/developing-schema.md                    |    57 -
 site2/docs/functions-api.md                        |   720 --
 site2/docs/functions-cli.md                        |   195 +
 site2/docs/functions-debug.md                      |     4 +-
 site2/docs/functions-debugging.md                  |   451 -
 site2/docs/functions-deploy.md                     |   210 +
 site2/docs/functions-deploying.md                  |   228 -
 site2/docs/functions-develop.md                    |   636 ++
 site2/docs/functions-guarantees.md                 |    41 -
 site2/docs/functions-metrics.md                    |    43 -
 site2/docs/functions-overview.md                   |   409 +-
 site2/docs/functions-quickstart.md                 |   389 -
 site2/docs/functions-runtime.md                    |     7 +-
 site2/docs/functions-state.md                      |   118 -
 site2/docs/functions-worker.md                     |    14 +-
 site2/docs/getting-started-clients.md              |     1 +
 site2/docs/getting-started-standalone.md           |     2 +-
 site2/docs/io-aerospike-sink.md                    |    25 +
 site2/docs/io-aerospike.md                         |    21 -
 site2/docs/io-cassandra-sink.md                    |    26 +
 site2/docs/io-cassandra.md                         |    22 -
 site2/docs/io-cdc-canal.md                         |   360 +-
 site2/docs/io-cdc-debezium.md                      |   370 +-
 site2/docs/io-cdc.md                               |    27 +-
 site2/docs/io-connectors.md                        |    93 +-
 site2/docs/io-debug.md                             |   328 +
 site2/docs/io-develop.md                           |   278 +-
 site2/docs/io-elasticsearch-sink.md                |    49 +
 site2/docs/io-elasticsearch.md                     |    21 -
 site2/docs/io-file-source.md                       |   137 +
 site2/docs/io-file.md                              |    27 -
 site2/docs/io-flume-sink.md                        |    51 +
 site2/docs/io-flume-source.md                      |    51 +
 site2/docs/io-hdfs.md                              |     2 +-
 site2/docs/io-hdfs3-sink.md                        |    53 +
 site2/docs/io-influxdb-sink.md                     |    61 +
 site2/docs/io-influxdb.md                          |    25 -
 site2/docs/io-jdbc-sink.md                         |    56 +
 site2/docs/io-jdbc.md                              |    23 -
 site2/docs/io-kafka-sink.md                        |    66 +
 site2/docs/io-kafka-source.md                      |   170 +
 site2/docs/io-kafka.md                             |    44 -
 site2/docs/io-kinesis-sink.md                      |    65 +
 site2/docs/io-kinesis-source.md                    |    49 +
 site2/docs/io-kinesis.md                           |    36 -
 site2/docs/io-managing.md                          |   161 -
 site2/docs/io-mongo-sink.md                        |    51 +
 site2/docs/io-mongo.md                             |    20 -
 site2/docs/io-netty-source.md                      |   204 +
 site2/docs/io-netty.md                             |    20 -
 site2/docs/io-overview.md                          |   141 +-
 site2/docs/io-rabbitmq-source.md                   |    77 +
 site2/docs/io-rabbitmq.md                          |    54 -
 site2/docs/io-redis-sink.md                        |    69 +
 site2/docs/io-redis.md                             |    27 -
 site2/docs/io-solr-sink.md                         |    60 +
 site2/docs/io-solr.md                              |    21 -
 site2/docs/io-twitter-source.md                    |    27 +
 site2/docs/io-twitter.md                           |    24 -
 site2/docs/io-use.md                               |  1504 +++
 site2/docs/reference-configuration.md              |    24 +-
 site2/docs/reference-connector-admin.md            |   600 ++
 site2/docs/reference-metrics.md                    |   243 +
 site2/docs/reference-pulsar-admin.md               |   531 +-
 site2/docs/schema-evolution-compatibility.md       |   783 ++
 site2/docs/schema-get-started.md                   |    90 +
 site2/docs/schema-manage.md                        |   785 ++
 site2/docs/schema-understand.md                    |   575 ++
 site2/docs/security-athenz.md                      |    34 +-
 site2/docs/security-authorization.md               |    46 +-
 site2/docs/security-encryption.md                  |    60 +-
 site2/docs/security-extending.md                   |    41 +-
 site2/docs/security-jwt.md                         |   240 +
 site2/docs/security-kerberos.md                    |   166 +-
 site2/docs/security-overview.md                    |    33 +-
 site2/docs/security-tls-authentication.md          |    68 +-
 site2/docs/security-tls-transport.md               |   105 +-
 site2/docs/security-token-admin.md                 |   158 -
 site2/docs/security-token-client.md                |   125 -
 site2/docs/sql-deployment-configurations.md        |     2 +-
 site2/docs/sql-overview.md                         |     2 +-
 site2/tools/javadoc-gen.sh                         |    60 +-
 site2/website/core/Footer.js                       |    18 +-
 site2/website/data/resources.js                    |   217 +-
 site2/website/data/users.js                        |   230 +
 site2/website/pages/en/admin-rest-api.js           |     5 +-
 site2/website/pages/en/functions-rest-api.js       |     3 +-
 site2/website/pages/en/index.js                    |    37 +
 site2/website/pages/en/powered-by.js               |    60 +
 site2/website/pages/en/sink-rest-api.js            |     3 +-
 site2/website/pages/en/source-rest-api.js          |     3 +-
 site2/website/release-notes.md                     |    93 +
 site2/website/releases.json                        |     1 +
 site2/website/sidebars.json                        |    38 +-
 site2/website/static/css/custom.css                |    51 +-
 site2/website/static/js/custom.js                  |    15 +-
 site2/website/static/js/getSwaggerByVersion.js     |    53 +
 site2/website/static/js/pjax-api.min.js            |     4 -
 site2/website/static/swagger/2.3.0/swagger.json    |  8191 +++++++++++++++
 .../static/swagger/2.3.0/swaggerfunctions.json     |  3431 +++++++
 .../website/static/swagger/2.3.0/swaggersink.json  |  3038 ++++++
 .../static/swagger/2.3.0/swaggersource.json        |  3038 ++++++
 site2/website/static/swagger/2.3.1/swagger.json    |  8191 +++++++++++++++
 .../static/swagger/2.3.1/swaggerfunctions.json     |  3431 +++++++
 .../website/static/swagger/2.3.1/swaggersink.json  |  3038 ++++++
 .../static/swagger/2.3.1/swaggersource.json        |  3038 ++++++
 site2/website/static/swagger/2.3.2/swagger.json    |  8191 +++++++++++++++
 .../static/swagger/2.3.2/swaggerfunctions.json     |  3431 +++++++
 .../website/static/swagger/2.3.2/swaggersink.json  |  3038 ++++++
 .../static/swagger/2.3.2/swaggersource.json        |  3038 ++++++
 site2/website/static/swagger/2.4.0/swagger.json    |  9698 ++++++++++++++++++
 .../static/swagger/2.4.0/swaggerfunctions.json     |  1496 +++
 .../website/static/swagger/2.4.0/swaggersink.json  |   926 ++
 .../static/swagger/2.4.0/swaggersource.json        |   860 ++
 site2/website/static/swagger/2.4.1/swagger.json    |  9741 ++++++++++++++++++
 .../static/swagger/2.4.1/swaggerfunctions.json     |  1496 +++
 .../website/static/swagger/2.4.1/swaggersink.json  |   935 ++
 .../static/swagger/2.4.1/swaggersource.json        |   886 ++
 .../version-2.1.0-incubating/io-kinesis.md         |     3 +-
 .../version-2.1.0-incubating/security-athenz.md    |     4 +
 .../security-tls-authentication.md                 |     9 +
 .../version-2.2.1/security-tls-authentication.md   |     9 +
 .../version-2.2.1/security-token-admin.md          |     9 +
 .../versioned_docs/version-2.3.1/io-hdfs.md        |     2 +-
 .../version-2.3.1/security-token-admin.md          |     9 +
 .../version-2.4.0/security-kerberos.md             |    98 +-
 .../version-2.4.0/security-tls-authentication.md   |     9 +
 .../version-2.4.0/security-token-admin.md          |     9 +
 .../admin-api-non-persistent-topics.md             |   264 +
 .../version-2.4.1/admin-api-overview.md            |    89 +
 .../version-2.4.1/admin-api-partitioned-topics.md  |   377 +
 .../version-2.4.1/administration-dashboard.md      |    60 +
 .../version-2.4.1/administration-upgrade.md        |   153 +
 .../version-2.4.1/client-libraries-java.md         |   708 ++
 .../version-2.4.1/concepts-messaging.md            |   415 +
 .../version-2.4.1/concepts-tiered-storage.md       |    18 +
 .../version-2.4.1/cookbooks-compaction.md          |   127 +
 .../versioned_docs/version-2.4.1/functions-cli.md  |   196 +
 .../version-2.4.1/functions-debug.md               |   448 +
 .../version-2.4.1/functions-deploy.md              |   211 +
 .../version-2.4.1/functions-develop.md             |   637 ++
 .../version-2.4.1/functions-overview.md            |   188 +
 .../version-2.4.1/functions-runtime.md             |   142 +
 .../version-2.4.1/functions-worker.md              |   243 +
 .../version-2.4.1/getting-started-standalone.md    |   226 +
 .../versioned_docs/version-2.4.1/io-cdc-canal.md   |   175 +
 .../version-2.4.1/io-cdc-debezium.md               |   261 +
 .../versioned_docs/version-2.4.1/io-connectors.md  |    31 +
 .../versioned_docs/version-2.4.1/io-debug.md       |   329 +
 .../versioned_docs/version-2.4.1/io-develop.md     |   196 +
 .../versioned_docs/version-2.4.1/io-jdbc.md        |    24 +
 .../versioned_docs/version-2.4.1/io-netty.md       |   148 +
 .../website/versioned_docs/version-2.4.1/io-use.md |  1505 +++
 .../version-2.4.1/reference-configuration.md       |   496 +
 .../version-2.4.1/reference-connector-admin.md     |   601 ++
 .../version-2.4.1/reference-metrics.md             |   244 +
 .../version-2.4.1/reference-pulsar-admin.md        |  2079 ++++
 .../schema-evolution-compatibility.md              |   784 ++
 .../version-2.4.1/schema-get-started.md            |    91 +
 .../versioned_docs/version-2.4.1/schema-manage.md  |   786 ++
 .../version-2.4.1/schema-understand.md             |   576 ++
 .../version-2.4.1/security-athenz.md               |    93 +
 .../version-2.4.1/security-authorization.md        |   100 +
 .../version-2.4.1/security-kerberos.md             |   391 +
 .../version-2.4.1/security-overview.md             |    38 +
 .../version-2.4.1/security-tls-authentication.md   |   156 +
 .../version-2.4.1/security-tls-transport.md        |   230 +
 .../version-2.4.1/security-token-client.md         |   123 +
 .../versioned_sidebars/version-2.4.1-sidebars.json |   141 +
 site2/website/versions.json                        |     1 +
 src/gen-swagger.sh                                 |    10 +-
 tests/docker-images/java-test-functions/pom.xml    |     7 +
 .../pulsar/tests/integration/io/TestStateSink.java |    51 +
 .../tests/integration/io/TestStateSource.java      |    54 +
 tests/integration/pom.xml                          |     2 +-
 .../tests/integration/cli/AdminMultiHostTest.java  |    14 +-
 .../pulsar/tests/integration/cli/CLITest.java      |     6 +
 .../tests/integration/cli/HealthCheckTest.java     |   120 +
 .../tests/integration/cli/HealthcheckTest.java     |   115 -
 .../containers/DebeziumPostgreSqlContainer.java    |    54 +
 .../integration/containers/PulsarContainer.java    |     1 +
 .../integration/functions/PulsarFunctionsTest.java |   283 +-
 .../functions/PulsarFunctionsTestBase.java         |     2 +-
 .../integration/functions/PulsarStateTest.java     |   257 +-
 .../integration/io/DebeziumMySqlSourceTester.java  |     6 +-
 .../io/DebeziumPostgreSqlSourceTester.java         |   116 +
 .../tests/integration/io/KafkaSourceTester.java    |     2 +-
 .../tests/integration/schema/SchemaTest.java       |   182 +-
 .../pulsar/tests/integration/schema/Schemas.java   |     6 +
 .../tests/integration/suites/PulsarTestSuite.java  |    24 +-
 .../integration/topologies/PulsarCluster.java      |    14 +-
 .../integration/topologies/PulsarClusterSpec.java  |     2 +-
 .../integration/upgrade/PulsarZKDowngradeTest.java |     2 +-
 .../integration/src/test/resources/pulsar-cli.xml  |     2 +-
 .../kafka/PulsarKafkaProducerThreadSafeTest.java   |    61 +
 .../spark/SparkStreamingPulsarReceiverTest.java    |    56 +-
 tests/pulsar-storm-test/pom.xml                    |     2 +-
 .../org/apache/pulsar/storm/PulsarSpoutTest.java   |   101 +-
 tiered-storage/file-system/pom.xml                 |     4 +-
 .../impl/FileSystemManagedLedgerOffloaderTest.java |    30 +-
 tiered-storage/jcloud/pom.xml                      |     4 +-
 1222 files changed, 149557 insertions(+), 15470 deletions(-)

diff --cc pulsar-client-cpp/tests/BatchMessageTest.cc
index 23c202d,d6fa6c3..3fe46ed
--- a/pulsar-client-cpp/tests/BatchMessageTest.cc
+++ b/pulsar-client-cpp/tests/BatchMessageTest.cc
@@@ -49,11 -54,14 +54,13 @@@ static void messageListenerFunction(Con
      consumer.acknowledge(msg);
  }
  
 -static void sendCallBack(Result r, const Message& msg) {
 +static void sendCallBack(Result r, const MessageId& msgId) {
      ASSERT_EQ(r, ResultOk);
      globalTestBatchMessagesCounter++;
 -    LOG_DEBUG("Received publish acknowledgement for " << msg.getDataAsString());
  }
  
+ static void sendFailCallBack(Result r, Result expect_result) { EXPECT_EQ(r, expect_result); }
+ 
  static int globalPublishCountSuccess = 0;
  static int globalPublishCountQueueFull = 0;
  
diff --cc pulsar-client-go/examples/sendWithMsgID/producer.go
index 065f655,4498cfc..3777372
--- a/pulsar-client-go/examples/sendWithMsgID/producer.go
+++ b/pulsar-client-go/examples/sendWithMsgID/producer.go
@@@ -45,19 -43,4 +45,19 @@@ func main() 
  	if err != nil {
  		log.Fatal(err)
  	}
 +
 +	defer producer.Close()
 +
 +	ctx := context.Background()
 +
 +	for i := 0; i < 10; i++ {
- 		msgID, err := producer.SendWithMsgID(ctx, pulsar.ProducerMessage{
++		msgID, err := producer.SendAndGetMsgID(ctx, pulsar.ProducerMessage{
 +			Payload: []byte(fmt.Sprintf("hello-%d", i)),
 +		})
 +
 +		if err != nil {
 +			log.Fatal(err)
 +		}
 +		fmt.Printf("The message Id value is: [%v] \n", msgID)
 +	}
  }
diff --cc pulsar-client-go/pulsar/c_producer.go
index 191b699,be9b4a4..92ceb84
--- a/pulsar-client-go/pulsar/c_producer.go
+++ b/pulsar-client-go/pulsar/c_producer.go
@@@ -242,33 -242,6 +242,33 @@@ func (p *producer) Send(ctx context.Con
  	}
  }
  
 +type msgID struct {
 +	err error
 +	id  MessageID
 +}
 +
- func (p *producer) SendWithMsgID(ctx context.Context, msg ProducerMessage) (MessageID, error) {
++func (p *producer) SendAndGetMsgID(ctx context.Context, msg ProducerMessage) (MessageID, error) {
 +	c := make(chan msgID, 10)
 +
 +	p.SendAsyncWithMsgID(ctx, msg, func(id MessageID, err error) {
 +		tmpMsgID := msgID{
 +			err: err,
 +			id:  id,
 +		}
 +		c <- tmpMsgID
 +		close(c)
 +	})
 +
 +	select {
 +	case <-ctx.Done():
 +		return nil, ctx.Err()
 +
 +	case cm := <-c:
 +		return cm.id, cm.err
 +	}
 +}
 +
 +
  type sendCallback struct {
  	message  ProducerMessage
  	callback func(ProducerMessage, error)
@@@ -325,32 -282,8 +325,32 @@@ func (p *producer) SendAsync(ctx contex
  	C._pulsar_producer_send_async(p.ptr, cMsg, savePointer(sendCallback{message: msg, callback: callback}))
  }
  
 +func (p *producer) SendAsyncWithMsgID(ctx context.Context, msg ProducerMessage, callback func(MessageID, error)) {
 +	if p.schema != nil {
 +		if msg.Value == nil {
 +			callback(nil, errors.New("message value is nil, please check"))
 +			return
 +		}
 +		payLoad, err := p.schema.Encode(msg.Value)
 +		if err != nil {
 +			callback(nil, errors.New("serialize message value error, please check"))
 +			return
 +		}
 +		msg.Payload = payLoad
 +	} else {
 +		if msg.Value != nil {
 +			callback(nil, errors.New("message value is set but no schema is provided, please check"))
 +			return
 +		}
 +	}
 +	cMsg := buildMessage(msg)
 +	defer C.pulsar_message_free(cMsg)
 +
 +	C._pulsar_producer_send_async_msg_id(p.ptr, cMsg, savePointer(sendCallbackWithMsgID{message: msg, callback: callback}))
 +}
 +
  func (p *producer) Close() error {
- 	c := make(chan error)
+ 	c := make(chan error, 1)
  	p.CloseAsync(func(err error) { c <- err; close(c) })
  	return <-c
  }
diff --cc pulsar-client-go/pulsar/producer.go
index e963385,eb64e64..dadfca5
--- a/pulsar-client-go/pulsar/producer.go
+++ b/pulsar-client-go/pulsar/producer.go
@@@ -166,15 -166,8 +166,15 @@@ type Producer interface 
  	// This call will be blocking until is successfully acknowledged by the Pulsar broker.
  	// Example:
  	// producer.Send(ctx, pulsar.ProducerMessage{ Payload: myPayload })
 +	// @Deprecated
  	Send(context.Context, ProducerMessage) error
  
 +	// Send a message
 +	// This call will be blocking until is successfully acknowledged by the Pulsar broker.
 +	// Example:
- 	// msgID, err := producer.SendWithMsgID(ctx, pulsar.ProducerMessage{ Payload: myPayload })
- 	SendWithMsgID(context.Context, ProducerMessage) (MessageID, error)
++	// msgID, err := producer.SendAndGetMsgID(ctx, pulsar.ProducerMessage{ Payload: myPayload })
++	SendAndGetMsgID(context.Context, ProducerMessage) (MessageID, error)
 +
  	// Send a message in asynchronous mode
  	// The callback will report back the message being published and
  	// the eventual error in publishing
diff --cc pulsar-client-go/pulsar/producer_test.go
index c1b2b69,07f43e0..c8eb08b
--- a/pulsar-client-go/pulsar/producer_test.go
+++ b/pulsar-client-go/pulsar/producer_test.go
@@@ -388,31 -388,3 +388,31 @@@ func TestProducer_Batch(t *testing.T) 
  		assert.Equal(t, 1, num)
  	}
  }
 +
- func TestProducer_SendWithMsgID(t *testing.T) {
++func TestProducer_SendAndGetMsgID(t *testing.T) {
 +	client, err := NewClient(ClientOptions{
 +		URL: "pulsar://localhost:6650",
 +	})
 +	assert.Nil(t, err)
 +	defer client.Close()
 +
 +	topicName := "test-send-with-message-id"
 +	producer, err := client.CreateProducer(ProducerOptions{
 +		Topic: topicName,
 +	})
 +	assert.Nil(t, err)
 +	defer producer.Close()
 +
 +	for i := 0; i < 10; i++ {
- 		msgID, err := producer.SendWithMsgID(context.Background(), ProducerMessage{
++		msgID, err := producer.SendAndGetMsgID(context.Background(), ProducerMessage{
 +			Payload: []byte(fmt.Sprintf("async-message-%d", i)),
 +		})
 +		if err != nil {
 +			log.Fatal(err)
 +		}
 +
 +		fmt.Printf("enable batch, the message id: %v\n", msgID)
 +
 +		assert.NotNil(t, IsNil(msgID))
 +	}
 +}