private void parseBroadcastGroupConfiguration(final Element e, final Configuration mainConfig) { String name = e.getAttribute("name"); List<String> connectorNames = new ArrayList<>(); NodeList children = e.getChildNodes(); for (int j = 0; j < children.getLength(); j++) { Node child = children.item(j); if (child.getNodeName().equals("connector-ref")) { String connectorName = getString(e, "connector-ref", null, Validators.NOT_NULL_OR_EMPTY); connectorNames.add(connectorName); } } long broadcastPeriod = getLong(e, "broadcast-period", ActiveMQDefaultConfiguration.getDefaultBroadcastPeriod(), Validators.GT_ZERO); String localAddress = getString(e, "local-bind-address", null, Validators.NO_CHECK); int localBindPort = getInteger(e, "local-bind-port", -1, Validators.MINUS_ONE_OR_GT_ZERO); String groupAddress = getString(e, "group-address", null, Validators.NO_CHECK); int groupPort = getInteger(e, "group-port", -1, Validators.MINUS_ONE_OR_GT_ZERO); String jgroupsFile = getString(e, "jgroups-file", null, Validators.NO_CHECK); String jgroupsChannel = getString(e, "jgroups-channel", null, Validators.NO_CHECK); // TODO: validate if either jgroups or UDP is being filled BroadcastEndpointFactory endpointFactory; if (jgroupsFile != null) { endpointFactory = new JGroupsFileBroadcastEndpointFactory().setFile(jgroupsFile).setChannelName(jgroupsChannel); } else { endpointFactory = new UDPBroadcastEndpointFactory().setGroupAddress(groupAddress).setGroupPort(groupPort).setLocalBindAddress(localAddress).setLocalBindPort(localBindPort); } BroadcastGroupConfiguration config = new BroadcastGroupConfiguration().setName(name).setBroadcastPeriod(broadcastPeriod).setConnectorInfos(connectorNames).setEndpointFactory(endpointFactory); mainConfig.getBroadcastGroupConfigurations().add(config); }
public static DiscoveryGroupConfiguration createDiscoveryGroupConfiguration(final String name, final DiscoveryGroupConfiguration config, final SocketBinding socketBinding) throws Exception { final String localAddress = socketBinding.getAddress().getHostAddress(); final String groupAddress = socketBinding.getMulticastAddress().getHostAddress(); final int groupPort = socketBinding.getMulticastPort(); final long refreshTimeout = config.getRefreshTimeout(); final long initialWaitTimeout = config.getDiscoveryInitialWaitTimeout(); final BroadcastEndpointFactory endpointFactory = new UDPBroadcastEndpointFactory() .setGroupAddress(groupAddress) .setGroupPort(groupPort) .setLocalBindAddress(localAddress) .setLocalBindPort(-1); return new DiscoveryGroupConfiguration() .setName(name) .setRefreshTimeout(refreshTimeout) .setDiscoveryInitialWaitTimeout(initialWaitTimeout) .setBroadcastEndpointFactory(endpointFactory); }
public static DiscoveryGroupConfiguration createDiscoveryGroupConfiguration(final String name, final DiscoveryGroupConfiguration config, final SocketBinding socketBinding) throws Exception { final String localAddress = socketBinding.getAddress().getHostAddress(); final String groupAddress = socketBinding.getMulticastAddress().getHostAddress(); final int groupPort = socketBinding.getMulticastPort(); final long refreshTimeout = config.getRefreshTimeout(); final long initialWaitTimeout = config.getDiscoveryInitialWaitTimeout(); final BroadcastEndpointFactory endpointFactory = new UDPBroadcastEndpointFactory() .setGroupAddress(groupAddress) .setGroupPort(groupPort) .setLocalBindAddress(localAddress) .setLocalBindPort(-1); return new DiscoveryGroupConfiguration() .setName(name) .setRefreshTimeout(refreshTimeout) .setDiscoveryInitialWaitTimeout(initialWaitTimeout) .setBroadcastEndpointFactory(endpointFactory); }
/** * This method is here just to facilitate creating the Broadcaster for this test */ protected BroadcastGroupImpl newBroadcast(final String nodeID, final String name, final InetAddress localAddress, int localPort, final InetAddress groupAddress, final int groupPort) throws Exception { return new BroadcastGroupImpl(new FakeNodeManager(nodeID), name, 0, null, new UDPBroadcastEndpointFactory().setGroupAddress(groupAddress.getHostAddress()).setGroupPort(groupPort).setLocalBindAddress(localAddress != null ? localAddress.getHostAddress() : "localhost").setLocalBindPort(localPort)); }
static BroadcastGroupConfiguration createBroadcastGroupConfiguration(final String name, final BroadcastGroupConfiguration config, final SocketBinding socketBinding) throws Exception { final String localAddress = socketBinding.getAddress().getHostAddress(); final String groupAddress = socketBinding.getMulticastAddress().getHostAddress(); final int localPort = socketBinding.getPort(); final int groupPort = socketBinding.getMulticastPort(); final long broadcastPeriod = config.getBroadcastPeriod(); final List<String> connectorRefs = config.getConnectorInfos(); final BroadcastEndpointFactory endpointFactory = new UDPBroadcastEndpointFactory() .setGroupAddress(groupAddress) .setGroupPort(groupPort) .setLocalBindAddress(localAddress) .setLocalBindPort(localPort); return new BroadcastGroupConfiguration() .setName(name) .setBroadcastPeriod(broadcastPeriod) .setConnectorInfos(connectorRefs) .setEndpointFactory(endpointFactory); }
static BroadcastGroupConfiguration createBroadcastGroupConfiguration(final String name, final BroadcastGroupConfiguration config, final SocketBinding socketBinding) throws Exception { final String localAddress = socketBinding.getAddress().getHostAddress(); final String groupAddress = socketBinding.getMulticastAddress().getHostAddress(); final int localPort = socketBinding.getPort(); final int groupPort = socketBinding.getMulticastPort(); final long broadcastPeriod = config.getBroadcastPeriod(); final List<String> connectorRefs = config.getConnectorInfos(); final BroadcastEndpointFactory endpointFactory = new UDPBroadcastEndpointFactory() .setGroupAddress(groupAddress) .setGroupPort(groupPort) .setLocalBindAddress(localAddress) .setLocalBindPort(localPort); return new BroadcastGroupConfiguration() .setName(name) .setBroadcastPeriod(broadcastPeriod) .setConnectorInfos(connectorRefs) .setEndpointFactory(endpointFactory); }
private void createDiscoveryFactoryUDP() throws Exception { // Deploy a connection factory with discovery List<String> bindings = new ArrayList<>(); bindings.add("MyConnectionFactory"); final String groupAddress = getUDPDiscoveryAddress(); final int port = getUDPDiscoveryPort(); String localBindAddress = getLocalHost().getHostAddress(); UDPBroadcastEndpointFactory config = new UDPBroadcastEndpointFactory().setGroupAddress(groupAddress).setGroupPort(port).setLocalBindAddress(localBindAddress).setLocalBindPort(8580); DiscoveryGroupConfiguration dcConfig = new DiscoveryGroupConfiguration().setName("dg1").setRefreshTimeout(5000).setDiscoveryInitialWaitTimeout(5000).setBroadcastEndpointFactory(config); jmsServer.getActiveMQServer().getConfiguration().getDiscoveryGroupConfigurations().put(dcConfig.getName(), dcConfig); jmsServer.createConnectionFactory("MyConnectionFactory", false, JMSFactoryType.CF, dcConfig.getName(), "/MyConnectionFactory"); }
private void parseDiscoveryGroupConfiguration(final Element e, final Configuration mainConfig) { String name = e.getAttribute("name"); long discoveryInitialWaitTimeout = getLong(e, "initial-wait-timeout", ActiveMQClient.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT, Validators.GT_ZERO); long refreshTimeout = getLong(e, "refresh-timeout", ActiveMQDefaultConfiguration.getDefaultBroadcastRefreshTimeout(), Validators.GT_ZERO); String localBindAddress = getString(e, "local-bind-address", null, Validators.NO_CHECK); int localBindPort = getInteger(e, "local-bind-port", -1, Validators.MINUS_ONE_OR_GT_ZERO); String groupAddress = getString(e, "group-address", null, Validators.NO_CHECK); int groupPort = getInteger(e, "group-port", -1, Validators.MINUS_ONE_OR_GT_ZERO); String jgroupsFile = getString(e, "jgroups-file", null, Validators.NO_CHECK); String jgroupsChannel = getString(e, "jgroups-channel", null, Validators.NO_CHECK); // TODO: validate if either jgroups or UDP is being filled BroadcastEndpointFactory endpointFactory; if (jgroupsFile != null) { endpointFactory = new JGroupsFileBroadcastEndpointFactory().setFile(jgroupsFile).setChannelName(jgroupsChannel); } else { endpointFactory = new UDPBroadcastEndpointFactory().setGroupAddress(groupAddress).setGroupPort(groupPort).setLocalBindAddress(localBindAddress).setLocalBindPort(localBindPort); } DiscoveryGroupConfiguration config = new DiscoveryGroupConfiguration().setName(name).setRefreshTimeout(refreshTimeout).setDiscoveryInitialWaitTimeout(discoveryInitialWaitTimeout).setBroadcastEndpointFactory(endpointFactory); if (mainConfig.getDiscoveryGroupConfigurations().containsKey(name)) { ActiveMQServerLogger.LOGGER.discoveryGroupAlreadyDeployed(name); return; } else { mainConfig.getDiscoveryGroupConfigurations().put(name, config); } }
private void startServer() throws Exception { liveTC = new TransportConfiguration(INVM_CONNECTOR_FACTORY); Map<String, TransportConfiguration> connectors = new HashMap<>(); connectors.put(liveTC.getName(), liveTC); List<String> connectorNames = new ArrayList<>(); connectorNames.add(liveTC.getName()); Configuration liveConf = createBasicConfig().addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY)).setConnectorConfigurations(connectors).setHAPolicyConfiguration(new SharedStoreMasterPolicyConfiguration()); final long broadcastPeriod = 250; final String bcGroupName = "bc1"; final int localBindPort = 5432; BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration().setName(bcGroupName).setBroadcastPeriod(broadcastPeriod).setConnectorInfos(connectorNames).setEndpointFactory(new UDPBroadcastEndpointFactory().setGroupAddress(groupAddress).setGroupPort(groupPort).setLocalBindPort(localBindPort)); List<BroadcastGroupConfiguration> bcConfigs1 = new ArrayList<>(); bcConfigs1.add(bcConfig1); liveConf.setBroadcastGroupConfigurations(bcConfigs1); liveService = addServer(ActiveMQServers.newActiveMQServer(liveConf, false)); liveService.start(); }
private void startServer() throws Exception { liveTC = new TransportConfiguration(INVM_CONNECTOR_FACTORY); Map<String, TransportConfiguration> connectors = new HashMap<>(); connectors.put(liveTC.getName(), liveTC); List<String> connectorNames = new ArrayList<>(); connectorNames.add(liveTC.getName()); Map<String, Object> params = new HashMap<>(); params.put(org.apache.activemq.artemis.core.remoting.impl.invm.TransportConstants.SERVER_ID_PROP_NAME, 1); Configuration liveConf = createBasicConfig().addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY)).addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, params)).addAcceptorConfiguration(new TransportConfiguration(NETTY_ACCEPTOR_FACTORY)).setConnectorConfigurations(connectors).setHAPolicyConfiguration(new SharedStoreMasterPolicyConfiguration()).setSecurityEnabled(true); final long broadcastPeriod = 250; final String bcGroupName = "bc1"; final int localBindPort = 5432; BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration().setName(bcGroupName).setBroadcastPeriod(broadcastPeriod).setConnectorInfos(connectorNames).setEndpointFactory(new UDPBroadcastEndpointFactory().setGroupAddress(groupAddress).setGroupPort(groupPort).setLocalBindPort(localBindPort)); List<BroadcastGroupConfiguration> bcConfigs1 = new ArrayList<>(); bcConfigs1.add(bcConfig1); liveConf.setBroadcastGroupConfigurations(bcConfigs1); liveService = addServer(ActiveMQServers.newActiveMQServer(liveConf, false)); ((ActiveMQJAASSecurityManager) liveService.getSecurityManager()).getConfiguration().addUser("guest", "guest"); ((ActiveMQJAASSecurityManager) liveService.getSecurityManager()).getConfiguration().setDefaultUser("guest"); liveService.start(); }
@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()); } }
private void startServer() throws Exception { liveTC = new TransportConfiguration(INVM_CONNECTOR_FACTORY); final long broadcastPeriod = 250; final String bcGroupName = "bc1"; final int localBindPort = 5432; BroadcastGroupConfiguration broadcastGroupConfiguration = new BroadcastGroupConfiguration().setName(bcGroupName).setBroadcastPeriod(broadcastPeriod).setConnectorInfos(Arrays.asList(liveTC.getName())).setEndpointFactory(new UDPBroadcastEndpointFactory().setGroupAddress(getUDPDiscoveryAddress()).setGroupPort(getUDPDiscoveryPort()).setLocalBindPort(localBindPort)); Configuration liveConf = createDefaultInVMConfig().addConnectorConfiguration(liveTC.getName(), liveTC).setHAPolicyConfiguration(new SharedStoreMasterPolicyConfiguration()).addBroadcastGroupConfiguration(broadcastGroupConfiguration); liveService = createServer(false, liveConf); liveService.start(); } }
protected BroadcastEndpointFactory createBroadcastEndpointFactory(final ConnectionFactoryProperties overrideProperties) { String discoveryAddress = overrideProperties.getDiscoveryAddress() != null ? overrideProperties.getDiscoveryAddress() : getDiscoveryAddress(); if (discoveryAddress != null) { Integer discoveryPort = overrideProperties.getDiscoveryPort() != null ? overrideProperties.getDiscoveryPort() : getDiscoveryPort(); if (discoveryPort == null) { discoveryPort = ActiveMQClient.DEFAULT_DISCOVERY_PORT; } String localBindAddress = overrideProperties.getDiscoveryLocalBindAddress() != null ? overrideProperties.getDiscoveryLocalBindAddress() : raProperties.getDiscoveryLocalBindAddress(); return new UDPBroadcastEndpointFactory().setGroupAddress(discoveryAddress).setGroupPort(discoveryPort).setLocalBindAddress(localBindAddress).setLocalBindPort(-1); } String jgroupsChannel = overrideProperties.getJgroupsChannelName() != null ? overrideProperties.getJgroupsChannelName() : getJgroupsChannelName(); String jgroupsLocatorClassName = raProperties.getJgroupsChannelLocatorClass(); if (jgroupsLocatorClassName != null) { String jchannelRefName = raProperties.getJgroupsChannelRefName(); JChannel jchannel = ActiveMQRaUtils.locateJGroupsChannel(jgroupsLocatorClassName, jchannelRefName); return new ChannelBroadcastEndpointFactory(jchannel, jgroupsChannel); } String jgroupsFileName = overrideProperties.getJgroupsFile() != null ? overrideProperties.getJgroupsFile() : getJgroupsFile(); if (jgroupsFileName != null) { return new JGroupsFileBroadcastEndpointFactory().setChannelName(jgroupsChannel).setFile(jgroupsFileName); } return null; }
protected BroadcastEndpointFactory createBroadcastEndpointFactory(final ConnectionFactoryProperties overrideProperties) { String discoveryAddress = overrideProperties.getDiscoveryAddress() != null ? overrideProperties.getDiscoveryAddress() : getDiscoveryAddress(); if (discoveryAddress != null) { Integer discoveryPort = overrideProperties.getDiscoveryPort() != null ? overrideProperties.getDiscoveryPort() : getDiscoveryPort(); if (discoveryPort == null) { discoveryPort = ActiveMQClient.DEFAULT_DISCOVERY_PORT; } String localBindAddress = overrideProperties.getDiscoveryLocalBindAddress() != null ? overrideProperties.getDiscoveryLocalBindAddress() : raProperties.getDiscoveryLocalBindAddress(); return new UDPBroadcastEndpointFactory().setGroupAddress(discoveryAddress).setGroupPort(discoveryPort).setLocalBindAddress(localBindAddress).setLocalBindPort(-1); } String jgroupsChannel = overrideProperties.getJgroupsChannelName() != null ? overrideProperties.getJgroupsChannelName() : getJgroupsChannelName(); String jgroupsLocatorClassName = raProperties.getJgroupsChannelLocatorClass(); if (jgroupsLocatorClassName != null) { String jchannelRefName = raProperties.getJgroupsChannelRefName(); JChannel jchannel = ActiveMQRaUtils.locateJGroupsChannel(jgroupsLocatorClassName, jchannelRefName); return new ChannelBroadcastEndpointFactory(jchannel, jgroupsChannel); } String jgroupsFileName = overrideProperties.getJgroupsFile() != null ? overrideProperties.getJgroupsFile() : getJgroupsFile(); if (jgroupsFileName != null) { return new JGroupsFileBroadcastEndpointFactory().setChannelName(jgroupsChannel).setFile(jgroupsFileName); } return null; }