Skip to content

Commit 6dbc1fa

Browse files
authored
Merge pull request #575 from zhenlineo/2.0-api
Driver New 2.0 API
2 parents 5832020 + 19259f5 commit 6dbc1fa

File tree

511 files changed

+3674
-3343
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

511 files changed

+3674
-3343
lines changed

driver/clirr-ignored-differences.xml

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,3 @@
11
<differences>
2-
3-
<difference>
4-
<!-- Method Added to Interface -->
5-
<differenceType>7012</differenceType>
6-
<className>org/neo4j/driver/v1/**</className>
7-
<method>*</method>
8-
<justification>
9-
Allow addition of methods to interfaces.
10-
Most interfaces are not expected to be implemented by users and expose driver APIs.
11-
</justification>
12-
</difference>
13-
14-
<difference>
15-
<!-- Method Argument Type changed -->
16-
<differenceType>7005</differenceType>
17-
<className>org/neo4j/driver/v1/Config$ConfigBuilder</className>
18-
<method>org.neo4j.driver.v1.Config$ConfigBuilder withLogging(org.neo4j.driver.internal.spi.Logging)</method>
19-
<to>org.neo4j.driver.v1.Config$ConfigBuilder withLogging(org.neo4j.driver.v1.Logging)</to>
20-
<justification>
21-
Logging interface initially lived in a private package but was exposed as part of public API.
22-
It was later moved to the correct public package.
23-
</justification>
24-
</difference>
25-
26-
<difference>
27-
<!-- Method Return Type changed -->
28-
<differenceType>7006</differenceType>
29-
<className>org/neo4j/driver/v1/Config</className>
30-
<method>org.neo4j.driver.internal.spi.Logging logging()</method>
31-
<to>org.neo4j.driver.v1.Logging</to>
32-
<justification>
33-
Logging interface initially lived in a private package but was exposed as part of public API.
34-
It was later moved to the correct public package.
35-
</justification>
36-
</difference>
37-
2+
<!--2.0 drivers is not API compatible with 1.0 drivers, as a result we reset API differences from 2.0.0-->
383
</differences>

driver/src/main/java/org/neo4j/driver/v1/AccessMode.java renamed to driver/src/main/java/org/neo4j/driver/AccessMode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
/**
2222
* Used by Routing Driver to decide if a transaction should be routed to a write server or a read server in a cluster.

driver/src/main/java/org/neo4j/driver/v1/AuthToken.java renamed to driver/src/main/java/org/neo4j/driver/AuthToken.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
/**
2222
* Token for holding authentication details, such as <em>user name</em> and <em>password</em>.

driver/src/main/java/org/neo4j/driver/v1/AuthTokens.java renamed to driver/src/main/java/org/neo4j/driver/AuthTokens.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.util.Map;
2222
import java.util.Objects;
@@ -30,7 +30,7 @@
3030
import static org.neo4j.driver.internal.security.InternalAuthToken.REALM_KEY;
3131
import static org.neo4j.driver.internal.security.InternalAuthToken.SCHEME_KEY;
3232
import static org.neo4j.driver.internal.util.Iterables.newHashMapWithSize;
33-
import static org.neo4j.driver.v1.Values.value;
33+
import static org.neo4j.driver.Values.value;
3434

3535
/**
3636
* This is a listing of the various methods of authentication supported by this

driver/src/main/java/org/neo4j/driver/v1/Config.java renamed to driver/src/main/java/org/neo4j/driver/Config.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.io.File;
2222
import java.net.InetAddress;
@@ -27,16 +27,16 @@
2727
import org.neo4j.driver.internal.async.pool.PoolSettings;
2828
import org.neo4j.driver.internal.cluster.RoutingSettings;
2929
import org.neo4j.driver.internal.retry.RetrySettings;
30-
import org.neo4j.driver.v1.exceptions.ServiceUnavailableException;
31-
import org.neo4j.driver.v1.exceptions.SessionExpiredException;
32-
import org.neo4j.driver.v1.exceptions.TransientException;
33-
import org.neo4j.driver.v1.net.ServerAddressResolver;
34-
import org.neo4j.driver.v1.util.Experimental;
35-
import org.neo4j.driver.v1.util.Immutable;
36-
import org.neo4j.driver.v1.util.Resource;
30+
import org.neo4j.driver.exceptions.ServiceUnavailableException;
31+
import org.neo4j.driver.exceptions.SessionExpiredException;
32+
import org.neo4j.driver.exceptions.TransientException;
33+
import org.neo4j.driver.net.ServerAddressResolver;
34+
import org.neo4j.driver.util.Experimental;
35+
import org.neo4j.driver.util.Immutable;
36+
import org.neo4j.driver.util.Resource;
3737

38-
import static org.neo4j.driver.v1.Config.TrustStrategy.trustAllCertificates;
39-
import static org.neo4j.driver.v1.Logging.javaUtilLogging;
38+
import static org.neo4j.driver.Config.TrustStrategy.trustAllCertificates;
39+
import static org.neo4j.driver.Logging.javaUtilLogging;
4040

4141
/**
4242
* A configuration class to config driver properties.
@@ -498,7 +498,7 @@ public ConfigBuilder withMaxConnectionLifetime( long value, TimeUnit unit )
498498
* Configure maximum amount of connections in the connection pool towards a single database. This setting
499499
* limits total amount of connections in the pool when used in direct driver, created for URI with 'bolt'
500500
* scheme. It will limit amount of connections per cluster member when used with routing driver, created for
501-
* URI with 'bolt+routing' scheme.
501+
* URI with 'neo4j' scheme.
502502
* <p>
503503
* Acquisition will be attempted for at most configured timeout
504504
* {@link #withConnectionAcquisitionTimeout(long, TimeUnit)} when limit is reached.

driver/src/main/java/org/neo4j/driver/v1/ConnectionPoolMetrics.java renamed to driver/src/main/java/org/neo4j/driver/ConnectionPoolMetrics.java

Lines changed: 1 addition & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -16,114 +16,12 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.util.concurrent.TimeUnit;
2222

2323
public interface ConnectionPoolMetrics
2424
{
25-
/**
26-
* An empty connection pool metrics.
27-
*/
28-
ConnectionPoolMetrics EMPTY = new ConnectionPoolMetrics()
29-
{
30-
@Override
31-
public String id()
32-
{
33-
return "EMPTY";
34-
}
35-
36-
@Override
37-
public PoolStatus poolStatus()
38-
{
39-
return PoolStatus.CLOSED;
40-
}
41-
42-
@Override
43-
public int inUse()
44-
{
45-
return 0;
46-
}
47-
48-
@Override
49-
public int idle()
50-
{
51-
return 0;
52-
}
53-
54-
@Override
55-
public int creating()
56-
{
57-
return 0;
58-
}
59-
60-
@Override
61-
public long created()
62-
{
63-
return 0;
64-
}
65-
66-
@Override
67-
public long failedToCreate()
68-
{
69-
return 0;
70-
}
71-
72-
@Override
73-
public long closed()
74-
{
75-
return 0;
76-
}
77-
78-
@Override
79-
public int acquiring()
80-
{
81-
return 0;
82-
}
83-
84-
@Override
85-
public long acquired()
86-
{
87-
return 0;
88-
}
89-
90-
@Override
91-
public long timedOutToAcquire()
92-
{
93-
return 0;
94-
}
95-
96-
@Override
97-
public long totalAcquisitionTime()
98-
{
99-
return 0;
100-
}
101-
102-
@Override
103-
public long totalConnectionTime()
104-
{
105-
return 0;
106-
}
107-
108-
@Override
109-
public long totalInUseTime()
110-
{
111-
return 0;
112-
}
113-
114-
@Override
115-
public long totalInUseCount()
116-
{
117-
return 0;
118-
}
119-
120-
@Override
121-
public ConnectionPoolMetrics snapshot()
122-
{
123-
return this;
124-
}
125-
};
126-
12725
enum PoolStatus
12826
{
12927
OPEN, CLOSED

driver/src/main/java/org/neo4j/driver/v1/Driver.java renamed to driver/src/main/java/org/neo4j/driver/Driver.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.util.concurrent.CompletionStage;
22-
import org.neo4j.driver.v1.exceptions.ClientException;
22+
23+
import org.neo4j.driver.async.AsyncSession;
24+
import org.neo4j.driver.exceptions.ClientException;
2325
import org.neo4j.driver.reactive.RxSession;
2426

2527
/**
@@ -50,13 +52,13 @@
5052
* <td>Direct driver: connects directly to the host and port specified in the URI.</td>
5153
* </tr>
5254
* <tr>
53-
* <td><code>bolt+routing</code></td>
55+
* <td><code>neo4j</code></td>
5456
* <td>Routing driver: can automatically discover members of a Causal Cluster and route {@link Session sessions} based on {@link AccessMode}.</td>
5557
* </tr>
5658
* </tbody>
5759
* </table>
5860
*
59-
* @since 1.0 (<em>bolt+routing</em> URIs since 1.1)
61+
* @since 1.0 (<em>neo4j</em> URIs since 1.1)
6062
*/
6163
public interface Driver extends AutoCloseable
6264
{
@@ -167,8 +169,13 @@ public interface Driver extends AutoCloseable
167169
*/
168170
Metrics metrics();
169171

170-
// TODO more method overloads with parameters. Leaving this to refactoring PR for different sessions.
172+
// TODO more method overloads with parameters. Leaving this to multi-database db name PR.
171173
RxSession rxSession();
172-
173174
RxSession rxSession( String bookmark );
175+
176+
// TODO add more method overloads, leaving this to multi-database db name PR
177+
AsyncSession asyncSession();
178+
AsyncSession asyncSession( AccessMode mode );
179+
AsyncSession asyncSession( String bookmark );
180+
AsyncSession asyncSession( AccessMode mode, String bookmark );
174181
}

driver/src/main/java/org/neo4j/driver/v1/GraphDatabase.java renamed to driver/src/main/java/org/neo4j/driver/GraphDatabase.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.net.URI;
2222

2323
import org.neo4j.driver.internal.DriverFactory;
2424
import org.neo4j.driver.internal.cluster.RoutingSettings;
2525
import org.neo4j.driver.internal.retry.RetrySettings;
26-
import org.neo4j.driver.v1.exceptions.ServiceUnavailableException;
26+
import org.neo4j.driver.exceptions.ServiceUnavailableException;
2727

2828
import static org.neo4j.driver.internal.DriverFactory.BOLT_ROUTING_URI_SCHEME;
2929

@@ -137,12 +137,12 @@ public static Driver driver( URI uri, AuthToken authToken, Config config )
137137
}
138138

139139
/**
140-
* Try to create a bolt+routing driver from the <b>first</b> available address.
140+
* Try to create a neo4j driver from the <b>first</b> available address.
141141
* This is wrapper for the {@link #driver} method that finds the <b>first</b>
142142
* server to respond positively.
143143
*
144144
* @param routingUris an {@link Iterable} of server {@link URI}s for Neo4j instances. All given URIs should
145-
* have 'bolt+routing' scheme.
145+
* have 'neo4j' scheme.
146146
* @param authToken authentication to use, see {@link AuthTokens}
147147
* @param config user defined configuration
148148
* @return a new driver instance

driver/src/main/java/org/neo4j/driver/v1/Logger.java renamed to driver/src/main/java/org/neo4j/driver/Logger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
/**
2222
* Logs messages for driver activity.

driver/src/main/java/org/neo4j/driver/v1/Logging.java renamed to driver/src/main/java/org/neo4j/driver/Logging.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.util.logging.ConsoleHandler;
2222
import java.util.logging.Level;

driver/src/main/java/org/neo4j/driver/v1/Metrics.java renamed to driver/src/main/java/org/neo4j/driver/Metrics.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.util.Map;
2222

driver/src/main/java/org/neo4j/driver/v1/Record.java renamed to driver/src/main/java/org/neo4j/driver/Record.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.util.List;
2222
import java.util.Map;
2323

2424
import org.neo4j.driver.internal.value.NullValue;
25-
import org.neo4j.driver.v1.exceptions.ClientException;
26-
import org.neo4j.driver.v1.exceptions.NoSuchRecordException;
27-
import org.neo4j.driver.v1.types.MapAccessorWithDefaultValue;
25+
import org.neo4j.driver.exceptions.ClientException;
26+
import org.neo4j.driver.exceptions.NoSuchRecordException;
27+
import org.neo4j.driver.types.MapAccessorWithDefaultValue;
2828
import java.util.function.Function;
29-
import org.neo4j.driver.v1.util.Immutable;
30-
import org.neo4j.driver.v1.util.Pair;
29+
import org.neo4j.driver.util.Immutable;
30+
import org.neo4j.driver.util.Pair;
3131

3232
/**
3333
* Container for Cypher result values.

driver/src/main/java/org/neo4j/driver/v1/Records.java renamed to driver/src/main/java/org/neo4j/driver/Records.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* See the License for the specific language governing permissions and
1717
* limitations under the License.
1818
*/
19-
package org.neo4j.driver.v1;
19+
package org.neo4j.driver;
2020

2121
import java.util.function.Function;
2222

0 commit comments

Comments
 (0)