private static void unsubscribe(final String eventType, final AbstractCDIEventCallback<?> callback) { if (eventObservers.containsKey(eventType)) { eventObservers.get(eventType).remove(callback); if (!localOnlyObserverTypes.contains(eventType)) { boolean shouldUnsubscribe = true; for (final AbstractCDIEventCallback<?> cb : eventObservers.get(eventType)) { if (cb.getQualifiers().equals(callback.getQualifiers())) { // found another matching observer -> do not unsubscribe shouldUnsubscribe = false; break; } } if (isRemoteCommunicationEnabled() && shouldUnsubscribe) { MessageBuilder.createMessage() .toSubject(CDI.SERVER_DISPATCHER_SUBJECT) .command(CDICommands.RemoteUnsubscribe) .with(CDIProtocol.BeanType, eventType) .with(CDIProtocol.Qualifiers, callback.getQualifiers()) .noErrorHandling().sendNowWith(ErraiBus.get()); } if (eventObservers.get(eventType).isEmpty()) { eventObservers.remove(eventType); } } } }
private static void unsubscribe(final String eventType, final AbstractCDIEventCallback<?> callback) { if (eventObservers.containsKey(eventType)) { eventObservers.get(eventType).remove(callback); if (!localOnlyObserverTypes.contains(eventType)) { boolean shouldUnsubscribe = true; for (final AbstractCDIEventCallback<?> cb : eventObservers.get(eventType)) { if (cb.getQualifiers().equals(callback.getQualifiers())) { // found another matching observer -> do not unsubscribe shouldUnsubscribe = false; break; } } if (isRemoteCommunicationEnabled() && shouldUnsubscribe) { MessageBuilder.createMessage() .toSubject(CDI.SERVER_DISPATCHER_SUBJECT) .command(CDICommands.RemoteUnsubscribe) .with(CDIProtocol.BeanType, eventType) .with(CDIProtocol.Qualifiers, callback.getQualifiers()) .noErrorHandling().sendNowWith(ErraiBus.get()); } if (eventObservers.get(eventType).isEmpty()) { eventObservers.remove(eventType); } } } }
public static void fireEvent(final boolean local, final Object payload, final Annotation... qualifiers) { if (payload == null) return; final Object beanRef; if (payload instanceof WrappedPortable) { beanRef = ((WrappedPortable) payload).unwrap(); if (beanRef == null) return; } else { beanRef = payload; } final Map<String, Object> messageMap = new HashMap<>(); messageMap.put(MessageParts.CommandType.name(), CDICommands.CDIEvent.name()); messageMap.put(CDIProtocol.BeanType.name(), beanRef.getClass().getName()); messageMap.put(CDIProtocol.BeanReference.name(), beanRef); messageMap.put(CDIProtocol.FromClient.name(), "1"); if (qualifiers != null && qualifiers.length > 0) { messageMap.put(CDIProtocol.Qualifiers.name(), getQualifiersPart(qualifiers)); } consumeEventFromMessage(CommandMessage.createWithParts(messageMap)); if (isRemoteCommunicationEnabled()) { final CommandMessage withParts = CommandMessage.createWithParts(messageMap); messageMap.put(MessageParts.ToSubject.name(), SERVER_DISPATCHER_SUBJECT); fireOnSubscribe(beanRef.getClass().getName(), withParts); } }
public static void fireEvent(final boolean local, final Object payload, final Annotation... qualifiers) { if (payload == null) return; final Object beanRef; if (payload instanceof WrappedPortable) { beanRef = ((WrappedPortable) payload).unwrap(); if (beanRef == null) return; } else { beanRef = payload; } final Map<String, Object> messageMap = new HashMap<>(); messageMap.put(MessageParts.CommandType.name(), CDICommands.CDIEvent.name()); messageMap.put(CDIProtocol.BeanType.name(), beanRef.getClass().getName()); messageMap.put(CDIProtocol.BeanReference.name(), beanRef); messageMap.put(CDIProtocol.FromClient.name(), "1"); if (qualifiers != null && qualifiers.length > 0) { messageMap.put(CDIProtocol.Qualifiers.name(), getQualifiersPart(qualifiers)); } consumeEventFromMessage(CommandMessage.createWithParts(messageMap)); if (isRemoteCommunicationEnabled()) { final CommandMessage withParts = CommandMessage.createWithParts(messageMap); messageMap.put(MessageParts.ToSubject.name(), SERVER_DISPATCHER_SUBJECT); fireOnSubscribe(beanRef.getClass().getName(), withParts); } }
if (isRemoteCommunicationEnabled()) { int remoteEventCount = 0; for (final Map.Entry<String, List<AbstractCDIEventCallback<?>>> mapEntry : eventObservers.entrySet()) {
if (isRemoteCommunicationEnabled()) { int remoteEventCount = 0; for (final Map.Entry<String, List<AbstractCDIEventCallback<?>>> mapEntry : eventObservers.entrySet()) {
public static Subscription subscribe(final String eventType, final AbstractCDIEventCallback<?> callback) { if (isRemoteCommunicationEnabled() && ErraiBus.get() instanceof ClientMessageBusImpl && ((ClientMessageBusImpl) ErraiBus.get()).getState().equals(BusState.CONNECTED)) { MessageBuilder.createMessage() .toSubject(CDI.SERVER_DISPATCHER_SUBJECT) .command(CDICommands.RemoteSubscribe) .with(CDIProtocol.BeanType, eventType) .with(CDIProtocol.Qualifiers, callback.getQualifiers()) .noErrorHandling().sendNowWith(ErraiBus.get()); } return subscribeLocal(eventType, callback, false); }
public static Subscription subscribe(final String eventType, final AbstractCDIEventCallback<?> callback) { if (isRemoteCommunicationEnabled() && ErraiBus.get() instanceof ClientMessageBusImpl && ((ClientMessageBusImpl) ErraiBus.get()).getState().equals(BusState.CONNECTED)) { MessageBuilder.createMessage() .toSubject(CDI.SERVER_DISPATCHER_SUBJECT) .command(CDICommands.RemoteSubscribe) .with(CDIProtocol.BeanType, eventType) .with(CDIProtocol.Qualifiers, callback.getQualifiers()) .noErrorHandling().sendNowWith(ErraiBus.get()); } return subscribeLocal(eventType, callback, false); }