ClusterLinkImpl implements ClusterLink { protected void initialize( Map<String, String> channelLogicNames, Map<String, String> channelPropertiesLocations, Map<String, String> channelNames) { _executorService = _portalExecutorManager.getPortalExecutor( ClusterLinkImpl.class.getName()); try { initChannels( channelLogicNames, channelPropertiesLocations, channelNames); } catch (Exception exception) { _log.error("Unable to initialize channels", exception); throw new IllegalStateException(exception); } for (ClusterReceiver clusterReceiver : _clusterReceivers) { clusterReceiver.openLatch(); } }  @Override boolean isEnabled(); @Override void sendMulticastMessage(Message message, Priority priority); @Override void sendUnicastMessage(
		Address address, Message message, Priority priority);  }
@Test public void testInitialize() { ClusterLinkImpl clusterLinkImpl = getClusterLinkImpl(2); Assert.assertNotNull(clusterLinkImpl.getExecutorService()); List<TestClusterChannel> clusterChannels = TestClusterChannel.getClusterChannels(); Assert.assertEquals( clusterChannels.toString(), 2, clusterChannels.size()); for (TestClusterChannel clusterChannel : clusterChannels) { Assert.assertFalse(clusterChannel.isClosed()); CountDownLatch countDownLatch = ReflectionTestUtil.getFieldValue( clusterChannel.getClusterReceiver(), "_countDownLatch"); Assert.assertEquals(0, countDownLatch.getCount()); } }