Search in sources :

Example 1 with MockKafkaControlAgent

use of org.apache.hudi.helper.MockKafkaControlAgent 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)

Example 2 with MockKafkaControlAgent

use of org.apache.hudi.helper.MockKafkaControlAgent in project hudi by apache.

the class TestConnectTransactionParticipant method setUp.

@BeforeEach
public void setUp() throws Exception {
    partition = new TopicPartition(TOPIC_NAME, PARTITION_NUMBER);
    kafkaControlAgent = new MockKafkaControlAgent();
    mockKafkaConnect = new MockKafkaConnect(partition);
    mockCoordinator = new MockCoordinator(kafkaControlAgent);
    mockCoordinator.start();
    configs = KafkaConnectConfigs.newBuilder().build();
    initializeParticipant();
}
Also used : MockKafkaConnect(org.apache.hudi.helper.MockKafkaConnect) TopicPartition(org.apache.kafka.common.TopicPartition) MockKafkaControlAgent(org.apache.hudi.helper.MockKafkaControlAgent) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

MockKafkaControlAgent (org.apache.hudi.helper.MockKafkaControlAgent)2 TopicPartition (org.apache.kafka.common.TopicPartition)2 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 MockKafkaConnect (org.apache.hudi.helper.MockKafkaConnect)1 BeforeEach (org.junit.jupiter.api.BeforeEach)1 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)1 EnumSource (org.junit.jupiter.params.provider.EnumSource)1