@Test public void testJmsConnectionFactoryBinding() throws Exception { final String clientId = "myClientId"; final long clientFailureCheckPeriod = 1; final long connectionTTl = 2; final long callTimeout = 3; final long callFailoverTimeout = 4; final boolean cacheLargeMessagesClient = true; final int minLargeMessageSize = 5; final boolean compressLargeMessages = true; final int consumerWindowSize = 6; final int consumerMaxRate = 7; final int confirmationWindowSize = 8; final int producerWindowSize = 9; final int producerMaxrate = 10; final boolean blockOnAcknowledge = true; final boolean blockOnDurableSend = false; final boolean blockOnNonDurableSend = true; final boolean autoGroup = true; final boolean preacknowledge = true; final String loadBalancingPolicyClassName = "myPolicy"; final int transactionBatchSize = 11; final int dupsOKBatchSize = 12; final boolean useGlobalPools = true; final int scheduledThreadPoolMaxSize = 13; final int threadPoolMaxSize = 14; final long retryInterval = 15; final double retryIntervalMultiplier = 10.0; final long maxRetryInterval = 16; final int reconnectAttempts = 17; final boolean failoverOnInitialConnection = true; final String groupId = "myGroupId"; final String name = "myFirstConnectionFactoryName"; final String jndi_binding1 = name + "Binding1"; final String jndi_binding2 = name + "Binding2"; final JMSFactoryType type = JMSFactoryType.CF; final boolean ha = true; final List connectors = Arrays.asList("in-vm1", "in-vm2"); ClientSession session = basicSetUp(); jmsServer.createConnectionFactory( name, ha, type, connectors, clientId, clientFailureCheckPeriod, connectionTTl, callTimeout, callFailoverTimeout, cacheLargeMessagesClient, minLargeMessageSize, compressLargeMessages, consumerWindowSize, consumerMaxRate, confirmationWindowSize, producerWindowSize, producerMaxrate, blockOnAcknowledge, blockOnDurableSend, blockOnNonDurableSend, autoGroup, preacknowledge, loadBalancingPolicyClassName, transactionBatchSize, dupsOKBatchSize, useGlobalPools, scheduledThreadPoolMaxSize, threadPoolMaxSize, retryInterval, retryIntervalMultiplier, maxRetryInterval, reconnectAttempts, failoverOnInitialConnection, groupId, jndi_binding1, jndi_binding2); jmsServer.createConnectionFactory( "mySecondConnectionFactoryName", false, JMSFactoryType.CF, Arrays.asList("in-vm1", "in-vm2"), "mySecondConnectionFactoryName1", "mySecondConnectionFactoryName2"); session.close(); locator.close(); server.stop(); ByteArrayOutputStream xmlOutputStream = new ByteArrayOutputStream(); XmlDataExporter xmlDataExporter = new XmlDataExporter(); xmlDataExporter.process( xmlOutputStream, server.getConfiguration().getBindingsLocation().getAbsolutePath(), server.getConfiguration().getJournalLocation().getAbsolutePath(), server.getConfiguration().getPagingLocation().getAbsolutePath(), server.getConfiguration().getLargeMessagesLocation().getAbsolutePath()); System.out.print(new String(xmlOutputStream.toByteArray())); clearDataRecreateServerDirs(); server.start(); locator = createInVMNonHALocator(); factory = createSessionFactory(locator); session = factory.createSession(false, true, true); ByteArrayInputStream xmlInputStream = new ByteArrayInputStream(xmlOutputStream.toByteArray()); XmlDataImporter xmlDataImporter = new XmlDataImporter(); xmlDataImporter.process(xmlInputStream, session); ConnectionFactory cf1 = (ConnectionFactory) namingContext.lookup(jndi_binding1); assertNotNull(cf1); ActiveMQConnectionFactory hcf1 = (ActiveMQConnectionFactory) cf1; assertEquals(ha, hcf1.isHA()); assertEquals(type.intValue(), hcf1.getFactoryType()); assertEquals(clientId, hcf1.getClientID()); assertEquals(clientFailureCheckPeriod, hcf1.getClientFailureCheckPeriod()); assertEquals(connectionTTl, hcf1.getConnectionTTL()); assertEquals(callTimeout, hcf1.getCallTimeout()); // Assert.assertEquals(callFailoverTimeout, hcf1.getCallFailoverTimeout()); // this value // isn't currently persisted by // org.apache.activemq.artemis.jms.server.config.impl.ConnectionFactoryConfigurationImpl.encode() // Assert.assertEquals(cacheLargeMessagesClient, hcf1.isCacheLargeMessagesClient()); // // this value isn't currently supported by // org.apache.activemq.artemis.api.jms.management.JMSServerControl.createConnectionFactory(java.lang.String, boolean, boolean, int, java.lang.String, java.lang.String, java.lang.String, long, long, long, long, int, boolean, int, int, int, int, int, boolean, boolean, boolean, boolean, boolean, java.lang.String, int, int, boolean, int, int, long, double, long, int, boolean, java.lang.String) assertEquals(minLargeMessageSize, hcf1.getMinLargeMessageSize()); // Assert.assertEquals(compressLargeMessages, hcf1.isCompressLargeMessage()); // this // value isn't currently handled properly by // org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl.createConnectionFactory(java.lang.String, boolean, org.apache.activemq.artemis.api.jms.JMSFactoryType, java.util.List<java.lang.String>, java.lang.String, long, long, long, long, boolean, int, boolean, int, int, int, int, int, boolean, boolean, boolean, boolean, boolean, java.lang.String, int, int, boolean, int, int, long, double, long, int, boolean, java.lang.String, java.lang.String...)() assertEquals(consumerWindowSize, hcf1.getConsumerWindowSize()); assertEquals(consumerMaxRate, hcf1.getConsumerMaxRate()); assertEquals(confirmationWindowSize, hcf1.getConfirmationWindowSize()); assertEquals(producerWindowSize, hcf1.getProducerWindowSize()); assertEquals(producerMaxrate, hcf1.getProducerMaxRate()); assertEquals(blockOnAcknowledge, hcf1.isBlockOnAcknowledge()); assertEquals(blockOnDurableSend, hcf1.isBlockOnDurableSend()); assertEquals(blockOnNonDurableSend, hcf1.isBlockOnNonDurableSend()); assertEquals(autoGroup, hcf1.isAutoGroup()); assertEquals(preacknowledge, hcf1.isPreAcknowledge()); assertEquals(loadBalancingPolicyClassName, hcf1.getConnectionLoadBalancingPolicyClassName()); assertEquals(transactionBatchSize, hcf1.getTransactionBatchSize()); assertEquals(dupsOKBatchSize, hcf1.getDupsOKBatchSize()); assertEquals(useGlobalPools, hcf1.isUseGlobalPools()); assertEquals(scheduledThreadPoolMaxSize, hcf1.getScheduledThreadPoolMaxSize()); assertEquals(threadPoolMaxSize, hcf1.getThreadPoolMaxSize()); assertEquals(retryInterval, hcf1.getRetryInterval()); assertEquals(retryIntervalMultiplier, hcf1.getRetryIntervalMultiplier(), 0); assertEquals(maxRetryInterval, hcf1.getMaxRetryInterval()); assertEquals(reconnectAttempts, hcf1.getReconnectAttempts()); assertEquals(failoverOnInitialConnection, hcf1.isFailoverOnInitialConnection()); assertEquals(groupId, hcf1.getGroupID()); assertNotNull(namingContext.lookup(jndi_binding2)); assertNotNull(namingContext.lookup("mySecondConnectionFactoryName1")); assertNotNull(namingContext.lookup("mySecondConnectionFactoryName2")); }