Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.1.0 E60836-01 |
|
![]() 前 |
![]() 次 |
この章では、機能アーカイブ(FAR)ファイルの概要と、これらのファイルにアプリケーション機能のコンテンツをパッケージ化して、1つ以上のMAFアプリケーションで再利用する方法について説明します。
この章の内容は次のとおりです。
アプリケーション機能は、機能アーカイブ・ファイル(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アプリケーションのアーティファクトのカスタマイズ」を参照)。
アプリケーション機能を、それを使用するアプリケーションのクラスパスに追加することで、MAFアプリケーションで使用できるようにします。
注意: FARは、アプリケーション・コントローラ・プロジェクトにのみ追加でき、ビュー・コントローラ・プロジェクトにFARを追加することはできません。 |
始める前に
アプリケーション機能を機能アーカイブ・ファイルとしてデプロイします(第27.5.2項「機能アーカイブのデプロイメント・プロファイルのデプロイ方法」を参照)。
アプリケーション機能コンテンツをライブラリとしてMAFアプリケーションに追加するには:
「リソース」ウィンドウを開き、「新規」→「IDE接続」を選択して、「ファイルシステム」を選択します。
「ファイルシステム接続」ダイアログに入力し、機能アーカイブJARファイルを格納するディレクトリへのファイル接続を作成します。詳細は、Oracle JDeveloperのオンライン・ヘルプを参照してください。
「リソース」ウィンドウで、機能アーカイブ・ファイル(JARファイルとして示されている)を右クリックします。
「名前を付けてアプリケーションに追加」を選択して、「ライブラリ」を選択し、これを使用するアプリケーションのクラスパスを追加します(図8-1を参照)。
ヒント: 使用するアプリケーションのクラスパスから機能アーカイブJARを削除するには、「ライブラリをアプリケーションから削除」を選択します。 |
FARをビュー・コントローラ・プロジェクトとして追加するには:
「リソース」ウィンドウを開き、「新規」→「IDE接続」を選択して、「ファイルシステム」を選択します。
「ファイルシステム接続」ダイアログに入力し、機能アーカイブJARファイルを格納するディレクトリへのファイル接続を作成します。詳細は、Oracle JDeveloperのオンライン・ヘルプを参照してください。
「リソース」ウィンドウで、機能アーカイブ・ファイル(JARファイルとして示されている)を右クリックします。
「名前を付けてアプリケーションに追加」を選択して、「ViewControllerプロジェクト」を選択します(図8-2を参照)。
FARをライブラリとして(または手動でアプリケーションのクラスパスに)追加した場合:
FARのコンテンツが、「アプリケーション・リソース」の「ライブラリ」ノードの下に表示されます(図8-3を参照)。
JARに含まれるmaf-feature.xml
ファイルで宣言されたすべてのアプリケーション機能は、アプリケーションで使用できるようになります(図8-4を参照。ドロップダウンには、JAR内の使用可能なアプリケーション機能のIDと、アプリケーション内で定義済のIDが表示されています)。
ヒント: 機能アーカイブJARをアプリケーションのクラスパスに手動で追加すると、アプリケーション機能が機能参照の挿入ダイアログにも表示されるようになります。 |
または、次のように「リソース」ウィンドウからアプリケーション機能を追加したり、削除することもできます。
「リソース」ウィンドウで、機能アーカイブJARを開きます。
「MAF機能」フォルダから、アプリケーション機能を右クリックします。
「機能参照をmaf-application.xmlに追加」(図8-5を参照)、または「機能参照をmaf-application.xmlから削除」(図8-6を参照)を選択します。図8-5に、MAF_DevGuideExample.jar
からの人々というアプリケーション機能の追加を示しています。
図8-6に、maf-application.xml
ファイルからのアプリケーション機能参照の削除を示しています。
機能アーカイブJARにあるconnections.xml
ファイル内の情報は、使用するアプリケーションのconnections.xml
ファイルにマージされます。図8-7に示す「ログ」ウィンドウには、名前の競合が表示されています。
注意: 使用するアプリケーションで接続が有効であることを確認する必要があります。 |
FARをビュー・コントローラ・プロジェクトとして追加する場合:
MAFは、インポートしたFARと同じ名前のビュー・コントローラ・プロジェクトを生成します。図8-8に、MAFで、StockTracker
(図8-2のStockTrackerFAR.jar
を参照)というインポートしたFARファイルに対してビュー・コントローラ・プロジェクト(.jprファイル)を作成する方法を示しています。このビュー・コントローラ・プロジェクトには、MAFビュー・コントローラ・プロジェクトのデフォルトの構造およびメタデータ・ファイルが含まれています(第2.2.2.2項「「ビュー・コントローラ・プロジェクト・リソースについて」を参照)。 特に、FARビュー・コントローラ・プロジェクトには、maf-feature.xml
ファイルが含まれています。MAFアプリケーションに他のビュー・コントローラ・プロジェクトが含まれている場合、いずれのプロジェクトにもIDが同じアプリケーション機能が含まれていないことを確認する必要があります。第8.5項「機能アーカイブ・リソースの再使用の有効化に関する必知事項」も参照してください。
ライブラリとしてインポートした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
ファイル内で宣言されたすべてのアプリケーション機能は、使用するアプリケーションで使用できるようになります。
FARのリソースをアプリケーションで使用可能にするためには、FARの名前とその機能参照IDが両方ともグローバルに一意である必要があるため、maf-application.xml
ファイル内に機能参照IDの重複がないことを確認してください。FARの内部では、DataControl.dcx
ファイルが一意のパッケージ・ディレクトリ内に存在する必要があります。これらのパッケージ・ディレクトリのデフォルト名をそのまま使用するのではなく、プロジェクト用に一意のパッケージ階層を作成する必要があります。さらに機能参照IDについても、同じようなパッケージ・ネーミング・システムを使用する必要があります。