Skip to content

Commit 9a1e69e

Browse files
author
mpv1989
committed
added extension point for VelocyPack serialization
1 parent f8767dd commit 9a1e69e

File tree

4 files changed

+59
-1
lines changed

4 files changed

+59
-1
lines changed

ChangeLog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ v4.1.11 (2017-03-xx)
55
* fixed exception handling in Connection (issue #110)
66
* added connection pooling (issue #103)
77
* extracted VelocyPack implementation to https://github.com/arangodb/java-velocypack
8+
* added extension point for VelocyPack serialization (ArangoDBAsync.registerModule())
89
* added dependency java-velocypack-module-jdk8
910
* added support for replacing build-in VelocyPack serializer/deserializer
1011
* added ArangoDatabaseAsync.getVersion(), ArangoDatabaseAsync.getAccessibleDatabases()

README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,32 @@ If you want to test with a snapshot version (e.g. 4.0.0-SNAPSHOT), add the stagi
4848
mvn clean install -DskipTests=true -Dgpg.skip=true -Dmaven.javadoc.skip=true -B
4949
```
5050

51+
## configure VelocyPack serialization
52+
53+
Since version `4.1.11` you can extend the VelocyPack serialization by registering additional `VPackModule`s on `ArangoDB.Builder`.
54+
55+
### Joda-Time
56+
57+
Added support for:
58+
* org.joda.time.DateTime;
59+
* org.joda.time.Instant;
60+
* org.joda.time.LocalDate;
61+
* org.joda.time.LocalDateTime;
62+
63+
```XML
64+
<dependencies>
65+
<dependency>
66+
<groupId>com.arangodb</groupId>
67+
<artifactId>velocypack-module-joda</artifactId>
68+
<version>1.0.0</version>
69+
</dependency>
70+
</dependencies>
71+
```
72+
73+
``` Java
74+
ArangoDBAsync arangoDB = new ArangoDBAsync.Builder().registerModule(new VPackJodaModule()).build();
75+
```
76+
5177
# Learn more
5278
* [ArangoDB](https://www.arangodb.com/)
5379
* [Documentation](docs/documentation.md)

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<hamcrest-all.version>1.3</hamcrest-all.version>
2727
<junit.version>4.12</junit.version>
2828
<arangodb-java-driver.version>${project.version}</arangodb-java-driver.version>
29-
<arangodb.velocypack.module.jdk8.version>1.0.0</arangodb.velocypack.module.jdk8.version>
29+
<arangodb.velocypack.module.jdk8.version>1.0.1</arangodb.velocypack.module.jdk8.version>
3030
</properties>
3131

3232
<developers>

src/main/java/com/arangodb/ArangoDBAsync.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
import com.arangodb.velocypack.VPackJsonSerializer;
6969
import com.arangodb.velocypack.VPackModule;
7070
import com.arangodb.velocypack.VPackParser;
71+
import com.arangodb.velocypack.VPackParserModule;
7172
import com.arangodb.velocypack.VPackSerializer;
7273
import com.arangodb.velocypack.ValueType;
7374
import com.arangodb.velocypack.module.jdk8.VPackJdk8Module;
@@ -284,11 +285,41 @@ public Builder registerModules(final VPackModule... modules) {
284285
return this;
285286
}
286287

288+
public Builder registerJsonModule(final VPackParserModule module) {
289+
vpackParserBuilder.registerModule(module);
290+
return this;
291+
}
292+
293+
public Builder registerJsonModules(final VPackParserModule... module) {
294+
vpackParserBuilder.registerModules(module);
295+
return this;
296+
}
297+
298+
/**
299+
* Replace the built-in serializer with the given serializer.
300+
*
301+
* <br />
302+
* <b>ATTENTION!:</b> Use at your own risk
303+
*
304+
* @param serializer
305+
* custom serializer
306+
* @return builder
307+
*/
287308
public Builder setSerializer(final ArangoSerializer serializer) {
288309
this.serializer = serializer;
289310
return this;
290311
}
291312

313+
/**
314+
* Replace the built-in deserializer with the given deserializer.
315+
*
316+
* <br />
317+
* <b>ATTENTION!:</b> Use at your own risk
318+
*
319+
* @param deserializer
320+
* custom deserializer
321+
* @return builder
322+
*/
292323
public Builder setDeserializer(final ArangoDeserializer deserializer) {
293324
this.deserializer = deserializer;
294325
return this;

0 commit comments

Comments
 (0)