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 b471bd74e..a343a75a7 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 @@ -71,9 +71,9 @@ public class DebeziumOutboxConfig { public DebeziumOutboxConfigTracingSpan tracingSpan; /** - * Whether or not smallrye-opentracing extension is present. + * smallrye-opentracing configuration option */ - @ConfigItem(name = "tracing.enabled", defaultValue = "false") + @ConfigItem(name = "tracing.enabled", defaultValue = "true") public boolean tracingEnabled; @ConfigGroup diff --git a/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxOpenTracingBuildItem.java b/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxOpenTracingBuildItem.java deleted file mode 100644 index 06b7e7354..000000000 --- a/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/OutboxOpenTracingBuildItem.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright Debezium Authors. - * - * Licensed under the Apache Software License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 - */ -package io.debezium.outbox.quarkus.deployment; - -import io.quarkus.builder.item.SimpleBuildItem; - -/** - * A build item that represents data relevant to OpenTracing dependency. - * - * @author Anisha Mohanty - */ -public final class OutboxOpenTracingBuildItem extends SimpleBuildItem { - - private final boolean enabled; - - public OutboxOpenTracingBuildItem(boolean enabled) { - this.enabled = enabled; - } - - public boolean isEnabled() { - return enabled; - } -} 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 67d30b552..cd44a03a8 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 @@ -145,11 +145,9 @@ public void build(OutboxEventEntityBuildItem outboxBuildItem, BuildProducer additionalBeanProducer, BuildProducer generatedResourcesProducer, BuildProducer reflectiveClassProducer, - BuildProducer buildItemBuildProducer, Capabilities capabilities) { if (debeziumOutboxConfig.tracingEnabled && capabilities.isPresent(Capability.OPENTRACING)) { additionalBeanProducer.produce(AdditionalBeanBuildItem.unremovableOf(DebeziumTracerEventDispatcher.class)); - buildItemBuildProducer.produce(new OutboxOpenTracingBuildItem(true)); } else { additionalBeanProducer.produce(AdditionalBeanBuildItem.unremovableOf(DefaultEventDispatcher.class)); diff --git a/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxProfiles.java b/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxProfiles.java index 5f5d0d84b..41a08abee 100644 --- a/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxProfiles.java +++ b/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxProfiles.java @@ -23,12 +23,12 @@ public static class Default implements QuarkusTestProfile { } /** - * Enables OpenTracing support that is disabled by default. + * Disables OpenTracing support that is enabled by default. */ - public static class OpenTracing implements QuarkusTestProfile { + public static class OpenTracingDisabled implements QuarkusTestProfile { @Override public Map getConfigOverrides() { - return Collections.singletonMap("quarkus.debezium-outbox.tracing.enabled", "true"); + return Collections.singletonMap("quarkus.debezium-outbox.tracing.enabled", "false"); } } } diff --git a/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxTest.java b/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxTest.java index e0ac5bd6f..46876ce99 100644 --- a/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxTest.java +++ b/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxTest.java @@ -5,6 +5,21 @@ */ package io.debezium.outbox.quarkus.it; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import java.math.BigInteger; +import java.sql.Timestamp; +import java.time.Instant; +import java.util.UUID; + +import javax.inject.Inject; +import javax.persistence.EntityManager; +import javax.persistence.Query; + +import org.junit.jupiter.api.Test; + import io.quarkus.test.junit.QuarkusTest; import io.quarkus.test.junit.TestProfile; @@ -16,5 +31,26 @@ @QuarkusTest @TestProfile(OutboxProfiles.Default.class) public class OutboxTest extends AbstractOutboxTest { + @Inject + EntityManager entityManager; + @Inject + MyService myService; + + @Test + public void firedEventGetsPersistedInOutboxTable() { + myService.doSomething(); + + Query q = entityManager + .createNativeQuery("SELECT CAST(id as varchar), aggregateId, aggregateType, type, timestamp, payload, tracingspancontext FROM OutboxEvent"); + Object[] row = (Object[]) q.getSingleResult(); + + assertNotNull(UUID.fromString((String) row[0])); + assertEquals(BigInteger.valueOf(1L), row[1]); + assertEquals("MyOutboxEvent", row[2]); + assertEquals("SomeType", row[3]); + assertTrue(((Timestamp) row[4]).toInstant().isBefore(Instant.now())); + assertEquals("Some amazing payload", row[5]); + assertNotNull(row[6]); + } } diff --git a/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxOpenTracingTest.java b/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxWithoutOpenTracingTest.java similarity index 51% rename from debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxOpenTracingTest.java rename to debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxWithoutOpenTracingTest.java index 20b9f0397..8aa4ddd43 100644 --- a/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxOpenTracingTest.java +++ b/debezium-quarkus-outbox/integration-tests/src/test/java/io/debezium/outbox/quarkus/it/OutboxWithoutOpenTracingTest.java @@ -5,16 +5,18 @@ */ package io.debezium.outbox.quarkus.it; +import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.junit.QuarkusTest; import io.quarkus.test.junit.TestProfile; /** - * Integration tests for the Debezium Outbox extension, enabling OpenTracing behavior by default. + * Integration tests for the Debezium Outbox extension, disabling OpenTracing behavior. * * @author Chris Cranford */ @QuarkusTest -@TestProfile(OutboxProfiles.OpenTracing.class) -public class OutboxOpenTracingTest extends AbstractOutboxTest { +@TestProfile(OutboxProfiles.OpenTracingDisabled.class) +@QuarkusTestResource(DatabaseTestResource.class) +public class OutboxWithoutOpenTracingTest extends AbstractOutboxTest { } 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 bc8f1854a..b57dbef32 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 @@ -66,4 +66,4 @@ protected Map getDataMapFromEvent(ExportedEvent event) { dataMap.put(TIMESTAMP, event.getTimestamp()); return dataMap; } -} \ No newline at end of file +} diff --git a/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumTracerEventDispatcher.java b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumTracerEventDispatcher.java index d1a3cc7c1..bddefc031 100644 --- a/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumTracerEventDispatcher.java +++ b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/DebeziumTracerEventDispatcher.java @@ -68,4 +68,4 @@ public void onExportedEvent(@Observes ExportedEvent event) { persist(dataMap); } } -} \ No newline at end of file +} diff --git a/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/EventDispatcher.java b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/EventDispatcher.java index f2c889d32..d3e2054a5 100644 --- a/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/EventDispatcher.java +++ b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/EventDispatcher.java @@ -1,4 +1,3 @@ - /* * Copyright Debezium Authors. * @@ -24,4 +23,4 @@ public interface EventDispatcher { * the exported event */ void onExportedEvent(@Observes ExportedEvent event); -} \ No newline at end of file +}