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; }
@Test public void testInequality() throws Exception { ConnectionFactoryProperties cfp1 = new ConnectionFactoryProperties(); List<String> connectorClassNames1 = new ArrayList<>(); connectorClassNames1.add("myConnector"); cfp1.setParsedConnectorClassNames(connectorClassNames1); List<Map<String, Object>> connectionParameters1 = new ArrayList<>(); Map<String, Object> params1 = new HashMap<>(); params1.put("port", "0"); connectionParameters1.add(params1); cfp1.setParsedConnectionParameters(connectionParameters1); cfp1.setAutoGroup(true); ConnectionFactoryProperties cfp2 = new ConnectionFactoryProperties(); List<String> connectorClassNames2 = new ArrayList<>(); connectorClassNames2.add("myConnector"); cfp2.setParsedConnectorClassNames(connectorClassNames2); List<Map<String, Object>> connectionParameters2 = new ArrayList<>(); Map<String, Object> params2 = new HashMap<>(); params2.put("port", "1"); connectionParameters2.add(params2); cfp2.setParsedConnectionParameters(connectionParameters2); cfp2.setAutoGroup(true); assertFalse(cfp1.equals(cfp2)); }
private void setParams(final ActiveMQConnectionFactory cf, final ConnectionFactoryProperties overrideProperties) { Boolean val = overrideProperties.isAutoGroup() != null ? overrideProperties.isAutoGroup() : raProperties.isAutoGroup(); if (val != null) { cf.setAutoGroup(val); val = overrideProperties.isBlockOnAcknowledge() != null ? overrideProperties.isBlockOnAcknowledge() : raProperties.isBlockOnAcknowledge(); if (val != null) { cf.setBlockOnAcknowledge(val); val = overrideProperties.isBlockOnNonDurableSend() != null ? overrideProperties.isBlockOnNonDurableSend() : raProperties.isBlockOnNonDurableSend(); if (val != null) { cf.setBlockOnNonDurableSend(val); val = overrideProperties.isBlockOnDurableSend() != null ? overrideProperties.isBlockOnDurableSend() : raProperties.isBlockOnDurableSend(); if (val != null) { cf.setBlockOnDurableSend(val); val = overrideProperties.isPreAcknowledge() != null ? overrideProperties.isPreAcknowledge() : raProperties.isPreAcknowledge(); if (val != null) { cf.setPreAcknowledge(val); val = overrideProperties.isUseGlobalPools() != null ? overrideProperties.isUseGlobalPools() : raProperties.isUseGlobalPools(); if (val != null) { cf.setUseGlobalPools(val); val = overrideProperties.isCacheLargeMessagesClient() != null ? overrideProperties.isCacheLargeMessagesClient() : raProperties.isCacheLargeMessagesClient(); if (val != null) { cf.setCacheLargeMessagesClient(val); val = overrideProperties.isCompressLargeMessage() != null ? overrideProperties.isCompressLargeMessage() : raProperties.isCompressLargeMessage();
ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ra.setConnectorClassName(InVMConnectorFactory.class.getName()); ConnectionFactoryProperties connectionFactoryProperties = new ConnectionFactoryProperties(); connectionFactoryProperties.setAutoGroup(!ActiveMQClient.DEFAULT_AUTO_GROUP); connectionFactoryProperties.setBlockOnAcknowledge(!ActiveMQClient.DEFAULT_BLOCK_ON_ACKNOWLEDGE); connectionFactoryProperties.setBlockOnNonDurableSend(!ActiveMQClient.DEFAULT_BLOCK_ON_NON_DURABLE_SEND); connectionFactoryProperties.setBlockOnDurableSend(!ActiveMQClient.DEFAULT_BLOCK_ON_DURABLE_SEND); connectionFactoryProperties.setCallTimeout(1L); connectionFactoryProperties.setClientFailureCheckPeriod(2L); connectionFactoryProperties.setClientID("myid"); connectionFactoryProperties.setConnectionLoadBalancingPolicyClassName("mlbcn"); connectionFactoryProperties.setConnectionTTL(3L); connectionFactoryProperties.setConsumerMaxRate(4); connectionFactoryProperties.setConsumerWindowSize(5); connectionFactoryProperties.setDiscoveryInitialWaitTimeout(6L); connectionFactoryProperties.setDiscoveryRefreshTimeout(7L); connectionFactoryProperties.setDupsOKBatchSize(8); connectionFactoryProperties.setMinLargeMessageSize(10); connectionFactoryProperties.setPreAcknowledge(!ActiveMQClient.DEFAULT_PRE_ACKNOWLEDGE); connectionFactoryProperties.setProducerMaxRate(11); connectionFactoryProperties.setConfirmationWindowSize(12); connectionFactoryProperties.setReconnectAttempts(13); connectionFactoryProperties.setRetryInterval(14L); connectionFactoryProperties.setRetryIntervalMultiplier(15d); connectionFactoryProperties.setScheduledThreadPoolMaxSize(16); connectionFactoryProperties.setThreadPoolMaxSize(17); connectionFactoryProperties.setTransactionBatchSize(18); connectionFactoryProperties.setUseGlobalPools(!ActiveMQClient.DEFAULT_USE_GLOBAL_POOLS); ActiveMQConnectionFactory factory = ra.getConnectionFactory(connectionFactoryProperties);
@Test public void testCreateConnectionFactoryOverrideDiscovery() throws Exception { ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ra.setConnectorClassName(InVMConnectorFactory.class.getName()); ConnectionFactoryProperties connectionFactoryProperties = new ConnectionFactoryProperties(); connectionFactoryProperties.setDiscoveryAddress("myhost"); connectionFactoryProperties.setDiscoveryPort(5678); connectionFactoryProperties.setDiscoveryLocalBindAddress("newAddress"); ActiveMQConnectionFactory factory = ra.getConnectionFactory(connectionFactoryProperties); ActiveMQConnectionFactory defaultFactory = ra.getDefaultActiveMQConnectionFactory(); Assert.assertNotSame(factory, defaultFactory); DiscoveryGroupConfiguration dc = factory.getServerLocator().getDiscoveryGroupConfiguration(); UDPBroadcastEndpointFactory udpDg = (UDPBroadcastEndpointFactory) dc.getBroadcastEndpointFactory(); Assert.assertEquals(udpDg.getLocalBindAddress(), "newAddress"); Assert.assertEquals(udpDg.getGroupAddress(), "myhost"); Assert.assertEquals(udpDg.getGroupPort(), 5678); }
@Override protected BroadcastEndpointFactory createBroadcastEndpointFactory(ConnectionFactoryProperties overrideProperties) { String clusterName = overrideProperties.getJgroupsChannelName() != null ? overrideProperties.getJgroupsChannelName() : getJgroupsChannelName(); if (clusterName != null) { String channelRefName = this.getProperties().getJgroupsChannelRefName(); String[] split = channelRefName.split("/"); String serverName = split[0]; String key = split[1]; String pcf = null; if (key.indexOf(':') >= 0) { split = key.split(":"); pcf = split[0]; key = split[1]; } if (serverName != null && !serverName.isEmpty()) { ActiveMQServerService service = (ActiveMQServerService) currentServiceContainer().getService(MessagingServices.getActiveMQServiceName(serverName)).getService(); return new CommandDispatcherBroadcastEndpointFactory(service.getCommandDispatcherFactory(key), clusterName); } assert pcf != null; ExternalPooledConnectionFactoryService service = (ExternalPooledConnectionFactoryService) currentServiceContainer().getService(JMSServices.getPooledConnectionFactoryBaseServiceName(JBOSS_MESSAGING_ACTIVEMQ).append(pcf)).getService(); return new CommandDispatcherBroadcastEndpointFactory(service.getCommandDispatcherFactory(key), clusterName); } return super.createBroadcastEndpointFactory(overrideProperties); }
ra.setConnectorClassName(NETTY_CONNECTOR_FACTORY + "," + INVM_CONNECTOR_FACTORY + "," + NETTY_CONNECTOR_FACTORY); ra.setConnectionParameters("host=host1;port=61616, serverid=0, host=host2;port=61617"); ConnectionFactoryProperties overrideProperties = new ConnectionFactoryProperties(); ArrayList<String> value = new ArrayList<>(); value.add(INVM_CONNECTOR_FACTORY); value.add(NETTY_CONNECTOR_FACTORY); value.add(INVM_CONNECTOR_FACTORY); overrideProperties.setParsedConnectorClassNames(value); ArrayList<Map<String, Object>> connectionParameters = new ArrayList<>(); Map<String, Object> map1 = new HashMap<>(); map3.put("serverid", "1"); connectionParameters.add(map3); overrideProperties.setParsedConnectionParameters(connectionParameters); ActiveMQConnectionFactory factory = ra.getConnectionFactory(overrideProperties); TransportConfiguration[] configurations = factory.getServerLocator().getStaticTransportConfigurations();
@Test public void testActivationDeserializationParameters() throws Exception { ActiveMQServer server = createServer(false); try { server.start(); ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ra.setConnectorClassName(INVM_CONNECTOR_FACTORY); ra.setUserName("userGlobal"); ra.setPassword("passwordGlobal"); ra.setDeserializationWhiteList("a.b.c.d.e"); ra.setDeserializationBlackList("f.g.h.i.j"); ra.start(new BootstrapContext()); ActiveMQConnectionFactory factory = ra.getDefaultActiveMQConnectionFactory(); assertEquals("a.b.c.d.e", factory.getDeserializationWhiteList()); assertEquals("f.g.h.i.j", factory.getDeserializationBlackList()); ConnectionFactoryProperties overrides = new ConnectionFactoryProperties(); overrides.setDeserializationWhiteList("k.l.m.n"); overrides.setDeserializationBlackList("o.p.q.r"); factory = ra.newConnectionFactory(overrides); assertEquals("k.l.m.n", factory.getDeserializationWhiteList()); assertEquals("o.p.q.r", factory.getDeserializationBlackList()); ra.stop(); } finally { server.stop(); } }
@Test public void testCreateConnectionFactoryOverrideConnector() throws Exception { ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ra.setConnectorClassName(InVMConnectorFactory.class.getName()); ConnectionFactoryProperties connectionFactoryProperties = new ConnectionFactoryProperties(); ArrayList<String> value = new ArrayList<>(); value.add(NettyConnectorFactory.class.getName()); connectionFactoryProperties.setParsedConnectorClassNames(value); ActiveMQConnectionFactory factory = ra.getConnectionFactory(connectionFactoryProperties); ActiveMQConnectionFactory defaultFactory = ra.getDefaultActiveMQConnectionFactory(); Assert.assertNotSame(factory, defaultFactory); }
if (o == null || getClass() != o.getClass()) return false; if (!super.equals(o)) return false;
@Test public void testCreateConnectionFactoryThrowsException() throws Exception { ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ConnectionFactoryProperties connectionFactoryProperties = new ConnectionFactoryProperties(); try { ra.getConnectionFactory(connectionFactoryProperties); Assert.fail("should throw exception"); } catch (IllegalArgumentException e) { // pass } }
@Override protected BroadcastEndpointFactory createBroadcastEndpointFactory(ConnectionFactoryProperties overrideProperties) { String clusterName = overrideProperties.getJgroupsChannelName() != null ? overrideProperties.getJgroupsChannelName() : getJgroupsChannelName(); if (clusterName != null) { String channelRefName = this.getProperties().getJgroupsChannelRefName(); String[] split = channelRefName.split("/"); String serverName = split[0]; String key = split[1]; String pcf = null; if (key.indexOf(':') >= 0) { split = key.split(":"); pcf = split[0]; key = split[1]; } if (serverName != null && !serverName.isEmpty()) { ActiveMQServerService service = (ActiveMQServerService) currentServiceContainer().getService(MessagingServices.getActiveMQServiceName(serverName)).getService(); return new CommandDispatcherBroadcastEndpointFactory(service.getCommandDispatcherFactory(key), clusterName); } assert pcf != null; ExternalPooledConnectionFactoryService service = (ExternalPooledConnectionFactoryService) currentServiceContainer().getService(JMSServices.getPooledConnectionFactoryBaseServiceName(JBOSS_MESSAGING_ACTIVEMQ).append(pcf)).getService(); return new CommandDispatcherBroadcastEndpointFactory(service.getCommandDispatcherFactory(key), clusterName); } return super.createBroadcastEndpointFactory(overrideProperties); }
@Test public void testCreateConnectionFactoryMultipleConnectorsOverride() { ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ra.setConnectorClassName(NETTY_CONNECTOR_FACTORY + "," + INVM_CONNECTOR_FACTORY + "," + NETTY_CONNECTOR_FACTORY); ConnectionFactoryProperties overrideProperties = new ConnectionFactoryProperties(); ArrayList<String> value = new ArrayList<>(); value.add(INVM_CONNECTOR_FACTORY); value.add(NETTY_CONNECTOR_FACTORY); value.add(INVM_CONNECTOR_FACTORY); overrideProperties.setParsedConnectorClassNames(value); ActiveMQConnectionFactory factory = ra.getConnectionFactory(overrideProperties); TransportConfiguration[] configurations = factory.getServerLocator().getStaticTransportConfigurations(); assertNotNull(configurations); assertEquals(3, configurations.length); assertEquals(INVM_CONNECTOR_FACTORY, configurations[0].getFactoryClassName()); assertEquals(1, configurations[0].getParams().size()); assertEquals(NETTY_CONNECTOR_FACTORY, configurations[1].getFactoryClassName()); assertEquals(2, configurations[1].getParams().size()); assertEquals(INVM_CONNECTOR_FACTORY, configurations[2].getFactoryClassName()); assertEquals(1, configurations[2].getParams().size()); }
if (o == null || getClass() != o.getClass()) return false; if (!super.equals(o)) return false;
@Test public void testCreateConnectionFactoryMultipleConnectorsAndParams() { ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ra.setConnectorClassName(NETTY_CONNECTOR_FACTORY + "," + INVM_CONNECTOR_FACTORY + "," + NETTY_CONNECTOR_FACTORY); ra.setConnectionParameters("host=host1;port=61616, serverid=0, host=host2;port=61617"); ActiveMQConnectionFactory factory = ra.getConnectionFactory(new ConnectionFactoryProperties()); TransportConfiguration[] configurations = factory.getServerLocator().getStaticTransportConfigurations(); assertNotNull(configurations); assertEquals(3, configurations.length); assertEquals(NETTY_CONNECTOR_FACTORY, configurations[0].getFactoryClassName()); assertEquals(2, configurations[0].getParams().size()); assertEquals("host1", configurations[0].getParams().get("host")); assertEquals("61616", configurations[0].getParams().get("port")); assertEquals(INVM_CONNECTOR_FACTORY, configurations[1].getFactoryClassName()); assertEquals(1, configurations[1].getParams().size()); assertEquals("0", configurations[1].getParams().get("serverid")); assertEquals(NETTY_CONNECTOR_FACTORY, configurations[2].getFactoryClassName()); assertEquals(2, configurations[2].getParams().size()); assertEquals("host2", configurations[2].getParams().get("host")); assertEquals("61617", configurations[2].getParams().get("port")); }
private void setParams(final ActiveMQConnectionFactory cf, final ConnectionFactoryProperties overrideProperties) { Boolean val = overrideProperties.isAutoGroup() != null ? overrideProperties.isAutoGroup() : raProperties.isAutoGroup(); if (val != null) { cf.setAutoGroup(val); val = overrideProperties.isBlockOnAcknowledge() != null ? overrideProperties.isBlockOnAcknowledge() : raProperties.isBlockOnAcknowledge(); if (val != null) { cf.setBlockOnAcknowledge(val); val = overrideProperties.isBlockOnNonDurableSend() != null ? overrideProperties.isBlockOnNonDurableSend() : raProperties.isBlockOnNonDurableSend(); if (val != null) { cf.setBlockOnNonDurableSend(val); val = overrideProperties.isBlockOnDurableSend() != null ? overrideProperties.isBlockOnDurableSend() : raProperties.isBlockOnDurableSend(); if (val != null) { cf.setBlockOnDurableSend(val); val = overrideProperties.isPreAcknowledge() != null ? overrideProperties.isPreAcknowledge() : raProperties.isPreAcknowledge(); if (val != null) { cf.setPreAcknowledge(val); val = overrideProperties.isUseGlobalPools() != null ? overrideProperties.isUseGlobalPools() : raProperties.isUseGlobalPools(); if (val != null) { cf.setUseGlobalPools(val); val = overrideProperties.isCacheLargeMessagesClient() != null ? overrideProperties.isCacheLargeMessagesClient() : raProperties.isCacheLargeMessagesClient(); if (val != null) { cf.setCacheLargeMessagesClient(val); val = overrideProperties.isCompressLargeMessage() != null ? overrideProperties.isCompressLargeMessage() : raProperties.isCompressLargeMessage();
@Test public void testInequality2() throws Exception { ConnectionFactoryProperties cfp1 = new ConnectionFactoryProperties(); List<String> connectorClassNames1 = new ArrayList<>(); connectorClassNames1.add("myConnector"); cfp1.setParsedConnectorClassNames(connectorClassNames1); List<Map<String, Object>> connectionParameters1 = new ArrayList<>(); Map<String, Object> params1 = new HashMap<>(); params1.put("port", "0"); connectionParameters1.add(params1); cfp1.setParsedConnectionParameters(connectionParameters1); cfp1.setAutoGroup(true); ConnectionFactoryProperties cfp2 = new ConnectionFactoryProperties(); List<String> connectorClassNames2 = new ArrayList<>(); connectorClassNames2.add("myConnector2"); cfp2.setParsedConnectorClassNames(connectorClassNames2); List<Map<String, Object>> connectionParameters2 = new ArrayList<>(); Map<String, Object> params2 = new HashMap<>(); params2.put("port", "0"); connectionParameters2.add(params2); cfp2.setParsedConnectionParameters(connectionParameters2); cfp2.setAutoGroup(true); assertFalse(cfp1.equals(cfp2)); } }
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; }
@Test public void testCreateConnectionFactoryMultipleConnectors() { ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ra.setConnectorClassName(NETTY_CONNECTOR_FACTORY + "," + INVM_CONNECTOR_FACTORY + "," + NETTY_CONNECTOR_FACTORY); ActiveMQConnectionFactory factory = ra.getConnectionFactory(new ConnectionFactoryProperties()); TransportConfiguration[] configurations = factory.getServerLocator().getStaticTransportConfigurations(); assertNotNull(configurations); assertEquals(3, configurations.length); assertEquals(NETTY_CONNECTOR_FACTORY, configurations[0].getFactoryClassName()); assertEquals(2, configurations[0].getParams().size()); assertEquals(INVM_CONNECTOR_FACTORY, configurations[1].getFactoryClassName()); assertEquals(1, configurations[1].getParams().size()); assertEquals(NETTY_CONNECTOR_FACTORY, configurations[2].getFactoryClassName()); assertEquals(2, configurations[2].getParams().size()); }
@Test public void testEquality() throws Exception { ConnectionFactoryProperties cfp1 = new ConnectionFactoryProperties(); List<String> connectorClassNames1 = new ArrayList<>(); connectorClassNames1.add("myConnector"); cfp1.setParsedConnectorClassNames(connectorClassNames1); List<Map<String, Object>> connectionParameters1 = new ArrayList<>(); Map<String, Object> params1 = new HashMap<>(); params1.put("port", "0"); connectionParameters1.add(params1); cfp1.setParsedConnectionParameters(connectionParameters1); cfp1.setAutoGroup(true); ConnectionFactoryProperties cfp2 = new ConnectionFactoryProperties(); List<String> connectorClassNames2 = new ArrayList<>(); connectorClassNames2.add("myConnector"); cfp2.setParsedConnectorClassNames(connectorClassNames2); List<Map<String, Object>> connectionParameters2 = new ArrayList<>(); Map<String, Object> params2 = new HashMap<>(); params2.put("port", "0"); connectionParameters2.add(params2); cfp2.setParsedConnectionParameters(connectionParameters2); cfp2.setAutoGroup(true); assertTrue(cfp1.equals(cfp2)); }