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

Commit e332f55

Browse files
authored
Merge pull request #254 from pontusmelke/4.0-url-error
Support host:port without scheme
2 parents 677ef97 + ad72951 commit e332f55

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

cypher-shell/src/main/java/org/neo4j/shell/cli/CliArgHelper.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.neo4j.shell.ParameterMap;
2626

2727
import static java.lang.String.format;
28+
import static org.neo4j.shell.cli.CliArgs.DEFAULT_SCHEME;
2829
import static org.neo4j.shell.cli.FailBehavior.FAIL_AT_END;
2930
import static org.neo4j.shell.cli.FailBehavior.FAIL_FAST;
3031

@@ -152,6 +153,12 @@ static URI parseURI( ArgumentParser parser, String address )
152153
{
153154
try
154155
{
156+
String[] schemeSplit = address.split( "://" );
157+
if ( schemeSplit.length == 1 )
158+
{
159+
// URI can't parse addresses without scheme, prepend fake "bolt://" to reuse the parsing facility
160+
address = DEFAULT_SCHEME + "://" + address;
161+
}
155162
return new URI( address );
156163
}
157164
catch ( URISyntaxException e )

cypher-shell/src/main/java/org/neo4j/shell/cli/CliArgs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import static org.neo4j.shell.DatabaseManager.ABSENT_DB_NAME;
1111

1212
public class CliArgs {
13-
private static final String DEFAULT_SCHEME = "bolt";
13+
static final String DEFAULT_SCHEME = "bolt";
1414
private static final String DEFAULT_HOST = "localhost";
1515
private static final int DEFAULT_PORT = 7687;
1616
static final int DEFAULT_NUM_SAMPLE_ROWS = 1000;

cypher-shell/src/test/java/org/neo4j/shell/cli/CliArgHelperTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,16 @@ public void parseFullAddress() {
154154
assertEquals(69, cliArgs.getPort());
155155
}
156156

157+
@Test
158+
public void parseWithoutProtocol() {
159+
CliArgs cliArgs = CliArgHelper.parse("--address", "localhost:10000");
160+
assertNotNull(cliArgs);
161+
assertNotNull(cliArgs);
162+
assertEquals("bolt", cliArgs.getScheme());
163+
assertEquals("localhost", cliArgs.getHost());
164+
assertEquals(10000, cliArgs.getPort());
165+
}
166+
157167
@Test
158168
public void parseAddressWithRoutingContext() {
159169
CliArgs cliArgs = CliArgHelper.parse("--address", "neo4j://localhost:7697?policy=one");

0 commit comments

Comments
 (0)