Skip to content

Commit

Permalink
Update to Quarkus 3.8 and resteasy-reactive
Browse files Browse the repository at this point in the history
  • Loading branch information
pe-st committed Mar 2, 2024
1 parent 7f21f62 commit dde3a5e
Show file tree
Hide file tree
Showing 23 changed files with 170 additions and 140 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
Expand Down
12 changes: 10 additions & 2 deletions code-first-openapi-quarkus/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<!-- artifact versions -->
<lombok.version>1.18.30</lombok.version>
<quarkus.version>3.7.1</quarkus.version>
<quarkus.version>3.8.1</quarkus.version>

<!-- testing artifact versions -->
<hamcrest.version>2.2</hamcrest.version>
Expand All @@ -43,9 +43,17 @@

<dependencies>
<!-- Jakarta EE and MP dependencies -->
<dependency>
<groupId>jakarta.interceptor</groupId>
<artifactId>jakarta.interceptor-api</artifactId>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jsonb</artifactId>
<artifactId>quarkus-resteasy-reactive-jsonb</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,36 @@
package ch.schlau.pesche.apidocs.openapi.codefirst.rest;

import jakarta.enterprise.context.Dependent;
import jakarta.enterprise.inject.Instance;
import jakarta.json.bind.Jsonb;
import jakarta.json.bind.JsonbBuilder;
import jakarta.json.bind.JsonbConfig;

import ch.schlau.pesche.apidocs.openapi.codefirst.txproc.model.PanJsonAdapter;
import lombok.experimental.UtilityClass;
import io.quarkus.jsonb.JsonbConfigCustomizer;

@UtilityClass
public class JsonConfiguration {

public static final JsonbConfig JSON_CONFIG = new JsonbConfig()
public static JsonbConfig createJsonbConfig() {
return new JsonbConfig()
.withAdapters(new PanJsonAdapter())
;
}

public static final Jsonb JSONB = JsonbBuilder.create(JSON_CONFIG);
public static Jsonb createJsonb() {
return JsonbBuilder.create(createJsonbConfig());
}

// Replaces the CDI producer for JsonbConfig built into Quarkus
@Dependent
JsonbConfig jsonConfig(Instance<JsonbConfigCustomizer> customizers) {
JsonbConfig config = createJsonbConfig();

// Apply all JsonbConfigCustomizer beans (incl. Quarkus)
for (JsonbConfigCustomizer customizer : customizers) {
customizer.customize(config);
}

return config;
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,35 +1,39 @@
package ch.schlau.pesche.apidocs.openapi.codefirst.txproc;

import static ch.schlau.pesche.apidocs.openapi.codefirst.rest.JsonConfiguration.JSONB;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

import java.util.UUID;

import jakarta.json.bind.Jsonb;

import org.junit.jupiter.api.Test;

import ch.schlau.pesche.apidocs.openapi.codefirst.rest.JsonConfiguration;
import ch.schlau.pesche.apidocs.openapi.codefirst.txproc.model.Pan;

class PinCheckRequestTest {

@Test
void json_roundtrip() {

Jsonb jsonb = JsonConfiguration.createJsonb();

PinCheckRequest request = new PinCheckRequest();
request.setUuid(UUID.fromString("abcdabcd-1234-5678-aaaa-cccccccccccc"));

// JSON serialization
String jsonString1 = JSONB.toJson(request);
String jsonString1 = jsonb.toJson(request);
assertThat(jsonString1, is("{\"uuid\":\"abcdabcd-1234-5678-aaaa-cccccccccccc\"}"));

// set the other properties as well
request.setPan(new Pan("111222333444"));
request.setPinBlock("-secret-");
String jsonString2 = JSONB.toJson(request);
String jsonString2 = jsonb.toJson(request);
assertThat(jsonString2, is("{\"pan\":\"111222333444\",\"pinBlock\":\"-secret-\",\"uuid\":\"abcdabcd-1234-5678-aaaa-cccccccccccc\"}"));

// JSON deserialization
PinCheckRequest roundtrip = JSONB.fromJson(jsonString2, PinCheckRequest.class);
PinCheckRequest roundtrip = jsonb.fromJson(jsonString2, PinCheckRequest.class);
assertThat(roundtrip.getUuid().toString(), is("abcdabcd-1234-5678-aaaa-cccccccccccc"));
assertThat(roundtrip.getPan().getPan(), is("111222333444"));
assertThat(roundtrip.getPinBlock(), is("-secret-"));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package ch.schlau.pesche.apidocs.openapi.codefirst.txproc;

import static ch.schlau.pesche.apidocs.openapi.codefirst.rest.JsonConfiguration.JSONB;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

import java.util.UUID;

import jakarta.json.bind.Jsonb;

import org.junit.jupiter.api.Test;

import ch.schlau.pesche.apidocs.openapi.codefirst.rest.JsonConfiguration;
import ch.schlau.pesche.apidocs.openapi.codefirst.txproc.model.EmvTags;
import ch.schlau.pesche.apidocs.openapi.codefirst.txproc.model.Pan;

Expand All @@ -16,6 +18,8 @@ class PurchaseAuthRequestTest {
@Test
void json_roundtrip() {

Jsonb jsonb = JsonConfiguration.createJsonb();

PurchaseAuthRequest request = new PurchaseAuthRequest();
request.setUuid(UUID.fromString("abcdabcd-1234-5678-aaaa-cccccccccccc"));
request.setPan(new Pan("42"));
Expand All @@ -24,11 +28,11 @@ void json_roundtrip() {
request.setEmvTags(emvTags);

// JSON serialization
String jsonString = JSONB.toJson(request);
String jsonString = jsonb.toJson(request);
assertThat(jsonString, is("{\"emvTags\":{\"84\":\"A0000000041010\"},\"pan\":\"42\",\"uuid\":\"abcdabcd-1234-5678-aaaa-cccccccccccc\"}"));

// JSON deserialization
PurchaseAuthRequest roundtrip = JSONB.fromJson(jsonString, PurchaseAuthRequest.class);
PurchaseAuthRequest roundtrip = jsonb.fromJson(jsonString, PurchaseAuthRequest.class);
assertThat(roundtrip.getUuid().toString(), is("abcdabcd-1234-5678-aaaa-cccccccccccc"));
}
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
package ch.schlau.pesche.apidocs.openapi.codefirst.txproc.model;

import static ch.schlau.pesche.apidocs.openapi.codefirst.rest.JsonConfiguration.JSONB;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

import jakarta.json.bind.Jsonb;

import org.junit.jupiter.api.Test;

import ch.schlau.pesche.apidocs.openapi.codefirst.rest.JsonConfiguration;

class EmvTagsTest {

@Test
void json_roundtrip() {

Jsonb jsonb = JSONB;
Jsonb jsonb = JsonConfiguration.createJsonb();

EmvTags emv = new EmvTags();
emv.setX84("A0000000043060");
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package ch.schlau.pesche.apidocs.openapi.codefirst.txproc.model;

import static ch.schlau.pesche.apidocs.openapi.codefirst.rest.JsonConfiguration.JSONB;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.hamcrest.MatcherAssert.assertThat;
Expand All @@ -9,6 +8,8 @@

import org.junit.jupiter.api.Test;

import ch.schlau.pesche.apidocs.openapi.codefirst.rest.JsonConfiguration;

class PanTest {

@Test
Expand All @@ -29,7 +30,7 @@ void asMaskedPan_invalid() {
@Test
void json_roundtrip() {

Jsonb jsonb = JSONB;
Jsonb jsonb = JsonConfiguration.createJsonb();

Pan pan = new Pan("4444333322221111");

Expand Down
12 changes: 10 additions & 2 deletions code-first-swagger/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

<!-- artifact versions -->
<lombok.version>1.18.30</lombok.version>
<quarkus.version>3.7.1</quarkus.version>
<quarkus.version>3.8.1</quarkus.version>
<swagger.version>2.2.20</swagger.version>

<!-- testing artifact versions -->
Expand All @@ -44,9 +44,17 @@

<dependencies>
<!-- Jakarta EE and MP dependencies -->
<dependency>
<groupId>jakarta.interceptor</groupId>
<artifactId>jakarta.interceptor-api</artifactId>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jsonb</artifactId>
<artifactId>quarkus-resteasy-reactive-jsonb</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,36 @@
package ch.schlau.pesche.apidocs.swagger.codefirst.rest;

import jakarta.enterprise.context.Dependent;
import jakarta.enterprise.inject.Instance;
import jakarta.json.bind.Jsonb;
import jakarta.json.bind.JsonbBuilder;
import jakarta.json.bind.JsonbConfig;

import ch.schlau.pesche.apidocs.swagger.codefirst.txproc.model.PanJsonAdapter;
import lombok.experimental.UtilityClass;
import io.quarkus.jsonb.JsonbConfigCustomizer;

@UtilityClass
public class JsonConfiguration {

public static final JsonbConfig JSON_CONFIG = new JsonbConfig()
public static JsonbConfig createJsonbConfig() {
return new JsonbConfig()
.withAdapters(new PanJsonAdapter())
;
}

public static final Jsonb JSONB = JsonbBuilder.create(JSON_CONFIG);
public static Jsonb createJsonb() {
return JsonbBuilder.create(createJsonbConfig());
}

// Replaces the CDI producer for JsonbConfig built into Quarkus
@Dependent
JsonbConfig jsonConfig(Instance<JsonbConfigCustomizer> customizers) {
JsonbConfig config = createJsonbConfig();

// Apply all JsonbConfigCustomizer beans (incl. Quarkus)
for (JsonbConfigCustomizer customizer : customizers) {
customizer.customize(config);
}

return config;
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,37 +1,41 @@
package ch.schlau.pesche.apidocs.swagger.codefirst.txproc;

import static ch.schlau.pesche.apidocs.swagger.codefirst.rest.JsonConfiguration.JSONB;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

import java.util.UUID;

import jakarta.json.bind.Jsonb;

import org.junit.jupiter.api.Test;

import ch.schlau.pesche.apidocs.swagger.codefirst.rest.JsonConfiguration;
import ch.schlau.pesche.apidocs.swagger.codefirst.txproc.model.Pan;

class PinCheckRequestTest {

@Test
void json_roundtrip() {

Jsonb jsonb = JsonConfiguration.createJsonb();

PinCheckRequest request = new PinCheckRequest();
request.setUuid(UUID.fromString("abcdabcd-1234-5678-aaaa-cccccccccccc"));

// JSON serialization
String jsonString1 = JSONB.toJson(request);
String jsonString1 = jsonb.toJson(request);
assertThat(jsonString1, is("{\"uuid\":\"abcdabcd-1234-5678-aaaa-cccccccccccc\"}"));

// set the other properties as well
request.setPan(new Pan("111222333444"));
request.setPinBlock("-secret-");
String jsonString2 = JSONB.toJson(request);
String jsonString2 = jsonb.toJson(request);
assertThat(jsonString2, is("{\"pan\":\"111222333444\",\"pinBlock\":\"-secret-\",\"uuid\":\"abcdabcd-1234-5678-aaaa-cccccccccccc\"}"));

// JSON deserialization
PinCheckRequest roundtrip = JSONB.fromJson(jsonString2, PinCheckRequest.class);
PinCheckRequest roundtrip = jsonb.fromJson(jsonString2, PinCheckRequest.class);
assertThat(roundtrip.getUuid().toString(), is("abcdabcd-1234-5678-aaaa-cccccccccccc"));
assertThat(roundtrip.getPan().getPan(), is("111222333444"));
assertThat(roundtrip.getPinBlock(), is("-secret-"));
}
}
}
Loading

0 comments on commit dde3a5e

Please sign in to comment.