プライマリ・コンテンツに移動
Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発
2.5.0.0.0
E94553-01
目次へ移動
目次

前
次

29 機能アーカイブ・ファイルによるMAFアプリケーション・コンテンツの再使用

この章では、機能アーカイブ(FAR)ファイルの概要と、これらのファイルにアプリケーション機能のコンテンツをパッケージ化して、1つ以上のMAFアプリケーションで再利用する方法について説明します。

この章の内容は次のとおりです。

29.1 機能アーカイブ・ファイルの概要

機能アーカイブ・ファイルとは、別のMAFアプリケーションで再利用するためにアプリケーション機能をパッケージ化したJARファイルです。機能アーカイブ・ファイルには、アプリケーション機能のコンポーネントが格納されていてます。このファイルは、アプリケーション・ライブラリとして追加することも、ビュー・コントローラ・プロジェクトとして追加することもできます。

アプリケーション機能は、機能アーカイブ・ファイル(FAR)と呼ばれるJARファイルにパッケージ化されると、他のMAFアプリケーションが使用できる再利用可能なコンテンツを提供します。MAFアプリケーションは1つ以上のFARファイルを使用できます。FARファイルには、アイコンのイメージ、リソース・バンドル、HTMLファイル、JavaScriptファイル、その他の実装固有のファイルなど、アプリケーション機能が必要とするすべてのものが格納されています。

また、FARには、パッケージ化された各アプリケーション機能を一意のIDで識別する、1つのmaf-feature.xmlファイルも含まれています。このファイルを編集することで、コンテンツ実装(MAF AMX、ローカルHTML、リモートURL)などのアプリケーション機能プロパティを更新し、ユーザー・ロールや権限またはデバイス・プロパティなどのファクタに基づいてプロパティを表示できます。

アプリケーション・ライブラリとしてFARを追加することも、ビュー・コントローラ・プロジェクトとして追加することもできます。プロジェクト・ライブラリとして追加したFARのコンテンツはカスタマイズできません。また、そのコンテンツの個別のアーティファクトを再利用することもできません。FARがライブラリ・ファイルとして追加される場合、MAアプリケーションではFAR全体が使用されます。たとえば、FARのタスク・フローは、タスク・フロー・コール・アクティビティのターゲットになることはできません。ただし、「MDSを使用したMAFアプリケーションのアーティファクトのカスタマイズ」で説明されているように、FARをビュー・コントローラ・プロジェクトとして追加すると、そのアーティファクトをカスタマイズできるようになります。

29.2 MAFアプリケーションでのFARコンテンツの使用方法

アプリケーション機能は、その機能を使用するアプリケーションのクラスパスに追加することで、MAFアプリケーションで使用できるようになります。

注意:

FARは、アプリケーション・コントローラ・プロジェクトにのみ追加でき、ビュー・コントローラ・プロジェクトにFARを追加することはできません。

FARがconnections.xmlファイルで定義する接続がそれを使用するアプリケーションのconnections.xmlでも定義されている場合、接続は使用するアプリケーションに追加されず、FARはアプリケーションに追加されません。

始める前に:

「機能アーカイブのデプロイメント・プロファイルのデプロイ方法」の説明に従って、アプリケーション機能を機能アーカイブ・ファイルとしてデプロイします。

アプリケーション機能コンテンツをライブラリとしてMAFアプリケーションに追加するには:

  1. 「リソース」ウィンドウを開き、「新規」「IDE接続」「ファイルシステム」の順にクリックします。

  2. 「ファイルシステム接続」ダイアログに入力し、機能アーカイブJARファイルを格納するディレクトリへのファイル接続を作成します。詳細は、Oracle JDeveloperのオンライン・ヘルプを参照してください。

  3. 「リソース」ウィンドウで、機能アーカイブ・ファイル(JARファイルとして示されている)を右クリックします。

  4. 「名前を付けてアプリケーションに追加」をクリックし、「ライブラリ」をクリックして、使用するアプリケーションのクラスパスを追加します。

    図29-1 ライブラリとしてのFARのMAFアプリケーションへの追加

    図29-1の説明が続きます
    「図29-1 ライブラリとしてのFARのMAFアプリケーションへの追加」の説明

    ヒント:

    使用するアプリケーションのクラスパスから機能アーカイブJARを削除するには、「ライブラリをアプリケーションから削除」をクリックします。

FARをビュー・コントローラ・プロジェクトとして追加するには:

  1. 「リソース」ウィンドウを開き、「新規」「IDE接続」「ファイルシステム」の順にクリックします。
  2. 「ファイルシステム接続」ダイアログに入力し、機能アーカイブJARファイルを格納するディレクトリへのファイル接続を作成します。詳細は、Oracle JDeveloperのオンライン・ヘルプを参照してください。
  3. 「リソース」ウィンドウで、機能アーカイブ・ファイル(JARファイルとして示されている)を右クリックします。
  4. 「名前を付けてアプリケーションに追加」をクリックし、「ViewControllerプロジェクト」をクリックします。

    図29-2 ビュー・コントローラ・プロジェクトとしてのFARのMAFアプリケーションへの追加

    図29-2の説明が続きます
    「図29-2 ビュー・コントローラ・プロジェクトとしてのFARのMAFアプリケーションへの追加」の説明

29.3 FARのライブラリとしての追加時に行われる処理

FARファイルは、アプリケーションのクラスパスに手動で追加することも、アプリケーションで使用できるように「リソース」に機能を追加することもできます。「リソース」ウィンドウでアプリケーション機能を追加または削除する手順を使用してください。

FARをライブラリとして(または手動でアプリケーションのクラスパスに)追加した場合:

  • FARのコンテンツが、「アプリケーション・リソース」「ライブラリ」ノードの下に表示されます。

    図29-3 使用するアプリケーションの「アプリケーション・リソース」に表示されるFAR JARファイル

    図29-3の説明が続きます
    「図29-3 使用するアプリケーションの「アプリケーション・リソース」に表示されるFAR JARファイル」の説明
  • 図に示すように、JARに含まれるmaf-feature.xmlファイルで宣言されたすべてのアプリケーション機能は、アプリケーションで使用できるようになります(ドロップダウンには、JAR内の使用可能なアプリケーション機能のIDと、アプリケーション内で定義済のIDが表示されています)。

    図29-4 様々なmaf-feature.xmlファイルで定義されたアプリケーション機能の参照

    図29-4の説明が続きます
    「図29-4 様々なmaf-feature.xmlファイルで定義されたアプリケーション機能の参照」の説明

    ヒント:

    機能アーカイブJARをアプリケーションのクラスパスに手動で追加すると、アプリケーション機能が機能参照の挿入ダイアログにも表示されるようになります。

    または、次のように「リソース」ウィンドウからアプリケーション機能を追加したり、削除することもできます。

    1. 「リソース」ウィンドウで、機能アーカイブJARを開きます。

    2. 「MAF機能」フォルダから、アプリケーション機能を右クリックします。

    3. 「機能参照をmaf-application.xmlに追加」または「機能参照をmaf-application.xmlから削除」を選択します。MAF_DevGuideExample.jarからの人々というアプリケーション機能の追加を図に示します。

    maf-application.xmlファイルからのアプリケーション機能参照の削除を図に示します。

29.4 FARのビュー・コントローラ・プロジェクトとしての追加時に行われる処理

ビュー・コントローラ・プロジェクトとしてFARが追加されると、connections.xmlファイルが作成され、ビュー・コントローラ・プロジェクトで使用できるようにFARに.classとJARファイルが含まれます。

FARをビュー・コントローラ・プロジェクトとして追加する場合:

  • MAFは、インポートしたFARと同じ名前のビュー・コントローラ・プロジェクトを生成します。次の図に、MAFで、StockTracker (図29-2StockTrackerFAR.jarを参照)というインポートしたFARファイルに対してビュー・コントローラ・プロジェクト(.jprファイル)を作成する方法を示します。「ビュー・コントローラ・プロジェクトのリソースについて」で説明されているように、このビュー・コントローラ・プロジェクトには、MAFビュー・コントローラ・プロジェクトのデフォルトの構造およびメタデータ・ファイルが含まれています。特に、FARビュー・コントローラ・プロジェクトには、maf-feature.xmlファイルが含まれています。MAFアプリケーションに他のビュー・コントローラ・プロジェクトが含まれている場合、いずれのプロジェクトにもIDが同じアプリケーション機能が含まれていないことを確認する必要があります。「機能アーカイブ・リソースの再使用の有効化に関する必知事項」も参照してください。

    図29-7 MAFアプリケーション内のビュー・コントローラ・プロジェクトとしてインポートしたFAR

    図29-7の説明が続きます
    「図29-7 MAFアプリケーション内のビュー・コントローラ・プロジェクトとしてインポートしたFAR」の説明
  • ライブラリとしてインポートしたFARと同様に、機能アーカイブJARにあるconnections.xmlファイル内の情報は、それを使用するアプリケーションのconnections.xmlファイルにマージされます。ターゲット・アプリケーションにconnections.xmlファイルが存在しない場合、MAFではこのファイルが作成されます。

  • MAFでは、FARに含まれる.classおよびJARファイルをビュー・コントローラ・プロジェクトでライブラリとして使用できるように、これらをそのlibディレクトリ(C:\jdeveloper\mywork\application\FAR view controller project\libなど)にコピーします。MAFでは、これらのファイルをclassesFromFar.jarというファイルにコンパイルします。

  • ライブラリとしてインポートしたFARとは異なり、ビュー・コントローラ・プロジェクトのファイルはカスタマイズできます。

    注意:

    FARに含まれているオリジナルのリソース・バンドルは、生成されたビュー・コントローラ・プロジェクトでは使用できない可能性があるため、「リソース・バンドルでのカスタマイズの有効化」の説明に従って、このプロジェクト内に新しいリソース・バンドルを作成する必要があります。

  • ライブラリとしてインポートしたFARと同様に、FARのmaf-feature.xmlファイル内で宣言されたすべてのアプリケーション機能は、それ使用するアプリケーションで使用できるようになります。

29.5 機能アーカイブ・リソースの再使用の有効化に関する必知事項

FARのリソースは、いくつかの条件(プロジェクトに固有のパッケージ階層や機能参照IDに対する一意のパッケージ・ネーミング・システムなど)が満たされている場合にのみアプリケーションで使用できます。

FARのリソースをアプリケーションで使用可能にするためには、FARの名前とその機能参照IDが両方ともグローバルに一意である必要があります。重複した機能参照IDがmaf-application.xmlファイルに存在しないことを確認します。FARの内部では、DataControl.dcxファイルが一意のパッケージ・ディレクトリ内に存在する必要があります。これらのパッケージ・ディレクトリのデフォルト名をそのまま使用するのではなく、プロジェクト用に一意のパッケージ階層を作成します。機能参照IDについても、同じようなパッケージ・ネーミング・システムを使用します。