conn.connect(qos, this);
SubscribeKey subKey = new SubscribeKey(global, topicName);
SubscribeQos subQos = new SubscribeQos(global);
conn.subscribe(subKey, subQos);
// conn.leaveServer(null);
DisconnectQos disconnectQos = new DisconnectQos(global);
disconnectQos.setLeaveServer(true);
conn.disconnect(disconnectQos);
}
Global secondGlobal = new Global(args);
MsgInterceptor msgInterceptor = new MsgInterceptor(secondGlobal, log, null);
ConnectQos qos = new ConnectQos(secondGlobal, "tester/2", "secret");
I_XmlBlasterAccess conn2 = secondGlobal.getXmlBlasterAccess();
conn2.connect(qos, msgInterceptor);
SubscribeKey subKey = new SubscribeKey(secondGlobal, "__sys__Event");
SubscribeQos subQos = new SubscribeQos(secondGlobal);
conn2.subscribe(subKey, subQos);
msgInterceptor.clear();
{
// publish now
Global global = new Global(args);
qos = new ConnectQos(global, "testPublisher/1", "secret");
I_XmlBlasterAccess conn = global.getXmlBlasterAccess();
conn.connect(qos, this);
PublishKey pubKey = new PublishKey(global, topicName);
PublishQos pubQos = new PublishQos(global);
for (int i=0; i < 5; i++) {
String content = "This is test " + i;
conn.publish(new MsgUnit(pubKey, content.getBytes(), pubQos));
}
int ret = msgInterceptor.waitOnUpdate(3000L, 1);
assertEquals("We expected one message for the excess of the history queue", 1, ret);
msgInterceptor.clear();
for (int i=5; i < 8; i++) {
String content = "This is test " + i;
conn.publish(new MsgUnit(pubKey, content.getBytes(), pubQos));
}
ret = msgInterceptor.waitOnUpdate(3000L, 2);
assertEquals("We expected two messages: one for the excess of the callback queue and the other for the excess of the history queue of the __sys__Event topic", 2, ret);
msgInterceptor.clear();
conn.disconnect(new DisconnectQos(global));
}
{
Global global = new Global(args);
qos = new ConnectQos(global, userName + "/" + sessionId, "secret");
I_XmlBlasterAccess conn = global.getXmlBlasterAccess();
conn.connect(qos, this);
Thread.sleep(1000L);
conn.disconnect(new DisconnectQos(global));
}
conn2.disconnect(new DisconnectQos(secondGlobal));
}
catch (Exception ex) {
ex.printStackTrace();
fail(ex.getMessage());
}