DBZ-7388 Fix Hibernate API deprecated usages
This commit is contained in:
parent
90a076ac86
commit
d73f008884
@ -112,7 +112,7 @@ public static class DebeziumOutboxConfigAggregateType {
|
||||
|
||||
/**
|
||||
* The column's attribute converter fully qualified class name.
|
||||
* @see javax.persistence.AttributeConverter
|
||||
* @see jakarta.persistence.AttributeConverter
|
||||
*/
|
||||
@ConfigItem
|
||||
public Optional<String> converter;
|
||||
@ -134,7 +134,7 @@ public static class DebeziumOutboxConfigAggregateId {
|
||||
|
||||
/**
|
||||
* The column's attribute converter fully qualified class name.
|
||||
* @see javax.persistence.AttributeConverter
|
||||
* @see jakarta.persistence.AttributeConverter
|
||||
*/
|
||||
@ConfigItem
|
||||
public Optional<String> converter;
|
||||
@ -156,7 +156,7 @@ public static class DebeziumOutboxConfigType {
|
||||
|
||||
/**
|
||||
* The column's attribute converter fully qualified class name.
|
||||
* @see javax.persistence.AttributeConverter
|
||||
* @see jakarta.persistence.AttributeConverter
|
||||
*/
|
||||
@ConfigItem
|
||||
public Optional<String> converter;
|
||||
@ -178,7 +178,7 @@ public static class DebeziumOutboxConfigTimestamp {
|
||||
|
||||
/**
|
||||
* The column's attribute converter fully qualified class name.
|
||||
* @see javax.persistence.AttributeConverter
|
||||
* @see jakarta.persistence.AttributeConverter
|
||||
*/
|
||||
@ConfigItem
|
||||
public Optional<String> converter;
|
||||
@ -200,7 +200,7 @@ public static class DebeziumOutboxConfigPayload {
|
||||
|
||||
/**
|
||||
* The column's attribute converter fully qualified class name.
|
||||
* @see javax.persistence.AttributeConverter
|
||||
* @see jakarta.persistence.AttributeConverter
|
||||
*/
|
||||
@ConfigItem
|
||||
public Optional<String> converter;
|
||||
|
@ -238,9 +238,7 @@ private static JaxbHbmBasicAttributeType createTracingSpanAttribute(DebeziumOutb
|
||||
column.setName(config.tracingSpan.name);
|
||||
column.setLength(256);
|
||||
|
||||
if (config.tracingSpan.columnDefinition.isPresent()) {
|
||||
column.setSqlType(config.tracingSpan.columnDefinition.get());
|
||||
}
|
||||
config.tracingSpan.columnDefinition.ifPresent(column::setSqlType);
|
||||
|
||||
attribute.getColumnOrFormula().add(column);
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
*/
|
||||
package io.debezium.outbox.reactive.quarkus.it;
|
||||
|
||||
import static io.debezium.outbox.reactive.quarkus.it.TestAsserts.assertIsType;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
@ -16,7 +17,7 @@
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
|
||||
import org.hibernate.metamodel.spi.MetamodelImplementor;
|
||||
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
|
||||
import org.hibernate.persister.entity.EntityPersister;
|
||||
import org.hibernate.reactive.mutiny.Mutiny;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@ -46,19 +47,19 @@ public abstract class AbstractOutboxTest {
|
||||
|
||||
@Test
|
||||
public void testOutboxEntityMetamodelExists() throws Exception {
|
||||
final MetamodelImplementor metadata = (MetamodelImplementor) sessionFactory.getMetamodel();
|
||||
final EntityPersister persister = metadata.entityPersister(OutboxConstants.OUTBOX_ENTITY_FULLNAME);
|
||||
final MappingMetamodelImplementor metadata = (MappingMetamodelImplementor) sessionFactory.getMetamodel();
|
||||
final EntityPersister persister = metadata.findEntityDescriptor(OutboxConstants.OUTBOX_ENTITY_FULLNAME);
|
||||
assertNotNull(persister);
|
||||
// this assumes the default mapping settings, no custom converters or column types
|
||||
assertEquals(UUID.class, persister.getIdentifierType().getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("aggregateType").getReturnedClass());
|
||||
assertEquals(Long.class, persister.getPropertyType("aggregateId").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("type").getReturnedClass());
|
||||
assertEquals(Instant.class, persister.getPropertyType("timestamp").getReturnedClass());
|
||||
assertEquals(JsonNode.class, persister.getPropertyType("payload").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("name").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("name_upper").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("name_no_columndef").getReturnedClass());
|
||||
assertIsType(persister, String.class, "aggregateType");
|
||||
assertIsType(persister, Long.class, "aggregateId");
|
||||
assertIsType(persister, String.class, "type");
|
||||
assertIsType(persister, Instant.class, "timestamp");
|
||||
assertIsType(persister, JsonNode.class, "payload");
|
||||
assertIsType(persister, String.class, "name");
|
||||
assertIsType(persister, String.class, "name_upper");
|
||||
assertIsType(persister, String.class, "name_no_columndef");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -80,8 +81,8 @@ public void firedEventGetsPersistedInOutboxTable() {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
final Map row = (Map) sessionFactory.withSession(
|
||||
session -> session.createQuery("FROM OutboxEvent").getSingleResult())
|
||||
final Map row = sessionFactory.withSession(
|
||||
session -> session.createSelectionQuery("FROM OutboxEvent", Map.class).getSingleResult())
|
||||
.await().indefinitely();
|
||||
assertNotNull(row.get("id"));
|
||||
assertEquals(1L, row.get("aggregateId"));
|
||||
|
@ -60,8 +60,8 @@ public void firedEventGetsPersistedInOutboxTable() {
|
||||
catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
final Map row = (Map) sessionFactory.withSession(
|
||||
session -> session.createQuery("FROM OutboxEvent").getSingleResult())
|
||||
final Map row = sessionFactory.withSession(
|
||||
session -> session.createSelectionQuery("FROM OutboxEvent", Map.class).getSingleResult())
|
||||
.await().indefinitely();
|
||||
assertNotNull(row.get("id"));
|
||||
assertEquals(1L, row.get("aggregateId"));
|
||||
|
@ -5,12 +5,9 @@
|
||||
*/
|
||||
package io.debezium.outbox.reactive.quarkus.it;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
import org.hibernate.QueryException;
|
||||
import org.hibernate.metamodel.spi.MetamodelImplementor;
|
||||
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
|
||||
import org.hibernate.persister.entity.EntityPersister;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@ -31,18 +28,12 @@ public class OutboxWithoutOpenTelemetryTest extends AbstractOutboxTest {
|
||||
|
||||
@Test
|
||||
public void testOutboxEntityMetamodelDoesntHaveTracingSpanColumn() throws Exception {
|
||||
final MetamodelImplementor metadata = (MetamodelImplementor) sessionFactory.getMetamodel();
|
||||
final MappingMetamodelImplementor metadata = (MappingMetamodelImplementor) sessionFactory.getMetamodel();
|
||||
|
||||
final EntityPersister persister = metadata.entityPersister(OutboxConstants.OUTBOX_ENTITY_FULLNAME);
|
||||
final EntityPersister persister = metadata.findEntityDescriptor(OutboxConstants.OUTBOX_ENTITY_FULLNAME);
|
||||
assertNotNull(persister);
|
||||
|
||||
try {
|
||||
assertEquals(String.class, persister.getPropertyType("aggregateType").getReturnedClass());
|
||||
persister.getPropertyType("tracingspancontext");
|
||||
fail("Expected exception not thrown");
|
||||
}
|
||||
catch (QueryException e) {
|
||||
assertEquals("could not resolve property: tracingspancontext of: io.debezium.outbox.quarkus.internal.OutboxEvent", e.getMessage());
|
||||
}
|
||||
TestAsserts.assertIsType(persister, String.class, "aggregateType");
|
||||
TestAsserts.assertHasNoMapping(persister, "tracingspancontext");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* 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.reactive.quarkus.it;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import org.hibernate.persister.entity.EntityPersister;
|
||||
|
||||
/**
|
||||
* @author Chris Cranford
|
||||
*/
|
||||
public class TestAsserts {
|
||||
|
||||
private TestAsserts() {
|
||||
}
|
||||
|
||||
public static void assertIsType(EntityPersister persister, Class<?> type, String attributeName) {
|
||||
assertEquals(type.getName(), persister.findAttributeMapping(attributeName).getJavaType().getTypeName());
|
||||
}
|
||||
|
||||
public static void assertHasNoMapping(EntityPersister persister, String attributeName) {
|
||||
assertNull(persister.findAttributeMapping(attributeName));
|
||||
}
|
||||
}
|
@ -13,6 +13,7 @@
|
||||
import io.smallrye.mutiny.Uni;
|
||||
import io.vertx.core.eventbus.DeliveryOptions;
|
||||
import io.vertx.mutiny.core.eventbus.EventBus;
|
||||
import io.vertx.mutiny.core.eventbus.Message;
|
||||
|
||||
@ApplicationScoped
|
||||
public class DebeziumOutboxHandler {
|
||||
@ -24,6 +25,6 @@ public class DebeziumOutboxHandler {
|
||||
|
||||
public Uni<Object> persistToOutbox(ExportedEvent<?, ?> incomingEvent) {
|
||||
return bus.<Object> request("debezium-outbox", incomingEvent, options)
|
||||
.onItem().transform(message -> message.body());
|
||||
.onItem().transform(Message::body);
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,7 @@
|
||||
*/
|
||||
package io.debezium.outbox.quarkus.it;
|
||||
|
||||
import static io.debezium.outbox.quarkus.it.TestAsserts.assertIsType;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
@ -17,7 +18,7 @@
|
||||
import jakarta.persistence.EntityManager;
|
||||
|
||||
import org.hibernate.engine.spi.SessionImplementor;
|
||||
import org.hibernate.metamodel.spi.MetamodelImplementor;
|
||||
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
|
||||
import org.hibernate.persister.entity.EntityPersister;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@ -40,21 +41,21 @@ public abstract class AbstractOutboxTest {
|
||||
|
||||
@Test
|
||||
public void testOutboxEntityMetamodelExists() throws Exception {
|
||||
final MetamodelImplementor metadata = entityManager.unwrap(SessionImplementor.class).getFactory().getMetamodel();
|
||||
final MappingMetamodelImplementor metadata = entityManager.unwrap(SessionImplementor.class).getFactory().getMappingMetamodel();
|
||||
|
||||
final EntityPersister persister = metadata.entityPersister(OutboxConstants.OUTBOX_ENTITY_FULLNAME);
|
||||
final EntityPersister persister = metadata.findEntityDescriptor(OutboxConstants.OUTBOX_ENTITY_FULLNAME);
|
||||
assertNotNull(persister);
|
||||
|
||||
// this assumes the default mapping settings, no custom converters or column types
|
||||
assertEquals(UUID.class, persister.getIdentifierType().getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("aggregateType").getReturnedClass());
|
||||
assertEquals(Long.class, persister.getPropertyType("aggregateId").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("type").getReturnedClass());
|
||||
assertEquals(Instant.class, persister.getPropertyType("timestamp").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("payload").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("name").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("name_upper").getReturnedClass());
|
||||
assertEquals(String.class, persister.getPropertyType("name_no_columndef").getReturnedClass());
|
||||
assertIsType(persister, String.class, "aggregateType");
|
||||
assertIsType(persister, Long.class, "aggregateId");
|
||||
assertIsType(persister, String.class, "type");
|
||||
assertIsType(persister, Instant.class, "timestamp");
|
||||
assertIsType(persister, String.class, "payload");
|
||||
assertIsType(persister, String.class, "name");
|
||||
assertIsType(persister, String.class, "name_upper");
|
||||
assertIsType(persister, String.class, "name_no_columndef");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -5,9 +5,7 @@
|
||||
*/
|
||||
package io.debezium.outbox.quarkus.it;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
|
||||
import org.hibernate.engine.spi.SessionImplementor;
|
||||
import org.hibernate.metamodel.spi.MappingMetamodelImplementor;
|
||||
@ -36,7 +34,7 @@ public void testOutboxEntityMetamodelDoesntHaveTracingSpanColumn() throws Except
|
||||
final EntityPersister persister = metadata.getEntityDescriptor(OutboxConstants.OUTBOX_ENTITY_FULLNAME);
|
||||
assertNotNull(persister);
|
||||
|
||||
assertEquals(String.class.getName(), persister.findAttributeMapping("aggregateType").getJavaType().getTypeName());
|
||||
assertNull(persister.findAttributeMapping("tracingspancontext"));
|
||||
TestAsserts.assertIsType(persister, String.class, "aggregateType");
|
||||
TestAsserts.assertHasNoMapping(persister, "tracingspancontext");
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
/*
|
||||
* 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.it;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNull;
|
||||
|
||||
import org.hibernate.persister.entity.EntityPersister;
|
||||
|
||||
/**
|
||||
* @author Chris Cranford
|
||||
*/
|
||||
public class TestAsserts {
|
||||
|
||||
private TestAsserts() {
|
||||
}
|
||||
|
||||
public static void assertIsType(EntityPersister persister, Class<?> type, String attributeName) {
|
||||
assertEquals(type.getName(), persister.findAttributeMapping(attributeName).getJavaType().getTypeName());
|
||||
}
|
||||
|
||||
public static void assertHasNoMapping(EntityPersister persister, String attributeName) {
|
||||
assertNull(persister.findAttributeMapping(attributeName));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user