Class SourcePipelineInvocationContextProvider
java.lang.Object
io.debezium.connector.jdbc.junit.jupiter.e2e.source.SourcePipelineInvocationContextProvider
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback,org.junit.jupiter.api.extension.BeforeAllCallback,org.junit.jupiter.api.extension.Extension,org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider
public class SourcePipelineInvocationContextProvider
extends Object
implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.TestTemplateInvocationContextProvider
The JDBC sink end to end pipeline context provider.
This extension is responsible for creating the
Source object and starting the Kafka
environment as well as the source databases needed for the test matrix. In addition, it is
also responsible for creating the permutations of the test template method invocations.- Author:
- Chris Cranford
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate final io.debezium.testing.testcontainers.DebeziumContainerprivate static final Stringprivate static final Stringprivate final org.testcontainers.containers.KafkaContainerprivate static final org.slf4j.Loggerprivate static final Stringprivate static final Stringprivate static final Stringprivate static final org.testcontainers.containers.Networkprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate final Map<SourceType,org.testcontainers.containers.JdbcDatabaseContainer<?>> private static final Stringprivate static final Stringprivate final RandomTableNameGenerator -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidafterAll(org.junit.jupiter.api.extension.ExtensionContext context) voidbeforeAll(org.junit.jupiter.api.extension.ExtensionContext context) private org.junit.jupiter.api.extension.TestTemplateInvocationContextcreateInvocationContext(org.junit.jupiter.api.extension.ExtensionContext context, SourceType sourceType, boolean flatten, boolean propagateTypes, io.debezium.jdbc.TemporalPrecisionMode temporalPrecisionMode, String postgresExtension) getExtractNewRecordStateValues(Method method) private io.debezium.testing.testcontainers.DebeziumContainergetKafkaConnectContainer(org.testcontainers.containers.KafkaContainer kafkaContainer) private org.testcontainers.containers.KafkaContainergetPropagateColumnTypeValues(Method method) private Map<SourceType,org.testcontainers.containers.JdbcDatabaseContainer<?>> private List<SourceType>Returns the source connectors to start.private List<io.debezium.jdbc.TemporalPrecisionMode>getTemporalPrecisionModes(Method method, SourceType sourceType) private booleanisAnyAnnotationPresent(AnnotatedElement element, Class<? extends Annotation>... annotations) private booleanisSkipped(SkipWhenSource skipWhenSource, SkipWhenSources skipWhenSources, SourceType sourceType) Stream<org.junit.jupiter.api.extension.TestTemplateInvocationContext>provideTestTemplateInvocationContexts(org.junit.jupiter.api.extension.ExtensionContext context) booleansupportsTestTemplate(org.junit.jupiter.api.extension.ExtensionContext context)
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
KAFKA_IMAGE_NAME
- See Also:
-
CONNECT_IMAGE_NAME
- See Also:
-
MYSQL_IMAGE_NAME
- See Also:
-
MYSQL_USERNAME
- See Also:
-
MYSQL_PASSWORD
- See Also:
-
POSTGRES_IMAGE_NAME
- See Also:
-
POSTGRES_USERNAME
- See Also:
-
POSTGRES_PASSWORD
- See Also:
-
SQLSERVER_IMAGE_NAME
- See Also:
-
SQLSERVER_PASSWORD
- See Also:
-
ORACLE_IMAGE_NAME
- See Also:
-
ORACLE_USERNAME
- See Also:
-
ORACLE_PASSWORD
- See Also:
-
DB2_IMAGE_NAME
- See Also:
-
network
private static final org.testcontainers.containers.Network network -
tableNameGenerator
-
kafkaContainer
private final org.testcontainers.containers.KafkaContainer kafkaContainer -
connectContainer
private final io.debezium.testing.testcontainers.DebeziumContainer connectContainer -
sourceContainers
private final Map<SourceType,org.testcontainers.containers.JdbcDatabaseContainer<?>> sourceContainers
-
-
Constructor Details
-
SourcePipelineInvocationContextProvider
public SourcePipelineInvocationContextProvider()
-
-
Method Details
-
beforeAll
- Specified by:
beforeAllin interfaceorg.junit.jupiter.api.extension.BeforeAllCallback- Throws:
Exception
-
afterAll
- Specified by:
afterAllin interfaceorg.junit.jupiter.api.extension.AfterAllCallback- Throws:
Exception
-
supportsTestTemplate
public boolean supportsTestTemplate(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
supportsTestTemplatein interfaceorg.junit.jupiter.api.extension.TestTemplateInvocationContextProvider
-
provideTestTemplateInvocationContexts
public Stream<org.junit.jupiter.api.extension.TestTemplateInvocationContext> provideTestTemplateInvocationContexts(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
provideTestTemplateInvocationContextsin interfaceorg.junit.jupiter.api.extension.TestTemplateInvocationContextProvider
-
isSkipped
private boolean isSkipped(SkipWhenSource skipWhenSource, SkipWhenSources skipWhenSources, SourceType sourceType) -
getExtractNewRecordStateValues
-
getPropagateColumnTypeValues
-
getTemporalPrecisionModes
private List<io.debezium.jdbc.TemporalPrecisionMode> getTemporalPrecisionModes(Method method, SourceType sourceType) -
isAnyAnnotationPresent
@SafeVarargs private boolean isAnyAnnotationPresent(AnnotatedElement element, Class<? extends Annotation>... annotations) -
createInvocationContext
private org.junit.jupiter.api.extension.TestTemplateInvocationContext createInvocationContext(org.junit.jupiter.api.extension.ExtensionContext context, SourceType sourceType, boolean flatten, boolean propagateTypes, io.debezium.jdbc.TemporalPrecisionMode temporalPrecisionMode, String postgresExtension) -
getKafkaContainer
private org.testcontainers.containers.KafkaContainer getKafkaContainer() -
getKafkaConnectContainer
private io.debezium.testing.testcontainers.DebeziumContainer getKafkaConnectContainer(org.testcontainers.containers.KafkaContainer kafkaContainer) -
getSourceContainers
private Map<SourceType,org.testcontainers.containers.JdbcDatabaseContainer<?>> getSourceContainers() -
getSourcesToStart
Returns the source connectors to start. If thesource.connectorsenvironment property is not set, the pipeline defaults to using a specific set of connectors; otherwise the pipeline will only run those specified via the environment variable.
-