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); } }
final Set<String> annotationTypes = message.get(Set.class, CDIProtocol.Qualifiers); switch (CDICommands.valueOf(message.getCommandType())) { case RemoteSubscribe: final Class<?> type = Thread.currentThread().getContextClassLoader().loadClass(typeName);
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); } }
messageParts.put(MessageParts.CommandType.name(), CDICommands.CDIEvent.name()); messageParts.put(CDIProtocol.BeanType.name(), eventType.getName()); messageParts.put(CDIProtocol.BeanReference.name(), event);
public void observesConversationEvents(@Observes ConversationalEventWrapper wrapper) { final EventConversationContext.Context ctx = EventConversationContext.get(); if (ctx != null && ctx.getSessionId() != null) { final Map<String, Object> messageParts = new HashMap<String, Object>(20); messageParts.put(MessageParts.ToSubject.name(), CDI.getSubjectNameByType(wrapper.getEventType().getName())); messageParts.put(MessageParts.CommandType.name(), CDICommands.CDIEvent.name()); messageParts.put(CDIProtocol.BeanType.name(), wrapper.getEventObject().getClass().getName()); messageParts.put(CDIProtocol.BeanReference.name(), wrapper.getEventObject()); messageParts.put(MessageParts.SessionID.name(), ctx.getSessionId()); try { if (wrapper.getQualifierStrings() != null && !wrapper.getQualifierStrings().isEmpty()) { messageParts.put(CDIProtocol.Qualifiers.name(), wrapper.getQualifierStrings()); } wrapper.getBus().send(CommandMessage.createWithParts(messageParts, RoutingFlag.NonGlobalRouting.flag())); } finally { EventConversationContext.deactivate(); } } } }