@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); } }
/** * Fire listeners to notify that a subscription has been unregistered from the * bus * * @param subject * - subscription unregistered */ private void fireAllUnSubscribeListeners(final String subject) { final Iterator<UnsubscribeListener> iterator = onUnsubscribeHooks.iterator(); final SubscriptionEvent evt = new SubscriptionEvent(false, "InBrowser", 0, false, subject); while (iterator.hasNext()) { iterator.next().onUnsubscribe(evt); if (evt.isDisposeListener()) { iterator.remove(); evt.setDisposeListener(false); } } }
@Override public void onSubscribe(final SubscriptionEvent event) { final String subject = event.getSubject(); if (event.isLocalOnly() || subject.startsWith("local:") || remotes.containsKey(subject)) { return; } if (subject.endsWith(":RespondTo:RPC") || subject.endsWith(":Errors:RPC")) { return; } if (event.isNew()) { encodeAndTransmit(CommandMessage.create() .toSubject(BuiltInServices.ServerBus.name()).command(RemoteSubscribe) .set(Subject, subject).set(PriorityProcessing, "1")); } } });
private void fireUnsubscribeListeners(final SubscriptionEvent event) { if (isMonitor()) { busMonitor.notifyUnSubcriptionEvent(event); } synchronized (unsubscribeListeners) { event.setDisposeListener(false); for (Iterator<UnsubscribeListener> iter = unsubscribeListeners.iterator(); iter.hasNext(); ) { iter.next().onUnsubscribe(event); if (event.isDisposeListener()) { iter.remove(); event.setDisposeListener(false); } } } }
public void notifyUnSubcriptionEvent(final SubscriptionEvent event) { if (MONITOR_SVC.equals(event.getSubject())) return; if (event.isRemote()) { proc.notifyEvent(System.currentTimeMillis(), EventType.BUS_EVENT, SubEventType.REMOTE_UNSUBSCRIBE, event.getSessionId(), "Server", event.getSubject(), null, null, false); } else { proc.notifyEvent(System.currentTimeMillis(), EventType.BUS_EVENT, SubEventType.SERVER_UNSUBSCRIBE, "Server", "Server", event.getSubject(), null, null, false); } }
/** * Unsubscribe all subscriptions attached to <tt>subject</tt> * * @param subject * - the subject to unsubscribe from */ @Override public void unsubscribeAll(final String subject) { if (reservedNames.contains(subject)) throw new IllegalArgumentException("Attempt to modify lockdown service: " + subject); subscriptions.remove(subject); globalSubscriptions.remove(subject); fireUnsubscribeListeners(new SubscriptionEvent(false, null, 0, false, subject)); }
@Override public void onUnsubscribe(final SubscriptionEvent event) { final String subject = event.getSubject(); if (subject.endsWith(":RespondTo:RPC") || subject.endsWith(":Errors:RPC")) { return; } encodeAndTransmit(CommandMessage.create() .toSubject(BuiltInServices.ServerBus.name()).command(RemoteUnsubscribe) .set(Subject, subject).set(PriorityProcessing, "1")); } });
public void notifyNewSubscriptionEvent(final SubscriptionEvent event) { if (MONITOR_SVC.equals(event.getSubject())) return; if (event.isRemote()) { proc.notifyEvent(System.currentTimeMillis(), EventType.BUS_EVENT, SubEventType.REMOTE_SUBSCRIBE, event.getSessionId(), "Server", event.getSubject(), null, null, false); } else { proc.notifyEvent(System.currentTimeMillis(), EventType.BUS_EVENT, SubEventType.SERVER_SUBSCRIBE, "Server", "Server", event.getSubject(), null, null, false); } }
private void fireSubscribeListeners(final SubscriptionEvent event) { if (isMonitor()) { busMonitor.notifyNewSubscriptionEvent(event); } synchronized (subscribeListeners) { event.setDisposeListener(false); for (Iterator<SubscribeListener> iter = subscribeListeners.iterator(); iter.hasNext(); ) { iter.next().onSubscribe(event); if (event.isDisposeListener()) { iter.remove(); event.setDisposeListener(false); } } } }
private DeliveryPlan removeFromDeliveryPlan(final String subject, final MessageCallback receiver) { final DeliveryPlan plan = subscriptions.get(subject); if (plan != null) { subscriptions.put(subject, plan.newDeliveryPlanWithOut(receiver)); fireUnsubscribeListeners( new SubscriptionEvent(false, "InBus", plan.getTotalReceivers(), false, subject)); } return plan; }
@Override public void onUnsubscribe(final SubscriptionEvent event) { final String subject = event.getSubject(); if (subject.endsWith(":RespondTo:RPC") || subject.endsWith(":Errors:RPC")) { return; } encodeAndTransmit(CommandMessage.create() .toSubject(BuiltInServices.ServerBus.name()).command(RemoteUnsubscribe) .set(Subject, subject).set(PriorityProcessing, "1")); } });
@Override public void onSubscribe(final SubscriptionEvent event) { if (event.isLocalOnly() || event.isRemote() || event.getSubject().startsWith("local:")) return; MessageBuilder.createMessage() .toSubject(BuiltInServices.ClientBus.name()) .command(BusCommand.RemoteSubscribe) .with(MessageParts.Subject, event.getSubject()) .noErrorHandling().sendGlobalWith(ServerMessageBusImpl.this); } }
public void notifyUnSubcriptionEvent(final SubscriptionEvent event) { if (MONITOR_SVC.equals(event.getSubject())) return; if (event.isRemote()) { proc.notifyEvent(System.currentTimeMillis(), EventType.BUS_EVENT, SubEventType.REMOTE_UNSUBSCRIBE, event.getSessionId(), "Server", event.getSubject(), null, null, false); } else { proc.notifyEvent(System.currentTimeMillis(), EventType.BUS_EVENT, SubEventType.SERVER_UNSUBSCRIBE, "Server", "Server", event.getSubject(), null, null, false); } }
/** * Fire listeners to notify that a new subscription has been registered on the * bus. * * @param subject * - new subscription registered * @param local * - * @param isNew * - */ private void fireAllSubscribeListeners(final String subject, final boolean local, final boolean isNew) { final Iterator<SubscribeListener> iterator = onSubscribeHooks.iterator(); final SubscriptionEvent evt = new SubscriptionEvent(false, false, local, isNew, 1, "InBrowser", subject); while (iterator.hasNext()) { iterator.next().onSubscribe(evt); if (evt.isDisposeListener()) { iterator.remove(); evt.setDisposeListener(false); } } }
@Override public void onSubscribe(final SubscriptionEvent event) { final String subject = event.getSubject(); if (event.isLocalOnly() || subject.startsWith("local:") || remotes.containsKey(subject)) { return; } if (subject.endsWith(":RespondTo:RPC") || subject.endsWith(":Errors:RPC")) { return; } if (event.isNew()) { encodeAndTransmit(CommandMessage.create() .toSubject(BuiltInServices.ServerBus.name()).command(RemoteSubscribe) .set(Subject, subject).set(PriorityProcessing, "1")); } } });
private void fireUnsubscribeListeners(final SubscriptionEvent event) { if (isMonitor()) { busMonitor.notifyUnSubcriptionEvent(event); } synchronized (unsubscribeListeners) { event.setDisposeListener(false); for (Iterator<UnsubscribeListener> iter = unsubscribeListeners.iterator(); iter.hasNext(); ) { iter.next().onUnsubscribe(event); if (event.isDisposeListener()) { iter.remove(); event.setDisposeListener(false); } } } }
@Override public Subscription subscribeLocal(final String subject, final MessageCallback receiver) { if (reservedNames.contains(subject)) throw new IllegalArgumentException("cannot modify or subscribe to reserved service: " + subject); final String toSubscribe = "local:".concat(subject); final DeliveryPlan plan = createOrAddDeliveryPlan(toSubscribe, receiver); fireSubscribeListeners( new SubscriptionEvent(false, false, true, true, plan.getTotalReceivers(), "InBus", toSubscribe) ); return new LocalSubscriptionHandle(toSubscribe, receiver); }
@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); } }
public void notifyNewSubscriptionEvent(final SubscriptionEvent event) { if (MONITOR_SVC.equals(event.getSubject())) return; if (event.isRemote()) { proc.notifyEvent(System.currentTimeMillis(), EventType.BUS_EVENT, SubEventType.REMOTE_SUBSCRIBE, event.getSessionId(), "Server", event.getSubject(), null, null, false); } else { proc.notifyEvent(System.currentTimeMillis(), EventType.BUS_EVENT, SubEventType.SERVER_SUBSCRIBE, "Server", "Server", event.getSubject(), null, null, false); } }
/** * Fire listeners to notify that a subscription has been unregistered from the * bus * * @param subject * - subscription unregistered */ private void fireAllUnSubscribeListeners(final String subject) { final Iterator<UnsubscribeListener> iterator = onUnsubscribeHooks.iterator(); final SubscriptionEvent evt = new SubscriptionEvent(false, "InBrowser", 0, false, subject); while (iterator.hasNext()) { iterator.next().onUnsubscribe(evt); if (evt.isDisposeListener()) { iterator.remove(); evt.setDisposeListener(false); } } }