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