| Oracle® Mobile Application Framework Oracle Mobile Application Frameworkでのモバイル・アプリケーションの開発 2.3.1 E77215-01 | 
 | 
|  前 |  次 | 
この章の内容は次のとおりです。
Oracle Metadata Services (MDS)を使用して、デザインタイムにMAFアプリケーションを再ブランド設定、カスタマイズおよびパーソナライズします。MDSにより、単一のアプリケーションを様々な産業、場所またはユーザー・グループに適応させます。たとえば、MDSでは、ユーザー・グループまたはユーザー職責にあわせてアプリケーションのルック・アンド・フィールを調整できます。
カスタマイズしたアプリケーションは、ベース・アプリケーションとカスタマイズの1つ以上のレイヤーで構成されます。各レイヤーには、複数のレイヤー値を指定できます。これらのレイヤー値を、指定の優先順位に従ってベース・メタデータの最上位に適用できます。
MAFでは、MDSシード・カスタマイズ・パターンがサポートされます。デザインタイムに適用されるカスタマイズ・レイヤーを定義することで、汎用アプリケーションを特定のグループ(特定の産業やサイトなど)に適応させます。これらのシード・カスタマイズはデプロイされたアプリケーションの一部として存在し、特定のデプロイの存続期間中保持されます。
MDSを使用して、MAFアプリケーションの次のアーティファクトをカスタマイズします。
maf-feature.xmlファイル
maf-skins.xmlファイル
maf-application.xmlファイル
maf-config.xmlファイル
MAF AMXファイルおよびメタデータ・ファイル(「MAF AMXアプリケーション機能アーティファクトのカスタマイズ」を参照)。
MDSを使用してMAFアプリケーションをカスタマイズするには、次の手順を実行します。
1つ以上のグローバルまたはアプリケーション固有のカスタマイズ・レイヤーを定義します。詳細は、「カスタマイズ・レイヤーの構成」を参照してください。
MDSでベース・アプリケーションに適用するカスタマイズの決定に使用するカスタマイズ・クラスを作成します。各カスタマイズ・クラスは、ベース・カスタマイズ・レイヤーを定義します。詳細は、「カスタマイズ・クラスの作成」を参照してください。
カスタマイズ・クラス(.javaファイル)をJARファイルとしてパッケージ化して、JDeveloperデザインタイムがカスタマイズにアクセスできるようにします。次に、MAFアプリケーションのいずれかのプロジェクトにJARファイルを追加します。詳細は、「カスタマイズ・クラスの使用」を参照してください。
adf-config.xmlファイルのcust-configセクションにカスタマイズ・クラスを追加して、優先順位に従ってカスタマイズ・クラスを登録します。
「カスタマイズ開発者」ロールでJDeveloperを起動するか、そのロールに切り替えます。詳細は、「「カスタマイズ開発者」ロールの理解」を参照してください。
必要に応じてファイルを変更します。変更はMDSにより、ViewControllerプロジェクトのmdssysディレクトリに記録されます。

「カスタマイズ・コンテキスト」ウィンドウからカスタマイズ・レイヤーを選択します(図11-1を参照)。
図11-1 カスタマイズ・レイヤーの選択(ヒント・レイヤー)

注意:
「カスタマイズ開発者」ロールで作業する際、「カスタマイズ・コンテキスト」ウィンドウで選択したレイヤーとレイヤー値をヒント・レイヤーと呼びます。「カスタマイズ開発者」ロールで作業中に行った変更は、このレイヤーにのみ適用されます。
アプリケーションを、デバイス、エミュレータにデプロイするか、プラットフォーム固有のアプリケーション・パッケージとしてデプロイします。カスタマイズしたアプリケーションをデプロイするには、次のように「カスタマイズ開発者」ロールを使用する必要があります。
「カスタマイズ開発者」ロールで、アプリケーションを起動します。
図11-1に示す「カスタマイズ・コンテキスト」ウィンドウで、カスタマイズを実装するレイヤーと値を選択します。
「アプリケーション」をクリックしてから、「デプロイ」をクリックし、デプロイメント・オプションとデプロイメント・プロファイルを選択します。詳細は、「MAFアプリケーションのデプロイ」を参照してください。
各カスタマイズ・コンテキストを個別にデプロイします。
デプロイメント時に、ベース・ファイルおよびデルタ・ファイルがマージされ、実行時のアプリケーションのカスタマイズ・バージョンが作成されます。デプロイされたアプリケーションには、MDSの依存性はありません。
ヒント:
別のカスタマイズやアップグレードを実行するには、カスタマイズしたアプリケーションをMAFアプリケーション・アーカイブ(.maa)ファイルとしてデプロイして、そのファイルをアプリケーションにインポートします。.maaファイルに含まれるデルタ・ファイルは、デプロイメント後にベース・ファイルとマージされます。詳細は、「カスタマイズを使用したMAFアプリケーションのアップグレード」を参照してください。 
カスタマイズ・プロセスが完了すると、JDeveloperによりカスタマイズ用のメタデータ・ファイルとこれらを格納するサブパッケージの両方が作成されます。メタデータ・ファイルにはカスタマイズしたオブジェクトのカスタマイズが含まれ、これらは実行時にベース・メタデータに適用されます。JDeveloperでは、新しいメタデータ・ファイルにオブジェクトのベース・ファイルと同じ名前が付けられますが、.xml拡張子が追加されます(図11-2のmaf-feature.xml.xmlを参照)。
図11-2 maf-feature.xmlメタデータ・ファイル

アプリケーションをカスタマイズするには、JDeveloperで認識できるように、CustomizationLayerValues.xmlファイルでカスタマイズ・レイヤーとその値を指定します。
カスタマイズ可能なアプリケーションを「カスタマイズ開発者」ロールで開くと、JDeveloperによりadf-config.xmlファイルが読み取られ、使用するカスタマイズ・クラスと優先順位が判別されます。また、CustomizationLayerValues.xmlファイルも読み取られ、「カスタマイズ・コンテキスト」ウィンドウで使用可能にするレイヤー値が判別されます。CustomizationLayerValues.xmlファイルで定義されたレイヤー値がカスタマイズ・クラス(adf-config.xmlファイルにリストされている)で定義されていない場合、これらは「カスタマイズ・コンテキスト」ウィンドウに表示されません。
したがって、CustomizationLayerValues.xmlファイルにすべてのカスタマイズ・プロジェクトの包括的なレイヤー値リストを含めて、現在のアプリケーションに適したもののみを「カスタマイズ・コンテキスト」ウィンドウに表示できます。逆に、MAFアプリケーションの包括的なカスタマイズ・クラスのリストをadf-config.xmlファイルに含めて、作業するレイヤー値のサブセットのみをCustomizationLayerValues.xmlファイルに含めることもできます。
注意:
デザインタイムには、JDeveloperはCustomizationLayerValues.xmlファイルからカスタマイズ・レイヤー値を取得します。ただし、ランタイムには、レイヤー値はカスタマイズ・クラスから取得されます。
CustomizationLayerValues.xmlファイルに入力するレイヤー名およびレイヤー値は、カスタマイズ・クラスで指定されたものと一致する必要があります。次の例は、サンプルのCustomizationLayerValues.xmlファイルの内容を示しています。
<cust-layers xmlns="http://xmlns.oracle.com/mds/dt"> <cust-layer name="industry" id-prefix="i"> <cust-layer-value value="financial" display-name="Financial" id-prefix="f"/> <cust-layer-value value="healthcare" display-name="Healthcare" id-prefix="h"/> </cust-layer> <cust-layer name="site" id-prefix="s"> <cust-layer-value value="headquarters" display-name="HQ" id-prefix="hq"/> <cust-layer-value value="remoteoffices" display-name="Remote" id-prefix="rm"/> </cust-layer> </cust-layers>
各レイヤーとレイヤー値に、id-prefixトークンを追加できます。これにより、idの一意性を確保し、カスタマイズを正確に適用できます。カスタマイズ中に新規要素を追加すると、(選択したヒント・レイヤーで決定された)レイヤーとレイヤー値のid-prefixが要素の自動生成識別子に追加され、カスタマイズ・メタデータ・ファイルで新たに追加された要素のidが作成されます。前述の例では、siteレイヤーにsというid-prefixが付けられ、headquartersレイヤー値にhqというid-prefixが付けられています。 したがって、ヒント・レイヤーとしてsite/headquartersを選択して要素を追加すると、その要素のidはメタデータ・カスタマイズ・ファイルでshqelに設定されます。 
各レイヤー値にdisplay-nameトークンを追加して、レイヤー値に人間が判読可能な名前を指定することもできます。「カスタマイズ開発者」ロールで作業する際、そのレイヤー値のdisplay-nameトークンの値が「カスタマイズ・コンテキスト」ウィンドウに表示されます。
レイヤーごとに、カスタマイズ・レイヤーに対する値セットのサイズを定義するvalue-set-sizeトークンを、オプションで設定できます。これは、たとえば、設計時にアプリケーション固有のCustomizationLayerValues.xmlファイルを使用する場合などに役立ちます。value-set-sizeをno_valuesに設定することで、デザインタイムにランタイムのみのレイヤーを除外できます。
<cust-layer name="runtime_only_layer" value-set-size="no_values"/>
カスタマイズ・レイヤー値はJDeveloper用にグローバルにまたはアプリケーション固有ファイルで定義できます。アプリケーション固有ファイルを使用する場合、このファイルはグローバル・ファイルより優先されます。JDeveloperでのレイヤー値のグローバルな構成の詳細は、「レイヤー値をグローバルに構成する方法」を参照してください。アプリケーション固有のレイヤー値の構成方法の詳細は、「Studio開発者ロールの使用方法」を参照してください。
始める前に:
「カスタマイズ・クラスの作成」の説明に従ってカスタマイズ・クラスを作成します
「カスタマイズ・クラスの使用」の説明に従って、クラスをJDeveloperで使用できるようにします
JDeveloper用にデザインタイム・カスタマイズ・レイヤー値をグローバルに構成するには:
注意:
特定のアプリケーションのCustomizationLayerValues.xmlファイルを構成する手順は、「Studio開発者ロールの使用方法」および「「カスタマイズ開発者」ロールの使用方法」の各項を参照してください。アプリケーションのレイヤー値を構成する場合、Studio開発者ロール(「Studio開発者ロールの使用方法」を参照)または「カスタマイズ開発者」ロール(「「カスタマイズ開発者」ロールの使用方法」を参照)のいずれかを使用できます。アプリケーション固有のCustomizationLayerValues.xmlファイルを構成する場合、レイヤー値を作成および変更できますが、追加のカスタマイズ・レイヤーを作成できません。アプリケーション固有のレイヤー値に対して行った変更を適用するためにJDeveloperを再起動する必要はありません。
アプリケーション固有のCustomizationLayerValues.xmlファイルを作成すると、JDeveloperはこのファイルをアプリケーション・レベルのディレクトリに格納します(workspace-directory\.mds\dt\customizationLayerValues\CustomizationLayerValues.xmlなど)。このファイルは、「アプリケーション」ウィンドウの「アプリケーション・リソース」ウィンドウのMDS DTノードの下にあります。
次に、Studio開発者ロールで特定アプリケーションのCustomizationLayerValues.xmlファイルを構成する手順について説明します。
始める前に:
「カスタマイズ・クラスの作成」の説明に従ってカスタマイズ・クラスを作成します
「カスタマイズ・クラスの使用」の説明に従って、クラスをJDeveloperで使用できるようにします
Studio開発者ロールからワークスペース・レベルでデザインタイム・カスタマイズ・レイヤー値を構成するには:
次に、「カスタマイズ開発者」ロールで特定アプリケーションのCustomizationLayerValues.xmlファイルを構成する手順について説明します。
始める前に:
「カスタマイズ・クラスの作成」の説明に従ってカスタマイズ・クラスを作成します
「カスタマイズ・クラスの使用」の説明に従って、クラスをJDeveloperで使用できるようにします
「カスタマイズ開発者」ロールからワークスペース・レベルでデザインタイム・カスタマイズ・レイヤー値を構成するには:
「カスタマイズ開発者」ロールの間にアプリケーション固有のCustomizationLayerValues.xmlファイルに対して変更を行った後、「カスタマイズ・コンテキスト」ウィンドウで選択したヒント・レイヤーが選択解除されます。必要なヒント・レイヤーを選択できます。
カスタマイズ・クラスはoracle.mds.cust.CustomizationClassを拡張するPOJOクラスです。現在のコンテキストが評価されてStringの結果が戻されます。このStringの結果を使用してカスタマイズ・レイヤーが検索されます。
カスタマイズ・クラスによって、次の情報が提供されます。
レイヤー名を表す名前。
レイヤーで作成されたオブジェクトのIDPrefix。カスタマイズ・レイヤーで新しいオブジェクトを作成する場合、一意のIDが必要です。オブジェクトの自動生成IDにIDPrefixが追加されて、新たに追加されたオブジェクトのIDが作成されます。異なるカスタマイズ・レイヤーで作成されたオブジェクトに一意のIDを指定するために、各レイヤーに一意のIDPrefixを指定する必要があります。
カスタマイズ・クラスによって定義されたレイヤーのキャッシュ・ヒント(CacheHint)。MAFでは、キャッシュ・ヒントによって静的なカスタマイズ・レイヤーが定義され、getCacheHintメソッドは常にALL_USERSを返し、これは特定のデプロイメントに対しカスタマイズがグローバルに(無条件で)適用されることを意味します。
注意:
カスタマイズ・クラスは頻繁に実行されることが多いため(レイヤー名とレイヤー値を取得するために、アクセスされるドキュメントごとに1回)、効率性を確保する必要があります。
カスタマイズを使用して、特定の業種ドメインにあわせてMAFアプリケーションを調整できます(垂直統合)。このようなドメインはそれぞれカスタマイズ・レイヤーを表しており、カスタマイズ・クラスを使用して示されます。
静的なカスタマイズには、アプリケーションのすべての実行に適用されるレイヤー値が1つのみあります。静的なカスタマイズでは、アプリケーションを実行するすべてのユーザーでカスタマイズの値が同じです。
MAFアプリケーションで使用されるカスタマイズ・クラスでは、getCacheHintメソッドは常にALL_USERSを返し、これはカスタマイズ・レイヤーが常に静的であることを意味します。
カスタマイズ・クラスの実装方法によっては、すべてのオブジェクトが静的なカスタマイズ・レイヤーを持つことができます。
カスタマイズするMAFアプリケーション内にカスタマイズ・ファイルを作成しないでください。かわりに、カスタマイズ・クラスに対して別のJavaアプリケーションを作成します。Javaクラスの作成が完了した後で、カスタマイズするMAFアプリケーションにそのクラスをインポートします。
カスタマイズ・クラスを作成するには:
Javaアプリケーションを作成します。
「ファイル」メニューで、「新規」をクリックしてから、「プロジェクト」をクリックします。
「新規ギャラリ」で、「Javaアプリケーション・プロジェクト」を選択し、ウィザードを完了します。
「アプリケーション」ウィンドウで、「Javaアプリケーション・プロジェクト」を右クリックして、「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログで、「ライブラリとクラスパス」を選択し、「ライブラリの追加」をクリックします。
「ライブラリの追加」ダイアログで、MDSランタイムを選択し、「OK」をクリックします。「OK」をクリックして「プロジェクト・プロパティ」ダイアログを閉じます。
「アプリケーション」ウィンドウで、「Javaアプリケーション・プロジェクト」を右クリックし、「新規」を選択してから「Javaクラス」を選択します。
「Javaクラスの作成」ダイアログで、クラスの名前およびパッケージを入力します。
「拡張」フィールドで、クラス階層を参照し、oracle.mds.cust.CustomizationClassを取得してから(図11-3を参照)、「OK」をクリックします。
注意:
「抽象メソッドの実装」(デフォルトの設定)を「Javaクラスの作成」ダイアログで選択する必要があります。
図11-3 カスタマイズ・クラスの作成

スタブ・ファイルを更新します。次の例は、カスタマイズ・クラスを示しています。
package mobile;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import oracle.mds.core.MetadataObject;
import oracle.mds.core.RestrictedSession;
import oracle.mds.cust.CacheHint;
import oracle.mds.cust.CustomizationClass;
 
public class SiteCC extends CustomizationClass { 
 
   public SiteCC() { 
         super(); 
     } 
 
     public CacheHint getCacheHint() 
        { 
            return CacheHint.ALL_USERS; 
        } 
 
 
        /** {@inheritDoc} */ 
        public String getName() 
        { 
 
            return "company"; 
        } 
 
 
        /** {@inheritDoc} */ 
        public String[] getValue(RestrictedSession rs, 
                                 MetadataObject metadataObject) 
        { 
            String sites[] = {"company1", "company2"}; 
            return sites; 
        } 
 } 
Javaアプリケーション・プロジェクトを再ビルドします。
作成されたカスタマイズ・クラスは、デザインタイムに「カスタマイズ開発者」ロールでおよび実行時にアプリケーションで使用できます。アプリケーションまたはJDeveloperで使用するには、クラスを適切にパッケージ化する必要があります。
カスタマイズ・クラスは再利用可能なコンポーネントです。これらを格納するための別のプロジェクトを作成し、独自のJARファイルにパッケージ化します。カスタマイズ・クラスをJDeveloperで使用できるようにするには、これらのクラスを使用するアプリケーションにJARをインポートします。
カスタマイズ・クラスをJARファイルとしてパッケージ化してから、このクラスをMAFアプリケーションに登録します。カスタマイズ・クラスおよび関連するアーティファクトをJARファイルにパッケージ化するには、「デプロイメント・プロファイルの作成」ウィザードを使用してデプロイメント・プロファイルを作成します。詳細は、「自動的に生成されるデプロイメント・プロファイルについて」を参照してください。
JARにカスタマイズ・クラスを追加する手順:
「アプリケーション」ウィンドウで、「Javaアプリケーション・プロジェクト」を右クリックし、「新規」を選択してから「ギャラリから」を選択します。
「新規ギャラリ」で、「一般」を開き、「デプロイメント・プロファイル」、「JARファイル」の順に選択して、「OK」をクリックします。
ヒント:
「カテゴリ」ツリーに「デプロイメント・プロファイル」ノードが表示されない場合、「すべての機能」タブをクリックします。
「デプロイメント・プロファイルの作成」 -- 「JARファイル」ダイアログで、プロジェクト・デプロイメント・プロファイルの名前(図11-4のSiteCCなど)を入力して、「OK」をクリックします。 
図11-4 カスタマイズ・クラスのデプロイメント・プロファイルの作成

「JARデプロイメント・プロファイルのプロパティの編集」ダイアログで、「JARオプション」を選択します。
必要に応じて、JARファイルの場所を入力します。または、デフォルトの場所を使用します。
「ファイル・グループ」、「プロジェクトの出力」、「フィルタ」の順に開き、JARに含むように選択できるファイルを一覧表示します。
「フィルタ」ページの「ファイル」タブで、JARファイルに追加するカスタマイズ・クラスを選択します(図11-5を参照)。
図11-5 カスタマイズ・クラスをJARファイルに含める

「OK」をクリックして、「JARデプロイメント・プロファイルのプロパティの編集」ダイアログを終了します。
「OK」を再度クリックして、「プロジェクト・プロパティ」ダイアログを終了します。
「アプリケーション」ウィンドウで、「Javaアプリケーション・プロジェクト」を右クリックし、「デプロイメント・プロファイル」を選択します。「デプロイメント・アクション」ページ(図11-6を参照)では、「JARにデプロイ」がデフォルトで選択されています。「次へ」をクリックします。
図11-6 カスタマイズ・クラスのJARファイルへのデプロイ

JARファイルの出力場所の確認メッセージを確認します。「OK」をクリックします。
図11-7「サマリー」ページ(JARファイルの出力場所を示す)

「ログ・ファイル」ウィンドウ(図11-8)では、デプロイメントのステータスが表示されます。
図11-8 デプロイメント・ログ

次の手順を使用してアプリケーションでカスタマイズ・クラスを表示できるようにしてから、カスタマイズ・クラスをadf-config.xmlファイルのcust-configセクションに追加します。
注意:
使用するアプリケーションのデータ・モデル・プロジェクトでカスタマイズ・クラスを作成した場合、次の手順は不要です。
始める前に:
外部プロジェクトにカスタマイズ・クラスを作成します。
カスタマイズ・クラスを含むJARファイルを作成します。
Studio開発者ロールを使用してJDeveloperを起動し、カスタマイズするアプリケーションを開きます。
カスタマイズ・クラスをMAFアプリケーションに登録する手順:
「アプリケーション」ウィンドウで、「アプリケーション・メニュー」アイコンをクリックして、「アプリケーションのプロパティ」を選択します
「アプリケーションのプロパティ」ダイアログで、「ライブラリとクラスパス」を選択し、「JAR/ディレクトリの追加」をクリックします。
「アーカイブまたはディレクトリの追加」ダイアログで、カスタマイズ・クラスを含む作成済JARファイルを選択して、「開く」をクリックします。
「OK」をクリックします。
次に、カスタマイズ・クラスをadf-config.xmlファイルに追加します。アプリケーションのadf-config.xmlファイルでは、mds-configセクションで適切なcust-config要素が指定されている必要があります。クライアントはcust-config要素を使用して、順序付けされ、名前が付けられたカスタマイズ・クラスのリストを定義できます。adf-config.xmlファイルの概要エディタを使用して、カスタマイズ・クラスを追加します(図11-9を参照)。
adf-config.xmlファイルでカスタマイズ・クラスを識別するには:
「アプリケーション・リソース」ウィンドウで、「ディスクリプタ」および「ADF META-INF」ノードを開き、adf-config.xmlをダブルクリックします
概要エディタで、「MDS」ナビゲーション・タブを選択し、「追加」(+)をクリックします。
「カスタマイズ・クラスの編集」ダイアログで、作成済のカスタマイズ・クラスを検索するか、作成済のカスタマイズ・クラスに移動します。
適切なクラスを選択して、「OK」をクリックします。
カスタマイズ・クラスをすべて追加した後、矢印アイコンを使用して適切な順序で配置できます。
図11-9は、2つのカスタマイズ・クラスが追加されたadf-config.xmlファイルの概要エディタを示しています。
図11-9 adf-config.xmlの概要エディタ

customization-class要素の順序により、カスタマイズ・レイヤーの優先順位が指定されます。たとえば、adf-config.xmlファイルのカスタマイズ・クラス順序を表す次のコードでは、IndustryCCクラスはSiteCCクラスの前にリストされています。これは、industryレイヤーでのカスタマイズがベース・アプリケーションに適用されてから、siteレイヤーでのカスタマイズが適用されることを示します。
<adf-config xmlns="http://xmlns.oracle.com/adf/config"> <adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config"> <mds-config xmlns="http://xmlns.oracle.com/mds/config" version="11.1.1.000"> <cust-config> <match path="/"> <customization-class name="com.mycompany.IndustryCC"/> <customization-class name="com.mycompany.SiteCC"/> </match> </cust-config> </mds-config> </adf-mds-config> </adf-config>
完了したら、JDeveloperでプロジェクトをローカルに実行するためやカスタマイズのために、カスタマイズ・クラスを使用できます。またカスタマイズ・クラスは、アプリケーションをパッケージ化するときに、EARクラス・パスにパッケージ化されます。
JDeveloperでは、「カスタマイズ開発者」ロールを使用して、プロジェクトのメタデータをカスタマイズします。カスタマイズ機能は、このロールでのみ使用できます。「カスタマイズ開発者」ロールでは、次の作業を実行できます。
カスタマイズの作成および更新
カスタマイズしたアプリケーションのヒント・レイヤーの選択および編集
既存のカスタマイズの削除。
「カスタマイズ開発者」ロールでJDeveloperを使用する場合、ソース・エディタは読取り専用になり、次のJDeveloperの機能が無効になります。
ワークスペースの移行。
アプリケーションおよびIDE接続の作成、削除および変更「カスタマイズ開発者」ロールでアプリケーションを開く前に、デフォルト・ロールで接続を構成する必要があります。
「カスタマイズ開発者」ロールでアプリケーションを使用する場合、新規オブジェクトやファイルは作成できず、カスタマイズ不能オブジェクトは変更できません。また、Javaクラス、リソース・バンドル、セキュリティ・ポリシー、デプロイメント・ディスクリプタ、構成ファイルなどのカスタマイズ不能ファイルの編集もできません。
注意:
「カスタマイズ開発者」ロールで作業している際、カスタマイズ不能ファイルはロック・アイコンで示されます。
また、プロジェクト設定も変更できないので、カスタマイズ不能ファイルの変更が必要になる場合には、カスタマイズ可能ファイルのリファクタや変更もできません。
詳細は、『Oracle JDeveloperによるアプリケーションの開発』のJDeveloperロールの操作に関する項を参照してください。
「カスタマイズ開発者」ロールでは、JDeveloperのカスタマイズ機能を使用できます。このロールで作業するには、JDeveloperの起動時に選択するか、JDeveloperがすでに実行されている場合は「ロールの切替え」メニューで「カスタマイズ開発者」ロールに切り替えます。
JDeveloperで「カスタマイズ開発者」ロールに切り替えるには:
JDeveloperのメイン・メニューで、「ツール」、「ロールの切替え」、「カスタマイズ開発者」の順に選択します。
オプションで、「ツール」、「ロールの切替え」の順に選択して「起動時にロール選択を常に要求」メニューを切り替え、JDeveloper起動時にロールを選択するかどうかを指定できます。この選択を解除すると、JDeveloperは、最後に閉じたときのロールで起動します。
「カスタマイズ開発者」ロールで作業する際、「カスタマイズ・コンテキスト」ウィンドウで選択したレイヤーとレイヤー値の組合せをヒント・レイヤーと呼びます。このレイヤーには、「カスタマイズ開発者」ロールで作業中に行った変更が適用されます。
注意:
「カスタマイズ開発者」ロールで作業している場合、「カスタマイズ・コンテキスト」ウィンドウが表示されない場合は、JDeveloperの「ウィンドウ」メニューからアクセスできます。
JDeveloperのエディタに表示されるメタデータは、ベース・メタデータと(adf-config.xmlで設定された優先順位に従った)ヒント・レイヤーまでのカスタマイズ・レイヤーを組み合せたもので、各レイヤーの値は「カスタマイズ・コンテキスト」ウィンドウで指定したものです。
「カスタマイズ開発者」ロールでの作業時には、アプリケーションのカスタマイズされていない状態も確認できます。「カスタマイズ・コンテキスト」ウィンドウで「カスタマイズなしで表示」が選択されている場合、現在使用しているヒント・レイヤーはありません。したがって、表示されているのはカスタマイズされていない状態です。このビューでは、(「アプリケーション」ウィンドウの)カスタマイズ可能ファイルすべてにロック・アイコンが表示され、これらのファイルが読取り専用であることが示されます。
ヒント・レイヤーで行ったカスタマイズは、「プロパティ」ウィンドウではオレンジのアイコンで示されます。緑のアイコンは、ヒント以外のレイヤーのカスタマイズを示します。プロパティの横にオレンジのアイコンが表示されている場合、そのプロパティのドロップダウン・メニューから「カスタマイズ・アクションの削除」を選択して、そのカスタマイズを削除できます。
リソース・キーのカスタマイズを実装する場合、追加のリソース・バンドル・ファイルを作成する必要があります(ベース・リソース・バンドル・ファイルは使用できません)。
Studio Developerロールで、次のいずれかを作成します。
アプリケーション・リソース・バンドル(「アプリケーション・リソース・バンドルの作成方法」を参照)。
プロジェクト・リソース・バンドル(「プロジェクト・リソース・バンドルの作成方法」を参照)。
作成するバンドルを編集して、リソース・キーの文字列値を定義します。
始める前に:
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の複数のリソース・バンドルの使用方法に関する項を理解しておいてください。
プロジェクト・リソース・バンドルを作成するには:
Studio開発者ロールで、リソース・バンドルを作成するプロジェクトを右クリックして、「新規」、「ギャラリから」の順に選択してから、「一般」、「XML」および「XMLローカリゼーション・ファイル(XLIFF)」を選択します。
表示された「Xliffファイルの作成」ダイアログで、リソース・バンドルの名前を入力し、「OK」をクリックします。
「リソース・バンドルのリソースの編集」の説明に従ってリソース・バンドルを編集します。
「リソース・バンドル」ページの「バンドル検索」タブで、プロジェクト(.jpr)ファイルを選択してリソース・バンドルを登録します(図11-11を参照)。
図11-11 リソース・バンドルの選択

リソース・バンドルを登録すると、「テキスト・リソースの選択」ダイアログに表示されます(図11-12を参照)。
図11-12 テキスト・リソースのリソース・バンドルの選択

「テキスト・リソースの選択」ダイアログを使用して、次のようにキーを定義します。
「リソース・バンドル」ドロップダウン・リストからバンドルを選択します。
ダイアログには、選択したリソース・バンドルで現在定義されている文字列が表示されます。
新しい文字列を入力して、「保存して選択」をクリックします。
JDeveloperでは、選択したリソース・バンドルに文字列を書き込みます。
「カスタマイズ開発者」ロールで、「テキスト・リソースの選択」ダイアログを開き、適切な文字列を含むリソース・バンドルから選択します。「カスタマイズ開発者」ロールでは文字列の変更または新しい文字列の作成ができないため、選択したバンドルの文字列から選択することのみが可能です。
注意:
「カスタマイズ開発者」ロールで、ベース・リソース・バンドルから文字列を選択すると、アプリケーションのアップグレード時に問題が発生する可能性があるため選択しないでください。
カスタマイズはベース・アプリケーションとは別に保存されているため、安全にアップグレートができます。カスタマイズは変更を保持するため、これらの変更をアプリケーションの新しいバージョンに適用して、アプリケーションをアップグレードできます。MAFアプリケーション・アーカイブ(.maa)ファイルによって、MAFアプリケーションをアップグレードするためのメカニズムが提供されます。.maaファイルからアプリケーションを作成する場合、.maaファイルの更新バージョンを使用してアプリケーションをアップグレードできます。
「アーカイブからモバイル・アプリケーションをアップグレード」ウィザードを使用すると、アップグレードの前に行われたカスタマイズを保持しながら新しいバージンにアプリケーションをアップグレードできます。
始める前に:
MAFアプリケーション・アーカイブ(.maa)ファイルについて理解しておいてください。詳細は、「モバイル・アプリケーション・アーカイブ・ファイルの作成」および「署名されていないデプロイメント・パッケージの作成」を参照してください。 
.maaファイルにパッケージ化され、アップグレードに使用されるアプリケーションのアプリケーションIDが、適用されるアプリケーションと同じであることを確認してください。また、アップグレードの対象となるアプリケーションより新しいバージョン番号である必要があります。
MAFアプリケーションのアップグレード手順:
.maaファイルからMAFアプリケーションを作成します。
「リソース・バンドルでのカスタマイズの有効化」の説明に従って、MAFアプリケーションにカスタマイズを適用します。
「アプリケーション」をクリックして、アーカイブからモバイル・アプリケーションを選択を選択します。
.maaファイルを参照して選択します。.maaにパッケージ化されたアプリケーションが、現在のアプリケーションと同じ(または古い)バージョンであったり、異なるアプリケーションIDである場合、ウィザードによりアップグレードは中止されます。
図11-13 .maaファイルの選択

手動マージが必要なファイルの「サマリー」ページを確認します。図11-14に示すように、MAFでは、Tempディレクトリにアプリケーションの初期バージョン(バージョン1)が保存されます。「サマリー」ページにもログ・ファイルの一時的な場所が表示されます。
図11-14 アプリケーションのアップグレード情報

アップグレードが正常に完了すると、JDeveloperは再起動します。異なるバージョンの構成ファイルに調整が必要な場合、JDeveloperにより通知されます(図11-15を参照)。
図11-15 手動マージ通知

アップグレード中に、MAFでは、バージョン1のアプリケーションとバージョン2 (アップグレードしたバージョンのアプリケーション)の両方に対してカスタマイズできないファイル・セットがコピーされます。これらのファイルには、connections.xmlファイル、adf-config.xmlファイルなどがあります。MAFによって、バージョン1とバージョン2のconnections.xmlファイルとadf-config.xmlファイルに差異が検出されると、これらのファイルの両方のコピーを保持し、マージ・ログ・ファイルに対してエントリを記述します。バージョン番号がある場合、MAFではファイル名にバージョン番号を追加してバージョン1を区別します。バージョン番号がない場合、MAFでは_oldをファイル名に追加します(図11-15のconnections_old.xmlを参照)。必要に応じて、この差異を新しいバージョンに手動でマージできます。図11-16に示すように、MAFでは、「サマリー」ページに表示された一時的な場所にマージ・ファイル・ログを配置します。MAFでは、ファイルにworkspace name_timestampという名前を付けます。
図11-16 マージ・ログ・ファイル

Tempディレクトリへのバージョン1のコピー、およびバージョン1とバージョン2のアップグレード不可の構成ファイルのコピーの作成に加えて、「アーカイブからモバイル・アプリケーションをアップグレード」ウィザードを使用してアプリケーションをアップグレードする場合、MAFでは次のことも実行します。
各プロジェクトのライブラリおよびリソース・バンドル設定を、に保存します。プロジェクト・ファイル名が入力されたマップに保存します。
ワークスペースのリソース・バンドル設定を保存します。
登録したカスタマイズ・クラスをadf-config.xmlファイルに保存します。
バージョン2の.maaファイルを一時ディレクトリにインポートします。
バージョン1へのアップグレードに使用される.maaファイルからアプリケーションをコピーします。
バージョン2の各プロジェクト(.jpr)ファイルを、登録したリソース・バンドルおよびライブラリ依存マップで更新します。ライブラリの新しいバージョンにより以前のバージョンがオーバーライドされます。ただし、バージョン1で使用されるライブラリと同じ名前を共有している場合、バージョン1ライブラリは変更されません。
バージョン2のワークスペース(.jws)ファイルを、登録したリソース・バンドル設定で更新します。
バージョン2のadf-config.xmlファイルを更新し、カスタマイズ・クラスを登録します。
アプリケーションの作成に使用された元の.maaファイル内にパッケージ化されていないFARファイルがアプリケーションに含まれる場合(または、アプリケーションのアップグレードに使用される.maaファイルに含まれる場合)、FARファイルを個別にアップグレードする必要があります。たとえば、.maaファイルからアプリケーションを作成し、FARファイルを追加してカスタマイズを実行できます。「MAFアプリケーションでのFARコンテンツの使用方法」で説明されているように、「リソース」ウィンドウから更新したFARを追加することで、新しいバージョンのFARを使用するようにアプリケーションをアップグレードできます。