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)