From 7bafa7da50a6b05945d0da8218b1c32a00533f83 Mon Sep 17 00:00:00 2001 From: Timothy Bish Date: Wed, 3 Dec 2014 15:28:07 -0500 Subject: [PATCH] https://issues.apache.org/jira/browse/AMQ-5405 Move to v 0.30 of the QPid JMS client. Allow the CI tests to exercise these to see what might be broken. --- .../transport/amqp/JMSClientTest.java | 10 ++++--- .../transport/amqp/JMSClientTestSupport.java | 23 +++++++++++----- .../transport/amqp/bugs/AMQ4753Test.java | 10 +++++++ .../amqp/joram/ActiveMQNIOPlusSSLAdmin.java | 26 +++++++++++++------ .../amqp/joram/ActiveMQSSLAdmin.java | 13 +++++++--- pom.xml | 2 +- 6 files changed, 60 insertions(+), 24 deletions(-) diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java index ffa7b24215..a842af1714 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTest.java @@ -27,6 +27,7 @@ import java.util.concurrent.atomic.AtomicReference; import javax.jms.Connection; import javax.jms.DeliveryMode; +import javax.jms.Destination; import javax.jms.ExceptionListener; import javax.jms.JMSException; import javax.jms.Message; @@ -46,7 +47,6 @@ import org.apache.activemq.transport.amqp.joram.ActiveMQAdmin; import org.apache.activemq.util.Wait; import org.junit.After; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.objectweb.jtests.jms.framework.TestConfig; import org.slf4j.Logger; @@ -791,8 +791,11 @@ public class JMSClientTest extends JMSClientTestSupport { called.countDown(); } }); - //This makes sure the connection is completely up and connected - s.createTemporaryQueue().delete(); + + // This makes sure the connection is completely up and connected + Destination destination = s.createTemporaryQueue(); + MessageProducer producer = s.createProducer(destination); + assertNotNull(producer); stopBroker(); @@ -966,7 +969,6 @@ public class JMSClientTest extends JMSClientTestSupport { } } - @Ignore("Requires version 0.30 or higher to work.") // TODO @Test(timeout=30000) public void testDurableConsumerUnsubscribeWhileActive() throws Exception { ActiveMQAdmin.enableJMSFrameTracing(); diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java index 5a341d84c8..b374ee82b6 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/JMSClientTestSupport.java @@ -16,13 +16,6 @@ */ package org.apache.activemq.transport.amqp; -import javax.jms.Connection; -import javax.jms.ExceptionListener; -import javax.jms.JMSException; - -import org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl; -import org.junit.After; - import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -30,6 +23,14 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import javax.jms.Connection; +import javax.jms.ExceptionListener; +import javax.jms.JMSException; + +import org.apache.activemq.spring.SpringSslContext; +import org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl; +import org.junit.After; + public class JMSClientTestSupport extends AmqpTestSupport { protected Connection connection; @@ -96,6 +97,14 @@ public class JMSClientTestSupport extends AmqpTestSupport { LOG.debug("Creating connection on port {}", brokerPort); final ConnectionFactoryImpl factory = new ConnectionFactoryImpl("localhost", brokerPort, "admin", "password", null, useSsl); + if (useSsl) { + SpringSslContext context = (SpringSslContext) brokerService.getSslContext(); + factory.setKeyStorePath(context.getKeyStore()); + factory.setKeyStorePassword("password"); + factory.setTrustStorePath(context.getTrustStore()); + factory.setTrustStorePassword("password"); + } + factory.setSyncPublish(syncPublish); factory.setTopicPrefix("topic://"); factory.setQueuePrefix("queue://"); diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/bugs/AMQ4753Test.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/bugs/AMQ4753Test.java index efa98b1b57..49ee0e72f8 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/bugs/AMQ4753Test.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/bugs/AMQ4753Test.java @@ -29,6 +29,7 @@ import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; +import org.apache.activemq.spring.SpringSslContext; import org.apache.activemq.transport.amqp.AmqpTestSupport; import org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl; import org.apache.qpid.amqp_1_0.jms.impl.QueueImpl; @@ -75,6 +76,15 @@ public class AMQ4753Test extends AmqpTestSupport { private Connection createAMQPConnection(int testPort, boolean useSSL) throws JMSException { LOG.debug("In createConnection using port {} ssl? {}", testPort, useSSL); final ConnectionFactoryImpl connectionFactory = new ConnectionFactoryImpl("localhost", testPort, "admin", "password", null, useSSL); + + if (useSSL) { + SpringSslContext sslContext = (SpringSslContext) brokerService.getSslContext(); + connectionFactory.setKeyStorePath(sslContext.getKeyStore()); + connectionFactory.setKeyStorePassword("password"); + connectionFactory.setTrustStorePath(sslContext.getTrustStore()); + connectionFactory.setTrustStorePassword("password"); + } + final Connection connection = connectionFactory.createConnection(); connection.setExceptionListener(new ExceptionListener() { @Override diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQNIOPlusSSLAdmin.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQNIOPlusSSLAdmin.java index 83535f698f..c864a7ae2a 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQNIOPlusSSLAdmin.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQNIOPlusSSLAdmin.java @@ -16,20 +16,21 @@ */ package org.apache.activemq.transport.amqp.joram; -import org.apache.activemq.broker.TransportConnector; -import org.apache.activemq.spring.SpringSslContext; -import org.apache.activemq.transport.amqp.DefaultTrustManager; -import org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import java.io.File; +import java.security.SecureRandom; import javax.jms.ConnectionFactory; import javax.naming.NamingException; import javax.net.ssl.KeyManager; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; -import java.io.File; -import java.security.SecureRandom; + +import org.apache.activemq.broker.TransportConnector; +import org.apache.activemq.spring.SpringSslContext; +import org.apache.activemq.transport.amqp.DefaultTrustManager; +import org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class ActiveMQNIOPlusSSLAdmin extends ActiveMQAdmin { @@ -80,6 +81,15 @@ public class ActiveMQNIOPlusSSLAdmin extends ActiveMQAdmin { try { LOG.debug("Creating a connection factory using port {}", port); final ConnectionFactory factory = new ConnectionFactoryImpl("localhost", port, null, null, null, true); + + ConnectionFactoryImpl implFactory = (ConnectionFactoryImpl) factory; + + SpringSslContext sslContext = (SpringSslContext) broker.getSslContext(); + implFactory.setKeyStorePath(sslContext.getKeyStore()); + implFactory.setKeyStorePassword("password"); + implFactory.setTrustStorePath(sslContext.getTrustStore()); + implFactory.setTrustStorePassword("password"); + context.bind(name, factory); } catch (NamingException e) { throw new RuntimeException(e); diff --git a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQSSLAdmin.java b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQSSLAdmin.java index 558e9050f8..f774cd8016 100644 --- a/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQSSLAdmin.java +++ b/activemq-amqp/src/test/java/org/apache/activemq/transport/amqp/joram/ActiveMQSSLAdmin.java @@ -32,8 +32,6 @@ import org.apache.qpid.amqp_1_0.jms.impl.ConnectionFactoryImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -/** - */ public class ActiveMQSSLAdmin extends ActiveMQAdmin { private static final String AMQP_SSL_URI = "amqp+ssl://localhost:0"; @@ -71,8 +69,6 @@ public class ActiveMQSSLAdmin extends ActiveMQAdmin { LOG.info("ssl port is {}", port); broker.start(); - //broker. - //super.startServer(); } @Override @@ -85,6 +81,15 @@ public class ActiveMQSSLAdmin extends ActiveMQAdmin { try { LOG.debug("Creating a connection factory using port {}", port); final ConnectionFactory factory = new ConnectionFactoryImpl("localhost", port, null, null, null, true); + + ConnectionFactoryImpl implFactory = (ConnectionFactoryImpl) factory; + + SpringSslContext sslContext = (SpringSslContext) broker.getSslContext(); + implFactory.setKeyStorePath(sslContext.getKeyStore()); + implFactory.setKeyStorePassword("password"); + implFactory.setTrustStorePath(sslContext.getTrustStore()); + implFactory.setTrustStorePassword("password"); + context.bind(name, factory); } catch (NamingException e) { throw new RuntimeException(e); diff --git a/pom.xml b/pom.xml index 19bdc17f35..07110323db 100755 --- a/pom.xml +++ b/pom.xml @@ -101,7 +101,7 @@ 1.4.0 3.4.5 0.8 - 0.26 + 0.30 1.3 1.0 9.5.1-2