9.5. サービスレポジトリ

ドメイン固有サービスは、他のユーザーが利用できるようにレポジトリに追加することができます。
サービスは、設定ファイルを作成してサービスレポジトリに追加します。この設定ファイルには、必要な情報をすべて含め、さらに必要なファイルをリンクします。「作業アイテムの定義」にもあるように、設定ファイルは、通常の作業定義の設定ファイルを拡張したバージョンとなっています。

例9.4 サービスレポジトリの設定ファイル

     import org.drools.process.core.datatype.impl.type.StringDataType;
     [
       [
         "name" : "Twitter",
         "description" : "Send a twitter message",
         "parameters" : [
         	"Message" : new StringDataType()
         ],
         "displayName" : "Twitter",
         "eclipse:customEditor" : "org.drools.eclipse.flow.common.editor.editpart.work.SampleCustomEditor",
         "icon" : "twitter.gif",
         "category" : "Communication",
         "defaultHandler" : "org.jbpm.process.workitem.twitter.TwitterHandler",
         "documentation" : "index.html",
         "dependencies" : [ 
           "file:./lib/jbpm-twitter.jar", 
           "file:./lib/twitter4j-core-2.2.2.jar"
         ]
       ]
     ]
  • icon プロパティは、拡張設定ファイルと同じフォルダーにある (指定のファイル名の) ファイルを参照するようにしてください (これにより、インポートウィザードからのダウンロードやプロセス図での使用が可能になります)。アイコンは、16x16 GIF ファイルでなければなりません。
  • category プロパティは、レポジトリをブラウズする際に利用する、このサービスのカテゴリを定義します。
  • defaultHandler プロパティは、デフォルトのハンドラー実装を定義します (WorkItemHandler インターフェースを実装する java クラスで、サービスの実行に使用可能)。これにより、レポジトリからサービスをインポートする際に、このサービスのハンドラーとして自動的に登録されます。
  • documentation プロパティは、サービスが何をしてどのように機能するのかを説明している文書ファイルを定義します。このプロパティは、拡張設定ファイルと同じフォルダーにある (指定のファイル名の) HTML ファイルを参照するようにしてください (これにより、インポートウィザードからのダウンロードやプロセス図での使用が可能になります)。
  • dependencies プロパティは、このサービスを実行するために必要となる追加の依存関係を定義します。通常このプロパティにはハンドラー実装 jar が含まれていますが、追加で外部の依存関係が含まれる場合もあります。サービスのインポート時にインポートウィザードからダウンロードができるように、これらの依存関係も指定の場所 (拡張設定ファイルの場所と相対的なフォルダー) にあるレポジトリーに設置する必要があります。
またレポジトリの root には、レポジトリでサービスを検索する際に処理すべきフィルダーをすべて参照する index.conf ファイルが配備されている必要があります。これらのフォルダーには、それぞれ以下を含めるものとします。
  • フォルダーと同じ名前の拡張設定ファイル (例: サービスタスクを定義する Twitter.conf)
  • 設定ファイル内で参照するアイコン
  • 設定ファイル内で参照する文書
  • 設定ファイル内で参照する依存関係 (例: lib フォルダー内)
追加のサブフォルダーのスキャンに使用できるように、レポジトリの各サブディレクトリに index.conf を追加します。インポートウィザードを使用してレポジトリをブラウズしてもレポジトリの階層構造は表示されない点に留意してください。代わりに設定ファイルの category プロパティを使用します。
以下の例では、JBoss Developer Studio と併せて使用する際にサービスレポジトリからリソースをインポートする方法について説明しています。

手順9.1 サービスレポジトリからのリソースのインポート手順

  1. プロジェクトを右クリックして Import... を選択します。
  2. インポートするリソースのソースを選択します。GuvnorResources from Guvnor を選び、Next をクリックします。
  3. リソースに移動します。Guvnor 内のリソースのあるパッケージを選択して、そのリソースをハイライトします。Menu をクリックします。
  4. リソースのインポート先を選択して、Finish をクリックします。