diff --git a/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java b/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java index 539ddeee9b..7d5d3f0397 100644 --- a/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java +++ b/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java @@ -46,6 +46,7 @@ import org.apache.activemq.artemis.core.server.BindingQueryResult; import org.apache.activemq.artemis.core.server.Queue; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; import org.apache.activemq.artemis.jms.client.ActiveMQDestination; +import org.apache.activemq.artemis.jms.client.DefaultConnectionProperties; import org.apache.activemq.artemis.jms.server.config.JMSConfiguration; import org.apache.activemq.artemis.jms.server.config.impl.FileJMSConfiguration; import org.apache.activemq.artemis.jms.server.config.impl.JMSConfigurationImpl; @@ -89,11 +90,34 @@ public class EmbeddedJMSResource extends ExternalResource { * Create a default EmbeddedJMSResource */ public EmbeddedJMSResource() { - configuration = new ConfigurationImpl().setName(SERVER_NAME).setPersistenceEnabled(false).setSecurityEnabled(false).addAcceptorConfiguration(new TransportConfiguration(InVMAcceptorFactory.class.getName())); + this(false); + } - jmsConfiguration = new JMSConfigurationImpl(); + /** + * Create a default EmbeddedJMSResource + */ + public EmbeddedJMSResource(boolean useNetty) { + try { + configuration = new ConfigurationImpl().setName(SERVER_NAME).setPersistenceEnabled(false).setSecurityEnabled(false).addAcceptorConfiguration("invm", "vm://0"); - init(); + if (useNetty) { + configuration.addAcceptorConfiguration("netty", DefaultConnectionProperties.DEFAULT_BROKER_BIND_URL); + } + + jmsConfiguration = new JMSConfigurationImpl(); + + init(); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * The acceptor used + */ + public EmbeddedJMSResource addAcceptor(String name, String uri) throws Exception { + configuration.addAcceptorConfiguration(name, uri); + return this; } /** diff --git a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceQueueTest.java b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceQueueTest.java index bb2bf6b03a..09051c90a3 100644 --- a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceQueueTest.java +++ b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/EmbeddedJMSResourceQueueTest.java @@ -108,4 +108,4 @@ public class EmbeddedJMSResourceQueueTest { pushed = jmsServer.pushMessageWithProperties(TEST_DESTINATION_NAME, (Serializable) TEST_BODY, TEST_PROPERTIES); } -} \ No newline at end of file +} diff --git a/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/PlainTest.java b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/PlainTest.java new file mode 100644 index 0000000000..80be184cf1 --- /dev/null +++ b/artemis-junit/src/test/java/org/apache/activemq/artemis/junit/PlainTest.java @@ -0,0 +1,48 @@ +/* + * 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.artemis.junit; + +import javax.jms.Connection; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Session; + +import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; +import org.junit.Assert; +import org.junit.Rule; +import org.junit.Test; + +public class PlainTest { + + @Rule + public EmbeddedJMSResource server = new EmbeddedJMSResource(true); + + @Test + public void testPlain() throws Exception { + ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory(); + Connection connection = cf.createConnection(); + Session session = connection.createSession(); + MessageProducer producer = session.createProducer(session.createQueue("queue")); + producer.send(session.createTextMessage("hello")); + connection.start(); + MessageConsumer consumer = session.createConsumer(session.createQueue("queue")); + Assert.assertNotNull(consumer.receive(5000)); + connection.close(); + + } + +}