Class DebeziumServer

java.lang.Object
io.debezium.server.DebeziumServer

@ApplicationScoped public class DebeziumServer extends Object

The entry point of the Quarkus-based standalone server. The server is configured via Quarkus/Microprofile Configuration sources and provides few out-of-the-box target implementations.

The implementation uses CDI to find all classes that implements DebeziumEngine.ChangeConsumer interface. The candidate classes should be annotated with @Named annotation and should be Dependent.

The configuration option debezium.consumer provides a name of the consumer that should be used and the value must match to exactly one of the implementation classes.

Author:
Jiri Pechanec
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • PROP_PREFIX

      private static final String PROP_PREFIX
      See Also:
    • PROP_SOURCE_PREFIX

      private static final String PROP_SOURCE_PREFIX
      See Also:
    • PROP_SINK_PREFIX

      private static final String PROP_SINK_PREFIX
      See Also:
    • PROP_FORMAT_PREFIX

      private static final String PROP_FORMAT_PREFIX
      See Also:
    • PROP_PREDICATES_PREFIX

      private static final String PROP_PREDICATES_PREFIX
      See Also:
    • PROP_TRANSFORMS_PREFIX

      private static final String PROP_TRANSFORMS_PREFIX
      See Also:
    • PROP_HEADER_FORMAT_PREFIX

      private static final String PROP_HEADER_FORMAT_PREFIX
      See Also:
    • PROP_KEY_FORMAT_PREFIX

      private static final String PROP_KEY_FORMAT_PREFIX
      See Also:
    • PROP_VALUE_FORMAT_PREFIX

      private static final String PROP_VALUE_FORMAT_PREFIX
      See Also:
    • PROP_OFFSET_STORAGE_PREFIX

      private static final String PROP_OFFSET_STORAGE_PREFIX
      See Also:
    • PROP_PREDICATES

      private static final String PROP_PREDICATES
      See Also:
    • PROP_TRANSFORMS

      private static final String PROP_TRANSFORMS
      See Also:
    • PROP_SINK_TYPE

      private static final String PROP_SINK_TYPE
      See Also:
    • PROP_HEADER_FORMAT

      private static final String PROP_HEADER_FORMAT
      See Also:
    • PROP_KEY_FORMAT

      private static final String PROP_KEY_FORMAT
      See Also:
    • PROP_VALUE_FORMAT

      private static final String PROP_VALUE_FORMAT
      See Also:
    • PROP_TERMINATION_WAIT

      private static final String PROP_TERMINATION_WAIT
      See Also:
    • PROP_ENGINE_FACTORY

      private static final String PROP_ENGINE_FACTORY
      See Also:
    • FORMAT_JSON

      private static final String FORMAT_JSON
    • FORMAT_JSON_BYTE_ARRAY

      private static final String FORMAT_JSON_BYTE_ARRAY
    • FORMAT_CLOUDEVENT

      private static final String FORMAT_CLOUDEVENT
    • FORMAT_AVRO

      private static final String FORMAT_AVRO
    • FORMAT_PROTOBUF

      private static final String FORMAT_PROTOBUF
    • FORMAT_BINARY

      private static final String FORMAT_BINARY
    • FORMAT_STRING

      private static final String FORMAT_STRING
    • SHELL_PROPERTY_NAME_PATTERN

      private static final Pattern SHELL_PROPERTY_NAME_PATTERN
    • executor

      private ExecutorService executor
    • returnCode

      private int returnCode
    • beanManager

      @Inject jakarta.enterprise.inject.spi.BeanManager beanManager
    • health

      @Inject @Liveness ConnectorLifecycle health
    • consumerBean

      private jakarta.enterprise.inject.spi.Bean<io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>>> consumerBean
    • consumerBeanCreationalContext

      private jakarta.enterprise.context.spi.CreationalContext<io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>>> consumerBeanCreationalContext
    • consumer

      private io.debezium.engine.DebeziumEngine.ChangeConsumer<io.debezium.engine.ChangeEvent<Object,Object>> consumer
    • engine

      private io.debezium.engine.DebeziumEngine<?> engine
    • props

      private final Properties props
  • Constructor Details

    • DebeziumServer

      public DebeziumServer()
  • Method Details

    • start

      @PostConstruct public void start()
    • configToProperties

      private void configToProperties(org.eclipse.microprofile.config.Config config, Properties props, String oldPrefix, String newPrefix, boolean overwrite)
    • getFormat

      private Class<?> getFormat(org.eclipse.microprofile.config.Config config, String property)
    • getHeaderFormat

      private Class<?> getHeaderFormat(org.eclipse.microprofile.config.Config config)
    • stop

      public void stop(@Observes io.quarkus.runtime.ShutdownEvent event)
    • connectorCompleted

      void connectorCompleted(@Observes ConnectorCompletedEvent event)
    • loadConfigOrDie

      private org.eclipse.microprofile.config.Config loadConfigOrDie()
    • getConsumer

      io.debezium.engine.DebeziumEngine.ChangeConsumer<?> getConsumer()
      For test purposes only
    • getProps

      public Properties getProps()