Skip to content

Commit

Permalink
Reproduce quarkusio#37934 Failed to find class com.fasterxml.jackson.…
Browse files Browse the repository at this point in the history
…databind.ext.CoreXMLSerializers when a POJO has field of type javax.xml.datatype.XMLGregorianCalendar
  • Loading branch information
ppalaga committed Dec 25, 2023
1 parent 4904645 commit 691213b
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,20 @@
import java.sql.Date;
import java.time.LocalDate;

import javax.xml.datatype.XMLGregorianCalendar;

public class Greeting {

private final String message;
private final LocalDate date;
private final Date sqlDate;
private final XMLGregorianCalendar xmlGregorianCalendar;

public Greeting(String message, LocalDate date, Date sqlDate) {
public Greeting(String message, LocalDate date, Date sqlDate, XMLGregorianCalendar xmlGregorianCalendar) {
this.message = message;
this.date = date;
this.sqlDate = sqlDate;
this.xmlGregorianCalendar = xmlGregorianCalendar;
}

public String getMessage() {
Expand All @@ -26,4 +30,8 @@ public LocalDate getDate() {
public Date getSqlDate() {
return sqlDate;
}

public XMLGregorianCalendar getXmlGregorianCalendar() {
return xmlGregorianCalendar;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

import java.sql.Date;
import java.time.LocalDate;
import java.time.ZoneOffset;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
Expand All @@ -14,9 +19,12 @@
public class GreetingResource {

@GET
public Greeting hello() {
public Greeting hello() throws DatatypeConfigurationException {
LocalDate localDate = LocalDate.of(2019, 01, 01);
return new Greeting("hello", localDate, new Date(localDate.toEpochDay()));
final Date sqlDate = new Date(localDate.atStartOfDay(ZoneOffset.UTC).toInstant().toEpochMilli());
final XMLGregorianCalendar xmlGregorianCalendar = DatatypeFactory.newInstance()
.newXMLGregorianCalendar("2019-01-01T00:00:00.000+00:00");
return new Greeting("hello", localDate, sqlDate, xmlGregorianCalendar);
}

@Path("config")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.equalTo;

import org.junit.jupiter.api.Test;

Expand All @@ -16,8 +17,11 @@ void testEndpoint() {
.when().get("/greeting")
.then()
.statusCode(200)
.body(containsString("hello"))
.body(containsString("2019-01-01"));
.body("message", equalTo("hello"),
"date", equalTo("2019-01-01"),
"sqlDate", equalTo("2019-01-01"),
"xmlGregorianCalendar", equalTo("2019-01-01T00:00:00.000+00:00"))
.extract().body().asString();
}

@Test
Expand Down

0 comments on commit 691213b

Please sign in to comment.