createMessage(CLIENT_ERROR_SUBJECT) .with(MessageParts.ErrorMessage, e.getMessage()) .with(MessageParts.AdditionalDetails, a.toString()) .with(MessageParts.Throwable, e) .noErrorHandling().sendNowWith(ErraiBus.get()); .toSubject(CLIENT_ERROR_SUBJECT) .with(MessageParts.ErrorMessage, e.getMessage()) .with(MessageParts.AdditionalDetails, a.toString()) .with(MessageParts.Throwable, e) .noErrorHandling().reply(); createMessage(CLIENT_ERROR_SUBJECT) .with(MessageParts.ErrorMessage, "Null exception reference") .with(MessageParts.AdditionalDetails, "No additional details") .noErrorHandling().sendNowWith(ErraiBus.get()); .toSubject(CLIENT_ERROR_SUBJECT) .with(MessageParts.ErrorMessage, "Null exception reference") .with(MessageParts.AdditionalDetails, "No additional details") .noErrorHandling().reply();
protected static void invokeDefaultErrorHandlers(final Throwable throwable) { MessageBuilder.createMessage(DefaultErrorCallback.CLIENT_ERROR_SUBJECT).signalling() .with(MessageParts.Throwable, throwable).defaultErrorHandling().sendNowWith(ErraiBus.get()); } }
public static void sendClientError(MessageBus bus, String queueId, String errorMessage, String additionalDetails) { try { MessageBuilder.createMessage() .toSubject(DefaultErrorCallback.CLIENT_ERROR_SUBJECT) .with("ErrorMessage", errorMessage) .with("AdditionalDetails", additionalDetails) .with(MessageParts.SessionID, queueId) .flag(RoutingFlag.NonGlobalRouting) .noErrorHandling().sendNowWith(bus); } catch (RuntimeException e) { // note: this is handled this way, because this is shared server and client code. if (e.getClass().getName().equals("org.jboss.errai.bus.server.QueueUnavailableException")) { // ignore. } throw e; } }
.subjectProvided() .command(HistoryCommands.GET_FINISHED_PROCESS_INSTANCES) .with(HistoryParts.PROCESS_DEFINITION_ID, definitionId) .with(HistoryParts.INSTANCE_LIST, results) .errorsHandledBy(new ErrorCallback() .subjectProvided() .command(HistoryCommands.GET_PROCESS_INSTANCE_HISTORY) .with(HistoryParts.PROCESS_INSTANCE_ID, instanceId) .with(HistoryParts.HISTORY_RECORDS, results2) .noErrorHandling() .sendNowWith(bus);
@Override public void setValue(final T responseValue) { createConversation(incomingMessage) .subjectProvided() .with("MethodReply", responseValue) .noErrorHandling().reply(); } }
@Override public void send(T value, ErrorCallback errorCallback) { if (replyTo != null) { MessageBuilder.createMessage() .toSubject(toSubject) .with(MessageParts.ReplyTo, replyTo) .with(MessageParts.Value, value) .errorsHandledBy(errorCallback) .sendNowWith(messageBus); } else { MessageBuilder.createMessage() .toSubject(toSubject) .with(MessageParts.Value, value) .errorsHandledBy(errorCallback) .sendNowWith(messageBus); } }
/** * Sends a ping request to the server. If the ping response is not received * within a reasonable time limit, notifyDisconnected() will be called. */ private void verifyConnected() { // in case we were in the middle of something already pingTimeout.cancel(); transmit(Collections.singletonList(MessageBuilder.createMessage() .toSubject("ServerEchoService") .signalling().done().repliesToSubject(SSE_AGENT_SERVICE).getMessage())); pingTimeout.schedule(2500); }
@Override public void send(T value, MessageCallback replyTo, ErrorCallback errorCallback) { MessageBuilder.createMessage() .toSubject(toSubject) .withValue(value) .errorsHandledBy(errorCallback) .repliesTo(replyTo).sendNowWith(messageBus); } }
public static void sendClientError(MessageBus bus, String queueId, String errorMessage, String additionalDetails) { try { MessageBuilder.createMessage() .toSubject(DefaultErrorCallback.CLIENT_ERROR_SUBJECT) .with("ErrorMessage", errorMessage) .with("AdditionalDetails", additionalDetails) .with(MessageParts.SessionID, queueId) .flag(RoutingFlag.NonGlobalRouting) .noErrorHandling().sendNowWith(bus); } catch (RuntimeException e) { // note: this is handled this way, because this is shared server and client code. if (e.getClass().getName().equals("org.jboss.errai.bus.server.QueueUnavailableException")) { // ignore. } throw e; } }
/** * Sends a disconnect command message to the client bus * * @param bus * - the bus responsible for sending messages for the server * @param message * - the message that has encountered the error */ public static void disconnectRemoteBus(MessageBus bus, Message message) { MessageBuilder.createConversation(message) .toSubject("ClientBus") .command(BusCommand.Disconnect) .noErrorHandling().sendNowWith(bus); }
@Override public void send(T value, ErrorCallback errorCallback) { if (replyTo != null) { MessageBuilder.createMessage() .toSubject(toSubject) .with(MessageParts.ReplyTo, replyTo) .with(MessageParts.Value, value) .errorsHandledBy(errorCallback) .sendNowWith(messageBus); } else { MessageBuilder.createMessage() .toSubject(toSubject) .with(MessageParts.Value, value) .errorsHandledBy(errorCallback) .sendNowWith(messageBus); } }
private void notifyDisconnected() { connected = false; pingTimeout.cancel(); logger.info(this + " channel disconnected."); connectedTime = -1; clientMessageBus.setState(BusState.CONNECTION_INTERRUPTED); disconnect(sseChannel); if (!stopped) { if (retries == 0) { transmit(Collections.singletonList(MessageBuilder.createMessage() .toSubject("ServerEchoService") .signalling().done().repliesToSubject(SSE_AGENT_SERVICE).getMessage())); } final int retryDelay = Math.min((retries * 1000) + 1, 10000); logger.info("attempting SSE reconnection in " + retryDelay + "ms -- attempt: " + (++retries)); new Timer() { @Override public void run() { if (!stopped) { start(); } } }.schedule(retryDelay); } }
@Override public void send(T value, MessageCallback replyTo, ErrorCallback errorCallback) { MessageBuilder.createMessage() .toSubject(toSubject) .withValue(value) .errorsHandledBy(errorCallback) .repliesTo(replyTo).sendNowWith(messageBus); } }
@Override public void onUnsubscribe(final SubscriptionEvent event) { if (event.isLocalOnly() || event.isRemote() || event.getSubject().startsWith("local:")) return; if (messageQueues.isEmpty()) return; MessageBuilder.createMessage() .toSubject(BuiltInServices.ClientBus.name()) .command(BusCommand.RemoteUnsubscribe) .with(MessageParts.Subject, event.getSubject()) .noErrorHandling().sendGlobalWith(ServerMessageBusImpl.this); } }
@Override public void send(T value) { if (replyTo != null) { MessageBuilder.createMessage() .toSubject(toSubject) .with(MessageParts.ReplyTo, replyTo) .with(MessageParts.Value, value) .done().sendNowWith(messageBus); } else { MessageBuilder.createMessage() .toSubject(toSubject) .with(MessageParts.Value, value) .done().sendNowWith(messageBus); } }
@Override public void callback(final Message message) { createConversation(message) .subjectProvided() .with("MethodReply", invokeMethodFromMessage(message)) .noErrorHandling().sendNowWith(bus); } }
protected static void invokeDefaultErrorHandlers(final Throwable throwable) { MessageBuilder.createMessage(DefaultErrorCallback.CLIENT_ERROR_SUBJECT).signalling() .with(MessageParts.Throwable, throwable).defaultErrorHandling().sendNowWith(ErraiBus.get()); } }
public void send(T value, MessageCallback replyTo) { MessageBuilder.createMessage() .toSubject(toSubject) .withValue(value) .done().repliesTo(replyTo).sendNowWith(messageBus); }
private static void syncWithServer() { logger.info("CDI subsystem syncing with server ..."); final BusErrorCallback serverDispatchErrorCallback = new BusErrorCallback() { @Override public boolean error(final Message message, final Throwable throwable) { try { throw throwable; } catch (final NoSubscribersToDeliverTo e) { logger.warn("Server did not subscribe to " + CDI.SERVER_DISPATCHER_SUBJECT + ". To activate the full Errai CDI functionality, make sure that Errai's Weld " + "integration module has been deployed on the server."); CDI.activate(); return false; } catch (final Throwable t) { return true; } } }; MessageBuilder.createMessage().toSubject(CDI.SERVER_DISPATCHER_SUBJECT) .command(CDICommands.AttachRemote) .errorsHandledBy(serverDispatchErrorCallback) .sendNowWith(ErraiBus.get()); CDI.resendSubscriptionRequestForAllEventTypes(); }