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)

Reply via email to