You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ma...@apache.org on 2022/11/29 19:38:37 UTC

[flink-connector-pulsar] branch main updated (f8fad21 -> 5ccbad3)

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

martijnvisser pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-pulsar.git


    from f8fad21   [hotfix] Setup auto-linking
     new 1ff7db4  [FLINK-20731] Introduce new pulsar source connector for flink.
     new ba077b8  [FLINK-23877][connector/pulsar] Provide an embedded pulsar server for testing.
     new 7998afc  [FLINK-23877][connector/pulsar] Drop the ConfigurationDataCustomizer, use ClientBuilder and PulsarAdminBuilder for creating instance.
     new 2c28ea0  [FLINK-23877][connector/pulsar] Change pulsar config option's type, drop PulsarJsonUtils, make it strong type support.
     new 3a380da  [FLINK-23877][connector/pulsar] Change the config setter in pulsar source builder. Drop Properties. Remove useless config options.
     new 41e85c3  [FLINK-23877][connector/pulsar] Since we have use the StartCursor, it's no need to expose the resetIncludeHead option for users.
     new 9593d5d  [FLINK-23877][connector/pulsar] Enrich the config options' description, make sure all the options have a detailed description.
     new 7b0bbfa  Update version to 1.15-SNAPSHOT
     new 239fa46  [hotfix][tests] Disabling flaky source testing + PulsarSourceITCase cases.
     new 8dff587  [FLINK-23971][tests] fix connector testing framework error when compare records in different splits
     new 43b56a7  [FLINK-23859] Fix typos
     new eb0d6b0  [FLINK-23848][connector/pulsar] Fix the consumer not found.
     new ee7aea9  [FLINK-23848][connector/pulsar] Make sure the topic would only be sought once.
     new 7e9016b  [FLINK-23944][connector/pulsar] Enable PulsarSourceITCase.testTaskManagerFailure after test framework was fixed.
     new 99aa59b  [FLINK-23864][docs] Add flink-connector-pulsar module to flink-docs, auto generate the config document.
     new 59db024  [FLINK-23864][connector/pulsar] Release Pulsar Message if user enable poolMessage option.
     new e1413ed  [FLINK-23864][connector/pulsar] Remove PULSAR_AUTO_UPDATE_PARTITIONS option.
     new 5d9c367  [FLINK-23864][docs] Add pulsar connector document (Chinese & English).
     new 9cf8dfd  [FLINK-24206][connector/pulsar] Close the pulsar client properly.
     new 89d97f2  [FLINK-24283][connector/pulsar] Use stick key consumer in Key_Shared subscription. This would make sure Pulsar won't treat the flink reader as a shared consumer.
     new d3b397c  [FLINK-23969][connector/pulsar] Create e2e tests for pulsar connector.
     new 97834d6  [FLINK-24129][connectors-pulsar] Harden TopicRangeTest.rangeCreationHaveALimitedScope.
     new 8f16502  [FLINK-24329][pulsar][tests] Fix port conflict
     new 98a2e54  [hotfix][docs] Remove the explicit requirement of flink-connector-base, and add missing StartCursor in pulsar connector document.
     new 473233e  [FLINK-24018][build] Remove Scala dependencies from Java APIs
     new e6b17b2  [hotfix][connector/testing-framework] Let ExternalContext#generateTestData returns List to preserve order
     new 4f0c27e  [FLINK-24733][connector/pulsar] Data loss in pulsar source when using shared mode
     new c3862b5  [FLINK-25061][tests] Add assertj in flink-parent
     new d41d7eb  [FLINK-23230] Fix protoc dependency for Apple Silicon / m1 support
     new cb05cfe  [FLINK-25210][pulsar][e2e][tests] add resource file to test jar
     new 59146fc  [FLINK-25044][pulsar][test]: fix the messsageId overflow when set to latest
     new b423590  [FLINK-25044][pulsar][test]: improve unit test for pulsar source
     new 596b376  [FLINK-25633] Set locale to en-US to avoid ambiguous decimal formattings
     new 207c70b  [FLINK-23944][test][pulsar] 1. change the Matcher to validate both size and data 2. pulsar IT test generate deterministic data
     new 21523d4  [hotfix][pulsar] Use correct super types for reader and fetcher manager.
     new 91d5b68  [FLINK-25287][connectors/pulsar] Use connector testing framework interface for Pulsar tests
     new a3d7dbf  [hotfix][connectors] Improve the typo and code style
     new 3d60296  [FLINK-25712][connectors/testing-framework] Merge flink-connector-testing module to flink-connector-test-utils module
     new 6e04612  [FLINK-25129][docs] Restructure project configuation pages
     new 7a5f558  [FLINK-25892][pulsar][test] add ArchUnit tests for test code
     new 28fb560  [FLINK-25530][python][connectors/pulsar] Support Pulsar source connector in Python DataStream API. (#18388)
     new 3817f0e  [FLINK-25840][tests] Add semantics test support for connector test framework
     new 8ef171e  [FLINK-24246][connector/pulsar] Bump PulsarClient version to latest 2.9.1
     new 09a93c3  [FLINK-26020][connector/pulsar] Unified Pulsar Connector config model for Pulsar source and sink.
     new 9788ec6  [FLINK-26021][connector/pulsar] Add the ability to merge the partitioned Pulsar topics.
     new ea5ff30  [FLINK-26023][connector/pulsar] Create a Pulsar sink config model for matching ProducerConfigurationData.
     new 2b1b084  [FLINK-26024][connector/pulsar] Create a PulsarSerializationSchema for better records serialization.
     new d2c0336  [FLINK-26022][connector/pulsar] Implement at-least-once and exactly-once Pulsar Sink.
     new ba4fb8e  [FLINK-26025][connector/pulsar] Replace MockPulsar with new Pulsar test tools based on PulsarStandalone.
     new d293bc4  [FLINK-26026][connector/pulsar] Create unit tests for Pulsar sink connector.
     new cf1a297  [FLINK-26038][connector/pulsar] Support delay message on PulsarSink.
     new 5efc3c0  [FLINK-26177][tests] Disable PulsarSourceITCase rescaling tests temporarily
     new 51f9453  [hotfix] Fix JUnit 5 mini cluster arch unit rules
     new e1dd82f  [hotfix][pulsar] Disable tests
     new 28b90f4  [FLINK-26192][pulsar] Remove call to Runtime#halt
     new dd00918  [FLINK-26241][pulsar] Fix divide-by-zero error
     new 289f15b  [FLINK-24407][doc-zh] Fix the broken links in Chinese document of Pulsar connector
     new b5d693e  [FLINK-26294][test] Using fixed description for ArchUnit ITCaseRules
     new 759e22a  [FLINK-26159][doc] add description for MAX_FETCH_RECORD related question
     new 46a5451  [FLINK-26160][pulsar][doc] update the doc of setUnboundedStopCursor()
     new 0fcea9c  [FLINK-26252][tests] Refactor MiniClusterExtension to support JUnit 5 parallel tests
     new 49d5899  [FLINK-25927][connectors][build] Consistent flink-connector-base usage
     new e23561e  Update version to 1.16-SNAPSHOT
     new 9655736  [FLINK-26177][Connector/pulsar] Use mocked pulsar runtime instead of embedded runtime and enable tests.
     new 697779e  [FLINK-26578][docs-zh] Translate new Project Configuration section to Chinese. This closes #19100
     new dec2194  [FLINK-26701][connectors] Revert FLINK-25927 apart from adding connector-base to flink-dist
     new 51cd722  [hotfix][docs]add the missing ending symbol ‘;’
     new bebdb9e  [FLINK-26642][connector/pulsar] Fix support for non-partitioned topic
     new 4abf65a  [FLINK-26028][Connector/pulsar] add sink documentation; change some pulsar source documentation.
     new 48e074f  [FLINK-25440][doc][pulsar] Stop and Start cursor now all uses publishTime instead of eventTime; doc changed to reflect this change
     new f3a5f45  [FLINK-26931][Connector/pulsar] Make the producer name and consumer name unique for each instance.
     new bf2de83  [FLINK-27024][build] Cleanup surefire configuration
     new c660dbd  [FLINK-26645][Connector/pulsar] Support subscribe only one topic partition.
     new ca6038d  [FLINK-27231][licence] Fix the SQL Pulsar licence issue
     new 7b96f55  [FLINK-27325][build] Remove custom forkCount settings
     new 0115564  [FLINK-27390][build] Remove unused flink-tests dependencies
     new 8c1a1b9  [FLINK-24721][build] Remove unnecessary relativePath to parent
     new 086adb5  [hotfix][docs-zh] Add known issues with Pulsar client under Java 11 to Chinese documentation.
     new f6912de  [FLINK-25795][python][connector/pulsar] Support pulsar sink connector in PyFlink DataStream API
     new b3d7ed7  [FLINK-27680][Connector][Pulsar] Disable PulsarSinkITCase and PulsarSourceITCase on JDK 11 since Pulsar doesn't support JDK 11 fully
     new 437b291  [hotfix][docs][connector/pulsar] Fix doc typo of setDeliveryGuarantee
     new e73077a  [FLINK-27690][python][connector/pulsar][docs] Add pulsar example and documentation
     new 8ec5698  [FLINK-27729][python][pulsar] Support constructing StartCursor and StopCursor from MessageId
     new eec2e82  [FLINK-27881][Connector/Pulsar] Never return null for PulsarMessageBuilder.
     new e62c5fe  [FLINK-27199][Connector/Pulsar] Bump the pulsar-client-all to latest 2.10.0.
     new cd217fd  [FLINK-27199][Connector/Pulsar] Pulsar 2.10.0 deprecated the queue length, add new memory-based options.
     new cf08a2b  [FLINK-27199][Connector/Pulsar] Move mocked Pulsar runtime to new local memory based metastore. Drop embedded Pulsar runtime. Add a bootstrap script for Pulsar docker runtime.
     new 2a9828a  [FLINK-28904][python][docs] Add missing connector/format documentation
     new 5375174  [FLINK-27399][Connector/Pulsar] Change initial consuming position setting logic for better handle the checkpoint. (#19972)
     new 38b81d1  [FLINK-27917][Connector/Pulsar] Drop Consumer.seek() in the testing method for fixing the race condition. (#20567)
     new 193337b  [FLINK-28972][python][connector/pulsar] Align Start/StopCursor methods with the Java API
     new 83f2c60  [FLINK-28676] Update copyright year to 2014-2022 in NOTICE files
     new 1bde9d4  [FLINK-28609][Connector/Pulsar] PulsarSchema didn't get properly serialized. (#20698)
     new f0fb0f8  [FLINK-29207][pulsar][BP-1.16] Fix Pulsar message eventTime may be incorrectly set to a negative number (#20798)
     new 66d7734  [FLINK-25868][build] Disable japicmp in packaging/e2e modules
     new a6586cb  [FLINK-28934][Connector/pulsar] Fix split assignment in different Pulsar subscriptions.
     new eb4dc4e  [FLINK-27388][Connector/pulsar] Change the topic setup logic in Pulsar runtime operator.
     new 1de01d3  [FLINK-28084][Connector/pulsar] Disable retry and delete reconsume logic on PulsarUnorderedPartitionSplitReader.
     new 021ed91  [FLINK-27611][Connector/pulsar] Fix ConcurrentModificationException during checkpoint on Pulsar unordered reader.
     new e9fb9ca  [FLINK-27400][Connector/pulsar] Filter system topics for Pulsar connector.
     new 8d6a57a  [FLINK-28934][Connector/pulsar] Support connector testing tools for Pulsar unordered source.
     new 0d186a0  [FLINK-26182][Connector/Pulsar] Drop the embedded Pulsar runtime for in favor of mock Pulsar runtime with local metastore support.
     new fa1dfbf  [FLINK-26182][Connector/Pulsar] Enable the transaction in the Pulsar TestContainers in a better way.
     new 7ed666e  [FLINK-26182][Connector/pulsar] Extract common logic from Pulsar source testing tools.
     new 07f8ed3  [FLINK-29381][Connector/Pulsar] Fixes the split assignment for Key Shared subscription.
     new ee95d9c  [FLINK-29381][Connector/Pulsar] Add a document on how to use Key_Shared subscription.
     new 6975956  [FLINK-26182][Connector/pulsar] Create e2e tests for the Pulsar source and sink based on the connector testing framework.
     new e09f0ad  [FLINK-29532][Connector/Pulsar] Update Pulsar dependency to 2.10.1.
     new c0d3b85  [FLINK-29495][Connector/Pulsar] Refactor Pulsar tests from JUnit4 annotation to JUnit5 annotation for disabling tests on Java 11
     new f962862  Add jaxb-api back to pulsar-client-all dependencies. (#21093)
     new 4d69f8e  [BP-1.16][FLINK-29613][Connector/Pulsar] Fix wrong batch size assertion (#21099)
     new 53b0cc6  [FLINK-30054][Connector/Pulsar] Move existing Pulsar connector code from Flink repo to dedicated Pulsar repo
     new 5ccbad3  [FLINK-30054][Connector/Pulsar] Address dependency convergence issues

The 113 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitmodules                                        |    4 +
 .idea/vcs.xml                                      |   24 +
 .../docs/connectors/datastream/pulsar.md           | 1024 +++++++++++++++++
 docs/content/docs/connectors/datastream/pulsar.md  | 1185 ++++++++++++++++++++
 .../3ac3a1dc-681f-4213-9990-b7b3298a20bc           |    0
 .../f4d91193-72ba-4ce4-ad83-98f780dce581           |   18 +
 .../archunit-violations/stored.rules               |    4 +
 flink-connector-pulsar/pom.xml                     |  330 ++++++
 .../pulsar/common/config/PulsarClientFactory.java  |  219 ++++
 .../pulsar/common/config/PulsarConfigBuilder.java  |  143 +++
 .../common/config/PulsarConfigValidator.java       |  105 ++
 .../pulsar/common/config/PulsarConfiguration.java  |  104 ++
 .../pulsar/common/config/PulsarOptions.java        |  529 +++++++++
 .../pulsar/common/schema/PulsarSchema.java         |  223 ++++
 .../pulsar/common/schema/PulsarSchemaFactory.java  |   44 +
 .../common/schema/PulsarSchemaTypeInformation.java |   98 ++
 .../common/schema/PulsarSchemaTypeSerializer.java  |  204 ++++
 .../pulsar/common/schema/PulsarSchemaUtils.java    |  202 ++++
 .../common/schema/factories/AvroSchemaFactory.java |   48 +
 .../schema/factories/BaseStructSchemaFactory.java  |   42 +
 .../common/schema/factories/JSONSchemaFactory.java |   41 +
 .../schema/factories/KeyValueSchemaFactory.java    |   84 ++
 .../schema/factories/PrimitiveSchemaFactory.java   |   91 ++
 .../factories/ProtobufNativeSchemaFactory.java     |   43 +
 .../schema/factories/ProtobufSchemaFactory.java    |   43 +
 .../schema/factories/StringSchemaFactory.java      |   48 +
 .../pulsar/common/utils/PulsarExceptionUtils.java  |   83 ++
 .../pulsar/common/utils/PulsarSerdeUtils.java      |  161 +++
 .../common/utils/PulsarTransactionUtils.java       |   68 ++
 .../flink/connector/pulsar/sink/PulsarSink.java    |  145 +++
 .../connector/pulsar/sink/PulsarSinkBuilder.java   |  377 +++++++
 .../connector/pulsar/sink/PulsarSinkOptions.java   |  288 +++++
 .../pulsar/sink/committer/PulsarCommittable.java   |   71 ++
 .../committer/PulsarCommittableSerializer.java     |   65 ++
 .../pulsar/sink/committer/PulsarCommitter.java     |  174 +++
 .../pulsar/sink/config/PulsarSinkConfigUtils.java  |  121 ++
 .../pulsar/sink/config/SinkConfiguration.java      |  160 +++
 .../connector/pulsar/sink/writer/PulsarWriter.java |  274 +++++
 .../sink/writer/context/PulsarSinkContext.java     |   46 +
 .../sink/writer/context/PulsarSinkContextImpl.java |   61 +
 .../sink/writer/delayer/FixedMessageDelayer.java   |   43 +
 .../pulsar/sink/writer/delayer/MessageDelayer.java |   62 +
 .../pulsar/sink/writer/message/PulsarMessage.java  |  111 ++
 .../sink/writer/message/PulsarMessageBuilder.java  |  127 +++
 .../sink/writer/router/KeyHashTopicRouter.java     |   71 ++
 .../pulsar/sink/writer/router/MessageKeyHash.java  |   85 ++
 .../sink/writer/router/RoundRobinTopicRouter.java  |   65 ++
 .../pulsar/sink/writer/router/TopicRouter.java     |   64 ++
 .../sink/writer/router/TopicRoutingMode.java       |   87 ++
 .../writer/serializer/PulsarSchemaWrapper.java     |   59 +
 .../serializer/PulsarSerializationSchema.java      |  129 +++
 .../PulsarSerializationSchemaWrapper.java          |   59 +
 .../sink/writer/topic/TopicMetadataListener.java   |  181 +++
 .../sink/writer/topic/TopicProducerRegister.java   |  202 ++++
 .../connector/pulsar/source/PulsarSource.java      |  184 +++
 .../pulsar/source/PulsarSourceBuilder.java         |  519 +++++++++
 .../pulsar/source/PulsarSourceOptions.java         |  617 ++++++++++
 .../pulsar/source/config/CursorVerification.java   |   49 +
 .../source/config/PulsarConsumerBuilder.java       |   89 ++
 .../source/config/PulsarSourceConfigUtils.java     |  166 +++
 .../pulsar/source/config/SourceConfiguration.java  |  245 ++++
 .../source/enumerator/PulsarSourceEnumState.java   |   48 +
 .../PulsarSourceEnumStateSerializer.java           |  107 ++
 .../source/enumerator/PulsarSourceEnumerator.java  |  282 +++++
 .../assigner/KeySharedSplitAssigner.java           |   93 ++
 .../assigner/NonSharedSplitAssigner.java           |   79 ++
 .../enumerator/assigner/SharedSplitAssigner.java   |   88 ++
 .../source/enumerator/assigner/SplitAssigner.java  |   63 ++
 .../enumerator/assigner/SplitAssignerBase.java     |  135 +++
 .../enumerator/assigner/SplitAssignerFactory.java  |   62 +
 .../source/enumerator/cursor/CursorPosition.java   |   92 ++
 .../source/enumerator/cursor/MessageIdUtils.java   |   73 ++
 .../source/enumerator/cursor/StartCursor.java      |   92 ++
 .../source/enumerator/cursor/StopCursor.java       |  156 +++
 .../cursor/start/MessageIdStartCursor.java         |   64 ++
 .../cursor/start/TimestampStartCursor.java         |   38 +
 .../cursor/stop/EventTimestampStopCursor.java      |   42 +
 .../cursor/stop/LatestMessageStopCursor.java       |   58 +
 .../cursor/stop/MessageIdStopCursor.java           |   55 +
 .../enumerator/cursor/stop/NeverStopCursor.java    |   33 +
 .../cursor/stop/PublishTimestampStopCursor.java    |   42 +
 .../enumerator/subscriber/PulsarSubscriber.java    |   71 ++
 .../subscriber/impl/BasePulsarSubscriber.java      |   91 ++
 .../subscriber/impl/TopicListSubscriber.java       |   85 ++
 .../subscriber/impl/TopicPatternSubscriber.java    |  111 ++
 .../source/enumerator/topic/TopicMetadata.java     |   57 +
 .../source/enumerator/topic/TopicNameUtils.java    |  137 +++
 .../source/enumerator/topic/TopicPartition.java    |  156 +++
 .../pulsar/source/enumerator/topic/TopicRange.java |  105 ++
 .../topic/range/FixedKeysRangeGenerator.java       |  185 +++
 .../topic/range/FixedRangeGenerator.java           |   57 +
 .../enumerator/topic/range/FullRangeGenerator.java |   48 +
 .../enumerator/topic/range/RangeGenerator.java     |  104 ++
 .../topic/range/SplitRangeGenerator.java           |   82 ++
 .../enumerator/topic/range/TopicRangeUtils.java    |  136 +++
 .../source/reader/PulsarSourceReaderFactory.java   |  127 +++
 .../deserializer/PulsarDeserializationSchema.java  |  137 +++
 ...DeserializationSchemaInitializationContext.java |   51 +
 .../PulsarDeserializationSchemaWrapper.java        |   66 ++
 .../reader/deserializer/PulsarSchemaWrapper.java   |   62 +
 .../deserializer/PulsarTypeInformationWrapper.java |   66 ++
 .../source/reader/emitter/PulsarRecordEmitter.java |   45 +
 .../reader/fetcher/PulsarFetcherManagerBase.java   |  106 ++
 .../fetcher/PulsarOrderedFetcherManager.java       |   75 ++
 .../fetcher/PulsarUnorderedFetcherManager.java     |   71 ++
 .../source/reader/message/PulsarMessage.java       |   74 ++
 .../reader/message/PulsarMessageCollector.java     |   60 +
 .../reader/source/PulsarOrderedSourceReader.java   |  203 ++++
 .../reader/source/PulsarSourceReaderBase.java      |   87 ++
 .../reader/source/PulsarUnorderedSourceReader.java |  179 +++
 .../split/PulsarOrderedPartitionSplitReader.java   |  134 +++
 .../split/PulsarPartitionSplitReaderBase.java      |  240 ++++
 .../split/PulsarUnorderedPartitionSplitReader.java |  160 +++
 .../pulsar/source/split/PulsarPartitionSplit.java  |  122 ++
 .../split/PulsarPartitionSplitSerializer.java      |  185 +++
 .../source/split/PulsarPartitionSplitState.java    |   73 ++
 .../architecture/TestCodeArchitectureTest.java     |   40 +
 .../common/config/PulsarConfigBuilderTest.java     |   76 ++
 .../common/config/PulsarConfigValidatorTest.java   |   57 +
 .../common/config/PulsarConfigurationTest.java     |   65 ++
 .../pulsar/common/schema/PulsarSchemaTest.java     |  153 +++
 .../schema/PulsarSchemaTypeInformationTest.java    |   49 +
 .../schema/PulsarSchemaTypeSerializerTest.java     |  103 ++
 .../common/schema/PulsarSchemaUtilsTest.java       |  104 ++
 .../schema/factories/AvroSchemaFactoryTest.java    |  214 ++++
 .../schema/factories/JSONSchemaFactoryTest.java    |   71 ++
 .../factories/KeyValueSchemaFactoryTest.java       |   76 ++
 .../factories/ProtobufNativeSchemaFactoryTest.java |   89 ++
 .../factories/ProtobufSchemaFactoryTest.java       |   69 ++
 .../pulsar/sink/PulsarSinkBuilderTest.java         |  107 ++
 .../connector/pulsar/sink/PulsarSinkITCase.java    |  144 +++
 .../committer/PulsarCommittableSerializerTest.java |   53 +
 .../pulsar/sink/writer/PulsarWriterTest.java       |  194 ++++
 .../sink/writer/router/KeyHashTopicRouterTest.java |  111 ++
 .../writer/router/RoundRobinTopicRouterTest.java   |   88 ++
 .../writer/topic/TopicMetadataListenerTest.java    |  157 +++
 .../writer/topic/TopicProducerRegisterTest.java    |   91 ++
 .../pulsar/source/PulsarSourceBuilderTest.java     |  115 ++
 .../pulsar/source/PulsarSourceITCase.java          |   64 ++
 .../pulsar/source/PulsarUnorderedSourceITCase.java |   60 +
 .../PulsarSourceEnumStateSerializerTest.java       |  140 +++
 .../enumerator/PulsarSourceEnumeratorTest.java     |  456 ++++++++
 .../assigner/NonSharedSplitAssignerTest.java       |  113 ++
 .../assigner/SharedSplitAssignerTest.java          |  121 ++
 .../enumerator/assigner/SplitAssignerTestBase.java |  127 +++
 .../source/enumerator/cursor/StopCursorTest.java   |  103 ++
 .../subscriber/PulsarSubscriberTest.java           |  152 +++
 .../enumerator/topic/TopicNameUtilsTest.java       |   96 ++
 .../enumerator/topic/TopicPartitionTest.java       |   39 +
 .../source/enumerator/topic/TopicRangeTest.java    |   59 +
 .../topic/range/SplitRangeGeneratorTest.java       |   82 ++
 .../topic/range/TopicRangeUtilsTest.java           |   84 ++
 .../PulsarDeserializationSchemaTest.java           |  137 +++
 .../source/PulsarOrderedSourceReaderTest.java      |  180 +++
 .../reader/source/PulsarSourceReaderTestBase.java  |  241 ++++
 .../source/PulsarUnorderedSourceReaderTest.java    |   27 +
 .../PulsarOrderedPartitionSplitReaderTest.java     |   91 ++
 .../split/PulsarPartitionSplitReaderTestBase.java  |  419 +++++++
 .../PulsarUnorderedPartitionSplitReaderTest.java   |   28 +
 .../split/PulsarPartitionSplitSerializerTest.java  |   90 ++
 .../pulsar/testutils/PulsarTestCommonUtils.java    |   80 ++
 .../pulsar/testutils/PulsarTestContext.java        |   63 ++
 .../pulsar/testutils/PulsarTestContextFactory.java |   46 +
 .../pulsar/testutils/PulsarTestEnvironment.java    |  115 ++
 .../pulsar/testutils/PulsarTestSuiteBase.java      |   65 ++
 .../connector/pulsar/testutils/SampleData.java     |  319 ++++++
 .../pulsar/testutils/extension/SubType.java        |   32 +
 .../extension/TestOrderlinessExtension.java        |   65 ++
 .../pulsar/testutils/function/ControlSource.java   |  238 ++++
 .../pulsar/testutils/runtime/PulsarRuntime.java    |   74 ++
 .../testutils/runtime/PulsarRuntimeOperator.java   |  510 +++++++++
 .../testutils/runtime/PulsarRuntimeUtils.java      |  124 ++
 .../runtime/container/PulsarContainerRuntime.java  |  147 +++
 .../runtime/mock/BlankBrokerInterceptor.java       |   61 +
 .../runtime/mock/MockBookKeeperClientFactory.java  |   74 ++
 .../testutils/runtime/mock/MockPulsarService.java  |   57 +
 .../runtime/mock/NonClosableMockBookKeeper.java    |   55 +
 .../testutils/runtime/mock/PulsarMockRuntime.java  |  114 ++
 .../mock/SameThreadOrderedSafeExecutor.java        |   56 +
 .../testutils/sink/PulsarPartitionDataReader.java  |   93 ++
 .../testutils/sink/PulsarSinkTestContext.java      |  124 ++
 .../testutils/sink/PulsarSinkTestSuiteBase.java    |   37 +
 .../source/KeyedPulsarPartitionDataWriter.java     |   66 ++
 .../source/PulsarPartitionDataWriter.java          |   54 +
 .../testutils/source/PulsarSourceTestContext.java  |  138 +++
 .../source/UnorderedSourceTestSuiteBase.java       |   76 ++
 .../source/cases/KeySharedSubscriptionContext.java |   85 ++
 .../cases/MultipleTopicConsumingContext.java       |   71 ++
 .../source/cases/SharedSubscriptionContext.java    |   46 +
 .../source/cases/SingleTopicConsumingContext.java  |   73 ++
 .../src/test/resources/archunit.properties         |   31 +
 .../src/test/resources/log4j2-test.properties      |   31 +-
 .../test/resources/protobuf/sample_message.proto   |   45 +
 flink-sql-connector-pulsar/pom.xml                 |   83 ++
 .../src/main/resources/META-INF/NOTICE             |   21 +
 .../META-INF/licences/LICENSE.bouncycastle         |    7 +
 pom.xml                                            |  684 +++++++++++
 tools/maven/suppressions.xml                       |    4 +
 tools/releasing/shared                             |    1 +
 199 files changed, 24844 insertions(+), 14 deletions(-)
 create mode 100644 .gitmodules
 create mode 100644 .idea/vcs.xml
 create mode 100644 docs/content.zh/docs/connectors/datastream/pulsar.md
 create mode 100644 docs/content/docs/connectors/datastream/pulsar.md
 create mode 100644 flink-connector-pulsar/archunit-violations/3ac3a1dc-681f-4213-9990-b7b3298a20bc
 create mode 100644 flink-connector-pulsar/archunit-violations/f4d91193-72ba-4ce4-ad83-98f780dce581
 create mode 100644 flink-connector-pulsar/archunit-violations/stored.rules
 create mode 100644 flink-connector-pulsar/pom.xml
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/config/PulsarClientFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/config/PulsarConfigBuilder.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/config/PulsarConfigValidator.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/config/PulsarConfiguration.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/config/PulsarOptions.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchema.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchemaTypeInformation.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchemaTypeSerializer.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchemaUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/factories/AvroSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/factories/BaseStructSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/factories/JSONSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/factories/KeyValueSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/factories/PrimitiveSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/factories/ProtobufNativeSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/factories/ProtobufSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/schema/factories/StringSchemaFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/utils/PulsarExceptionUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/utils/PulsarSerdeUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/common/utils/PulsarTransactionUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/PulsarSink.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/PulsarSinkBuilder.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/PulsarSinkOptions.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/committer/PulsarCommittable.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/committer/PulsarCommittableSerializer.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/committer/PulsarCommitter.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/config/PulsarSinkConfigUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/config/SinkConfiguration.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/PulsarWriter.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/context/PulsarSinkContext.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/context/PulsarSinkContextImpl.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/delayer/FixedMessageDelayer.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/delayer/MessageDelayer.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/message/PulsarMessage.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/message/PulsarMessageBuilder.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/router/KeyHashTopicRouter.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/router/MessageKeyHash.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/router/RoundRobinTopicRouter.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/router/TopicRouter.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/router/TopicRoutingMode.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/serializer/PulsarSchemaWrapper.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/serializer/PulsarSerializationSchema.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/serializer/PulsarSerializationSchemaWrapper.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/topic/TopicMetadataListener.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/sink/writer/topic/TopicProducerRegister.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/PulsarSource.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/PulsarSourceBuilder.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/PulsarSourceOptions.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/config/CursorVerification.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/config/PulsarConsumerBuilder.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/config/PulsarSourceConfigUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/config/SourceConfiguration.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/PulsarSourceEnumState.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/PulsarSourceEnumStateSerializer.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/PulsarSourceEnumerator.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/KeySharedSplitAssigner.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/NonSharedSplitAssigner.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/SharedSplitAssigner.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/SplitAssigner.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/SplitAssignerBase.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/SplitAssignerFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/CursorPosition.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/MessageIdUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/StartCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/StopCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/start/MessageIdStartCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/start/TimestampStartCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/stop/EventTimestampStopCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/stop/LatestMessageStopCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/stop/MessageIdStopCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/stop/NeverStopCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/stop/PublishTimestampStopCursor.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/subscriber/PulsarSubscriber.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/subscriber/impl/BasePulsarSubscriber.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/subscriber/impl/TopicListSubscriber.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/subscriber/impl/TopicPatternSubscriber.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/TopicMetadata.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/TopicNameUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/TopicPartition.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/TopicRange.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/range/FixedKeysRangeGenerator.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/range/FixedRangeGenerator.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/range/FullRangeGenerator.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/range/RangeGenerator.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/range/SplitRangeGenerator.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/enumerator/topic/range/TopicRangeUtils.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/PulsarSourceReaderFactory.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/deserializer/PulsarDeserializationSchema.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/deserializer/PulsarDeserializationSchemaInitializationContext.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/deserializer/PulsarDeserializationSchemaWrapper.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/deserializer/PulsarSchemaWrapper.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/deserializer/PulsarTypeInformationWrapper.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/emitter/PulsarRecordEmitter.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/fetcher/PulsarFetcherManagerBase.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/fetcher/PulsarOrderedFetcherManager.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/fetcher/PulsarUnorderedFetcherManager.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/message/PulsarMessage.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/message/PulsarMessageCollector.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/source/PulsarOrderedSourceReader.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/source/PulsarSourceReaderBase.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/source/PulsarUnorderedSourceReader.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/split/PulsarOrderedPartitionSplitReader.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/split/PulsarPartitionSplitReaderBase.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/reader/split/PulsarUnorderedPartitionSplitReader.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/split/PulsarPartitionSplit.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/split/PulsarPartitionSplitSerializer.java
 create mode 100644 flink-connector-pulsar/src/main/java/org/apache/flink/connector/pulsar/source/split/PulsarPartitionSplitState.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/architecture/TestCodeArchitectureTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/config/PulsarConfigBuilderTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/config/PulsarConfigValidatorTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/config/PulsarConfigurationTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchemaTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchemaTypeInformationTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchemaTypeSerializerTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/PulsarSchemaUtilsTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/factories/AvroSchemaFactoryTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/factories/JSONSchemaFactoryTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/factories/KeyValueSchemaFactoryTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/factories/ProtobufNativeSchemaFactoryTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/common/schema/factories/ProtobufSchemaFactoryTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/sink/PulsarSinkBuilderTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/sink/PulsarSinkITCase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/sink/committer/PulsarCommittableSerializerTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/sink/writer/PulsarWriterTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/sink/writer/router/KeyHashTopicRouterTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/sink/writer/router/RoundRobinTopicRouterTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/sink/writer/topic/TopicMetadataListenerTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/sink/writer/topic/TopicProducerRegisterTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/PulsarSourceBuilderTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/PulsarSourceITCase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/PulsarUnorderedSourceITCase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/PulsarSourceEnumStateSerializerTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/PulsarSourceEnumeratorTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/NonSharedSplitAssignerTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/SharedSplitAssignerTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/assigner/SplitAssignerTestBase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/cursor/StopCursorTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/subscriber/PulsarSubscriberTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/topic/TopicNameUtilsTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/topic/TopicPartitionTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/topic/TopicRangeTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/topic/range/SplitRangeGeneratorTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/enumerator/topic/range/TopicRangeUtilsTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/reader/deserializer/PulsarDeserializationSchemaTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/reader/source/PulsarOrderedSourceReaderTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/reader/source/PulsarSourceReaderTestBase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/reader/source/PulsarUnorderedSourceReaderTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/reader/split/PulsarOrderedPartitionSplitReaderTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/reader/split/PulsarPartitionSplitReaderTestBase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/reader/split/PulsarUnorderedPartitionSplitReaderTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/source/split/PulsarPartitionSplitSerializerTest.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/PulsarTestCommonUtils.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/PulsarTestContext.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/PulsarTestContextFactory.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/PulsarTestEnvironment.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/PulsarTestSuiteBase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/SampleData.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/extension/SubType.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/extension/TestOrderlinessExtension.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/function/ControlSource.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/PulsarRuntime.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/PulsarRuntimeOperator.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/PulsarRuntimeUtils.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/container/PulsarContainerRuntime.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/mock/BlankBrokerInterceptor.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/mock/MockBookKeeperClientFactory.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/mock/MockPulsarService.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/mock/NonClosableMockBookKeeper.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/mock/PulsarMockRuntime.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/runtime/mock/SameThreadOrderedSafeExecutor.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/sink/PulsarPartitionDataReader.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/sink/PulsarSinkTestContext.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/sink/PulsarSinkTestSuiteBase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/source/KeyedPulsarPartitionDataWriter.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/source/PulsarPartitionDataWriter.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/source/PulsarSourceTestContext.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/source/UnorderedSourceTestSuiteBase.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/source/cases/KeySharedSubscriptionContext.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/source/cases/MultipleTopicConsumingContext.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/source/cases/SharedSubscriptionContext.java
 create mode 100644 flink-connector-pulsar/src/test/java/org/apache/flink/connector/pulsar/testutils/source/cases/SingleTopicConsumingContext.java
 create mode 100644 flink-connector-pulsar/src/test/resources/archunit.properties
 copy .github/workflows/weekly.yml => flink-connector-pulsar/src/test/resources/log4j2-test.properties (61%)
 create mode 100644 flink-connector-pulsar/src/test/resources/protobuf/sample_message.proto
 create mode 100644 flink-sql-connector-pulsar/pom.xml
 create mode 100644 flink-sql-connector-pulsar/src/main/resources/META-INF/NOTICE
 create mode 100644 flink-sql-connector-pulsar/src/main/resources/META-INF/licences/LICENSE.bouncycastle
 create mode 100644 pom.xml
 create mode 160000 tools/releasing/shared