Skip to content

Commit f64df75

Browse files
committed
Full set of new examples
1 parent 4d2631b commit f64df75

25 files changed

+778
-672
lines changed

driver/src/test/java/org/neo4j/driver/v1/util/Neo4jRunner.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
import static java.util.Arrays.asList;
3535
import static org.junit.Assume.assumeTrue;
36+
import static org.neo4j.driver.v1.AuthTokens.basic;
3637
import static org.neo4j.driver.v1.ConfigTest.deleteDefaultKnownCertFileIfExists;
3738
import static org.neo4j.driver.v1.util.FileTools.moveFile;
3839
import static org.neo4j.driver.v1.util.FileTools.updateProperties;
@@ -104,7 +105,7 @@ public Driver driver()
104105
{
105106
if ( driver == null )
106107
{
107-
driver = GraphDatabase.driver( DEFAULT_URI );
108+
driver = GraphDatabase.driver( DEFAULT_URI, basic(TestNeo4j.USER, TestNeo4j.PASSWORD) );
108109
}
109110
return driver;
110111
}
@@ -137,10 +138,10 @@ private void installNeo4j() throws IOException
137138
updateServerSettingsFile();
138139
}
139140

140-
private void startNeo4j() throws IOException
141+
public void startNeo4j() throws IOException
141142
{
142143
debug( "Starting server..." );
143-
executeCommand( "neoctrl-create-user", HOME_DIR, "neo4j", "neo4j" );
144+
executeCommand( "neoctrl-create-user", HOME_DIR, TestNeo4j.USER, TestNeo4j.PASSWORD );
144145
executeCommand( "neoctrl-start", HOME_DIR );
145146
debug( "Server started." );
146147
}

driver/src/test/java/org/neo4j/driver/v1/util/Neo4jSettings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public class Neo4jSettings
5050
CERT_DIR, DEFAULT_CERT_DIR,
5151
DATA_DIR, DEFAULT_DATA_DIR,
5252
IMPORT_DIR, DEFAULT_IMPORT_DIR,
53-
AUTH_ENABLED, "false",
53+
AUTH_ENABLED, "true",
5454
LISTEN_ADDR, IPV6_ENABLED_ADDR ), Collections.<String>emptySet() );
5555

5656
private Neo4jSettings( Map<String, String> settings, Set<String> excludes )

driver/src/test/java/org/neo4j/driver/v1/util/TestNeo4j.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838

3939
public class TestNeo4j implements TestRule
4040
{
41+
public static final String USER = "neo4j";
42+
public static final String PASSWORD = "password";
4143
public static final String TEST_RESOURCE_FOLDER_PATH = "src/test/resources";
4244
private final Neo4jSettings settings;
4345
private Neo4jRunner runner;
@@ -148,4 +150,14 @@ public void ensureProcedures( String jarName ) throws IOException
148150
runner.forceToRestart(); // needs to force to restart as no configuration changed
149151
}
150152
}
153+
154+
public void start() throws IOException
155+
{
156+
runner.startNeo4j();
157+
}
158+
159+
public void stop() throws IOException
160+
{
161+
runner.stopNeo4j();
162+
}
151163
}

examples/pom.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,14 @@
123123
</execution>
124124
</executions>
125125
</plugin>
126+
<plugin>
127+
<groupId>org.apache.maven.plugins</groupId>
128+
<artifactId>maven-compiler-plugin</artifactId>
129+
<configuration>
130+
<source>1.8</source>
131+
<target>1.8</target>
132+
</configuration>
133+
</plugin>
126134
</plugins>
127135
</build>
128136

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::autocommit-transaction-import[]
4+
5+
import org.neo4j.driver.v1.Session;
6+
7+
import static org.neo4j.driver.v1.Values.parameters;
8+
// end::autocommit-transaction-import[]
9+
10+
public class AutocommitTransactionExample extends BaseApplication
11+
{
12+
public AutocommitTransactionExample(String uri, String user, String password)
13+
{
14+
super(uri, user, password);
15+
}
16+
17+
// tag::autocommit-transaction[]
18+
public void addPerson(String name)
19+
{
20+
try (Session session = driver.session())
21+
{
22+
session.run("CREATE (a:Person {name: $name})", parameters("name", name));
23+
}
24+
}
25+
// end::autocommit-transaction[]
26+
27+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.neo4j.docs.driver;
2+
3+
4+
import org.neo4j.driver.v1.AuthTokens;
5+
import org.neo4j.driver.v1.Driver;
6+
import org.neo4j.driver.v1.GraphDatabase;
7+
8+
public abstract class BaseApplication implements AutoCloseable
9+
{
10+
protected final Driver driver;
11+
12+
public BaseApplication(String uri, String user, String password)
13+
{
14+
driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password));
15+
}
16+
17+
@Override
18+
public void close() throws Exception
19+
{
20+
driver.close();
21+
}
22+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::basic-auth-import[]
4+
import org.neo4j.driver.v1.AuthTokens;
5+
import org.neo4j.driver.v1.Driver;
6+
import org.neo4j.driver.v1.GraphDatabase;
7+
import org.neo4j.driver.v1.StatementResult;
8+
// end::basic-auth-import[]
9+
10+
public class BasicAuthExample implements AutoCloseable
11+
{
12+
private final Driver driver;
13+
14+
// tag::basic-auth[]
15+
public BasicAuthExample(String uri, String user, String password)
16+
{
17+
driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password));
18+
}
19+
// end::basic-auth[]
20+
21+
@Override
22+
public void close() throws Exception
23+
{
24+
driver.close();
25+
}
26+
27+
public boolean canConnect()
28+
{
29+
StatementResult result = driver.session().run("RETURN 1");
30+
return result.single().get(0).asInt() == 1;
31+
}
32+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::config-connection-timeout-import[]
4+
5+
import org.neo4j.driver.v1.AuthTokens;
6+
import org.neo4j.driver.v1.Config;
7+
import org.neo4j.driver.v1.Driver;
8+
import org.neo4j.driver.v1.GraphDatabase;
9+
10+
import static java.util.concurrent.TimeUnit.SECONDS;
11+
// end::config-connection-timeout-import[]
12+
13+
public class ConfigConnectionTimeoutExample implements AutoCloseable
14+
{
15+
private final Driver driver;
16+
17+
// tag::config-connection-timeout[]
18+
public ConfigConnectionTimeoutExample(String uri, String user, String password)
19+
{
20+
driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password),
21+
Config.build().withConnectionTimeout(15, SECONDS).toConfig());
22+
}
23+
// end::config-connection-timeout[]
24+
25+
@Override
26+
public void close() throws Exception
27+
{
28+
driver.close();
29+
}
30+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::config-max-retry-time-import[]
4+
5+
import org.neo4j.driver.v1.AuthTokens;
6+
import org.neo4j.driver.v1.Config;
7+
import org.neo4j.driver.v1.Driver;
8+
import org.neo4j.driver.v1.GraphDatabase;
9+
10+
import static java.util.concurrent.TimeUnit.SECONDS;
11+
// end::config-max-retry-time-import[]
12+
13+
public class ConfigMaxRetryTimeExample implements AutoCloseable
14+
{
15+
private final Driver driver;
16+
17+
// tag::config-max-retry-time[]
18+
public ConfigMaxRetryTimeExample(String uri, String user, String password)
19+
{
20+
driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password),
21+
Config.build().withMaxTransactionRetryTime(15, SECONDS).toConfig());
22+
}
23+
// end::config-max-retry-time[]
24+
25+
@Override
26+
public void close() throws Exception
27+
{
28+
driver.close();
29+
}
30+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::config-trust-import[]
4+
import org.neo4j.driver.v1.AuthTokens;
5+
import org.neo4j.driver.v1.Config;
6+
import org.neo4j.driver.v1.Driver;
7+
import org.neo4j.driver.v1.GraphDatabase;
8+
// end::config-trust-import[]
9+
10+
public class ConfigTrustExample implements AutoCloseable
11+
{
12+
private final Driver driver;
13+
14+
// tag::config-trust[]
15+
public ConfigTrustExample(String uri, String user, String password)
16+
{
17+
driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password),
18+
Config.build().withTrustStrategy(Config.TrustStrategy.trustSystemCertificates()).toConfig());
19+
}
20+
// end::config-trust[]
21+
22+
@Override
23+
public void close() throws Exception
24+
{
25+
driver.close();
26+
}
27+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::config-unencrypted-import[]
4+
import org.neo4j.driver.v1.AuthTokens;
5+
import org.neo4j.driver.v1.Config;
6+
import org.neo4j.driver.v1.Driver;
7+
import org.neo4j.driver.v1.GraphDatabase;
8+
// end::config-unencrypted-import[]
9+
10+
public class ConfigUnencryptedExample implements AutoCloseable
11+
{
12+
private final Driver driver;
13+
14+
// tag::config-unencrypted[]
15+
public ConfigUnencryptedExample(String uri, String user, String password)
16+
{
17+
driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password),
18+
Config.build().withEncryptionLevel(Config.EncryptionLevel.NONE).toConfig());
19+
}
20+
// end::config-unencrypted[]
21+
22+
@Override
23+
public void close() throws Exception
24+
{
25+
driver.close();
26+
}
27+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::custom-auth-import[]
4+
import org.neo4j.driver.v1.AuthTokens;
5+
import org.neo4j.driver.v1.Driver;
6+
import org.neo4j.driver.v1.GraphDatabase;
7+
8+
import java.util.Map;
9+
// end::custom-auth-import[]
10+
11+
public class CustomAuthExample implements AutoCloseable
12+
{
13+
private final Driver driver;
14+
15+
// tag::custom-auth[]
16+
public CustomAuthExample(String uri, String principal, String credentials, String realm, String scheme, Map<String, Object> parameters)
17+
{
18+
driver = GraphDatabase.driver(uri, AuthTokens.custom(principal, credentials, realm, scheme, parameters));
19+
}
20+
// end::custom-auth[]
21+
22+
@Override
23+
public void close() throws Exception
24+
{
25+
driver.close();
26+
}
27+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::cypher-error-import[]
4+
5+
import org.neo4j.driver.v1.Session;
6+
import org.neo4j.driver.v1.StatementResult;
7+
import org.neo4j.driver.v1.Transaction;
8+
import org.neo4j.driver.v1.exceptions.ClientException;
9+
10+
import static org.neo4j.driver.v1.Values.parameters;
11+
// end::cypher-error-import[]
12+
13+
public class CypherErrorExample extends BaseApplication
14+
{
15+
public CypherErrorExample(String uri, String user, String password)
16+
{
17+
super(uri, user, password);
18+
}
19+
20+
// tag::cypher-error[]
21+
public int getEmployeeNumber(String name)
22+
{
23+
try (Session session = driver.session())
24+
{
25+
return session.readTransaction((tx) -> selectEmployee(tx, name));
26+
}
27+
}
28+
29+
private int selectEmployee(Transaction tx, String name)
30+
{
31+
try
32+
{
33+
StatementResult result = tx.run("SELECT * FROM Employees WHERE name = $name", parameters("name", name));
34+
return result.single().get("employee_number").asInt();
35+
}
36+
catch (ClientException ex)
37+
{
38+
System.err.println(ex.getMessage());
39+
return -1;
40+
}
41+
}
42+
// end::cypher-error[]
43+
44+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package org.neo4j.docs.driver;
2+
3+
// tag::driver-lifecycle-import[]
4+
import org.neo4j.driver.v1.AuthTokens;
5+
import org.neo4j.driver.v1.Driver;
6+
import org.neo4j.driver.v1.GraphDatabase;
7+
// end::driver-lifecycle-import[]
8+
9+
// tag::driver-lifecycle[]
10+
public class DriverLifecycleExample implements AutoCloseable
11+
{
12+
private final Driver driver;
13+
14+
public DriverLifecycleExample(String uri, String user, String password)
15+
{
16+
driver = GraphDatabase.driver(uri, AuthTokens.basic(user, password));
17+
}
18+
19+
@Override
20+
public void close() throws Exception
21+
{
22+
driver.close();
23+
}
24+
}
25+
// end::driver-lifecycle[]

0 commit comments

Comments
 (0)