Skip to content

Commit 1fdfa59

Browse files
authored
Fix Jackson SPI (#443)
* fix jackson SPI * test * move test
1 parent ad0c2a4 commit 1fdfa59

File tree

6 files changed

+35
-15
lines changed

6 files changed

+35
-15
lines changed

jsonb-jackson/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@
3232
<version>${project.version}</version>
3333
</dependency>
3434

35+
<dependency>
36+
<groupId>io.avaje</groupId>
37+
<artifactId>avaje-spi-service</artifactId>
38+
<version>${spi.version}</version>
39+
<optional>true</optional>
40+
</dependency>
41+
3542
<dependency>
3643
<groupId>io.avaje</groupId>
3744
<artifactId>junit</artifactId>

jsonb-jackson/src/main/java/io/avaje/jsonb/jackson/JacksonAdapterFactory.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
import io.avaje.json.stream.JsonStream;
44
import io.avaje.jsonb.spi.JsonStreamFactory;
5+
import io.avaje.spi.ServiceProvider;
56

67
/**
78
* Jackson Core based adapter.
89
* <p>
910
* Uses jackson code to do the underlying json parsing and generation.
1011
*/
12+
@ServiceProvider
1113
public class JacksonAdapterFactory implements JsonStreamFactory {
1214

1315
@Override

jsonb-jackson/src/main/java/module-info.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
requires transitive io.avaje.jsonb;
44
requires transitive com.fasterxml.jackson.core;
5+
requires static io.avaje.spi;
56

67
exports io.avaje.jsonb.jackson;
7-
8-
provides io.avaje.jsonb.spi.JsonStreamFactory with io.avaje.jsonb.jackson.JacksonAdapterFactory;
8+
provides io.avaje.jsonb.spi.JsonbExtension with io.avaje.jsonb.jackson.JacksonAdapterFactory;
99
}

jsonb-jackson/src/main/resources/META-INF/services/io.avaje.jsonb.spi.JsonStreamFactory

Lines changed: 0 additions & 1 deletion
This file was deleted.

jsonb-jackson/src/test/java/io/avaje/jsonb/jackson/JacksonAdapterTest.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package io.avaje.jsonb.jackson;
22

3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import java.io.OutputStream;
6+
7+
import org.example.Address;
8+
import org.example.MyComponent;
9+
import org.junit.jupiter.api.Test;
10+
311
import com.fasterxml.jackson.core.JsonFactory;
412
import com.fasterxml.jackson.core.JsonParser;
513
import com.fasterxml.jackson.core.SerializableString;
614
import com.fasterxml.jackson.core.io.CharacterEscapes;
7-
import io.avaje.jsonb.Jsonb;
8-
import org.example.Address;
9-
import org.example.MyComponent;
10-
import org.junit.jupiter.api.Test;
1115

12-
import static org.assertj.core.api.Assertions.assertThat;
16+
import io.avaje.jsonb.Jsonb;
1317

1418
class JacksonAdapterTest {
1519

@@ -22,6 +26,13 @@ class JacksonAdapterTest {
2226
public static final JsonFactory HUMAN_READABLE_JSON_FACTORY = JSON_FACTORY.copy()
2327
.setCharacterEscapes(new HumanReadableCharacterEscapes());
2428

29+
@Test
30+
void isJackson() {
31+
var jsonb = Jsonb.instance();
32+
assertThat(jsonb.reader("")).isInstanceOf(JacksonReader.class);
33+
assertThat(jsonb.writer(OutputStream.nullOutputStream())).isInstanceOf(JacksonWriter.class);
34+
}
35+
2536
@Test
2637
void custom_JsonFactory() {
2738

jsonb-jackson/src/test/java/io/avaje/jsonb/jackson/ObjectAdapterTest.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
package io.avaje.jsonb.jackson;
22

3-
import io.avaje.json.JsonAdapter;
4-
import io.avaje.json.JsonWriter;
5-
import io.avaje.jsonb.JsonType;
6-
import io.avaje.jsonb.Jsonb;
7-
import org.junit.jupiter.api.Test;
3+
import static org.assertj.core.api.Assertions.assertThat;
84

95
import java.io.IOException;
106
import java.io.StringWriter;
117
import java.util.List;
128
import java.util.Map;
139

14-
import static org.assertj.core.api.Assertions.assertThat;
10+
import org.junit.jupiter.api.Test;
11+
12+
import io.avaje.json.JsonAdapter;
13+
import io.avaje.json.JsonWriter;
14+
import io.avaje.jsonb.JsonType;
15+
import io.avaje.jsonb.Jsonb;
1516

1617
class ObjectAdapterTest {
1718

18-
Jsonb jsonb = Jsonb.builder().adapter(new JacksonAdapter()).build();
19+
Jsonb jsonb = Jsonb.instance();
1920

2021
JsonAdapter<Object> objectAdapter = jsonb.adapter(Object.class);
2122

0 commit comments

Comments
 (0)