amqp.spring.camel.component.SpringAMQPHeader Maven / Gradle / Ivy
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
package amqp.spring.camel.component;
import org.springframework.amqp.core.Message;
import java.util.Map;
public class SpringAMQPHeader {
// The (settable) AMQP Basic Properties
public static final String CONTENT_TYPE = "contentType";
public static final String CONTENT_ENCODING = "contentEncoding";
public static final String PRIORITY = "priority";
public static final String CORRELATION_ID = "correlationId";
public static final String REPLY_TO = "replyTo";
public static final String EXPIRATION = "expiration";
public static final String TYPE = "type";
public static Message setBasicPropertiesFromHeaders(Message msg, Map headers) {
for (Map.Entry headerEntry : headers.entrySet()) {
String headerKey = headerEntry.getKey();
Object headerValue = headerEntry.getValue();
String headerValueString = null;
if (headerValue != null) {
headerValueString = headerValue.toString();
}
//Not switching on a string since we want to support Java >= 1.6
if (CONTENT_ENCODING.equals(headerKey)) {
msg.getMessageProperties().setContentEncoding(headerValueString);
} else if(CONTENT_TYPE.equals(headerKey)) {
msg.getMessageProperties().setContentType(headerValueString);
} else if(CORRELATION_ID.equals(headerKey)) {
byte[] correlationId = headerValueString != null ? headerValueString.getBytes() : null;
msg.getMessageProperties().setCorrelationId(correlationId);
} else if(EXPIRATION.equals(headerKey)) {
msg.getMessageProperties().setExpiration(headerValueString);
} else if(PRIORITY.equals(headerKey)) {
Integer priority = headerValueString != null ? Integer.parseInt(headerValueString) : null;
msg.getMessageProperties().setPriority(priority);
} else if(REPLY_TO.equals(headerKey)) {
msg.getMessageProperties().setReplyTo(headerValueString);
} else if(TYPE.equals(headerKey)) {
msg.getMessageProperties().setType(headerValueString);
}
}
return msg;
}
public static SpringAMQPMessage setBasicPropertiesToHeaders(SpringAMQPMessage msg, Message amqpMessage) {
byte[] correlationId = amqpMessage.getMessageProperties().getCorrelationId();
msg.getHeaders().put(CORRELATION_ID, correlationId == null ? null : new String(correlationId));
msg.getHeaders().put(CONTENT_ENCODING, amqpMessage.getMessageProperties().getContentEncoding());
msg.getHeaders().put(CONTENT_TYPE, amqpMessage.getMessageProperties().getContentType());
msg.getHeaders().put(EXPIRATION, amqpMessage.getMessageProperties().getExpiration());
msg.getHeaders().put(PRIORITY, amqpMessage.getMessageProperties().getPriority());
msg.getHeaders().put(REPLY_TO, amqpMessage.getMessageProperties().getReplyTo());
msg.getHeaders().put(TYPE, amqpMessage.getMessageProperties().getType());
return msg;
}
public static Message copyHeaders(Message msg, Map headers) {
for(Map.Entry headerEntry : headers.entrySet()) {
if(! msg.getMessageProperties().getHeaders().containsKey(headerEntry.getKey())) {
msg.getMessageProperties().setHeader(headerEntry.getKey(), headerEntry.getValue());
}
}
return msg;
}
public static SpringAMQPMessage copyHeaders(SpringAMQPMessage msg, Map headers) {
for(Map.Entry headerEntry : headers.entrySet()) {
if(! SpringAMQPMessage.EXCHANGE_PATTERN.equals(headerEntry.getKey())) {
msg.setHeader(headerEntry.getKey(), headerEntry.getValue());
}
}
return msg;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy