Search in sources :

Example 1 with TransactionCoordinator

use of org.apache.hudi.connect.transaction.TransactionCoordinator in project hudi by apache.

the class TestConnectTransactionCoordinator method testSingleCommitScenario.

@ParameterizedTest
@EnumSource(value = MockParticipant.TestScenarios.class)
public void testSingleCommitScenario(MockParticipant.TestScenarios scenario) throws InterruptedException {
    kafkaControlAgent = new MockKafkaControlAgent();
    participant = new MockParticipant(kafkaControlAgent, latch, scenario, MAX_COMMIT_ROUNDS);
    participant.start();
    KafkaConnectConfigs.Builder configBuilder = KafkaConnectConfigs.newBuilder().withCommitIntervalSecs(1L).withCoordinatorWriteTimeoutSecs(1L);
    if (scenario.equals(MockParticipant.TestScenarios.SUBSET_WRITE_STATUS_FAILED)) {
        configBuilder.withAllowCommitOnErrors(false);
    }
    configs = configBuilder.build();
    // Test the coordinator using the mock participant
    TransactionCoordinator coordinator = new ConnectTransactionCoordinator(configs, new TopicPartition(TOPIC_NAME, 0), kafkaControlAgent, transactionServices, (bootstrapServers, topicName) -> TOTAL_KAFKA_PARTITIONS);
    coordinator.start();
    latch.await(TEST_TIMEOUT_SECS, TimeUnit.SECONDS);
    if (latch.getCount() > 0) {
        throw new HoodieException("Test timedout resulting in failure");
    }
    coordinator.stop();
    participant.stop();
}
Also used : ConnectTransactionCoordinator(org.apache.hudi.connect.transaction.ConnectTransactionCoordinator) TopicPartition(org.apache.kafka.common.TopicPartition) ConnectTransactionCoordinator(org.apache.hudi.connect.transaction.ConnectTransactionCoordinator) TransactionCoordinator(org.apache.hudi.connect.transaction.TransactionCoordinator) HoodieException(org.apache.hudi.exception.HoodieException) MockKafkaControlAgent(org.apache.hudi.helper.MockKafkaControlAgent) KafkaConnectConfigs(org.apache.hudi.connect.writers.KafkaConnectConfigs) EnumSource(org.junit.jupiter.params.provider.EnumSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

ConnectTransactionCoordinator (org.apache.hudi.connect.transaction.ConnectTransactionCoordinator)1 TransactionCoordinator (org.apache.hudi.connect.transaction.TransactionCoordinator)1 KafkaConnectConfigs (org.apache.hudi.connect.writers.KafkaConnectConfigs)1 HoodieException (org.apache.hudi.exception.HoodieException)1 MockKafkaControlAgent (org.apache.hudi.helper.MockKafkaControlAgent)1 TopicPartition (org.apache.kafka.common.TopicPartition)1 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)1 EnumSource (org.junit.jupiter.params.provider.EnumSource)1