Skip to content

Commit dc4bcec

Browse files
committed
reverted automatic Jackson modules discovery
1 parent 09a194a commit dc4bcec

File tree

2 files changed

+23
-22
lines changed

2 files changed

+23
-22
lines changed

docs/v7_java-reference-serialization.md

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -147,32 +147,36 @@ ArangoDB adb = new ArangoDB.Builder()
147147

148148
### Jackson datatype and language modules
149149

150-
By default, Jackson modules in the classpath are discovered via SPI and registered to the `JacksonSerde`.
151-
For example, this will automatically
152-
register [Jackson datatype modules](https://github.com/FasterXML/jackson#third-party-datatype-modules)
153-
as well as [Jackson JVM Language modules](https://github.com/FasterXML/jackson#jvm-language-modules)
154-
like Kotlin or Scala module (see sections below).
155-
156-
To avoid automatic Jackson modules discovery and registration, an instance of `JacksonSerde` can be manually created
157-
using `JacksonSerde.create(ObjectMapper)` and registered using `ArangoDBBuilder.serde(ArangoSerde)`, e.g.:
158-
159-
```java
160-
ArangoDB adb = new ArangoDB.Builder()
161-
.serde(JacksonSerde.create(new ObjectMapper()))
162-
.build();
163-
```
150+
The `JacksonSerde` can be configured
151+
with [Jackson datatype modules](https://github.com/FasterXML/jackson#third-party-datatype-modules)
152+
as well as [Jackson JVM Language modules](https://github.com/FasterXML/jackson#jvm-language-modules).
164153

165154
### Kotlin
166155

167156
[Kotlin language module](https://github.com/FasterXML/jackson-module-kotlin)
168-
enables support for Kotlin classes and types.
169-
It can be used including `com.fasterxml.jackson.module:jackson-module-kotlin`.
157+
enables support for Kotlin classes and types and can be registered in the following way:
158+
159+
```kotlin
160+
val arangoDB = ArangoDB.Builder()
161+
.serde(JacksonSerdeProvider().of(ContentType.JSON).apply {
162+
configure { it.registerModule(KotlinModule()) }
163+
})
164+
.build()
165+
```
170166

171167
### Scala
172168

173169
[Scala language module](https://github.com/FasterXML/jackson-module-scala)
174-
enables support for Scala classes and types.
175-
It can be used including `com.fasterxml.jackson.module:jackson-module-scala_<scala-version>`.
170+
enables support for Scala classes and types and can be registered in the following way:
171+
172+
```scala
173+
val serde = JacksonSerdeProvider().of(ContentType.JSON)
174+
serde.configure(mapper => mapper.registerModule(DefaultScalaModule))
175+
176+
val arangoDB = new ArangoDB.Builder()
177+
.serde(arangoJack)
178+
.build()
179+
```
176180

177181
### Java 8 types
178182

jackson-serde-json/src/main/java/com/arangodb/serde/jackson/JacksonSerde.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,12 @@ public interface JacksonSerde extends ArangoSerde {
1515

1616
/**
1717
* Creates a new JacksonSerde with default settings for the specified data type.
18-
* Registers all the Jackson modules ({@link com.fasterxml.jackson.databind.Module}) discovered via SPI.
1918
*
2019
* @param contentType serialization target data type
2120
* @return the created JacksonSerde
2221
*/
2322
static JacksonSerde of(final ContentType contentType) {
24-
JacksonSerde serde = create(JacksonMapperProvider.of(contentType));
25-
serde.configure(mapper -> mapper.registerModules(ObjectMapper.findModules()));
26-
return serde;
23+
return create(JacksonMapperProvider.of(contentType));
2724
}
2825

2926
/**

0 commit comments

Comments
 (0)