[ https://issues.apache.org/jira/browse/GEODE-3074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brian Baynes updated GEODE-3074: -------------------------------- Summary: Integrate new client protocol into existing connection logic (was: Integrate new client protocol into core) > 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 > > 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)