From 5733a27ff4c7e465545e73b4636a23bb377cbe32 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Fri, 11 Oct 2024 11:10:32 +0200 Subject: [PATCH] GH-866 - Polishing. Switch Oracle schema definition to make the serialized event column non null. Adapt test cases to always contain some content for the serialized event. Original pull request: GH-868. --- .../events/jdbc/JdbcEventPublicationRepository.java | 2 +- .../src/main/resources/schema-oracle.sql | 2 +- .../JdbcEventPublicationRepositoryIntegrationTests.java | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepository.java b/spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepository.java index 7c71ee60..25cfa455 100644 --- a/spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepository.java +++ b/spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepository.java @@ -400,7 +400,7 @@ class JdbcEventPublicationRepository implements EventPublicationRepository, Bean var completionDate = rs.getTimestamp("COMPLETION_DATE"); var publicationDate = rs.getTimestamp("PUBLICATION_DATE").toInstant(); var listenerId = rs.getString("LISTENER_ID"); - var serializedEvent = Optional.ofNullable(rs.getString("SERIALIZED_EVENT")).orElse(""); + var serializedEvent = rs.getString("SERIALIZED_EVENT"); return new JdbcEventPublication(id, publicationDate, listenerId, () -> serializer.deserialize(serializedEvent, eventClass), diff --git a/spring-modulith-events/spring-modulith-events-jdbc/src/main/resources/schema-oracle.sql b/spring-modulith-events/spring-modulith-events-jdbc/src/main/resources/schema-oracle.sql index 9f25536c..d203fb71 100644 --- a/spring-modulith-events/spring-modulith-events-jdbc/src/main/resources/schema-oracle.sql +++ b/spring-modulith-events/spring-modulith-events-jdbc/src/main/resources/schema-oracle.sql @@ -3,7 +3,7 @@ CREATE TABLE IF NOT EXISTS EVENT_PUBLICATION ( ID VARCHAR2(36) NOT NULL, LISTENER_ID VARCHAR2(512) NOT NULL, EVENT_TYPE VARCHAR2(512) NOT NULL, - SERIALIZED_EVENT VARCHAR2(4000), + SERIALIZED_EVENT VARCHAR2(4000) NOT NULL, PUBLICATION_DATE TIMESTAMP(6) NOT NULL, COMPLETION_DATE TIMESTAMP(6), CONSTRAINT EVENT_PUBLICATION_PK PRIMARY KEY(ID) diff --git a/spring-modulith-events/spring-modulith-events-jdbc/src/test/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepositoryIntegrationTests.java b/spring-modulith-events/spring-modulith-events-jdbc/src/test/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepositoryIntegrationTests.java index bbe15631..ea8083e8 100644 --- a/spring-modulith-events/spring-modulith-events-jdbc/src/test/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepositoryIntegrationTests.java +++ b/spring-modulith-events/spring-modulith-events-jdbc/src/test/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationRepositoryIntegrationTests.java @@ -353,10 +353,10 @@ class JdbcEventPublicationRepositoryIntegrationTests { var event = new Sample(); // Serialize to whatever - doReturn("").when(serializer).serialize(event); + doReturn("sample").when(serializer).serialize(event); // Return fresh instances for every deserialization attempt - doAnswer(__ -> new Sample()).when(serializer).deserialize("", Sample.class); + doAnswer(__ -> new Sample()).when(serializer).deserialize("sample", Sample.class); repository.create(TargetEventPublication.of(event, TARGET_IDENTIFIER)); @@ -476,7 +476,7 @@ class JdbcEventPublicationRepositoryIntegrationTests { @WithMariaDB class MariaDBWithDeleteCompletion extends WithDeleteCompletion {} - + // Oracle @WithOracle @@ -523,7 +523,7 @@ class JdbcEventPublicationRepositoryIntegrationTests { @ActiveProfiles("mssql") @Retention(RetentionPolicy.RUNTIME) @interface WithMssql {} - + @Nested @ActiveProfiles("oracle") @Retention(RetentionPolicy.RUNTIME)