Revert "ARTEMIS-1954 eliminate all possible usage of JMSServerManager"
This reverts commit d35f01d25d898d50d90c17be534d127074ec7618. Redeployment of JMS Queues is broken. Please re-submit your PR after fixing RedeployTest and its redeployment options. Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/cf8f0cac Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/cf8f0cac Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/cf8f0cac Branch: refs/heads/master Commit: cf8f0cac81bf591059ee04c9401c51f9999459bd Parents: 7d5a31a Author: Clebert Suconic <[email protected]> Authored: Fri Jul 13 11:29:28 2018 -0400 Committer: Clebert Suconic <[email protected]> Committed: Fri Jul 13 11:29:28 2018 -0400 ---------------------------------------------------------------------- .../cdi/factory/ConnectionFactoryProvider.java | 4 +- .../jms/server/embedded/EmbeddedJMS.java | 5 - .../artemis/junit/EmbeddedJMSResource.java | 4 - .../integration/ActiveMQBootstrapListener.java | 15 ++- .../rest/integration/EmbeddedRestActiveMQ.java | 13 +- .../integration/EmbeddedRestActiveMQJMS.java | 7 +- .../EmbeddedRestActiveMQJMSTest.java | 34 +++-- .../artemis/rest/test/EmbeddedTest.java | 19 ++- artemis-rest/src/test/resources/broker.xml | 60 +++++---- docs/user-manual/en/unit-testing.md | 8 +- .../src/main/resources/spring-jms-beans.xml | 5 +- .../spring/SpringBindingRegistry.java | 4 - .../integration/spring/SpringJmsBootstrap.java | 5 - .../addressConfig/artemisServer.groovy | 1 - .../main/resources/servers/artemisServer.groovy | 1 - .../byteman/JMSBridgeReconnectionTest.java | 6 +- .../tests/extras/jms/bridge/BridgeTestBase.java | 64 +++++++-- .../jms/bridge/ClusteredBridgeTestBase.java | 37 ++++-- .../jms/bridge/JMSBridgeReconnectionTest.java | 24 ++-- .../tests/extras/jms/bridge/JMSBridgeTest.java | 12 +- .../hornetq/HornetQProtocolManagerTest.java | 51 ++++++-- .../integration/client/FailureDeadlockTest.java | 9 +- .../crossprotocol/AMQPToOpenwireTest.java | 4 +- .../tests/integration/jms/FloodServerTest.java | 36 ++++- .../ManualReconnectionToSingleServerTest.java | 45 ++++--- .../tests/integration/jms/RedeployTest.java | 113 ++++++++-------- .../jms/client/RemoteConnectionStressTest.java | 20 ++- .../jms/cluster/JMSFailoverListenerTest.java | 30 ++++- .../jms/connection/ExceptionListenerTest.java | 12 +- .../jms/server/JMSServerStartStopTest.java | 22 +++- .../integration/openwire/OpenWireTestBase.java | 41 +++++- .../amq/ConnectionErrorSocketCloseTest.java | 11 +- .../paging/MultipleProducersPagingTest.java | 39 +++--- .../integration/persistence/SyncSendTest.java | 10 +- .../integration/plugin/StompPluginTest.java | 10 +- .../spring/SpringIntegrationTest.java | 4 +- .../tests/integration/stomp/FQQNStompTest.java | 2 +- .../stomp/StompConnectionCleanupTest.java | 16 +-- .../tests/integration/stomp/StompTest.java | 130 ++++++++++--------- .../tests/integration/stomp/StompTestBase.java | 27 ++-- .../stomp/StompTestMultiThreaded.java | 6 +- .../stomp/StompWebSocketMaxFrameTest.java | 2 +- .../integration/stomp/StompWebSocketTest.java | 14 +- .../stomp/StompWithClientIdValidationTest.java | 14 +- .../stomp/StompWithLargeMessagesTest.java | 2 +- .../stomp/StompWithSecurityTest.java | 2 +- .../integration/stomp/v11/StompV11Test.java | 24 ++-- .../integration/stomp/v12/StompV12Test.java | 8 +- .../src/test/resources/spring-jms-beans.xml | 2 +- .../artemis/jms/tests/AcknowledgementTest.java | 13 +- .../jms/tests/ActiveMQServerTestCase.java | 5 + .../artemis/jms/tests/CTSMiscellaneousTest.java | 16 ++- .../activemq/artemis/jms/tests/JMSTestCase.java | 16 ++- .../artemis/jms/tests/SecurityTest.java | 1 - .../artemis/common/SpawnedJMSServer.java | 9 +- .../jms/bridge/impl/JMSBridgeImplTest.java | 20 ++- 56 files changed, 713 insertions(+), 401 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-cdi-client/src/main/java/org/apache/artemis/client/cdi/factory/ConnectionFactoryProvider.java ---------------------------------------------------------------------- diff --git a/artemis-cdi-client/src/main/java/org/apache/artemis/client/cdi/factory/ConnectionFactoryProvider.java b/artemis-cdi-client/src/main/java/org/apache/artemis/client/cdi/factory/ConnectionFactoryProvider.java index de53dc0..b249474 100644 --- a/artemis-cdi-client/src/main/java/org/apache/artemis/client/cdi/factory/ConnectionFactoryProvider.java +++ b/artemis-cdi-client/src/main/java/org/apache/artemis/client/cdi/factory/ConnectionFactoryProvider.java @@ -35,6 +35,7 @@ import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants; import org.apache.activemq.artemis.core.server.ActiveMQServer; import org.apache.activemq.artemis.core.server.ActiveMQServers; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; +import org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl; import org.apache.artemis.client.cdi.configuration.ArtemisClientConfiguration; @ApplicationScoped @@ -55,7 +56,8 @@ public class ConnectionFactoryProvider { if (configuration.startEmbeddedBroker()) { try { ActiveMQServer activeMQServer = ActiveMQServers.newActiveMQServer(embeddedConfiguration, false); - activeMQServer.start(); + JMSServerManagerImpl jmsServerManager = new JMSServerManagerImpl(activeMQServer); + jmsServerManager.start(); } catch (Exception e) { throw new RuntimeException("Unable to start embedded JMS", e); } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/embedded/EmbeddedJMS.java ---------------------------------------------------------------------- diff --git a/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/embedded/EmbeddedJMS.java b/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/embedded/EmbeddedJMS.java index 4904242..5efffe6 100644 --- a/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/embedded/EmbeddedJMS.java +++ b/artemis-jms-server/src/main/java/org/apache/activemq/artemis/jms/server/embedded/EmbeddedJMS.java @@ -30,17 +30,12 @@ import org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl; import org.apache.activemq.artemis.spi.core.naming.BindingRegistry; /** - * Deprecated in favor of org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ. Since Artemis 2.0 all JMS - * specific broker management classes, interfaces, and methods have been deprecated in favor of their more general - * counter-parts. - * * Simple bootstrap class that parses activemq config files (server and jms and security) and starts * an ActiveMQServer instance and populates it with configured JMS endpoints. * <p> * JMS Endpoints are registered with a simple MapBindingRegistry. If you want to use a different registry * you must set the registry property of this class or call the setRegistry() method if you want to use JNDI */ -@Deprecated public class EmbeddedJMS extends EmbeddedActiveMQ { protected JMSServerManagerImpl serverManager; http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-junit/src/main/java/org/apache/activemq/artemis/junit/EmbeddedJMSResource.java ---------------------------------------------------------------------- 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 be21a6f..3a2b05d 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 @@ -56,9 +56,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Deprecated in favor of EmbeddedActiveMQResource. Since Artemis 2.0 all JMS specific broker management classes, - * interfaces, and methods have been deprecated in favor of their more general counter-parts. - * * A JUnit Rule that embeds an ActiveMQ Artemis JMS server into a test. * * This JUnit Rule is designed to simplify using embedded servers in unit tests. Adding the rule to a test will startup @@ -76,7 +73,6 @@ import org.slf4j.LoggerFactory; * } * </code></pre> */ -@Deprecated public class EmbeddedJMSResource extends ExternalResource { static final String SERVER_NAME = "embedded-jms-server"; http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/ActiveMQBootstrapListener.java ---------------------------------------------------------------------- diff --git a/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/ActiveMQBootstrapListener.java b/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/ActiveMQBootstrapListener.java index 035cfee..0fb3731 100644 --- a/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/ActiveMQBootstrapListener.java +++ b/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/ActiveMQBootstrapListener.java @@ -16,20 +16,23 @@ */ package org.apache.activemq.artemis.rest.integration; +import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; -import org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ; +import org.apache.activemq.artemis.jms.server.embedded.EmbeddedJMS; public class ActiveMQBootstrapListener implements ServletContextListener { - private EmbeddedActiveMQ activeMQ; + private EmbeddedJMS jms; @Override public void contextInitialized(ServletContextEvent contextEvent) { - activeMQ = new EmbeddedActiveMQ(); + ServletContext context = contextEvent.getServletContext(); + jms = new EmbeddedJMS(); + jms.setRegistry(new ServletContextBindingRegistry(context)); try { - activeMQ.start(); + jms.start(); } catch (Exception e) { throw new RuntimeException(e); } @@ -38,8 +41,8 @@ public class ActiveMQBootstrapListener implements ServletContextListener { @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { try { - if (activeMQ != null) - activeMQ.stop(); + if (jms != null) + jms.stop(); } catch (Exception e) { throw new RuntimeException(e); } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQ.java ---------------------------------------------------------------------- diff --git a/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQ.java b/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQ.java index 7a24caa..fff8a44 100644 --- a/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQ.java +++ b/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQ.java @@ -22,13 +22,13 @@ import org.apache.activemq.artemis.rest.MessageServiceManager; import org.jboss.resteasy.plugins.server.tjws.TJWSEmbeddedJaxrsServer; import org.jboss.resteasy.test.TestPortProvider; -public class EmbeddedRestActiveMQ { +class EmbeddedRestActiveMQ { private TJWSEmbeddedJaxrsServer tjws = new TJWSEmbeddedJaxrsServer(); - private EmbeddedActiveMQ embeddedActiveMQ; + EmbeddedActiveMQ embeddedActiveMQ; private MessageServiceManager manager = new MessageServiceManager(null); - public EmbeddedRestActiveMQ(ConnectionFactoryOptions jmsOptions) { + EmbeddedRestActiveMQ(ConnectionFactoryOptions jmsOptions) { int port = TestPortProvider.getPort(); tjws.setPort(port); tjws.setRootResourcePath(""); @@ -65,11 +65,4 @@ public class EmbeddedRestActiveMQ { embeddedActiveMQ.stop(); } - public EmbeddedActiveMQ getEmbeddedActiveMQ() { - return embeddedActiveMQ; - } - - public void setEmbeddedActiveMQ(EmbeddedActiveMQ embeddedActiveMQ) { - this.embeddedActiveMQ = embeddedActiveMQ; - } } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMS.java ---------------------------------------------------------------------- diff --git a/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMS.java b/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMS.java index 8be6903..550be7d 100644 --- a/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMS.java +++ b/artemis-rest/src/main/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMS.java @@ -20,7 +20,6 @@ import org.apache.activemq.artemis.jms.client.ConnectionFactoryOptions; import org.apache.activemq.artemis.jms.server.embedded.EmbeddedJMS; import org.apache.activemq.artemis.spi.core.naming.BindingRegistry; -@Deprecated public class EmbeddedRestActiveMQJMS extends EmbeddedRestActiveMQ { public EmbeddedRestActiveMQJMS(ConnectionFactoryOptions jmsOptions) { @@ -29,14 +28,14 @@ public class EmbeddedRestActiveMQJMS extends EmbeddedRestActiveMQ { @Override protected void initEmbeddedActiveMQ() { - super.setEmbeddedActiveMQ(new EmbeddedJMS()); + embeddedActiveMQ = new EmbeddedJMS(); } public BindingRegistry getRegistry() { - return ((EmbeddedJMS) getEmbeddedActiveMQ()).getRegistry(); + return ((EmbeddedJMS) embeddedActiveMQ).getRegistry(); } public EmbeddedJMS getEmbeddedJMS() { - return (EmbeddedJMS) getEmbeddedActiveMQ(); + return (EmbeddedJMS) embeddedActiveMQ; } } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMSTest.java ---------------------------------------------------------------------- diff --git a/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMSTest.java b/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMSTest.java index 88ac35f..f012020 100644 --- a/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMSTest.java +++ b/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/integration/EmbeddedRestActiveMQJMSTest.java @@ -19,22 +19,26 @@ package org.apache.activemq.artemis.rest.integration; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; +import javax.jms.JMSException; import javax.jms.MessageProducer; import javax.jms.ObjectMessage; import javax.jms.Session; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; -import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient; +import org.apache.activemq.artemis.api.jms.JMSFactoryType; import org.apache.activemq.artemis.core.config.impl.SecurityConfiguration; import org.apache.activemq.artemis.rest.HttpHeaderProperty; import org.apache.activemq.artemis.rest.test.TransformTest; -import org.apache.activemq.artemis.rest.test.Util; +import org.apache.activemq.artemis.spi.core.naming.BindingRegistry; import org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager; import org.apache.activemq.artemis.spi.core.security.jaas.InVMLoginModule; import org.jboss.resteasy.client.ClientRequest; import org.jboss.resteasy.client.ClientResponse; import org.jboss.resteasy.spi.Link; import org.jboss.resteasy.test.TestPortProvider; +import org.apache.activemq.artemis.rest.test.Util; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -44,22 +48,22 @@ import static org.junit.Assert.assertNotNull; public class EmbeddedRestActiveMQJMSTest { - private static EmbeddedRestActiveMQ server; - private static ConnectionFactory factory; + private static EmbeddedRestActiveMQJMS server; private static Link consumeNext; @BeforeClass public static void startEmbedded() throws Exception { - server = new EmbeddedRestActiveMQ(null); - assertNotNull(server.getEmbeddedActiveMQ()); + server = new EmbeddedRestActiveMQJMS(null); + assertNotNull(server.embeddedActiveMQ); server.getManager().setConfigResourcePath("activemq-rest.xml"); SecurityConfiguration securityConfiguration = createDefaultSecurityConfiguration(); ActiveMQJAASSecurityManager securityManager = new ActiveMQJAASSecurityManager(InVMLoginModule.class.getName(), securityConfiguration); - server.getEmbeddedActiveMQ().setSecurityManager(securityManager); + server.getEmbeddedJMS().setSecurityManager(securityManager); server.start(); - factory = ActiveMQJMSClient.createConnectionFactory("vm://0", "cf"); + List<String> connectors = createInVmConnector(); + server.getEmbeddedJMS().getJMSServerManager().createConnectionFactory("ConnectionFactory", false, JMSFactoryType.CF, connectors, "ConnectionFactory"); ClientRequest request = new ClientRequest(TestPortProvider.generateURL("/queues/exampleQueue")); @@ -75,6 +79,12 @@ public class EmbeddedRestActiveMQJMSTest { System.out.println("consume-next: " + consumeNext); } + private static List<String> createInVmConnector() { + List<String> connectors = new ArrayList<>(); + connectors.add("in-vm"); + return connectors; + } + @AfterClass public static void stopEmbedded() throws Exception { server.stop(); @@ -157,6 +167,12 @@ public class EmbeddedRestActiveMQJMSTest { assertNotNull(consumeNext); } + private static Connection createConnection() throws JMSException { + BindingRegistry reg = server.getRegistry(); + ConnectionFactory factory = (ConnectionFactory) reg.lookup("ConnectionFactory"); + return factory.createConnection(); + } + private static SecurityConfiguration createDefaultSecurityConfiguration() { SecurityConfiguration securityConfiguration = new SecurityConfiguration(); securityConfiguration.addUser("guest", "guest"); @@ -173,7 +189,7 @@ public class EmbeddedRestActiveMQJMSTest { } private static void publish(String destination, Serializable object, String contentType) throws Exception { - Connection conn = factory.createConnection(); + Connection conn = createConnection(); Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination dest = session.createQueue(destination); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/EmbeddedTest.java ---------------------------------------------------------------------- diff --git a/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/EmbeddedTest.java b/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/EmbeddedTest.java index 07d6980..dc0ea0f 100644 --- a/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/EmbeddedTest.java +++ b/artemis-rest/src/test/java/org/apache/activemq/artemis/rest/test/EmbeddedTest.java @@ -23,11 +23,14 @@ import javax.jms.MessageProducer; import javax.jms.ObjectMessage; import javax.jms.Session; import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; -import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient; +import org.apache.activemq.artemis.api.jms.JMSFactoryType; import org.apache.activemq.artemis.core.config.impl.SecurityConfiguration; import org.apache.activemq.artemis.rest.HttpHeaderProperty; -import org.apache.activemq.artemis.rest.integration.EmbeddedRestActiveMQ; +import org.apache.activemq.artemis.rest.integration.EmbeddedRestActiveMQJMS; +import org.apache.activemq.artemis.spi.core.naming.BindingRegistry; import org.apache.activemq.artemis.spi.core.security.ActiveMQJAASSecurityManager; import org.apache.activemq.artemis.spi.core.security.jaas.InVMLoginModule; import org.jboss.resteasy.client.ClientRequest; @@ -41,19 +44,22 @@ import org.junit.Test; public class EmbeddedTest { - public static EmbeddedRestActiveMQ server; + public static EmbeddedRestActiveMQJMS server; @BeforeClass public static void startEmbedded() throws Exception { - server = new EmbeddedRestActiveMQ(null); + server = new EmbeddedRestActiveMQJMS(null); server.getManager().setConfigResourcePath("activemq-rest.xml"); SecurityConfiguration securityConfiguration = new SecurityConfiguration(); securityConfiguration.addUser("guest", "guest"); securityConfiguration.addRole("guest", "guest"); securityConfiguration.setDefaultUser("guest"); ActiveMQJAASSecurityManager securityManager = new ActiveMQJAASSecurityManager(InVMLoginModule.class.getName(), securityConfiguration); - server.getEmbeddedActiveMQ().setSecurityManager(securityManager); + server.getEmbeddedJMS().setSecurityManager(securityManager); server.start(); + List<String> connectors = new ArrayList<>(); + connectors.add("in-vm"); + server.getEmbeddedJMS().getJMSServerManager().createConnectionFactory("ConnectionFactory", false, JMSFactoryType.CF, connectors, "ConnectionFactory"); } @AfterClass @@ -63,7 +69,8 @@ public class EmbeddedTest { } public static void publish(String destination, Serializable object, String contentType) throws Exception { - ConnectionFactory factory = ActiveMQJMSClient.createConnectionFactory("vm://0","cf"); + BindingRegistry reg = server.getRegistry(); + ConnectionFactory factory = (ConnectionFactory) reg.lookup("ConnectionFactory"); Connection conn = factory.createConnection(); Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); Destination dest = session.createQueue(destination); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/artemis-rest/src/test/resources/broker.xml ---------------------------------------------------------------------- diff --git a/artemis-rest/src/test/resources/broker.xml b/artemis-rest/src/test/resources/broker.xml index a74b1ba..4d76412 100644 --- a/artemis-rest/src/test/resources/broker.xml +++ b/artemis-rest/src/test/resources/broker.xml @@ -14,36 +14,40 @@ See the License for the specific language governing permissions and limitations under the License. --> -<configuration xmlns="urn:activemq" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd"> +<configuration xmlns="urn:activemq" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="urn:activemq /schema/artemis-server.xsd"> + <jms xmlns="urn:activemq:jms"> + <!--the queue used by the example--> + <queue name="exampleQueue"/> + </jms> + <core xmlns="urn:activemq:core"> - <persistence-enabled>false</persistence-enabled> - - <acceptors> - <acceptor name="in-vm">vm://0</acceptor> - </acceptors> - - <!-- Other config --> - - <security-settings> - <!--security for example queue--> - <security-setting match="exampleQueue"> - <permission type="createDurableQueue" roles="guest"/> - <permission type="deleteDurableQueue" roles="guest"/> - <permission type="createNonDurableQueue" roles="guest"/> - <permission type="deleteNonDurableQueue" roles="guest"/> - <permission type="consume" roles="guest"/> - <permission type="send" roles="guest"/> - </security-setting> - </security-settings> - - <addresses> - <address name="exampleQueue"> - <anycast> - <queue name="exampleQueue"/> - </anycast> - </address> - </addresses> + <persistence-enabled>false</persistence-enabled> + <!-- Connectors --> + + <connectors> + <connector name="in-vm">vm://0</connector> + </connectors> + + <acceptors> + <acceptor name="in-vm">vm://0</acceptor> + </acceptors> + + <!-- Other config --> + + <security-settings> + <!--security for example queue--> + <security-setting match="exampleQueue"> + <permission type="createDurableQueue" roles="guest"/> + <permission type="deleteDurableQueue" roles="guest"/> + <permission type="createNonDurableQueue" roles="guest"/> + <permission type="deleteNonDurableQueue" roles="guest"/> + <permission type="consume" roles="guest"/> + <permission type="send" roles="guest"/> + </security-setting> + </security-settings> </core> </configuration> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/docs/user-manual/en/unit-testing.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/unit-testing.md b/docs/user-manual/en/unit-testing.md index 7c909b7..859ec00 100644 --- a/docs/user-manual/en/unit-testing.md +++ b/docs/user-manual/en/unit-testing.md @@ -22,14 +22,14 @@ These are provided as JUnit "rules" and can make it easier to embed messaging fu ### Declare a rule on your JUnit Test ```java -import org.apache.activemq.artemis.junit.EmbeddedActiveMQResource; +import org.apache.activemq.artemis.junit.EmbeddedJMSResource; import org.junit.Rule; import org.junit.Test; public class MyTest { @Rule - public EmbeddedActiveMQResource resource = new EmbeddedActiveMQResource(); + public EmbeddedJMSResource resource = new EmbeddedJMSResource(); @Test public void myTest() { @@ -45,8 +45,8 @@ This will start a server that will be available for your test: [main] 17:00:16,666 INFO [org.apache.activemq.artemis.core.server] AMQ221045: libaio is not available, switching the configuration into NIO [main] 17:00:16,688 INFO [org.apache.activemq.artemis.core.server] AMQ221043: Protocol module found: [artemis-server]. Adding protocol support for: CORE [main] 17:00:16,801 INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live -[main] 17:00:16,801 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0-SNAPSHOT [embedded-server, nodeID=39e78380-842c-11e6-9e43-f45c8992f3c7] -[main] 17:00:16,891 INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.5.0-SNAPSHOT [39e78380-842c-11e6-9e43-f45c8992f3c7] stopped, uptime 0.272 seconds +[main] 17:00:16,801 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 1.5.0-SNAPSHOT [embedded-jms-server, nodeID=39e78380-842c-11e6-9e43-f45c8992f3c7] +[main] 17:00:16,891 INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 1.5.0-SNAPSHOT [39e78380-842c-11e6-9e43-f45c8992f3c7] stopped, uptime 0.272 seconds ``` ### Ordering rules http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/examples/features/standard/spring-integration/src/main/resources/spring-jms-beans.xml ---------------------------------------------------------------------- diff --git a/examples/features/standard/spring-integration/src/main/resources/spring-jms-beans.xml b/examples/features/standard/spring-integration/src/main/resources/spring-jms-beans.xml index 4a50a81..07545fe 100644 --- a/examples/features/standard/spring-integration/src/main/resources/spring-jms-beans.xml +++ b/examples/features/standard/spring-integration/src/main/resources/spring-jms-beans.xml @@ -47,8 +47,9 @@ under the License. </constructor-arg> </bean> - <bean id="EmbeddedActiveMQ" class="org.apache.activemq.artemis.core.server.embedded.EmbeddedActiveMQ" init-method="start" destroy-method="stop"> - <property name="SecurityManager" ref="securityManager"/> + <bean id="EmbeddedJms" class="org.apache.activemq.artemis.integration.spring.SpringJmsBootstrap" init-method="start" + destroy-method="close"> + <property name="SecurityManager" ref="securityManager"/> </bean> <bean id="connectionFactory" class="org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory"> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringBindingRegistry.java ---------------------------------------------------------------------- diff --git a/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringBindingRegistry.java b/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringBindingRegistry.java index 892eb6f..cda3f8a 100644 --- a/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringBindingRegistry.java +++ b/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringBindingRegistry.java @@ -20,10 +20,6 @@ import org.apache.activemq.artemis.spi.core.naming.BindingRegistry; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.config.ConfigurableBeanFactory; -/** - * This has been deprecated since org.apache.activemq.artemis.integration.spring.SpringJmsBootstrap was also deprecated. - */ -@Deprecated public class SpringBindingRegistry implements BindingRegistry { private ConfigurableBeanFactory factory; http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringJmsBootstrap.java ---------------------------------------------------------------------- diff --git a/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringJmsBootstrap.java b/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringJmsBootstrap.java index a5e406f..3bbfc3d 100644 --- a/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringJmsBootstrap.java +++ b/integration/activemq-spring-integration/src/main/java/org/apache/activemq/artemis/integration/spring/SpringJmsBootstrap.java @@ -22,11 +22,6 @@ import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.config.ConfigurableBeanFactory; -/** - * This really isn't needed for Spring integration as demonstrated by org.apache.activemq.artemis.tests.integration.spring.SpringIntegrationTest - * as well as the "spring-integration" example - */ -@Deprecated public class SpringJmsBootstrap extends EmbeddedJMS implements BeanFactoryAware { @Override http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/compatibility-tests/src/main/resources/addressConfig/artemisServer.groovy ---------------------------------------------------------------------- diff --git a/tests/compatibility-tests/src/main/resources/addressConfig/artemisServer.groovy b/tests/compatibility-tests/src/main/resources/addressConfig/artemisServer.groovy index c739942..0f85332 100644 --- a/tests/compatibility-tests/src/main/resources/addressConfig/artemisServer.groovy +++ b/tests/compatibility-tests/src/main/resources/addressConfig/artemisServer.groovy @@ -41,7 +41,6 @@ configuration.addAddressesSetting("myQueue", new AddressSettings().setAddressFul configuration.addAddressesSetting("#", new AddressSettings().setAddressFullMessagePolicy(AddressFullMessagePolicy.BLOCK).setMaxSizeBytes(10 * 1024).setPageSizeBytes(1024)); jmsConfiguration = new JMSConfigurationImpl(); -// used here even though it's deprecated to be compatible with older versions of the broker server = new EmbeddedJMS(); server.setConfiguration(configuration); server.setJmsConfiguration(jmsConfiguration); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/compatibility-tests/src/main/resources/servers/artemisServer.groovy ---------------------------------------------------------------------- diff --git a/tests/compatibility-tests/src/main/resources/servers/artemisServer.groovy b/tests/compatibility-tests/src/main/resources/servers/artemisServer.groovy index c8cc93b..fbae168 100644 --- a/tests/compatibility-tests/src/main/resources/servers/artemisServer.groovy +++ b/tests/compatibility-tests/src/main/resources/servers/artemisServer.groovy @@ -55,7 +55,6 @@ try { jmsConfiguration = new JMSConfigurationImpl(); -// used here even though it's deprecated to be compatible with older versions of the broker server = new EmbeddedJMS(); server.setConfiguration(configuration); server.setJmsConfiguration(jmsConfiguration); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/JMSBridgeReconnectionTest.java ---------------------------------------------------------------------- diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/JMSBridgeReconnectionTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/JMSBridgeReconnectionTest.java index 1733431..03e2ddc 100644 --- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/JMSBridgeReconnectionTest.java +++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/byteman/JMSBridgeReconnectionTest.java @@ -24,10 +24,10 @@ import org.apache.activemq.artemis.core.client.impl.ClientProducerCredits; import org.apache.activemq.artemis.core.protocol.core.Packet; import org.apache.activemq.artemis.core.protocol.core.impl.PacketImpl; import org.apache.activemq.artemis.core.protocol.core.impl.wireformat.SessionSendMessage; -import org.apache.activemq.artemis.core.server.ActiveMQServer; import org.apache.activemq.artemis.jms.bridge.ConnectionFactoryFactory; import org.apache.activemq.artemis.jms.bridge.QualityOfServiceMode; import org.apache.activemq.artemis.jms.bridge.impl.JMSBridgeImpl; +import org.apache.activemq.artemis.jms.server.JMSServerManager; import org.apache.activemq.artemis.tests.extras.jms.bridge.BridgeTestBase; import org.jboss.byteman.contrib.bmunit.BMRule; import org.jboss.byteman.contrib.bmunit.BMRules; @@ -52,7 +52,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { targetLocation = "ENTRY", action = "org.apache.activemq.artemis.tests.extras.byteman.JMSBridgeReconnectionTest.pause2($2,$3,$4);")}) public void performCrashDestinationStopBridge() throws Exception { - activeMQServer = server1; + activeMQServer = jmsServer1; ConnectionFactoryFactory factInUse0 = cff0; ConnectionFactoryFactory factInUse1 = cff1; final JMSBridgeImpl bridge = new JMSBridgeImpl(factInUse0, factInUse1, sourceQueueFactory, targetQueueFactory, null, null, null, null, null, 1000, -1, QualityOfServiceMode.DUPLICATES_OK, 10, -1, null, null, false).setBridgeName("test-bridge"); @@ -106,7 +106,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { } } - static ActiveMQServer activeMQServer; + static JMSServerManager activeMQServer; static boolean stopped = false; static int count = 20; static CountDownLatch stopLatch = new CountDownLatch(1); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java ---------------------------------------------------------------------- diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java index 59ec018..c47d026 100644 --- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java +++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/BridgeTestBase.java @@ -37,8 +37,6 @@ import java.util.Set; import com.arjuna.ats.arjuna.coordinator.TransactionReaper; import com.arjuna.ats.arjuna.coordinator.TxControl; import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple; -import org.apache.activemq.artemis.api.core.RoutingType; -import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.api.core.TransportConfiguration; import org.apache.activemq.artemis.api.core.management.AddressControl; import org.apache.activemq.artemis.api.core.management.QueueControl; @@ -46,6 +44,7 @@ import org.apache.activemq.artemis.api.core.management.ResourceNames; import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient; import org.apache.activemq.artemis.api.jms.JMSFactoryType; import org.apache.activemq.artemis.core.config.Configuration; +import org.apache.activemq.artemis.core.registry.JndiBindingRegistry; import org.apache.activemq.artemis.core.remoting.impl.invm.TransportConstants; import org.apache.activemq.artemis.core.server.ActiveMQServer; import org.apache.activemq.artemis.core.server.ActiveMQServers; @@ -54,11 +53,13 @@ import org.apache.activemq.artemis.jms.bridge.ConnectionFactoryFactory; import org.apache.activemq.artemis.jms.bridge.DestinationFactory; import org.apache.activemq.artemis.jms.bridge.QualityOfServiceMode; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; -import org.apache.activemq.artemis.jms.client.ActiveMQDestination; import org.apache.activemq.artemis.jms.client.ActiveMQJMSConnectionFactory; import org.apache.activemq.artemis.jms.client.ActiveMQMessage; import org.apache.activemq.artemis.jms.client.ActiveMQXAConnectionFactory; +import org.apache.activemq.artemis.jms.server.JMSServerManager; +import org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl; import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger; +import org.apache.activemq.artemis.tests.unit.util.InVMNamingContext; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.junit.After; import org.junit.Assert; @@ -87,8 +88,16 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { protected ActiveMQServer server0; + protected JMSServerManager jmsServer0; + protected ActiveMQServer server1; + protected JMSServerManager jmsServer1; + + private InVMNamingContext context0; + + protected InVMNamingContext context1; + protected HashMap<String, Object> params1; protected ConnectionFactoryFactory cff0LowProducerWindow; @@ -102,7 +111,11 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { Configuration conf0 = createBasicConfig().setJournalDirectory(getJournalDir(0, false)).setBindingsDirectory(getBindingsDir(0, false)).addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY)); server0 = addServer(ActiveMQServers.newActiveMQServer(conf0, false)); - server0.start(); + + context0 = new InVMNamingContext(); + jmsServer0 = new JMSServerManagerImpl(server0); + jmsServer0.setRegistry(new JndiBindingRegistry(context0)); + jmsServer0.start(); params1 = new HashMap<>(); params1.put(TransportConstants.SERVER_ID_PROP_NAME, 1); @@ -110,7 +123,20 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { Configuration conf1 = createBasicConfig().setJournalDirectory(getJournalDir(1, false)).setBindingsDirectory(getBindingsDir(1, false)).addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, params1)); server1 = addServer(ActiveMQServers.newActiveMQServer(conf1, false)); - server1.start(); + + context1 = new InVMNamingContext(); + + jmsServer1 = new JMSServerManagerImpl(server1); + jmsServer1.setRegistry(new JndiBindingRegistry(context1)); + jmsServer1.start(); + + createQueue("sourceQueue", 0); + + jmsServer0.createTopic(false, "sourceTopic", "/topic/sourceTopic"); + + createQueue("localTargetQueue", 0); + + createQueue("targetQueue", 1); setUpAdministeredObjects(); TxControl.enable(); @@ -121,11 +147,11 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { } protected void createQueue(final String queueName, final int index) throws Exception { - ActiveMQServer server = server0; + JMSServerManager server = jmsServer0; if (index == 1) { - server = server1; + server = jmsServer1; } - assertTrue("queue '/queue/" + queueName + "' created", server.createQueue(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, SimpleString.toSimpleString(queueName), null, true, false) != null); + assertTrue("queue '/queue/" + queueName + "' created", server.createQueue(false, queueName, null, true, "/queue/" + queueName)); } @Override @@ -144,8 +170,8 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { if (cff1 instanceof ActiveMQConnectionFactory) { ((ActiveMQConnectionFactory) cff1).close(); } - stopComponent(server0); - stopComponent(server1); + stopComponent(jmsServer0); + stopComponent(jmsServer1); cff0 = cff1 = null; cff0xa = cff1xa = null; @@ -161,8 +187,18 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { server0 = null; + jmsServer0 = null; + server1 = null; + jmsServer1 = null; + if (context0 != null) + context0.close(); + context0 = null; + if (context1 != null) + context1.close(); + context1 = null; + // Shutting down Arjuna threads TxControl.disable(true); @@ -261,7 +297,7 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { sourceQueueFactory = new DestinationFactory() { @Override public Destination createDestination() throws Exception { - return ActiveMQDestination.createDestination("/queue/sourceQueue", ActiveMQDestination.TYPE.QUEUE); + return (Destination) context0.lookup("/queue/sourceQueue"); } }; @@ -270,7 +306,7 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { targetQueueFactory = new DestinationFactory() { @Override public Destination createDestination() throws Exception { - return ActiveMQDestination.createDestination("/queue/targetQueue", ActiveMQDestination.TYPE.QUEUE); + return (Destination) context1.lookup("/queue/targetQueue"); } }; @@ -279,7 +315,7 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { sourceTopicFactory = new DestinationFactory() { @Override public Destination createDestination() throws Exception { - return ActiveMQDestination.createDestination("/topic/sourceTopic", ActiveMQDestination.TYPE.TOPIC); + return (Destination) context0.lookup("/topic/sourceTopic"); } }; @@ -288,7 +324,7 @@ public abstract class BridgeTestBase extends ActiveMQTestBase { localTargetQueueFactory = new DestinationFactory() { @Override public Destination createDestination() throws Exception { - return ActiveMQDestination.createDestination("/queue/localTargetQueue", ActiveMQDestination.TYPE.QUEUE); + return (Destination) context0.lookup("/queue/localTargetQueue"); } }; http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java ---------------------------------------------------------------------- diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java index 6fae34e..165601a 100644 --- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java +++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/ClusteredBridgeTestBase.java @@ -18,6 +18,7 @@ package org.apache.activemq.artemis.tests.extras.jms.bridge; import javax.jms.ConnectionFactory; import javax.jms.Destination; +import javax.naming.Context; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -27,8 +28,6 @@ import java.util.concurrent.TimeUnit; import com.arjuna.ats.arjuna.coordinator.TransactionReaper; import com.arjuna.ats.arjuna.coordinator.TxControl; import org.apache.activemq.artemis.api.core.ActiveMQException; -import org.apache.activemq.artemis.api.core.RoutingType; -import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.api.core.TransportConfiguration; import org.apache.activemq.artemis.api.core.client.ActiveMQClient; import org.apache.activemq.artemis.api.core.client.ClientConsumer; @@ -44,13 +43,16 @@ import org.apache.activemq.artemis.api.jms.JMSFactoryType; import org.apache.activemq.artemis.core.config.Configuration; import org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration; import org.apache.activemq.artemis.core.config.ha.ReplicatedPolicyConfiguration; +import org.apache.activemq.artemis.core.registry.JndiBindingRegistry; import org.apache.activemq.artemis.core.remoting.impl.invm.TransportConstants; import org.apache.activemq.artemis.core.server.ActiveMQServer; import org.apache.activemq.artemis.core.server.ActiveMQServers; import org.apache.activemq.artemis.jms.bridge.ConnectionFactoryFactory; import org.apache.activemq.artemis.jms.bridge.DestinationFactory; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; -import org.apache.activemq.artemis.jms.client.ActiveMQDestination; +import org.apache.activemq.artemis.jms.server.JMSServerManager; +import org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl; +import org.apache.activemq.artemis.tests.unit.util.InVMContext; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.junit.After; import org.junit.Before; @@ -111,12 +113,14 @@ public abstract class ClusteredBridgeTestBase extends ActiveMQTestBase { private String name; private int id; - private ActiveMQServer liveNode; - private ActiveMQServer backupNode; + private JMSServerManager liveNode; + private JMSServerManager backupNode; private TransportConfiguration liveConnector; private TransportConfiguration backupConnector; + private Context liveContext; + private ServerLocator locator; private ClientSessionFactory sessionFactory; @@ -145,21 +149,30 @@ public abstract class ClusteredBridgeTestBase extends ActiveMQTestBase { //live Configuration conf0 = createBasicConfig().setJournalDirectory(getJournalDir(id, false)).setBindingsDirectory(getBindingsDir(id, false)).addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, params0)).addConnectorConfiguration(liveConnector.getName(), liveConnector).setHAPolicyConfiguration(new ReplicatedPolicyConfiguration()).addClusterConfiguration(basicClusterConnectionConfig(liveConnector.getName())); - liveNode = addServer(ActiveMQServers.newActiveMQServer(conf0, true)); + ActiveMQServer server0 = addServer(ActiveMQServers.newActiveMQServer(conf0, true)); + + liveContext = new InVMContext(); + liveNode = new JMSServerManagerImpl(server0); + liveNode.setRegistry(new JndiBindingRegistry(liveContext)); //backup ReplicaPolicyConfiguration replicaPolicyConfiguration = new ReplicaPolicyConfiguration(); replicaPolicyConfiguration.setQuorumVoteWait(QUORUM_VOTE_WAIT_TIME_SEC); Configuration config = createBasicConfig().setJournalDirectory(getJournalDir(id, true)).setBindingsDirectory(getBindingsDir(id, true)).addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, params)).addConnectorConfiguration(backupConnector.getName(), backupConnector).addConnectorConfiguration(liveConnector.getName(), liveConnector).setHAPolicyConfiguration(replicaPolicyConfiguration).addClusterConfiguration(basicClusterConnectionConfig(backupConnector.getName(), liveConnector.getName())); - backupNode = addServer(ActiveMQServers.newActiveMQServer(config, true)); + ActiveMQServer backup = addServer(ActiveMQServers.newActiveMQServer(config, true)); + + Context context = new InVMContext(); + + backupNode = new JMSServerManagerImpl(backup); + backupNode.setRegistry(new JndiBindingRegistry(context)); } public void start() throws Exception { liveNode.start(); - waitForServerToStart(liveNode); + waitForServerToStart(liveNode.getActiveMQServer()); backupNode.start(); - waitForRemoteBackupSynchronization(backupNode); + waitForRemoteBackupSynchronization(backupNode.getActiveMQServer()); locator = ActiveMQClient.createServerLocatorWithHA(liveConnector).setReconnectAttempts(15); sessionFactory = locator.createSessionFactory(); @@ -173,7 +186,7 @@ public abstract class ClusteredBridgeTestBase extends ActiveMQTestBase { } public void createQueue(String queueName) throws Exception { - liveNode.createQueue(SimpleString.toSimpleString(queueName), RoutingType.ANYCAST, SimpleString.toSimpleString(queueName), null, true, false); + liveNode.createQueue(true, queueName, null, true, "/queue/" + queueName); } public ConnectionFactoryFactory getConnectionFactoryFactory() { @@ -194,7 +207,7 @@ public abstract class ClusteredBridgeTestBase extends ActiveMQTestBase { DestinationFactory destFactory = new DestinationFactory() { @Override public Destination createDestination() throws Exception { - return ActiveMQDestination.createDestination(queueName, ActiveMQDestination.TYPE.QUEUE); + return (Destination) liveContext.lookup("/queue/" + queueName); } }; return destFactory; @@ -248,7 +261,7 @@ public abstract class ClusteredBridgeTestBase extends ActiveMQTestBase { } }); - liveNode.stop(); + liveNode.getActiveMQServer().stop(); boolean ok = latch.await(10000, TimeUnit.MILLISECONDS); assertTrue(ok); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeReconnectionTest.java ---------------------------------------------------------------------- diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeReconnectionTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeReconnectionTest.java index 4d101cc..7c1b878 100644 --- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeReconnectionTest.java +++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeReconnectionTest.java @@ -105,7 +105,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { @Test public void testRetryConnectionOnStartup() throws Exception { - server1.stop(); + jmsServer1.stop(); JMSBridgeImpl bridge = new JMSBridgeImpl(cff0, cff1, sourceQueueFactory, targetQueueFactory, null, null, null, null, null, 1000, -1, QualityOfServiceMode.DUPLICATES_OK, 10, -1, null, null, false).setBridgeName("test-bridge"); bridge.setTransactionManager(newTransactionManager()); @@ -115,7 +115,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { Assert.assertTrue(bridge.isFailed()); // Restart the server - server1.start(); + jmsServer1.start(); createQueue("targetQueue", 1); setUpAdministeredObjects(); @@ -131,7 +131,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { */ @Test public void testStopBridgeWithFailureWhenStarted() throws Exception { - server1.stop(); + jmsServer1.stop(); JMSBridgeImpl bridge = new JMSBridgeImpl(cff0, cff1, sourceQueueFactory, targetQueueFactory, null, null, null, null, null, 500, -1, QualityOfServiceMode.DUPLICATES_OK, 10, -1, null, null, false).setBridgeName("test-bridge"); bridge.setTransactionManager(newTransactionManager()); @@ -144,7 +144,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { Assert.assertFalse(bridge.isStarted()); // we restart and setup the server for the test's tearDown checks - server1.start(); + jmsServer1.start(); createQueue("targetQueue", 1); setUpAdministeredObjects(); } @@ -187,7 +187,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { JMSBridgeReconnectionTest.log.info("About to crash server"); - server1.stop(); + jmsServer1.stop(); // Wait a while before starting up to simulate the dest being down for a while JMSBridgeReconnectionTest.log.info("Waiting 5 secs before bringing server back up"); @@ -196,7 +196,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { // Restart the server JMSBridgeReconnectionTest.log.info("Restarting server"); - server1.start(); + jmsServer1.start(); // jmsServer1.createQueue(false, "targetQueue", null, true, "queue/targetQueue"); @@ -212,7 +212,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { JMSBridgeReconnectionTest.log.info("Sent messages"); - server1.stop(); + jmsServer1.stop(); bridge.stop(); @@ -248,7 +248,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { JMSBridgeReconnectionTest.log.info("About to crash server"); - server1.stop(); + jmsServer1.stop(); // Wait a while before starting up to simulate the dest being down for a while JMSBridgeReconnectionTest.log.info("Waiting 5 secs before bringing server back up"); @@ -303,10 +303,10 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { JMSBridgeReconnectionTest.log.info("About to crash server"); - server1.stop(); + jmsServer1.stop(); if (restart) { - server1.start(); + jmsServer1.start(); } // Wait a while before starting up to simulate the dest being down for a while JMSBridgeReconnectionTest.log.info("Waiting 5 secs before bringing server back up"); @@ -396,7 +396,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { JMSBridgeReconnectionTest.log.info("About to crash server"); - server1.stop(); + jmsServer1.stop(); // Wait a while before starting up to simulate the dest being down for a while JMSBridgeReconnectionTest.log.info("Waiting 5 secs before bringing server back up"); @@ -404,7 +404,7 @@ public class JMSBridgeReconnectionTest extends BridgeTestBase { JMSBridgeReconnectionTest.log.info("Done wait"); // Restart the server - server1.start(); + jmsServer1.start(); createQueue("targetQueue", 1); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeTest.java ---------------------------------------------------------------------- diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeTest.java index 6f4b9b6..fed218b 100644 --- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeTest.java +++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/jms/bridge/JMSBridgeTest.java @@ -336,7 +336,7 @@ public class JMSBridgeTest extends BridgeTestBase { @Test public void testStartBridgeFirst() throws Exception { //stop the source server, we want to start the bridge first - server0.stop(); + jmsServer0.stop(); JMSBridgeImpl bridge = null; ConnectionFactoryFactory factInUse0 = cff0; @@ -349,8 +349,10 @@ public class JMSBridgeTest extends BridgeTestBase { bridge.start(); //now start the server - server0.start(); - + jmsServer0.start(); + createQueue("sourceQueue", 0); + createQueue("localTargetQueue", 0); + jmsServer0.createTopic(false, "sourceTopic", "/topic/sourceTopic"); // Send half the messages sendMessages(cf0, sourceQueue, 0, NUM_MESSAGES / 2, false, false); @@ -1325,7 +1327,7 @@ public class JMSBridgeTest extends BridgeTestBase { JMSBridgeTest.log.info("About to crash server"); - server1.stop(); + jmsServer1.stop(); // Now stop the bridge while the failover is happening @@ -1335,7 +1337,7 @@ public class JMSBridgeTest extends BridgeTestBase { // Shutdown the source server - server0.stop(); + jmsServer0.stop(); } // Private ------------------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/protocols/hornetq/HornetQProtocolManagerTest.java ---------------------------------------------------------------------- diff --git a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/protocols/hornetq/HornetQProtocolManagerTest.java b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/protocols/hornetq/HornetQProtocolManagerTest.java index 6e7c79c..4c0c545 100644 --- a/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/protocols/hornetq/HornetQProtocolManagerTest.java +++ b/tests/extra-tests/src/test/java/org/apache/activemq/artemis/tests/extras/protocols/hornetq/HornetQProtocolManagerTest.java @@ -26,16 +26,20 @@ import javax.jms.TextMessage; import java.util.concurrent.ConcurrentHashMap; import org.apache.activemq.artemis.api.core.Message; -import org.apache.activemq.artemis.api.core.RoutingType; import org.apache.activemq.artemis.api.core.client.ClientSession; import org.apache.activemq.artemis.api.core.client.ClientSessionFactory; import org.apache.activemq.artemis.api.core.client.ServerLocator; -import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient; -import org.apache.activemq.artemis.core.config.CoreQueueConfiguration; +import org.apache.activemq.artemis.core.config.Configuration; import org.apache.activemq.artemis.core.protocol.hornetq.client.HornetQClientProtocolManagerFactory; import org.apache.activemq.artemis.core.server.ActiveMQServer; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; import org.apache.activemq.artemis.jms.client.ActiveMQQueue; +import org.apache.activemq.artemis.jms.server.config.ConnectionFactoryConfiguration; +import org.apache.activemq.artemis.jms.server.config.JMSConfiguration; +import org.apache.activemq.artemis.jms.server.config.impl.ConnectionFactoryConfigurationImpl; +import org.apache.activemq.artemis.jms.server.config.impl.JMSConfigurationImpl; +import org.apache.activemq.artemis.jms.server.config.impl.JMSQueueConfigurationImpl; +import org.apache.activemq.artemis.jms.server.embedded.EmbeddedJMS; import org.apache.activemq.artemis.ra.recovery.RecoveryManager; import org.apache.activemq.artemis.service.extensions.xa.recovery.XARecoveryConfig; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; @@ -49,21 +53,32 @@ import org.junit.Test; public class HornetQProtocolManagerTest extends ActiveMQTestBase { ActiveMQServer server; + EmbeddedJMS embeddedJMS; @Override @Before public void setUp() throws Exception { super.setUp(); - server = createServer(createDefaultConfig(false) - .setPersistenceEnabled(false) - .clearAcceptorConfigurations() - .addAcceptorConfiguration("legacy", "tcp://localhost:61616?protocols=HORNETQ") - .addAcceptorConfiguration("corepr", "tcp://localhost:61617?protocols=CORE") - .addQueueConfiguration(new CoreQueueConfiguration() - .setName("testQueue") - .setAddress("testQueue") - .setRoutingType(RoutingType.ANYCAST))); - server.start(); + Configuration configuration = createDefaultConfig(false); + configuration.setPersistenceEnabled(false); + configuration.getAcceptorConfigurations().clear(); + configuration.addAcceptorConfiguration("legacy", "tcp://localhost:61616?protocols=HORNETQ"). + addAcceptorConfiguration("corepr", "tcp://localhost:61617?protocols=CORE"); + + configuration.addConnectorConfiguration("legacy", "tcp://localhost:61616"); + JMSConfiguration jmsConfiguration = new JMSConfigurationImpl(); + + jmsConfiguration.getQueueConfigurations().add(new JMSQueueConfigurationImpl().setName("testQueue").setBindings("testQueue")); + embeddedJMS = new EmbeddedJMS(); + embeddedJMS.setConfiguration(configuration); + embeddedJMS.setJmsConfiguration(jmsConfiguration); + embeddedJMS.start(); + } + + @Override + public void tearDown() throws Exception { + embeddedJMS.stop(); + super.tearDown(); } @Test @@ -90,10 +105,18 @@ public class HornetQProtocolManagerTest extends ActiveMQTestBase { /** This test will use an ArtemisConnectionFactory with clientProtocolManager=*/ @Test public void testLegacy2() throws Exception { + + ConnectionFactoryConfiguration configuration = new ConnectionFactoryConfigurationImpl(); + configuration.setConnectorNames("legacy"); + configuration.setName("legacy"); + configuration.setProtocolManagerFactoryStr(HornetQClientProtocolManagerFactory.class.getName()); + embeddedJMS.getJMSServerManager().createConnectionFactory(false, configuration, "legacy"); + // WORKAROUND: the 2.0.0 broker introduced addressing change and the 2.2.0 broker added compatibility for old // client libraries relying on the legacy prefixes. The new client being used in this test needs prefix explicitly. Queue queue = new ActiveMQQueue("jms.queue.testQueue"); - ActiveMQConnectionFactory connectionFactory = ActiveMQJMSClient.createConnectionFactory("tcp://localhost:61616?protocolManagerFactoryStr=" + HornetQClientProtocolManagerFactory.class.getName(), "legacy"); + + ActiveMQConnectionFactory connectionFactory = (ActiveMQConnectionFactory) embeddedJMS.lookup("legacy"); Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(queue); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FailureDeadlockTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FailureDeadlockTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FailureDeadlockTest.java index d2ea515..4c6b646 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FailureDeadlockTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/FailureDeadlockTest.java @@ -26,11 +26,14 @@ import org.apache.activemq.artemis.api.core.TransportConfiguration; import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient; import org.apache.activemq.artemis.api.jms.JMSFactoryType; import org.apache.activemq.artemis.core.client.impl.ClientSessionInternal; +import org.apache.activemq.artemis.core.registry.JndiBindingRegistry; import org.apache.activemq.artemis.core.server.ActiveMQServer; import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; import org.apache.activemq.artemis.jms.client.ActiveMQSession; +import org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl; import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection; import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger; +import org.apache.activemq.artemis.tests.integration.jms.server.management.NullInitialContext; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.junit.Assert; import org.junit.Before; @@ -42,6 +45,8 @@ public class FailureDeadlockTest extends ActiveMQTestBase { private ActiveMQServer server; + private JMSServerManagerImpl jmsServer; + private ActiveMQConnectionFactory cf1; private ActiveMQConnectionFactory cf2; @@ -51,7 +56,9 @@ public class FailureDeadlockTest extends ActiveMQTestBase { public void setUp() throws Exception { super.setUp(); server = createServer(false, createDefaultInVMConfig()); - server.start(); + jmsServer = new JMSServerManagerImpl(server); + jmsServer.setRegistry(new JndiBindingRegistry(new NullInitialContext())); + jmsServer.start(); cf1 = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, new TransportConfiguration(INVM_CONNECTOR_FACTORY)); cf2 = ActiveMQJMSClient.createConnectionFactoryWithoutHA(JMSFactoryType.CF, new TransportConfiguration(INVM_CONNECTOR_FACTORY)); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java index 4dc2dfa..51c9038 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/crossprotocol/AMQPToOpenwireTest.java @@ -32,11 +32,12 @@ import java.util.concurrent.TimeUnit; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.ActiveMQXAConnectionFactory; -import org.apache.activemq.artemis.api.core.RoutingType; import org.apache.activemq.artemis.api.core.SimpleString; import org.apache.activemq.artemis.core.config.Configuration; import org.apache.activemq.artemis.core.server.ActiveMQServer; +import org.apache.activemq.artemis.api.core.RoutingType; import org.apache.activemq.artemis.core.settings.impl.AddressSettings; +import org.apache.activemq.artemis.jms.server.JMSServerManager; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.apache.activemq.transport.amqp.client.AmqpClient; import org.apache.activemq.transport.amqp.client.AmqpConnection; @@ -56,6 +57,7 @@ public class AMQPToOpenwireTest extends ActiveMQTestBase { public static final int OWPORT = 61616; protected static final String urlString = "tcp://" + OWHOST + ":" + OWPORT + "?wireFormat.cacheEnabled=true"; + JMSServerManager serverManager; private ActiveMQServer server; protected ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(urlString); protected ActiveMQXAConnectionFactory xaFactory = new ActiveMQXAConnectionFactory(urlString); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/FloodServerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/FloodServerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/FloodServerTest.java index 9af59b5..79ed680 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/FloodServerTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/FloodServerTest.java @@ -24,12 +24,21 @@ import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.MessageProducer; import javax.jms.Session; +import java.util.ArrayList; +import java.util.List; +import org.apache.activemq.artemis.api.core.TransportConfiguration; +import org.apache.activemq.artemis.api.core.client.ActiveMQClient; import org.apache.activemq.artemis.api.jms.ActiveMQJMSClient; +import org.apache.activemq.artemis.api.jms.JMSFactoryType; import org.apache.activemq.artemis.core.config.Configuration; +import org.apache.activemq.artemis.core.registry.JndiBindingRegistry; +import org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory; import org.apache.activemq.artemis.core.server.ActiveMQServer; import org.apache.activemq.artemis.core.server.ActiveMQServers; +import org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl; import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger; +import org.apache.activemq.artemis.tests.unit.util.InVMNamingContext; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.junit.Before; import org.junit.Test; @@ -44,6 +53,10 @@ public class FloodServerTest extends ActiveMQTestBase { private ActiveMQServer server; + private JMSServerManagerImpl serverManager; + + private InVMNamingContext initialContext; + private final String topicName = "my-topic"; // Static -------------------------------------------------------- @@ -68,18 +81,39 @@ public class FloodServerTest extends ActiveMQTestBase { Configuration config = createDefaultNettyConfig(); server = addServer(ActiveMQServers.newActiveMQServer(config, false)); server.start(); + + serverManager = new JMSServerManagerImpl(server); + initialContext = new InVMNamingContext(); + serverManager.setRegistry(new JndiBindingRegistry(initialContext)); + serverManager.start(); + serverManager.activated(); + + serverManager.createTopic(false, topicName, topicName); + registerConnectionFactory(); } // Private ------------------------------------------------------- // Inner classes ------------------------------------------------- + private void registerConnectionFactory() throws Exception { + int retryInterval = 1000; + double retryIntervalMultiplier = 1.0; + int reconnectAttempts = -1; + long callTimeout = 30000; + + List<TransportConfiguration> connectorConfigs = new ArrayList<>(); + connectorConfigs.add(new TransportConfiguration(NettyConnectorFactory.class.getName())); + + serverManager.createConnectionFactory("ManualReconnectionToSingleServerTest", false, JMSFactoryType.CF, registerConnectors(server, connectorConfigs), null, 1000, ActiveMQClient.DEFAULT_CONNECTION_TTL, callTimeout, ActiveMQClient.DEFAULT_CALL_FAILOVER_TIMEOUT, ActiveMQClient.DEFAULT_CACHE_LARGE_MESSAGE_CLIENT, ActiveMQClient.DEFAULT_MIN_LARGE_MESSAGE_SIZE, ActiveMQClient.DEFAULT_COMPRESS_LARGE_MESSAGES, ActiveMQClient.DEFAULT_CONSUMER_WINDOW_SIZE, ActiveMQClient.DEFAULT_CONSUMER_MAX_RATE, ActiveMQClient.DEFAULT_CONFIRMATION_WINDOW_SIZE, ActiveMQClient.DEFAULT_PRODUCER_WINDOW_SIZE, ActiveMQClient.DEFAULT_PRODUCER_MAX_RATE, false, false, false, ActiveMQClient.DEFAULT_AUTO_GROUP, false, ActiveMQClient.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME, ActiveMQClient.DEFAULT_ACK_BATCH_SIZE, ActiveMQClient.DEFAULT_ACK_BATCH_SIZE, ActiveMQClient.DEFAULT_USE_GLOBAL_POOLS, ActiveMQClient.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE, ActiveMQClient.DEFAULT_THREAD_POOL_MAX_SIZE, retryInterva l, retryIntervalMultiplier, 1000, reconnectAttempts, ActiveMQClient.DEFAULT_FAILOVER_ON_INITIAL_CONNECTION, null, "/cf"); + } + @Test public void testFoo() { } public void _testFlood() throws Exception { - ConnectionFactory cf = ActiveMQJMSClient.createConnectionFactory("tcp://127.0.0.1:61616?retryInterval=1000&retryIntervalMultiplier=1.0&reconnectAttempts=-1&callTimeout=30000&clientFailureCheckPeriod=1000&maxRetryInterval=1000&blockOnDurableSend=false&blockOnAcknowledge=false", "cf"); + ConnectionFactory cf = (ConnectionFactory) initialContext.lookup("/cf"); final int numProducers = 20; http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/cf8f0cac/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/ManualReconnectionToSingleServerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/ManualReconnectionToSingleServerTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/ManualReconnectionToSingleServerTest.java index 87ef00c..9ed0d5b 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/ManualReconnectionToSingleServerTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/ManualReconnectionToSingleServerTest.java @@ -28,18 +28,22 @@ import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.Session; import javax.naming.Context; -import javax.naming.InitialContext; import java.util.ArrayList; import java.util.Date; -import java.util.Hashtable; import java.util.concurrent.CountDownLatch; import org.apache.activemq.artemis.api.core.TransportConfiguration; -import org.apache.activemq.artemis.core.config.Configuration; -import org.apache.activemq.artemis.core.config.CoreQueueConfiguration; -import org.apache.activemq.artemis.core.config.impl.ConfigurationImpl; +import org.apache.activemq.artemis.core.registry.JndiBindingRegistry; import org.apache.activemq.artemis.core.server.ActiveMQServer; +import org.apache.activemq.artemis.jms.server.JMSServerManager; +import org.apache.activemq.artemis.jms.server.config.ConnectionFactoryConfiguration; +import org.apache.activemq.artemis.jms.server.config.JMSConfiguration; +import org.apache.activemq.artemis.jms.server.config.impl.ConnectionFactoryConfigurationImpl; +import org.apache.activemq.artemis.jms.server.config.impl.JMSConfigurationImpl; +import org.apache.activemq.artemis.jms.server.config.impl.JMSQueueConfigurationImpl; +import org.apache.activemq.artemis.jms.server.impl.JMSServerManagerImpl; import org.apache.activemq.artemis.tests.integration.IntegrationTestLogger; +import org.apache.activemq.artemis.tests.unit.util.InVMNamingContext; import org.apache.activemq.artemis.tests.util.ActiveMQTestBase; import org.junit.Assert; import org.junit.Before; @@ -60,7 +64,9 @@ public class ManualReconnectionToSingleServerTest extends ActiveMQTestBase { private CountDownLatch reconnectionLatch; private CountDownLatch allMessagesReceived; - private Context context; + private JMSServerManager serverManager; + + private InVMNamingContext context; private static final String QUEUE_NAME = ManualReconnectionToSingleServerTest.class.getSimpleName() + ".queue"; @@ -84,7 +90,7 @@ public class ManualReconnectionToSingleServerTest extends ActiveMQTestBase { public void testExceptionListener() throws Exception { connect(); - ConnectionFactory cf = (ConnectionFactory) context.lookup("cf"); + ConnectionFactory cf = (ConnectionFactory) context.lookup("/cf"); Destination dest = (Destination) context.lookup(QUEUE_NAME); Connection conn = cf.createConnection(); Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); @@ -97,10 +103,10 @@ public class ManualReconnectionToSingleServerTest extends ActiveMQTestBase { if (i == NUM / 2) { conn.close(); - server.stop(); + serverManager.stop(); Thread.sleep(5000); - server.start(); - cf = (ConnectionFactory) context.lookup("cf"); + serverManager.start(); + cf = (ConnectionFactory) context.lookup("/cf"); dest = (Destination) context.lookup(QUEUE_NAME); conn = cf.createConnection(); sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); @@ -133,22 +139,21 @@ public class ManualReconnectionToSingleServerTest extends ActiveMQTestBase { public void setUp() throws Exception { super.setUp(); - Hashtable<String, String> props = new Hashtable<>(); - props.put(Context.INITIAL_CONTEXT_FACTORY, org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory.class.getCanonicalName()); - props.put("queue." + QUEUE_NAME, QUEUE_NAME); - props.put("connectionFactory.cf", "tcp://127.0.0.1:61616?retryInterval=1000&reconnectAttempts=-1"); - - context = new InitialContext(props); + context = new InVMNamingContext(); server = createServer(false, createDefaultNettyConfig()); - Configuration configuration = new ConfigurationImpl(); + JMSConfiguration configuration = new JMSConfigurationImpl(); + serverManager = new JMSServerManagerImpl(server, configuration); + serverManager.setRegistry(new JndiBindingRegistry(context)); - configuration.getQueueConfigurations().add(new CoreQueueConfiguration().setName(QUEUE_NAME)); + configuration.getQueueConfigurations().add(new JMSQueueConfigurationImpl().setName(QUEUE_NAME).setBindings(QUEUE_NAME)); ArrayList<TransportConfiguration> configs = new ArrayList<>(); configs.add(new TransportConfiguration(NETTY_CONNECTOR_FACTORY)); - server.start(); + ConnectionFactoryConfiguration cfConfig = new ConnectionFactoryConfigurationImpl().setName("cf").setConnectorNames(registerConnectors(server, configs)).setBindings("/cf").setRetryInterval(1000).setReconnectAttempts(-1); + configuration.getConnectionFactoryConfigurations().add(cfConfig); + serverManager.start(); listener = new Listener(); @@ -193,7 +198,7 @@ public class ManualReconnectionToSingleServerTest extends ActiveMQTestBase { while (true) { try { queue = (Queue) initialContext.lookup(QUEUE_NAME); - cf = (ConnectionFactory) initialContext.lookup("cf"); + cf = (ConnectionFactory) initialContext.lookup("/cf"); break; } catch (Exception e) { if (retries++ > retryLimit)
