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)