プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発
12c (12.2.1.3.0)
E90376-03
目次へ移動
目次

前
次

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

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

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

50.1 再利用可能なコンポーネントについて

ADFアプリケーション開発の過程では、特定のコンポーネントは再利用されることが一般的です。再利用可能なコンポーネントの作成および使用は、アプリケーション開発の初期の設計およびアーキテクチャ段階に含める必要があります。これらの再利用可能コンポーネントを、異なるチーム間で共有できるライブラリにパッケージ化することにメリットがあります。これらの共有ライブラリをリポジトリに追加できます。後でコンポーネントが必要になった場合は、再利用するものをリポジトリで参照できます。

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

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共有ライブラリと混同しないでください。

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

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

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

データ・コントロール

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

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

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

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

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

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

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

ページ・フラグメントを使用するバインド・タスク・フローをドロップすると、JDeveloperがページにリージョンを追加し、ドロップされたタスク・フローにバインドします。

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

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

ページ・テンプレート

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

宣言的なコンポーネント

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

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

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

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

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

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

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

ヒント:

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

50.1.1.1 命名規則

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

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

タイプ JDeveloperのデフォルト

アプリケーション

アプリケーション

SummitADF

プロジェクト

Model

ViewController

プロジェクト

BackOfficService

OrderTrackingUI

パッケージ

不定。詳細は、「パッケージのネーミングに関する考慮事項」を参照してください。

oracle.summit

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

AppModule

SummitAppModuleDataControl

接続

Connection1

summit_adf

タスク・フロー

task-flow-defintion.xml

customer-task-flow-definition.xml

ページ・テンプレート

templateDef.jspx

SummitTemplate.jspx

宣言的なコンポーネント

componentDef

componentDef.jspx

SummitsuperwidgetDef

SummitsuperwidgetDef.jspx

ADFライブラリJARファイル

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

詳細は、「ADFライブラリJARデプロイメント・プロファイルのネーミング・プロセス」を参照してください。

SummitADF_Model_adflibSummitADF1

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

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

注意:

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

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

注意:

初期化パラメータをweb.xmlファイルに追加して、ADFライブラリのすべての静的Webアプリケーション・リソースに対する失効期限設定364日をオーバーライドできます。詳細は、「web.xml」を参照してください。

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

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

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

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

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

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

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

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

50.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は最大3桁の乱数で、Nは1で始まりプロファイルの繰り返しごとに1ずつ増加していきます。

たとえば、プロファイルのデフォルト名がadflib7491(乱数が749、接尾辞が1)になる場合があります。別のプロファイルのデフォルト名がadflib51(乱数が5接尾辞が1)になる場合があります。

このデフォルト名を指定の名前に変更できます。

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

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

50.1.1.4 関連機能の選択

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

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

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

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

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

50.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にパッケージ化するために個々の接続または接続タイプを選択できます。「コンポーネントをADFライブラリJARにパッケージ化する方法」の説明に従って、ADFライブラリ・デプロイメント・プロファイル・プロパティの作成ダイアログまたはADFライブラリ・デプロイメント・プロファイル・プロパティの編集ダイアログの「接続」ページで接続を選択します。

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

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

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

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

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

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

注意:

ADFライブラリをプロジェクトに追加するプロセスで、ログ・ウィンドウに、JARで定義された各接続に関する1つのメッセージが表示されます。このメッセージは、プロジェクトでマージ・アクションが実行されていることを示します。

50.1.2 再利用可能なADFコンポーネントのユースケースと例

プロジェクトをADFライブラリJARにパッケージ化すると、同じまたは異なるアプリケーションでコンポーネントを複数回再利用できます。異なる開発チームは、プロジェクトを作成して使用し、再利用可能モジュールのライブラリを作成できます。ADFライブラリJARでは、M-V-Cデザイン・パターンをサポートしています。ADFライブラリを作成し、「リソース」ウィンドウからのドラッグ・アンド・ドロップによってそれらにアクセスできます。

たとえば、アプリケーション・モジュールをADFライブラリJARにパッケージ化し、これを別のチームが使用するパブリック・フォルダに配置できます。別の実装チームは、そのJARにアクセスし、アプリケーションを作成できます。独自のアプリケーション・モジュールを作成するかわりに、このアプリケーション・モジュールを使用して、別のページを作成して使用できます。モデルに変更がある場合、元の開発者は、アプリケーション・モジュールを再パッケージ化し、ADFライブラリJARを再公開できます。別の実装チームは、更新されたADFライブラリを使用して、アプリケーションを更新できます。

50.1.3 再利用可能なADFコンポーネントの追加機能

再利用可能なADFコンポーネントを使用する前に、他のADF機能を理解することが役立つ場合があります。次に、関連する他の機能へのリンクを示します。

50.1.4 再利用可能なADFコンポーネントの共通機能

ADFライブラリJARをパッケージ化または使用するとき、プロジェクトに関連付けられている拡張機能ライブラリも含めたり使用します。ADFライブラリを使用する場合は、「リソース」ウィンドウを使用できます。

50.1.4.1 拡張機能ライブラリの使用

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

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

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

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

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

図50-1の説明が続きます
「図50-1 デプロイメント・プロファイル・オプションのある「依存性の編集」ダイアログ」の説明

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

図50-2 adflibView1.jarおよびadflibModel.jar拡張機能ライブラリが表示されている「リソース」ウィンドウ

図50-2の説明が続きます
「図50-2 adflibView1.jarおよびadflibModel.jar拡張機能ライブラリが表示されている「リソース」ウィンドウ」の説明

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

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

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

図50-3の説明が続きます
「図50-3 adflibview2.jarをビルドするために使用される「依存性の編集」ダイアログ」の説明

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

図50-4 adflibView2.jar拡張機能ライブラリが表示されている「リソース」ウィンドウ

図50-4の説明が続きます
「図50-4 adflibView2.jar拡張機能ライブラリが表示されている「リソース」ウィンドウ」の説明

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

注意:

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

50.1.4.2 「リソース」ウィンドウの使用

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

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

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

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

図50-5 ADFライブラリ構造が表示されている「リソース」ウィンドウ

図50-5の説明が続きます
「図50-5 ADFライブラリ構造が表示されている「リソース」ウィンドウ」の説明

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

これらの再利用可能なコンポーネントは、アプリケーションで再利用するためにADFライブラリにパッケージ化できます。ADFライブラリJARは別のJARファイルと同様ですが、ADF関連のコンポーネントとプロジェクト依存ライブラリが含まれています。ADFライブラリJARファイルの目的は再利用です。

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

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

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

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

  • 使用側の環境でJARの配置が制御される場合、ADFライブラリJARおよび依存JARをJDeveloper拡張機能ライブラリに配置できます。JDeveloper拡張機能ライブラリを使用する利点は、個々の依存JARを参照する必要がないために、使用側プロジェクトが複雑にならないことです。

  • JDeveloper拡張機能ライブラリを使用できない場合は、依存JARをADFライブラリJARと同じ場所に配置し、各依存JAR用のマニフェスト・クラスパス・エントリを含めることができます。

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

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

始める前に:

ADFコンポーネントをパッケージ化するときに使用できるオプションについて理解しておくと役立ちます。詳細は、「ADFライブラリへの再利用可能なADFコンポーネントのパッケージ化」を参照してください。

ADFコンポーネントをパッケージ化する際に使用できる機能を理解することも役立つ場合があります。詳細は、「再利用可能なADFコンポーネントの追加機能」を参照してください。

次のタスクを完了する必要があります。

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

  1. 「アプリケーション」ウィンドウで、再利用を可能にするコンポーネントを含むプロジェクトをダブルクリックします。

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

  3. 「デプロイメント・プロファイルの作成」ダイアログで、「プロファイル・タイプ」として「ADFライブラリのJARファイル」を選択し、「デプロイメント・プロファイル名」に名前を入力するかまたはデフォルト名を受け入れ、「OK」をクリックします。

    図50-6 「デプロイメント・プロファイルの作成」ダイアログ(デフォルト名の場合)

    図50-6の説明が続きます
    「図50-6 「デプロイメント・プロファイルの作成」ダイアログ(デフォルト名の場合)」の説明
  4. 「プロジェクト・プロパティ」ダイアログで、デプロイメント・プロファイルを選択し、「編集」をクリックします。

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

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

    図50-7の説明が続きます
    「図50-7 「ADFライブラリJARデプロイメント・プロファイルのプロパティ」ダイアログ」の説明

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

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

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

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

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

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

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

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

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

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

    注意:

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

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

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

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

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

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

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

    図50-10の説明が続きます
    「図50-10 「ADFライブラリJARデプロイメント・プロファイルのプロパティ」ダイアログの「JARオプション」」の説明
  8. 「ADF検証」ノードを選択します。

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

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

    • 処理の停止: 検証が失敗した場合は処理を停止します。

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

    図50-11の説明が続きます
    「図50-11 「ADFライブラリJARデプロイメント・プロファイルのプロパティ」ダイアログの「ADF検証」」の説明
  9. デプロイメント・プロファイルの設定を完了するには、「OK」をクリックします。

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

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

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

50.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に追加されます。使用側アプリケーションで、クラス・パスで定義され、実行時にアクセスできる構成ファイル内の接続情報が、マージされることがある点に注意してください。同じ接続がクラス・パスで複数回指定された場合、メイン・アプリケーションの接続が優先されます。

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

50.2.2.1 JARにパッケージ化されるアプリケーション・モジュール・ファイル

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

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

50.2.2.2 JARにパッケージ化されるデータ・コントロール・ファイル

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

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

50.2.2.3 JARにパッケージ化されるタスク・フロー・ファイル

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

50.2.2.4 JARにパッケージ化されるページ・テンプレート・ファイル

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

50.2.2.5 JARにパッケージ化される宣言コンポーネント・ファイル

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

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

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

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

始める前に:

ADFコンポーネントをパッケージ化するときに使用できるオプションについて理解しておくと役立ちます。詳細は、「ADFライブラリへの再利用可能なADFコンポーネントのパッケージ化」を参照してください。

ADFコンポーネントをパッケージ化する際に使用できる機能を理解することも役立つ場合があります。詳細は、「再利用可能なADFコンポーネントの追加機能」を参照してください。

次のタスクを完了する必要があります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ADFライブラリJARをプロジェクトに手動で、または「リソース」ウィンドウを使用して追加できます。ADFライブラリJARファイルはプロジェクトのクラス・パスに追加されるため、プロジェクトはJAR内のコンポーネントをアクセスおよび使用します。

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のメニュー・コマンドを使用して使用側プロジェクトの依存性をリフレッシュできます。

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

50.3.1 「リソース」ウィンドウを使用してプロジェクトにADFライブラリJARを追加する方法

「リソース」ウィンドウを使用して、ADFライブラリJARの検索、検出およびプロジェクトへの追加を実行できます。

始める前に:

ADFコンポーネントをパッケージ化するときに使用できるオプションについて理解しておくと役立ちます。詳細は、「プロジェクトへのADFライブラリ・コンポーネントの追加」を参照してください。

ADFコンポーネントをパッケージ化する際に使用できる機能を理解することも役立つ場合があります。詳細は、「再利用可能なADFコンポーネントの追加機能」を参照してください。

次のタスクを完了する必要があります。

「リソース」ウィンドウを使用してプロジェクトにコンポーネントを追加するには:

  1. メイン・メニューで、「ウィンドウ」→「リソース」を選択します。
  2. 「リソース」ウィンドウで、「新規」アイコンをクリックして、「IDE接続」「ファイルシステム」を選択します。
  3. 「ファイルシステム接続の作成」ダイアログで、JARが含まれるフォルダの名前とパスを入力します。

    ファイル・パスのガイドラインは、「パスおよびフォルダの選択」を参照してください。

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

    新しいADFライブラリJARが「リソース」ウィンドウの接続名の下に表示されます。

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

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

    図50-12 「リソース」ウィンドウに表示される、接続に関するツールチップ・メッセージ

    図50-12の説明が続きます
    「図50-12 「リソース」ウィンドウに表示される、接続に関するツールチップ・メッセージ」の説明
  6. ADFライブラリJARまたはその項目のいずれかをプロジェクトに追加するには、項目を右クリックして「プロジェクトに追加」を選択します。表示される確認ダイアログで「ライブラリの追加」をクリックします(図50-13)

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

    図50-13の説明が続きます
    「図50-13 「ADFライブラリ追加の確認」ダイアログ」の説明

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

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

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

注意:

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

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

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

始める前に:

ADFコンポーネントをパッケージ化するときに使用できるオプションについて理解しておくと役立ちます。詳細は、「プロジェクトへのADFライブラリ・コンポーネントの追加」を参照してください。

ADFコンポーネントをパッケージ化する際に使用できる機能を理解することも役立つ場合があります。詳細は、「再利用可能なADFコンポーネントの追加機能」を参照してください。

次のタスクを完了する必要があります。

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

  1. 「アプリケーション」ウィンドウで、コンポーネントを追加するプロジェクトをダブルクリックします。
  2. 「プロジェクト・プロパティ」ダイアログで、「ライブラリとクラスパス」ノードを選択し、「ライブラリの追加」をクリックします。
  3. 「ライブラリの追加」ダイアログで、「新規」をクリックします。
  4. 「ライブラリの作成」ダイアログの「場所」ドロップダウン・リストで「プロジェクト」を選択し、ADFライブラリの名前を入力します。適切な名前は「ADF Library」です。「デフォルトでデプロイ済」を選択し、「エントリの追加」をクリックします。
  5. 「パス・エントリの選択」ダイアログで、ADFライブラリJARファイルを入力または参照し、「開く」をクリックします。
  6. 「ライブラリの作成」ダイアログが再表示され、「クラスパス」ノードの下にJARファイルのパスが表示されます。「OK」をクリックします。
  7. 「ライブラリの追加」ダイアログが再表示され、「プロジェクト」ノードの下にADFライブラリのエントリが表示されます。「OK」をクリックします。

    図50-14 「ライブラリの追加」ダイアログ

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

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

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

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

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

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

図50-15の説明が続きます
「図50-15 使用側プロジェクトの「データ・コントロール」パネル」の説明

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

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

図50-16の説明が続きます
「図50-16 プロジェクトへのADFライブラリJARの追加」の説明

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

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

図50-17の説明が続きます
「図50-17 使用側プロジェクトの「データ・コントロール」パネルへのアプリケーション・モジュールの追加」の説明

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

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

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

データ・コントロール

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

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

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

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

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

タスク・フロー

「コンポーネント」ウィンドウにタスク・フローが表示されます。

ページ・テンプレート

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

宣言的なコンポーネント

「コンポーネント」ウィンドウにタグ・ライブラリが表示されます。宣言的なコンポーネントがリストに表示されます。

50.3.4 ADFライブラリのコンポーネントの使用に関する必知事項

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

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

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

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

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

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

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

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

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

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

図50-18の説明が続きます
「図50-18 ADFライブラリのエンティティ・オブジェクトを使用したビュー・オブジェクトの作成」の説明

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

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

50.3.4.4 タスク・フローの使用

コンポーネントをJSFページに追加するときには、プロジェクトに追加されたタスク・フローが「コンポーネント」ウィンドウに表示されます。「リソース」ウィンドウを使用している場合は、図50-19に示すように、タスク・フローを「リソース」ウィンドウから別のタスク・フローまたはページに直接ドラッグ・アンド・ドロップすることもできます。

図50-19 「リソース」ウィンドウを使用したタスク・フローのドラッグ・アンド・ドロップ

図50-19の説明が続きます
「図50-19 「リソース」ウィンドウを使用したタスク・フローのドラッグ・アンド・ドロップ」の説明

タスク・フローの作成の詳細は、「ADFタスク・フローのスタート・ガイド」を参照してください。

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

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

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

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

図50-20の説明が続きます
「図50-20 ADFライブラリからのページ・テンプレートの使用」の説明

50.3.4.6 宣言コンポーネントの使用

宣言的なコンポーネントをプロジェクトに追加すると、そのコンポーネントを含むJSPタグ・ライブラリがプロジェクトに追加されます。このタグ・ライブラリが「コンポーネント」ウィンドウに表示され、宣言的なコンポーネントの選択が可能になります。宣言的なコンポーネントの作成と使用の詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』の宣言コンポーネントの使用に関する項を参照してください。

50.3.5 ADFライブラリのコンポーネントの区別に関する必知事項

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

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

注意:

データ・コントロール・パネルの項目のツールチップは、このセッションでノードを開いたことがあるかどうかによって変わります。最も完全なツールチップを表示していることを確認するには、項目を開く必要があります。

50.3.6 実行時に行われる処理: プロジェクトへのADFライブラリの追加方法

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

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

図50-21の説明が続きます
「図50-21 クラス・パスにADFライブラリが表示されている「ライブラリ定義の編集」ダイアログ」の説明

注意:

ADFライブラリJARを作成すると、コンポーネントの作成に使用したあらゆるJavaソースをJARで使用できなくなります。使用者がデバッグなどの目的でソースにアクセスできるようにする場合、これらを別々に配信する必要があります(通常ZIPファイルで配信)。使用者は、自分のプロジェクトのADFライブラリ「ライブラリとクラスパス」エントリの「ソースパス」エントリの関連コンポーネント・ソースとしてそのZIPファイルを指定できます。

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

ADFライブラリJARをプロジェクトから手動で、または「リソース」ウィンドウを使用して削除できます。

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

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

50.4.1 「リソース」ウィンドウを使用してプロジェクトからADFライブラリJARを削除する方法

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

始める前に:

ADFコンポーネントをパッケージ化するときに使用できるオプションについて理解しておくと役立ちます。詳細は、「プロジェクトからのADFライブラリJARの削除」を参照してください。

ADFコンポーネントをパッケージ化する際に使用できる機能を理解することも役立つ場合があります。詳細は、「再利用可能なADFコンポーネントの追加機能」を参照してください。

次のタスクを完了する必要があります。

「リソース」ウィンドウを使用してプロジェクトからADFライブラリJARを削除するには:

  1. メイン・メニューで、「ウィンドウ」「リソース」を選択します。
  2. 「アプリケーション」ウィンドウで、削除するADFライブラリJARを含むプロジェクトを選択します。
  3. 「リソース」ウィンドウで、現在のプロジェクトから削除するADFライブラリJARを検索します。
  4. そのJARを右クリックして、「アクティブなプロジェクトから削除」を選択します。

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

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

始める前に:

ADFコンポーネントをパッケージ化するときに使用できるオプションについて理解しておくと役立ちます。詳細は、「プロジェクトからのADFライブラリJARの削除」を参照してください。

ADFコンポーネントをパッケージ化する際に使用できる機能を理解することも役立つ場合があります。詳細は、「再利用可能なADFコンポーネントの追加機能」を参照してください。

次のタスクを完了する必要があります。

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

  1. 「アプリケーション」ウィンドウで、プロジェクトをダブルクリックします。
  2. 「プロジェクト・プロパティ」ダイアログで、「ライブラリとクラスパス」ノードを選択します。
  3. 「クラスパス・エントリ」リストで、「ADFライブラリ」を選択し、「編集」をクリックします。
  4. 「ライブラリ定義の編集」ダイアログで、削除するADFライブラリJARを「クラスパス」ノードの下から選択し、「削除」をクリックします。
  5. 「OK」をクリックして削除を確認し、「OK」を再度クリックしてダイアログを閉じます。