Skip to content

Commit 6e52fa0

Browse files
authored
made BaseDocument and BaseEdgeDocument serializable (#596)
1 parent bafed68 commit 6e52fa0

File tree

4 files changed

+54
-1
lines changed

4 files changed

+54
-1
lines changed

Diff for: core/src/main/java/com/arangodb/entity/AbstractBaseDocument.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.fasterxml.jackson.annotation.JsonIgnore;
2727
import com.fasterxml.jackson.annotation.JsonInclude;
2828

29+
import java.io.Serializable;
2930
import java.util.Collections;
3031
import java.util.HashMap;
3132
import java.util.Map;
@@ -35,7 +36,9 @@
3536
* @author Mark Vollmary
3637
* @author Michele Rastelli
3738
*/
38-
abstract class AbstractBaseDocument {
39+
abstract class AbstractBaseDocument implements Serializable {
40+
41+
private static final long serialVersionUID = 6985324876843525239L;
3942

4043
private static final String[] META_PROPS = new String[]{
4144
DocumentFields.ID,

Diff for: driver/src/main/resources/META-INF/native-image/com.arangodb/arangodb-java-driver/serialization-config.json

+12
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,17 @@
1010
},
1111
{
1212
"name": "com.arangodb.internal.net.ArangoDBRedirectException"
13+
},
14+
{
15+
"name": "com.arangodb.entity.AbstractBaseDocument"
16+
},
17+
{
18+
"name": "com.arangodb.entity.BaseDocument"
19+
},
20+
{
21+
"name": "com.arangodb.entity.BaseEdgeDocument"
22+
},
23+
{
24+
"name": "java.util.HashMap"
1325
}
1426
]

Diff for: shaded/src/main/resources/META-INF/native-image/com.arangodb/arangodb-java-driver-shaded/serialization-config.json

+12
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,17 @@
1010
},
1111
{
1212
"name": "com.arangodb.internal.net.ArangoDBRedirectException"
13+
},
14+
{
15+
"name": "com.arangodb.entity.AbstractBaseDocument"
16+
},
17+
{
18+
"name": "com.arangodb.entity.BaseDocument"
19+
},
20+
{
21+
"name": "com.arangodb.entity.BaseEdgeDocument"
22+
},
23+
{
24+
"name": "java.util.HashMap"
1325
}
1426
]

Diff for: test-functional/src/test/java/com/arangodb/SerializableTest.java

+26
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.arangodb;
22

3+
import com.arangodb.entity.BaseDocument;
4+
import com.arangodb.entity.BaseEdgeDocument;
35
import com.arangodb.entity.ErrorEntity;
46
import com.arangodb.internal.net.ArangoDBRedirectException;
57
import com.fasterxml.jackson.databind.JsonNode;
@@ -50,6 +52,30 @@ void serializeArangoDBMultipleException() throws IOException, ClassNotFoundExcep
5052
assertThat(e2.getExceptions().iterator().next().getMessage()).isEqualTo("foo");
5153
}
5254

55+
@Test
56+
void serializeBaseDocument() throws IOException, ClassNotFoundException {
57+
BaseDocument doc = new BaseDocument();
58+
doc.setKey("test");
59+
doc.setId("id");
60+
doc.setRevision("revision");
61+
doc.addAttribute("foo", "bar");
62+
BaseDocument doc2 = roundTrip(doc);
63+
assertThat(doc2).isEqualTo(doc);
64+
}
65+
66+
@Test
67+
void serializeBaseEdgeDocument() throws IOException, ClassNotFoundException {
68+
BaseEdgeDocument doc = new BaseEdgeDocument();
69+
doc.setKey("test");
70+
doc.setId("id");
71+
doc.setRevision("revision");
72+
doc.setFrom("from");
73+
doc.setTo("to");
74+
doc.addAttribute("foo", "bar");
75+
BaseDocument doc2 = roundTrip(doc);
76+
assertThat(doc2).isEqualTo(doc);
77+
}
78+
5379
private <T> T roundTrip(T input) throws IOException, ClassNotFoundException {
5480
ByteArrayOutputStream os = new ByteArrayOutputStream();
5581
ObjectOutputStream objectOutputStream = new ObjectOutputStream(os);

0 commit comments

Comments
 (0)