Raúl Kripalani created IGNITE-1237:
--------------------------------------
Summary: IP Finders should have a lifecycle
Key: IGNITE-1237
URL:
https://issues.apache.org/jira/browse/IGNITE-1237 Project: Ignite
Issue Type: Improvement
Components: general
Reporter: Raúl Kripalani
Assignee: Raúl Kripalani
Currently TCP Discovery IP Finders do not have a lifecycle. As a consequence, in all existing implementations, calls to the {{registerAddresses}}, {{unregisterAddresses}}, {{getRegisteredAddresses}} end up performing lazy initialisation (via a private {{init}} method).
Unfortunately this design doesn't give an IP Finder a chance to destroy any resources cleanly.
I tried overriding the parent's {{onSpiContextInitialized}} and {{onSpiContextDestroyed}}, but unfortunately I did not get any callbacks. At least not when initializing the grid from a JUnit test:
{code}
public void testOneIgniteNodeIsAlone() throws Exception {
TcpDiscoveryZookeeperIpFinder zkIpFinder = new TcpDiscoveryZookeeperIpFinder();
zkIpFinder.setZkUrl(zkCluster.getConnectString());
IgniteConfiguration config = newIgniteConfigWithZk(zkIpFinder);
startGrid("zkgrid", config);
Assert.assertEquals(1, grid().cluster().metrics().getTotalNodes());
}
private IgniteConfiguration newIgniteConfigWithZk(TcpDiscoveryZookeeperIpFinder zkIpFinder) throws Exception {
IgniteConfiguration configuration = super.getConfiguration();
TcpDiscoverySpi tcpDisco = (TcpDiscoverySpi) configuration.getDiscoverySpi();
tcpDisco.setIpFinder(zkIpFinder);
return configuration;
}
{code}
(just pasting my code here in case the culprit of not receiving callbacks is the way I start the grid)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)