Skip to content

Commit 841f92b

Browse files
authored
Merge pull request #517 from lutovich/1.7-bolt-v3
Bolt V3
2 parents c68e82c + 0f7ce4a commit 841f92b

File tree

76 files changed

+2642
-447
lines changed

Some content is hidden

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

76 files changed

+2642
-447
lines changed

driver/src/main/java/org/neo4j/driver/internal/Bookmark.java renamed to driver/src/main/java/org/neo4j/driver/internal/Bookmarks.java

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,31 +30,31 @@
3030
import static org.neo4j.driver.internal.util.Iterables.newHashMapWithSize;
3131
import static org.neo4j.driver.v1.Values.value;
3232

33-
public final class Bookmark
33+
public final class Bookmarks
3434
{
3535
private static final String BOOKMARK_KEY = "bookmark";
3636
private static final String BOOKMARKS_KEY = "bookmarks";
3737
private static final String BOOKMARK_PREFIX = "neo4j:bookmark:v1:tx";
3838

3939
private static final long UNKNOWN_BOOKMARK_VALUE = -1;
4040

41-
private static final Bookmark EMPTY = new Bookmark( Collections.<String>emptySet() );
41+
private static final Bookmarks EMPTY = new Bookmarks( Collections.emptySet() );
4242

4343
private final Iterable<String> values;
4444
private final String maxValue;
4545

46-
private Bookmark( Iterable<String> values )
46+
private Bookmarks( Iterable<String> values )
4747
{
4848
this.values = values;
4949
this.maxValue = maxBookmark( values );
5050
}
5151

52-
public static Bookmark empty()
52+
public static Bookmarks empty()
5353
{
5454
return EMPTY;
5555
}
5656

57-
public static Bookmark from( String value )
57+
public static Bookmarks from( String value )
5858
{
5959
if ( value == null )
6060
{
@@ -63,13 +63,13 @@ public static Bookmark from( String value )
6363
return from( singleton( value ) );
6464
}
6565

66-
public static Bookmark from( Iterable<String> values )
66+
public static Bookmarks from( Iterable<String> values )
6767
{
6868
if ( values == null )
6969
{
7070
return empty();
7171
}
72-
return new Bookmark( values );
72+
return new Bookmarks( values );
7373
}
7474

7575
public boolean isEmpty()
@@ -82,6 +82,11 @@ public String maxBookmarkAsString()
8282
return maxValue;
8383
}
8484

85+
public Iterable<String> values()
86+
{
87+
return values;
88+
}
89+
8590
public Map<String,Value> asBeginTransactionParameters()
8691
{
8792
if ( isEmpty() )
@@ -110,9 +115,9 @@ public boolean equals( Object o )
110115
{
111116
return false;
112117
}
113-
Bookmark bookmark = (Bookmark) o;
114-
return Objects.equals( values, bookmark.values ) &&
115-
Objects.equals( maxValue, bookmark.maxValue );
118+
Bookmarks bookmarks = (Bookmarks) o;
119+
return Objects.equals( values, bookmarks.values ) &&
120+
Objects.equals( maxValue, bookmarks.maxValue );
116121
}
117122

118123
@Override
@@ -124,7 +129,7 @@ public int hashCode()
124129
@Override
125130
public String toString()
126131
{
127-
return "Bookmark{values=" + values + "}";
132+
return "Bookmarks{values=" + values + "}";
128133
}
129134

130135
private static String maxBookmark( Iterable<String> bookmarks )

driver/src/main/java/org/neo4j/driver/internal/ExplicitTransaction.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ private enum State
6767
private final NetworkSession session;
6868
private final ResultCursorsHolder resultCursors;
6969

70-
private volatile Bookmark bookmark = Bookmark.empty();
70+
private volatile Bookmarks bookmarks = Bookmarks.empty();
7171
private volatile State state = State.ACTIVE;
7272

7373
public ExplicitTransaction( Connection connection, NetworkSession session )
@@ -78,9 +78,9 @@ public ExplicitTransaction( Connection connection, NetworkSession session )
7878
this.resultCursors = new ResultCursorsHolder();
7979
}
8080

81-
public CompletionStage<ExplicitTransaction> beginAsync( Bookmark initialBookmark )
81+
public CompletionStage<ExplicitTransaction> beginAsync( Bookmarks initialBookmarks )
8282
{
83-
return protocol.beginTransaction( connection, initialBookmark )
83+
return protocol.beginTransaction( connection, initialBookmarks )
8484
.handle( ( ignore, beginError ) ->
8585
{
8686
if ( beginError != null )
@@ -228,16 +228,16 @@ public void markTerminated()
228228
state = State.TERMINATED;
229229
}
230230

231-
public Bookmark bookmark()
231+
public Bookmarks bookmark()
232232
{
233-
return bookmark;
233+
return bookmarks;
234234
}
235235

236-
public void setBookmark( Bookmark bookmark )
236+
public void setBookmarks( Bookmarks bookmarks )
237237
{
238-
if ( bookmark != null && !bookmark.isEmpty() )
238+
if ( bookmarks != null && !bookmarks.isEmpty() )
239239
{
240-
this.bookmark = bookmark;
240+
this.bookmarks = bookmarks;
241241
}
242242
}
243243

@@ -277,7 +277,7 @@ private void transactionClosed( State newState )
277277
{
278278
state = newState;
279279
connection.release(); // release in background
280-
session.setBookmark( bookmark );
280+
session.setBookmarks( bookmarks );
281281
}
282282

283283
private void terminateConnectionOnThreadInterrupt( String reason )

driver/src/main/java/org/neo4j/driver/internal/InternalDriver.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public Session session()
6565
@Override
6666
public Session session( AccessMode mode )
6767
{
68-
return newSession( mode, Bookmark.empty() );
68+
return newSession( mode, Bookmarks.empty() );
6969
}
7070

7171
@Override
@@ -77,7 +77,7 @@ public Session session( String bookmark )
7777
@Override
7878
public Session session( AccessMode mode, String bookmark )
7979
{
80-
return newSession( mode, Bookmark.from( bookmark ) );
80+
return newSession( mode, Bookmarks.from( bookmark ) );
8181
}
8282

8383
@Override
@@ -89,13 +89,13 @@ public Session session( Iterable<String> bookmarks )
8989
@Override
9090
public Session session( AccessMode mode, Iterable<String> bookmarks )
9191
{
92-
return newSession( mode, Bookmark.from( bookmarks ) );
92+
return newSession( mode, Bookmarks.from( bookmarks ) );
9393
}
9494

95-
private Session newSession( AccessMode mode, Bookmark bookmark )
95+
private Session newSession( AccessMode mode, Bookmarks bookmarks )
9696
{
9797
assertOpen();
98-
Session session = sessionFactory.newInstance( mode, bookmark );
98+
Session session = sessionFactory.newInstance( mode, bookmarks );
9999
if ( closed.get() )
100100
{
101101
// session does not immediately acquire connection, it is fine to just throw

driver/src/main/java/org/neo4j/driver/internal/NetworkSession.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public class NetworkSession extends AbstractStatementRunner implements Session
5252
private final RetryLogic retryLogic;
5353
protected final Logger logger;
5454

55-
private volatile Bookmark bookmark = Bookmark.empty();
55+
private volatile Bookmarks bookmarks = Bookmarks.empty();
5656
private volatile CompletionStage<ExplicitTransaction> transactionStage = completedWithNull();
5757
private volatile CompletionStage<Connection> connectionStage = completedWithNull();
5858
private volatile CompletionStage<InternalStatementResultCursor> resultCursorStage = completedWithNull();
@@ -138,7 +138,7 @@ public Transaction beginTransaction()
138138
@Override
139139
public Transaction beginTransaction( String bookmark )
140140
{
141-
setBookmark( Bookmark.from( bookmark ) );
141+
setBookmarks( Bookmarks.from( bookmark ) );
142142
return beginTransaction();
143143
}
144144

@@ -173,18 +173,18 @@ public <T> CompletionStage<T> writeTransactionAsync( TransactionWork<CompletionS
173173
return transactionAsync( AccessMode.WRITE, work );
174174
}
175175

176-
void setBookmark( Bookmark bookmark )
176+
void setBookmarks( Bookmarks bookmarks )
177177
{
178-
if ( bookmark != null && !bookmark.isEmpty() )
178+
if ( bookmarks != null && !bookmarks.isEmpty() )
179179
{
180-
this.bookmark = bookmark;
180+
this.bookmarks = bookmarks;
181181
}
182182
}
183183

184184
@Override
185185
public String lastBookmark()
186186
{
187-
return bookmark == null ? null : bookmark.maxBookmarkAsString();
187+
return bookmarks == null ? null : bookmarks.maxBookmarkAsString();
188188
}
189189

190190
@Override
@@ -387,7 +387,7 @@ private CompletionStage<ExplicitTransaction> beginTransactionAsync( AccessMode m
387387
.thenCompose( connection ->
388388
{
389389
ExplicitTransaction tx = new ExplicitTransaction( connection, NetworkSession.this );
390-
return tx.beginAsync( bookmark );
390+
return tx.beginAsync( bookmarks );
391391
} );
392392

393393
// update the reference to the only known transaction

driver/src/main/java/org/neo4j/driver/internal/SessionFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
public interface SessionFactory
2727
{
28-
Session newInstance( AccessMode mode, Bookmark bookmark );
28+
Session newInstance( AccessMode mode, Bookmarks bookmarks );
2929

3030
CompletionStage<Void> verifyConnectivity();
3131

driver/src/main/java/org/neo4j/driver/internal/SessionFactoryImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ public class SessionFactoryImpl implements SessionFactory
4343
}
4444

4545
@Override
46-
public Session newInstance( AccessMode mode, Bookmark bookmark )
46+
public Session newInstance( AccessMode mode, Bookmarks bookmarks )
4747
{
4848
NetworkSession session = createSession( connectionProvider, retryLogic, mode, logging );
49-
session.setBookmark( bookmark );
49+
session.setBookmarks( bookmarks );
5050
return session;
5151
}
5252

driver/src/main/java/org/neo4j/driver/internal/async/BoltProtocolUtil.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import org.neo4j.driver.internal.messaging.v1.BoltProtocolV1;
2424
import org.neo4j.driver.internal.messaging.v2.BoltProtocolV2;
25+
import org.neo4j.driver.internal.messaging.v3.BoltProtocolV3;
2526

2627
import static io.netty.buffer.Unpooled.copyInt;
2728
import static io.netty.buffer.Unpooled.unreleasableBuffer;
@@ -40,9 +41,9 @@ public final class BoltProtocolUtil
4041

4142
private static final ByteBuf HANDSHAKE_BUF = unreleasableBuffer( copyInt(
4243
BOLT_MAGIC_PREAMBLE,
44+
BoltProtocolV3.VERSION,
4345
BoltProtocolV2.VERSION,
4446
BoltProtocolV1.VERSION,
45-
NO_PROTOCOL_VERSION,
4647
NO_PROTOCOL_VERSION ) ).asReadOnly();
4748

4849
private static final String HANDSHAKE_STRING = createHandshakeString();

0 commit comments

Comments
 (0)