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

前
次

10 MAFアプリケーション・コンテンツの再使用

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

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

10.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をビュー・コントローラ・プロジェクトとして追加すると、そのアーティファクトをカスタマイズできるようになります。

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

アプリケーション機能のコンテンツをライブラリとしてMAFアプリケーションに追加するための手順と、FARをビュー・コントローラ・プロジェクトとして追加する手順を使用してください。

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

注意:

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

始める前に:

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

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

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

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

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

  4. 「名前を付けてアプリケーションに追加」をクリックして、「ライブラリ」をクリックし、これを使用するアプリケーションのクラスパスを追加します(図10-1を参照)。

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

    この図は周囲のテキストで説明しています

    ヒント:

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

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

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

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

    この図は周囲のテキストで説明しています

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

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

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

  • FARのコンテンツが、「アプリケーション・リソース」「ライブラリ」ノードの下に表示されます(図10-3を参照)。

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

    この図は周囲のテキストで説明しています
  • JARに含まれるmaf-feature.xmlファイルで宣言されたすべてのアプリケーション機能は、アプリケーションで使用できるようになります(図10-4を参照。ドロップダウンには、JAR内の使用可能なアプリケーション機能のIDと、アプリケーション内で定義済のIDが表示されています)。

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

    この図は周囲のテキストで説明しています

    ヒント:

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

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

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

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

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

      図10-5 機能参照の追加

      この図は周囲のテキストで説明しています

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

    図10-6 機能参照の削除

    この図は周囲のテキストで説明しています
  • 機能アーカイブJARにあるconnections.xmlファイル内の情報は、それを使用するアプリケーションのconnections.xmlファイルにマージされます。図10-7に示す「ログ」ウィンドウには、名前の競合が表示されています。

    注意:

    使用するアプリケーションで接続が有効であるかどうかを確認する必要があります。

    図10-7 接続での名前の競合を示すメッセージ・ログ・ウィンドウ

    この図は周囲のテキストで説明しています

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

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

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

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

    図10-8 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ファイル内で宣言されたすべてのアプリケーション機能は、それ使用するアプリケーションで使用できるようになります。

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

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

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