DBZ-2834 Make OT enabled by default & add supporting test cases
This commit is contained in:
parent
f83ee3f8b9
commit
58dc09caff
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -145,11 +145,9 @@ public void build(OutboxEventEntityBuildItem outboxBuildItem,
|
||||
BuildProducer<AdditionalBeanBuildItem> additionalBeanProducer,
|
||||
BuildProducer<GeneratedResourceBuildItem> generatedResourcesProducer,
|
||||
BuildProducer<ReflectiveClassBuildItem> reflectiveClassProducer,
|
||||
BuildProducer<OutboxOpenTracingBuildItem> 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));
|
||||
|
@ -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<String, String> getConfigOverrides() {
|
||||
return Collections.singletonMap("quarkus.debezium-outbox.tracing.enabled", "true");
|
||||
return Collections.singletonMap("quarkus.debezium-outbox.tracing.enabled", "false");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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]);
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
|
||||
/*
|
||||
* Copyright Debezium Authors.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user