Skip to content
This repository was archived by the owner on Jul 6, 2023. It is now read-only.

Commit 3baa589

Browse files
authored
Merge pull request #237 from pontusmelke/4.1-user-agent-string
Provide USER_AGENT when connecting
2 parents 712672e + 037a415 commit 3baa589

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

cypher-shell/src/main/java/org/neo4j/shell/state/BoltStateHandler.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import org.neo4j.shell.DatabaseManager;
3636
import org.neo4j.shell.TransactionHandler;
3737
import org.neo4j.shell.TriFunction;
38+
import org.neo4j.shell.build.Build;
3839
import org.neo4j.shell.exception.CommandException;
3940
import org.neo4j.shell.log.NullLogging;
4041

@@ -46,6 +47,7 @@
4647
*/
4748
public class BoltStateHandler implements TransactionHandler, Connector, DatabaseManager {
4849
private final TriFunction<String, AuthToken, Config, Driver> driverProvider;
50+
private static final String USER_AGENT = "neo4j-cypher-shell/v" + Build.version();
4951
protected Driver driver;
5052
Session session;
5153
private String version;
@@ -486,7 +488,9 @@ public void disconnect() {
486488
}
487489

488490
private Driver getDriver(@Nonnull ConnectionConfig connectionConfig, @Nullable AuthToken authToken) {
489-
Config.ConfigBuilder configBuilder = Config.builder().withLogging(NullLogging.NULL_LOGGING);
491+
Config.ConfigBuilder configBuilder = Config.builder()
492+
.withLogging(NullLogging.NULL_LOGGING)
493+
.withUserAgent( USER_AGENT );
490494
switch(connectionConfig.encryption())
491495
{
492496
case TRUE:

cypher-shell/src/test/java/org/neo4j/shell/state/BoltStateHandlerTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,6 +587,21 @@ public Driver apply(String uri, AuthToken authToken, Config config) {
587587
assertEquals("bolt+s", uriScheme[0]);
588588
}
589589

590+
@Test
591+
public void provideUserAgentstring() throws CommandException {
592+
RecordingDriverProvider provider = new RecordingDriverProvider() {
593+
@Override
594+
public Driver apply(String uri, AuthToken authToken, Config config) {
595+
super.apply(uri, authToken, config);
596+
return new FakeDriver();
597+
}
598+
};
599+
BoltStateHandler handler = new BoltStateHandler(provider, false);
600+
handler.connect(config);
601+
602+
assertTrue(provider.config.userAgent().startsWith( "neo4j-cypher-shell/v4.1" ));
603+
}
604+
590605
private Driver stubResultSummaryInAnOpenSession(Result resultMock, Session sessionMock, String version) {
591606
return stubResultSummaryInAnOpenSession(resultMock, sessionMock, version, DEFAULT_DEFAULT_DB_NAME);
592607
}

0 commit comments

Comments
 (0)