private synchronized void deployBroadcastGroup(final BroadcastGroupConfiguration config) throws Exception { if (broadcastGroups.containsKey(config.getName())) { ActiveMQServerLogger.LOGGER.broadcastGroupAlreadyExists(config.getName()); return; } BroadcastGroup group = createBroadcastGroup(config); managementService.registerBroadcastGroup(group, config); }
@Override public String getName() { clearIO(); try { return configuration.getName(); } finally { blockOnIO(); } }
@Override public synchronized void registerBroadcastGroup(final BroadcastGroup broadcastGroup, final BroadcastGroupConfiguration configuration) throws Exception { broadcastGroup.setNotificationService(this); ObjectName objectName = objectNameBuilder.getBroadcastGroupObjectName(configuration.getName()); BroadcastGroupControl control = new BroadcastGroupControlImpl(broadcastGroup, storageManager, configuration); registerInJMX(objectName, control); registerInRegistry(ResourceNames.BROADCAST_GROUP + configuration.getName(), control); }
private BroadcastGroup createBroadcastGroup(BroadcastGroupConfiguration config) throws Exception { BroadcastGroup group = broadcastGroups.get(config.getName()); if (group == null) { group = new BroadcastGroupImpl(nodeManager, config.getName(), config.getBroadcastPeriod(), scheduledExecutor, config.getEndpointFactory()); for (String connectorInfo : config.getConnectorInfos()) { TransportConfiguration connector = configuration.getConnectorConfigurations().get(connectorInfo); if (connector == null) { logWarnNoConnector(connectorInfo, config.getName()); return null; } group.addConnector(connector); } } if (group.size() == 0) { logWarnNoConnector(config.getConnectorInfos().toString(), group.getName()); return null; } broadcastGroups.put(config.getName(), group); return group; }
final String name = config.getName(); final String key = "broadcast" + name; ModelNode broadcastGroupModel = model.get(BROADCAST_GROUP, name);
final String name = config.getName(); final String key = "broadcast" + name; ModelNode broadcastGroupModel = model.get(BROADCAST_GROUP, name);
final List<BroadcastGroupConfiguration> newConfigs = new ArrayList<>(); for(final BroadcastGroupConfiguration config : broadcastGroups) { final String name = config.getName(); final String key = "broadcast" + name; if (commandDispatcherFactories.containsKey(key)) {
final List<BroadcastGroupConfiguration> newConfigs = new ArrayList<>(); for(final BroadcastGroupConfiguration config : broadcastGroups) { final String name = config.getName(); final String key = "broadcast" + name; if (commandDispatcherFactories.containsKey(key)) {
@Override @Before public void setUp() throws Exception { super.setUp(); TransportConfiguration connectorConfiguration = new TransportConfiguration(NETTY_CONNECTOR_FACTORY); List<String> connectorInfos = new ArrayList<>(); connectorInfos.add(connectorConfiguration.getName()); broadcastGroupConfig = new BroadcastGroupConfiguration().setName(RandomUtil.randomString()).setBroadcastPeriod(RandomUtil.randomPositiveInt()).setConnectorInfos(connectorInfos).setEndpointFactory(new UDPBroadcastEndpointFactory().setGroupAddress(getUDPDiscoveryAddress()).setGroupPort(getUDPDiscoveryPort()).setLocalBindPort(1198)); Configuration config = createDefaultInVMConfig().setJMXManagementEnabled(true).addConnectorConfiguration(connectorConfiguration.getName(), connectorConfiguration).addBroadcastGroupConfiguration(broadcastGroupConfig); server = addServer(ActiveMQServers.newActiveMQServer(config, mbeanServer, false)); server.start(); broadcastGroupControl = createManagementControl(broadcastGroupConfig.getName()); } }
@Test public void testAttributes() throws Exception { UDPBroadcastEndpointFactory udpCfg = (UDPBroadcastEndpointFactory) broadcastGroupConfig.getEndpointFactory(); Assert.assertEquals(broadcastGroupConfig.getName(), broadcastGroupControl.getName()); Assert.assertEquals(udpCfg.getGroupAddress(), broadcastGroupControl.getGroupAddress()); Assert.assertEquals(udpCfg.getGroupPort(), broadcastGroupControl.getGroupPort()); Assert.assertEquals(udpCfg.getLocalBindPort(), broadcastGroupControl.getLocalBindPort()); Assert.assertEquals(broadcastGroupConfig.getBroadcastPeriod(), broadcastGroupControl.getBroadcastPeriod()); Object[] connectorPairs = broadcastGroupControl.getConnectorPairs(); Assert.assertEquals(1, connectorPairs.length); String connectorPairData = (String) connectorPairs[0]; Assert.assertEquals(broadcastGroupConfig.getConnectorInfos().get(0), connectorPairData); String jsonString = broadcastGroupControl.getConnectorPairsAsJSON(); Assert.assertNotNull(jsonString); JsonArray array = JsonUtil.readJsonArray(jsonString); Assert.assertEquals(1, array.size()); Assert.assertEquals(broadcastGroupConfig.getConnectorInfos().get(0), array.getString(0)); Assert.assertTrue(broadcastGroupControl.isStarted()); }
for (BroadcastGroupConfiguration bc : conf.getBroadcastGroupConfigurations()) { UDPBroadcastEndpointFactory udpBc = (UDPBroadcastEndpointFactory) bc.getEndpointFactory(); if (bc.getName().equals("bg1")) { Assert.assertEquals("bg1", bc.getName()); Assert.assertEquals(10999, udpBc.getLocalBindPort()); Assert.assertEquals("192.168.0.120", udpBc.getGroupAddress()); Assert.assertEquals("connector1", bc.getConnectorInfos().get(0)); } else { Assert.assertEquals("bg2", bc.getName()); Assert.assertEquals(12999, udpBc.getLocalBindPort()); Assert.assertEquals("192.168.0.121", udpBc.getGroupAddress());