You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Bill Burcham (Jira)" <ji...@apache.org> on 2019/12/17 18:17:00 UTC

[jira] [Created] (GEODE-7585) Add API to Membership to start a locator

Bill Burcham created GEODE-7585:
-----------------------------------

             Summary: Add API to Membership to start a locator
                 Key: GEODE-7585
                 URL: https://issues.apache.org/jira/browse/GEODE-7585
             Project: Geode
          Issue Type: Improvement
          Components: membership
            Reporter: Bill Burcham


After we have decoupled the tcpserver package from the rest of core, we would like to have a way to inject a TCPServer configuration into membership.

Right now the core is directly creating and calling GMSLocator from GMSLocatorAdapter. GMSLocatorAdapter is not going through the membership API, it's interacting with a GMSLocator component that was created before Membership was started. GMSLocator is not part of the membership API.

Instead, we would like core to only use the membership API, so we should have a better way to inject the TCPServer into membership. We want to have all of the membership code encapsulated behind the the classes in gms.api package (Membership, MembershipBuilder). We also want all of the components of membership to be instantiated when we call MembershipBuilder.create.

For production, we would have an implementation that would include any core-specific behaviors. For isolated testing of the membership component, we would have an implementation that would include just what is required for membership, which is essentially the ability to register a handler for PeerLocationRequests. The InternalLocator will pass along its additional handlers (and whatever else it needs) to membership.

For the interface, we might just add another setter to our builder like this:

MembershipBuilder
.setTcpServerConfiguration(TcpServerConfiguration)
......

Acceptance Criteria:

    geode-core code will only interface with the classes in the gms.api package. It will not directly use GMSLocator.
    We have an API to start the locator part of membership within the membership module.
    We have a test that starts a locator and connects two members to it, using only the membership module (through it's public API). This should be an integration test (no dunit). Perhaps MembershipJUnitTest could be used.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)