http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/SimpleJNDIClientTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/SimpleJNDIClientTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/SimpleJNDIClientTest.java new file mode 100644 index 0000000..680d429 --- /dev/null +++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/SimpleJNDIClientTest.java @@ -0,0 +1,722 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.activemq.tests.integration.jms; + +import javax.jms.ConnectionFactory; +import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.Queue; +import javax.jms.Topic; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import org.apache.activemq.api.config.ActiveMQDefaultConfiguration; +import org.apache.activemq.api.core.BroadcastGroupConfiguration; +import org.apache.activemq.api.core.DiscoveryGroupConfiguration; +import org.apache.activemq.api.core.TransportConfiguration; +import org.apache.activemq.api.core.UDPBroadcastGroupConfiguration; +import org.apache.activemq.api.jms.JMSFactoryType; +import org.apache.activemq.core.config.Configuration; +import org.apache.activemq.core.config.ha.SharedStoreMasterPolicyConfiguration; +import org.apache.activemq.core.remoting.impl.netty.TransportConstants; +import org.apache.activemq.core.server.ActiveMQServer; +import org.apache.activemq.core.server.ActiveMQServers; +import org.apache.activemq.jms.client.ActiveMQConnectionFactory; +import org.apache.activemq.jndi.ActiveMQInitialContextFactory; +import org.apache.activemq.tests.util.RandomUtil; +import org.apache.activemq.tests.util.UnitTestCase; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +/** + * + * A ActiveMQConnectionFactoryTest + * + * @author <a href="mailto:[email protected]">Tim Fox</a> + * + * + */ +public class SimpleJNDIClientTest extends UnitTestCase +{ + private final String groupAddress = getUDPDiscoveryAddress(); + + private final int groupPort = getUDPDiscoveryPort(); + + private ActiveMQServer liveService; + + private TransportConfiguration liveTC; + + @Test + public void testDefaultConnectionFactories() throws NamingException, JMSException + { + Hashtable<String, Object> props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + Context ctx = new InitialContext(props); + + ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("ConnectionFactory"); + Assert.assertEquals(JMSFactoryType.CF.intValue(), ((ActiveMQConnectionFactory)connectionFactory).getFactoryType()); + connectionFactory.createConnection().close(); + + connectionFactory = (ConnectionFactory) ctx.lookup("XAConnectionFactory"); + Assert.assertEquals(JMSFactoryType.XA_CF.intValue(), ((ActiveMQConnectionFactory)connectionFactory).getFactoryType()); + connectionFactory.createConnection().close(); + + connectionFactory = (ConnectionFactory) ctx.lookup("TopicConnectionFactory"); + Assert.assertEquals(JMSFactoryType.TOPIC_CF.intValue(), ((ActiveMQConnectionFactory)connectionFactory).getFactoryType()); + connectionFactory.createConnection().close(); + + connectionFactory = (ConnectionFactory) ctx.lookup("QueueConnectionFactory"); + Assert.assertEquals(JMSFactoryType.QUEUE_CF.intValue(), ((ActiveMQConnectionFactory)connectionFactory).getFactoryType()); + connectionFactory.createConnection().close(); + } + + @Test + public void testCustomCF() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.type", "CF"); + Context ctx = new InitialContext(props); + + ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(JMSFactoryType.CF.intValue(), ((ActiveMQConnectionFactory)connectionFactory).getFactoryType()); + + connectionFactory.createConnection().close(); + } + + @Test + public void testVMCF0() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(Context.PROVIDER_URL, "vm://0"); + Context ctx = new InitialContext(props); + + ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("ConnectionFactory"); + + connectionFactory.createConnection().close(); + } + + @Test + public void testVMCF1() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(Context.PROVIDER_URL, "vm://1"); + Context ctx = new InitialContext(props); + + ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("ConnectionFactory"); + + connectionFactory.createConnection().close(); + } + + @Test + public void testXACF() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.type", "XA_CF"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory connectionFactory = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(JMSFactoryType.XA_CF.intValue(), connectionFactory.getFactoryType()); + } + + @Test + public void testQueueCF() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.type", "QUEUE_CF"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory connectionFactory = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(JMSFactoryType.QUEUE_CF.intValue(), connectionFactory.getFactoryType()); + } + + @Test + public void testQueueXACF() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.type", "QUEUE_XA_CF"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory connectionFactory = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(JMSFactoryType.QUEUE_XA_CF.intValue(), connectionFactory.getFactoryType()); + } + + @Test + public void testTopicCF() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.type", "TOPIC_CF"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory connectionFactory = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(JMSFactoryType.TOPIC_CF.intValue(), connectionFactory.getFactoryType()); + } + + @Test + public void testTopicXACF() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.type", "TOPIC_XA_CF"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory connectionFactory = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(JMSFactoryType.TOPIC_XA_CF.intValue(), connectionFactory.getFactoryType()); + } + + @Test + public void testCFWithProperties() throws NamingException, JMSException + { + // we don't test the 'ha' property here because it's not supported on a local connection factory (i.e. one + // constructed from an InitialContext where the environment doesn't contain the property "java.naming.provider.url") + + long callFailoverTimeout = RandomUtil.randomPositiveLong(); + long callTimeout = RandomUtil.randomPositiveLong(); + long clientFailureCheckPeriod = RandomUtil.randomPositiveLong(); + String clientID = RandomUtil.randomString(); + int confirmationWindowSize = RandomUtil.randomPositiveInt(); + String connectionLoadBalancingPolicyClassName = RandomUtil.randomString(); + long connectionTTL = RandomUtil.randomPositiveLong(); + int consumerMaxRate = RandomUtil.randomPositiveInt(); + int consumerWindowSize = RandomUtil.randomPositiveInt(); + int minLargeMessageSize = RandomUtil.randomPositiveInt(); + int dupsOKBatchSize = RandomUtil.randomPositiveInt(); + String groupID = RandomUtil.randomString(); + int initialConnectAttempts = RandomUtil.randomPositiveInt(); + int initialMessagePacketSize = RandomUtil.randomPositiveInt(); + long maxRetryInterval = RandomUtil.randomPositiveLong(); + int producerMaxRate = RandomUtil.randomPositiveInt(); + int producerWindowSize = RandomUtil.randomPositiveInt(); + int reconnectAttempts = RandomUtil.randomPositiveInt(); + long retryInterval = RandomUtil.randomPositiveLong(); + double retryIntervalMultiplier = RandomUtil.randomDouble(); + int scheduledThreadPoolMaxSize = RandomUtil.randomPositiveInt(); + int threadPoolMaxSize = RandomUtil.randomPositiveInt(); + int transactionBatchSize = RandomUtil.randomPositiveInt(); + boolean autoGroup = RandomUtil.randomBoolean(); + boolean blockOnAcknowledge = RandomUtil.randomBoolean(); + boolean blockOnDurableSend = RandomUtil.randomBoolean(); + boolean blockOnNonDurableSend = RandomUtil.randomBoolean(); + boolean cacheLargeMessagesClient = RandomUtil.randomBoolean(); + boolean compressLargeMessage = RandomUtil.randomBoolean(); + boolean failoverOnInitialConnection = RandomUtil.randomBoolean(); + boolean preAcknowledge = RandomUtil.randomBoolean(); + boolean useGlobalPools = RandomUtil.randomBoolean(); + + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.callFailoverTimeout", callFailoverTimeout); + props.put("connection.myConnectionFactory.callTimeout", callTimeout); + props.put("connection.myConnectionFactory.clientFailureCheckPeriod", clientFailureCheckPeriod); + props.put("connection.myConnectionFactory.clientID", clientID); + props.put("connection.myConnectionFactory.confirmationWindowSize", confirmationWindowSize); + props.put("connection.myConnectionFactory.connectionLoadBalancingPolicyClassName", connectionLoadBalancingPolicyClassName); + props.put("connection.myConnectionFactory.connectionTTL", connectionTTL); + props.put("connection.myConnectionFactory.consumerMaxRate", consumerMaxRate); + props.put("connection.myConnectionFactory.consumerWindowSize", consumerWindowSize); + props.put("connection.myConnectionFactory.minLargeMessageSize", minLargeMessageSize); + props.put("connection.myConnectionFactory.dupsOKBatchSize", dupsOKBatchSize); + props.put("connection.myConnectionFactory.groupID", groupID); + props.put("connection.myConnectionFactory.initialConnectAttempts", initialConnectAttempts); + props.put("connection.myConnectionFactory.initialMessagePacketSize", initialMessagePacketSize); + props.put("connection.myConnectionFactory.maxRetryInterval", maxRetryInterval); + props.put("connection.myConnectionFactory.producerMaxRate", producerMaxRate); + props.put("connection.myConnectionFactory.producerWindowSize", producerWindowSize); + props.put("connection.myConnectionFactory.reconnectAttempts", reconnectAttempts); + props.put("connection.myConnectionFactory.retryInterval", retryInterval); + props.put("connection.myConnectionFactory.retryIntervalMultiplier", retryIntervalMultiplier); + props.put("connection.myConnectionFactory.scheduledThreadPoolMaxSize", scheduledThreadPoolMaxSize); + props.put("connection.myConnectionFactory.threadPoolMaxSize", threadPoolMaxSize); + props.put("connection.myConnectionFactory.transactionBatchSize", transactionBatchSize); + props.put("connection.myConnectionFactory.blockOnAcknowledge", blockOnAcknowledge); + props.put("connection.myConnectionFactory.blockOnDurableSend", blockOnDurableSend); + props.put("connection.myConnectionFactory.blockOnNonDurableSend", blockOnNonDurableSend); + props.put("connection.myConnectionFactory.cacheLargeMessagesClient", cacheLargeMessagesClient); + props.put("connection.myConnectionFactory.compressLargeMessage", compressLargeMessage); + props.put("connection.myConnectionFactory.failoverOnInitialConnection", failoverOnInitialConnection); + props.put("connection.myConnectionFactory.autoGroup", autoGroup); + props.put("connection.myConnectionFactory.preAcknowledge", preAcknowledge); + props.put("connection.myConnectionFactory.useGlobalPools", useGlobalPools); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory cf = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(callFailoverTimeout, cf.getCallFailoverTimeout()); + Assert.assertEquals(callTimeout, cf.getCallTimeout()); + Assert.assertEquals(clientFailureCheckPeriod, cf.getClientFailureCheckPeriod()); + Assert.assertEquals(clientID, cf.getClientID()); + Assert.assertEquals(confirmationWindowSize, cf.getConfirmationWindowSize()); + Assert.assertEquals(connectionLoadBalancingPolicyClassName, cf.getConnectionLoadBalancingPolicyClassName()); + Assert.assertEquals(connectionTTL, cf.getConnectionTTL()); + Assert.assertEquals(consumerMaxRate, cf.getConsumerMaxRate()); + Assert.assertEquals(consumerWindowSize, cf.getConsumerWindowSize()); + Assert.assertEquals(minLargeMessageSize, cf.getMinLargeMessageSize()); + Assert.assertEquals(dupsOKBatchSize, cf.getDupsOKBatchSize()); + Assert.assertEquals(groupID, cf.getGroupID()); + Assert.assertEquals(initialConnectAttempts, cf.getInitialConnectAttempts()); + Assert.assertEquals(initialMessagePacketSize, cf.getInitialMessagePacketSize()); + Assert.assertEquals(maxRetryInterval, cf.getMaxRetryInterval()); + Assert.assertEquals(producerMaxRate, cf.getProducerMaxRate()); + Assert.assertEquals(producerWindowSize, cf.getProducerWindowSize()); + Assert.assertEquals(reconnectAttempts, cf.getReconnectAttempts()); + Assert.assertEquals(retryInterval, cf.getRetryInterval()); + Assert.assertEquals(retryIntervalMultiplier, cf.getRetryIntervalMultiplier(), 0.0001); + Assert.assertEquals(scheduledThreadPoolMaxSize, cf.getScheduledThreadPoolMaxSize()); + Assert.assertEquals(threadPoolMaxSize, cf.getThreadPoolMaxSize()); + Assert.assertEquals(transactionBatchSize, cf.getTransactionBatchSize()); + Assert.assertEquals(autoGroup, cf.isAutoGroup()); + Assert.assertEquals(blockOnAcknowledge, cf.isBlockOnAcknowledge()); + Assert.assertEquals(blockOnDurableSend, cf.isBlockOnDurableSend()); + Assert.assertEquals(blockOnNonDurableSend, cf.isBlockOnNonDurableSend()); + Assert.assertEquals(cacheLargeMessagesClient, cf.isCacheLargeMessagesClient()); + Assert.assertEquals(compressLargeMessage, cf.isCompressLargeMessage()); + Assert.assertEquals(failoverOnInitialConnection, cf.isFailoverOnInitialConnection()); + Assert.assertEquals(preAcknowledge, cf.isPreAcknowledge()); + Assert.assertEquals(useGlobalPools, cf.isUseGlobalPools()); + } + + @Test + public void testCFWithStringProperties() throws NamingException, JMSException + { + // we don't test the 'ha' property here because it's not supported on a local connection factory (i.e. one + // constructed from an InitialContext where the environment doesn't contain the property "java.naming.provider.url") + + String callFailoverTimeout = Long.toString(RandomUtil.randomPositiveLong()); + String callTimeout = Long.toString(RandomUtil.randomPositiveLong()); + String clientFailureCheckPeriod = Long.toString(RandomUtil.randomPositiveLong()); + String clientID = RandomUtil.randomString(); + String confirmationWindowSize = Integer.toString(RandomUtil.randomPositiveInt()); + String connectionLoadBalancingPolicyClassName = RandomUtil.randomString(); + String connectionTTL = Long.toString(RandomUtil.randomPositiveLong()); + String consumerMaxRate = Integer.toString(RandomUtil.randomPositiveInt()); + String consumerWindowSize = Integer.toString(RandomUtil.randomPositiveInt()); + String minLargeMessageSize = Integer.toString(RandomUtil.randomPositiveInt()); + String dupsOKBatchSize = Integer.toString(RandomUtil.randomPositiveInt()); + String groupID = RandomUtil.randomString(); + String initialConnectAttempts = Integer.toString(RandomUtil.randomPositiveInt()); + String initialMessagePacketSize = Integer.toString(RandomUtil.randomPositiveInt()); + String maxRetryInterval = Long.toString(RandomUtil.randomPositiveLong()); + String producerMaxRate = Integer.toString(RandomUtil.randomPositiveInt()); + String producerWindowSize = Integer.toString(RandomUtil.randomPositiveInt()); + String reconnectAttempts = Integer.toString(RandomUtil.randomPositiveInt()); + String retryInterval = Long.toString(RandomUtil.randomPositiveLong()); + String retryIntervalMultiplier = Double.toString(RandomUtil.randomDouble()); + String scheduledThreadPoolMaxSize = Integer.toString(RandomUtil.randomPositiveInt()); + String threadPoolMaxSize = Integer.toString(RandomUtil.randomPositiveInt()); + String transactionBatchSize = Integer.toString(RandomUtil.randomPositiveInt()); + String autoGroup = Boolean.toString(RandomUtil.randomBoolean()); + String blockOnAcknowledge = Boolean.toString(RandomUtil.randomBoolean()); + String blockOnDurableSend = Boolean.toString(RandomUtil.randomBoolean()); + String blockOnNonDurableSend = Boolean.toString(RandomUtil.randomBoolean()); + String cacheLargeMessagesClient = Boolean.toString(RandomUtil.randomBoolean()); + String compressLargeMessage = Boolean.toString(RandomUtil.randomBoolean()); + String failoverOnInitialConnection = Boolean.toString(RandomUtil.randomBoolean()); + String preAcknowledge = Boolean.toString(RandomUtil.randomBoolean()); + String useGlobalPools = Boolean.toString(RandomUtil.randomBoolean()); + + Hashtable props = new Hashtable<String, String>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.callFailoverTimeout", callFailoverTimeout); + props.put("connection.myConnectionFactory.callTimeout", callTimeout); + props.put("connection.myConnectionFactory.clientFailureCheckPeriod", clientFailureCheckPeriod); + props.put("connection.myConnectionFactory.clientID", clientID); + props.put("connection.myConnectionFactory.confirmationWindowSize", confirmationWindowSize); + props.put("connection.myConnectionFactory.connectionLoadBalancingPolicyClassName", connectionLoadBalancingPolicyClassName); + props.put("connection.myConnectionFactory.connectionTTL", connectionTTL); + props.put("connection.myConnectionFactory.consumerMaxRate", consumerMaxRate); + props.put("connection.myConnectionFactory.consumerWindowSize", consumerWindowSize); + props.put("connection.myConnectionFactory.minLargeMessageSize", minLargeMessageSize); + props.put("connection.myConnectionFactory.dupsOKBatchSize", dupsOKBatchSize); + props.put("connection.myConnectionFactory.groupID", groupID); + props.put("connection.myConnectionFactory.initialConnectAttempts", initialConnectAttempts); + props.put("connection.myConnectionFactory.initialMessagePacketSize", initialMessagePacketSize); + props.put("connection.myConnectionFactory.maxRetryInterval", maxRetryInterval); + props.put("connection.myConnectionFactory.producerMaxRate", producerMaxRate); + props.put("connection.myConnectionFactory.producerWindowSize", producerWindowSize); + props.put("connection.myConnectionFactory.reconnectAttempts", reconnectAttempts); + props.put("connection.myConnectionFactory.retryInterval", retryInterval); + props.put("connection.myConnectionFactory.retryIntervalMultiplier", retryIntervalMultiplier); + props.put("connection.myConnectionFactory.scheduledThreadPoolMaxSize", scheduledThreadPoolMaxSize); + props.put("connection.myConnectionFactory.threadPoolMaxSize", threadPoolMaxSize); + props.put("connection.myConnectionFactory.transactionBatchSize", transactionBatchSize); + props.put("connection.myConnectionFactory.blockOnAcknowledge", blockOnAcknowledge); + props.put("connection.myConnectionFactory.blockOnDurableSend", blockOnDurableSend); + props.put("connection.myConnectionFactory.blockOnNonDurableSend", blockOnNonDurableSend); + props.put("connection.myConnectionFactory.cacheLargeMessagesClient", cacheLargeMessagesClient); + props.put("connection.myConnectionFactory.compressLargeMessage", compressLargeMessage); + props.put("connection.myConnectionFactory.failoverOnInitialConnection", failoverOnInitialConnection); + props.put("connection.myConnectionFactory.autoGroup", autoGroup); + props.put("connection.myConnectionFactory.preAcknowledge", preAcknowledge); + props.put("connection.myConnectionFactory.useGlobalPools", useGlobalPools); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory cf = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(Long.parseLong(callFailoverTimeout), cf.getCallFailoverTimeout()); + Assert.assertEquals(Long.parseLong(callTimeout), cf.getCallTimeout()); + Assert.assertEquals(Long.parseLong(clientFailureCheckPeriod), cf.getClientFailureCheckPeriod()); + Assert.assertEquals(clientID, cf.getClientID()); + Assert.assertEquals(Integer.parseInt(confirmationWindowSize), cf.getConfirmationWindowSize()); + Assert.assertEquals(connectionLoadBalancingPolicyClassName, cf.getConnectionLoadBalancingPolicyClassName()); + Assert.assertEquals(Long.parseLong(connectionTTL), cf.getConnectionTTL()); + Assert.assertEquals(Integer.parseInt(consumerMaxRate), cf.getConsumerMaxRate()); + Assert.assertEquals(Integer.parseInt(consumerWindowSize), cf.getConsumerWindowSize()); + Assert.assertEquals(Integer.parseInt(minLargeMessageSize), cf.getMinLargeMessageSize()); + Assert.assertEquals(Integer.parseInt(dupsOKBatchSize), cf.getDupsOKBatchSize()); + Assert.assertEquals(groupID, cf.getGroupID()); + Assert.assertEquals(Integer.parseInt(initialConnectAttempts), cf.getInitialConnectAttempts()); + Assert.assertEquals(Integer.parseInt(initialMessagePacketSize), cf.getInitialMessagePacketSize()); + Assert.assertEquals(Long.parseLong(maxRetryInterval), cf.getMaxRetryInterval()); + Assert.assertEquals(Integer.parseInt(producerMaxRate), cf.getProducerMaxRate()); + Assert.assertEquals(Integer.parseInt(producerWindowSize), cf.getProducerWindowSize()); + Assert.assertEquals(Integer.parseInt(reconnectAttempts), cf.getReconnectAttempts()); + Assert.assertEquals(Long.parseLong(retryInterval), cf.getRetryInterval()); + Assert.assertEquals(Double.parseDouble(retryIntervalMultiplier), cf.getRetryIntervalMultiplier(), 0.0001); + Assert.assertEquals(Integer.parseInt(scheduledThreadPoolMaxSize), cf.getScheduledThreadPoolMaxSize()); + Assert.assertEquals(Integer.parseInt(threadPoolMaxSize), cf.getThreadPoolMaxSize()); + Assert.assertEquals(Integer.parseInt(transactionBatchSize), cf.getTransactionBatchSize()); + Assert.assertEquals(Boolean.parseBoolean(autoGroup), cf.isAutoGroup()); + Assert.assertEquals(Boolean.parseBoolean(blockOnAcknowledge), cf.isBlockOnAcknowledge()); + Assert.assertEquals(Boolean.parseBoolean(blockOnDurableSend), cf.isBlockOnDurableSend()); + Assert.assertEquals(Boolean.parseBoolean(blockOnNonDurableSend), cf.isBlockOnNonDurableSend()); + Assert.assertEquals(Boolean.parseBoolean(cacheLargeMessagesClient), cf.isCacheLargeMessagesClient()); + Assert.assertEquals(Boolean.parseBoolean(compressLargeMessage), cf.isCompressLargeMessage()); + Assert.assertEquals(Boolean.parseBoolean(failoverOnInitialConnection), cf.isFailoverOnInitialConnection()); + Assert.assertEquals(Boolean.parseBoolean(preAcknowledge), cf.isPreAcknowledge()); + Assert.assertEquals(Boolean.parseBoolean(useGlobalPools), cf.isUseGlobalPools()); + } + + @Test + public void testRemoteCFWithTCP() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(Context.PROVIDER_URL, "tcp://127.0.0.1:5445"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + Context ctx = new InitialContext(props); + + ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("myConnectionFactory"); + + connectionFactory.createConnection().close(); + } + + @Test + public void testRemoteCFWithTCPandHA() throws NamingException, JMSException + { + boolean ha = true; + + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(Context.PROVIDER_URL, "tcp://127.0.0.1:5445"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + props.put("connection.myConnectionFactory.ha", ha); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory cf = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Assert.assertEquals(ha, cf.isHA()); + } + + @Test + public void testRemoteCFWithJGroups() throws Exception + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(Context.PROVIDER_URL, "jgroups://test-jgroups-file_ping.xml"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory connectionFactory = (ActiveMQConnectionFactory) ctx.lookup("ConnectionFactory"); + connectionFactory.getDiscoveryGroupConfiguration().getBroadcastEndpointFactoryConfiguration().createBroadcastEndpointFactory().createBroadcastEndpoint().close(false); + } + + @Test + public void testRemoteCFWithJgroupsWithTransportConfig() throws Exception + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, ActiveMQInitialContextFactory.class.getCanonicalName()); + props.put(Context.PROVIDER_URL, "jgroups://test-jgroups-file_ping.xml?" + + ActiveMQInitialContextFactory.REFRESH_TIMEOUT + "=5000&" + + ActiveMQInitialContextFactory.DISCOVERY_INITIAL_WAIT_TIMEOUT + "=6000"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory cf = (ActiveMQConnectionFactory) ctx.lookup("ConnectionFactory"); + + DiscoveryGroupConfiguration discoveryGroupConfiguration = cf.getDiscoveryGroupConfiguration(); + Assert.assertEquals(5000, discoveryGroupConfiguration.getRefreshTimeout()); + Assert.assertEquals(6000, discoveryGroupConfiguration.getDiscoveryInitialWaitTimeout()); + + cf.getDiscoveryGroupConfiguration().getBroadcastEndpointFactoryConfiguration().createBroadcastEndpointFactory().createBroadcastEndpoint().close(false); + } + + @Test + public void testRemoteCFWithUDP() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(Context.PROVIDER_URL, "udp://" + getUDPDiscoveryAddress() + ":" + getUDPDiscoveryPort()); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + Context ctx = new InitialContext(props); + + ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("myConnectionFactory"); + + connectionFactory.createConnection().close(); + } + + @Test + public void testRemoteCFWithUDPWithTransportConfig() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, ActiveMQInitialContextFactory.class.getCanonicalName()); + props.put(Context.PROVIDER_URL, "udp://" + getUDPDiscoveryAddress() + ":" + getUDPDiscoveryPort() + "?" + + TransportConstants.LOCAL_ADDRESS_PROP_NAME + "=127.0.0.1&" + + TransportConstants.LOCAL_PORT_PROP_NAME + "=1198&" + + ActiveMQInitialContextFactory.REFRESH_TIMEOUT + "=5000&" + + ActiveMQInitialContextFactory.DISCOVERY_INITIAL_WAIT_TIMEOUT + "=6000"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory cf = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + DiscoveryGroupConfiguration discoveryGroupConfiguration = cf.getDiscoveryGroupConfiguration(); + Assert.assertEquals(5000, discoveryGroupConfiguration.getRefreshTimeout()); + Assert.assertEquals(6000, discoveryGroupConfiguration.getDiscoveryInitialWaitTimeout()); + + UDPBroadcastGroupConfiguration udpBroadcastGroupConfiguration = (UDPBroadcastGroupConfiguration) discoveryGroupConfiguration.getBroadcastEndpointFactoryConfiguration(); + Assert.assertEquals("127.0.0.1", udpBroadcastGroupConfiguration.getLocalBindAddress()); + Assert.assertEquals(1198, udpBroadcastGroupConfiguration.getLocalBindPort()); + Assert.assertEquals(getUDPDiscoveryAddress(), udpBroadcastGroupConfiguration.getGroupAddress()); + Assert.assertEquals(getUDPDiscoveryPort(), udpBroadcastGroupConfiguration.getGroupPort()); + } + + @Test + public void testRemoteCFWithMultipleHosts() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(Context.PROVIDER_URL, "tcp://127.0.0.1:5445,127.0.0.2:5446"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + Context ctx = new InitialContext(props); + + ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("myConnectionFactory"); + + connectionFactory.createConnection().close(); + } + + @Test + public void testRemoteCFWithTransportConfig() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put(Context.PROVIDER_URL, "tcp://127.0.0.1:5445?" + + TransportConstants.SSL_ENABLED_PROP_NAME + "=mySSLEnabledPropValue&" + + TransportConstants.HTTP_ENABLED_PROP_NAME + "=myHTTPEnabledPropValue&" + + TransportConstants.HTTP_CLIENT_IDLE_PROP_NAME + "=myHTTPClientIdlePropValue&" + + TransportConstants.HTTP_CLIENT_IDLE_SCAN_PERIOD + "=myHTTPClientIdleScanPeriodValue&" + + TransportConstants.HTTP_REQUIRES_SESSION_ID + "=myHTTPRequiresSessionIDValue&" + + TransportConstants.HTTP_UPGRADE_ENABLED_PROP_NAME + "=myHTTPUpgradeEnabledPropValue&" + + TransportConstants.HTTP_UPGRADE_ENDPOINT_PROP_NAME + "=myHTTPUpgradeEndpointPropValue&" + + TransportConstants.USE_SERVLET_PROP_NAME + "=myUseServletPropValue&" + + TransportConstants.SERVLET_PATH + "=myServletPathValue&" + + TransportConstants.USE_NIO_PROP_NAME + "=myUseNIOPropValue&" + + TransportConstants.USE_NIO_GLOBAL_WORKER_POOL_PROP_NAME + "=myUseNIOGlobalWorkerPoolPropValue&" + + TransportConstants.LOCAL_ADDRESS_PROP_NAME + "=myLocalAddressPropValue&" + + TransportConstants.LOCAL_PORT_PROP_NAME + "=myLocalPortPropValue&" + + TransportConstants.KEYSTORE_PROVIDER_PROP_NAME + "=myKeystoreProviderPropValue&" + + TransportConstants.KEYSTORE_PATH_PROP_NAME + "=myKeystorePathPropValue&" + + TransportConstants.KEYSTORE_PASSWORD_PROP_NAME + "=myKeystorePasswordPropValue&" + + TransportConstants.TRUSTSTORE_PROVIDER_PROP_NAME + "=myTruststoreProviderPropValue&" + + TransportConstants.TRUSTSTORE_PATH_PROP_NAME + "=myTruststorePathPropValue&" + + TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME + "=myTruststorePasswordPropValue&" + + TransportConstants.ENABLED_CIPHER_SUITES_PROP_NAME + "=myEnabledCipherSuitesPropValue&" + + TransportConstants.ENABLED_PROTOCOLS_PROP_NAME + "=myEnabledProtocolsPropValue&" + + TransportConstants.TCP_NODELAY_PROPNAME + "=myTCPNoDelayPropValue&" + + TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME + "=myTCPSendbufferSizePropValue&" + + TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME + "=myTCPReceivebufferSizePropValue&" + + TransportConstants.NIO_REMOTING_THREADS_PROPNAME + "=myNIORemotingThreadsPropValue&" + + TransportConstants.BATCH_DELAY + "=myBatchDelay&" + + ActiveMQDefaultConfiguration.getPropMaskPassword() + "=myPropMaskPassword&" + + ActiveMQDefaultConfiguration.getPropPasswordCodec() + "=myPropPasswordCodec&" + + TransportConstants.NETTY_CONNECT_TIMEOUT + "=myNettyConnectTimeout&"); + props.put(ActiveMQInitialContextFactory.CONNECTION_FACTORY_NAMES, "myConnectionFactory"); + Context ctx = new InitialContext(props); + + ActiveMQConnectionFactory cf = (ActiveMQConnectionFactory) ctx.lookup("myConnectionFactory"); + + Map parametersFromJNDI = cf.getServerLocator().getStaticTransportConfigurations()[0].getParams(); + + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.SSL_ENABLED_PROP_NAME), "mySSLEnabledPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.HTTP_ENABLED_PROP_NAME), "myHTTPEnabledPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.HTTP_CLIENT_IDLE_PROP_NAME), "myHTTPClientIdlePropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.HTTP_CLIENT_IDLE_SCAN_PERIOD), "myHTTPClientIdleScanPeriodValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.HTTP_REQUIRES_SESSION_ID), "myHTTPRequiresSessionIDValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.HTTP_UPGRADE_ENABLED_PROP_NAME), "myHTTPUpgradeEnabledPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.HTTP_UPGRADE_ENDPOINT_PROP_NAME), "myHTTPUpgradeEndpointPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.USE_SERVLET_PROP_NAME), "myUseServletPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.SERVLET_PATH), "myServletPathValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.USE_NIO_PROP_NAME), "myUseNIOPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.USE_NIO_GLOBAL_WORKER_POOL_PROP_NAME), "myUseNIOGlobalWorkerPoolPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.LOCAL_ADDRESS_PROP_NAME), "myLocalAddressPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.LOCAL_PORT_PROP_NAME), "myLocalPortPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.KEYSTORE_PROVIDER_PROP_NAME), "myKeystoreProviderPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.KEYSTORE_PATH_PROP_NAME), "myKeystorePathPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.KEYSTORE_PASSWORD_PROP_NAME), "myKeystorePasswordPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.TRUSTSTORE_PROVIDER_PROP_NAME), "myTruststoreProviderPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.TRUSTSTORE_PATH_PROP_NAME), "myTruststorePathPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.TRUSTSTORE_PASSWORD_PROP_NAME), "myTruststorePasswordPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.ENABLED_CIPHER_SUITES_PROP_NAME), "myEnabledCipherSuitesPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.ENABLED_PROTOCOLS_PROP_NAME), "myEnabledProtocolsPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.TCP_NODELAY_PROPNAME), "myTCPNoDelayPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.TCP_SENDBUFFER_SIZE_PROPNAME), "myTCPSendbufferSizePropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.TCP_RECEIVEBUFFER_SIZE_PROPNAME), "myTCPReceivebufferSizePropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.NIO_REMOTING_THREADS_PROPNAME), "myNIORemotingThreadsPropValue"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.BATCH_DELAY), "myBatchDelay"); + Assert.assertEquals(parametersFromJNDI.get(ActiveMQDefaultConfiguration.getPropMaskPassword()), "myPropMaskPassword"); + Assert.assertEquals(parametersFromJNDI.get(ActiveMQDefaultConfiguration.getPropPasswordCodec()), "myPropPasswordCodec"); + Assert.assertEquals(parametersFromJNDI.get(TransportConstants.NETTY_CONNECT_TIMEOUT), "myNettyConnectTimeout"); + } + + @Override + @Before + public void setUp() throws Exception + { + super.setUp(); + + startServer(); + } + + private void startServer() throws Exception + { + liveTC = new TransportConfiguration(INVM_CONNECTOR_FACTORY); + Map<String, TransportConfiguration> connectors = new HashMap<String, TransportConfiguration>(); + connectors.put(liveTC.getName(), liveTC); + List<String> connectorNames = new ArrayList<String>(); + connectorNames.add(liveTC.getName()); + + Map params = new HashMap(); + params.put("server-id", 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()); + + final long broadcastPeriod = 250; + + final String bcGroupName = "bc1"; + + final int localBindPort = 5432; + + BroadcastGroupConfiguration bcConfig1 = new BroadcastGroupConfiguration() + .setName(bcGroupName) + .setBroadcastPeriod(broadcastPeriod) + .setConnectorInfos(connectorNames) + .setEndpointFactoryConfiguration(new UDPBroadcastGroupConfiguration() + .setGroupAddress(groupAddress) + .setGroupPort(groupPort) + .setLocalBindPort(localBindPort)); + + List<BroadcastGroupConfiguration> bcConfigs1 = new ArrayList<BroadcastGroupConfiguration>(); + bcConfigs1.add(bcConfig1); + liveConf.setBroadcastGroupConfigurations(bcConfigs1); + + liveService = addServer(ActiveMQServers.newActiveMQServer(liveConf, false)); + liveService.start(); + } + + @Test + public void testQueue() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put("queue.myQueue", "myQueue"); + props.put("queue.queues/myQueue", "myQueue"); + Context ctx = new InitialContext(props); + + Destination destination = (Destination) ctx.lookup("myQueue"); + Assert.assertTrue(destination instanceof Queue); + + destination = (Destination) ctx.lookup("queues/myQueue"); + Assert.assertTrue(destination instanceof Queue); + } + + @Test + public void testDynamicQueue() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + Context ctx = new InitialContext(props); + + Destination destination = (Destination) ctx.lookup("dynamicQueues/myQueue"); + Assert.assertTrue(destination instanceof Queue); + } + + @Test + public void testTopic() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + props.put("topic.myTopic", "myTopic"); + props.put("topic.topics/myTopic", "myTopic"); + Context ctx = new InitialContext(props); + + Destination destination = (Destination) ctx.lookup("myTopic"); + Assert.assertTrue(destination instanceof Topic); + + destination = (Destination) ctx.lookup("topics/myTopic"); + Assert.assertTrue(destination instanceof Topic); + } + + @Test + public void testDynamicTopic() throws NamingException, JMSException + { + Hashtable props = new Hashtable<>(); + props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); + Context ctx = new InitialContext(props); + + Destination destination = (Destination) ctx.lookup("dynamicTopics/myTopic"); + Assert.assertTrue(destination instanceof Topic); + } +}
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/JMSServerDeployerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/JMSServerDeployerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/JMSServerDeployerTest.java index 4ce9f14..bede98b 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/JMSServerDeployerTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/JMSServerDeployerTest.java @@ -19,7 +19,6 @@ package org.apache.activemq.tests.integration.jms.server; import javax.jms.Queue; import javax.jms.Topic; import javax.naming.Context; -import java.net.URI; import org.apache.activemq.api.core.DiscoveryGroupConfiguration; import org.apache.activemq.api.core.TransportConfiguration; @@ -29,14 +28,12 @@ import org.apache.activemq.core.deployers.DeploymentManager; import org.apache.activemq.core.deployers.impl.FileDeploymentManager; import org.apache.activemq.core.remoting.impl.netty.NettyConnectorFactory; import org.apache.activemq.core.server.ActiveMQServer; -import org.apache.activemq.jms.client.ActiveMQConnectionFactory; import org.apache.activemq.jms.server.JMSServerManager; import org.apache.activemq.jms.server.impl.JMSServerDeployer; import org.apache.activemq.jms.server.impl.JMSServerManagerImpl; import org.apache.activemq.tests.integration.IntegrationTestLogger; import org.apache.activemq.tests.unit.util.InVMNamingContext; import org.apache.activemq.tests.util.ServiceTestBase; -import org.apache.activemq.tests.util.UnitTestCase; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -93,7 +90,6 @@ public class JMSServerDeployerTest extends ServiceTestBase doTestDeployQueuesWithUnusualNames("queue\\with\\backslashes\\in\\name", "/myqueue4"); doTestDeployQueuesWithUnusualNames("queue with # chars and * chars in name", - "queue with # chars and * chars in name", "/myqueue5"); } @@ -109,21 +105,13 @@ public class JMSServerDeployerTest extends ServiceTestBase doTestDeployTopicsWithUnusualNames("topic\\with\\backslashes\\in\\name", "/mytopic4"); doTestDeployTopicsWithUnusualNames("topic with # chars and * chars in name", - "topic with # chars and * chars in name", "/mytopic5"); } private void doTestDeployQueuesWithUnusualNames(final String queueName, - final String htmlEncodedName, final String jndiName) throws Exception { - JMSServerDeployer deployer = new JMSServerDeployer(jmsServer, deploymentManager); - - String xml = "<queue name=\"" + htmlEncodedName + "\">" + "<entry name=\"" + jndiName + "\"/>" + "</queue>"; - - Element rootNode = org.apache.activemq.utils.XMLUtil.stringToElement(xml); - - deployer.deploy(rootNode); + jmsServer.createQueue(false, queueName, null, false, jndiName); Queue queue = (Queue) context.lookup(jndiName); Assert.assertNotNull(queue); @@ -131,206 +119,15 @@ public class JMSServerDeployerTest extends ServiceTestBase } private void doTestDeployTopicsWithUnusualNames(final String topicName, - final String htmlEncodedName, final String jndiName) throws Exception { - JMSServerDeployer deployer = new JMSServerDeployer(jmsServer, deploymentManager); - - String xml = - - "<topic name=\"" + htmlEncodedName + "\">" + "<entry name=\"" + jndiName + "\"/>" + "</topic>"; - - Element rootNode = org.apache.activemq.utils.XMLUtil.stringToElement(xml); - - deployer.deploy(rootNode); + jmsServer.createTopic(false, topicName, jndiName); Topic topic = (Topic) context.lookup(jndiName); Assert.assertNotNull(topic); Assert.assertEquals(topicName, topic.getTopicName()); } - private void doTestDeployQueuesWithUnusualNames(final String queueName, final String jndiName) throws Exception - { - doTestDeployQueuesWithUnusualNames(queueName, queueName, jndiName); - } - - private void doTestDeployTopicsWithUnusualNames(final String topicName, final String jndiName) throws Exception - { - doTestDeployTopicsWithUnusualNames(topicName, topicName, jndiName); - } - - @Test - public void testDeployFullConfiguration() throws Exception - { - JMSServerDeployer deployer = new JMSServerDeployer(jmsServer, deploymentManager); - - String conf = "activemq-jms-for-JMSServerDeployerTest.xml"; - URI confURL = Thread.currentThread().getContextClassLoader().getResource(conf).toURI(); - - String[] connectionFactoryBindings = new String[]{"/fullConfigurationConnectionFactory", - "/acme/fullConfigurationConnectionFactory", - "java:/xyz/tfullConfigurationConnectionFactory", - "java:/connectionfactories/acme/fullConfigurationConnectionFactory"}; - String[] queueBindings = new String[]{"/fullConfigurationQueue", "/queue/fullConfigurationQueue"}; - String[] topicBindings = new String[]{"/fullConfigurationTopic", "/topic/fullConfigurationTopic"}; - - for (String binding : connectionFactoryBindings) - { - UnitTestCase.checkNoBinding(context, binding); - } - for (String binding : queueBindings) - { - UnitTestCase.checkNoBinding(context, binding); - } - for (String binding : topicBindings) - { - UnitTestCase.checkNoBinding(context, binding); - } - - deployer.deploy(confURL); - - for (String binding : connectionFactoryBindings) - { - UnitTestCase.checkBinding(context, binding); - } - for (String binding : queueBindings) - { - UnitTestCase.checkBinding(context, binding); - } - for (String binding : topicBindings) - { - UnitTestCase.checkBinding(context, binding); - } - - for (String binding : connectionFactoryBindings) - { - ActiveMQConnectionFactory cf = (ActiveMQConnectionFactory) context.lookup(binding); - Assert.assertNotNull(cf); - Assert.assertEquals(1234, cf.getClientFailureCheckPeriod()); - Assert.assertEquals(5678, cf.getCallTimeout()); - Assert.assertEquals(12345, cf.getConsumerWindowSize()); - Assert.assertEquals(6789, cf.getConsumerMaxRate()); - Assert.assertEquals(123456, cf.getConfirmationWindowSize()); - Assert.assertEquals(7712652, cf.getProducerWindowSize()); - Assert.assertEquals(789, cf.getProducerMaxRate()); - Assert.assertEquals(12, cf.getMinLargeMessageSize()); - Assert.assertEquals("TestClientID", cf.getClientID()); - Assert.assertEquals(3456, cf.getDupsOKBatchSize()); - Assert.assertEquals(4567, cf.getTransactionBatchSize()); - Assert.assertEquals(true, cf.isBlockOnAcknowledge()); - Assert.assertEquals(false, cf.isBlockOnNonDurableSend()); - Assert.assertEquals(true, cf.isBlockOnDurableSend()); - Assert.assertEquals(false, cf.isAutoGroup()); - Assert.assertEquals(true, cf.isPreAcknowledge()); - Assert.assertEquals(2345, cf.getConnectionTTL()); - assertEquals(true, cf.isFailoverOnInitialConnection()); - Assert.assertEquals(34, cf.getReconnectAttempts()); - Assert.assertEquals(5, cf.getRetryInterval()); - Assert.assertEquals(6.0, cf.getRetryIntervalMultiplier(), 0.000001); - Assert.assertEquals(true, cf.isCacheLargeMessagesClient()); - } - - for (String binding : queueBindings) - { - Queue queue = (Queue) context.lookup(binding); - Assert.assertNotNull(queue); - Assert.assertEquals("fullConfigurationQueue", queue.getQueueName()); - } - - for (String binding : topicBindings) - { - Topic topic = (Topic) context.lookup(binding); - Assert.assertNotNull(topic); - Assert.assertEquals("fullConfigurationTopic", topic.getTopicName()); - } - } - - @Test - public void testDeployFullConfiguration2() throws Exception - { - JMSServerDeployer deployer = new JMSServerDeployer(jmsServer, deploymentManager); - - String conf = "activemq-jms-for-JMSServerDeployerTest2.xml"; - URI confURL = Thread.currentThread().getContextClassLoader().getResource(conf).toURI(); - - String[] connectionFactoryBindings = new String[]{"/fullConfigurationConnectionFactory", - "/acme/fullConfigurationConnectionFactory", - "java:/xyz/tfullConfigurationConnectionFactory", - "java:/connectionfactories/acme/fullConfigurationConnectionFactory"}; - String[] queueBindings = new String[]{"/fullConfigurationQueue", "/queue/fullConfigurationQueue"}; - String[] topicBindings = new String[]{"/fullConfigurationTopic", "/topic/fullConfigurationTopic"}; - - for (String binding : connectionFactoryBindings) - { - UnitTestCase.checkNoBinding(context, binding); - } - for (String binding : queueBindings) - { - UnitTestCase.checkNoBinding(context, binding); - } - for (String binding : topicBindings) - { - UnitTestCase.checkNoBinding(context, binding); - } - - deployer.deploy(confURL); - - for (String binding : connectionFactoryBindings) - { - UnitTestCase.checkBinding(context, binding); - } - for (String binding : queueBindings) - { - UnitTestCase.checkBinding(context, binding); - } - for (String binding : topicBindings) - { - UnitTestCase.checkBinding(context, binding); - } - - for (String binding : connectionFactoryBindings) - { - ActiveMQConnectionFactory cf = (ActiveMQConnectionFactory) context.lookup(binding); - Assert.assertNotNull(cf); - Assert.assertEquals(1234, cf.getClientFailureCheckPeriod()); - Assert.assertEquals(5678, cf.getCallTimeout()); - Assert.assertEquals(12345, cf.getConsumerWindowSize()); - Assert.assertEquals(6789, cf.getConsumerMaxRate()); - Assert.assertEquals(123456, cf.getConfirmationWindowSize()); - Assert.assertEquals(7712652, cf.getProducerWindowSize()); - Assert.assertEquals(789, cf.getProducerMaxRate()); - Assert.assertEquals(12, cf.getMinLargeMessageSize()); - Assert.assertEquals("TestClientID", cf.getClientID()); - Assert.assertEquals(3456, cf.getDupsOKBatchSize()); - Assert.assertEquals(4567, cf.getTransactionBatchSize()); - Assert.assertEquals(true, cf.isBlockOnAcknowledge()); - Assert.assertEquals(false, cf.isBlockOnNonDurableSend()); - Assert.assertEquals(true, cf.isBlockOnDurableSend()); - Assert.assertEquals(false, cf.isAutoGroup()); - Assert.assertEquals(true, cf.isPreAcknowledge()); - Assert.assertEquals(2345, cf.getConnectionTTL()); - assertEquals(true, cf.isFailoverOnInitialConnection()); - Assert.assertEquals(34, cf.getReconnectAttempts()); - Assert.assertEquals(5, cf.getRetryInterval()); - Assert.assertEquals(6.0, cf.getRetryIntervalMultiplier(), 0.000001); - Assert.assertEquals(true, cf.isCacheLargeMessagesClient()); - } - - for (String binding : queueBindings) - { - Queue queue = (Queue) context.lookup(binding); - Assert.assertNotNull(queue); - Assert.assertEquals("fullConfigurationQueue", queue.getQueueName()); - } - - for (String binding : topicBindings) - { - Topic topic = (Topic) context.lookup(binding); - Assert.assertNotNull(topic); - Assert.assertEquals("fullConfigurationTopic", topic.getTopicName()); - } - } - // Package protected --------------------------------------------- // Protected ----------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/config/JMSServerConfigParserTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/config/JMSServerConfigParserTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/config/JMSServerConfigParserTest.java index 0255aab..0957a31 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/config/JMSServerConfigParserTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/jms/server/config/JMSServerConfigParserTest.java @@ -24,7 +24,6 @@ import java.net.URL; import org.apache.activemq.api.core.TransportConfiguration; import org.apache.activemq.core.config.Configuration; import org.apache.activemq.jms.server.JMSServerConfigParser; -import org.apache.activemq.jms.server.config.ConnectionFactoryConfiguration; import org.apache.activemq.jms.server.config.JMSConfiguration; import org.apache.activemq.jms.server.config.JMSQueueConfiguration; import org.apache.activemq.jms.server.config.TopicConfiguration; @@ -69,49 +68,15 @@ public class JMSServerConfigParserTest extends ServiceTestBase JMSConfiguration jmsconfig = parser.parseConfiguration(stream); stream.close(); - ConnectionFactoryConfiguration cfConfig = jmsconfig.getConnectionFactoryConfigurations().get(0); - - assertEquals(1234, cfConfig.getClientFailureCheckPeriod()); - assertEquals(5678, cfConfig.getCallTimeout()); - assertEquals(12345, cfConfig.getConsumerWindowSize()); - assertEquals(6789, cfConfig.getConsumerMaxRate()); - assertEquals(123456, cfConfig.getConfirmationWindowSize()); - assertEquals(7712652, cfConfig.getProducerWindowSize()); - assertEquals(789, cfConfig.getProducerMaxRate()); - assertEquals(12, cfConfig.getMinLargeMessageSize()); - assertEquals(true, cfConfig.isCompressLargeMessages()); - assertEquals("TestClientID", cfConfig.getClientID()); - assertEquals(3456, cfConfig.getDupsOKBatchSize()); - assertEquals(4567, cfConfig.getTransactionBatchSize()); - assertEquals(true, cfConfig.isBlockOnAcknowledge()); - assertEquals(false, cfConfig.isBlockOnNonDurableSend()); - assertEquals(true, cfConfig.isBlockOnDurableSend()); - assertEquals(false, cfConfig.isAutoGroup()); - assertEquals(true, cfConfig.isPreAcknowledge()); - assertEquals(2345, cfConfig.getConnectionTTL()); - assertEquals("FooClass", cfConfig.getLoadBalancingPolicyClassName()); - assertEquals(34, cfConfig.getReconnectAttempts()); - assertEquals(5, cfConfig.getRetryInterval()); - assertEquals(6.0, cfConfig.getRetryIntervalMultiplier(), 0.000001); - assertEquals(300, cfConfig.getMaxRetryInterval()); - assertEquals(true, cfConfig.isCacheLargeMessagesClient()); - - assertEquals(1, jmsconfig.getQueueConfigurations().size()); JMSQueueConfiguration queueConfig = jmsconfig.getQueueConfigurations().get(0); assertEquals("fullConfigurationQueue", queueConfig.getName()); - assertEquals(2, queueConfig.getBindings().length); - assertEquals("/fullConfigurationQueue", queueConfig.getBindings()[0]); - assertEquals("/queue/fullConfigurationQueue", queueConfig.getBindings()[1]); assertEquals(1, jmsconfig.getTopicConfigurations().size()); TopicConfiguration topicConfig = jmsconfig.getTopicConfigurations().get(0); assertEquals("fullConfigurationTopic", topicConfig.getName()); - assertEquals(2, topicConfig.getBindings().length); - assertEquals("/fullConfigurationTopic", topicConfig.getBindings()[0]); - assertEquals("/topic/fullConfigurationTopic", topicConfig.getBindings()[1]); } http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java index 355b68c..7778a45 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/ra/ActiveMQRATestBase.java @@ -119,6 +119,7 @@ public abstract class ActiveMQRATestBase extends JMSTestBase isDeliveryTransacted = deliveryTransacted; } + @Override public MessageEndpoint createEndpoint(XAResource xaResource) throws UnavailableException { if (xaResource != null) @@ -196,11 +197,13 @@ public abstract class ActiveMQRATestBase extends JMSTestBase return null; } + @Override public WorkManager getWorkManager() { return workManager; } + @Override public XATerminator getXATerminator() { return null; @@ -208,29 +211,35 @@ public abstract class ActiveMQRATestBase extends JMSTestBase class DummyWorkManager implements WorkManager { + @Override public void doWork(Work work) throws WorkException { } + @Override public void doWork(Work work, long l, ExecutionContext executionContext, WorkListener workListener) throws WorkException { } + @Override public long startWork(Work work) throws WorkException { return 0; } + @Override public long startWork(Work work, long l, ExecutionContext executionContext, WorkListener workListener) throws WorkException { return 0; } + @Override public void scheduleWork(Work work) throws WorkException { work.run(); } + @Override public void scheduleWork(Work work, long l, ExecutionContext executionContext, WorkListener workListener) throws WorkException { } http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/spring/SpringIntegrationTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/spring/SpringIntegrationTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/spring/SpringIntegrationTest.java index ff9d7dc..b9cd6f2 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/spring/SpringIntegrationTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/integration/spring/SpringIntegrationTest.java @@ -50,9 +50,10 @@ public class SpringIntegrationTest extends UnitTestCase public void testSpring() throws Exception { System.out.println("Creating bean factory..."); - ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"spring-jms-beans.xml"}); + ApplicationContext context = null; try { + context = new ClassPathXmlApplicationContext(new String[]{"spring-jms-beans.xml"}); MessageSender sender = (MessageSender) context.getBean("MessageSender"); System.out.println("Sending message..."); ExampleListener.latch.countUp(); @@ -66,8 +67,11 @@ public class SpringIntegrationTest extends UnitTestCase { try { - DefaultMessageListenerContainer container = (DefaultMessageListenerContainer) context.getBean("listenerContainer"); - container.stop(); + if (context != null) + { + DefaultMessageListenerContainer container = (DefaultMessageListenerContainer) context.getBean("listenerContainer"); + container.stop(); + } } catch (Throwable ignored) { @@ -75,8 +79,11 @@ public class SpringIntegrationTest extends UnitTestCase } try { - EmbeddedJMS jms = (EmbeddedJMS) context.getBean("EmbeddedJms"); - jms.stop(); + if (context != null) + { + EmbeddedJMS jms = (EmbeddedJMS) context.getBean("EmbeddedJms"); + jms.stop(); + } } catch (Throwable ignored) { http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/java/org/apache/activemq/tests/util/NonSerializableFactory.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/tests/util/NonSerializableFactory.java b/tests/integration-tests/src/test/java/org/apache/activemq/tests/util/NonSerializableFactory.java index f1a62d5..6d1bba7 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/tests/util/NonSerializableFactory.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/tests/util/NonSerializableFactory.java @@ -21,14 +21,12 @@ import javax.naming.Name; import javax.naming.NamingException; import javax.naming.RefAddr; import javax.naming.Reference; -import javax.naming.StringRefAddr; import javax.naming.spi.ObjectFactory; import java.util.Collections; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; -import org.jboss.util.naming.Util; /** * used by the default context when running in embedded local configuration @@ -43,47 +41,47 @@ public final class NonSerializableFactory implements ObjectFactory // Utility } - public static void unbind(final Context ctx, final String strName) throws NamingException - { - Name name = ctx.getNameParser("").parse(strName); - int size = name.size(); - String atom = name.get(size - 1); - Context parentCtx = Util.createSubcontext(ctx, name.getPrefix(size - 1)); - String key = new StringBuilder().append(parentCtx.getNameInNamespace()).append("/").append(atom).toString(); - NonSerializableFactory.getWrapperMap().remove(key); - Util.unbind(ctx, strName); - } - - public static void rebind(final Context ctx, final String strName, final Object value) throws NamingException - { - Name name = ctx.getNameParser("").parse(strName); - int size = name.size(); - String atom = name.get(size - 1); - Context parentCtx = Util.createSubcontext(ctx, name.getPrefix(size - 1)); - String key = new StringBuilder().append(parentCtx.getNameInNamespace()).append("/").append(atom).toString(); - NonSerializableFactory.getWrapperMap().put(key, value); - String className = value.getClass().getName(); - String factory = NonSerializableFactory.class.getName(); - StringRefAddr addr = new StringRefAddr("nns", key); - Reference memoryRef = new Reference(className, addr, factory, null); - parentCtx.rebind(atom, memoryRef); - } - - public static void bind(final Context ctx, final String strName, final Object value) throws NamingException - { - Name name = ctx.getNameParser("").parse(strName); - int size = name.size(); - String atom = name.get(size - 1); - Context parentCtx = Util.createSubcontext(ctx, name.getPrefix(size - 1)); - String key = new StringBuilder().append(parentCtx.getNameInNamespace()).append("/").append(atom).toString(); - NonSerializableFactory.getWrapperMap().put(key, value); - String className = value.getClass().getName(); - String factory = NonSerializableFactory.class.getName(); - StringRefAddr addr = new StringRefAddr("nns", key); - Reference memoryRef = new Reference(className, addr, factory, null); - - parentCtx.bind(atom, memoryRef); - } +// public static void unbind(final Context ctx, final String strName) throws NamingException +// { +// Name name = ctx.getNameParser("").parse(strName); +// int size = name.size(); +// String atom = name.get(size - 1); +// Context parentCtx = Util.createSubcontext(ctx, name.getPrefix(size - 1)); +// String key = new StringBuilder().append(parentCtx.getNameInNamespace()).append("/").append(atom).toString(); +// NonSerializableFactory.getWrapperMap().remove(key); +// Util.unbind(ctx, strName); +// } +// +// public static void rebind(final Context ctx, final String strName, final Object value) throws NamingException +// { +// Name name = ctx.getNameParser("").parse(strName); +// int size = name.size(); +// String atom = name.get(size - 1); +// Context parentCtx = Util.createSubcontext(ctx, name.getPrefix(size - 1)); +// String key = new StringBuilder().append(parentCtx.getNameInNamespace()).append("/").append(atom).toString(); +// NonSerializableFactory.getWrapperMap().put(key, value); +// String className = value.getClass().getName(); +// String factory = NonSerializableFactory.class.getName(); +// StringRefAddr addr = new StringRefAddr("nns", key); +// Reference memoryRef = new Reference(className, addr, factory, null); +// parentCtx.rebind(atom, memoryRef); +// } +// +// public static void bind(final Context ctx, final String strName, final Object value) throws NamingException +// { +// Name name = ctx.getNameParser("").parse(strName); +// int size = name.size(); +// String atom = name.get(size - 1); +// Context parentCtx = Util.createSubcontext(ctx, name.getPrefix(size - 1)); +// String key = new StringBuilder().append(parentCtx.getNameInNamespace()).append("/").append(atom).toString(); +// NonSerializableFactory.getWrapperMap().put(key, value); +// String className = value.getClass().getName(); +// String factory = NonSerializableFactory.class.getName(); +// StringRefAddr addr = new StringRefAddr("nns", key); +// Reference memoryRef = new Reference(className, addr, factory, null); +// +// parentCtx.bind(atom, memoryRef); +// } public static Object lookup(final String name) throws NamingException { http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest.xml ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest.xml b/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest.xml index 021796c..8fb11a9 100644 --- a/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest.xml +++ b/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest.xml @@ -2,52 +2,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq ../../src/schemas/activemq-jms.xsd "> - <connection-factory name="fullConfigurationConnectionFactory"> - <entries> - <entry name="/fullConfigurationConnectionFactory"/> - <entry name="/acme/fullConfigurationConnectionFactory"/> - <entry name="java:/xyz/tfullConfigurationConnectionFactory"/> - <entry name="java:/connectionfactories/acme/fullConfigurationConnectionFactory"/> - </entries> - <connectors> - <connector-ref connector-name="netty"/> - </connectors> - <client-failure-check-period>1234</client-failure-check-period> - <call-timeout>5678</call-timeout> - <consumer-window-size>12345</consumer-window-size> - <consumer-max-rate>6789</consumer-max-rate> - <confirmation-window-size>123456</confirmation-window-size> - <producer-window-size>7712652</producer-window-size> - <producer-max-rate>789</producer-max-rate> - <min-large-message-size>12</min-large-message-size> - <compress-large-messages>true</compress-large-messages> - <client-id>TestClientID</client-id> - <dups-ok-batch-size>3456</dups-ok-batch-size> - <transaction-batch-size>4567</transaction-batch-size> - <block-on-acknowledge>true</block-on-acknowledge> - <block-on-non-durable-send>false</block-on-non-durable-send> - <block-on-durable-send>true</block-on-durable-send> - <auto-group>false</auto-group> - <pre-acknowledge>true</pre-acknowledge> - <connection-ttl>2345</connection-ttl> - <failover-on-initial-connection>true</failover-on-initial-connection> - <failover-on-server-shutdown>false</failover-on-server-shutdown> - <connection-load-balancing-policy-class-name>FooClass</connection-load-balancing-policy-class-name> - <reconnect-attempts>34</reconnect-attempts> - <retry-interval>5</retry-interval> - <retry-interval-multiplier>6.0</retry-interval-multiplier> - <max-retry-interval>300</max-retry-interval> - <cache-large-message-client>true</cache-large-message-client> - </connection-factory> + <queue name="fullConfigurationQueue"/> - <queue name="fullConfigurationQueue"> - <entry name="/fullConfigurationQueue"/> - <entry name="/queue/fullConfigurationQueue"/> - </queue> - - <topic name="fullConfigurationTopic"> - <entry name="/fullConfigurationTopic"/> - <entry name="/topic/fullConfigurationTopic"/> - </topic> + <topic name="fullConfigurationTopic"/> </configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest2.xml ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest2.xml b/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest2.xml index 0e59ead..8fb11a9 100644 --- a/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest2.xml +++ b/tests/integration-tests/src/test/resources/activemq-jms-for-JMSServerDeployerTest2.xml @@ -2,52 +2,8 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq ../../src/schemas/activemq-jms.xsd "> - <connection-factory name="fullConfigurationConnectionFactory"> - <entries> - <entry name="/fullConfigurationConnectionFactory"/> - <entry name="/acme/fullConfigurationConnectionFactory"/> - <entry name="java:/xyz/tfullConfigurationConnectionFactory"/> - <entry name="java:/connectionfactories/acme/fullConfigurationConnectionFactory"/> - </entries> - <connectors> - <connector-ref connector-name="netty"/> - </connectors> - <discovery-group-ref discovery-group-name="mygroup"/> - <client-failure-check-period>1234</client-failure-check-period> - <call-timeout>5678</call-timeout> - <consumer-window-size>12345</consumer-window-size> - <consumer-max-rate>6789</consumer-max-rate> - <confirmation-window-size>123456</confirmation-window-size> - <producer-window-size>7712652</producer-window-size> - <producer-max-rate>789</producer-max-rate> - <min-large-message-size>12</min-large-message-size> - <client-id>TestClientID</client-id> - <dups-ok-batch-size>3456</dups-ok-batch-size> - <transaction-batch-size>4567</transaction-batch-size> - <block-on-acknowledge>true</block-on-acknowledge> - <block-on-non-durable-send>false</block-on-non-durable-send> - <block-on-durable-send>true</block-on-durable-send> - <auto-group>false</auto-group> - <pre-acknowledge>true</pre-acknowledge> - <connection-ttl>2345</connection-ttl> - <failover-on-initial-connection>true</failover-on-initial-connection> - <failover-on-server-shutdown>false</failover-on-server-shutdown> - <connection-load-balancing-policy-class-name>FooClass</connection-load-balancing-policy-class-name> - <reconnect-attempts>34</reconnect-attempts> - <retry-interval>5</retry-interval> - <retry-interval-multiplier>6.0</retry-interval-multiplier> - <max-retry-interval>300</max-retry-interval> - <cache-large-message-client>true</cache-large-message-client> - </connection-factory> + <queue name="fullConfigurationQueue"/> - <queue name="fullConfigurationQueue"> - <entry name="/fullConfigurationQueue"/> - <entry name="/queue/fullConfigurationQueue"/> - </queue> - - <topic name="fullConfigurationTopic"> - <entry name="/fullConfigurationTopic"/> - <entry name="/topic/fullConfigurationTopic"/> - </topic> + <topic name="fullConfigurationTopic"/> </configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config1.xml ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config1.xml b/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config1.xml index b57c8a5..00b7d07 100644 --- a/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config1.xml +++ b/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config1.xml @@ -1,18 +1,7 @@ <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq /schema/activemq-jms.xsd"> - <!--the connection factory used by the example--> - <connection-factory name="ConnectionFactory"> - <connectors> - <connector-ref connector-name="netty-connector"/> - </connectors> - <entries> - <entry name="ConnectionFactory"/> - </entries> - </connection-factory> - <queue name="myJMSQueue"> - <entry name="myJMSQueue"/> - </queue> + <queue name="myJMSQueue"/> </configuration> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config2.xml ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config2.xml b/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config2.xml index b57c8a5..00b7d07 100644 --- a/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config2.xml +++ b/tests/integration-tests/src/test/resources/colocated-server-start-stop-jms-config2.xml @@ -1,18 +1,7 @@ <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq /schema/activemq-jms.xsd"> - <!--the connection factory used by the example--> - <connection-factory name="ConnectionFactory"> - <connectors> - <connector-ref connector-name="netty-connector"/> - </connectors> - <entries> - <entry name="ConnectionFactory"/> - </entries> - </connection-factory> - <queue name="myJMSQueue"> - <entry name="myJMSQueue"/> - </queue> + <queue name="myJMSQueue"/> </configuration> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/resources/server-start-stop-jms-config1.xml ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/resources/server-start-stop-jms-config1.xml b/tests/integration-tests/src/test/resources/server-start-stop-jms-config1.xml index f2fb22c..5987e7e 100644 --- a/tests/integration-tests/src/test/resources/server-start-stop-jms-config1.xml +++ b/tests/integration-tests/src/test/resources/server-start-stop-jms-config1.xml @@ -1,18 +1,7 @@ <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq /schema/activemq-jms.xsd"> - <!--the connection factory used by the example--> - <connection-factory name="ConnectionFactory"> - <connectors> - <connector-ref connector-name="netty-connector"/> - </connectors> - <entries> - <entry name="ConnectionFactory"/> - </entries> - </connection-factory> - <queue name="myJMSQueue"> - <entry name="myJMSQueue"/> - </queue> + <queue name="myJMSQueue"/> </configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/resources/spring-activemq-jms.xml ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/resources/spring-activemq-jms.xml b/tests/integration-tests/src/test/resources/spring-activemq-jms.xml index bce97ab..3758989 100644 --- a/tests/integration-tests/src/test/resources/spring-activemq-jms.xml +++ b/tests/integration-tests/src/test/resources/spring-activemq-jms.xml @@ -1,19 +1,8 @@ <configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq /schema/activemq-jms.xsd"> - <!--the connection factory used by the example--> - <connection-factory name="ConnectionFactory"> - <connectors> - <connector-ref connector-name="in-vm"/> - </connectors> - <entries> - <entry name="ConnectionFactory"/> - </entries> - </connection-factory> <!--the queue used by the example--> - <queue name="exampleQueue"> - <entry name="/queue/exampleQueue"/> - </queue> + <queue name="exampleQueue"/> </configuration> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/integration-tests/src/test/resources/spring-jms-beans.xml ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/resources/spring-jms-beans.xml b/tests/integration-tests/src/test/resources/spring-jms-beans.xml index 7dee319..38bb944 100644 --- a/tests/integration-tests/src/test/resources/spring-jms-beans.xml +++ b/tests/integration-tests/src/test/resources/spring-jms-beans.xml @@ -9,16 +9,29 @@ <property name="jmsConfigResourcePath" value="spring-activemq-jms.xml"/> </bean> + <bean id="connectionFactory" class="org.apache.activemq.jms.client.ActiveMQJMSConnectionFactory"> + <constructor-arg value="false" /> + <constructor-arg> + <bean class="org.apache.activemq.api.core.TransportConfiguration"> + <constructor-arg value="org.apache.activemq.core.remoting.impl.invm.InVMConnectorFactory" /> + </bean> + </constructor-arg> + </bean> + + <bean id="exampleQueue" class="org.apache.activemq.jms.client.ActiveMQQueue"> + <constructor-arg index="0" value="exampleQueue"/> + </bean> + <bean id="listener" class="org.apache.activemq.tests.integration.spring.ExampleListener"/> <bean id="MessageSender" class="org.apache.activemq.tests.integration.spring.MessageSender"> - <property name="connectionFactory" ref="ConnectionFactory"/> - <property name="destination" ref="/queue/exampleQueue"/> + <property name="connectionFactory" ref="connectionFactory"/> + <property name="destination" ref="exampleQueue"/> </bean> <bean id="listenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> - <property name="connectionFactory" ref="ConnectionFactory"/> - <property name="destination" ref="/queue/exampleQueue"/> + <property name="connectionFactory" ref="connectionFactory"/> + <property name="destination" ref="exampleQueue"/> <property name="messageListener" ref="listener"/> </bean> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/jms-tests/pom.xml ---------------------------------------------------------------------- diff --git a/tests/jms-tests/pom.xml b/tests/jms-tests/pom.xml index e9a6aee..287a0da 100644 --- a/tests/jms-tests/pom.xml +++ b/tests/jms-tests/pom.xml @@ -79,10 +79,6 @@ <artifactId>junit</artifactId> </dependency> <dependency> - <groupId>org.jboss.naming</groupId> - <artifactId>jnpserver</artifactId> - </dependency> - <dependency> <groupId>apache-logging</groupId> <artifactId>commons-logging</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/activemq-6/blob/e6a3d3a0/tests/jms-tests/src/test/java/org/apache/activemq/jms/tests/ActiveMQServerTestCase.java ---------------------------------------------------------------------- diff --git a/tests/jms-tests/src/test/java/org/apache/activemq/jms/tests/ActiveMQServerTestCase.java b/tests/jms-tests/src/test/java/org/apache/activemq/jms/tests/ActiveMQServerTestCase.java index 7bc2a0c..12247ea 100644 --- a/tests/jms-tests/src/test/java/org/apache/activemq/jms/tests/ActiveMQServerTestCase.java +++ b/tests/jms-tests/src/test/java/org/apache/activemq/jms/tests/ActiveMQServerTestCase.java @@ -39,6 +39,7 @@ import java.util.Set; import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple; import org.apache.activemq.api.core.SimpleString; +import org.apache.activemq.api.jms.JMSFactoryType; import org.apache.activemq.core.postoffice.Binding; import org.apache.activemq.core.postoffice.impl.LocalQueueBinding; import org.apache.activemq.core.security.Role; @@ -245,6 +246,9 @@ public abstract class ActiveMQServerTestCase createQueue("Queue2"); createQueue("Queue3"); createQueue("Queue4"); + deployConnectionFactory(0, JMSFactoryType.CF, "ConnectionFactory", "/ConnectionFactory"); + deployConnectionFactory(0, JMSFactoryType.TOPIC_CF, "CF_TOPIC", "/CF_TOPIC"); + deployConnectionFactory(0, JMSFactoryType.XA_CF, "CF_XA_TRUE", "/CF_XA_TRUE"); } private void lookUp() throws Exception @@ -276,6 +280,10 @@ public abstract class ActiveMQServerTestCase destroyQueue("Queue2"); destroyQueue("Queue3"); destroyQueue("Queue4"); + + undeployConnectionFactory("ConnectionFactory"); + undeployConnectionFactory("CF_TOPIC"); + undeployConnectionFactory("CF_XA_TRUE"); } @AfterClass @@ -490,6 +498,11 @@ public abstract class ActiveMQServerTestCase ActiveMQServerTestCase.servers.get(server).deployConnectionFactory(objectName, jndiBindings); } + public static void deployConnectionFactory(final int server, JMSFactoryType type, final String objectName, final String... jndiBindings) throws Exception + { + ActiveMQServerTestCase.servers.get(server).deployConnectionFactory(objectName, type, jndiBindings); + } + public void deployConnectionFactory(final String clientId, final String objectName, final int prefetchSize, @@ -503,6 +516,7 @@ public abstract class ActiveMQServerTestCase final String... jndiBindings) throws Exception { ActiveMQServerTestCase.servers.get(0).deployConnectionFactory(clientId, + JMSFactoryType.CF, objectName, prefetchSize, defaultTempQueueFullSize,
