プライマリ・コンテンツに移動

Oracle Enterprise Pack for Eclipse Oracle Mobile Application Framework (OEPE Edition)でのモバイル・アプリケーションの開発 リリース2.1.3 E67371-01 |
| 目次

前 | 次 |

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

この章では、MAFアプリケーション・エディタとMAF機能エディタを使用してモバイル・アプリケーションのSpringboardおよびナビゲーション・バーの表示動作を定義し、アプリケーション機能を埋め込むことでコンテンツを指定する方法について説明します。

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

- 第9.1項「機能アーカイブ・ファイルの使用」

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

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

## 9.1 機能アーカイブ・ファイルの使用

MAFアプリケーション・エディタは、少なくとも1つのアプリケーション機能を参照します。これらのアプリケーション機能は、機能アーカイブ・ファイル(FAR)と呼ばれるJARファイルにパッケージ化されると、他のモバイル・アプリケーションが使用できる再利用可能なコンテンツを提供します。FARは本質的に、アイコンのイメージ、リソース・バンドル、HTMLファイル、JavaScriptファイル、その他の実装固有のファイルなど、アプリケーション機能が必要とするすべてのものを格納した自己完結型のコレクションです。モバイル・アプリケーションでは、1つまたは複数のFARを参照することも、何も参照しないようにすることもできます。

MAFアプリケーション・エディタを使用してFARをMAFアプリケーションに追加できます。追加されると、それに含まれる機能を参照できるようになります。参照しなければ、FAR機能は使用されません。参照する場合は、FARで使用する任意の接続を、使用するアプリケーションで設定する必要があります。FARのコンテンツはカスタマイズできず、またその個々のアーティファクトを再利用することもできません。モバイル・アプリケーションではFAR全体を利用できます。たとえば、FARのタスク・フローは、タスク・フロー・コール・アクティビティのターゲットにすることはできません。

注意: 機能アーカイブに、地理マップを使用するAMXページが含まれる場合、アプリケーションの`adf-config.xml`ファイルで数多くのプロパティを設定する必要があります。第13.5.18.1項「地理プロバイダ情報を指定した地理マップ・コンポーネントの構成」を参照してください。

### 9.1.1 アプリケーション・ライブラリとしてのFARのインポート

FARをアプリケーション・ライブラリとしてインポートして、MAFアプリケーションからその機能にアクセスできるようにすることができます。

FARをアプリケーション・ライブラリとしてインポートするには:

1. プロジェクト・エクスプローラで、最上位のアセンブリ・プロジェクトのフォルダを展開し、MAFフォルダを展開します。

2. 「MAFアプリケーション・エディタ」をダブルクリックして開きます。

3. 機能アーカイブ・フォルダを右クリックし、「新」→「機能アーカイブ」を選択します。

4. 「URI」フィールドの「参照」ボタンをクリックして、モバイル機能のアーカイブ場所ダイアログを開き、FARを配置できるURIを入力します。Oracle Enterprise Pack for Eclipseによって、選択したファイルに機能の定義が含まれているかどうかと、場所がアクセス可能かどうかが検証されます。

5. URIを指定し、Oracle Enterprise Pack for Eclipseによってそれが確認されたら、「OK」をクリックします。

### 9.1.2 FARを使用したsync-config.xmlファイルの更新に関する必知事項

`sync-config.xml`ファイルにより、モバイル・アプリケーションが、様々なタイプのWebサービス(SOAP、またはJSONペイロードによるREST)を介してアクセスされるサーバー側リソースから取得されたデータをSQLite埋込みデータベースにキャッシュできるようになるだけでなく、キャッシュ内のこのデータおよびサーバー側リソースも更新できるようになります。

ビュー・コントローラ・プロジェクトがFARとしてデプロイされると、`sync-config.xml`ファイルは機能アーカイブ・ファイルに含まれます。`connections.xml`ファイルと同様に、FARをアプリケーションに追加すると、MAFではFAR (jar-sync-config.xml)内の`sync-config.xml`ファイルの内容と、使用するアプリケーションの`sync-config.xml`ファイルの内容をマージします。sync-config.xmlファイルは、モバイル・アプリケーションで使用されるWebサービス・エンドポイントを記述しているため、FARを追加することによって、モバイル・アプリケーションを構成するアプリケーション機能によって使用されるすべてのWebサービスのエンドポイントを更新できます。

FARをアプリケーションに追加すると、MAFでは、アプリケーションの`sync-config.xml`ファイルおよび`connections.xml`ファイルを確認し、必要に応じて変更するように求めるメッセージがログに記録されます。図9-1に示すように、これらのメッセージは、使用するアプリケーションの`sync-config.xml`ファイルの状態を反映します。

図9-1 メッセージ・ログ

使用するアプリケーションに`sync-config.xml`ファイルがない場合、MAFではこのファイルをアプリケーションに追加し、次のようなメッセージを書き込みます。

`oracle.adfmf.framework.dt.deploy.features.deployers.SyncConfigMerger _logNoSyncConfigInAppUsingFar`

`WARNING: The application does not contain a synchronization file, "sync-config.xml". Creating one containing the synchronization configuration in the Feature Archive.`

`sync-config.xml`ファイルの`<ServerGroup>`要素に、使用するアプリケーションの`connections.xml`ファイルで定義された対応する`<Reference>`要素がない場合、MAFでは接続の確認(または作成)をリクエストする次のようなログ・メッセージを書き込みます。

`oracle.adfmf.framework.dt.deploy.features.deployers.SyncConfigMerger _logAddedServerGroups`

`WARNING: The following server groups were added sync-config.xml by the Add to Application` `operation:{ ServerGroup1 - there is no existing application connection defined for this server group. Please create the connection. ServerGroup2 - verify its configuration.}`

使用するアプリケーションの`config-sync.xml`ファイルの`<ServerGroup>`定義が、FAR内の対応する`config-sync.xml`ファイルの定義を複製する場合、MAFでは次の`SEVERE`レベルのメッセージをログに書き込みます。

`oracle.adfmf.framework.dt.deploy.features.deployers.SyncConfigMerger _logDuplicateServerGroups`

`SEVERE: Cannot merge the server groups from the Feature Archive because the following definitions already exist:`

`ServerGroup1`

`ServerGroup2`

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

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

- MAFは、インポートしたFARと同じ名前のビュー・コントローラ・プロジェクトを生成します。このビュー・コントローラ・プロジェクトには、MAFビュー・コントローラ・プロジェクトのデフォルトの構造およびメタデータ・ファイルが含まれています。特に、FARビュー・コントローラ・プロジェクトには、`maf-feature.xml`ファイルが含まれています。MAFアプリケーションに他のビュー・コントローラ・プロジェクトが含まれている場合、いずれのプロジェクトにもIDが同じアプリケーション機能が含まれていないことを確認する必要があります。

- ライブラリとしてインポートしたFARと同様に、機能アーカイブJARにある`connections.xml`ファイル内の情報は、使用するアプリケーションの`connections.xml`ファイルにマージされます。ターゲット・アプリケーションに`connections.xml`ファイルが存在しない場合、MAFではこのファイルが作成されます。同様に、`sync-config.xml`ファイルは、使用するアプリケーションの`sync-config.xml`ファイルにマージされます。

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

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

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

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

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