Class ActionFactory
- java.lang.Object
-
- org.apache.beam.sdk.io.gcp.spanner.changestreams.action.ActionFactory
-
- All Implemented Interfaces:
java.io.Serializable
public class ActionFactory extends java.lang.Object implements java.io.SerializableFactory class for creating instances that will handle each type of record within a change stream query. The instances created are all singletons.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ActionFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ChildPartitionsRecordActionchildPartitionsRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics)Creates and returns a singleton instance of an action class capable of processChildPartitionsRecords.DataChangeRecordActiondataChangeRecordAction(ThroughputEstimator<DataChangeRecord> throughputEstimator)Creates and returns a singleton instance of an action class capable of processingDataChangeRecords.DetectNewPartitionsActiondetectNewPartitionsAction(PartitionMetadataDao partitionMetadataDao, PartitionMetadataMapper partitionMetadataMapper, WatermarkCache watermarkCache, ChangeStreamMetrics metrics, org.joda.time.Duration resumeDuration)Creates and returns a single instance of an action class capable of detecting and scheduling new partitions to be queried.HeartbeatRecordActionheartbeatRecordAction(ChangeStreamMetrics metrics)Creates and returns a singleton instance of an action class capable of processingHeartbeatRecords.PartitionEndRecordActionpartitionEndRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics)Creates and returns a singleton instance of an action class capable of processPartitionEndRecords.PartitionEventRecordActionpartitionEventRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics)Creates and returns a singleton instance of an action class capable of processPartitionEventRecords.PartitionStartRecordActionpartitionStartRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics)Creates and returns a singleton instance of an action class capable of processPartitionStartRecords.QueryChangeStreamActionqueryChangeStreamAction(ChangeStreamDao changeStreamDao, PartitionMetadataDao partitionMetadataDao, ChangeStreamRecordMapper changeStreamRecordMapper, PartitionMetadataMapper partitionMetadataMapper, DataChangeRecordAction dataChangeRecordAction, HeartbeatRecordAction heartbeatRecordAction, ChildPartitionsRecordAction childPartitionsRecordAction, PartitionStartRecordAction partitionStartRecordAction, PartitionEndRecordAction partitionEndRecordAction, PartitionEventRecordAction partitionEventRecordAction, ChangeStreamMetrics metrics)Creates and returns a single instance of an action class capable of performing a change stream query for a given partition.
-
-
-
Method Detail
-
dataChangeRecordAction
public DataChangeRecordAction dataChangeRecordAction(ThroughputEstimator<DataChangeRecord> throughputEstimator)
Creates and returns a singleton instance of an action class capable of processingDataChangeRecords.This method is thread safe.
- Returns:
- singleton instance of the
DataChangeRecordAction
-
heartbeatRecordAction
public HeartbeatRecordAction heartbeatRecordAction(ChangeStreamMetrics metrics)
Creates and returns a singleton instance of an action class capable of processingHeartbeatRecords. This method is thread safe.- Parameters:
metrics- metrics gathering class- Returns:
- singleton instance of the
HeartbeatRecordAction
-
childPartitionsRecordAction
public ChildPartitionsRecordAction childPartitionsRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics)
Creates and returns a singleton instance of an action class capable of processChildPartitionsRecords. This method is thread safe.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablesmetrics- metrics gathering class- Returns:
- singleton instance of the
ChildPartitionsRecordAction
-
partitionStartRecordAction
public PartitionStartRecordAction partitionStartRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics)
Creates and returns a singleton instance of an action class capable of processPartitionStartRecords. This method is thread safe.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablesmetrics- metrics gathering class- Returns:
- singleton instance of the
PartitionStartRecordAction
-
partitionEndRecordAction
public PartitionEndRecordAction partitionEndRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics)
Creates and returns a singleton instance of an action class capable of processPartitionEndRecords. This method is thread safe.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablesmetrics- metrics gathering class- Returns:
- singleton instance of the
PartitionEndRecordAction
-
partitionEventRecordAction
public PartitionEventRecordAction partitionEventRecordAction(PartitionMetadataDao partitionMetadataDao, ChangeStreamMetrics metrics)
Creates and returns a singleton instance of an action class capable of processPartitionEventRecords. This method is thread safe.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablesmetrics- metrics gathering class- Returns:
- singleton instance of the
PartitionEventRecordAction
-
queryChangeStreamAction
public QueryChangeStreamAction queryChangeStreamAction(ChangeStreamDao changeStreamDao, PartitionMetadataDao partitionMetadataDao, ChangeStreamRecordMapper changeStreamRecordMapper, PartitionMetadataMapper partitionMetadataMapper, DataChangeRecordAction dataChangeRecordAction, HeartbeatRecordAction heartbeatRecordAction, ChildPartitionsRecordAction childPartitionsRecordAction, PartitionStartRecordAction partitionStartRecordAction, PartitionEndRecordAction partitionEndRecordAction, PartitionEventRecordAction partitionEventRecordAction, ChangeStreamMetrics metrics)
Creates and returns a single instance of an action class capable of performing a change stream query for a given partition. It uses theDataChangeRecordAction,HeartbeatRecordAction,ChildPartitionsRecordAction,PartitionStartRecordAction,PartitionEndRecordActionandPartitionEventRecordActionto dispatch the necessary processing depending on the type of record received.- Parameters:
changeStreamDao- DAO class to perform a change stream querypartitionMetadataDao- DAO class to access the Connector's metadata tableschangeStreamRecordMapper- mapper class to transform change stream records into the Connector's domain modelspartitionMetadataMapper- mapper class to transform partition metadata rows into the Connector's domain modelsdataChangeRecordAction- action class to processDataChangeRecordsheartbeatRecordAction- action class to processHeartbeatRecordschildPartitionsRecordAction- action class to processChildPartitionsRecordspartitionStartRecordAction- action class to processPartitionStartRecordspartitionEndRecordAction- action class to processPartitionEndRecordspartitionEventRecordAction- action class to processPartitionEventRecordsmetrics- metrics gathering class- Returns:
- single instance of the
QueryChangeStreamAction
-
detectNewPartitionsAction
public DetectNewPartitionsAction detectNewPartitionsAction(PartitionMetadataDao partitionMetadataDao, PartitionMetadataMapper partitionMetadataMapper, WatermarkCache watermarkCache, ChangeStreamMetrics metrics, org.joda.time.Duration resumeDuration)
Creates and returns a single instance of an action class capable of detecting and scheduling new partitions to be queried.- Parameters:
partitionMetadataDao- DAO class to access the Connector's metadata tablespartitionMetadataMapper- mapper class to transform partition metadata table rows into the Connector's domain modelsmetrics- metrics gathering classresumeDuration- specifies the periodic schedule to re-execute the action- Returns:
- single instance of the
DetectNewPartitionsAction
-
-