第 29 章 Ruby (DEPRECATED)


概述

Ruby 是一个动态的开源编程语言,专注于简单和生产力。它的语法是自然容易读且易于写入的。Ruby 支持是 camel-script 模块的一部分。

重要

Apache Camel 中的 Ruby 已被弃用,并将在以后的发行版本中删除。

添加 script 模块

要在路由中使用 Ruby,您需要将对 camel-script 的依赖添加到项目中,如 例 29.1 “添加 camel-script 依赖项” 所示。

例 29.1. 添加 camel-script 依赖项

<!-- Maven POM File -->
...
<dependencies>
  ...
  <dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-script</artifactId>
    <version>${camel-version}</version>
  </dependency>
  ...
</dependencies>

静态导入

要在应用程序代码中使用 ruby () 静态方法,请在 Java 源文件中包含以下 import 语句:

import static org.apache.camel.builder.script.ScriptBuilder.*;

内置属性

表 29.1 “Ruby 属性” 列出使用 Ruby 时可访问的内置属性。

表 29.1. Ruby 属性
属性类型

context

org.apache.camel.CamelContext

Camel 上下文

交换

org.apache.camel.Exchange

当前的交换

Request (请求)

org.apache.camel.Message

IN 消息

response

org.apache.camel.Message

OUT 消息

属性

org.apache.camel.builder.script.PropertiesFunction

使用 解析 方法可以更轻松地在脚本中使用属性组件。

ENGINE_SCOPE 设置的属性。

示例

例 29.2 “使用 Ruby 的路由” 显示使用 Ruby 的路由。

例 29.2. 使用 Ruby 的路由

<camelContext>
  <route>
    <from uri="direct:start"/>
    <choice>
      <when>
        <langauge langauge="ruby">$request.headers['user'] == 'admin'</langauge>
        <to uri="seda:adminQueue"/>
      </when>
      <otherwise>
        <to uri="seda:regularQueue"/>
      </otherwise>
    </choice>
  </route>
</camelContext>

使用属性组件

要从 properties 组件访问属性值,请在内置属性属性上调用 resolve 方法,如下所示:

.setHeader("myHeader").ruby("properties.resolve(PropKey)")

其中 PropKey 是您要解析的属性的键,其中 key 值为 String type。

有关属性组件的详情,请参阅 Apache Camel 组件参考指南 中的 属性

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.