1

除了连接器,我想在 devkit 中创建其他东西。那可能吗?最简单的示例是创建一个 No-Op 以进入那些不能为空的“否则”选择分支。我还认为锁定范围会很有用,因此流的一部分一次只能执行一次。谢谢!

4

1 回答 1

2

您可以通过创建一个只有配置字段而没有连接管理的 @Connector 来创建组件。如果您使用的是 DevKit 插件,您可以选择不进行身份验证,这将创建一个具有 @Configuration 连接策略的无状态连接器。

此外,您可以在连接器内创建 @Transformer。这个github 项目有一个简单的连接器,它在上面定义了几个转换器。

您可以在其他分支上放置一个空记录器,或者根据需要创建您的 No-Op。

关于您的锁定范围,我不能 100% 确定我们是否可以这样做,但我认为如果您使用拦截标志配置 @Processor,您的 @Processor 将能够执行以下链并获得结果。

就像是:

@Processor(intercepting = true)
public Object shouldContinue(boolean cont, SourceCallback afterChain) throws Exception {
    if (cont) {
        return afterChain.process();
    }
    return null;
}

在此示例中, cont 只是 @Processor 上的一个可配置标志,您使用它来决定是否要执行链的其余部分。

如果您需要 MuleEvent:

@Inject
@Processor(intercepting = true)
public MuleEvent shouldContinueFullEvent(boolean cont, MuleEvent muleEvent, SourceCallback afterChain) throws Exception {
    if (cont) {
        return afterChain.processEvent(muleEvent);
    }
    return null;
}
于 2015-03-15T14:42:56.977 回答