ヘッダーをスキップ
Oracle® Fusion Middleware WebCenter Sites開発者ガイド
11gリリース1 (11.1.1.8.0)
E49681-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
 

95 アダプタおよびプラグインの作成

この章では、任意のソース・システムからWebCenter Sitesへのコンテンツ配信をサポートする完全な統合ソリューションの作成方法について説明します。

この章には次の項が含まれます。

95.1 アダプタおよびプラグインの作成の概要

アダプタおよびプラグインの作成には、次の手順が含まれます。

  1. Content Integration Agent内で提供されるプラガブル・インタフェースの実装。

  2. Content Integration Agentランタイム・システムへの実装の登録。

  3. Java仮想マシンによる、C++エージェント・ランタイムからJavaコードへのコールの委任を可能にするためのjavafacilityの登録。


注意:

どのアダプタでも、カスタム・プラグインを使用できます。必要に応じて、任意の数のプラグインを実装してデプロイできます。


カスタム・アダプタ(またはプラグイン)を正常に使用するには、公開可能なオブジェクトのデータ・モデルがWebCenter Sitesシステムに存在していて、かつWebCenter Sitesシステムにマップされている必要があります。次の手順が必要になります。

  1. オブジェクト・タイプ、その属性およびオブジェクト自体を格納するための専用のフレックス・ファミリを作成して(または既存のフレックス・ファミリを再利用して)、WebCenter Sites内にオブジェクトのメタデータを再生成します。

  2. オブジェクト・タイプと属性を、それぞれのフレックス・ファミリ・アセット・インスタンス(前述の手順で作成したもの)にマップします。このマップは、アダプタの実装内で直接作成できます。または、mappings.xmlファイル内で作成できます。

95.2 Javaソース・アダプタの作成

サポート対象外のソース・システムからWebCenter Sitesに公開するには、Javaベースのソース・アダプタを作成する必要があります。アダプタで取得したオブジェクトを公開する前に処理する必要がある場合を除いて、プラグインは必要ありません。


注意:

リレーショナル・データベースを使用する場合は、アダプタを機能させるためにカスタム・ビューまたはカスタム問合せを実装します。


Javaソース・アダプタを作成するには

  1. アダプタを実装します。

    IConnectorIProviderSessionIRepositoryIItemの各インタフェースを実装します。ソース・システムの項目に主要なバイナリ・コンテンツが含まれている場合は、オプションでInputStreamインタフェースを実装できます。

    図95-1は、インタフェース間の関係を示しています。アダプタのコードのエントリ・ポイントは、ファクトリ・クラスであるIConnectorインタフェースの実装です。

    図95-1 アダプタおよびプラグインのクラス図

    図95-1の説明が続きます
    「図95-1 アダプタおよびプラグインのクラス図」の説明

    アダプタの存続期間には、様々なフェーズがあります。フェーズに応じて、異なるメソッドが呼び出されます。図95-2は、各フェーズでのコール・シーケンスを示しています。

    図95-2 ソース・アダプタのコール・シーケンス

    図95-2の説明が続きます
    「図95-2 ソース・アダプタのコール・シーケンス」の説明

    図3 ソース・アダプタのコール・シーケンスの分析

    getRepositoryByID関数に渡されるIDは、catalog.xmlファイル内の対応するワークスペース・エレメントの1つから取得されます。

    cipcommanderに渡す内容に応じて、次のいずれかの関数が呼び出されます。

    • -source_itemidを渡す場合は、getItemByIDが呼び出され、itemidを渡します。

    • -source_itemidを省略して-source_pathを指定した場合は、getItemByPath関数が呼び出されます。

    • -source_itemid-source_pathのいずれも指定していない場合は、getTopFolder関数が呼び出されます。(この場合、リポジトリ全体が公開されます。)

    一意性を確保するため、同一リポジトリ内のすべての項目で、異なるversioniditemidpathを保持し、同一フォルダ内のすべての項目に異なる名前が付与されるようにします。pathは次の形式である必要があります。<parent path>/<this item name>

  2. アダプタを登録します。

    1. (integration_agent/conf/内の)catalog.xmlconnectorエレメントを追加することによって、IConnectorインタフェースの実装をContent Integration Agentに登録します。

      <connector id="connector_id" name="connector_descriptive_name">
            <library>javaconnector</library>
              <init-params>
               <param name="className">connector_class_name</param>
                 connector-specific_parameters
              </init-params>
      </connector>
      
      パラメータ 説明
      connector_id
      

      任意の一意の識別子。

      connector_descriptive_name
      

      任意の記述名(一意である必要はありません)。

      connector_class_name
      

      作成したIConnector実装の名前。

      connector-specific_parameters
      

      コール時にIConnector.initializeに渡されるパラメータ・セット。


    2. 次のように、catalog.xmlに新しいproviderエレメントを追加することによって、公開を有効にします。

      <provider id="provider_id" name="provider_descriptive_name">
            <connector-ref refid="connector_id"/>
              <init-params/>
                provider-specific_parameters
              </init-params> 
      </ provider >
      
      パラメータ 説明
      provider_id
      

      任意の一意の識別子。

      provider_descriptive_name
      

      任意の記述名(一意である必要はありません)。

      connector_id 
      

      アダプタの一意の識別子。

      provider-specific_parameters 
      

      コール時にIConnector.loginに渡されるパラメータ・セット。


    3. アダプタをデプロイします。

      アダプタのjarファイルをフォルダ<resource>/java/<connector_id>/lib内に配置し、classファイルを<resource>/java/<connector_id>/classes内に配置します。

      <resource>フォルダは、Content Integration Agent内にあります。

      Windowsの場合: <resource><%INSTALLDIR%>です。

      Unixの場合: <resource><$INSTALLDIR/shared/cipagent>です。


      注意:

      様々な実装やロード/アンロード機能との競合を回避するために、アダプタ・クラスは別のクラス・ローダーによってロードされます。すべてのアダプタのjarファイルおよびclassファイルは、CLASSPATH環境変数、java.class.pathプロパティまたはjre/lib/extフォルダではなく、<connector_id>フォルダに配置することを強くお薦めします。


  3. Javaプラグインが必要な場合は(アダプタが取得した項目を処理するため)、第95.3項「Javaプラグインの作成」に進んでください。それ以外の場合は、javafacilityを有効にします(Java仮想マシンがC++エージェント・ランタイムからのJavaコード・コールを委任できるようにするため)。手順は、第95.4項「javafacilityの有効化」を参照してください。

95.3 Javaプラグインの作成


注意:

どのアダプタでも、カスタム・プラグインを使用できます。必要に応じて、任意の数のプラグインを作成してデプロイできます。


アダプタで取得したオブジェクトをWebCenter Sitesシステムに公開する前に処理する必要がある場合を除いて、プラグインは必要ありません。プラグインの主な目的は、取得した項目のメタデータを変更したり、取得した項目にメタデータを追加したり、項目を却下したりすることです。

プラグインの作成はアダプタの作成と似ています。その手順を次に示します。

Javaプラグインを作成するには

  1. IAssetHandlerインタフェースを(Content Integration Agent内に)実装することによってプラグインを実装します。

    プラグインのエントリ・ポイントはIAssetHandlerインタフェースです。これは、ランタイム・システムによって直接使用される唯一のインタフェースです。

    ほとんどの場合、実装する必要があるメソッドはExtractMetadataのみです。図95-3は、プラグインの存続期間におけるコール・シーケンスを示しています。

    図95-3 プラグインのコール・シーケンス

    図95-3の説明が続きます
    「図95-3 プラグインのコール・シーケンス」の説明

  2. Content Integration Agentにプラグインを登録します。

    1. (integration_agent/conf/フォルダ内の)types.xmlファイルに、新しいプラグインhandlerエレメントを追加します。

      <handler id="handler_id">
            <library>javaplugin</library> 
              <init-params/>
                plugin-specific_parameters 
              </init-params>
      </handler>
      
      パラメータ 説明

      handler_id

      カスタム・プラグインの一意の識別子。

      plugin-specific parameters

      プラグインの初期化時に渡されるプラグイン固有のパラメータ。


    2. Content Interation Platform for EMC Documentumを使用している場合は、この手順を実行します。それ以外の場合は、手順3に進みます。

      選択したハンドラ・セットのハンドラを有効にします。どのハンドラ・セットを使用するかは、公開開始プロセスの実行時に指定します。各ハンドラ・セットにはハンドラのリストが含まれており、それらはContent Integration Agentのメタデータ抽出フェーズで呼び出されます。ハンドラの対応付けは、MIMEタイプまたはアセット・タイプによって行われます。

      MIMEタイプは次の形式になります。<major type>/<minor type>

      (たとえば、image/jpeg)。MIMEタイプには、*を使用するオプションがあります。これは、minor部分、またはMIMEタイプ全体に適用できます。たとえば、*/*はすべてのアセットと一致し、text/*はテキスト・ファイルとのみ一致します。

      IConnectorContext.guessMIMEType関数を使用する場合、この関数は指定されたファイル拡張子に対応するMIMEタイプを取得するためにmimetypes.xmlを参照します。たとえば、パラメータにtxtを指定して呼び出すと、text/plainという結果が生成されます。

      また、アセット・タイプでも*の表記がサポートされており、これはすべてのアセット・タイプと一致します。

      複数のハンドラが特定の項目と一致する場合は、使用されるハンドラ・セット内での登録順序と同じ順序でそれらのハンドラが呼び出されます。対応するハンドラのいずれかがIItem.extracMetadataのコールからNULLオブジェクトを返す場合、その項目は将来の処理から破棄され、ターゲットのアダプタには送信されません。

    3. types.xmlファイルにasset-type要素を追加することによって、選択したオブジェクト・タイプのカスタム・プラグインを有効にします。このプラグインが呼び出される項目は、MIMEタイプに従ってフィルタリングされます。


      注意:

      プラグインのコンテキスト内のasset-typeエレメントは、MIMEタイプ・グループです。


      <asset-type type="MIME_type">
            <extensions>
              <ext>ext</ext>
               . . .
            </extensions>
         <handler-ref refid="handler_id" />
      </asset-type>
      
      パラメータ 説明
      MIME type
      

      このプラグインが呼び出される項目のMIMEタイプ。MIMEtypeは、<major_type/minor_type>の形式である必要があります。たとえば、text/plainと指定します。

      ワイルドカード記号(*)も使用できます。例:

      • すべてのテキスト・ファイルに対してプラグインを有効にするには、次のように指定します。

        text/*

      • すべての項目に対してプラグインを有効にするには、次のように指定します。

        */*

      ext
      

      ファイル拡張子。たとえば、テキスト・ファイルの場合は.txtです。このファイル拡張子は、プラグインの選択プロセスに直接影響を与えるものではありません。これは、MIMEタイプを直接利用できないシステム(ファイル・システムなど)でMIMEタイプを推測する際に使用されます。

      handler_id
      

      カスタム・プラグインの一意の識別子(前の手順のhandlerエレメント内で指定したもの)。


    4. プラグインをデプロイします。

      プラグインのjarファイルをフォルダ<resource>/java/<plugin_id>/lib内に配置し、classファイルを<resource>/java/<plugin_id>/classes内に配置します。

      <resource>フォルダは、Content Integration Agent内にあります。

      Windowsの場合: <resource><%INSTALLDIR%>です。

      Unixの場合: <resource><$INSTALLDIR/shared/cipagent>です。


      注意:

      様々な実装やロード/アンロード機能との競合を回避するために、プラグイン・クラスは別のクラス・ローダーによってロードされます。すべてのプラグインのjarファイルおよびclassファイルは、CLASSPATH環境変数、java.class.pathプロパティまたはjre/lib/extフォルダではなく、<plugin_id>フォルダに配置することを強くお薦めします。


  3. カスタム・アダプタを作成したものの、まだjavafacilityを有効にしていない場合は、第95.4項「javafacilityの有効化」に進んでください。

95.4 javafacilityの有効化

C++エージェント・ランタイムからJavaコードを呼び出すには、facilities.xml内にjavaという特殊なファシリティを登録する必要があります。

javafacilityを有効にするには

  1. facilities.xmlがコメント化されていないことを確認します(facilities.xmlは、integration_agent/conf/フォルダにあります)。

  2. 次の行を追加します。

    <facility name="javafacility">
         <library>java</library>
           <init-params>
             <param name="VMArgparam_id">Java_VM_argument
    </param>
             <param name="VMLibraryPath">VM_library_path</param>
           </init-params>
    </facility>
    
パラメータ 説明
param_id

パラメータの一意のID(任意の一意の値)。JVMに複数の引数を渡すには、異なるparam_idを使用して複数のパラメータを構築します。

Java_VM_argument

エージェント・ランタイム・プロセス内で作成され、Java VMに渡されるJava VM引数。

例:

<param name="VMArg0">-Xmx256m

</param>

VM_library_path

JRE/JDKインストール内のJava VMライブラリ(DLLまたは共有ライブラリ)のフルパス。

たとえば、Windows版のSun JDKでは、VM_library_pathは次のいずれかになります。

%JAVA_HOME%\jre\bin\server\jvm.dll

または

%JAVA_HOME%\jre\bin\client\jvm.dll


95.5 トラブルシューティングとデバッグ

CIPのカスタム・コンポーネントを開発する場合、本番環境に表示されるデフォルトのロギング・メッセージ以外の情報があると役立つことがあります。CIP Agentでは、次の5つのロギング・レベルをサポートしています。

次の指示に従って、CIPのカスタム・コンポーネントをデバッグしてください。


注意:

次に示す設定は、システムのパフォーマンスを低下させる可能性があるため、本番システムでは使用しないでください。