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:
org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanFactoryAware,org.springframework.beans.factory.BeanNameAware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.beans.factory.SmartInitializingSingleton,org.springframework.context.ApplicationContextAware,org.springframework.context.Lifecycle,org.springframework.context.Phased,org.springframework.context.SmartLifecycle,org.springframework.integration.context.ExpressionCapable,org.springframework.integration.core.MessageProducer,org.springframework.integration.IntegrationPattern,org.springframework.integration.support.context.NamedComponent,org.springframework.integration.support.management.IntegrationInboundManagement,org.springframework.integration.support.management.IntegrationManagement,org.springframework.integration.support.management.ManageableLifecycle,org.springframework.integration.support.management.ManageableSmartLifecycle,org.springframework.integration.support.management.TrackableComponent
public class MongoDbChangeStreamMessageProducer
extends org.springframework.integration.endpoint.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
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
org.springframework.integration.support.management.IntegrationManagement.ManagementOverrides -
Field Summary
Fields inherited from class org.springframework.integration.endpoint.AbstractEndpoint
lifecycleCondition, lifecycleLockFields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, loggerFields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAMEFields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE -
Constructor Summary
ConstructorsConstructorDescriptionMongoDbChangeStreamMessageProducer(org.springframework.data.mongodb.core.ReactiveMongoOperations mongoOperations) Create an instance based on the providedReactiveMongoOperations. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoStart()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(org.springframework.data.mongodb.core.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, 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, 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.management.IntegrationManagement
destroy, getManagedName, getManagedType, getOverrides, getThisAs, isLoggingEnabled, registerMetricsCaptor, setLoggingEnabled, setManagedName, setManagedTypeMethods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
MongoDbChangeStreamMessageProducer
public MongoDbChangeStreamMessageProducer(org.springframework.data.mongodb.core.ReactiveMongoOperations mongoOperations) 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
public void setOptions(org.springframework.data.mongodb.core.ChangeStreamOptions options) 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
- Specified by:
getComponentTypein interfaceorg.springframework.integration.support.context.NamedComponent- Overrides:
getComponentTypein classorg.springframework.integration.context.IntegrationObjectSupport
-
doStart
protected void doStart()- Overrides:
doStartin classorg.springframework.integration.endpoint.MessageProducerSupport
-