■ 概要
「あるディレクトリを監視して、ファイルが置かれたら別のディレクトリに移動する。」という、極々シンプルな仕様。流れとしては、まずservice unit、service assembly の順に作成し、これをServiceMixにインストールして動作確認するだけ。至って簡単。
■ service unit
ファイルの監視と移動にはservicemix-file コンポーネントを用いる。servicemix-file の動作は、service unit で定義するが、これを以下のように eclipse プロジェクトとして作成する。
- [New]>[Project...]で [Maven Project]を選択
- Archetype の選択で "Nexus Indexer"カタログから"servicemix-service-unit"を指定 (無ければ Maven Indexビューで"http://repo.fusesource.com/maven2-snapshot" か"http://repo.fusesource.com/maven2"を追加するとリストアップされるようになる。)
- Artifact Id 等は説明の都合上以下のようにする。
- Group Id:org.apache.servicemix.tutorial
- Artifact Id:tutorial-file-su
- Version:0.0.1-SNAPSHOT
- Package:org.apache.servicemix.tutorial.tutorial_file_su
- project/dependenciesに、以下のように servicemix-file への dependency を追加する。(JUnitのdependency はいらないので消す。)
<dependency> <groupId>org.apache.servicemix</groupId> <artifactId>servicemix-file</artifactId> <version>2009.03-fuse-SNAPSHOT</version> </dependency>
- project/name要素 を "Tutorial :: File SU"に変更
また以下のように xbean.xml を作成する
- src/main/resources直下に xbean.xml を作成する
- 内容は以下のように記述する
<beans xmlns:file="http://servicemix.apache.org/file/1.0" xmlns:tut="urn:servicemix:tutorial" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <file:sender service="tut:file" endpoint="sender" directory="file:///c:/tmp/gert/sender"/> <file:poller service="tut:file" endpoint="poller" file="file:///c:/tmp/gert/poller" targetService="tut:file" targetEndpoint="sender"/> </beans>
- sender@directory にはコピー先のディレクトリパス、poller@file には監視対象のディレクトリパスを記述する
- Windows 環境でドライブレターを含む場合、上記のように"file:///c:/tmp/poller/"みたいに書く
- servicemix-file の細かいことは、元サイトを参照
- [Run As]>[Maven install]
- 成果物がローカルリポジトリにインストールされるが、確認するには eclipse のMaven Indexビューで local リポジトリを見ればいい。
service unit を使うには service assembly に組み込んで ServiceMix に配備するが、service assembly も 以下のように eclipse プロジェクトとして作成する。
- [New]>[Project...]で [Maven Project]を選択
- Archetype の選択で "Nexus Indexer"カタログから"servicemix-service-assembly"を指定
- Artifact Id 等は説明の都合上以下のようにする。
- Group Id:org.apache.servicemix.tutorial
- Artifact Id:tutorial-sa
- Version:0.0.1-SNAPSHOT
- Package:org.apache.servicemix.tutorial.tutorial_sa
- project/dependencies に、上で作成・インストールした service unit を指定する。
<dependencies> <dependency> <groupId>org.apache.servicemix.tutorial</groupId> <artifactId>tutorial-file-su</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies>
- project/name を "Tutorial :: SA"に変更
■ インストールと動作確認
- ServiceMix コンソールから次のコマンドでインストール。-s オプションがあるので自動的にスタートする。
osgi/install -s mvn:org.apache.servicemix.tutorial/tutorial-sa/0.0.1-SNAPSHOT/zip
- osgi/list で、最終行に以下のような行があることを確認。
[ 175] [Active ] [ ] [ 60] mvn:org.apache.servicemix/tutorial-sa/0.0.1-SNAPSHOT/zip
- nmr/list で以下の行が含まれている事を確認
{urn:servicemix:tutorial}file:sender {urn:servicemix:tutorial}file:poller
- jbi/list で以下の行が含まれている事を確認
[Started ] [tutorial-sa ] FUSE TRIAL1 :: SA
- c:/tmp/gert/poller に適当なファイルを置いて、自動的にc:/tmp/gert/sender に移動される事を確認
0 件のコメント:
コメントを投稿