/** * @return */ @Override protected ActiveMQResourceAdapter newResourceAdapter() { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); return qResourceAdapter; }
protected ActiveMQResourceAdapter newResourceAdapter() { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); return qResourceAdapter; }
@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); }
@Test public void test2DefaultConnectionFactorySame() throws Exception { ActiveMQResourceAdapter ra = new ActiveMQResourceAdapter(); ra.setConnectorClassName(InVMConnectorFactory.class.getName()); ActiveMQConnectionFactory factory = ra.getDefaultActiveMQConnectionFactory(); ActiveMQConnectionFactory factory2 = ra.getDefaultActiveMQConnectionFactory(); Assert.assertEquals(factory, factory2); }
@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()); }
@Test public void testStartStop() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); CountDownLatch latch = new CountDownLatch(1); DummyMessageEndpoint endpoint = new DummyMessageEndpoint(latch); DummyMessageEndpointFactory endpointFactory = new DummyMessageEndpointFactory(endpoint, false); qResourceAdapter.endpointActivation(endpointFactory, spec); qResourceAdapter.stop(); assertTrue(endpoint.released); }
@Override @Before public void setUp() throws Exception { useDummyTransactionManager(); super.setUp(); resourceAdapter = new ActiveMQResourceAdapter(); resourceAdapter.setEntries("[\"java://jmsXA\"]"); resourceAdapter.setConnectorClassName(InVMConnectorFactory.class.getName()); MyBootstrapContext ctx = new MyBootstrapContext(); resourceAdapter.start(ctx); mcf = new ActiveMQRAManagedConnectionFactory(); mcf.setResourceAdapter(resourceAdapter); qraConnectionFactory = new ActiveMQRAConnectionFactoryImpl(mcf, qraConnectionManager); }
@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")); }
@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 testResourceAdapterSetupOverrideCFParams() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); qResourceAdapter.setConnectionParameters("server-id=0"); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); // now override the connector class spec.setConnectorClassName(NETTY_CONNECTOR_FACTORY); spec.setConnectionParameters("port=61616"); DummyMessageEndpoint endpoint = new DummyMessageEndpoint(new CountDownLatch(1)); DummyMessageEndpointFactory endpointFactory = new DummyMessageEndpointFactory(endpoint, false); qResourceAdapter.endpointActivation(endpointFactory, spec); //make sure 2 recovery resources, one is default, one is in activation. assertEquals(2, qResourceAdapter.getRecoveryManager().getResources().size()); qResourceAdapter.stop(); assertTrue(endpoint.released); }
@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 @Before public void setUp() throws Exception { useDummyTransactionManager(); super.setUp(); ((ActiveMQJAASSecurityManager) server.getSecurityManager()).getConfiguration().addUser("testuser", "testpassword"); ((ActiveMQJAASSecurityManager) server.getSecurityManager()).getConfiguration().addUser("guest", "guest"); ((ActiveMQJAASSecurityManager) server.getSecurityManager()).getConfiguration().setDefaultUser("guest"); ((ActiveMQJAASSecurityManager) server.getSecurityManager()).getConfiguration().addRole("testuser", "arole"); ((ActiveMQJAASSecurityManager) server.getSecurityManager()).getConfiguration().addRole("guest", "arole"); Role role = new Role("arole", true, true, true, true, true, true, true, true, true, true); Set<Role> roles = new HashSet<>(); roles.add(role); server.getSecurityRepository().addMatch(MDBQUEUEPREFIXED, roles); resourceAdapter = new ActiveMQResourceAdapter(); resourceAdapter.setEntries("[\"java://jmsXA\"]"); resourceAdapter.setConnectorClassName(InVMConnectorFactory.class.getName()); MyBootstrapContext ctx = new MyBootstrapContext(); resourceAdapter.start(ctx); mcf = new ActiveMQRAManagedConnectionFactory(); mcf.setResourceAdapter(resourceAdapter); qraConnectionFactory = new ActiveMQRAConnectionFactoryImpl(mcf, qraConnectionManager); }
@Test public void testResourceAdapterSetupOverrideNoCFParams() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); qResourceAdapter.setConnectionParameters("server-id=0"); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); CountDownLatch latch = new CountDownLatch(1); DummyMessageEndpoint endpoint = new DummyMessageEndpoint(latch); DummyMessageEndpointFactory endpointFactory = new DummyMessageEndpointFactory(endpoint, false); qResourceAdapter.endpointActivation(endpointFactory, spec); qResourceAdapter.stop(); assertFalse(spec.isHasBeenUpdated()); assertTrue(endpoint.released); }
@Test public void testMaxSessions() throws Exception { ActiveMQResourceAdapter qResourceAdapter = newResourceAdapter(); MyBootstrapContext ctx = new MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setMaxSession(1); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); CountDownLatch latch = new CountDownLatch(1); DummyMessageEndpoint endpoint = new DummyMessageEndpoint(latch); DummyMessageEndpointFactory endpointFactory = new DummyMessageEndpointFactory(endpoint, false); qResourceAdapter.endpointActivation(endpointFactory, spec); Binding binding = server.getPostOffice().getBinding(MDBQUEUEPREFIXEDSIMPLE); assertEquals(((LocalQueueBinding) binding).getQueue().getConsumerCount(), 1); qResourceAdapter.endpointDeactivation(endpointFactory, spec); qResourceAdapter.stop(); }
@Test public void testResourceAdapterSetupNoHADefault() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); qResourceAdapter.setConnectionParameters("server-id=0"); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); ActiveMQConnectionFactory fac = qResourceAdapter.getConnectionFactory(spec); assertFalse(fac.isHA()); qResourceAdapter.stop(); assertFalse(spec.isHasBeenUpdated()); }
@Test public void testResourceAdapterSetupReconnectAttemptDefault() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); qResourceAdapter.setConnectionParameters("server-id=0"); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); ActiveMQConnectionFactory fac = qResourceAdapter.getConnectionFactory(spec); assertEquals(-1, fac.getReconnectAttempts()); qResourceAdapter.stop(); assertFalse(spec.isHasBeenUpdated()); }
@Test public void testResourceAdapterSetupHAOverride() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); qResourceAdapter.setConnectionParameters("server-id=0"); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); spec.setHA(true); ActiveMQConnectionFactory fac = qResourceAdapter.getConnectionFactory(spec); assertTrue(fac.isHA()); qResourceAdapter.stop(); assertTrue(spec.isHasBeenUpdated()); }
@Test public void testResourceAdapterSetupNoHAOverride() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); qResourceAdapter.setConnectionParameters("server-id=0"); qResourceAdapter.setHA(true); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); ActiveMQConnectionFactory fac = qResourceAdapter.getConnectionFactory(spec); assertTrue(fac.isHA()); qResourceAdapter.stop(); assertFalse(spec.isHasBeenUpdated()); }
@Test public void testResourceAdapterSetupNoReconnectAttemptsOverride() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); qResourceAdapter.setConnectionParameters("server-id=0"); qResourceAdapter.setReconnectAttempts(100); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); ActiveMQConnectionFactory fac = qResourceAdapter.getConnectionFactory(spec); assertEquals(100, fac.getReconnectAttempts()); qResourceAdapter.stop(); assertFalse(spec.isHasBeenUpdated()); }
@Test public void testResourceAdapterSetupReconnectAttemptsOverride() throws Exception { ActiveMQResourceAdapter qResourceAdapter = new ActiveMQResourceAdapter(); qResourceAdapter.setConnectorClassName(INVM_CONNECTOR_FACTORY); qResourceAdapter.setConnectionParameters("server-id=0"); ActiveMQRATestBase.MyBootstrapContext ctx = new ActiveMQRATestBase.MyBootstrapContext(); qResourceAdapter.start(ctx); ActiveMQActivationSpec spec = new ActiveMQActivationSpec(); spec.setResourceAdapter(qResourceAdapter); spec.setUseJNDI(false); spec.setDestinationType("javax.jms.Queue"); spec.setDestination(MDBQUEUE); spec.setReconnectAttempts(100); ActiveMQConnectionFactory fac = qResourceAdapter.getConnectionFactory(spec); assertEquals(100, fac.getReconnectAttempts()); qResourceAdapter.stop(); assertTrue(spec.isHasBeenUpdated()); }