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或SFTP
ProcessStrategy
——即通过向字符串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");