TINKERPOP-2246 Use ResponseHandlerContext to ensure single final response to client#1148
TINKERPOP-2246 Use ResponseHandlerContext to ensure single final response to client#1148divijvaidya wants to merge 1 commit intoapache:tp33from
Conversation
979614c to
4279743
Compare
|
I think this was a good change, however now that I look at it I think it was partially implemented the way that it was to avoid a breaking change in Gremlin Server along 3.3.x and 3.4.x. Is there a way to approach this with an eye for deprecation? Here's some ideas I'm just throwing out there to consider.......they aren't fully thought through and just meant to foster some discussion. Maybe What about Other ideas? |
|
I apologize for the delay on this PR. I will get back to it in the next few days. |
7fb62dd to
1f4b62a
Compare
1f4b62a to
746fb68
Compare
|
I have merged the Let me know if this addresses your concerns. |
|
Wow - that looks a lot better. Great job! Did you have to completely delete |
|
Sorry, I didn't understand your comment the last time about making changes with an eye on deprecation. I will make the change but I don't understand the motivation here. Why do you consider removing the As part of Tinkerpop development, do we not delete anything without first marking it as deprecated, even if it is an internal class/function? |
|
We try not to create compile time problems during patch releases to make it as easy as possible for both providers and users to upgrade. I understand your use of "internal" there in that it's sort of a in-the-weeds sort of class but That's not to say that we don't make exceptions or never have breaking compile time changes (pretty rare I think which I like to take some pride in), but personally I prefer them more as a last resort as I imagine that few providers want to fuss very much with their implementations on older TinkerPop release lines (like Is this a case for allowing the breaking change through? It's not a clear "yes" in my mind, since I think I see a pretty simple deprecation path. Of course, the fix for a provider who upgraded would be fast/easy plus they get a good bug fix for making the change, so if we let it go as-is, it wouldn't be the end of the world - some upgrade docs would probably be required for providers so that they were aware of the change and it would be all good. So, sorry to make you shift one more time, but if you can take the deprecation approach without breaking compile time on upgrade, then let's do that. If you're sick of working on this ticket, I can finish it up for you. Just let me know. For the future, prefer deprecation with no breaks in compilation/behavior on older branches. If there is no such path then we probably should discuss the approach to see if the community can live with the breaking change. |
|
Merged this to a new branch shown in PR #1168 - assuming that's ok, we will merge from there and close this one out. |
|
Sure thing. Thank you for taking it up and apologies for leaving it open for such a long time. Your suggestions regarding deprecation makes sense now, will take care in future code. |
https://issues.apache.org/jira/browse/TINKERPOP-2246
This code change consolidates the usage of ResponseHandlerContext for sending out response to the client.
Testing
gremlin-server: mvn clean install -DskipIntegrationTests=false
gremlin-driver: mvn clean install -DskipIntegrationTests=false