Package io.debezium.pipeline.signal
Class SignalProcessor<P extends Partition,O extends OffsetContext>
java.lang.Object
io.debezium.pipeline.signal.SignalProcessor<P,O>
This class permits to process signals coming from the different channels.
- Author:
- Mario Fiore Vitale
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final CommonConnectorConfigstatic final Stringprivate final DocumentReaderprivate final List<SignalChannelReader> private static final org.slf4j.Loggerstatic final Stringprivate final Semaphorestatic final intprivate final Map<String, SignalAction<P>> private final List<SignalChannelReader> private final ScheduledExecutorService -
Constructor Summary
ConstructorsConstructorDescriptionSignalProcessor(Class<? extends org.apache.kafka.connect.source.SourceConnector> connector, CommonConnectorConfig config, Map<String, SignalAction<P>> signalActions, List<SignalChannelReader> signalChannelReaders, DocumentReader documentReader, Offsets<P, O> previousOffsets) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidexecuteSignal(SignalAction<P> action, SignalRecord signalRecord, Document jsonData, P partition, O offset) private voidexecuteWithSemaphore(Runnable operation) extractPartitionFromData(Document jsonData) private List<SignalChannelReader> getOffsets(P knownPartition, Document jsonData) <T extends SignalChannelReader>
TgetSignalChannel(Class<T> channel) The method permits to get specified SignalChannelReader instance from the available SPI implementationsprivate Predicate<SignalChannelReader> private static <T extends SignalChannelReader>
Predicate<SignalChannelReader> private booleanmatchesDatabase(P partition, String databaseName) voidprocess()private voidprocessSignal(SignalRecord signalRecord, P knownPartition) voidprocessSourceSignal(P partition) voidregisterSignalAction(String id, SignalAction<P> signal) voidsetContext(Offsets<P, O> offsets) voidstart()voidstop()
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
SEMAPHORE_WAIT_TIME
public static final int SEMAPHORE_WAIT_TIME- See Also:
-
DATA_COLLECTIONS_FIELD_NAME
- See Also:
-
POINT_REGEX
- See Also:
-
signalActions
-
connectorConfig
-
enabledChannelReaders
-
signalChannelReaders
-
signalProcessorExecutor
-
documentReader
-
partitionOffsets
-
semaphore
-
-
Constructor Details
-
SignalProcessor
public SignalProcessor(Class<? extends org.apache.kafka.connect.source.SourceConnector> connector, CommonConnectorConfig config, Map<String, SignalAction<P>> signalActions, List<SignalChannelReader> signalChannelReaders, DocumentReader documentReader, Offsets<P, O> previousOffsets)
-
-
Method Details
-
isEnabled
-
getEnabledChannelReaders
-
setContext
-
start
public void start() -
stop
- Throws:
InterruptedException
-
registerSignalAction
-
process
public void process() -
processSourceSignal
-
getSignalChannel
The method permits to get specified SignalChannelReader instance from the available SPI implementations- Parameters:
channel- the class of the channel to get- Returns:
- the specified instance from the available SPI implementations
-
executeWithSemaphore
-
processSignal
-
getOffsets
-
extractPartitionFromData
-
matchesDatabase
-
executeSignal
private void executeSignal(SignalAction<P> action, SignalRecord signalRecord, Document jsonData, P partition, O offset) throws InterruptedException - Throws:
InterruptedException
-
isSignal
private static <T extends SignalChannelReader> Predicate<SignalChannelReader> isSignal(Class<T> channelClass)
-