Class KafkaBrokerExtension

  • All Implemented Interfaces:
    org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ExtensionContext.Store.CloseableResource, org.junit.jupiter.api.extension.ParameterResolver
    Direct Known Subclasses:
    KafkaToxiproxyExtension

    public class KafkaBrokerExtension
    extends Object
    implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.ExtensionContext.Store.CloseableResource
    Junit extension for creating Strimzi Kafka broker
    • Field Detail

      • LOGGER

        public static final org.jboss.logging.Logger LOGGER
      • kafka

        protected io.strimzi.test.container.StrimziKafkaContainer kafka
    • Constructor Detail

      • KafkaBrokerExtension

        public KafkaBrokerExtension()
    • Method Detail

      • beforeAll

        public void beforeAll​(org.junit.jupiter.api.extension.ExtensionContext context)
        Specified by:
        beforeAll in interface org.junit.jupiter.api.extension.BeforeAllCallback
      • close

        public void close()
        Specified by:
        close in interface org.junit.jupiter.api.extension.ExtensionContext.Store.CloseableResource
      • createKafkaContainer

        public static io.strimzi.test.container.StrimziKafkaContainer createKafkaContainer()
      • configureKafkaContainer

        public static <T extends io.strimzi.test.container.StrimziKafkaContainer> T configureKafkaContainer​(T container)
      • startKafkaBroker

        public void startKafkaBroker()
      • restart

        public static io.strimzi.test.container.StrimziKafkaContainer restart​(io.strimzi.test.container.StrimziKafkaContainer kafka,
                                                                              int gracePeriodInSecond)
        We need to restart the broker on the same exposed port. Test Containers makes this unnecessarily complicated, but well, let's go for a hack. See https://github.com/testcontainers/testcontainers-java/issues/256.
        Parameters:
        kafka - the broker that will be closed
        gracePeriodInSecond - number of seconds to wait before restarting
        Returns:
        the new broker
      • startKafkaBroker

        public static io.strimzi.test.container.StrimziKafkaContainer startKafkaBroker​(int port)
      • stopKafkaBroker

        public void stopKafkaBroker()
      • supportsParameter

        public boolean supportsParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext,
                                         org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                                  throws org.junit.jupiter.api.extension.ParameterResolutionException
        Specified by:
        supportsParameter in interface org.junit.jupiter.api.extension.ParameterResolver
        Throws:
        org.junit.jupiter.api.extension.ParameterResolutionException
      • resolveParameter

        public Object resolveParameter​(org.junit.jupiter.api.extension.ParameterContext parameterContext,
                                       org.junit.jupiter.api.extension.ExtensionContext extensionContext)
                                throws org.junit.jupiter.api.extension.ParameterResolutionException
        Specified by:
        resolveParameter in interface org.junit.jupiter.api.extension.ParameterResolver
        Throws:
        org.junit.jupiter.api.extension.ParameterResolutionException
      • beforeEach

        public void beforeEach​(org.junit.jupiter.api.extension.ExtensionContext context)
                        throws Exception
        Specified by:
        beforeEach in interface org.junit.jupiter.api.extension.BeforeEachCallback
        Throws:
        Exception