public void testSubscribable() {
log.info("testSubscribable("+sessionNameRcv+") ...");
try {
log.info("============ STEP 1: Start publisher client");
Global globSnd = glob.getClone(null);
conSnd = globSnd.getXmlBlasterAccess();
ConnectQos qosSnd = new ConnectQos(globSnd);
String secretSndCbSessionId = "TrustMeSubSnd";
CallbackAddress addrSnd = new CallbackAddress(globSnd);
addrSnd.setSecretCbSessionId(secretSndCbSessionId);
qosSnd.getSessionCbQueueProperty().setCallbackAddress(addrSnd);
this.updateInterceptorSnd = new MsgInterceptor(globSnd, log, null);
ConnectReturnQos crqPub = conSnd.connect(qosSnd, this.updateInterceptorSnd);
log.info("Connect success as " + crqPub.getSessionName());
log.info("============ STEP 2: Subscribe in Pub/Sub mode");
SubscribeKey sk = new SubscribeKey(globSnd, oid);
SubscribeQos sq = new SubscribeQos(globSnd);
sq.setWantInitialUpdate(false);
sq.setWantLocal(true);
SubscribeReturnQos srq = conSnd.subscribe(sk, sq);
log.info("Subscription to '" + oid + "' done");
assertEquals("", 0, this.updateInterceptorSnd.waitOnUpdate(1000L, oid, Constants.STATE_OK));
log.info("============ STEP 3: Start receiver");
Global globRcv = glob.getClone(null);
conRcv = globRcv.getXmlBlasterAccess();
ConnectQos qosRcv = new ConnectQos(globRcv, sessionNameRcv, passwd);
CallbackAddress addr = new CallbackAddress(globRcv);
addr.setRetries(-1);
String secretCbSessionId = "TrustMeSub";
addr.setSecretCbSessionId(secretCbSessionId);