小编Chr*_*ris的帖子

如何模拟动态 (toD) 端点

大家好,

假设我必须遵循生产代码:

from("file:/home/test/from/")
  .setHeader("targetDynamicEndpoint", constant("file:/home/test/to/"))
  .toD("${header.targetDynamicEndpoint}")
Run Code Online (Sandbox Code Playgroud)

我如何能够模拟生产者端点(“toD”)?

我能够猜测传递给“toD”的字符串,因为它是通过 StringBoot 属性设置的

apache-camel

4
推荐指数
1
解决办法
2202
查看次数

让camel使用Map构建端点uri

Map<String, String>有没有办法让camel使用包含请求参数 的端点创建uri ?

我经常遇到这样的情况,我通过配置获得不同的参数,并且必须在运行时以编程方式构建 uri(之后是静态的)。
目前我总是必须自己构建 uri,这可以找到,但我想知道是否有更干净的方法。

例如,这就是我使用某些配置构建 smtp enpoint 的 uri 的方法(可能不是最简单的代码,但它工作正常):

private String buildSmtpUri() {
  StringBuilder sb = new StringBuilder();
  if (configuration.isEnableSslSecurity()) {
    sb.append("smtps://");
  } else {
    sb.append("smtp://");
  }
  Assert.hasText(configuration.getSmtpUrl(), "No smtp url was given");
  sb.append(configuration.getSmtpUrl());
  if (configuration.getPort() != null) {
    sb.append(":");
    sb.append(configuration.getPort());
  }
  Map<String, String> parameters = new HashMap<>();
  if (StringUtils.isNotEmpty(configuration.getUsername())) {
    parameters.put("username", configuration.getUsername());
  }
  if (StringUtils.isNotEmpty(configuration.getPassword())) {
    parameters.put("password", configuration.getPassword());
  }
  if (configuration.isBodyIsHtml()) {
    parameters.put("contentType", "text/html");
  }

  AtomicBoolean first = new AtomicBoolean(true);
  parameters.forEach((key, value) -> …
Run Code Online (Sandbox Code Playgroud)

java apache-camel

1
推荐指数
1
解决办法
1277
查看次数

标签 统计

apache-camel ×2

java ×1