diff --git a/pom.xml b/pom.xml
index 61f4c9a..f39fa0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,7 +99,7 @@
         <hadoop.version>1.0.2</hadoop.version>
         <postgresql.version>9.1-901.jdbc4</postgresql.version>
         <activemq.version>5.10.0</activemq.version>
-        <rabbitmq-version>2.8.7</rabbitmq-version>
+        <rabbitmq-version>3.5.6</rabbitmq-version>
         <kafka.version>0.8.2.1</kafka.version>
         <storm.version>0.9.0.1</storm.version>
         <redis.version>1.5.2</redis.version>
diff --git a/qa/pom.xml b/qa/pom.xml
index 97b337e..505f63e 100644
--- a/qa/pom.xml
+++ b/qa/pom.xml
@@ -114,6 +114,12 @@
             <artifactId>maven-verifier</artifactId>
             <version>1.5</version>
             <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>junit</groupId>
+                    <artifactId>junit</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
     </dependencies>
 
diff --git a/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitIntegrationTest.java b/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitIntegrationTest.java
index c800f7a..22fbfe0 100644
--- a/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitIntegrationTest.java
+++ b/software/messaging/src/test/java/org/apache/brooklyn/entity/messaging/rabbit/RabbitIntegrationTest.java
@@ -22,6 +22,7 @@
 import static org.testng.Assert.assertFalse;
 
 import java.io.IOException;
+import java.util.concurrent.TimeoutException;
 
 import org.apache.brooklyn.api.entity.EntitySpec;
 import org.apache.brooklyn.api.location.Location;
@@ -150,7 +151,7 @@
                 @Override public void run() {
                     try {
                         channel.close();
-                    } catch (IOException e) {
+                    } catch (IOException | TimeoutException e) {
                         log.error("Error closing RabbitMQ Channel; continuing", e);
                     }
                 }});
diff --git a/software/nosql/pom.xml b/software/nosql/pom.xml
index a630295..87ad178 100644
--- a/software/nosql/pom.xml
+++ b/software/nosql/pom.xml
@@ -138,6 +138,10 @@
                     <groupId>commons-codec</groupId>
                     <artifactId>commons-codec</artifactId>
                 </exclusion>
+                <exclusion>
+                    <groupId>junit</groupId>
+                    <artifactId>junit</artifactId>
+                </exclusion>
             </exclusions>
         </dependency>
         <dependency>
diff --git a/software/osgi/pom.xml b/software/osgi/pom.xml
index 1400041..58ef225 100644
--- a/software/osgi/pom.xml
+++ b/software/osgi/pom.xml
@@ -66,6 +66,7 @@
         <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.framework</artifactId>
+            <version>${felix.framework.version}</version>
         </dependency>
 
         <dependency>
diff --git a/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/TomcatAutoScalerPolicyTest.java b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/TomcatAutoScalerPolicyTest.java
index bd3faa4..7ba7576 100644
--- a/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/TomcatAutoScalerPolicyTest.java
+++ b/software/webapp/src/test/java/org/apache/brooklyn/entity/webapp/TomcatAutoScalerPolicyTest.java
@@ -116,7 +116,7 @@
                 String err = "policy="+policy.isRunning()+"; size="+cluster.getCurrentSize()+"; reqCountPerNode="+cluster.getAttribute(DynamicWebAppCluster.REQUEST_COUNT_PER_NODE);
                 assertTrue(policy.isRunning(), "err="+err);
                 assertEquals(cluster.getCurrentSize(), (Integer)2, "err="+err);
-                assertEquals(cluster.getAttribute(DynamicWebAppCluster.REQUEST_COUNT_PER_NODE), 1.0d, "err="+err);
+                assertEquals(cluster.getAttribute(DynamicWebAppCluster.REQUEST_COUNT_PER_NODE), (Double) 1.0d, "err="+err);
             }});
     }
 }
