Annotation Type EmbeddedKafka


  • @ExtendWith(EmbeddedKafkaCondition.class)
    @Target(TYPE)
    @Retention(RUNTIME)
    @Documented
    @Inherited
    public @interface EmbeddedKafka
    Annotation that can be specified on a test class that runs Spring for Apache Kafka based tests. Provides the following features over and above the regular Spring TestContext Framework:

    The typical usage of this annotation is like:

     @RunWith(SpringRunner.class)
     @EmbeddedKafka
     public class MyKafkaTests {
    
        @Autowired
        private EmbeddedKafkaBroker kafkaEmbedded;
    
        @Value("${spring.embedded.kafka.brokers}")
        private String brokerAddresses;
     }
     
    Since:
    1.3
    Author:
    Artem Bilan, Elliot Metsger, Zach Olauson, Gary Russell, Sergio Lourenco, Pawel Lozinski, Adrian Chlebosz
    See Also:
    EmbeddedKafkaBroker
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      int adminTimeout
      Timeout in seconds for admin operations (e.g.
      java.lang.String bootstrapServersProperty
      The property name to set with the bootstrap server addresses instead of the default "spring.embedded.kafka.brokers".
      java.lang.String[] brokerProperties
      Properties in form key=value that should be added to the broker config before runs.
      java.lang.String brokerPropertiesLocation
      Spring Resource url specifying the location of properties that should be added to the broker config.
      boolean controlledShutdown  
      int count  
      int partitions  
      int[] ports
      Set explicit ports on which the kafka brokers will listen.
      java.lang.String[] topics
      Topics that should be created Topics may contain property place holders, e.g.
      int value  
      int zkConnectionTimeout
      Timeout for internal ZK client connection.
      int zkSessionTimeout
      Timeout for internal ZK client session.
      int zookeeperPort
      Set the port on which the embedded Zookeeper should listen;
    • Element Detail

      • value

        @AliasFor("count")
        int value
        Returns:
        the number of brokers
        Default:
        1
      • count

        @AliasFor("value")
        int count
        Returns:
        the number of brokers
        Default:
        1
      • controlledShutdown

        boolean controlledShutdown
        Returns:
        passed into kafka.utils.TestUtils.createBrokerConfig().
        Default:
        false
      • ports

        int[] ports
        Set explicit ports on which the kafka brokers will listen. Useful when running an embedded broker that you want to access from other processes. A port must be provided for each instance, which means the number of ports must match the value of the count attribute.
        Returns:
        ports for brokers.
        Since:
        2.2.4
        Default:
        {0}
      • zookeeperPort

        int zookeeperPort
        Set the port on which the embedded Zookeeper should listen;
        Returns:
        the port.
        Since:
        2.3
        Default:
        0
      • partitions

        int partitions
        Returns:
        partitions per topic
        Default:
        2
      • topics

        java.lang.String[] topics
        Topics that should be created Topics may contain property place holders, e.g. topics = "${kafka.topic.one:topicOne}" The topics will be created with partitions() partitions; to provision other topics with other partition counts call the addTopics(NewTopic... topics) method on the autowired broker. Place holders will only be resolved when there is a Spring test application context present (such as when using @SpringJunitConfig or @SpringRunner.
        Returns:
        the topics to create
        Default:
        {}
      • brokerProperties

        java.lang.String[] brokerProperties
        Properties in form key=value that should be added to the broker config before runs. When used in a Spring test context, properties may contain property place holders, e.g. delete.topic.enable=${topic.delete:true}. Place holders will only be resolved when there is a Spring test application context present (such as when using @SpringJunitConfig or @SpringRunner.
        Returns:
        the properties to add
        See Also:
        brokerPropertiesLocation(), EmbeddedKafkaBroker.brokerProperties(java.util.Map)
        Default:
        {}
      • brokerPropertiesLocation

        java.lang.String brokerPropertiesLocation
        Spring Resource url specifying the location of properties that should be added to the broker config. When used in a Spring test context, the brokerPropertiesLocation url and the properties themselves may contain place holders that are resolved during initialization. Properties specified by brokerProperties() will override properties found in brokerPropertiesLocation. Place holders will only be resolved when there is a Spring test application context present (such as when using @SpringJunitConfig or @SpringRunner.
        Returns:
        a Resource url specifying the location of properties to add
        See Also:
        brokerProperties(), EmbeddedKafkaBroker.brokerProperties(java.util.Map)
        Default:
        ""