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:
Aware
,BeanClassLoaderAware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,FactoryBean<org.apache.kafka.streams.StreamsBuilder>
,InitializingBean
,SmartInitializingSingleton
,Lifecycle
,Phased
,SmartLifecycle
public class StreamsBuilderFactoryBean
extends AbstractFactoryBean<org.apache.kafka.streams.StreamsBuilder>
implements SmartLifecycle, BeanNameAware, SmartInitializingSingleton
An
AbstractFactoryBean
for the StreamsBuilder
instance
and lifecycle control for the internal KafkaStreams
instance.
A fine grained control on KafkaStreams
can be achieved by
KafkaStreamsCustomizer
s.
- Since:
- 1.1.4
- Author:
- Artem Bilan, Ivan Ursul, Soby Chacko, Zach Olauson, Nurettin Yilmaz, Denis Washington, Gary Russell, Julien Wittouck, Sanghyeok An, Cédric Schaller, Almog Gavra
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Called whenever aKafkaStreams
is added or removed. -
Field Summary
Modifier and TypeFieldDescriptionstatic final Duration
The defaultDuration
of10 seconds
for close timeout.Fields inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
logger
Fields inherited from interface org.springframework.beans.factory.FactoryBean
OBJECT_TYPE_ATTRIBUTE
Fields inherited from interface org.springframework.context.SmartLifecycle
DEFAULT_PHASE
-
Constructor Summary
ConstructorDescriptionDefault 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
Modifier and TypeMethodDescriptionvoid
Add aStreamsBuilderFactoryBean.Listener
which will be called after starting and stopping the streams.void
protected org.apache.kafka.streams.StreamsBuilder
org.apache.kafka.streams.KafkaStreams
Get a managed by thisStreamsBuilderFactoryBean
KafkaStreams
instance.Get the current list of listeners.Class<?>
int
getPhase()
org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler
Retrieves the currentStreamsUncaughtExceptionHandler
set on this factory bean.org.apache.kafka.streams.Topology
Providing access to the associatedTopology
of thisStreamsBuilderFactoryBean
.boolean
boolean
boolean
Remove a listener.void
setAutoStartup
(boolean autoStartup) void
setBeanName
(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
setLeaveGroupOnClose
(boolean leaveGroupOnClose) Specify if the consumer should leave the group when stopping Kafka Streams.void
setPhase
(int phase) void
setStateListener
(org.apache.kafka.streams.KafkaStreams.StateListener stateListener) void
setStateRestoreListener
(org.apache.kafka.streams.processor.StateRestoreListener stateRestoreListener) void
setStreamsConfiguration
(Properties streamsConfig) Set the streams configurationProperties
on this factory.void
setStreamsUncaughtExceptionHandler
(org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler streamsUncaughtExceptionHandler) Set aStreamsUncaughtExceptionHandler
.void
start()
void
stop()
void
Methods inherited from class org.springframework.beans.factory.config.AbstractFactoryBean
afterPropertiesSet, destroy, destroyInstance, getBeanFactory, getBeanTypeConverter, getEarlySingletonInterfaces, getObject, isSingleton, setBeanClassLoader, setBeanFactory, setSingleton
-
Field Details
-
DEFAULT_CLOSE_TIMEOUT
The defaultDuration
of10 seconds
for close timeout.- See Also:
-
KafkaStreams.close(Duration)
-
-
Constructor Details
-
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
Construct an instance with the supplied streams configuration.- Parameters:
streamsConfig
- the streams configuration.- Since:
- 2.2
-
-
Method Details
-
setBeanName
- Specified by:
setBeanName
in interfaceBeanNameAware
-
setStreamsConfiguration
Set the streams configurationProperties
on this factory.- Parameters:
streamsConfig
- the streams configuration.- Since:
- 2.2
-
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
- Parameters:
kafkaStreamsCustomizer
- theKafkaStreamsCustomizer
to use.- Since:
- 2.1.5
-
setStateListener
public void setStateListener(org.apache.kafka.streams.KafkaStreams.StateListener stateListener) -
setStreamsUncaughtExceptionHandler
public void setStreamsUncaughtExceptionHandler(org.apache.kafka.streams.errors.StreamsUncaughtExceptionHandler streamsUncaughtExceptionHandler) Set aStreamsUncaughtExceptionHandler
.- 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)
-
setLeaveGroupOnClose
public void setLeaveGroupOnClose(boolean leaveGroupOnClose) Specify if the consumer should leave the group when stopping Kafka Streams. Defaults to false.- Parameters:
leaveGroupOnClose
- true to leave the group when stopping the Streams- Since:
- 3.2.0
-
getTopology
Providing access to the associatedTopology
of thisStreamsBuilderFactoryBean
.- Returns:
Topology
object- Since:
- 2.4.4
-
getObjectType
- Specified by:
getObjectType
in interfaceFactoryBean<org.apache.kafka.streams.StreamsBuilder>
- Specified by:
getObjectType
in classAbstractFactoryBean<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 interfacePhased
- Specified by:
getPhase
in interfaceSmartLifecycle
-
setCleanupConfig
-
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
Get the current list of listeners.- Returns:
- the listeners.
- Since:
- 2.5.3
-
addListener
Add aStreamsBuilderFactoryBean.Listener
which will be called after starting and stopping the streams.- Parameters:
listener
- the listener.- Since:
- 2.5.3
-
removeListener
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 classAbstractFactoryBean<org.apache.kafka.streams.StreamsBuilder>
-
isAutoStartup
public boolean isAutoStartup()- Specified by:
isAutoStartup
in interfaceSmartLifecycle
-
stop
- Specified by:
stop
in interfaceSmartLifecycle
-
start
public void start() -
stop
public void stop() -
isRunning
public boolean isRunning() -
afterSingletonsInstantiated
public void afterSingletonsInstantiated()- Specified by:
afterSingletonsInstantiated
in interfaceSmartInitializingSingleton
-