Skip to content

Commit 72095da

Browse files
committed
default internal serde
1 parent da6c955 commit 72095da

File tree

6 files changed

+46
-19
lines changed

6 files changed

+46
-19
lines changed

driver/src/main/java/com/arangodb/ArangoDB.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.arangodb.internal.net.HostResolver;
3535
import com.arangodb.internal.serde.ContentTypeFactory;
3636
import com.arangodb.internal.serde.InternalSerde;
37+
import com.arangodb.internal.serde.InternalSerdeProvider;
3738
import com.arangodb.internal.velocystream.VstCommunicationSync;
3839
import com.arangodb.internal.velocystream.VstConnectionFactorySync;
3940
import com.arangodb.model.DBCreateOptions;
@@ -587,7 +588,7 @@ public ArangoDB build() {
587588

588589
final ArangoSerde userSerde = this.userDataSerde != null ? this.userDataSerde :
589590
serdeProvider().of(ContentTypeFactory.of(protocol));
590-
final InternalSerde serde = InternalSerde.of(ContentTypeFactory.of(protocol), userSerde);
591+
final InternalSerde serde = InternalSerdeProvider.create(ContentTypeFactory.of(protocol), userSerde);
591592

592593
int protocolMaxConnections;
593594
switch (protocol) {

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.arangodb.internal.net.HostHandler;
3333
import com.arangodb.internal.net.HostResolver;
3434
import com.arangodb.internal.serde.InternalSerde;
35+
import com.arangodb.internal.serde.InternalSerdeProvider;
3536
import com.arangodb.internal.velocystream.VstCommunicationSync;
3637
import com.arangodb.internal.velocystream.VstConnectionFactorySync;
3738
import com.arangodb.model.DBCreateOptions;
@@ -516,7 +517,7 @@ public ArangoDBAsync build() {
516517
}
517518

518519
final ArangoSerde userSerde = this.userDataSerde != null ? this.userDataSerde : serdeProvider().of(ContentType.VPACK);
519-
final InternalSerde serde = InternalSerde.of(ContentType.VPACK, userSerde);
520+
final InternalSerde serde = InternalSerdeProvider.create(ContentType.VPACK, userSerde);
520521

521522
final int max = maxConnections != null ? Math.max(1, maxConnections)
522523
: ArangoDefaults.MAX_CONNECTIONS_VST_DEFAULT;

driver/src/main/java/com/arangodb/internal/InternalArangoDBBuilder.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.arangodb.config.ConfigPropertyKey;
2626
import com.arangodb.entity.LoadBalancingStrategy;
2727
import com.arangodb.internal.net.*;
28+
import com.arangodb.internal.serde.InternalSerdeProvider;
2829
import com.arangodb.internal.util.HostUtils;
2930
import com.arangodb.serde.ArangoSerde;
3031
import com.arangodb.serde.ArangoSerdeProvider;
@@ -147,12 +148,15 @@ protected static String getProperty(ConfigPropertiesProvider props, ConfigProper
147148
protected static ArangoSerdeProvider serdeProvider() {
148149
ServiceLoader<ArangoSerdeProvider> loader = ServiceLoader.load(ArangoSerdeProvider.class);
149150
Iterator<ArangoSerdeProvider> it = loader.iterator();
151+
ArangoSerdeProvider serdeProvider;
150152
if (!it.hasNext()) {
151-
throw new ArangoDBException("No ArangoSerdeProvider found!");
152-
}
153-
ArangoSerdeProvider serdeProvider = it.next();
154-
if (it.hasNext()) {
155-
throw new ArangoDBException("Found multiple serde providers! Please set explicitly the one to use.");
153+
LOG.info("No ArangoSerdeProvider found, using InternalSerdeProvider.");
154+
serdeProvider = new InternalSerdeProvider();
155+
} else {
156+
serdeProvider = it.next();
157+
if (it.hasNext()) {
158+
throw new ArangoDBException("Found multiple serde providers! Please set explicitly the one to use.");
159+
}
156160
}
157161
return serdeProvider;
158162
}

driver/src/main/java/com/arangodb/internal/serde/InternalSerde.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,6 @@
99

1010
public interface InternalSerde extends ArangoSerde {
1111

12-
/**
13-
* Creates a new InternalSerde with default settings for the specified data type.
14-
*
15-
* @param contentType serialization target data type
16-
* @return the created InternalSerde
17-
*/
18-
static InternalSerde of(final ContentType contentType, ArangoSerde userSerde) {
19-
return new InternalSerdeImpl(InternalMapperProvider.of(contentType), userSerde);
20-
}
21-
2212
/**
2313
* Used for logging and debugging.
2414
*
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.arangodb.internal.serde;
2+
3+
import com.arangodb.ContentType;
4+
import com.arangodb.serde.ArangoSerde;
5+
import com.arangodb.serde.ArangoSerdeProvider;
6+
7+
public class InternalSerdeProvider implements ArangoSerdeProvider {
8+
9+
/**
10+
* Creates a new InternalSerde with default settings for the specified data type.
11+
*
12+
* @param contentType serialization target data type
13+
* @return the created InternalSerde
14+
*/
15+
@Override
16+
public InternalSerde of(final ContentType contentType) {
17+
return create(contentType, null);
18+
}
19+
20+
/**
21+
* Creates a new InternalSerde with default settings for the specified data type.
22+
*
23+
* @param contentType serialization target data type
24+
* @return the created InternalSerde
25+
*/
26+
public static InternalSerde create(final ContentType contentType, ArangoSerde userSerde) {
27+
return new InternalSerdeImpl(InternalMapperProvider.of(contentType), userSerde);
28+
}
29+
30+
}

driver/src/test/java/com/arangodb/serde/SerdeTest.java

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

33
import com.arangodb.ContentType;
44
import com.arangodb.internal.serde.InternalSerde;
5+
import com.arangodb.internal.serde.InternalSerdeProvider;
56
import com.arangodb.internal.serde.SerdeUtils;
67
import com.arangodb.util.RawBytes;
78
import com.arangodb.util.RawJson;
@@ -18,7 +19,7 @@ class SerdeTest {
1819
@ParameterizedTest
1920
@EnumSource(ContentType.class)
2021
void rawJsonSerde(ContentType type) {
21-
InternalSerde s = InternalSerde.of(type, null);
22+
InternalSerde s = new InternalSerdeProvider().of(type);
2223
ObjectNode node = JsonNodeFactory.instance.objectNode().put("foo", "bar");
2324
RawJson raw = RawJson.of(SerdeUtils.INSTANCE.writeJson(node));
2425
byte[] serialized = s.serialize(raw);
@@ -29,7 +30,7 @@ void rawJsonSerde(ContentType type) {
2930
@ParameterizedTest
3031
@EnumSource(ContentType.class)
3132
void rawBytesSerde(ContentType type) {
32-
InternalSerde s = InternalSerde.of(type, null);
33+
InternalSerde s = new InternalSerdeProvider().of(type);
3334
ObjectNode node = JsonNodeFactory.instance.objectNode().put("foo", "bar");
3435
RawBytes raw = RawBytes.of(s.serialize(node));
3536
byte[] serialized = s.serialize(raw);

0 commit comments

Comments
 (0)