ヘッダーをスキップ

Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.1.1.0.0 E64867-01 |
| 目次

前 | 次 |

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

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

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

- 第8.1項「機能アーカイブ・ファイルの概要」

- 第8.2項「MAFアプリケーションでのFARコンテンツの使用方法」

- 第8.3項「FARのライブラリとしての追加時に行われる処理」

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

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

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

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

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

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

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

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

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

始める前に

アプリケーション機能を機能アーカイブ・ファイルとしてデプロイします(第27.5.2項「機能アーカイブのデプロイメント・プロファイルのデプロイ方法」を参照)。

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

1. 「リソース」ウィンドウを開き、「新規」→「IDE接続」を選択して、「ファイルシステム」を選択します。

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

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

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

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

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

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

1. 「リソース」ウィンドウを開き、「新規」→「IDE接続」を選択して、「ファイルシステム」を選択します。

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

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

4. 「名前を付けてアプリケーションに追加」を選択して、「ViewControllerプロジェクト」を選択します(図8-2を参照)。

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

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

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

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

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

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

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

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

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

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

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

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

     図8-5 機能参照の追加

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

  図8-6 機能参照の削除

- 機能アーカイブJARにある`connections.xml`ファイル内の情報は、使用するアプリケーションの`connections.xml`ファイルにマージされます。図8-7に示す「ログ」ウィンドウには、名前の競合が表示されています。

  注意: 使用するアプリケーションで接続が有効であることを確認する必要があります。

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

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

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

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

  図8-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に含まれる元のリソース・バンドルは、生成されたビュー・コントローラ・プロジェクトでは使用できない可能性があるため、このプロジェクト内に新しいリソース・バンドルを作成する必要があります(第10.7項「リソース・バンドルでのカスタマイズの有効化」を参照)。

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

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

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