第78章 JCR


JCR コンポーネント

jcr コンポーネントを使用すると、プロデューサーで JCR 準拠のコンテンツリポジトリー( Apache Jackrabbitなど)との間でノードを追加/読み取るか、コンシューマーに EventListener を登録できます。
Maven ユーザーは、このコンポーネントの pom.xml に以下の依存関係を追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jcr</artifactId>
    <version>x.x.x</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

URI 形式

jcr://user:password@repository/path/to/node
Copy to Clipboard Toggle word wrap
コンシューマーの追加
Camel 2.10 以降では、コンシューマーを JCR の EventListener またはプロデューサーとして使用して、識別子でノードを読み取ることができます。

使用方法

URI の repository 要素は、Camel コンテキストレジストリーで JCR Repository オブジェクトを検索するために使用されます。

プロデューサー

Expand
名前 デフォルト値 説明
CamelJcrOperation CamelJcrInsert 使用する CamelJcrInsert または CamelJcrGetById 操作
CamelJcrNodeName null 使用するノード名を決定するために使用されます。
CamelJcrNodeType null Camel 2.16: 新規ノードの追加時にプライマリーノードタイプを指定します。
メッセージが JCR プロデューサーエンドポイントに送信される場合:
  • 操作が CamelJcrInsert: コンテンツリポジトリーに新しいノードが作成されると、IN メッセージのすべてのメッセージヘッダーが javax.jcr.Value インスタンスに変換され、新規ノードに追加され、ノードの UUID が OUT メッセージで返されます。
  • 操作が CamelJcrGetById の場合:メッセージボディーをノード識別子として使用して、新しいノードがリポジトリーから取得されます。
注記
JCR Producer は、2.12.3 より前の Camel バージョンのメッセージヘッダーではなく、メッセージプロパティーを使用していました。

コンシューマー

コンシューマーは定期的に JCR に接続し、メッセージボディーで List<javax.jcr.observation.Event> を返します。
Expand
名前 デフォルト値 説明
eventTypes 0 javax.jcr.observation.Event.NODE_ADDED、javax.jcr.observation.Event.NODE_REMOVED などのビットマスク値としてエンコードされた 1 つ以上のイベントタイプの組み合わせ。
deep false true の場合、関連付けられた親ノードが現在のパスまたはそのサブグラフ内にあるイベントを受け取ります。
UUID null 関連する親ノードにコンマ区切りの uuid 一覧に識別子の 1 つがあるイベントのみが受信されます。
nodeTypeNames null 関連付けられた親ノードにノードタイプ(またはノード種別のいずれかのサブタイプ)のいずれかがあるイベントのみが受信されます。
noLocal false noLocaltrue の場合、リスナーが登録されたセッションによって生成されたイベントは無視されます。そうでない場合は、無視されません。
sessionLiveCheckInterval 60000 各セッションがライブチェックするまで待機する間隔(ミリ秒単位)。
sessionLiveCheckIntervalOnStart 3000 最初のセッションがライブチェックされるまで待機する間隔(ミリ秒単位)。
username Camel 2.15: URI の authority セクションではなく、URI パラメーターとしてユーザー名を指定できます。
password Camel 2.15: URI の authority セクションではなく、URI パラメーターとしてパスワードを指定できます。
workspaceName null Camel 2.16: デフォルトとは異なるワークスペースを指定できます。

以下のスニペットは、content リポジトリーの /home/test ノードに node という名前のノードを作成します。1 つの追加プロパティーもノードに追加されます。my.contents.property には送信されるメッセージのボディーが含まれます。
from("direct:a").setHeader(JcrConstants.JCR_NODE_NAME, constant("node"))
    .setHeader("my.contents.property", body())
    .to("jcr://user:pass@repository/home/test");
Copy to Clipboard Toggle word wrap
以下のコードは、Event.NODE_ADDED および Event.NODE_REMOVED イベント(イベントタイプ 1 と 2 の両方)のパス import-application/inbox の下に EventListener を登録し、すべての子についてディープをリッスンします。
<route>
    <from uri="jcr://user:pass@repository/import-application/inbox?eventTypes=3&deep=true" />
    <to uri="direct:execute-import-application" />
</route>
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat