[ https://issues.apache.org/jira/browse/GOSSIP-79?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15973446#comment-15973446 ]
ASF GitHub Bot commented on GOSSIP-79: -------------------------------------- GitHub user gdusbabek opened a pull request: https://github.com/apache/incubator-gossip/pull/47 GOSSIP-79 Isolate UDP and JSON code With these changes, it should now be possible to create alternate serialization (e.g. Gson or native) and transports (like HTTP). To make this PR reviewable I decided against creating new modules right now. That can be done subsequently in another PR that doesn't modify any code. * Creates two new interfaces: `TransportManager` and `ProtocolManager` * Implementation classes must honor a common constructor interface * Includes UDP and Jackson implementations of those. * `AbstractTransportManager` has a lot of boilerplate that includes: * starting the active gossiper, and * starting the passive gossiper. * Gets rid of `OnlyProcessReceivedPassiveGossipThread` as it wasn't adding anything to `PassiveGossipThread` I spent some time trying to make the service implementations less dependent on references to `GossipManager`. There is a lot of room for improvement. You can merge this pull request into a Git repository by running: $ git pull https://github.com/gdusbabek/incubator-gossip GOSSIP-79 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-gossip/pull/47.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #47 ---- commit e6f22076f37b5208915569ca201daa848ccb90d8 Author: Gary Dusbabek <gdusba...@gmail.com> Date: 2017-04-17T17:37:42Z GOSSIP-79 Isolate UDP and JSON code With these changes, it should now be possible to create alternate serialization (e.g. Gson or native) and transports (like HTTP). To make this PR reviewable I decided against creating new modules right now. That can be done subsequently in another PR that doesn't modify any code. * Creates two new interfaces: `TransportManager` and `ProtocolManager` * Implementation classes must honor a common constructor interface * Includes UDP and Jackson implementations of those. * `AbstractTransportManager` has a lot of boilerplate that includes: * starting the active gossiper, and * starting the passive gossiper. I spent some time trying to polish the implementations to become less dependent on references to `GossipManager`. I still feel there is a lot of room for improvement. ---- > create gossip-transport-udp module > ---------------------------------- > > Key: GOSSIP-79 > URL: https://issues.apache.org/jira/browse/GOSSIP-79 > Project: Gossip > Issue Type: Improvement > Reporter: Gary Dusbabek > Assignee: Gary Dusbabek > > Create a transport module that houses the UDP transport. > This will probably require some refactoring. It may be prudent to create a > few interfaces that are kept in gossip-core which are then implemented in > gossip-transport-udp. > This probably needs to be a modules > 1 udp-server > 2 udp-client > OtherThings: > GossipManager.build() needs to look at the URI and dynamically load the right > server > GossipCore.send() needs to locate the right client for a URI. > Both of these things probably need a registry. Please dont make it a static > singleton thing ! :) -- This message was sent by Atlassian JIRA (v6.3.15#6346)