public static void headersToStringBuilder(InternalMessage m, StringBuilder buf) { buf.append(" Message properties:").append(lineSeparator()); try { if (!m.getInboundPropertyNames().isEmpty()) { Set<String> inboundNames = new TreeSet(m.getInboundPropertyNames()); buf.append(" ").append(INBOUND_NAME).append(" scoped properties:").append(lineSeparator()); appendPropertyValues(m, buf, inboundNames, name -> m.getInboundProperty(name)); } if (!m.getOutboundPropertyNames().isEmpty()) { Set<String> outboundNames = new TreeSet(m.getOutboundPropertyNames()); buf.append(" ").append(OUTBOUND_NAME).append(" scoped properties:").append(lineSeparator()); appendPropertyValues(m, buf, outboundNames, name -> m.getOutboundProperty(name)); } } catch (IllegalArgumentException e) { // ignored } }
private void readObject(ObjectInputStream in) throws Exception { in.defaultReadObject(); typedValue = new TypedValue(deserializeValue(in), (DataType) in.readObject()); inboundAttachments = deserializeAttachments((Map<String, SerializedDataHandler>) in.readObject()); outboundAttachments = deserializeAttachments((Map<String, SerializedDataHandler>) in.readObject()); }
@Override public String toString() { StringBuilder buf = new StringBuilder(120); // format message for multi-line output, single-line is not readable buf.append(lineSeparator()); buf.append(getClass().getName()); buf.append(lineSeparator()); buf.append("{"); buf.append(lineSeparator()); buf.append(" payload=").append(getPayload().getDataType().getType().getName()); buf.append(lineSeparator()); buf.append(" mediaType=").append(getPayload().getDataType().getMediaType()); buf.append(lineSeparator()); buf.append(" attributes=").append(String.valueOf(getAttributes().getValue())); buf.append(lineSeparator()); buf.append(" attributesMediaType=").append(getAttributes().getDataType().getMediaType()); buf.append(lineSeparator()); buf.append(" exceptionPayload=").append(defaultIfNull(exceptionPayload, NOT_SET)); buf.append(lineSeparator()); if (!getInboundPropertyNames().isEmpty() || !getOutboundPropertyNames().isEmpty()) { headersToStringBuilder(this, buf); } // no new line here, as headersToString() adds one buf.append('}'); return buf.toString(); }
@Override public Serializable getOutboundProperty(String name) { return getOutboundProperty(name, null); }
@Override public Serializable getInboundProperty(String name) { return getInboundProperty(name, null); }
@Override public InternalMessage build() { return new MessageImplementation(payload, attributes, inboundProperties, outboundProperties, inboundAttachments, outboundAttachments, exceptionPayload); }