MuleエンドポイントURIはあらゆる妥当なURIであり、トランスポートへの接続方法を示すものです。MuleのほとんどのコネクタはエンドポイントURIから作成することができますが、接続プロパティの必要なJMSのようにURIだけで接続に必要な情報がすべて表現できないものは例外です。エンドポイントURIは、Muleエンドポイント上に置かれます。Muleエンドポイントは、フィルタやトランザクションといった他の接続インスタンス情報を管理する場所です。
MuleエンドポイントURIは、通常、以下に示す形式のいずれかをとりますが、他のプロバイダ実装が独自のスキーマ(scheme)を提供することは可能です。
scheme://[ホスト][:ポート番号]/[エンドポイント名]/[アドレス]?[パラメータ]
スキーマは必ず記述しなければいけません。ホストとポート番号は、TCP、UDP、HTTP、マルチキャストのように、ソケットを直接利用するようなエンドポイントの場合に記述します。
ホストとポートに固定値しか使えない場合は、プロバイダにプロバイダ名を指定して設定するとしても特定のプロバイダしかホストとポートが使えないことは少ないと思います。
tcp://localhost:3212/myTcpEndpoint
この場合は、予め定義された myTcpEndpoint エンドポイントを、エンドポイントURI tcp://localhost:3212 を通して利用します。
scheme://[エンドポイント名]/[アドレス]?[パラメータ]
エンドポイント名とは、予め定義されたエンドポイントを指します。エンドポイントはコンポーネント内でしか見えないようにすることも、グローバルにして同一コンテナ内の全コンポーネントに公開することも可能です。エンドポイントとは、コネクタ、トランスフォーマ、エンドポイントURIにフィルタ、トランザクションの情報を合わせてグループ化した設定オブジェクトのことです。詳しくは、Muleエンドポイントを参照してください。
jms://jmsEndpoint/test.queue
URIは、既に設定されているエンドポイントjmsEndpointを使い、エンドポイントのアドレスを「test.queue」に設定するように指定しています。もしエンドポイントをそのまんま使いたい場合は、アドレスを省略して最後の円印「\」を残します。
スキーム://[ユーザ名][:パスワード]@[ホスト][:ポート]?[パラメータ]
ユーザ名とパスワードはホスト・ポート・パラメータで指定されたリモート・サーバにログインするときに使われます。POP3とSMTPコネクタはこの文法のURIを使います:
pop3://ross:secret@pop3.muleumo.org
smtp://ross:secret@smtp.muleumo.org
スキーム://[アドレス]?[パラメータ]
この綴りでは、プロトコルとアドレスのみを指定します。この場合は、ESB Muleに指定されたスキームを処理できるコネクタを取得するか、新規に処理できるコネクタを生成するように指示します。その後に、指定されたアドレスを使うエンドポイントを生成します。
URIパラメータ
これまではURIのパラメータに付いて触れてきませんでした。2種類のパラメータを設定することができます:
- エンドポイントの構成を制御するESB Muleに知られたパラメータ。例えば、コネクタを強制的に生成させるパラメータや、エンドポイントに適用するトランスフォーマ等が挙げられます。
- コネクタに設定するプロパティ又はプロバイダと関連するプロパティ。このタイプのパラメータはエンドポイントで利用するコネクタのプロパティを設定します。全てのプロパティはプロバイダと関係するために、コネクタとプロバイダのプロパティを組み合わせて指定することができます。詳細に付いてはESB Muleエンドポイントを参照してください。
知られたパラメータ
| プロパティ |
説明 |
| createConnector |
このエンドポイントのコネクトを生成するか指定。可能な設定は-
* IF_NEEDED - (デフォルト) MuleManagerにこのプロトコル用のコネクタが設定されていない場合は生成します。
* ALWAYS - 必ず新しいコネクタをこのエンドポイント用に生成します。
* NEVER - コネクタを生成しません。URIプロトコル用のコネクタが設定されていない場合はConnectorFactoryException例外を投げます。 |
| connector |
このエンドポイントURIに使う既にあるコネクタの名前。 |
| transformers |
このエンドポイントに設定するトランスフォーマの一覧。トランスフォーマはコンマ「,」区切りで記述します。 |
| endpointName |
file:// のようなエンドポイントは、上のような記述でパスにプロバイダ名を指定することができません。このような場合はパラメータを使うことができます。もしエンドポイントはパラメータを含むURIから生成された場合は、エンドポイントの名前にこの値は代入されます。 |
| address |
アドレス・パラメータは明示的にエンドポイント・アドレスをその値に設定し、URIに含まれたその他の情報を無視します。 |
その他のパラメータ
URIに設定された他パラメータはコネクタが生成された場合にはコネクタに設定され、エンドポイントにはプロパティとして設定されます。
カスタム・エンドポイント
コネクタ毎に EndpointBuilder を定義することができます。
このビルダはMuleEndpointURIがuriからコネクタが使えるエンドポイントを生成するのに使われます。ソケット、リソース名、URIビルダのように、多くのコネクタが利用できるデフォルトの EndpointBuilder 実装が用意されます。その他に、ファイルURLのようにプロバイダがURIパスに直接記述できない場合があります。
エンドポイントのエンコーディング
XML設定ファイルを使う場合に、W3C SGML勧告で指定された特殊文字を使う場合は、SGMLコードを記述します。以下は多く使われる特殊文字の一覧です。「;」の前の半額空白を抜いて使ってください。
For characters such as > < " % # that notation will be resolved and cause the constructor for the URI to throw an exception. To use one of ><"%#, a user can specify %HEXNUMBER
| 文字コード |
数値 |
表示 |
説明 |
| %22 |
#34 |
" |
引用符mark = APL 引用句, U+0022 ISONEW |
| & ; |
#38 |
& |
アンパサンド, U+0026 ISOnum |
| %3C |
#60 |
< |
小なり, U+003C ISOnum |
| %3E |
#62 |
> |
大なり, U+003E ISOnum |
| %23 |
#37 |
% |
パーセント, U+0023 ISOnum |
| %25 |
#35 |
# |
ポンド記号, U+0025 ISOnum |