From bb8ecf25db1c4c89c7d406103f89502bfdd36db3 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 00:38:24 +0000 Subject: [PATCH 1/2] Initial plan From 5618f3439ffae00bd9f2233c66ceabb260cef94e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 00:44:32 +0000 Subject: [PATCH 2/2] fix: update Jackson imports for Spring Boot 4.0 / Jackson 3.0 compatibility Co-authored-by: JP-Ellis <3196162+JP-Ellis@users.noreply.github.com> --- .../io/pactflow/example/kafka/ProductMessageBuilder.java | 6 +++--- .../java/io/pactflow/example/kafka/ProductRepository.java | 4 ++-- .../pactflow/example/kafka/ProductsKafkaProducerTest.java | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/pactflow/example/kafka/ProductMessageBuilder.java b/src/main/java/io/pactflow/example/kafka/ProductMessageBuilder.java index b5eb050..2dba71c 100644 --- a/src/main/java/io/pactflow/example/kafka/ProductMessageBuilder.java +++ b/src/main/java/io/pactflow/example/kafka/ProductMessageBuilder.java @@ -1,8 +1,8 @@ package io.pactflow.example.kafka; import org.springframework.messaging.Message; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; +import tools.jackson.core.JacksonException; +import tools.jackson.databind.ObjectMapper; import org.springframework.kafka.support.KafkaHeaders; import org.springframework.messaging.support.MessageBuilder; @@ -15,7 +15,7 @@ public ProductMessageBuilder withProduct(ProductEvent product) { return this; } - public Message build() throws JsonProcessingException { + public Message build() throws JacksonException { return MessageBuilder.withPayload(this.mapper.writeValueAsString(this.product)) .setHeader(KafkaHeaders.TOPIC, "products").setHeader("Content-Type", "application/json; charset=utf-8") .build(); diff --git a/src/main/java/io/pactflow/example/kafka/ProductRepository.java b/src/main/java/io/pactflow/example/kafka/ProductRepository.java index de977f2..4d582f3 100644 --- a/src/main/java/io/pactflow/example/kafka/ProductRepository.java +++ b/src/main/java/io/pactflow/example/kafka/ProductRepository.java @@ -1,6 +1,6 @@ package io.pactflow.example.kafka; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,7 +22,7 @@ public void save(final ProductEvent product) { Message message = new ProductMessageBuilder().withProduct(product).build(); this.template.send(message); - } catch (final JsonProcessingException e) { + } catch (final JacksonException e) { logger.error("unable to serialise product to JSON", e); } } diff --git a/src/test/java/io/pactflow/example/kafka/ProductsKafkaProducerTest.java b/src/test/java/io/pactflow/example/kafka/ProductsKafkaProducerTest.java index 2dfd9d2..3331caf 100644 --- a/src/test/java/io/pactflow/example/kafka/ProductsKafkaProducerTest.java +++ b/src/test/java/io/pactflow/example/kafka/ProductsKafkaProducerTest.java @@ -15,7 +15,7 @@ import java.util.HashMap; -import com.fasterxml.jackson.core.JsonProcessingException; +import tools.jackson.core.JacksonException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.TestTemplate; @@ -42,7 +42,7 @@ void before(PactVerificationContext context) { } @PactVerifyProvider("a product event update") - public MessageAndMetadata productUpdateEvent() throws JsonProcessingException { + public MessageAndMetadata productUpdateEvent() throws JacksonException { ProductEvent product = new ProductEvent("id1", "product name", "product type", "v1", EventType.UPDATED, 15.00); Message message = new ProductMessageBuilder().withProduct(product).build(); @@ -50,7 +50,7 @@ public MessageAndMetadata productUpdateEvent() throws JsonProcessingException { } @PactVerifyProvider("a product created event") - public MessageAndMetadata productCreatedEvent() throws JsonProcessingException { + public MessageAndMetadata productCreatedEvent() throws JacksonException { ProductEvent product = new ProductEvent("id1", "product name", "product type", "v1", EventType.CREATED, 27.00); Message message = new ProductMessageBuilder().withProduct(product).build();