ヘッダーをスキップ
Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド
11gリリース1 (11.1.1.7.0)
B52028-05
  目次へ移動
目次

前
 
次
 

33 アプリケーション・コンポーネントの再利用

この章では、特定のADFコンポーネントをADFライブラリにパッケージ化してADFアプリケーションで再利用する方法について説明します。再利用可能なADFコンポーネントは、アプリケーション・モジュール、ビジネス・コンポーネント(エンティティ・オブジェクト、ビュー・オブジェクト、アソシエーション)、データ・コントロール、タスク・フロー、ページ・テンプレートおよび宣言的なコンポーネントです。

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

33.1 再利用可能なコンポーネントの概要

アプリケーション開発の過程では、特定のコンポーネントは複数回使用されることが一般的です。通常、再利用が単一の同じアプリケーション内と複数の異なるアプリケーション間のどちらで行われるかに関係なく、これらの再利用可能なコンポーネントを複数の開発者間、異なるチーム間、さらには組織内の異なる部署間で共有できるライブラリにパッケージ化すると便利です。

Javaのオブジェクト指向プログラミングでは、クラスおよびオブジェクトの再利用は非常に一般的な手順です。Model-View-Controller (MVC)アーキテクチャの導入により、アプリケーションをモデル、ビューおよびコントローラという別々のレイヤーへとさらにモジュール化できます。データ(モデル・レイヤーとビジネス・サービス・レイヤー)をプレゼンテーション(ビュー・レイヤーとコントローラ・レイヤー)から分離することで、いずれかのレイヤーを変更しても、他のレイヤーの整合性は影響を受けません。ビジネス・ロジックを変更するときに、UIの変更やWebページまたはフロント・エンドの再設計は必要なく、ドメイン・ロジックの再コーディングは不要です。

Oracle ADFおよびJDeveloperでは、MVCデザイン・パターンをサポートしています。アプリケーションをJDeveloperで作成するときは、モデル・プロジェクトとビュー・コントローラ・プロジェクトを自動的に設定する多数のアプリケーション・テンプレートを選択できます。各MVCレイヤーは相互に分離されるため、開発を複数のプロジェクトで並行して、ある程度の独立性を保ちながら進めることができます。

ADFライブラリは、高レベルなコンポーネントを作成、デプロイおよび再利用する便利で実用的な方法を提供することで、設計のこのモジュール性をさらに拡張します。アプリケーションを最初に設計するときは、コンポーネントの再利用性を念頭に置いて設計してください。再利用可能なコンポーネントを作成すると、そのコンポーネントをJARファイルにパッケージ化し、再利用可能なコンポーネントのリポジトリに追加できます。コンポーネントが必要な場合は、リポジトリでそのコンポーネントを検索し、検索したコンポーネントを自分のプロジェクトまたはアプリケーションに追加できます。

たとえば、あるドメイン用のアプリケーション・モジュールを作成し、それをパッケージ化して複数の異なるアプリケーションでデータ・モデル・プロジェクトとして使用できます。または、複数のコンポーネントを使用するアプリケーションを作成する場合、ページ・テンプレート・コンポーネントをADFライブラリJARのリポジトリからロードすることで、ルック・アンド・フィールが共通のページを作成できます。この後で、複数のタスク・フロー・コンポーネントをライブラリから取り出してつなぎ合せ、ページ・フローを編成できます。

ADFライブラリJARにはADFコンポーネントが含まれます。他のJARは含まれません(含めることはできません)。JDeveloperライブラリ、Java EEライブラリまたはOracle WebLogic共有ライブラリと混同しないでください。

表33-1に、ADFでサポートされている再利用可能なコンポーネントを示します。

表33-1 Oracle ADFの再利用可能なコンポーネント

再利用可能なコンポーネント 説明

データ・コントロール

任意のデータ・コントロールをADFライブラリJARにパッケージ化できます。Oracle ADFでサポートされているデータ・コントロールとしては、アプリケーション・モジュール、Enterprise JavaBeans、Webサービス、URLサービス、JavaBeans、およびプレースホルダ・データ・コントロールなどがあります。

アプリケーション・モジュール

ADFビジネス・コンポーネントを使用してアプリケーション・モジュールを生成すると、関連するアプリケーション・モジュールのデータ・コントロールも生成されます。アプリケーション・モジュールのデータ・コントロールをパッケージ化するときは、そのアプリケーション・モジュールに関連付けられているビジネス・コンポーネントもパッケージ化します。関連するエンティティ・オブジェクト、ビュー・オブジェクトおよびアソシエーションは、ADFライブラリJARの一部になり、再利用が可能になります。

ビジネス・コンポーネント

ビジネス・コンポーネントは、ADFビジネス・コンポーネント・データ・モデル・プロジェクトで使用されるエンティティ・オブジェクト、ビュー・オブジェクトおよびアソシエーションです。ビジネス・コンポーネントは、ビジネス・コンポーネントのみで、またはアプリケーション・モジュールとともにパッケージ化できます。

タスク・フローおよびtaskflowテンプレート

タスク・フローは、ADFライブラリJARにパッケージ化して再利用できます。

ページを使用して作成されたADFバインド・タスク・フローは、ページにドロップできます。このドロップにより、バインド・タスク・フローをコールするリンクが作成されます。タスク・フロー・コール・アクティビティと制御フローは、ページを参照するビュー・アクティビティを含むタスク・フローに自動的に追加されます。ページを参照するビュー・アクティビティを含むタスク・フローが複数ある場合、アプリケーション開発者に、タスク・フロー・コール・アクティビティと制御フローを自動的に追加するタスク・フローの選択を求めるプロンプトが表示されます。ページ・フラグメントを使用するバインド・タスク・フローをドロップすると、JDeveloperがページにリージョンを追加し、ドロップされたタスク・フローにバインドします。

ADFタスク・フロー・テンプレートがタスク・フローと同じプロジェクトに作成された場合、そのADFタスク・フロー・テンプレートはADFライブラリJARに組み込まれ、再利用が可能になります。

ページ・テンプレート

ページ・テンプレートとそのアーティファクトは、ADFライブラリJARにパッケージ化できます。テンプレートでイメージ・ファイルを使用し、そのファイルがプロジェクト内のディレクトリに含まれている場合、再利用中にそのファイルもテンプレートで使用できます。

宣言的なコンポーネント

宣言的なコンポーネントを作成し、パッケージ化して再利用できます。コンポーネントに関連付けられているタグ・ライブラリは、使用側プロジェクトに組み込まれロードされます。


複数のコンポーネントを使用する場合は、複数の異なる再利用可能なコンポーネントを含むプロジェクトをパッケージ化することもできます。たとえば、アプリケーション・モジュールとバインド・タスク・フローの両方を含むプロジェクトを作成できます。このADFライブラリJARファイルを使用するときは、アプリケーションでアプリケーション・モジュールとタスク・フローの両方を使用できます。複数のコンポーネントを1つのJARファイルにパッケージ化したり、単一コンポーネントをJARファイルにパッケージ化できます。Oracle ADFおよびJDeveloperには、ユーザーおよびユーザーの組織に最も適した再利用可能なコンポーネントを作成するためのオプションと柔軟性が備わっています。

再利用可能なコンポーネントを作成するときは、JDeveloperを使用して、コンポーネントを含むプロジェクトをADFライブラリJARファイルにパッケージ化してデプロイします。このコンポーネントを使用するときは、そのJARを使用側プロジェクトに追加します。設計時に、JARは使用側プロジェクトのクラス・パスに追加され、再利用が可能になります。実行時には、再利用されたコンポーネントは参照によってJARファイルから実行されます。JARを手動で追加する手順は、33.3.2項「ADFライブラリJARをプロジェクトに手動で追加する方法」を参照してください。JDeveloperのリソース・カタログを使用してJARを追加する手順は、33.3.1項「リソース・パレットを使用してADFライブラリJARをプロジェクトに追加する方法」を参照してください。

再利用可能なコンポーネントの作成に進む前に、再利用可能なコンポーネントの作成に関するガイドラインを確認してください。

33.1.1 再利用可能なコンポーネントの作成

再利用可能なコンポーネントの作成および使用は、ソフトウェア・プロジェクトの初期の設計およびアーキテクチャ段階に含める必要があります。開発者および開発チームは、どのコンポーネントが再利用の候補となるかを、現在のアプリケーションのみでなく、将来のアプリケーションや他の部署で開発中のアプリケーションに対しても検討する必要があります。

開発者および開発者のチームは、ライブラリJARの格納に必要なリポジトリのタイプ、格納場所および格納したJARへのアクセス方法を決定する必要があります。また、組織のニーズに適した構造にライブラリJARを編成およびグループ化する方法も検討します。さらに、標準化されたネーミング規則を作成し、ADFライブラリJARの作成者と使用者の両方がコンポーネントの機能を簡単に識別できるようにすることも検討する必要があります。


ヒント:

個人およびチームで開発を行っている間に、再利用の候補となる可能性のあるモジュールが見つかった場合は、JDeveloperの包括的なリファクタ機能を使用して、名前の競合を防ぎ、再利用可能なコンポーネントのネーミング規則に従うことができます。


33.1.1.1 ネーミング規則

再利用可能なコンポーネントの作成時は、アプリケーション、プロジェクト、アプリケーション・モジュール、タスク・フロー、接続または他のファイルやコンポーネントに対し、一意で関連性のある名前を作成してください。Application、Project、ViewController、AppModule、task-flow-defintion.xml、またはConnectionなどのJDeveloperウィザードのデフォルト名は使用しないでください。アプリケーション内の他のプロジェクト、コンポーネントまたは接続との名前の競合を避けるため、一意の名前を設定することをお薦めします。名前の競合は、使用側アプリケーションで作成されたコンポーネントや、他のJARファイルからロードされたコンポーネントによって発生する場合があります。表33-2に、名前の変更が必要な場合のあるオブジェクトを示します。

表33-2 再利用可能なコンポーネントの一意で関連性のある名前の例

タイプ JDeveloperのデフォルト

アプリケーション

アプリケーション

FusionOrderDemo

プロジェクト

Model

ViewController

プロジェクト

OrderBookingService

StoreFrontUI

パッケージ

不定。詳細は、33.1.1.1.1項を参照してください。

oracle.foddemo.storefront

アプリケーション・モジュール

AppModule

StoreServiceAMDataControl

接続

Connection1

oracle_apps_foddb

タスク・フロー

task-flow-defintion.xml

checkout-task-flow.xml

ページ・テンプレート

templateDef.jspx

StoreFrontTemplate.jspx

宣言的なコンポーネント

componentDef

componentDef.jspx

FODsuperwidgetDef

FODsuperwidgetDef.jspx

ADFライブラリJARファイル

adflib<文字列または3桁の乱数>N

詳細は、33.1.1.2項を参照してください。

adflibStoreFrontService


33.1.1.1.1 パッケージのネーミングに関する考慮事項

一部のコンポーネントでは、名前の明示的な設定が不可能で、プロジェクトのデフォルトのパッケージ名が使用されることに注意してください。この状況では、パッケージ名の競合を避けるよう特に注意する必要があります。パッケージ名はアプリケーションの作成ウィザードで設定できますが、この名前は後で「プロジェクト・プロパティ」ダイアログで確認してください。パッケージ名を設定しない場合は、プロジェクト名のバリアントにデフォルトで設定されます(通常は先頭の文字が小文字になります)。たとえば、Project1という名前のプロジェクトのデフォルトのパッケージ名はproject1になります。プロジェクトの作成に進む前に、パッケージ名を一意の名前に手動で変更してください。


注意:

パッケージの基本的なネーミング要件は、ADFメタデータ・レジストリ(.dcx.cpxなど)がプロジェクトのパッケージ名に基づいて生成されることです。実行時に組み合されるプロジェクト間でのメタデータのネーミングの競合を回避してください。


JSP、HTMLおよびタスク・フローなどの再利用可能なコンポーネントのWebリソース・ファイルを作成するときは、それぞれ独自の相対ディレクトリに作成してください。この方法により、JARを別のアプリケーションにデプロイする際に、再利用可能なコンポーネントのファイルと使用側アプリケーションのファイルの間で競合が発生する可能性が低くなります。

33.1.1.1.2 接続のネーミングに関する考慮事項

一般に、あるアプリケーション内の複数のモジュールは同じデータソースに接続されます。そのアプリケーション全体の接続に対してネームスペースは1つしかないため、同じデータソースへの接続名を標準化して混乱を回避することをお薦めします。このためには、他の開発者、コンポーネントの作成者およびコンポーネントの使用者との調整が必要です。たとえば、module1module2の両方で同じデータベースへの接続がある場合、この接続の名前は、合意により決定した名前(orders_dbなど)に標準化してください。

ADFライブラリJAR(接続を含む)は、接続要件が異なる複数のアプリケーションで使用される場合があります。ADFライブラリJARの作成者は、実際に標準化された接続名ではなくても、少なくとも接続ソースを表す接続名を選択する必要があります。接続とともに作成されたJARの使用者は、コンポーネントをアプリケーションに追加する際、接続要件を満たす必要があることに注意してください。

たとえば、あるデータベース接続に対してエンドポイントのホスト名を選択することは、通常は不適切です。最も適した名前は、スキーマ全体を表す名前です。使用できる接続名の例としては、oracle-appsdboracle-scottdbなどがあります。多数の再利用可能なコンポーネントで同じ論理接続に対して異なる名前を使用すると、コンポーネントの使用者は重複した情報を使用してそれぞれの要件を満たすことが必要になります。つまり、複数の異なる接続名が実際にはすべて同じインスタンスを参照していても、それぞれの名前に対して個別に接続詳細を指定する必要があります。

33.1.1.1.3 EJBプロジェクトを含むアプリケーションのネーミングに関する考慮事項

アプリケーションにEJBプロジェクトとデータバインディング付きWebアプリケーション・プロジェクトの両方がある場合、EJBコンポーネント名が他のWebアプリケーション・プロジェクト・コンポーネント名と競合していないことを確認する必要があります。EJBプロジェクト・コンポーネントは、グローバル・スコープを持っている場合があります。これは、プロジェクトがアプリケーションのすべてのWebプロジェクトのグローバル・クラスパスに自動的に追加されるためです。Webアプリケーション・プロジェクトが、自らのプロジェクトではなく、EJBプロジェクト内の同じ名前のコンポーネントに誤ってアクセスすることがあります。

たとえば、EJBプロジェクトとWebベースのプロジェクトにtest1.jspxページがある場合、Webベースのプロジェクトを実行したときに、EJBプロジェクトのtest1.jspxページを実行しようとする場合があります。

実行時に、JDeveloperでは、同じアプリケーション内にデータ・バインディングを伴うEJBプロジェクトおよびWebアプリケーション・プロジェクトがあるかどうかを検出します。両方のタイプがアプリケーション内に存在する場合は、プロジェクトを実行してサーバーが起動すると、ログ・ウィンドウに警告メッセージが表示されます。

33.1.1.2 ADFライブラリJARデプロイメント・プロファイルのネーミング・プロセス

プロジェクトをパッケージ化する前に、JARファイルの名前とパスを使用してデプロイメント・プロファイルを作成する必要があります。自分および自分の開発チームのネーミング規則に従い、コンポーネントの機能を表す名前を選択してください。使用側プロジェクトには、別の開発者が作成したソフトウェアの他のJARファイルも含まれている場合があることに注意してください。

たとえば、コンポーネントがセルフ・サービス支払い用のタスク・フローの場合、mycompany.hcm.pay.selfservice.taskflows.jarという名前を付けることができます。他の例としては、oracle.apps.hcm.pay.model.jarmycompany.hcm.pay.model.overrides.jarなどがあります。

名前を入力しないと、JDeveloperでは次の形式のデフォルト名が提示されます。

adflibidentifiern

ここで、identifierは次の優先順位で作成されます。

  1. ModelViewControllerまたはProject以外のプロジェクト名

  2. application以外のアプリケーション名

  3. 3桁の乱数

nは、1から始まる数値であり、プロファイルが反復されるたびに1ずつ増分します。

たとえば、プロジェクト名がStoreFrontServiceの場合、プロファイル名はadflibStoreFrontService1になります。プロジェクト名がModelの場合、JDeveloperではこの名前は拒否され、優先順位が2番目であるアプリケーション名が使用されます。アプリケーション名がFusionOrderDemoSharedの場合、プロジェクト名はadflibFusionOrderDemoShared1になります。また、モデル名もアプリケーション名も使用できない場合は、3桁の乱数で代用されます(adflib7491など)。

33.1.1.3 関連プロジェクトの保持

再利用可能なコンポーネントを作成するときは、そのコンポーネントに関連のないプロジェクトは排除する必要があります。たとえば、再利用可能なアプリケーション・モジュールを作成する場合に、データ・モデル・プロジェクトは必要だが、ビュー・コントローラ・プロジェクトは不要であるとします。この状況で、データ・モデルとビュー・コントローラの両方のプロジェクトを含むアプリケーションを作成した場合は、ビュー・コントローラ・プロジェクトを削除できます。当然ながら、デフォルト名のModelは、StoreFrontServiceなど、より関連性のある名前に変更してください。同様に、データがバインドされていない再利用可能なタスク・フローを作成している場合は、データ・モデル・プロジェクトをアプリケーションから削除できます。

33.1.1.4 関連性のあるテクノロジ・スコープの選択

使用側プロジェクトのテクノロジ・スコープが既知の場合は、互換性のあるテクノロジを使用してコンポーネントを設計します。たとえば、使用側アプリケーションで標準JSF Facesのみを使用する場合は、ADF Facesを使用して作成された宣言的なコンポーネントとは互換性がない場合があります。

テクノロジ・スコープは、アプリケーションの作成ウィザードを使用し、「アプリケーション・テンプレート」から選択してアプリケーションを作成する際に定義できます。

テクノロジは、プロジェクトの作成後に、「プロジェクト・プロパティ」ダイアログ内の「テクノロジ・スコープ」ページを使用して定義することができます。

33.1.1.5 パスおよびフォルダの選択

ファイル・システムを使用してADFライブラリJARを格納している場合は、リポジトリとして機能できるファイル・システムの場所を選択する必要があります。JARのグループは、共通のディレクトリ・フォルダ(C:\ADF11\jdev\DevTeamADFRepositoryなど)に格納すると便利です。自分のチームまたは組織でADFライブラリJARを共有する計画がある場合は、ネットワークでアクセスできるリポジトリ・フォルダ、ディレクトリまたはサービスの設定を検討してください。「リソース・パレット」を使用すると、複数のリポジトリ・ソースに接続して複数の接続を確立できます。リソース・パレットを使用してADFライブラリJARにアクセスする方法の詳細は、33.1.2項「リソース・パレットの使用」を参照してください。

33.1.1.6 再利用可能なコンポーネント内への接続の組込み

ADFライブラリJARにパッケージ化しているプロジェクトに接続が含まれる場合、その情報はJARに組み込まれ、使用側プロジェクトで使用可能になる場合があります。Oracle ADFでは、接続を接続名と接続詳細またはエンドポイント定義という2つの部分として定義する接続アーキテクチャを使用します。JDeveloperでは、JARの作成者は、接続名のみをパッケージ化するか、接続名に加えて接続詳細も含めるかをオプションで選択できます。

接続がプロジェクトに含まれている場合、パッケージ化されたADFライブラリJARにはjar-connections.xmlファイルとjar-adf-config.xmlが含まれます。それらはMETA-INFディレクトリに追加されます。jar-connections.xmlファイルには、接続名およびその他の関連接続情報が含まれます。jar-adf-config.xmlには、接続のために使用された資格照明に関する情報が格納されます。接続の資格証明も指定した場合は、資格証明ストアへのjar-credential-jazn-data.xmlの組込みも行われます。ADFライブラリJARデプロイメント・プロファイルを作成すると、ADFライブラリJARにパッケージ化するために個々の接続または接続タイプを選択できます。33.2.1項「コンポーネントをADFライブラリJARにパッケージ化する方法」の説明に従って、ADFライブラリ・デプロイメント・プロファイル・プロパティの作成または「ADFライブラリJARデプロイメント・プロファイルのプロパティの編集」ダイアログの接続ページで接続を選択します。

ADFライブラリJARをプロジェクトに追加する間に、JDeveloperではアプリケーションの接続とJARの接続との間に競合がないかをチェックします。この後、プロジェクトへのJARの追加を続行するかどうかを決定するダイアログが提示されます。ADFライブラリJARに定義されている接続は、次の状況に応じて、使用側プロジェクトに追加される場合があります。

  • JARに定義されている接続が完全に構成されていて、使用側プロジェクトとの接続名の競合がない場合は、新しい接続が追加されます。

  • JARに定義されている接続が部分的に構成されている場合は、新しい接続が使用側プロジェクトに追加されますが、この接続は使用前に構成する必要があります。ユーザーが接続情報を入力できる接続ダイアログが表示される場合があります。この部分的に構成された接続には、不完全であることを示すアイコンが表示される場合があります。

  • JARに定義されている接続の名前がアプリケーションの接続と同じ場合は、プロジェクトに追加されません。アプリケーションの既存の接続が使用されます。

  • JARに定義されている接続の名前がアプリケーションの接続と同じでも、型が異なる場合、JARの接続はプロジェクトに追加されません。たとえば、アプリケーションでJARのデータベース接続とURL接続の名前が同じ場合、データベース接続はアプリケーションに追加されません。

接続を含むプロジェクトにADFライブラリを追加する方法の詳細は、33.3.1項「リソース・パレットを使用してADFライブラリJARをプロジェクトに追加する方法」を参照してください。

33.1.2 リソース・パレットの使用

ADFライブラリJARは、他のOracleライブラリ・コンポーネントと同様に、パッケージ化、デプロイ、検出および使用が可能です。ADFライブラリJARの作成は、プロジェクトのすべてのアーティファクト(および追加の制御ファイル)をJARにパッケージ化する処理です。再利用可能なコンポーネントのADFライブラリJARからの使用は、そのADFライブラリJARをプロジェクトのライブラリ・セットにロードする処理です。

ただし、ADFライブラリJARコンポーネントを管理および使用する最も簡単な方法は、JDeveloperのリソース・パレットを使用することです。リソース・パレットを使用すると、再利用可能なコンポーネントの使用を希望している開発者は、使用可能なコンポーネントを簡単に検索および検出でき、自分のプロジェクトに追加できます。リソース・パレットの検索および参照機能を使用すると、複数のデータ管理システムを対象にコンポーネントを特定できます。リソース・カタログでは、複数の接続を提供し、異なるソースへのアクセスを可能にします。また、複数の接続およびADFライブラリJARコンポーネント・タイプを表示する構造ツリー・ビューもあります。図33-1は、RCconnectrcconnect2およびStoreFrontという3つのファイル・システム接続があるリソース・パレット・ウィンドウを示しています。この例では、StoreFrontに、ADFライブラリ・コンポーネントであるadflibStorFrontService.jarが含まれています。

「リソース・パレット」のツリー構造には、各JARがサブカテゴリとして表示されます。再利用可能なコンポーネントのタイプごとに別々のノードが作成されます。たとえば、アプリケーション・モジュールは「データ・コントロール」ノードの下にあり、タスク・フローは「ADFタスク・フロー」ノードの下にあります。

ADFライブラリJARのツリー構造では、接続情報が「ライブラリ接続」ノードに、作成しているプロジェクトの拡張機能ライブラリが「ライブラリ依存性」ノードにリストされます。

図33-1 ADFライブラリ構造が表示されているリソース・パレット

リソース・パレットのADFライブラリ

33.1.3 拡張機能ライブラリ

ADFプロジェクトには、通常、実行する必要がある拡張機能ライブラリのリストが含まれます。これらのライブラリは、プロジェクトのクラス・パスでロードされます。「プロジェクト・プロパティ」ダイアログの「ライブラリとクラスパス」ノードを選択すると、プロジェクトの依存ライブラリが表示されます。表示されるライブラリは、JSPランタイム、ADFページ・フロー・ランタイム、Connection Manager、Oracle JDBCなどです。

プロジェクトがADFライブラリJARにパッケージ化される場合、拡張機能ライブラリもともにパッケージ化されます。ADFライブラリJARが別のプロジェクトによって使用されているとき、その間で拡張機能ライブラリの競合が発生した場合、JDeveloperにより自動的に解決されます。使用プロセスの際、JDeveloperは、使用側プロジェクトがADFライブラリJARの拡張機能ライブラリをすでにクラス・パスに持ち、持っていないライブラリのみをロードしているかをチェックします。たとえば、JSPランタイムがすでに使用側プロジェクト内に存在する場合、ADFライブラリJARにも含まれていれば、重ねてロードされません。使用側プロジェクトの拡張機能ライブラリは、自身のライブラリとADFライブラリJAR内のライブラリを合せたものです。

ADFライブラリにパッケージ化するプロジェクトに依存プロジェクトがある場合、依存プロジェクトの拡張機能ライブラリをJARに直接含めることができます。あるいは、依存プロジェクトにデプロイメント・プロファイルがある場合は、依存プロジェクトのJARをADFライブラリに追加できます。デプロイメント・プロセスの設定方法の詳細は、33.2.1項「コンポーネントをADFライブラリJARにパッケージ化する方法」を参照してください。

たとえば、プロジェクトViewはADFライブラリadflibView1.jarにパッケージ化できます。これはModelプロジェクトに依存性があります。プロジェクトViewに対して、Modelプロジェクトは依存プロジェクトであり、デプロイメント・プロファイル・オプション(adflibmodel1)が選択されています(図33-2)。

図33-2 デプロイメント・プロファイル・オプションのある「依存性の編集」ダイアログ

「依存性の編集」のデプロイメント・プロファイルの選択

デプロイメント・プロファイルを選択すると、依存プロジェクトのJARファイルがADFライブラリJARに追加されます。その結果、依存プロジェクトの拡張機能ライブラリが、すべての使用側プロジェクトで利用可能になります。図33-3で、パッケージ化されるADFライブラリadflibView1.jarには、依存するadflibModel.jarが含まれ、「ライブラリ依存性」ノードの下にリストされます。

図33-3 adflibView1.jarおよびadflibModel.jar拡張機能ライブラリが表示されているリソース・パレット

組込みJARのライブラリ依存性

リソース・パレットでadflibView1.jarを選択し、ポップアップ・メニューから「プロジェクトに追加」を選択すると、adflibView1.jaradflibModel.jarの両方が使用側プロジェクトのクラス・パスに追加されます。

図33-4 ADFライブラリJARと依存プロジェクトのライブラリJARが表示されている使用側プロジェクトのクラス・パス

「ライブラリ定義の編集」ダイアログ

別の方法として、依存プロジェクトのアーティファクトと拡張機能ライブラリを、ADFライブラリJARに直接含めることができます。

たとえば、プロジェクトViewはADFライブラリadflibView2.jarにもパッケージ化できます。これもModelプロジェクトに依存性があります。ただし、この2つ目のデプロイメント・プロファイルでは、Modelプロジェクトは、図33-5に示すように「ビルド出力」オプションが選択された依存プロジェクトです(デプロイメント・プロファイル(adflibmodel1)の選択とは異なります)。

図33-5 adflibview2.jarをビルドするために使用される「依存性の編集」ダイアログ

「依存性の編集」ダイアログのModel依存プロジェクト

「ビルド出力」を選択すると、依存プロジェクトのクラスと拡張機能ライブラリが、ADFライブラリJARに直接追加されます。図33-6に、ADFライブラリadflibView2.jarを示します。これには、Modelプロジェクトのアーティファクトと拡張機能ライブラリが含まれます。「ライブラリ依存性」ノードadflibView2.jarの下にある拡張機能ライブラリは、図33-3adflibView1.jaradflibModel.jarの下にある拡張機能ライブラリを合せたものと同じです。

図33-6 adflibView2.jar拡張機能ライブラリが表示されているリソース・パレット

ADFライブラリ構造が示されたリソース・パレット

依存プロジェクトをどのようにパッケージ化するかは、ADFライブラリの想定される使用に応じて異なります。依存プロジェクトがそれ自身で再利用可能なコンポーネントであるか、ADFライブラリJARにパッケージ化される複数のプロジェクトの依存プロジェクトである場合は、依存プロジェクトをJARとして含む方法に利点があります。例では、依存プロジェクトModelは、複数のビュー・プロジェクトの依存プロジェクトになる可能性があります。一方、依存プロジェクトをビルド出力としてパッケージ化する方法は、簡単明瞭で、JARが重複する心配もありません。


注意:

JDeveloper拡張機能ライブラリに含まれるADFライブラリJARを作成している場合、追加のマニフェスト、JDevLibrary: extension_library_nameエントリをJARに組み込む必要があります。「リソース・パレット」の「プロジェクトに追加」を使用して、JDevLibraryマニフェスト・エントリを含むADFライブラリJARを追加すると、ADFライブラリJARそのものではなく、このJARを含むJDeveloper拡張機能ライブラリが追加されます。


33.2 ADFライブラリへの再利用可能なADFコンポーネントのパッケージ化

1つ以上の特定のコンポーネントを再利用できると判断した後は、アプリケーションおよびプロジェクトを作成してそのコンポーネントを開発します。アプリケーション、プロジェクト、パッケージおよびその他のオブジェクトやファイルの名前を設定するには、33.1.1項「再利用可能なコンポーネントの作成」のガイドラインに従ってください。各プロジェクトは、1つのADFライブラリJARに対応します。複数のプロジェクトを作成し、それぞれのプロジェクトでコンポーネントを再利用する場合は、各プロジェクトに対してADFライブラリJARの作成が必要な場合があります。また、複数のコンポーネントを1つのプロジェクトにまとめて、単一のADFライブラリJARを作成できる場合もあります。たとえば、アプリケーション・モジュール、ビジネス・コンポーネント(エンティティ・オブジェクト、ビュー・オブジェクト、アソシエーション)、タスク・フローおよびページ・テンプレートすべてを1つのプロジェクトに作成して、1つのADFライブラリJARを作成することができます。

ADFライブラリJARの作成プロセスには、プロジェクトのコンパイル、コンポーネントの検証、リソース・サービス・ファイル、制御ファイルおよびadflibREADME.txt,の作成、関連するプロジェクト・ファイルのJARへの追加などが含まれます。ADFライブラリJARの詳細は、33.2.2項「ADFライブラリJARへのプロジェクトのパッケージ化時の処理」を参照してください。

コンポーネント自体が別のADFライブラリ・コンポーネントを使用するコンポーネントをパッケージ化する場合、最終的な使用側プロジェクトには両方のADFライブラリJARを追加する必要があります。たとえば、別のADFライブラリJARのデータ・コントロールからドロップされた表を含む再利用可能なタスク・フローを作成したとします。このタスク・フローをADFライブラリJARから使用側プロジェクトに追加する場合、そのプロジェクトにはデータ・コントロールのADFライブラリJARも必要です。

依存JAR(サードパーティのJARなど)を含むコンポーネントをパッケージ化する場合は、2つの方法があります。

33.2.1 コンポーネントをADFライブラリJARにパッケージ化する方法

再利用可能なコンポーネントをパッケージ化するには、まず、アーカイブ・タイプ、JARファイルの名前およびJARを作成するディレクトリのパスを指定するデプロイメント・プロファイルを作成します。次に、このデプロイメント・プロファイルを使用してプロジェクトをデプロイします。

作業を始める前に、次のようにします。

あらかじめプロジェクトを作成して、パッケージ化する必要がある依存プロジェクトとJARがあるかどうかを判別します。

プロジェクトをADFライブラリJARにパッケージ化およびデプロイするには:

  1. アプリケーション・ナビゲータで、再利用を可能にするコンポーネントを含むプロジェクトをダブルクリックします。

  2. 「プロジェクト・プロパティ」ダイアログの左ペインで、「デプロイ」を選択し、続いて「新規」をクリックします。

  3. デプロイメント・プロファイルの作成ウィンドウで、アーカイブ・タイプとして「ADFライブラリのJARファイル」を選択し、デプロイメント・プロファイルの名前を入力して、「OK」をクリックします。

    図33-7 「デプロイメント・プロファイルの作成」ダイアログ

    「デプロイメント・プロファイルの作成」ダイアログ
  4. 「プロジェクト・プロパティ」ダイアログで、デプロイメント・プロファイルを選択し、「編集」をクリックします。

  5. 「ADFライブラリJARデプロイメント・プロファイルのプロパティの編集」ダイアログで、「ライブラリ依存性」ノードを選択します。図33-8を参照してください。

    図33-8 「ADFライブラリJARデプロイメント・プロファイルのプロパティ」ダイアログ

    ADFデプロイメント・プロファイル・プロパティのダイアログ

    「ライブラリ依存性」ペインに、パッケージ化されるプロジェクトの、依存プロジェクトのリストが表示されます。依存プロジェクトのビルド出力を、パッケージ化するプロジェクトのライブラリに直接追加することも、選択されたデプロイメント・プロファイル・アーカイブをクラス・パスに追加することもできます。

    1. 依存プロジェクトを追加するには、編集アイコンをクリックして「依存性の編集」ダイアログを表示します。図33-9を参照してください。

      「ビルド出力」を選択すると、依存プロジェクトの拡張機能ライブラリが、ADFライブラリJARに直接追加されます。デプロイメント・プロファイルを選択すると、依存プロジェクトのJARファイル(独自の拡張機能ライブラリを含む)が、ADFライブラリJARに追加されます。ライブラリ依存性の詳細は、33.1.3項「拡張機能ライブラリ」を参照してください。

      この例では、OrderBookingServiceプロジェクトは、ビルド出力としてのみ、依存性として設定できます。ただし、StoreFrontUIプロジェクトは、ビルド出力としてでも、デプロイメント・プロファイル(FOD_webapp)としてでも依存性として設定できます。

      図33-9 ADFライブラリ・デプロイメントの「依存性の編集」ダイアログ

      ADFデプロイメント・プロファイルの「依存性の編集」ダイアログ
    2. 各依存プロジェクトで、プロジェクトの「ビルド出力」ノードを選択するか、依存プロファイルを選択して、「OK」をクリックします。

  6. 「ADFライブラリJARデプロイメント・プロファイルのプロパティの編集」ダイアログで、「接続」ノードを選択します。図33-10を参照してください。

    次のいずれかを選択します。

    • 接続詳細(セキュア・コンテンツは除外): プロジェクトに接続が含まれる場合に、接続名だけでなく使用できる接続詳細も追加する場合は、このチェック・ボックスを選択します。詳細は、33.1.1.6項「再利用可能なコンポーネント内への接続の組込み」を参照してください。

    • 接続名のみ: セキュリティなどの接続詳細を含まず、接続名のみを追加する場合は、このチェック・ボックスを選択します。


    注意:

    使用可能な接続のオプションはJDeveloperロールによって異なります。「接続詳細(セキュア・コンテンツは除外)」および「接続名のみ」は、「デフォルトのロール」で選択できます。JDeveloperが別のロールに設定されている場合は、他のオプションとデフォルトになります。


    「アプリケーション接続」ツリー構造で、組み込む接続レベルに対応するチェック・ボックスを選択します。

    図33-10 「ADFライブラリJARデプロイメント・プロファイルのプロパティの編集」ダイアログの「接続」ページ

    ADFデプロイメント・プロファイルの「接続」タブ
  7. 「ADFライブラリJARデプロイメント・プロファイルのプロパティ」ダイアログの「JARオプション」ノードで、図33-11に示すように、ADFライブラリJARファイルの格納先として、デフォルトのディレクトリ・パスを検証するか、新しいパスを入力します。

    ADFライブラリJARをJDeveloper拡張機能ライブラリに組み込む場合は、JDevLibrary: extension_library_nameエントリを含むテキスト・ファイルを作成し、そのファイルをプロジェクト・ルート・ディレクトリに配置します。「追加」をクリックすると、このファイルがManifest.mfファイルにマージされます。

    マニフェスト・テキスト・ファイルを作成するときは、JDevLibraryエントリを列1から開始して、コロンの後には空白を1つ入力してください。また、ファイルの最後の1行は空白行にする必要があります。

    図33-11 「ADFライブラリJARデプロイメント・プロファイルのプロパティ」ダイアログの「JARオプション」

    ADFデプロイメント・プロファイルの「JARオプション」
  8. 「ADFライブラリJARデプロイメント・プロファイルのプロパティの編集」ダイアログの「ADF検証」ノードで、次のいずれかを選択します。

    • エラーの無視: 検証が失敗してもJARファイルを作成するには、このオプションを選択します。これがデフォルトのオプションです。

    • 処理の停止: 検証が失敗したときに処理を停止するには、このオプションを選択します。

    図33-12 「ADFライブラリJARデプロイメント・プロファイルのプロパティ」ダイアログの「ADF検証」

    ADFデプロイメント・プロファイルの「ADF検証」タブ
  9. デプロイメント・プロファイルの設定を完了するには、「OK」をクリックします。

  10. アプリケーション・ナビゲータで、プロジェクトを右クリックし、「デプロイ」「deployment」を選択します。deploymentはデプロイメント・プロファイルの名前です。

  11. 「デプロイ」ダイアログの「デプロイメント・アクション」ページで、「次」をクリックしてから、「終了」をクリックします。

    JDeveloperによって、ステップ7で指定したディレクトリにADFライブラリJARが作成されます。ディレクトリをチェックして、JARが作成されたかどうかを確認できます。

33.2.2 ADFライブラリJARへのプロジェクトのパッケージ化時の処理

ライブラリJARをデプロイすると、JDeveloperによって必要なすべてのアーティファクトがパッケージ化され、適切な制御ファイルが追加され、JARファイルが生成されてデプロイメント・プロファイルで指定されたディレクトリに配置されます。デプロイ中は、コンパイル・メッセージがログ・ウィンドウに表示されます。

プロジェクトをADFライブラリJARにデプロイするとき、JDeveloperは次の処理を実行します。

  • HTMLルート・ディレクトリのアーティファクトをJARにパッケージ化します。JARが使用側プロジェクトに追加されると、JDeveloperによってそれがクラス・パスに追加され、再利用可能なコンポーネントのpublic_htmlリソースが使用可能になります。

  • adfm.xmlファイルをJARに追加します。ワークスペースに複数のMETA-INF/adfm.xmlファイルがある場合、デプロイ中のプロジェクトのadfm.xmlファイルのみが追加されます。このファイルはJDeveloperによって変更され、依存プロジェクトのadfm.xmlファイルの関連する内容が組み込まれます。

  • サービス・リソース・ファイルoracle.adf.common.services.ResourceService.svaをJARのMETA-INFディレクトリに追加します。このファイルを追加することで、ADFライブラリJARファイルが標準のJARファイルから区別されます。このファイルにより、JARのサービス戦略が定義され、リソース・パレットでJARの内容を正しく検出および表示できるようになります。

  • Manifest.mfファイルをJARに追加します。Manifest.mfファイルは、JARファイル間の依存性と、JARファイルの内容をコピーして組み込むか、あるいは参照するかを指定するために使用されます。JDeveloperにより、デフォルトのマニフェスト・ファイルが作成されます。例:

    Manifest-Version: 1.0
    
  • 接続が必要で、接続アーキテクチャを使用するコンポーネントに対しては、jar-connections.xmlファイルがJARに追加されます。使用側アプリケーションで、クラス・パスで定義され、実行時にアクセスできる構成ファイル内の接続情報が、マージされることがある点に注意してください。同じ接続がクラス・パスで複数回指定された場合、メイン・アプリケーションの接続が優先されます。

異なるタイプの再利用可能なコンポーネントでは、異なるアーティファクト・ファイルおよびエントリがサービス・リソース・ファイルに含まれます。

33.2.2.1 アプリケーション・モジュール

アプリケーション・モジュールの場合、JDeveloperによって、制御ファイルoracle.adf.common.services.ResourceService.svaおよびManifest.mf,and adfm.xmlがJARに追加されます。アプリケーション・モジュールのサービス・リソース・ファイルには、そのアプリケーション・モジュールのデータ・コントロールのエントリに加えて、アプリケーション・モジュールに関連付けられているビジネス・コンポーネントのエントリも含まれます。

接続アーキテクチャを使用し、データ・ソースに関する接続情報を含むコンポーネントの場合は、jar-connections.xmlファイルが存在する場合があります。

33.2.2.2 データ・コントロール

プレースホルダ・データ・コントロールなどのデータ・コントロールに対しては、oracle.adf.common.services.ResourceService.svaManifest.mfおよびDataControl.dcxという3つの制御ファイルがJDeveloperによってJARに組み込まれます。データ・コントロールが使用されるのは、データソースがADFビジネス・コンポーネントに基づいていないため、アプリケーション・モジュールのJARファイルの場合と異なり、ビジネス・コンポーネントがJARファイルに含まれていない場合です。標準のデータ・コントロールのサービス・リソース・ファイルには、データ・コントロールのエントリが含まれます。

JARには、データ・コントロールのタイプを示すDatacontrol.dcxファイルもプロジェクトから組み込まれます。

33.2.2.3 タスク・フロー

タスク・フローに対しては、oracle.adf.common.services.ResourceService.svaManifest.mfおよびtask-flow-registry.xmlという3つの制御ファイルがJDeveloperによってJARに組み込まれます。タスク・フローのサービス・リソース・ファイルには、1つまたは複数のタスク・フローがJARに含まれることを示すエントリが含まれます。

33.2.2.4 ページ・テンプレート

ページ・テンプレートに対しては、oracle.adf.common.services.ResourceService.svaおよびManifest.mfという2つの制御ファイルがJDeveloperによってJARに組み込まれます。

33.2.2.5 宣言的なコンポーネント

宣言的なコンポーネントに対しては、oracle.adf.common.services.ResourceService.svaおよびManifest.mfという2つの制御ファイルがJDeveloperによってJARに組み込まれます。

33.2.3 JDeveloper JARファイルの配置方法とアクセス方法

他のプロジェクトで再利用できるJARファイル(サードパーティJARファイルなど)がある場合、JDeveloperを使用して、JARファイルをアクセス可能な場所に配置し、それらのファイルを指定するライブラリ・ファイル(.library)を作成できます。使用側はJDeveloperを使用して、この場所にナビゲートし、JARをプロジェクトに追加できます。

ADFライブラリJARにはADFコンポーネントが含まれます。他のJARは含まれません(含めることはできません)。

作業を始める前に、次のようにします。

JARファイルの生成側と使用側両方にとってアクセス可能な場所にJARファイルを配置します。たとえば、他の共有ファイルを配置しているネットワーク・ドライブ上のディレクトリに配置します。

JDeveloper LIbrary JARを配置してアクセスするには:

  1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

  2. 「ライブラリの管理」ダイアログで「ディレクトリ」をクリックします。

  3. 「ディレクトリのロード」ダイアログで、二次的なJARファイルを配置するディレクトリを選択します。

  4. 「ライブラリの管理」ダイアログで「新規」をクリックします。

  5. 「ライブラリの作成」ダイアログで、ライブラリ名を入力して「エントリの追加」をクリックします。

    ライブラリ・ファイル(.library拡張子)が作成されます。ライブラリ・ファイルはソース・コントロール・システムに配置する必要があります。

  6. 「パス・エントリの選択」ダイアログで、追加するJARを選択して「選択」をクリックします。

  7. 「ライブラリの作成」ダイアログで、「デフォルトでデプロイ済」オプションがJARに正しく設定されていることを確認して「OK」をクリックし、さらに「OK」をクリックします。

  8. 使用側プロジェクトのJDeveloperで次の手順を実行します。

    1. メイン・メニューから「ツール」→「ライブラリの管理」を選択します。

    2. 「ライブラリの管理」ダイアログで「ディレクトリ」をクリックします。

    3. 「ディレクトリのロード」ダイアログで、二次的なJARファイルを配置するディレクトリを選択して「OK」をクリックします。この手順のステップ3で指定したのと同じ場所を選択する必要があります。

    4. プロジェクトを右クリックして、「プロジェクト・プロパティ」を選択します。

    5. プロジェクト・プロパティ・ウィンドウで、「ライブラリとクラスパス」を選択し、「ライブラリの追加」をクリックします。

    6. 「ライブラリの追加」ダイアログで「OK」をクリックし、もう一度「OK」をクリックします。

33.3 プロジェクトへのADFライブラリ・コンポーネントの追加

ADFライブラリJARは、作成後、そのJARを使用する開発者に配布する必要があります。ADFライブラリJARを配布する手順には、検索、参照および検出するネットワーク・ファイル・システムへのJARの配置が含まれる場合があります。これらのJARにアクセスして取得する場合に、他の形式のデータ・ストアまたはサービスが使用されることがあります。ADFライブラリJARは単なるバイナリ・ファイルなので、ftpや電子メールなどを使用して、他のファイルと同様に配布できます。

ADFライブラリJARへのアクセスが可能になった後は、JDeveloperを使用してJARにアクセスし、自分の使用側プロジェクトに追加できます。JDeveloperのリソース・パレットを使用すると、最も簡単で効率的です。JDeveloperを使用してJARをクラス・パスに入力することで、JARをプロジェクトに手動で追加することも可能です。

プロジェクトがADFライブラリJARにパッケージ化されると、そのプロジェクトがデプロイメントと実行の際に必要とする依存JARのリストが取得されます。このリストは、プロジェクトの依存プロファイルと、「デフォルトでデプロイ済」が選択されたプロジェクトの「ライブラリとクラスパス」の情報に基づいています。ADFライブラリJARが使用側プロジェクトに追加されるとき、この依存JARのリストは、ADFライブラリ依存性と呼ばれるライブラリに配置されます。これは、使用側プロジェクト内のロックされたライブラリです。内容は、JDeveloperの「データ・コントロール」パネル、コンポーネント・パレットまたは他の場所では表示されません。このライブラリは、プロジェクトでの様々なADFライブラリJARの追加や削除に応じて管理および更新されます。依存性が変更された場合は(たとえば、生成側プロジェクトの再ビルドなど)、JDeveloperのメニュー・コマンドを使用して使用側プロジェクトの依存性をリフレッシュすることができます。

追加した再利用可能なコンポーネントの使用方法は、コンポーネントのタイプによって異なります。

33.3.1 リソース・パレットを使用してADFライブラリJARをプロジェクトに追加する方法

リソース・パレットを使用して、ADFライブラリJARの検索、検出およびプロジェクトへの追加を実行できます。

作業を始める前に、次のようにします。

リポジトリ・フォルダにあらかじめADFライブラリJARを用意しておきます。このリポジトリに「リソース・パレット」がまだ接続していない場合は、このフォルダの場所を認識している必要があります。

リソース・パレットを使用してコンポーネントをプロジェクトに追加するには:

  1. 「表示」メニューから「リソース・パレット」を選択します。

  2. リソース・パレットで、新規アイコンをクリックし、「接続の作成」「ファイルシステム」を選択します。

  3. 「ファイルシステム接続の作成」ダイアログで、JARが含まれるフォルダの名前とパスを入力します。ファイル・パスのガイドラインは、33.1.1.5項「パスおよびフォルダの選択」を参照してください。

  4. 「OK」をクリックします。

    新しいADFライブラリJARが「リソース・パレット」で接続名の下に表示されます。

  5. JAR構造ツリーの各項目を調査するには、ツールチップを使用します。ツールチップには、選択されている項目のソースなどの、関連情報が表示されます。

    図33-13では、リソース・パレットに、ビジネス・コンポーネントのパッケージ情報を示すツールチップ・メッセージが表示されています。

    図33-13 リソース・パレットに表示される、接続に関するツールチップ・メッセージ

    ADFライブラリのリソース・パレットとツールチップ
  6. ADFライブラリJARまたはその項目のいずれかをプロジェクトに追加するには、項目を右クリックして「プロジェクトに追加」を選択します。表示される確認ダイアログで「ライブラリの追加」をクリックします(図33-14)

    図33-14 「ADFライブラリ追加の確認」ダイアログ

    「ADFライブラリ追加の確認」ダイアログ

    そのライブラリJARを前に追加したことがある場合、「ADFライブラリのリフレッシュの確認」ダイアログが表示され、ライブラリをリフレッシュする確認を求めてきます。

  7. ADFライブラリJARに依存性の変更がある場合は、新しい変更内容でプロジェクトをリフレッシュできます。アプリケーション・ナビゲータで、プロジェクトを右クリックして「project.jprのADFライブラリ依存性のリフレッシュ」を選択します。

アプリケーション・モジュールおよびデータ・コントロールの場合は、オプションで、アプリケーション・モジュールまたはデータ・コントロールを「リソース・パレット」から「データ・コントロール」パネルにドラッグ・アンド・ドロップできます。


注意:

JDeveloperは、使用側プロジェクトにまだ含まれていないすべてのADF Library JAR拡張機能ライブラリをロードします。使用側プロジェクトに含まれていない場合、ADFライブラリの依存JARの拡張機能ライブラリも、チェックおよびロードされます。詳細は、33.1.3項「拡張機能ライブラリ」を参照してください。


33.3.2 ADFライブラリJARをプロジェクトに手動で追加する方法

ADFライブラリJARは、他のライブラリJARファイルと同じ方法で追加できます。

作業を始める前に、次のようにします。

ADFライブラリJARをあらかじめ用意しておきます。

コンポーネントをプロジェクトに手動で追加するには:

  1. アプリケーション・ナビゲータで、コンポーネントを追加するプロジェクトをダブルクリックします。

  2. 「プロジェクト・プロパティ」ダイアログで、「ライブラリとクラスパス」ノードを選択し、「ライブラリの追加」をクリックします。

  3. 「ライブラリの追加」ダイアログで、「新規」をクリックします。

  4. 「ライブラリの作成」ダイアログの「場所」ドロップダウン・リストで「プロジェクト」を選択し、ADFライブラリの名前を入力します。適切な名前は「ADF Library」です。「デフォルトでデプロイ済」を選択し、「エントリの追加」をクリックします。

  5. 「パス・エントリの選択」ダイアログで、ADFライブラリJARファイルを入力または参照し、「選択」をクリックします。

  6. 「ライブラリの作成」ダイアログが再表示され、「クラスパス」ノードの下にJARファイルのパスが表示されます。「OK」をクリックします。

  7. 「ライブラリの追加」ダイアログが再表示され、「プロジェクト」ノードの下にADFライブラリのエントリが表示されます。「OK」をクリックします。

    図33-15 「ライブラリの追加」ダイアログ

    「ライブラリの追加」ダイアログ
  8. JARファイルがライブラリのリストに追加された状態で、「プロジェクト・プロパティ」ダイアログが再表示されます。「OK」をクリックします。

33.3.3 プロジェクトへのADFライブラリJARの追加時の処理

リソース・パレットを使用して、またはJARを手動で追加することで、ADFライブラリJARをプロジェクトに追加すると、ADFライブラリの定義がプロジェクトに作成されます。ADFライブラリJARファイルは、プロジェクトのクラス・パスに追加されます。プロジェクトでは、JAR内のコンポーネントのアクセスおよび使用を参照によって行います。

デフォルトでは、「ライブラリの作成」ダイアログの、ADFライブラリの「デフォルトでデプロイ済」オプションはtrueに設定されています。このオプションが設定されている場合、アプリケーションまたはモジュールがWARファイルにさらにアーカイブまたは組み込まれると、ADFライブラリJARの内容が、そのアーカイブまたはWARファイルにコピーされます。「デフォルトでデプロイ済」オプションが設定されていない場合は、ADFライブラリのJARを他の方法(共有ライブラリへのデプロイなど)でロードする必要があります。

図33-16に、ADFライブラリが追加される前の、使用側プロジェクトの空の「データ・コントロール」パネルを示します。

図33-16 使用側プロジェクトの「データ・コントロール」パネル

「プロジェクトに追加」実行前のアプリケーション・ナビゲータ

図33-17に、使用側プロジェクトに追加されるadflibStoreFrontService ADFライブラリを示します。

図33-17 プロジェクトへのADFライブラリJARの追加

リソース・パレットの「プロジェクトに追加」

図33-18に、使用側プロジェクトの「データ・コントロール」パネルに追加されたADFライブラリの、いくつかのデータ・コントロールを示します。

図33-18 使用側プロジェクトの「データ・コントロール」パネルへのアプリケーション・モジュールの追加

使用側プロジェクトへのアプリケーション・モジュールの追加

ADFライブラリJARの追加後に、JDeveloperの一部のウィンドウが変更される場合があります。変更内容は、追加したコンポーネントのタイプによって異なります。表33-3に、JDeveloperのいくつかのウィンドウでの影響を示します。

表33-3 ADFライブラリ追加後のJDeveloperウィンドウ

追加したコンポーネント 「データ・コントロール」パネル 作成ウィザード コンポーネント・パレット

データ・コントロール

データ・コントロールが表示されます。



アプリケーション・モジュール

アプリケーション・モジュールが表示されます。



ビジネス・コンポーネント


ビュー・オブジェクトの作成ウィザードでエンティティ・オブジェクトが使用可能になります。JARのビュー・オブジェクトも使用可能になります。


タスク・フロー



タスク・フローがコンポーネント・パレットに表示されます。

ページ・テンプレート


JSFの作成ウィザードでページ・テンプレートが使用可能になります。


宣言的なコンポーネント



タグ・ライブラリがコンポーネント・パレットに表示されます。宣言的なコンポーネントがリストに表示されます。


33.3.4 ADFライブラリのコンポーネントの使用について

ADFライブラリJARをプロジェクトに追加する手順は標準化されており、コンポーネントがJDeveloperに表示される場所と、それを再利用できる方法は、コンポーネントのタイプによって決まります。

33.3.4.1 データ・コントロールの使用

プロジェクトにデータ・コントロールを追加すると、「データ・コントロール」パネルにデータ・コントロールが表示されます。リソース・パレットを使用している場合は、オプションで、データ・コントロールの項目をリソース・パレットから「データ・コントロール」パネルにドラッグ・アンド・ドロップした後で、「データ・コントロール」パネルからページにドラッグ・アンド・ドロップできます。

33.3.4.2 アプリケーション・モジュールの使用

プロジェクトにアプリケーション・モジュールを追加すると、「データ・コントロール」パネルにアプリケーション・モジュールが表示されます。リソース・パレットを使用している場合は、オプションで、アプリケーション・モジュール項目をリソース・パレットから「データ・コントロール」パネルにドラッグ・アンド・ドロップした後で、「データ・コントロール」パネルからページにドラッグ・アンド・ドロップできます。

アプリケーション・モジュールは、ビジネス・コンポーネントに関連付けられます。再利用可能なアプリケーション・モジュールがパッケージ化されている場合、JARにはそのアプリケーション・モジュールの作成に使用されたビジネス・コンポーネントが含まれます。このコンポーネントは再利用可能です。

33.3.4.3 ビジネス・コンポーネントの使用

ビジネス・コンポーネントも、パッケージ化および再利用が可能です。エンティティ・オブジェクト、ビュー・オブジェクトおよびアソシエーションを一緒にパッケージ化して、使用側プロジェクトに追加できます。デフォルトでは、アプリケーション・モジュールをパッケージ化するとJARにビジネス・コンポーネントが組み込まれますが、ビジネス・コンポーネントは、関連するアプリケーション・モジュールがなくても、ビジネス・コンポーネント自体で再利用できます。

ビジネス・コンポーネントの再利用方法としては、ADFライブラリJARのエンティティ・オブジェクトを使用して新しいビュー・オブジェクトを作成することがあります。ウィザードを使用してビュー・オブジェクトを追加すると、ビュー・オブジェクトの生成をサポートするために、エンティティ・オブジェクトがウィザードで使用可能になります。ビュー・オブジェクトの作成方法の詳細は、5.2.1項「エンティティ・ベースのビュー・オブジェクトの作成方法」を参照してください。ビュー・オブジェクトの作成に使用するエンティティ・オブジェクトを選択する画面がウィザードに表示されると、図33-19に示すように、ADFライブラリのエンティティ・オブジェクトがシャトル・ウィンドウで選択可能になります。

図33-19 ADFライブラリのエンティティ・オブジェクトを使用したビュー・オブジェクトの作成

「ビュー・オブジェクトの作成」ダイアログ

ADFライブラリJARを追加する前に使用側プロジェクトで「ビジネス・コンポーネント用にプロジェクトを初期化」オプションを選択しておいた場合(「プロジェクト・プロパティ」ダイアログの「ビジネス・コンポーネント」ページ)、JAR内のビジネス・コンポーネントは、プロジェクトに対して自動的に利用可能になります。

先にADFライブラリJARを追加してから「ビジネス・コンポーネント用にプロジェクトを初期化」を選択すると、JDeveloperにより、ビジネス・コンポーネントが自動的にロードされます。

33.3.4.4 タスク・フローの使用

JSFページにコンポーネントを追加する場合、プロジェクトに追加されるタスク・フローは、コンポーネント・パレットに表示されます。リソース・パレットを使用している場合は、タスク・フローを直接リソース・パレットから別のタスク・フローやページにドラッグ・アンド・ドロップすることもできます(図33-20を参照)。

図33-20 リソース・パレットを使用したタスク・フローのドラッグ・アンド・ドロップ

タスク・フローの使用

タスク・フローの作成の詳細は、第14章「ADFタスク・フローの概説」を参照してください。

33.3.4.5 ページ・テンプレートの使用

プロジェクトに追加したページ・テンプレートは、アプリケーション・ナビゲータでは公開されません。イメージ・ファイルなどの個々のサポート・ファイルには、直接アクセスすることはできません。ただし、テンプレートではそのサポート・ファイルへのアクセスをJAR内に保持しており、テンプレートはプロジェクト内で完全に再利用可能です。適用後のテンプレートは、そのテンプレートにロードされているすべてのイメージを保持します。

ページ・テンプレートは、ウィザードを使用して新しいJSF JSPページを作成するときに公開され、アクセス可能になります。ページ・テンプレートを使用するオプションがウィザードで表示されると、ADFライブラリ・テンプレートがドロップダウン・リストに表示されます。たとえば、FODTemplateというページ・テンプレートがADFライブラリからロードされている場合、ウィザードを使用してJSF JSPページを作成するときに、FODTemplateがウィザードに表示されます(図33-21を参照)。ページ・テンプレートを使用してJSF JSPページを作成する方法の詳細は、20.2項「ページ・テンプレートの使用」および『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。

図33-21 ADFライブラリからのページ・テンプレートの使用

ページ・テンプレートの使用

33.3.4.6 宣言的なコンポーネントの使用

宣言的なコンポーネントをプロジェクトに追加すると、そのコンポーネントを含むJSPタグ・ライブラリがプロジェクトに追加されます。このタグ・ライブラリがコンポーネント・パレットに表示され、宣言的なコンポーネントの選択が可能になります。宣言的なコンポーネントの作成方法と使用方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』を参照してください。

33.3.5 ADFライブラリのコンポーネントの区別について

アプリケーション開発中に作成したコンポーネントとADFライブラリからインポートしたコンポーネントが混在する場合は、JDeveloperのツールチップ機能を使用して区別できます。

カーソルをアプリケーション・モジュールまたはデータ・コントロールの上に移動すると、ソースのフルパスが表示されます。パスにADFライブラリJARファイルが含まれている場合、そのコンポーネントのソースはADFライブラリです。

33.3.6 実行時に行われる処理: ADFライブラリの追加

プロジェクトおよびクラス・パスに追加されたADFライブラリJARは、他のライブラリ・ファイルと同様に動作します。実行中に、ADFライブラリJAR内のコンポーネントを使用するコンポーネントは、そのオブジェクトを参照します。このプロセスは透過的であり、プロジェクト用に開発されたコンポーネントとADFライブラリJAR内のコンポーネントを区別する必要はありません。図33-22に、プロジェクトに対して定義されたADFライブラリとJARへのパスを示します。

図33-22 クラス・パスにADFライブラリが表示されている「ライブラリ定義の編集」ダイアログ

「ライブラリ定義の編集」ダイアログ

33.4 プロジェクトからのADFライブラリJARの削除

「リソース・パレット」を使用してADFライブラリJARをプロジェクトから削除したり、「プロジェクト・プロパティ」ダイアログを使用してJARを手動で削除できます。プロジェクト内のコンポーネントに、ADFライブラリJARのコンポーネントに対する依存性がない場合のみ、ADFライブラリJARを削除できます。

JARを削除すると、プロジェクトのクラス・パスに表示されなくなり、そのすべてのコンポーネントは使用できなくなります。

33.4.1 「リソース・パレット」を使用してADFライブラリJARをプロジェクトから削除する方法

「リソース・パレット」では、単純なコマンドを使用して、以前に追加したADFライブラリJARをプロジェクトから削除できます。

リソース・パレットを使用してプロジェクトからADFライブラリJARを削除するには:

  1. 「表示」メニューから「リソース・パレット」を選択します。

  2. アプリケーション・ナビゲータで、削除するADFライブラリJARを含むプロジェクトを選択します。

  3. 「リソース・パレット」で、現在のプロジェクトから削除するADFライブラリJARを検索します。

  4. そのJARを右クリックして、「アクティブなプロジェクトから削除」を選択します。

33.4.2 ADFライブラリJARをプロジェクトから手動で削除する方法

ADFライブラリJARを手動で削除するときは、的確なライブラリを削除するよう注意してください。ライブラリの中には、プロジェクトの操作に不可欠なものもあります。

ADFライブラリJARをプロジェクトから手動で削除するには:

  1. アプリケーション・ナビゲータで、プロジェクトをダブルクリックします。

  2. 「プロジェクト・プロパティ」ダイアログで、「ライブラリとクラスパス」ノードを選択します。

  3. 「クラスパス・エントリ」リストで、「ADFライブラリ」を選択し、「編集」をクリックします。

  4. 「ライブラリ定義の編集」ダイアログで、削除するADFライブラリJARを「クラスパス」ノードの下から選択し、「削除」をクリックします。

  5. 「OK」をクリックして削除を確認し、「OK」を再度クリックしてダイアログを閉じます。