Package org.springframework.kafka.config
Class StreamsBuilderFactoryBean
- java.lang.Object
-
- org.springframework.beans.factory.config.AbstractFactoryBean<org.apache.kafka.streams.StreamsBuilder>
-
- org.springframework.kafka.config.StreamsBuilderFactoryBean
-
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanClassLoaderAware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.BeanNameAware
,org.springframework.beans.factory.DisposableBean
,org.springframework.beans.factory.FactoryBean<org.apache.kafka.streams.StreamsBuilder>
,org.springframework.beans.factory.InitializingBean
,org.springframework.context.Lifecycle
,org.springframework.context.Phased
,org.springframework.context.SmartLifecycle
public class StreamsBuilderFactoryBean extends org.springframework.beans.factory.config.AbstractFactoryBean<org.apache.kafka.streams.StreamsBuilder> implements org.springframework.context.SmartLifecycle, org.springframework.beans.factory.BeanNameAware
AnAbstractFactoryBean
for theStreamsBuilder
instance and lifecycle control for the internalKafkaStreams
instance.A fine grained control on
KafkaStreams
can be achieved byKafkaStreamsCustomizer
s.- Since:
- 1.1.4
- Author:
- Artem Bilan, Ivan Ursul, Soby Chacko, Zach Olauson, Nurettin Yilmaz, Denis Washington, Gary Russell
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
StreamsBuilderFactoryBean.Listener
Called whenever aKafkaStreams
is added or removed.
-
Field Summary
Fields Modifier and Type Field Description static java.time.Duration
DEFAULT_CLOSE_TIMEOUT
The defaultDuration
of10 seconds
for close timeout.
-
Constructor Summary
Constructors Constructor Description StreamsBuilderFactoryBean()
Default constructor that creates the factory without configurationProperties
.StreamsBuilderFactoryBean(KafkaStreamsConfiguration streamsConfig)
Construct an instance with the supplied streams configuration.StreamsBuilderFactoryBean(KafkaStreamsConfiguration streamsConfig, CleanupConfig cleanupConfig)
Construct an instance with the supplied streams configuration and clean up configuration.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addListener(StreamsBuilderFactoryBean.Listener listener)
Add aStreamsBuilderFactoryBean.Listener
which will be called after starting and stopping the streams.protected org.apache.kafka.streams.StreamsBuilder
createInstance()
org.apache.kafka.streams.KafkaStreams
getKafkaStreams()
Get a managed by thisStreamsBuilderFactoryBean
KafkaStreams
instance.java.util.List<StreamsBuilderFactoryBean.Listener>
getListeners()
Get the current list of listeners.java.lang.Class<?>
getObjectType()
int
getPhase()
java.util.Properties
getStreamsConfiguration()
org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler
getStreamsUncaughtExceptionHandler()
Retrieves the currentStreamsUncaughtExceptionHandler
set on this factory bean.org.apache.kafka.streams.Topology
getTopology()
Providing access to the associatedTopology
of thisStreamsBuilderFactoryBean
.boolean
isAutoStartup()
boolean
isRunning()
boolean
removeListener(StreamsBuilderFactoryBean.Listener listener)
Remove a listener.void
setAutoStartup(boolean autoStartup)
void
setBeanName(java.lang.String name)
void
setCleanupConfig(CleanupConfig cleanupConfig)
void
setClientSupplier(org.apache.kafka.streams.KafkaClientSupplier clientSupplier)
void
setCloseTimeout(int closeTimeout)
Specify the timeout in seconds for theKafkaStreams.close(Duration)
operation.void
setInfrastructureCustomizer(KafkaStreamsInfrastructureCustomizer infrastructureCustomizer)
Set a customizer to configure the builder and/or topology before creating the stream.void
setKafkaStreamsCustomizer(KafkaStreamsCustomizer kafkaStreamsCustomizer)
void
setPhase(int phase)
void
setStateListener(org.apache.kafka.streams.KafkaStreams.StateListener stateListener)
void
setStateRestoreListener(org.apache.kafka.streams.processor.StateRestoreListener stateRestoreListener)
void
setStreamsConfiguration(java.util.Properties streamsConfig)
Set the streams configurationProperties
on this factory.void
setStreamsUncaughtExceptionHandler(org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler streamsUncaughtExceptionHandler)
Set aStreamsUncaughtExceptionHandler
.void
setUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler exceptionHandler)
Deprecated.void
start()
void
stop()
void
stop(java.lang.Runnable callback)
-
-
-
Constructor Detail
-
StreamsBuilderFactoryBean
public StreamsBuilderFactoryBean()
Default constructor that creates the factory without configurationProperties
. It is the factory user's responsibility to properly setProperties
usingsetStreamsConfiguration(Properties)
.- Since:
- 2.1.3.
-
StreamsBuilderFactoryBean
public StreamsBuilderFactoryBean(KafkaStreamsConfiguration streamsConfig, CleanupConfig cleanupConfig)
Construct an instance with the supplied streams configuration and clean up configuration.- Parameters:
streamsConfig
- the streams configuration.cleanupConfig
- the cleanup configuration.- Since:
- 2.2
-
StreamsBuilderFactoryBean
public StreamsBuilderFactoryBean(KafkaStreamsConfiguration streamsConfig)
Construct an instance with the supplied streams configuration.- Parameters:
streamsConfig
- the streams configuration.- Since:
- 2.2
-
-
Method Detail
-
setBeanName
public void setBeanName(java.lang.String name)
- Specified by:
setBeanName
in interfaceorg.springframework.beans.factory.BeanNameAware
-
setStreamsConfiguration
public void setStreamsConfiguration(java.util.Properties streamsConfig)
Set the streams configurationProperties
on this factory.- Parameters:
streamsConfig
- the streams configuration.- Since:
- 2.2
-
getStreamsConfiguration
@Nullable public java.util.Properties getStreamsConfiguration()
-
setClientSupplier
public void setClientSupplier(org.apache.kafka.streams.KafkaClientSupplier clientSupplier)
-
setInfrastructureCustomizer
public void setInfrastructureCustomizer(KafkaStreamsInfrastructureCustomizer infrastructureCustomizer)
Set a customizer to configure the builder and/or topology before creating the stream.- Parameters:
infrastructureCustomizer
- the customizer- Since:
- 2.4.1
-
setKafkaStreamsCustomizer
public void setKafkaStreamsCustomizer(KafkaStreamsCustomizer kafkaStreamsCustomizer)
- Parameters:
kafkaStreamsCustomizer
- theKafkaStreamsCustomizer
to use.- Since:
- 2.1.5
-
setStateListener
public void setStateListener(org.apache.kafka.streams.KafkaStreams.StateListener stateListener)
-
setUncaughtExceptionHandler
@Deprecated public void setUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler exceptionHandler)
Deprecated.Obsolete.- Parameters:
exceptionHandler
- the handler.
-
setStreamsUncaughtExceptionHandler
public void setStreamsUncaughtExceptionHandler(org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler streamsUncaughtExceptionHandler)
Set aStreamsUncaughtExceptionHandler
. SupercedessetUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler)
.- Parameters:
streamsUncaughtExceptionHandler
- the handler.- Since:
- 2.8
-
getStreamsUncaughtExceptionHandler
@Nullable public org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler getStreamsUncaughtExceptionHandler()
Retrieves the currentStreamsUncaughtExceptionHandler
set on this factory bean.- Returns:
StreamsUncaughtExceptionHandler
- Since:
- 2.8.4
-
setStateRestoreListener
public void setStateRestoreListener(org.apache.kafka.streams.processor.StateRestoreListener stateRestoreListener)
-
setCloseTimeout
public void setCloseTimeout(int closeTimeout)
Specify the timeout in seconds for theKafkaStreams.close(Duration)
operation. Defaults toDEFAULT_CLOSE_TIMEOUT
seconds.- Parameters:
closeTimeout
- the timeout for close in seconds.- See Also:
KafkaStreams.close(Duration)
-
getTopology
@Nullable public org.apache.kafka.streams.Topology getTopology()
Providing access to the associatedTopology
of thisStreamsBuilderFactoryBean
.- Returns:
Topology
object- Since:
- 2.4.4
-
getObjectType
public java.lang.Class<?> getObjectType()
- Specified by:
getObjectType
in interfaceorg.springframework.beans.factory.FactoryBean<org.apache.kafka.streams.StreamsBuilder>
- Specified by:
getObjectType
in classorg.springframework.beans.factory.config.AbstractFactoryBean<org.apache.kafka.streams.StreamsBuilder>
-
setAutoStartup
public void setAutoStartup(boolean autoStartup)
-
setPhase
public void setPhase(int phase)
-
getPhase
public int getPhase()
- Specified by:
getPhase
in interfaceorg.springframework.context.Phased
- Specified by:
getPhase
in interfaceorg.springframework.context.SmartLifecycle
-
setCleanupConfig
public void setCleanupConfig(CleanupConfig cleanupConfig)
-
getKafkaStreams
@Nullable public org.apache.kafka.streams.KafkaStreams getKafkaStreams()
Get a managed by thisStreamsBuilderFactoryBean
KafkaStreams
instance.- Returns:
- KafkaStreams managed instance;
may be null if this
StreamsBuilderFactoryBean
hasn't been started. - Since:
- 1.1.4
-
getListeners
public java.util.List<StreamsBuilderFactoryBean.Listener> getListeners()
Get the current list of listeners.- Returns:
- the listeners.
- Since:
- 2.5.3
-
addListener
public void addListener(StreamsBuilderFactoryBean.Listener listener)
Add aStreamsBuilderFactoryBean.Listener
which will be called after starting and stopping the streams.- Parameters:
listener
- the listener.- Since:
- 2.5.3
-
removeListener
public boolean removeListener(StreamsBuilderFactoryBean.Listener listener)
Remove a listener.- Parameters:
listener
- the listener.- Returns:
- true if removed.
- Since:
- 2.5.3
-
createInstance
protected org.apache.kafka.streams.StreamsBuilder createInstance()
- Specified by:
createInstance
in classorg.springframework.beans.factory.config.AbstractFactoryBean<org.apache.kafka.streams.StreamsBuilder>
-
isAutoStartup
public boolean isAutoStartup()
- Specified by:
isAutoStartup
in interfaceorg.springframework.context.SmartLifecycle
-
stop
public void stop(java.lang.Runnable callback)
- Specified by:
stop
in interfaceorg.springframework.context.SmartLifecycle
-
start
public void start()
- Specified by:
start
in interfaceorg.springframework.context.Lifecycle
-
stop
public void stop()
- Specified by:
stop
in interfaceorg.springframework.context.Lifecycle
-
isRunning
public boolean isRunning()
- Specified by:
isRunning
in interfaceorg.springframework.context.Lifecycle
-
-