-
Notifications
You must be signed in to change notification settings - Fork 155
Add support to 4.2 by implementing the extended handshake #798
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -55,6 +55,21 @@ public int toInt() | |
return shiftedMinor | majorVersion; | ||
} | ||
|
||
public int toIntRange(BoltProtocolVersion minVersion) | ||
{ | ||
if(majorVersion != minVersion.majorVersion) | ||
{ | ||
throw new IllegalArgumentException( "Versions should be from the same version" ); | ||
bigmontz marked this conversation as resolved.
Show resolved
Hide resolved
|
||
} | ||
else if (minorVersion < minVersion.minorVersion) | ||
{ | ||
throw new IllegalArgumentException("Max version should be newest than min version"); | ||
bigmontz marked this conversation as resolved.
Show resolved
Hide resolved
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: I know its less consistently applied in the driver but can you format the changes using the server checkstyles There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I've did a format on the file, what's off in the current format? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. the space before and after the bracket : |
||
} | ||
int range = minorVersion - minVersion.minorVersion; | ||
int shiftedRange = range << 16; | ||
return shiftedRange | toInt(); | ||
} | ||
|
||
/** | ||
* @return the version in format X.Y where X is the major version and Y is the minor version | ||
*/ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just wondering if we should push the range option to the bottom for 4.3 -> 4.2. So the handshake is 4.3, 4.2, 4.1-> 4.0, 3. When 4.3 driver talks to 4.2 server it would skip over 4.2 and negotiate 4.1.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Then we will lose the multi database support on the version 4.0, since i will negotiate as 3.5.
Uses 4.1 to talk with a 4.2.x server will not represent any feature drop.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah good point. I guess we just have to be a little careful whilst we switch to the new handshake
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've made a comment on the protocol definition document, to fix the example to consider the version range in decreasing order.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the idea that we should go to BoltProtocolV43.VERSION.toIntRange(BoltProtocolVersionV40.VERSION)? That way we are saying all version 4 protocols are accepted by this driver and save 2 slots in the handshake.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it could be done in the protocol, but I think we should keep using the slots for the 4.0 and 4.1, just in case we connect to a non-update server which do not know how to interpret the extend handshake.