String[] config = splitConfigurationString(configuration);
try {
if (config.length != 5) {
throw new BindingConfigParseException(
"Configuration requires 5 parameters separated by ':'");
}
if (StringUtils.isEmpty(config[0])) {
throw new BindingConfigParseException("Missing broker name.");
} else {
setBroker(config[0].trim());
}
if (StringUtils.isEmpty(config[1]) || config[1].indexOf('+') != -1
|| config[1].indexOf('#') != -1) {
throw new BindingConfigParseException("Invalid topic.");
} else {
setTopic(config[1].trim());
}
if (StringUtils.isEmpty(config[2])) {
throw new BindingConfigParseException("Missing type.");
} else {
try {
MessageType t = MessageType.valueOf(config[2].trim().toUpperCase());
setMessageType(t);
} catch (IllegalArgumentException e) {
throw new BindingConfigParseException("Invalid type.");
}
}
if (StringUtils.isEmpty(config[3])) {
throw new BindingConfigParseException("Missing trigger.");
} else {
trigger = config[3].trim();
}
if (StringUtils.isEmpty(config[4])) {
throw new BindingConfigParseException("Missing transformation configuration.");
} else {
setTransformationRule(config[4].trim());
initTransformService();
}
} catch (BindingConfigParseException e) {
throw new BindingConfigParseException("Configuration '"
+ configuration
+ "' is not a valid outbound configuration: "
+ e.getMessage());
}
}