package org.jentrata.ebms.as4.internal.routes;
import org.apache.camel.builder.RouteBuilder;
import org.jentrata.ebms.EbmsConstants;
/**
* Pickup a file from a given directory and deliveries it as an AS4 message
*
* @author aaronwalker
*/
public class FileOutboundMessageRouter extends RouteBuilder {
private String fileEndpoint;
private String messageId;
private String cpaId;
private String service;
private String action;
private String contentType;
private String from;
private String to;
private String fromPartyIdType;
private String toPartyIdType;
private String payloadId;
private String agreementRef;
private String schema;
private String partProperties;
private String conversationId = "${bean:uuidGenerator.generateId}";
private String deliveryQueue = "activemq:queue:jentrata_as4_outbound";
@Override
public void configure() throws Exception {
String convId = "${bean:uuidGenerator.generateId}";
if(conversationId != null && conversationId.length() > 0) {
convId = conversationId;
}
String msgID = "${bean:uuidGenerator.generateId}";
if(messageId != null && !messageId.isEmpty()) {
msgID = messageId;
}
from(fileEndpoint)
.setHeader(EbmsConstants.MESSAGE_ID,simple(msgID))
.setHeader(EbmsConstants.CPA_ID, constant(cpaId))
.setHeader(EbmsConstants.MESSAGE_SERVICE, constant(service))
.setHeader(EbmsConstants.MESSAGE_ACTION, constant(action))
.setHeader(EbmsConstants.CONTENT_TYPE, constant(contentType))
.setHeader(EbmsConstants.MESSAGE_FROM,constant(from))
.setHeader(EbmsConstants.MESSAGE_FROM_TYPE, constant(fromPartyIdType))
.setHeader(EbmsConstants.MESSAGE_TO, constant(to))
.setHeader(EbmsConstants.MESSAGE_TO_TYPE, constant(toPartyIdType))
.setHeader(EbmsConstants.PAYLOAD_ID, constant(payloadId))
.setHeader(EbmsConstants.MESSAGE_CONVERSATION_ID, simple(convId))
.setHeader(EbmsConstants.MESSAGE_AGREEMENT_REF,constant(agreementRef))
.setHeader(EbmsConstants.MESSAGE_PAYLOAD_SCHEMA,constant(schema))
.setHeader(EbmsConstants.MESSAGE_PART_PROPERTIES,constant(partProperties))
.to(deliveryQueue)
.routeId("_jentrataFileOutbound");
}
public String getFileEndpoint() {
return fileEndpoint;
}
public void setFileEndpoint(String fileEndpoint) {
this.fileEndpoint = fileEndpoint;
}
public String getCpaId() {
return cpaId;
}
public void setCpaId(String cpaId) {
this.cpaId = cpaId;
}
public String getService() {
return service;
}
public void setService(String service) {
this.service = service;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getPayloadId() {
return payloadId;
}
public void setPayloadId(String payloadId) {
this.payloadId = payloadId;
}
public String getConversationId() {
return conversationId;
}
public void setConversationId(String conversationId) {
this.conversationId = conversationId;
}
public String getFromPartyIdType() {
return fromPartyIdType;
}
public void setFromPartyIdType(String fromPartyIdType) {
this.fromPartyIdType = fromPartyIdType;
}
public String getToPartyIdType() {
return toPartyIdType;
}
public void setToPartyIdType(String toPartyIdType) {
this.toPartyIdType = toPartyIdType;
}
public String getAgreementRef() {
return agreementRef;
}
public void setAgreementRef(String agreementRef) {
this.agreementRef = agreementRef;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
public String getPartProperties() {
return partProperties;
}
public void setPartProperties(String partProperties) {
this.partProperties = partProperties;
}
public String getDeliveryQueue() {
return deliveryQueue;
}
public void setDeliveryQueue(String deliveryQueue) {
this.deliveryQueue = deliveryQueue;
}
public String getMessageId() {
return messageId;
}
public void setMessageId(String messageId) {
this.messageId = messageId;
}
}