From f3f8621e9759dc07e8cc7db6dcd6f74e898c8678 Mon Sep 17 00:00:00 2001 From: Chris Cranford Date: Wed, 21 Aug 2024 19:14:21 -0400 Subject: [PATCH] DBZ-8164 Upgrade Outbox Extension to Quarkus 3.14.0 --- .../DebeziumOutboxCommonConfig.java | 131 +++++++----------- .../deployment/OutboxEventHbmWriter.java | 66 ++++----- .../DebeziumOutboxCommonRuntimeConfig.java | 12 +- .../deployment/DebeziumOutboxConfig.java | 6 +- .../quarkus/deployment/OutboxProcessor.java | 2 +- .../internal/AbstractEventDispatcher.java | 2 +- .../internal/DebeziumOutboxRuntimeConfig.java | 6 +- .../deployment/DebeziumOutboxConfig.java | 6 +- .../quarkus/deployment/OutboxProcessor.java | 2 +- .../internal/AbstractEventDispatcher.java | 2 +- .../internal/DebeziumOutboxRuntimeConfig.java | 6 +- pom.xml | 2 +- 12 files changed, 114 insertions(+), 129 deletions(-) diff --git a/debezium-quarkus-outbox-common/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/DebeziumOutboxCommonConfig.java b/debezium-quarkus-outbox-common/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/DebeziumOutboxCommonConfig.java index 79aab0c22..7e4269321 100644 --- a/debezium-quarkus-outbox-common/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/DebeziumOutboxCommonConfig.java +++ b/debezium-quarkus-outbox-common/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/DebeziumOutboxCommonConfig.java @@ -8,10 +8,11 @@ import java.util.Optional; import io.debezium.outbox.quarkus.internal.OutboxConstants; -import io.quarkus.runtime.annotations.ConfigGroup; -import io.quarkus.runtime.annotations.ConfigItem; import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; +import io.smallrye.config.ConfigMapping; +import io.smallrye.config.WithDefault; +import io.smallrye.config.WithName; /** * Configuration root class for Debezium Outbox pattern that defines the available user @@ -19,211 +20,185 @@ * * @author Chris Cranford */ -@ConfigRoot(phase = ConfigPhase.BUILD_TIME, name = "debezium-outbox") -public class DebeziumOutboxCommonConfig { +@ConfigMapping(prefix = "quarkus.debezium-outbox") +@ConfigRoot(phase = ConfigPhase.BUILD_TIME) +public interface DebeziumOutboxCommonConfig { /** * The table name to be used for the outbox table */ - @ConfigItem(defaultValue = "OutboxEvent") - public String tableName; + @WithDefault("OutboxEvent") + String tableName(); /** * Outbox identifier configurable attributes */ - @ConfigItem - public DebeziumOutboxConfigId id; + DebeziumOutboxConfigId id(); /** * Outbox aggregate-id configurable attributes */ - @ConfigItem - public DebeziumOutboxConfigAggregateId aggregateId; + DebeziumOutboxConfigAggregateId aggregateId(); /** * Outbox aggregate-type configurable attributes */ - @ConfigItem - public DebeziumOutboxConfigAggregateType aggregateType; + DebeziumOutboxConfigAggregateType aggregateType(); /** * Outbox type configurable attributes */ - @ConfigItem - public DebeziumOutboxConfigType type; + DebeziumOutboxConfigType type(); /** * Outbox timestamp configurable attributes */ - @ConfigItem - public DebeziumOutboxConfigTimestamp timestamp; + DebeziumOutboxConfigTimestamp timestamp(); /** * Outbox payload configurable attributes */ - @ConfigItem - public DebeziumOutboxConfigPayload payload; + DebeziumOutboxConfigPayload payload(); /** * Outbox additional fields */ - @ConfigItem - public Optional additionalFields; + Optional additionalFields(); /** * Outbox Tracing configurable attributes */ - @ConfigItem - public DebeziumOutboxConfigTracingSpan tracingSpan; + DebeziumOutboxConfigTracingSpan tracingSpan(); /** * OpenTelemetry configuration option */ - @ConfigItem(name = "tracing.enabled", defaultValue = "true") - public boolean tracingEnabled; + @WithDefault("true") + @WithName("tracing.enabled") + boolean tracingEnabled(); - @ConfigGroup - public static class DebeziumOutboxConfigId { + interface DebeziumOutboxConfigId { /** * The column name. */ - @ConfigItem(defaultValue = "id") - public String name; + @WithDefault("id") + String name(); /** * The column definition. */ - @ConfigItem - public Optional columnDefinition; + Optional columnDefinition(); } - @ConfigGroup - public static class DebeziumOutboxConfigAggregateType { + interface DebeziumOutboxConfigAggregateType { /** * The column name. */ - @ConfigItem(defaultValue = "aggregatetype") - public String name; + @WithDefault("aggregatetype") + String name(); /** * The column definition. */ - @ConfigItem - public Optional columnDefinition; + Optional columnDefinition(); /** * The column's attribute converter fully qualified class name. * @see jakarta.persistence.AttributeConverter */ - @ConfigItem - public Optional converter; + Optional converter(); } - @ConfigGroup - public static class DebeziumOutboxConfigAggregateId { + interface DebeziumOutboxConfigAggregateId { /** * The column name. */ - @ConfigItem(defaultValue = "aggregateid") - public String name; + @WithDefault("aggregateid") + String name(); /** * The column definition. */ - @ConfigItem - public Optional columnDefinition; + Optional columnDefinition(); /** * The column's attribute converter fully qualified class name. * @see jakarta.persistence.AttributeConverter */ - @ConfigItem - public Optional converter; + Optional converter(); } - @ConfigGroup - public static class DebeziumOutboxConfigType { + interface DebeziumOutboxConfigType { /** * The column name. */ - @ConfigItem(defaultValue = "type") - public String name; + @WithDefault("type") + String name(); /** * The column definition. */ - @ConfigItem - public Optional columnDefinition; + Optional columnDefinition(); /** * The column's attribute converter fully qualified class name. * @see jakarta.persistence.AttributeConverter */ - @ConfigItem - public Optional converter; + Optional converter(); } - @ConfigGroup - public static class DebeziumOutboxConfigTimestamp { + interface DebeziumOutboxConfigTimestamp { /** * The column name. */ - @ConfigItem(defaultValue = "timestamp") - public String name; + @WithDefault("timestamp") + String name(); /** * The column definition. */ - @ConfigItem - public Optional columnDefinition; + Optional columnDefinition(); /** * The column's attribute converter fully qualified class name. * @see jakarta.persistence.AttributeConverter */ - @ConfigItem - public Optional converter; + Optional converter(); } - @ConfigGroup - public static class DebeziumOutboxConfigPayload { + interface DebeziumOutboxConfigPayload { /** * The column name. */ - @ConfigItem(defaultValue = "payload") - public String name; + @WithDefault("payload") + String name(); /** * The column definition. */ - @ConfigItem - public Optional columnDefinition; + Optional columnDefinition(); /** * The column's attribute converter fully qualified class name. * @see jakarta.persistence.AttributeConverter */ - @ConfigItem - public Optional converter; + Optional converter(); /** * The column's type definition class */ - @ConfigItem - public Optional type; + Optional type(); } - @ConfigGroup - public static class DebeziumOutboxConfigTracingSpan { + interface DebeziumOutboxConfigTracingSpan { /** * The column name. */ - @ConfigItem(defaultValue = OutboxConstants.TRACING_SPAN_CONTEXT) - public String name; + @WithDefault(OutboxConstants.TRACING_SPAN_CONTEXT) + String name(); /** * The column definition. */ - @ConfigItem - public Optional columnDefinition; + Optional columnDefinition(); } } diff --git a/debezium-quarkus-outbox-common/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxEventHbmWriter.java b/debezium-quarkus-outbox-common/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxEventHbmWriter.java index 6b448f7b4..0d3440930 100644 --- a/debezium-quarkus-outbox-common/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxEventHbmWriter.java +++ b/debezium-quarkus-outbox-common/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxEventHbmWriter.java @@ -39,7 +39,7 @@ static JaxbHbmHibernateMapping write(DebeziumOutboxCommonConfig config, OutboxEv final JaxbHbmRootEntityType entityType = new JaxbHbmRootEntityType(); entityType.setEntityName(OUTBOX_ENTITY_FULLNAME); - entityType.setTable(config.tableName); + entityType.setTable(config.tableName()); mapping.getClazz().add(entityType); // Setup generator @@ -55,13 +55,13 @@ static JaxbHbmHibernateMapping write(DebeziumOutboxCommonConfig config, OutboxEv entityType.getAttributes().add(createTypeAttribute(config)); entityType.getAttributes().add(createTimestampAttribute(config)); entityType.getAttributes().add(createPayloadAttribute(config, outboxEventEntityBuildItem)); - if (config.tracingEnabled) { + if (config.tracingEnabled()) { entityType.getAttributes().add(createTracingSpanAttribute(config)); } // Additional fields - if (config.additionalFields.isPresent()) { - String[] fields = config.additionalFields.get().split(","); + if (config.additionalFields().isPresent()) { + String[] fields = config.additionalFields().get().split(","); for (int fieldIndex = 0; fieldIndex < fields.length; ++fieldIndex) { String[] parts = fields[fieldIndex].split(":"); if (parts.length < 2) { @@ -96,8 +96,8 @@ private static JaxbHbmSimpleIdType createIdAttribute(DebeziumOutboxCommonConfig attribute.setTypeAttribute(UUID.class.getName()); final JaxbHbmColumnType column = new JaxbHbmColumnType(); - column.setName(config.id.name); - config.id.columnDefinition.ifPresent(column::setSqlType); + column.setName(config.id().name()); + config.id().columnDefinition().ifPresent(column::setSqlType); attribute.getColumn().add(column); final JaxbHbmGeneratorSpecificationType generator = new JaxbHbmGeneratorSpecificationType(); @@ -111,16 +111,16 @@ private static JaxbHbmBasicAttributeType createAggregateTypeAttribute(DebeziumOu final JaxbHbmBasicAttributeType attribute = new JaxbHbmBasicAttributeType(); attribute.setName("aggregateType"); attribute.setNotNull(true); - if (config.aggregateType.converter.isPresent()) { - attribute.setTypeAttribute("converted::" + config.aggregateType.converter.get()); + if (config.aggregateType().converter().isPresent()) { + attribute.setTypeAttribute("converted::" + config.aggregateType().converter().get()); } else { attribute.setTypeAttribute("string"); } final JaxbHbmColumnType column = new JaxbHbmColumnType(); - column.setName(config.aggregateType.name); - config.aggregateType.columnDefinition.ifPresent(column::setSqlType); + column.setName(config.aggregateType().name()); + config.aggregateType().columnDefinition().ifPresent(column::setSqlType); attribute.getColumnOrFormula().add(column); return attribute; @@ -131,16 +131,16 @@ private static JaxbHbmBasicAttributeType createAggregateIdAttribute(DebeziumOutb final JaxbHbmBasicAttributeType attribute = new JaxbHbmBasicAttributeType(); attribute.setName("aggregateId"); attribute.setNotNull(true); - if (config.aggregateId.converter.isPresent()) { - attribute.setTypeAttribute("converted::" + config.aggregateId.converter.get()); + if (config.aggregateId().converter().isPresent()) { + attribute.setTypeAttribute("converted::" + config.aggregateId().converter().get()); } else { attribute.setTypeAttribute(outboxEventEntityBuildItem.getAggregateIdType().name().toString()); } final JaxbHbmColumnType column = new JaxbHbmColumnType(); - column.setName(config.aggregateId.name); - config.aggregateId.columnDefinition.ifPresent(column::setSqlType); + column.setName(config.aggregateId().name()); + config.aggregateId().columnDefinition().ifPresent(column::setSqlType); attribute.getColumnOrFormula().add(column); return attribute; @@ -150,16 +150,16 @@ private static JaxbHbmBasicAttributeType createTypeAttribute(DebeziumOutboxCommo final JaxbHbmBasicAttributeType attribute = new JaxbHbmBasicAttributeType(); attribute.setName("type"); attribute.setNotNull(true); - if (config.type.converter.isPresent()) { - attribute.setTypeAttribute("converted::" + config.type.converter.get()); + if (config.type().converter().isPresent()) { + attribute.setTypeAttribute("converted::" + config.type().converter().get()); } else { attribute.setTypeAttribute("string"); } final JaxbHbmColumnType column = new JaxbHbmColumnType(); - column.setName(config.type.name); - config.type.columnDefinition.ifPresent(column::setSqlType); + column.setName(config.type().name()); + config.type().columnDefinition().ifPresent(column::setSqlType); attribute.getColumnOrFormula().add(column); return attribute; @@ -169,8 +169,8 @@ private static JaxbHbmBasicAttributeType createTimestampAttribute(DebeziumOutbox final JaxbHbmBasicAttributeType attribute = new JaxbHbmBasicAttributeType(); attribute.setName("timestamp"); attribute.setNotNull(true); - if (config.timestamp.converter.isPresent()) { - attribute.setTypeAttribute("converted::" + config.timestamp.converter.get()); + if (config.timestamp().converter().isPresent()) { + attribute.setTypeAttribute("converted::" + config.timestamp().converter().get()); } else { // Hibernate 6.x expects full qualified class names for this whereas Hibernate 5.x had @@ -179,8 +179,8 @@ private static JaxbHbmBasicAttributeType createTimestampAttribute(DebeziumOutbox } final JaxbHbmColumnType column = new JaxbHbmColumnType(); - column.setName(config.timestamp.name); - config.timestamp.columnDefinition.ifPresent(column::setSqlType); + column.setName(config.timestamp().name()); + config.timestamp().columnDefinition().ifPresent(column::setSqlType); attribute.getColumnOrFormula().add(column); return attribute; @@ -195,13 +195,13 @@ private static JaxbHbmBasicAttributeType createPayloadAttribute(DebeziumOutboxCo attribute.setName("payload"); attribute.setNotNull(false); - if (config.payload.type.isPresent()) { - LOGGER.info("Using payload type: {}", config.payload.type.get()); - attribute.setTypeAttribute(config.payload.type.get()); + if (config.payload().type().isPresent()) { + LOGGER.info("Using payload type: {}", config.payload().type().get()); + attribute.setTypeAttribute(config.payload().type().get()); } - else if (config.payload.converter.isPresent()) { - LOGGER.info("Using payload attribute converter: {}", config.payload.converter.get()); - attribute.setTypeAttribute("converted::" + config.payload.converter.get()); + else if (config.payload().converter().isPresent()) { + LOGGER.info("Using payload attribute converter: {}", config.payload().converter().get()); + attribute.setTypeAttribute("converted::" + config.payload().converter().get()); } else if (isJacksonJsonNode) { LOGGER.info("Using payload attribute converter: {}", JsonNodeAttributeConverter.class.getName()); @@ -214,10 +214,10 @@ else if (isJacksonJsonNode) { } final JaxbHbmColumnType column = new JaxbHbmColumnType(); - column.setName(config.payload.name); + column.setName(config.payload().name()); - if (config.payload.columnDefinition.isPresent()) { - column.setSqlType(config.payload.columnDefinition.get()); + if (config.payload().columnDefinition().isPresent()) { + column.setSqlType(config.payload().columnDefinition().get()); } else if (isJacksonJsonNode) { column.setSqlType("varchar(8000)"); @@ -235,10 +235,10 @@ private static JaxbHbmBasicAttributeType createTracingSpanAttribute(DebeziumOutb attribute.setTypeAttribute("string"); final JaxbHbmColumnType column = new JaxbHbmColumnType(); - column.setName(config.tracingSpan.name); + column.setName(config.tracingSpan().name()); column.setLength(256); - config.tracingSpan.columnDefinition.ifPresent(column::setSqlType); + config.tracingSpan().columnDefinition().ifPresent(column::setSqlType); attribute.getColumnOrFormula().add(column); diff --git a/debezium-quarkus-outbox-common/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumOutboxCommonRuntimeConfig.java b/debezium-quarkus-outbox-common/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumOutboxCommonRuntimeConfig.java index 7bc090e28..d64a48a85 100644 --- a/debezium-quarkus-outbox-common/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumOutboxCommonRuntimeConfig.java +++ b/debezium-quarkus-outbox-common/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumOutboxCommonRuntimeConfig.java @@ -5,20 +5,22 @@ */ package io.debezium.outbox.quarkus.internal; -import io.quarkus.runtime.annotations.ConfigItem; import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; +import io.smallrye.config.ConfigMapping; +import io.smallrye.config.WithDefault; /** * Debezium outbox Quarkus extension common runtime configuration properties. * * @author Chris Cranford */ -@ConfigRoot(phase = ConfigPhase.RUN_TIME, name = "debezium-outbox") -public class DebeziumOutboxCommonRuntimeConfig { +@ConfigMapping(prefix = "quarkus.debezium-outbox") +@ConfigRoot(phase = ConfigPhase.RUN_TIME) +public interface DebeziumOutboxCommonRuntimeConfig { /** * Remove outbox entity after being inserted. Default is {@code true}. */ - @ConfigItem(defaultValue = "true") - public boolean removeAfterInsert; + @WithDefault("true") + boolean removeAfterInsert(); } diff --git a/debezium-quarkus-outbox-reactive/deployment/src/main/java/io/debezium/outbox/reactive/quarkus/deployment/DebeziumOutboxConfig.java b/debezium-quarkus-outbox-reactive/deployment/src/main/java/io/debezium/outbox/reactive/quarkus/deployment/DebeziumOutboxConfig.java index d58b3273b..ff0882486 100644 --- a/debezium-quarkus-outbox-reactive/deployment/src/main/java/io/debezium/outbox/reactive/quarkus/deployment/DebeziumOutboxConfig.java +++ b/debezium-quarkus-outbox-reactive/deployment/src/main/java/io/debezium/outbox/reactive/quarkus/deployment/DebeziumOutboxConfig.java @@ -8,6 +8,7 @@ import io.debezium.outbox.quarkus.deployment.DebeziumOutboxCommonConfig; import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; +import io.smallrye.config.ConfigMapping; /** * Configuration root class for Debezium Outbox pattern that defines the available user @@ -15,7 +16,8 @@ * * @author Chris Cranford */ -@ConfigRoot(phase = ConfigPhase.BUILD_TIME, name = "debezium-outbox") -public class DebeziumOutboxConfig extends DebeziumOutboxCommonConfig { +@ConfigMapping(prefix = "quarkus.debezium-outbox") +@ConfigRoot(phase = ConfigPhase.BUILD_TIME) +public interface DebeziumOutboxConfig extends DebeziumOutboxCommonConfig { } diff --git a/debezium-quarkus-outbox-reactive/deployment/src/main/java/io/debezium/outbox/reactive/quarkus/deployment/OutboxProcessor.java b/debezium-quarkus-outbox-reactive/deployment/src/main/java/io/debezium/outbox/reactive/quarkus/deployment/OutboxProcessor.java index 7c7f2c7e3..f81f9e045 100644 --- a/debezium-quarkus-outbox-reactive/deployment/src/main/java/io/debezium/outbox/reactive/quarkus/deployment/OutboxProcessor.java +++ b/debezium-quarkus-outbox-reactive/deployment/src/main/java/io/debezium/outbox/reactive/quarkus/deployment/OutboxProcessor.java @@ -42,7 +42,7 @@ public void build(OutboxEventEntityBuildItem outboxBuildItem, BuildProducer generatedResourcesProducer, BuildProducer reflectiveClassProducer, Capabilities capabilities) { - if (debeziumOutboxConfig.tracingEnabled && capabilities.isPresent(Capability.OPENTELEMETRY_TRACER)) { + if (debeziumOutboxConfig.tracingEnabled() && capabilities.isPresent(Capability.OPENTELEMETRY_TRACER)) { additionalBeanProducer.produce(AdditionalBeanBuildItem.unremovableOf(DebeziumTracerEventDispatcher.class)); } diff --git a/debezium-quarkus-outbox-reactive/runtime/src/main/java/io/debezium/outbox/reactive/quarkus/internal/AbstractEventDispatcher.java b/debezium-quarkus-outbox-reactive/runtime/src/main/java/io/debezium/outbox/reactive/quarkus/internal/AbstractEventDispatcher.java index f0ecc4305..bfab48999 100644 --- a/debezium-quarkus-outbox-reactive/runtime/src/main/java/io/debezium/outbox/reactive/quarkus/internal/AbstractEventDispatcher.java +++ b/debezium-quarkus-outbox-reactive/runtime/src/main/java/io/debezium/outbox/reactive/quarkus/internal/AbstractEventDispatcher.java @@ -48,7 +48,7 @@ protected Uni persist(Map dataMap) { } protected Uni removeFromOutbox(Map dataMap) { - if (config.removeAfterInsert) { + if (config.removeAfterInsert()) { LOGGER.debug("removing outbox event"); return factory.withSession( session -> session.withTransaction( diff --git a/debezium-quarkus-outbox-reactive/runtime/src/main/java/io/debezium/outbox/reactive/quarkus/internal/DebeziumOutboxRuntimeConfig.java b/debezium-quarkus-outbox-reactive/runtime/src/main/java/io/debezium/outbox/reactive/quarkus/internal/DebeziumOutboxRuntimeConfig.java index 698b52cd0..7f97c955c 100644 --- a/debezium-quarkus-outbox-reactive/runtime/src/main/java/io/debezium/outbox/reactive/quarkus/internal/DebeziumOutboxRuntimeConfig.java +++ b/debezium-quarkus-outbox-reactive/runtime/src/main/java/io/debezium/outbox/reactive/quarkus/internal/DebeziumOutboxRuntimeConfig.java @@ -8,13 +8,15 @@ import io.debezium.outbox.quarkus.internal.DebeziumOutboxCommonRuntimeConfig; import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; +import io.smallrye.config.ConfigMapping; /** * Debezium outbox Quarkus extension runtime configuration properties. * * @author Chris Cranford */ -@ConfigRoot(phase = ConfigPhase.RUN_TIME, name = "debezium-outbox") -public class DebeziumOutboxRuntimeConfig extends DebeziumOutboxCommonRuntimeConfig { +@ConfigMapping(prefix = "quarkus.debezium-outbox") +@ConfigRoot(phase = ConfigPhase.RUN_TIME) +public interface DebeziumOutboxRuntimeConfig extends DebeziumOutboxCommonRuntimeConfig { } diff --git a/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/DebeziumOutboxConfig.java b/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/DebeziumOutboxConfig.java index 73c199c57..f3b7ef6df 100644 --- a/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/DebeziumOutboxConfig.java +++ b/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/DebeziumOutboxConfig.java @@ -7,6 +7,7 @@ import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; +import io.smallrye.config.ConfigMapping; /** * Configuration root class for Debezium Outbox pattern that defines the available user @@ -14,7 +15,8 @@ * * @author Chris Cranford */ -@ConfigRoot(phase = ConfigPhase.BUILD_TIME, name = "debezium-outbox") -public class DebeziumOutboxConfig extends DebeziumOutboxCommonConfig { +@ConfigMapping(prefix = "quarkus.debezium-outbox") +@ConfigRoot(phase = ConfigPhase.BUILD_TIME) +public interface DebeziumOutboxConfig extends DebeziumOutboxCommonConfig { } diff --git a/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxProcessor.java b/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxProcessor.java index 245c8948a..f2b7c3939 100644 --- a/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxProcessor.java +++ b/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxProcessor.java @@ -38,7 +38,7 @@ public void build(OutboxEventEntityBuildItem outboxBuildItem, BuildProducer generatedResourcesProducer, BuildProducer reflectiveClassProducer, Capabilities capabilities) { - if (getConfig().tracingEnabled && capabilities.isPresent(Capability.OPENTELEMETRY_TRACER)) { + if (getConfig().tracingEnabled() && capabilities.isPresent(Capability.OPENTELEMETRY_TRACER)) { additionalBeanProducer.produce(AdditionalBeanBuildItem.unremovableOf(DebeziumTracerEventDispatcher.class)); } else { diff --git a/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/AbstractEventDispatcher.java b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/AbstractEventDispatcher.java index 28d5e2624..47cef4fcf 100644 --- a/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/AbstractEventDispatcher.java +++ b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/AbstractEventDispatcher.java @@ -47,7 +47,7 @@ protected Void persist(Map dataMap) { private void remove(Map dataMap, Session session) { // Remove entity if the configuration deems doing so, leaving useful for debugging - if (config.removeAfterInsert) { + if (config.removeAfterInsert()) { session.delete(OUTBOX_ENTITY_FULLNAME, dataMap); } } diff --git a/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumOutboxRuntimeConfig.java b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumOutboxRuntimeConfig.java index 8888ea8ef..25a334360 100644 --- a/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumOutboxRuntimeConfig.java +++ b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumOutboxRuntimeConfig.java @@ -7,13 +7,15 @@ import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; +import io.smallrye.config.ConfigMapping; /** * Debezium outbox Quarkus extension runtime configuration properties. * * @author Chris Cranford */ -@ConfigRoot(phase = ConfigPhase.RUN_TIME, name = "debezium-outbox") -public class DebeziumOutboxRuntimeConfig extends DebeziumOutboxCommonRuntimeConfig { +@ConfigMapping(prefix = "quarkus.debezium-outbox") +@ConfigRoot(phase = ConfigPhase.RUN_TIME) +public interface DebeziumOutboxRuntimeConfig extends DebeziumOutboxCommonRuntimeConfig { } diff --git a/pom.xml b/pom.xml index 4781ec55e..ae8c5a6e0 100644 --- a/pom.xml +++ b/pom.xml @@ -125,7 +125,7 @@ - 3.12.0 + 3.14.0