[
https://issues.apache.org/jira/browse/GEODE-3074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brian Baynes resolved GEODE-3074.
---------------------------------
Resolution: Fixed
Fix Version/s: 1.4.0
> Integrate new client protocol into existing connection logic
> ------------------------------------------------------------
>
> Key: GEODE-3074
> URL: https://issues.apache.org/jira/browse/GEODE-3074
> Project: Geode
> Issue Type: New Feature
> Components: client/server
> Reporter: Galen O'Sullivan
> Fix For: 1.4.0
>
>
> We want to make a [new client server
> protocol|https://cwiki.apache.org/confluence/display/GEODE/New+Client+Server+Protocol]
> that will make it much easier for new Geode clients to be implemented in
> other languages.
> To do this, we need a refactor of {{AcceptorImpl}} and {{ServerConnection}}
> to allow the server to create new client protocol handler objects and run
> them within the existing network / threading infrastructure.
> As a first task, we can make a factory that creates instances of the new
> subclasses of {{ServerConnection}} : {{NewClientServerConnection}} and
> {{LegacyServerConnection}}. Then we can slowly refactor functionality from
> {{ServerConnection}} into that which is common (such as handling shutdown,
> stats, and interacting properly with selector or thread pool) and that which
> is specific to the old client protocol.
> This ticket will track the many subtasks of this effort.
> TODO before the whole ticket is resolved:
> * Have a look through the {{Command}}s and see what they do.
> - Move transient flag methods and such down to {{LegacyServerConnection}}.
> * Make sure we handle failure consistently.
> * Make sure Event IDs and such are OK in the Cache.
> - I think that using the public Region API will make this OK.
> * Comm Buffers: can we use them? If so, use them; if not, pull down to
> {{LegacyServerConnection}}.
> * Socket receive and send sizes -- see `initStreams()` in `ServerConnection`.
> Other things to think about:
> * Make selector work with SSL.
> * think about redesigning selector in case of an incomplete message being
> received (buffer message -- I think there's currently a bug here).
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)