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,ExpressionCapable,MessageProducer,IntegrationPattern,NamedComponent,ManageableLifecycle,ManageableSmartLifecycle,TrackableComponent
public class MongoDbChangeStreamMessageProducer extends MessageProducerSupport
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
-
Field Summary
Fields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleCondition, lifecycleLockFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger -
Constructor Summary
Constructors Constructor Description MongoDbChangeStreamMessageProducer(ReactiveMongoOperations mongoOperations)Create an instance based on the providedReactiveMongoOperations. -
Method Summary
Modifier and Type Method Description protected voiddoStart()Take no action by default.StringgetComponentType()Subclasses may implement this method to provide component type information.voidsetCollection(String collection)Specify a collection name to track change events from.voidsetDomainType(Class<?> domainType)Specify an object type to convert an event body to.voidsetExtractBody(boolean extractBody)Configure this channel adapter to build aMessageto produce with a payload based on aChangeStreamEvent.getBody()(by default) or use a wholeChangeStreamEventas a payload.voidsetOptions(ChangeStreamOptions options)Specify aChangeStreamOptions.Methods inherited from class org.springframework.integration.endpoint.MessageProducerSupport
afterSingletonsInstantiated, buildErrorMessage, doStop, getErrorChannel, getErrorMessageAttributes, getIntegrationPatternType, getMessagingTemplate, getOutputChannel, onInit, sendErrorMessageIfNecessary, sendMessage, setErrorChannel, setErrorChannelName, setErrorMessageStrategy, setOutputChannel, setOutputChannelName, setSendTimeout, setShouldTrack, subscribeToPublisherMethods inherited from class org.springframework.integration.endpoint.AbstractEndpoint
destroy, doStop, getPhase, getRole, isActive, isAutoStartup, isRunning, setAutoStartup, setPhase, setRole, start, stop, stopMethods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
MongoDbChangeStreamMessageProducer
Create an instance based on the providedReactiveMongoOperations.- Parameters:
mongoOperations- theReactiveMongoOperationsto use.- See Also:
ReactiveMongoOperations.changeStream(String, ChangeStreamOptions, Class)
-
-
Method Details
-
setDomainType
Specify an object type to convert an event body to. Defaults toDocumentclass.- Parameters:
domainType- the class for event body conversion.- See Also:
ReactiveMongoOperations.changeStream(String, ChangeStreamOptions, Class)
-
setCollection
Specify a collection name to track change events from. By default tracks all the collection in themongoOperationsconfigured database.- Parameters:
collection- a collection to use.- See Also:
ReactiveMongoOperations.changeStream(String, ChangeStreamOptions, Class)
-
setOptions
Specify aChangeStreamOptions.- Parameters:
options- theChangeStreamOptionsto use.- See Also:
ReactiveMongoOperations.changeStream(String, ChangeStreamOptions, Class)
-
setExtractBody
public void setExtractBody(boolean extractBody)Configure this channel adapter to build aMessageto produce with a payload based on aChangeStreamEvent.getBody()(by default) or use a wholeChangeStreamEventas a payload.- Parameters:
extractBody- to extractChangeStreamEvent.getBody()or not.
-
getComponentType
Description copied from class:IntegrationObjectSupportSubclasses may implement this method to provide component type information.- Specified by:
getComponentTypein interfaceNamedComponent- Overrides:
getComponentTypein classIntegrationObjectSupport
-
doStart
protected void doStart()Description copied from class:MessageProducerSupportTake no action by default. Subclasses may override this if they need lifecycle-managed behavior. Protected by 'lifecycleLock'.- Overrides:
doStartin classMessageProducerSupport
-