You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pa...@apache.org on 2018/02/15 19:17:48 UTC
[camel] branch master updated: camel-xmpp: Do not reuse a static
EmbeddedXmppTestServer instance,
but create a new one for each test. I hope this improves the test stability
on build.apache.org.
This is an automated email from the ASF dual-hosted git repository.
pascalschumacher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 134df12 camel-xmpp: Do not reuse a static EmbeddedXmppTestServer instance, but create a new one for each test. I hope this improves the test stability on build.apache.org.
134df12 is described below
commit 134df1228ab9c3f2444ce2ab03e3ac277a6edd77
Author: Pascal Schumacher <pa...@gmx.net>
AuthorDate: Thu Feb 15 20:17:37 2018 +0100
camel-xmpp: Do not reuse a static EmbeddedXmppTestServer instance, but create a new one for each test. I hope this improves the test stability on build.apache.org.
---
.../component/xmpp/EmbeddedXmppTestServer.java | 73 ++++++++++------------
.../component/xmpp/XmppDeferredConnectionTest.java | 20 ++++--
.../component/xmpp/XmppMultiUserChatTest.java | 17 ++++-
.../component/xmpp/XmppProducerConcurrentTest.java | 18 +++++-
.../component/xmpp/XmppRobustConnectionTest.java | 24 +++++--
.../camel/component/xmpp/XmppRouteChatTest.java | 18 +++++-
...ppRouteMultipleProducersSingleConsumerTest.java | 19 ++++--
.../apache/camel/component/xmpp/XmppRouteTest.java | 7 ++-
8 files changed, 129 insertions(+), 67 deletions(-)
diff --git a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/EmbeddedXmppTestServer.java b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/EmbeddedXmppTestServer.java
index 20b14de..1d8dcb9 100644
--- a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/EmbeddedXmppTestServer.java
+++ b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/EmbeddedXmppTestServer.java
@@ -46,64 +46,51 @@ import org.jxmpp.jid.impl.JidCreate;
public final class EmbeddedXmppTestServer {
- private static EmbeddedXmppTestServer instance;
-
private XMPPServer xmppServer;
private TCPEndpoint endpoint;
private int port;
-
- // restricted to singleton
- private EmbeddedXmppTestServer() { }
-
- public static EmbeddedXmppTestServer instance() {
- if (instance == null) {
- instance = new EmbeddedXmppTestServer();
- instance.initializeXmppServer();
- }
- return instance;
+
+ public EmbeddedXmppTestServer() {
+ initializeXmppServer();
}
private void initializeXmppServer() {
try {
- if (xmppServer == null) {
- xmppServer = new XMPPServer("apache.camel");
+ xmppServer = new XMPPServer("apache.camel");
- StorageProviderRegistry providerRegistry = new MemoryStorageProviderRegistry();
- AccountManagement accountManagement = (AccountManagement) providerRegistry.retrieve(AccountManagement.class);
+ StorageProviderRegistry providerRegistry = new MemoryStorageProviderRegistry();
+ AccountManagement accountManagement = (AccountManagement) providerRegistry.retrieve(AccountManagement.class);
- Entity user = EntityImpl.parseUnchecked("camel_consumer@apache.camel");
- accountManagement.addUser(user, "secret");
+ Entity user = EntityImpl.parseUnchecked("camel_consumer@apache.camel");
+ accountManagement.addUser(user, "secret");
- Entity user2 = EntityImpl.parseUnchecked("camel_producer@apache.camel");
- accountManagement.addUser(user2, "secret");
-
- Entity user3 = EntityImpl.parseUnchecked("camel_producer1@apache.camel");
- accountManagement.addUser(user3, "secret");
+ Entity user2 = EntityImpl.parseUnchecked("camel_producer@apache.camel");
+ accountManagement.addUser(user2, "secret");
+
+ Entity user3 = EntityImpl.parseUnchecked("camel_producer1@apache.camel");
+ accountManagement.addUser(user3, "secret");
- xmppServer.setStorageProviderRegistry(providerRegistry);
+ xmppServer.setStorageProviderRegistry(providerRegistry);
- if (endpoint == null) {
- endpoint = new TCPEndpoint();
- this.port = AvailablePortFinder.getNextAvailable(5222);
- endpoint.setPort(port);
- }
+ endpoint = new TCPEndpoint();
+ this.port = AvailablePortFinder.getNextAvailable(5222);
+ endpoint.setPort(port);
- xmppServer.addEndpoint(endpoint);
+ xmppServer.addEndpoint(endpoint);
- InputStream stream = ObjectHelper.loadResourceAsStream("xmppServer.jks");
- xmppServer.setTLSCertificateInfo(stream, "secret");
+ InputStream stream = ObjectHelper.loadResourceAsStream("xmppServer.jks");
+ xmppServer.setTLSCertificateInfo(stream, "secret");
- // allow anonymous logins
- xmppServer.setSASLMechanisms(Arrays.asList(new SASLMechanism[]{new Anonymous()}));
+ // allow anonymous logins
+ xmppServer.setSASLMechanisms(Arrays.asList(new SASLMechanism[]{new Anonymous()}));
- xmppServer.start();
+ xmppServer.start();
- // add the multi-user chat module and create a few test rooms
- Conference conference = new Conference("test conference");
- conference.createRoom(EntityImpl.parseUnchecked("camel-anon@apache.camel"), "camel-anon", RoomType.FullyAnonymous);
- conference.createRoom(EntityImpl.parseUnchecked("camel-test@apache.camel"), "camel-test", RoomType.Public);
- xmppServer.addModule(new MUCModule("conference", conference));
- }
+ // add the multi-user chat module and create a few test rooms
+ Conference conference = new Conference("test conference");
+ conference.createRoom(EntityImpl.parseUnchecked("camel-anon@apache.camel"), "camel-anon", RoomType.FullyAnonymous);
+ conference.createRoom(EntityImpl.parseUnchecked("camel-test@apache.camel"), "camel-test", RoomType.Public);
+ xmppServer.addModule(new MUCModule("conference", conference));
} catch (Exception e) {
throw new RuntimeException("An error occurred when initializing the XMPP Test Server.", e);
}
@@ -141,4 +128,8 @@ public final class EmbeddedXmppTestServer {
registry.bind("customConnectionConfig", connectionConfig);
}
+
+ public void stop() {
+ xmppServer.stop();
+ }
}
diff --git a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppDeferredConnectionTest.java b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppDeferredConnectionTest.java
index f84bf88..88c31f8 100644
--- a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppDeferredConnectionTest.java
+++ b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppDeferredConnectionTest.java
@@ -29,20 +29,23 @@ import org.junit.Test;
*/
public class XmppDeferredConnectionTest extends CamelTestSupport {
+ private EmbeddedXmppTestServer embeddedXmppTestServer;
+
/**
* Ensures that the XMPP server instance is created and 'stopped' before the camel
* routes are initialized
*/
@Override
public void doPreSetup() throws Exception {
- EmbeddedXmppTestServer.instance().stopXmppEndpoint();
+ embeddedXmppTestServer = new EmbeddedXmppTestServer();
+ embeddedXmppTestServer.stopXmppEndpoint();
}
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
- EmbeddedXmppTestServer.instance().bindSSLContextTo(registry);
+ embeddedXmppTestServer.bindSSLContextTo(registry);
return registry;
}
@@ -70,7 +73,7 @@ public class XmppDeferredConnectionTest extends CamelTestSupport {
template.sendBody("direct:simple", "Hello simple!");
simpleEndpoint.assertIsSatisfied();
- EmbeddedXmppTestServer.instance().startXmppEndpoint();
+ embeddedXmppTestServer.startXmppEndpoint();
// wait for the connection to be established
Thread.sleep(2000);
@@ -100,15 +103,20 @@ public class XmppDeferredConnectionTest extends CamelTestSupport {
}
protected String getProducerUri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_producer@apache.camel?connectionConfig=#customConnectionConfig&room=camel-test@conference.apache.camel&user=camel_producer&password=secret&serviceName=apache.camel"
+ "&testConnectionOnStartup=false";
}
protected String getConsumerUri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_consumer@apache.camel?connectionConfig=#customConnectionConfig&room=camel-test@conference.apache.camel&user=camel_consumer&password=secret&serviceName=apache.camel"
+ "&testConnectionOnStartup=false&connectionPollDelay=1";
}
-}
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ embeddedXmppTestServer.stop();
+ }
+}
diff --git a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppMultiUserChatTest.java b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppMultiUserChatTest.java
index 7f21d0c..09cbe1c 100644
--- a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppMultiUserChatTest.java
+++ b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppMultiUserChatTest.java
@@ -28,6 +28,7 @@ import org.junit.Test;
*/
public class XmppMultiUserChatTest extends CamelTestSupport {
+ private EmbeddedXmppTestServer embeddedXmppTestServer;
protected MockEndpoint consumerEndpoint;
protected String body1 = "the first message";
protected String body2 = "the second message";
@@ -36,7 +37,7 @@ public class XmppMultiUserChatTest extends CamelTestSupport {
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
- EmbeddedXmppTestServer.instance().bindSSLContextTo(registry);
+ embeddedXmppTestServer.bindSSLContextTo(registry);
return registry;
}
@@ -73,15 +74,25 @@ public class XmppMultiUserChatTest extends CamelTestSupport {
// here on purpose we provide the room query parameter without the domain name as 'camel-test', and Camel
// will resolve it properly to 'camel-test@conference.apache.camel'
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/?connectionConfig=#customConnectionConfig&room=camel-test&user=camel_producer@apache.camel&password=secret&nickname=camel_producer";
}
protected String getConsumerUri() {
// however here we provide the room query parameter as fully qualified, including the domain name as
// 'camel-test@conference.apache.camel'
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/?connectionConfig=#customConnectionConfig&room=camel-test@conference.apache.camel&user=camel_consumer@apache.camel&password=secret&nickname=camel_consumer";
}
+ @Override
+ public void doPreSetup() throws Exception {
+ embeddedXmppTestServer = new EmbeddedXmppTestServer();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ embeddedXmppTestServer.stop();
+ }
}
diff --git a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppProducerConcurrentTest.java b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppProducerConcurrentTest.java
index 5f67a82..5b91096 100644
--- a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppProducerConcurrentTest.java
+++ b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppProducerConcurrentTest.java
@@ -30,11 +30,13 @@ import org.junit.Test;
*/
public class XmppProducerConcurrentTest extends CamelTestSupport {
+ private EmbeddedXmppTestServer embeddedXmppTestServer;
+
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
- EmbeddedXmppTestServer.instance().bindSSLContextTo(registry);
+ embeddedXmppTestServer.bindSSLContextTo(registry);
return registry;
}
@@ -49,7 +51,6 @@ public class XmppProducerConcurrentTest extends CamelTestSupport {
doSendMessages(10, 5);
}
-
private void doSendMessages(int files, int poolSize) throws Exception {
getMockEndpoint("mock:result").expectedMessageCount(files);
getMockEndpoint("mock:result").assertNoDuplicates(body());
@@ -75,10 +76,21 @@ public class XmppProducerConcurrentTest extends CamelTestSupport {
@Override
public void configure() throws Exception {
from("direct:start")
- .to("xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ .to("xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "?connectionConfig=#customConnectionConfig&user=camel_consumer&password=secret&serviceName=apache.camel")
.to("mock:result");
}
};
}
+
+ @Override
+ public void doPreSetup() throws Exception {
+ embeddedXmppTestServer = new EmbeddedXmppTestServer();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ embeddedXmppTestServer.stop();
+ }
}
diff --git a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRobustConnectionTest.java b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRobustConnectionTest.java
index 27a40a5..2d66bb5 100644
--- a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRobustConnectionTest.java
+++ b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRobustConnectionTest.java
@@ -30,11 +30,13 @@ import org.junit.Test;
*/
public class XmppRobustConnectionTest extends CamelTestSupport {
+ private EmbeddedXmppTestServer embeddedXmppTestServer;
+
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
- EmbeddedXmppTestServer.instance().bindSSLContextTo(registry);
+ embeddedXmppTestServer.bindSSLContextTo(registry);
return registry;
}
@@ -61,7 +63,7 @@ public class XmppRobustConnectionTest extends CamelTestSupport {
consumerEndpoint.assertIsNotSatisfied();
errorEndpoint.assertIsNotSatisfied();
- EmbeddedXmppTestServer.instance().stopXmppEndpoint();
+ embeddedXmppTestServer.stopXmppEndpoint();
Thread.sleep(2000);
for (int i = 0; i < 5; i++) {
@@ -71,7 +73,7 @@ public class XmppRobustConnectionTest extends CamelTestSupport {
errorEndpoint.assertIsSatisfied();
consumerEndpoint.assertIsNotSatisfied();
- EmbeddedXmppTestServer.instance().startXmppEndpoint();
+ embeddedXmppTestServer.startXmppEndpoint();
Thread.sleep(2000);
for (int i = 0; i < 5; i++) {
@@ -97,13 +99,25 @@ public class XmppRobustConnectionTest extends CamelTestSupport {
}
protected String getProducerUri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_producer@apache.camel?connectionConfig=#customConnectionConfig&room=camel-test@conference.apache.camel&user=camel_producer&password=secret&serviceName=apache.camel";
}
protected String getConsumerUri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_consumer@apache.camel?connectionConfig=#customConnectionConfig&room=camel-test@conference.apache.camel&user=camel_consumer&password=secret&serviceName=apache.camel"
+ "&connectionPollDelay=1";
}
+
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ embeddedXmppTestServer = new EmbeddedXmppTestServer();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ embeddedXmppTestServer.stop();
+ }
}
diff --git a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteChatTest.java b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteChatTest.java
index 815d880..61dc10f 100644
--- a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteChatTest.java
+++ b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteChatTest.java
@@ -27,6 +27,7 @@ import org.junit.Test;
*/
public class XmppRouteChatTest extends CamelTestSupport {
+ private EmbeddedXmppTestServer embeddedXmppTestServer;
protected MockEndpoint consumerEndpoint;
protected MockEndpoint producerEndpoint;
protected String body1 = "the first message";
@@ -36,7 +37,7 @@ public class XmppRouteChatTest extends CamelTestSupport {
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
- EmbeddedXmppTestServer.instance().bindSSLContextTo(registry);
+ embeddedXmppTestServer.bindSSLContextTo(registry);
return registry;
}
@@ -83,12 +84,23 @@ public class XmppRouteChatTest extends CamelTestSupport {
}
protected String getProducerUri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_producer@apache.camel?connectionConfig=#customConnectionConfig&room=camel-test-producer@conference.apache.camel&user=camel_producer&password=secret&serviceName=apache.camel";
}
protected String getConsumerUri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_consumer@apache.camel?connectionConfig=#customConnectionConfig&room=camel-test-consumer@conference.apache.camel&user=camel_consumer&password=secret&serviceName=apache.camel";
}
+
+ @Override
+ public void doPreSetup() throws Exception {
+ embeddedXmppTestServer = new EmbeddedXmppTestServer();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ embeddedXmppTestServer.stop();
+ }
}
diff --git a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteMultipleProducersSingleConsumerTest.java b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteMultipleProducersSingleConsumerTest.java
index 5f57123..3c5e3bc 100644
--- a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteMultipleProducersSingleConsumerTest.java
+++ b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteMultipleProducersSingleConsumerTest.java
@@ -26,6 +26,7 @@ import org.junit.Test;
* @version
*/
public class XmppRouteMultipleProducersSingleConsumerTest extends CamelTestSupport {
+ private EmbeddedXmppTestServer embeddedXmppTestServer;
protected MockEndpoint goodEndpoint;
protected MockEndpoint badEndpoint;
@@ -33,7 +34,7 @@ public class XmppRouteMultipleProducersSingleConsumerTest extends CamelTestSuppo
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
- EmbeddedXmppTestServer.instance().bindSSLContextTo(registry);
+ embeddedXmppTestServer.bindSSLContextTo(registry);
return registry;
}
@@ -81,18 +82,28 @@ public class XmppRouteMultipleProducersSingleConsumerTest extends CamelTestSuppo
}
protected String getProducer1Uri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_consumer@apache.camel?connectionConfig=#customConnectionConfig&room=camel-test-room@conference.apache.camel&user=camel_producer&password=secret&serviceName=apache.camel";
}
protected String getProducer2Uri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_consumer@apache.camel?connectionConfig=#customConnectionConfig&user=camel_producer1&password=secret&serviceName=apache.camel";
}
protected String getConsumerUri() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort()
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort()
+ "/camel_producer@apache.camel?connectionConfig=#customConnectionConfig&room=camel-test-room@conference.apache.camel&user=camel_consumer&password=secret&serviceName=apache.camel";
}
+ @Override
+ public void doPreSetup() throws Exception {
+ embeddedXmppTestServer = new EmbeddedXmppTestServer();
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ super.tearDown();
+ embeddedXmppTestServer.stop();
+ }
}
diff --git a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java
index bb85b53..0d962af 100644
--- a/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java
+++ b/components/camel-xmpp/src/test/java/org/apache/camel/component/xmpp/XmppRouteTest.java
@@ -44,6 +44,7 @@ public class XmppRouteTest extends TestCase {
protected CountDownLatch latch = new CountDownLatch(1);
protected Endpoint endpoint;
protected ProducerCache client;
+ private EmbeddedXmppTestServer embeddedXmppTestServer;
public static void main(String[] args) {
enabled = true;
@@ -117,15 +118,17 @@ public class XmppRouteTest extends TestCase {
});
container.start();
+ embeddedXmppTestServer = new EmbeddedXmppTestServer();
}
protected String getUriPrefix() {
- return "xmpp://localhost:" + EmbeddedXmppTestServer.instance().getXmppPort() + "/camel?login=false&room=camel-anon";
+ return "xmpp://localhost:" + embeddedXmppTestServer.getXmppPort() + "/camel?login=false&room=camel-anon";
}
-
+
@Override
protected void tearDown() throws Exception {
client.stop();
container.stop();
+ embeddedXmppTestServer.stop();
}
}
--
To stop receiving notification emails like this one, please contact
pascalschumacher@apache.org.