diff --git a/debezium-quarkus-outbox/deployment/src/main/resources/META-INF/services/org.hibernate.boot.spi.AdditionalJaxbMappingProducer b/debezium-quarkus-outbox/deployment/src/main/resources/META-INF/services/org.hibernate.boot.spi.AdditionalJaxbMappingProducer
deleted file mode 100644
index b8cf01552..000000000
--- a/debezium-quarkus-outbox/deployment/src/main/resources/META-INF/services/org.hibernate.boot.spi.AdditionalJaxbMappingProducer
+++ /dev/null
@@ -1 +0,0 @@
-io.debezium.outbox.quarkus.deployment.AdditionalJaxbMappingProducerImpl
diff --git a/debezium-quarkus-outbox/runtime/pom.xml b/debezium-quarkus-outbox/runtime/pom.xml
index abd2869ae..4a5878efd 100644
--- a/debezium-quarkus-outbox/runtime/pom.xml
+++ b/debezium-quarkus-outbox/runtime/pom.xml
@@ -28,6 +28,12 @@
quarkus-smallrye-opentracing
true
+
+
+ org.jboss
+ jandex
+ 2.4.0.Final
+
io.debezium
@@ -91,10 +97,16 @@
true
+ src/main/resources-filtered
+
+ **/*
+
+
+
+ false
src/main/resources
-
- **/quarkus-extension.yaml
+ **/*
diff --git a/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/AdditionalJaxbMappingProducerImpl.java b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/AdditionalJaxbMappingProducerImpl.java
similarity index 80%
rename from debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/AdditionalJaxbMappingProducerImpl.java
rename to debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/AdditionalJaxbMappingProducerImpl.java
index 56ecab906..bc5311886 100644
--- a/debezium-quarkus-outbox/deployment/src/main/java/io/debezium/outbox/quarkus/deployment/AdditionalJaxbMappingProducerImpl.java
+++ b/debezium-quarkus-outbox/runtime/src/main/java/io/debezium/outbox/quarkus/internal/AdditionalJaxbMappingProducerImpl.java
@@ -3,7 +3,7 @@
*
* 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;
+package io.debezium.outbox.quarkus.internal;
import static io.debezium.outbox.quarkus.internal.OutboxConstants.OUTBOX_ENTITY_HBMXML;
@@ -16,11 +16,16 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
+import java.io.StringWriter;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.Collections;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+
import org.hibernate.boot.jaxb.Origin;
import org.hibernate.boot.jaxb.SourceType;
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmHibernateMapping;
@@ -74,6 +79,10 @@ public Collection produceAdditionalMappings(MetadataImplementor
try (BufferedInputStream bis = new BufferedInputStream(bais)) {
final Binding> jaxbBinding = mappingBinder.bind(bis, origin);
final JaxbHbmHibernateMapping mapping = (JaxbHbmHibernateMapping) jaxbBinding.getRoot();
+
+ logOutboxMapping(mapping);
+
+ LOGGER.info("Contributed XML mapping for entity: {}", mapping.getClazz().get(0).getEntityName());
return Collections.singletonList(new MappingDocument(mapping, origin, buildingContext));
}
}
@@ -95,4 +104,21 @@ private InputStream getOutboxHbmXmlStream() {
// Attempt to load the XML using the current class loader
return getClass().getResourceAsStream("/" + OUTBOX_ENTITY_HBMXML);
}
+
+ private void logOutboxMapping(JaxbHbmHibernateMapping mapping) {
+ try {
+ JAXBContext context = JAXBContext.newInstance(JaxbHbmHibernateMapping.class);
+
+ Marshaller marshaller = context.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
+
+ final StringWriter writer = new StringWriter();
+ marshaller.marshal(mapping, writer);
+
+ LOGGER.debug("Debezium Outbox XML Mapping:\n{}", writer);
+ }
+ catch (JAXBException e) {
+ throw new RuntimeException("Failed to marshal Debezium Outbox XML mapping", e);
+ }
+ }
}
diff --git a/debezium-quarkus-outbox/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/debezium-quarkus-outbox/runtime/src/main/resources-filtered/META-INF/quarkus-extension.yaml
similarity index 100%
rename from debezium-quarkus-outbox/runtime/src/main/resources/META-INF/quarkus-extension.yaml
rename to debezium-quarkus-outbox/runtime/src/main/resources-filtered/META-INF/quarkus-extension.yaml
diff --git a/debezium-quarkus-outbox/runtime/src/main/resources/META-INF/services/org.hibernate.boot.spi.AdditionalJaxbMappingProducer b/debezium-quarkus-outbox/runtime/src/main/resources/META-INF/services/org.hibernate.boot.spi.AdditionalJaxbMappingProducer
new file mode 100644
index 000000000..3bd02197b
--- /dev/null
+++ b/debezium-quarkus-outbox/runtime/src/main/resources/META-INF/services/org.hibernate.boot.spi.AdditionalJaxbMappingProducer
@@ -0,0 +1 @@
+io.debezium.outbox.quarkus.internal.AdditionalJaxbMappingProducerImpl