検索

第282章 Simple 言語

download PDF

Camel バージョン 1.1 で利用可能

Simple Expression Language は、作成時に非常にシンプルな言語でしたが、より強力になりました。これは主に、XPath に新しい依存関係や知識を必要とせずに式と述語を評価するための非常に小さい言語であることが意図されているため、camel-core でのテストに適しています。この概念は、Camel ルート内に式ベースのスクリプトを必要とする場合、一般的なユースケースの 95% に対応しています。

ただし、より複雑なユースケースでは、以下を含むより表現的で強力な言語を選択することが推奨されます。

Simple 言語は、式に定数リテラルが含まれる複雑な式に ${body} プレースホルダーを使用します。式自体がトークン自体である場合、$\{ } プレースホルダーは省略できます。

ヒント

Camel 2.5 以降では、$simple{ } をプレースホルダーとして使用する別の構文を使用することもできます。これは、たとえば Spring プロパティープレースホルダーを Camel と併用する場合のクラッシュを回避するために使用できます。

282.1. Camel 2.9 以降の Simple 言語の変更

Simple 言語は Camel 2.9 以降では改善され、正確なエラーメッセージをインデックス化できるより優れた構文パーサーが使用されるため、何が適切で問題なのか、問題がある場所を正確に把握することができます。たとえば、演算子のいずれかにタイプミスがあった場合、これまでパーサーはこれを検出できず、評価が true になりました。構文には後方互換性がないため、いくつかの変更があります。Simple 言語を述語として使用する場合は、リテラルテキストを一重引用符または二重引用符で囲む 必要 があります。例: "${body} == 'Camel'"リテラルの一重引用符がどのように存在するかに注目してください。メッセージのボディーとヘッダーを参照するために "body" および "header.foo" を使用する古いスタイルは @deprecated です。組み込み機能には常に $\{ } トークンを使用することが推奨されます。範囲演算子では、範囲を一重引用符で指定する必要があり、'30000..39999' の間の " "${header.zip} が表示されます。

message: "body"、または "in.body" または "${body}" のボディーを取得するには、次のコマンドを実行します。

複雑な式は、"Hello ${in.header.name} how are you?" などの $\{ } プレースホルダーを使用する必要があります。

同じ式 「Hello ${in.header.name}」には複数の関数を持つことができます。これは ${in.header.me} talking" です。
しかし、Camel 2.8.x 以前では、関数をネストでき ません (つまり、既存の $\{ } プレースホルダーを使用することはできません)。
Camel 2.9 以降では、機能をネスト化できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.