在NiFi中使用getAttribute中的模式

时间:2017-01-30 11:06:09

标签: java regex apache-nifi

如何在FlowFile的getAttribute中使用模式?

我打算编写一个从ListenTCP和ListenUDP处理器接收流文件的处理器。 ListenTCP具有属性tcp.sender,而ListenUDP散列属性udp.sender。我如何获得FlowFile的sender属性。 目前的解决方案是:

String sender = flowfile.getAttribute("tcp.sender");
if(sender!=null && !sender.isEmpty()) {
     // do something
}
else {
    sender = flowfile.getAttribute("udp.sender");
    if(sender!=null && !sender.isEmpty()) {
        //do something
    }
}

如何避免使用 if 。我需要这样的东西:

String sender = flowfile.getAttribute("*.sender");

1 个答案:

答案 0 :(得分:4)

目前没有办法根据模式获取属性。如果有,它将返回多个属性值的列表,您仍然需要浏览列表并找到您感兴趣的列表。

您可以使自定义处理器需要像“network.sender”这样的属性,并且在ListenTCP和ListenUDP之后,为每个属性设置一个UpdateAttribute处理器,将“tcp.sender”重命名为“network.sender”和“udp.sender” “to”network.sender“。