我们在当前的实现中实现了一个文件轮询器来读取数千条记录的文件并使用流分割它们。现在,我们得到了一个新的用户要求,即在文件处理每天开始之前,将文件的详细信息或元数据(如文件名,文件大小,目录,文件创建日期等)保存为数据库,作为xml。
我创建了一个端点来使用xslt创建XML,以验证生成的XML并将其保存到数据库中。但是在文件轮询器开始读取XML之后,所有文件记录都将被发送到此端点。
我可以使用过滤器解决这个问题吗?如果我使用过滤器,我将无法调用我的xslt路由,并且无法访问${file:name}
或${file:size}
或camel标头等文件属性来获取文件的元数据。我该如何解决这个问题?
以下是路线样本:
<route id="RouteA">
<from uri="file://directoryA/?autoCreate=true&delete=true&readLock=changed&moveFailed=archive&/>
<!-- this route takes care of creating XML, validation and saving xml to DB etc -->
<to uri="mock:fileCreationEndPoint" />
<split streaming="true">
<tokenize token="\n"/>
<to uri="flatpack:delim:flatpackConfig/config.pzmap.xmldelimiter=|&ignoreFirstRecord=false"/>
</split>
</route>