private boolean directSubscribe(final String subject, final MessageCallback callback, final boolean local, final WrappedCallbackHolder callbackHolder) { final boolean isNew = !isSubscribed(subject); final MessageCallback cb = new MessageCallback() { @Override public void callback(final Message message) { try { callback.callback(message); } catch (final Exception e) { handleCallbackError(message, e); } } }; callbackHolder.setWrappedCallback(cb); if (local) { addLocalSubscriptionEntry(subject, cb); } else { addSubscriptionEntry(subject, cb); } return isNew; }
if (!isSubscribed(DefaultErrorCallback.CLIENT_ERROR_SUBJECT)) { directSubscribe(DefaultErrorCallback.CLIENT_ERROR_SUBJECT, clientBusErrorsCallback, false); if (!isSubscribed(BuiltInServices.ClientBus.name())) { directSubscribe(BuiltInServices.ClientBus.name(), protocolCommandCallback, false);
@Override public void run() { final ClientMessageBusImpl bus = (ClientMessageBusImpl) ErraiBus.get(); if (!bus.isSubscribed(CDI.CLIENT_DISPATCHER_SUBJECT)) { logger.info("declare CDI dispatch service"); bus.subscribe(CDI.CLIENT_DISPATCHER_SUBJECT, new MessageCallback() { @Override public void callback(final Message message) { switch (CDICommands.valueOf(message.getCommandType())) { case AttachRemote: CDI.activate(message.get(String.class, MessageParts.RemoteServices).split(",")); break; case RemoteSubscribe: CDI.addRemoteEventTypes(message.get(String[].class, MessageParts.Value)); break; case CDIEvent: CDI.consumeEventFromMessage(message); break; } } }); } } };
private boolean directSubscribe(final String subject, final MessageCallback callback, final boolean local, final WrappedCallbackHolder callbackHolder) { final boolean isNew = !isSubscribed(subject); final MessageCallback cb = new MessageCallback() { @Override public void callback(final Message message) { try { callback.callback(message); } catch (final Exception e) { handleCallbackError(message, e); } } }; callbackHolder.setWrappedCallback(cb); if (local) { addLocalSubscriptionEntry(subject, cb); } else { addSubscriptionEntry(subject, cb); } return isNew; }
if (!isSubscribed(DefaultErrorCallback.CLIENT_ERROR_SUBJECT)) { directSubscribe(DefaultErrorCallback.CLIENT_ERROR_SUBJECT, clientBusErrorsCallback, false); if (!isSubscribed(BuiltInServices.ClientBus.name())) { directSubscribe(BuiltInServices.ClientBus.name(), protocolCommandCallback, false);