Apache camel 如何在不使用注册表的情况下为文件或RemoteFile端点设置ProcessStrategy
我有一个Apache camel 如何在不使用注册表的情况下为文件或RemoteFile端点设置ProcessStrategy,apache-camel,Apache Camel,我有一个Routebuilder类,其端点是通过String字段设置的。在routbuilder中,我想在不使用注册表的情况下向端点添加自定义文件、FTP或SFTPProcessStrategy——即通过向字符串URI添加&ProcessStrategy=#customProcessStrategyName。这需要Routebuilder类的调用方提前设置策略,我希望在类本身中这样做 如果将端点作为端点对象,那么就很容易了,在这种情况下,我可以调用setProcessStrategy方法 如何获
Routebuilder
类,其端点是通过String
字段设置的。在routbuilder
中,我想在不使用注册表的情况下向端点添加自定义文件、FTP或SFTPProcessStrategy
——即通过向字符串URI添加&ProcessStrategy=#customProcessStrategyName
。这需要Routebuilder
类的调用方提前设置策略,我希望在类本身中这样做
如果将端点作为端点对象,那么就很容易了,在这种情况下,我可以调用setProcessStrategy
方法
如何获取或创建
端点
对象,然后再将其用于pollenrich
或from,将端点
对象用于setProcessStrategy
,然后仅使用pollenrich
或from中的端点
对象,而不是更常见的字符串。您可以使用CamelContext\getEndpoint
方法以编程方式获取端点,该方法重用或创建新端点
看
将给定名称解析为指定类型的终结点。如果名称注册了单例端点,则返回单例。否则,将创建一个新端点并在EndpointRegistry中注册
然后将此创建的端点与.pollRich().constant(端点)
FileEndpoint FileEndpoint=getContext().getEndpoint(“file://somewhere,FileEndpoint.class);
setProcessStrategy(newsomething());
来自(“直接:输入”)
.pollEnrich().constant(fileEndpoint)
。至(“记录:输出”);
在from()中使用Endpoint很简单,因为
from(fileEndpoint)
use这是我一直在寻找的答案,不幸的是,我无法在我的案例中使用它。pollenrich需要轮询一个动态文件,我不能使用标题CamelFileName或CamelOverruleFileName,因为我希望并且需要使用设置为false的Parameter useList。这可能意味着我需要访问注册表。
FileEndpoint fileEndpoint = getContext().getEndpoint("file://somewhere", FileEndpoint.class);
fileEndpoint.setProcessStrategy(new Something<>());
from("direct:input")
.pollEnrich().constant(fileEndpoint)
.to("log:output");