カスタム・アダプタを作成する際に、最初に決定する必要がある事項は、カスタム・アダプタを一方向と双方向のいずれにするか、すなわちアウトバウンド(同期)操作の呼出しをサポートするかどうか、つまりJCA共通クライアント(CCI) APIを使用するかどうかです。あるいは、アダプタでアウトバウンドとインバウンド両方の(非同期)メッセージ・フローをサポートする必要があるかどうかです。
この決断を下し、アウトバウンドおよびインバウンド・メッセージ・フローをサポートするカスタム・アダプタを作成する場合、次の点について認識しておくことが重要です。
アウトバウンド・メッセージ・フローをサポートするには、アダプタでjavax.resource.cci.InteractionSpec
の1つ以上の実装を定義する必要があります。
インバウンド・メッセージ・フローをサポートするには、アダプタでjavax.resource.spi.ActivationSpec
の1つ以上の実装を定義する必要があります。
これらの仕様(Java Beans)はそれぞれ、アダプタでサポートする特定の操作を定義する名前と値のペアとしてメタデータを提供します。
たとえば、FTPアダプタの場合、相互作用の仕様では、Directory
というBeanプロパティが公開されます。FTPアダプタが呼び出された場合、呼出し元は、相互作用の仕様プロパティDirectory
を設定することによって(たとえば、FtpInteractionSpec.setDirectory("/tmp/receive")
を設定することによって)、特定のディレクトリにペイロードを配置するようアダプタに指示することができます。
アダプタで異なる種類またはカテゴリの呼出しがサポートされる場合、それぞれの呼出しで別々のプロパティ・セットが必要であり、javax.resource.cci.InteractionSpec
の個別実装によって各呼出しタイプをモデリングできます。
たとえば、アダプタではさらに、SshFtpInteractionSpec
およびSSLFtpInteractionSpec
を実装できます。1つ目の相互作用の仕様ではS-FTPプロトコルがサポートされ、2つ目の相互作用の仕様ではFTP/Sプロトコルがサポートされます。
この情報およびアダプタでサポートされる操作に関するアダプタ使用の可能性について認識しておくことは、カスタマイズにおいて役立つ一歩となります。