ClusterExecutorImpl implements ClusterExecutor { @Deactivate protected void deactivate() { if (_clusterChannel != null) { _clusterChannel.close(); } _clusterChannel = null; if (_executorService != null) { _executorService.shutdownNow(); } _executorService = null; _clusterEventListeners.clear(); _clusterNodeStatuses.clear(); _futureClusterResponses.clear(); _localClusterNodeStatus = null; if (_serviceRegistration != null) { _serviceRegistration.unregister(); } }  @Override @Reference( cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC, policyOption = ReferencePolicyOption.GREEDY ) void addClusterEventListener(
		ClusterEventListener clusterEventListener); @Override FutureClusterResponses execute(ClusterRequest clusterRequest); @Override InetAddress getBindInetAddress(); @Override NetworkInterface getBindNetworkInterface(); @Override List<ClusterEventListener> getClusterEventListeners(); @Override List<ClusterNode> getClusterNodes(); @Override ClusterNode getLocalClusterNode(); @Override boolean isClusterNodeAlive(String clusterNodeId); @Override boolean isEnabled(); @Override void removeClusterEventListener(
		ClusterEventListener clusterEventListener);  }
@Test public void testDeactivate() { ClusterExecutorImpl clusterExecutorImpl = getClusterExecutorImpl(); List<TestClusterChannel> clusterChannels = TestClusterChannel.getClusterChannels(); Assert.assertEquals( clusterChannels.toString(), 1, clusterChannels.size()); TestClusterChannel clusterChannel = clusterChannels.get(0); ExecutorService executorService = clusterExecutorImpl.getExecutorService(); Assert.assertFalse(executorService.isShutdown()); Assert.assertFalse(clusterChannel.isClosed()); clusterExecutorImpl.deactivate(); Assert.assertTrue(clusterChannel.isClosed()); Assert.assertTrue(executorService.isShutdown()); }