Apache camel 筛选来自特定类型骆驼端点的消息
比如说,我有Apache camel 筛选来自特定类型骆驼端点的消息,apache-camel,Apache Camel,比如说,我有 from("direct:start").filter("...") 如何过滤来自smtp等端点的邮件?有没有办法检查上一个端点的类型 编辑:根据vikingsteve的建议,我以以下方式实现了代码: from("direct:source") .process(new Processor() { @Override public void process(Exchange exchange) throws Ex
from("direct:start").filter("...")
如何过滤来自smtp等端点的邮件?有没有办法检查上一个端点的类型
编辑:根据vikingsteve的建议,我以以下方式实现了代码:
from("direct:source")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
exchange.setProperty("source", "smtps");
}
})
.to("direct:start");
from("direct:start").filter(
new Predicate() {
@Override
public boolean matches(Exchange exchange) {
if(exchange.getProperty("source") == "smtps")
return true;
else
return false;
}}));
如果需要标识有关原始消息的某些信息(例如消息的来源或正文中未包含的其他元数据),通常会设置exchange属性 编辑:这是您的解决方案的一个更简单的版本,我还没有测试过,但它可能会这样工作:
from("direct:source")
.setProperty("source", "smtps")
.to("direct:start");
from("direct:start")
.filter(exchangeProperty("source").isEqualTo("smtp"))
超级的!在比较字符串时,请记住使用
.equals
(而不是=
)
from("direct:source")
.setProperty("source", "smtps")
.to("direct:start");
from("direct:start")
.filter(exchangeProperty("source").isEqualTo("smtp"))