Oracle® Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発 12c (12.2.1.2.0) E82918-03 |
|
前 |
次 |
この章の内容は次のとおりです。
JDeveloperでは、「リファクタ」メイン・メニューの選択または選択したADFコンポーネントのコンテキスト・メニューを通じて使用可能なADF Fusion Webアプリケーション・コンポーネントのリファクタリングが幅広くサポートされています。ほとんどの場合、ADFアプリケーション・コンポーネントのリファクタリングには、これらのコンポーネントの名前変更、移動および削除が含まれます。
JDeveloperには、アプリケーションが使用する属性の名前と場所、名前付き要素、ファイル、ADFビジネス・コンポーネント・オブジェクトを変更できるようにするリファクタ・オプションが用意されています。これらのリファクタ・オプションは、行った変更と、その変更に依存するアプリケーションの他の部分とを同期させます。たとえば、「名前の変更」オプションを使用して、ビュー・オブジェクトなどのADFビジネス・コンポーネント・オブジェクトの名前を変更すると、他のXMLソース・ファイル内にそのオブジェクトへの参照があれば、その参照の名前も変更されます。
Fusion Webアプリケーションでは、JDeveloperのリファクタ・アクション(移動、名前変更および削除)を使用して、オブジェクトの名前と場所を変更できます。これらのアクションは、「リファクタ」のメイン・メニューと、「アプリケーション」ウィンドウのオブジェクト・タイプごとのポップアップ・メニューから使用できます。移動、名前変更および削除操作は、ほとんどの(すべてではない)オブジェクトおよびファイル・タイプに使用できます。「アプリケーション」ウィンドウでオブジェクトまたはファイルが選択される場合、適用されるリファクタ操作は「リファクタ」メニューで有効にされます。
また、JDeveloperでリファクタできる対象には制限があります。場合によっては、プロジェクト構成ファイルの移動など、従うことのできる手動手順があります。詳細は、「リファクタの制限」を参照してください。
開発中、必要に応じてアプリケーションのニーズを満たすように、エンティティ・オブジェクトなどのオブジェクトを作成します。その後、不要になったオブジェクトを削除したり、命名規則に合うようにオブジェクトの名前を変更したり、一連のオブジェクトを別のパッケージに移動してその場所をまとめたりする必要が生じる場合があります。JDeveloperを使用して、これらのオブジェクトをリファクタして更新し、また、他のオブジェクトでのこれらのオブジェクトへの参照も更新して、アプリケーション全体の整合性を維持できます。
「アプリケーション」ウィンドウでADF BCコンポーネントを右クリックすると、「リファクタ」メニューを表示できます。コンポーネントの名前変更を選択した場合、JDeveloperによって「名前の変更」
ダイアログが表示されます。このダイアログで、オブジェクトの新しい名前を指定でき、リファクタリング・プロセスで生成される変更をプレビューすることを選択できます。
次のメソッドを使用して、構成ファイルなどのファイルの名前を変更できます。
「アプリケーション」ウィンドウで、ファイルを選択し、メイン・メニューから「ファイル」→「名前の変更」を選択します。
「アプリケーション」ウィンドウで、ファイルを右クリックして、「リファクタ」→「名前の変更」を選択します。
ソース・エディタで、クラス名を選択し、右クリックして「名前の変更」を選択します。
ディレクトリ間でファイルを移動するには、「移動」メニュー項目を使用します。
ファイルの名前を変更したり移動したりすると、そのファイルへの参照もすべて更新されます。たとえば、ページ定義ファイルの名前を変更すると、DataBindings.cpx
ファイル内のエントリもそれに応じて更新されます。
ADFビジネス・コンポーネント・オブジェクトに関連付けられたXMLファイルやJavaファイルの名前を、そのオブジェクトと無関係に変更することはできません。これらのファイルは同期を維持する必要があるからです。「ADFビジネス・コンポーネントのリファクタ」を参照してください。
「リファクタ」メニューでJSFページのパッケージを変更できます。これにより、faces-config.xml
ファイル、ページへのDataBindings.cpx
マッピングおよびページ・ビューを含むADFタスク・フローが更新されます。
他のリファクタ操作に加えて、JSFページのパッケージを変更できます。「アプリケーション」ウィンドウで、JSFページを右クリックして「リファクタ」→「移動」を選択し、ページを別のパッケージに移動します。JSFページを別のパッケージに移動すると、次のものが更新されます。
ページとそのパッケージを参照するfaces-config.xml
ファイル
ページに関連付けられるビューを含むADFタスク・フロー
ページへのDataBindings.cpx
マッピング
pagedef.xml
ファイルでは、実行時にUIコンポーネントにデータを移入するバインディングおよび実行可能ファイルを定義します。任意のデータ・バインディングまたは実行可能ファイルを選択し、「リファクタ」メニューを使用して名前変更または削除できます。
リファクタできるpagedef.xml
バインディング・オブジェクトには、バインディングと実行可能ファイルが含まれます。「ページ定義ファイルの処理」を参照してください。
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。「Fusion Webアプリケーションのリファクタについて」を参照してください。
JDeveloperで、リファクタするオブジェクトを含むアプリケーションを開きます。
pagedef.xmlバインディング・オブジェクトをリファクタするには:
JDeveloperのADFコンポーネントのリファクタリングの場合、使用される共通リファクタリング機能はビジネス・コンポーネント(BC)オブジェクトの名前変更、移動または削除です。
ADFビジネス・コンポーネントには、ビュー・オブジェクト、エンティティ・オブジェクトなどのオブジェクトが含まれます。表49-1で、ADFビジネス・コンポーネントのリファクタのサポートについて説明します。
表49-1 「ADFビジネス・コンポーネントのリファクタ」
アクション | 結果 |
---|---|
移動 |
オブジェクトを異なるパッケージまたはディレクトリへ移動し、すべての参照を更新する。 |
削除 |
JDeveloperでオブジェクト上のすべての依存性が表示され、強制削除が許可される。この時点ではアプリケーションが機能しないことがある。ブレーク中の参照を解決しなければならないことがある。 |
名前の変更 |
ADFビジネス・コンポーネント・オブジェクトは、XMLファイルによって定義される。このXMLファイルのファイル名はオブジェクト名と同一である。たとえば、 たとえば、あるエンティティの名前( |
使用方法の検索 |
JDeveloperによってオブジェクトのすべての依存性が表示される。 |
注意:
抽象レイヤーを越えてリファクタすることはありません。たとえば、Dept
エンティティ・オブジェクトに基づいてビュー・オブジェクトが作成された場合、デフォルトでDeptView
という名前になります。Dept
エンティティ・オブジェクトの名前を変更すると、DeptView
のエンティティの慣用名は更新されますが、ビュー・オブジェクトの名前は変更されません。
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。詳細は、「Fusion Webアプリケーションのリファクタについて」を参照してください。
JDeveloperで、リファクタするオブジェクトを含むアプリケーションを開きます。
ADFビジネス・コンポーネント・オブジェクトをリファクタするには:
ADFビジネス・コンポーネントのエンティティ・オブジェクトおよびビュー・オブジェクトの属性をリファクタできます。
表49-1で、ADFビジネス・コンポーネントのエンティティ・オブジェクトおよびビュー・オブジェクトの属性のリファクタのサポートについて説明します。
表49-2 属性のリファクタ
アクション | 結果 |
---|---|
移動 |
サポートされない。 |
削除 |
JDeveloperで属性上のすべての依存性が表示され、強制削除が許可される。この時点ではアプリケーションが機能しないことがある。ブレーク中の参照を解決しなければならないことがある。 |
名前の変更 |
属性は、エンティティ・オブジェクトやビュー・オブジェクト内で表現されるデータ要素を共有する(詳細は「エンティティ・オブジェクトについて」を参照)。属性の名前を変更すると、属性への参照が更新される。名前を変更すると、 属性の名前を変更しても、それが表すデータは変更されず、基礎となる表の列名も変更されない。 |
使用方法の検索 |
JDeveloperによって属性のすべての依存性が表示される。 |
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。「Fusion Webアプリケーションのリファクタについて」を参照してください。
JDeveloperで、リファクタする属性を含むアプリケーションを開きます。
属性をリファクタする手順は次のとおりです。
名前付き要素は、オブジェクトや属性ではありません。名前付き要素は、Name
属性によって参照できるXMLスキーマの要素です。JDeveloperでは、名前付き要素をリファクタできます。
名前付き要素は、Name
属性によって参照できるXMLスキーマの任意の要素です。名前付き要素は、オブジェクトや属性ではありません。表49-3で、XMLスキーマの名前付き要素のリファクタのサポートについて説明します。
表49-3 名前付き要素のリファクタ
アクション | 結果 |
---|---|
移動 |
サポートされない。 |
削除 |
サポートされない。 |
名前の変更 |
名前付き要素の定義に関する1つの例外は、設計時の要素 |
使用方法の検索 |
JDeveloperによって名前付き要素のすべての依存性が表示されます。 |
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。「Fusion Webアプリケーションのリファクタについて」を参照してください。
JDeveloperで、リファクタする名前付き要素を含むアプリケーションを開きます。
名前付き要素をリファクタするには:
JDeveloperを使用して、既存のアクティビティ、JSFページ・フローおよびJSFページを、新規のADFコントローラ・コンポーネント(バインド・タスク・フローやタスク・フロー・テンプレートなど)にリファクタできます。
詳細は、「新規タスク・フローおよびタスク・フロー・テンプレート作成のためのリファクタ」を参照してください。
DataBindings.cpx
ファイルを名前変更または移動するには、新しいファイルを作成し、既存のファイルを削除する必要があります。この操作を行う場合、複数レジストリのレジストリであるadfm.xml
ファイルを更新する必要があり、idプロパティはDataBindings.cpx
ファイル名と同様である必要があります。そうでないとエラー・メッセージが表示されます。
DataBindings.cpx
ファイルは、アプリケーション全体のOracle ADFバインディング・コンテキストを定義し、Oracle ADFバインディング・オブジェクトが実行時に作成される元となるメタデータを提供します(詳細は「DataBindings.cpxの構文」を参照)。このファイルは、すべての.cpx
、.dcx
、.jpx
および.xcfg
ファイルを短時間で検索するために使用されるレジストリで、それ自身もメタデータのレジストリです。
DataBindings.cpx
ファイルの名前を新しい名前に変更して、たとえばDataBindingsNew.cpx
にすると、adfm.xml
ファイルにその変更が追加されます。
次の例は、DataBindings.cpx
がDataBindingsNew.cpx
にリファクタされた後のadfm.xml
ファイルの内容を示しています。
<?xml version="1.0" encoding="UTF-8" ?> <MetadataDirectory xmlns="http://xmlns.oracle.com/adfm/metainf" version="11.1.1.0.0"> <DataBindingRegistry path="adf/sample/view/DataBindingsNew.cpx"/> </MetadataDirectory>
さらに、アプリケーションが正しいバインディング・ファイルにアクセスできるように、ID値が次の例と同じようなIDに変更されます。
<Application xmlns="http://xmlns.oracle.com/adfm/application" version="11.1.1.49.28" id="DataBindingsNew" SeparateXMLFiles="false" Package="adf.sample.view" ClientType="Generic">
JDeveloperには、ここにリストする一連のリファクタリングの問題および制限があります。
表49-4に、JDeveloperのリファクタのサポートに関する制限を示します。
表49-4 リファクタの制限
領域 | 制限 |
---|---|
データベース |
ADFビジネス・コンポーネント・オブジェクトで使用されるデータベース・アーティファクトの名前を変更した場合、オブジェクトを更新する必要がある。このタイプのリファクタは、現在サポートされていない。 |
サービス・インタフェース |
サービス・インタフェースによって、2つの異なるソフトウェアの間の規定が定義されます。たとえば、ADFビジネス・コンポーネントのサービス・インタフェースは、ビュー・レイヤーとモデル・レイヤーへのビジネス・コンポーネントの公開に対応します。サービス・インタフェースの名前を変更すると競合が発生する可能性があります。アプリケーションを開発する際は、サービス・インタフェースを削除してからオブジェクトをリファクタし、その後でサービス・インタフェースを再生成することを検討してください。また、サービス・インタフェースで定義される検索操作が、バインド変数を指定するビュー基準に基づいている場合は、基礎となるビュー基準のバインド変数の数または順序を変更すると、サービス・インタフェースを再生成する必要があります。 「アプリケーション・モジュールによるSOAP Webサービスの作成」を参照してください。 |
Javaリテラル参照 |
ADFビジネス・コンポーネントによって生成されるJavaコードは、XMLメタデータへのリテラル参照を持つ。このリテラル参照は、リファクタ操作の際に更新される。生成された(型保証の)メソッドも更新される。リファクタの削除操作はローカルJava変数に対しても使用できる。 ただし、アプリケーション・コードが直接メタデータを参照する場合は、この参照は更新されない。 |
ドメイン |
ドメインの名前の変更や移動が必要な場合は、新しいドメインを作成してから、既存ドメインの使用方法のタイプを変更します。たとえば、ドメイン名を |
セキュリティ |
ポリシー・ストアのセキュリティ・ポリシーは、エンティティ・オブジェクト、属性、ページまたはタスク・フローの名前を参照することがあります。このポリシー定義は、オブジェクト自体のリファクタに対応して更新されません。 |
リソース・バンドル |
エンティティ・オブジェクト定義は、作成した1つ以上の任意のリソース・バンドル・ファイル( |
|
ADFビジネス・コンポーネント・プロジェクト構成ファイル( JDeveloperの前のバージョンでは、ADFビジネス・コンポーネント・プロジェクト構成 |
ビジネス・コンポーネント・プロジェクト・ファイル(.jpx
)が別のパッケージに移動された場合、bc4j.xcfg
ファイルで使用可能なjbo.project
プロパティをそれに応じて変更する必要があります。ただし、常に自動的に変更されるとはかぎりません。
ADFビジネス・コンポーネント・プロジェクト構成ファイル(.jpx
)のリファクタはサポートされていませんが、この名前または場所を変更して、プロジェクトの内容をADFライブラリとして共有する際の競合を回避する必要がある場合があります。.jpx
ファイルには、JDeveloperが設計時に使用して、ユーザーによるADFビジネス・コンポーネントを使用したデータ・モデル・プロジェクトの作成を可能にするための構成情報が含まれます。このファイルをリファクタする必要がある場合は、手動で実行してください。
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。「Fusion Webアプリケーションのリファクタについて」を参照してください。
ADFビジネス・コンポーネント・プロジェクト構成ファイル (.jpx)を手動で移動するには: