Class MongoDbChangeStreamMessageProducer
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.endpoint.AbstractEndpoint
org.springframework.integration.endpoint.MessageProducerSupport
org.springframework.integration.mongodb.inbound.MongoDbChangeStreamMessageProducer
- All Implemented Interfaces:
Aware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,SmartInitializingSingleton
,ApplicationContextAware
,Lifecycle
,Phased
,SmartLifecycle
,ComponentSourceAware
,ExpressionCapable
,MessageProducer
,IntegrationPattern
,NamedComponent
,IntegrationInboundManagement
,IntegrationManagement
,ManageableLifecycle
,ManageableSmartLifecycle
,TrackableComponent
A
MessageProducerSupport
for MongoDB Change Stream implementation.
The functionality is based on the
ReactiveMongoOperations.changeStream(String, ChangeStreamOptions, Class)
and MessageProducerSupport.subscribeToPublisher(org.reactivestreams.Publisher)
consumption.- Since:
- 5.3
- Author:
- Artem Bilan
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Fields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleCondition, lifecycleLock
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
Fields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE
-
Constructor Summary
ConstructorDescriptionMongoDbChangeStreamMessageProducer
(ReactiveMongoOperations mongoOperations) Create an instance based on the providedReactiveMongoOperations
. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doStart()
Take no action by default.Subclasses may implement this method to provide component type information.void
setCollection
(String collection) Specify a collection name to track change events from.void
setDomainType
(Class<?> domainType) Specify an object type to convert an event body to.void
setExtractBody
(boolean extractBody) Configure this channel adapter to build aMessage
to produce with a payload based on aChangeStreamEvent.getBody()
(by default) or use a wholeChangeStreamEvent
as a payload.void
setOptions
(ChangeStreamOptions options) Specify aChangeStreamOptions
.Methods inherited from class org.springframework.integration.endpoint.MessageProducerSupport
afterSingletonsInstantiated, buildErrorMessage, doStop, getErrorChannel, getErrorMessageAttributes, getErrorMessageStrategy, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, isObserved, onInit, registerObservationRegistry, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setObservationConvention, setOutputChannel, setOutputChannelName, setSendTimeout, setShouldTrack, subscribeToPublisher
Methods inherited from class org.springframework.integration.endpoint.AbstractEndpoint
destroy, doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stop
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement
destroy, getManagedName, getManagedType, getOverrides, getThisAs, isLoggingEnabled, registerMetricsCaptor, setLoggingEnabled, setManagedName, setManagedType
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
MongoDbChangeStreamMessageProducer
Create an instance based on the providedReactiveMongoOperations
.- Parameters:
mongoOperations
- theReactiveMongoOperations
to use.- See Also:
-
-
Method Details
-
setDomainType
Specify an object type to convert an event body to. Defaults toDocument
class.- Parameters:
domainType
- the class for event body conversion.- See Also:
-
setCollection
Specify a collection name to track change events from. By default tracks all the collection in themongoOperations
configured database.- Parameters:
collection
- a collection to use.- See Also:
-
setOptions
Specify aChangeStreamOptions
.- Parameters:
options
- theChangeStreamOptions
to use.- See Also:
-
setExtractBody
public void setExtractBody(boolean extractBody) Configure this channel adapter to build aMessage
to produce with a payload based on aChangeStreamEvent.getBody()
(by default) or use a wholeChangeStreamEvent
as a payload.- Parameters:
extractBody
- to extractChangeStreamEvent.getBody()
or not.
-
getComponentType
Description copied from class:IntegrationObjectSupport
Subclasses may implement this method to provide component type information.- Specified by:
getComponentType
in interfaceNamedComponent
- Overrides:
getComponentType
in classIntegrationObjectSupport
-
doStart
protected void doStart()Description copied from class:MessageProducerSupport
Take no action by default. Subclasses may override this if they need lifecycle-managed behavior. Protected by 'lifecycleLock'.- Overrides:
doStart
in classMessageProducerSupport
-