/** * {@inheritDoc} * * @see * org.sakaiproject.nakamura.api.message.LiteMessageTransport#send(org.sakaiproject.nakamura.api.message.MessageRoutes, * org.osgi.service.event.Event, org.sakaiproject.nakamura.api.lite.content.Content) */ public void send(MessageRoutes routes, Event event, Content message) { LOGGER.debug("Started handling an email message"); // delay list instantiation to save object creation when not needed. List<String> recipients = null; for (MessageRoute route : routes) { if (TYPE.equals(route.getTransport())) { if (recipients == null) { recipients = new ArrayList<String>(); } recipients.add(route.getRcpt()); } } if (recipients != null) { Properties props = new Properties(); if (event != null) { for (String propName : event.getPropertyNames()) { Object propValue = event.getProperty(propName); props.put(propName, propValue); } } // make the message deliver to one listener, that means the desination must be a queue. props.put(EventDeliveryConstants.DELIVERY_MODE, EventDeliveryMode.P2P); // make the message persistent to survive restarts. props.put(EventDeliveryConstants.MESSAGE_MODE, EventMessageMode.PERSISTENT); props.put(LiteOutgoingEmailMessageListener.RECIPIENTS, recipients); props.put(LiteOutgoingEmailMessageListener.CONTENT_PATH_PROPERTY, message.getPath()); Event emailEvent = new Event(LiteOutgoingEmailMessageListener.QUEUE_NAME, (Map) props); LOGGER.debug("Sending event [" + emailEvent + "]"); eventAdmin.postEvent(emailEvent); } }
private Map<String, Object> constructProperties(Event event) { String[] propertyNames = event.getPropertyNames(); Map<String, Object> properties = new HashMap<>(); for (String propertyName : propertyNames) { properties.put(propertyName, event.getProperty(propertyName)); } properties.put(BRIDGEMARKER, true); return properties; }
@Override public void handleEvent(Event event) { StringBuilder builder = new StringBuilder(); for (String innerKey : event.getPropertyNames()) { builder .append(innerKey) .append(":") .append(event.getProperty(innerKey).toString()) .append(" | "); } LOGGER.info(builder.toString()); }