Skip to content

Commit d9ec6d4

Browse files
committed
[DE-481] x-arango-driver header
1 parent 2e8e0f6 commit d9ec6d4

File tree

4 files changed

+42
-4
lines changed

4 files changed

+42
-4
lines changed

core/src/main/java/com/arangodb/internal/serde/InternalSerializers.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.arangodb.internal.serde;
22

3+
import com.arangodb.DbName;
34
import com.arangodb.entity.CollectionType;
45
import com.arangodb.entity.arangosearch.CollectionLink;
56
import com.arangodb.entity.arangosearch.FieldLink;
@@ -15,6 +16,7 @@
1516
import java.util.Collection;
1617
import java.util.HashMap;
1718
import java.util.Map;
19+
import java.util.Optional;
1820

1921
public final class InternalSerializers {
2022

@@ -40,7 +42,7 @@ public void serialize(InternalRequest value, JsonGenerator gen, SerializerProvid
4042
gen.writeStartArray();
4143
gen.writeNumber(value.getVersion());
4244
gen.writeNumber(value.getType());
43-
gen.writeString(value.getDbName().get());
45+
gen.writeString(Optional.ofNullable(value.getDbName()).orElse(DbName.SYSTEM).get());
4446
gen.writeNumber(value.getRequestType().getType());
4547
gen.writeString(value.getPath());
4648
gen.writeStartObject();

driver/src/test/java/com/arangodb/PackageVersionTest.java renamed to driver/src/test/java/com/arangodb/UserAgentTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@
66
import org.junit.jupiter.params.provider.EnumSource;
77

88
import static org.assertj.core.api.Assertions.assertThat;
9-
import static org.junit.jupiter.api.Assumptions.assumeTrue;
109

11-
class PackageVersionTest extends BaseJunit5 {
10+
class UserAgentTest extends BaseJunit5 {
1211

1312
private static final String EXPECTED_VERSION = "7.0.0-ALPHA.2";
1413

@@ -20,7 +19,6 @@ void packageVersion() {
2019
@ParameterizedTest
2120
@EnumSource(Protocol.class)
2221
void userAgentHeader(Protocol protocol) {
23-
assumeTrue(protocol != Protocol.VST);
2422
ArangoDB adb = new ArangoDB.Builder()
2523
.loadProperties(config)
2624
.useProtocol(protocol)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.arangodb.async;
2+
3+
4+
import com.arangodb.PackageVersion;
5+
import com.arangodb.Request;
6+
import com.arangodb.Response;
7+
import com.arangodb.config.ArangoConfigProperties;
8+
import com.fasterxml.jackson.databind.JsonNode;
9+
import org.junit.jupiter.api.Test;
10+
11+
import java.util.concurrent.ExecutionException;
12+
13+
import static org.assertj.core.api.Assertions.assertThat;
14+
15+
class UserAgentTest {
16+
@Test
17+
void userAgentHeader() throws ExecutionException, InterruptedException {
18+
ArangoDBAsync adb = new ArangoDBAsync.Builder()
19+
.loadProperties(ArangoConfigProperties.fromFile())
20+
.build();
21+
22+
Response<JsonNode> resp = adb.execute(Request.builder()
23+
.method(Request.Method.GET)
24+
.path("/_admin/echo")
25+
.build(), JsonNode.class)
26+
.get();
27+
String headerValue = resp.getBody().get("headers").get("x-arango-driver").textValue();
28+
29+
String jvmVersion = System.getProperty("java.specification.version");
30+
String expected = "JavaDriver/" + PackageVersion.VERSION + " (JVM/" + jvmVersion + ")";
31+
32+
assertThat(headerValue).isEqualTo(expected);
33+
adb.shutdown();
34+
}
35+
}

vst/src/main/java/com/arangodb/vst/VstCommunication.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
package com.arangodb.vst;
2222

2323
import com.arangodb.ArangoDBException;
24+
import com.arangodb.PackageVersion;
2425
import com.arangodb.internal.InternalRequest;
2526
import com.arangodb.internal.InternalResponse;
2627
import com.arangodb.internal.config.ArangoConfig;
@@ -55,6 +56,7 @@ public abstract class VstCommunication<R, C extends VstConnection<?>> implements
5556
protected static final AtomicLong mId = new AtomicLong(0L);
5657
private static final Logger LOGGER = LoggerFactory.getLogger(VstCommunication.class);
5758
protected final InternalSerde serde;
59+
private static final String X_ARANGO_DRIVER = "JavaDriver/" + PackageVersion.VERSION + " (JVM/" + System.getProperty("java.specification.version") + ")";
5860

5961
protected final String user;
6062
protected final String password;
@@ -163,6 +165,7 @@ protected InternalResponse createResponse(final Message message) throws VPackPar
163165
protected final Message createMessage(final InternalRequest request) throws VPackParserException {
164166
request.putHeaderParam("accept", "application/x-velocypack");
165167
request.putHeaderParam("content-type", "application/x-velocypack");
168+
request.putHeaderParam("x-arango-driver", X_ARANGO_DRIVER);
166169
final long id = mId.incrementAndGet();
167170
return new Message(id, serde.serialize(request), request.getBody());
168171
}

0 commit comments

Comments
 (0)