Class 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
    An AbstractFactoryBean for the StreamsBuilder instance and lifecycle control for the internal KafkaStreams instance.

    A fine grained control on KafkaStreams can be achieved by KafkaStreamsCustomizers.

    Since:
    1.1.4
    Author:
    Artem Bilan, Ivan Ursul, Soby Chacko, Zach Olauson, Nurettin Yilmaz, Denis Washington, Gary Russell
    • Field Detail

      • DEFAULT_CLOSE_TIMEOUT

        public static final java.time.Duration DEFAULT_CLOSE_TIMEOUT
        The default Duration of 10 seconds for close timeout.
        See Also:
        KafkaStreams.close(Duration)
    • Constructor Detail

      • StreamsBuilderFactoryBean

        public StreamsBuilderFactoryBean()
        Default constructor that creates the factory without configuration Properties. It is the factory user's responsibility to properly set Properties using setStreamsConfiguration(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 interface org.springframework.beans.factory.BeanNameAware
      • setStreamsConfiguration

        public void setStreamsConfiguration​(java.util.Properties streamsConfig)
        Set the streams configuration Properties 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
      • setStateListener

        public void setStateListener​(org.apache.kafka.streams.KafkaStreams.StateListener stateListener)
      • setUncaughtExceptionHandler

        public void setUncaughtExceptionHandler​(java.lang.Thread.UncaughtExceptionHandler exceptionHandler)
      • setStateRestoreListener

        public void setStateRestoreListener​(org.apache.kafka.streams.processor.StateRestoreListener stateRestoreListener)
      • setCloseTimeout

        public void setCloseTimeout​(int closeTimeout)
        Specify the timeout in seconds for the KafkaStreams.close(Duration) operation. Defaults to DEFAULT_CLOSE_TIMEOUT seconds.
        Parameters:
        closeTimeout - the timeout for close in seconds.
        See Also:
        KafkaStreams.close(Duration)
      • getTopology

        public org.apache.kafka.streams.Topology getTopology()
        Providing access to the associated Topology of this StreamsBuilderFactoryBean.
        Returns:
        Topology object
        Since:
        2.4.4
      • getObjectType

        public java.lang.Class<?> getObjectType()
        Specified by:
        getObjectType in interface org.springframework.beans.factory.FactoryBean<org.apache.kafka.streams.StreamsBuilder>
        Specified by:
        getObjectType in class org.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 interface org.springframework.context.Phased
        Specified by:
        getPhase in interface org.springframework.context.SmartLifecycle
      • setCleanupConfig

        public void setCleanupConfig​(CleanupConfig cleanupConfig)
      • getKafkaStreams

        public org.apache.kafka.streams.KafkaStreams getKafkaStreams()
        Get a managed by this StreamsBuilderFactoryBean KafkaStreams instance.
        Returns:
        KafkaStreams managed instance; may be null if this StreamsBuilderFactoryBean hasn't been started.
        Since:
        1.1.4
      • 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 class org.springframework.beans.factory.config.AbstractFactoryBean<org.apache.kafka.streams.StreamsBuilder>
      • isAutoStartup

        public boolean isAutoStartup()
        Specified by:
        isAutoStartup in interface org.springframework.context.SmartLifecycle
      • stop

        public void stop​(java.lang.Runnable callback)
        Specified by:
        stop in interface org.springframework.context.SmartLifecycle
      • start

        public void start()
        Specified by:
        start in interface org.springframework.context.Lifecycle
      • stop

        public void stop()
        Specified by:
        stop in interface org.springframework.context.Lifecycle
      • isRunning

        public boolean isRunning()
        Specified by:
        isRunning in interface org.springframework.context.Lifecycle