Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド 11gリリース1 (11.1.1.7.0) B52028-05 |
|
前 |
次 |
この章では、ファイル、構成ファイル、オブジェクト、属性およびFusion Webアプリケーションの要素の、名前変更、移動および削除に関する注意事項を説明します。ほとんどの場合、JDeveloperにより自動的にリファクタが実行されます。ただし、リファクタする前に、いくつかの手動ステップを完了する必要があることがあります。
この章の内容は次のとおりです。
JDeveloperには、アプリケーションが使用するADFビジネス・コンポーネントのオブジェクト(属性)、属性および名前付き要素の、名前の変更、移動および削除を行うリファクタ・オプションが用意されています。これらのリファクタ・オプションは、行った変更と、その変更に依存するアプリケーションの他の部分とを同期させます。たとえば、「名前の変更」オプションを使用して、ビューなどのADFビジネス・コンポーネント・オブジェクトの名前を変更すると、他のXMLソース・ファイル内にそのオブジェクトへの参照があれば、その参照の名前も変更されます。
次のメソッドを使用して、構成ファイルなどのファイルの名前を変更することができます。
アプリケーション・ナビゲータで、ファイルを選択して、メイン・メニューから「ファイル」→「名前の変更」を選択します。
アプリケーション・ナビゲータで、ファイルを右クリックして「リファクタ」→「名前の変更」を選択します。
ソース・エディタで、クラス名を選択し、右クリックして「名前の変更」を選択します。
Applicationナビゲータで、JSFページを右クリックして「リファクタ」→「パッケージへ移動」を選択すると、ページを別のパッケージに移動できます。JSFページを別のパッケージに移動すると、次のものが更新されます。
ページとそのパッケージを参照するfaces-config.xml
ファイル
ページに関連付けられるビューを含むADFタスク・フロー
ページへのDataBindings.cpx
マッピング
リファクタできるpagedef.xml
バインディング・オブジェクトには、バインディングと実行可能ファイルが含まれます。詳細は、12.6項「ページ定義ファイルでの作業」を参照してください。
pagedef.xmlバインディング・オブジェクトをリファクタするには:
アプリケーション・ナビゲータで、ADFフォームや選択リストなどのバインド・オブジェクトを追加したページ・ノードを選択します。
ページ・ノードを右クリックして、「ページ定義に移動」を選択します。
ページにまだページ定義がない場合は、「ページ定義の作成」ダイアログが表示されます。「OK」をクリックすると、そのページのページ定義が作成されます。
概要エディタで、「モデル」セクションを展開します。
図32-1に示すように、ページで定義されているリスト・バインディングやイテレータ・バインディングなどのデータ・バインディングが、「バインディング」と「実行可能ファイル」の下に表示されます。
データ・バインディングまたは実行可能ファイルを右クリックして「リファクタ」を選択し、「名前の変更」や「削除」などのリファクタ・オプションを選択します。
バインディング、実行可能ファイルおよびデータ・コントロールの間の使用方法を表示するには、バインディングや実行可能ファイルを右クリックして、「使用方法の検索」を選択します。
ADFビジネス・コンポーネントには、ビュー・オブジェクト、エンティティ・オブジェクトなどのオブジェクトが含まれます。表32-1で、ADFビジネス・コンポーネントのリファクタのサポートについて説明します。
表32-1 ADFビジネス・コンポーネントのリファクタ
アクション | 結果 |
---|---|
移動 |
オブジェクトを異なるパッケージまたはディレクトリへ移動し、すべての参照を更新する。 |
削除 |
JDeveloperでオブジェクト上のすべての依存性が表示され、強制削除が許可される。この時点ではアプリケーションが機能しないことがある。ブレーク中の参照を解決しなければならないことがある。 |
名前の変更 |
ADFビジネス・コンポーネント・オブジェクトは、XMLファイルによって定義される。このXMLファイルのファイル名はオブジェクト名と同一である。たとえば、 たとえば、あるエンティティの名前( |
使用方法の検索 |
JDeveloperによってオブジェクトのすべての依存性が表示されます。 |
ADFビジネス・コンポーネント・オブジェクトをリファクタするには:
アプリケーション・ナビゲータで、リファクタするオブジェクトを含む「プロジェクト」ノードを展開します。
プロジェクト内で、まず「アプリケーション・ソース」ノードを展開し、次にリファクタするオブジェクトを含むパッケージを展開します。
オブジェクトを右クリックして、「リファクタ」→「名前の変更」または「リファクタ」→「移動」を選択します。
オブジェクトを削除するには、「削除」を選択します。
オブジェクトがアプリケーションの他の箇所で使用される場合、ダイアログに次のオプションが表示されます。
無視: 解決されていない慣用名は、未定義参照としてコードに残ります。
使用方法の表示: コンパイラ・ログに、要素の慣用名のプレビューが表示されます。ログを使用して、残りの慣用名を調査および解決することができます。
表32-1で、ADFビジネス・コンポーネントのエンティティ・オブジェクトおよびビュー・オブジェクトの属性のリファクタのサポートについて説明します。
表32-2 属性のリファクタ
アクション | 結果 |
---|---|
移動 |
サポートされない。 |
削除 |
JDeveloperで属性上のすべての依存性が表示され、強制削除が許可されます。この時点ではアプリケーションが機能しないことがある。ブレーク中の参照を解決しなければならないことがある。 |
名前の変更 |
属性は、エンティティやビュー・オブジェクト内で表現されるデータ要素を共有する(詳細は4.1項「エンティティ・オブジェクトの概要」を参照)。属性の名前を変更すると、属性への参照が更新される。名前を変更すると、 属性の名前を変更しても、それが表すデータは変更されず、基礎となる表の列名も変更されない。 |
使用方法の検索 |
JDeveloperによって属性のすべての依存性が表示されます。 |
属性をリファクタするには:
アプリケーション・ナビゲータで、リファクタするオブジェクトを含む「プロジェクト」ノードを展開します。
プロジェクト内で、まず「アプリケーション・ソース」ノードを展開し、次にリファクタするオブジェクトを含むパッケージを展開します。
オブジェクトをダブルクリックします。
概要エディタで、「属性」タブを選択します。
「名前」リストで属性を選択します。
右クリックして、「名前の変更」または「削除」オプションを選択します。
属性を削除するには、「削除」を選択します。
属性がアプリケーションの他の箇所で使用される場合、ダイアログに、次のオプションが表示されます。
無視: 解決されていない慣用名は、未定義参照としてコードに残ります。
使用方法の表示: コンパイラ・ログに、属性の慣用名のプレビューが表示されます。ログを使用して、残りの慣用名を調査および解決することができます。
表32-3で、XMLスキーマの名前付き要素のリファクタのサポートについて説明します。名前付き要素は、Name属性によって参照できるXMLスキーマの任意の要素です。名前付き要素は、オブジェクトや属性ではありません。
表32-3 名前付き要素のリファクタ
アクション | 結果 |
---|---|
移動 |
サポートされない。 |
削除 |
サポートされない。 |
名前の変更 |
名前付き要素の定義に関する1つの例外は、設計時の要素 |
使用方法の検索 |
JDeveloperによって名前付き要素のすべての依存性が表示されます。 |
名前付き要素をリファクタするには:
アプリケーション・ナビゲータで、リファクタするオブジェクトを含む「プロジェクト」ノードを展開します。
プロジェクト内で、まず「アプリケーション・ソース」ノードを展開し、次にリファクタするオブジェクトを含むパッケージを展開します。
オブジェクトをダブルクリックします。
概要エディタで、「ソース」タブをクリックします。
名前付き要素にスクロール・ダウンします。
名前付き要素は、ソース・コードでName="<element>"
などのように示されます。
<Key Name="PersonsAffContactChk">
名前付き要素は、オブジェクトや属性ではありません。
要素の名前を変更するには、要素を右クリックして「名前の変更」を選択します。
要素を削除するには、「削除」を選択します。
要素がアプリケーションの他の箇所で使用される場合、ダイアログに、次のオプションが表示されます。
無視: 解決されていない慣用名は、未定義参照としてコードに残ります。
使用方法の表示: コンパイラ・ログに、要素の慣用名のプレビューが表示されます。ログを使用して、残りの慣用名を調査および解決することができます。
詳細は、14.5項「新規ADFタスク・フローおよびテンプレート作成のためのリファクタ」を参照してください。
DataBindings.cpx
ファイルは、アプリケーション全体のOracle ADFバインディング・コンテキストを定義し、Oracle ADFバインディング・オブジェクトが実行時に作成される元となるメタデータを提供します(詳細はA.7.1項「DataBindings.cpxの構文」を参照)。このファイルは、すべての.cpx
、.dcx
、.jpx
、and .xcfg
ファイルを短時間で検索するために使用されるレジストリで、それ自身もメタデータのレジストリです。
DataBindings.cpx
ファイルの名前を新しい名前に変更して、たとえばDataBindingsNew.cpx
にすると、adfm.xml
ファイルにその変更が追加されます。
例32-1に、DataBindings.cpx
がDataBindingsNew.cpx
にリファクタされた後のadfm.xml
ファイルの内容を示します。
例32-1 adfm.xml内の、名前を変更されたDataBindings.cpxファイル
<?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>
この変更を行うと、データ・コントロールを見つけられないため、アプリケーションは動作しません。例32-2に、DataBindingsNew.cpx
ファイル内の古いIDを示します。アプリケーションが正しいバインディング・ファイルにアクセスできるようにするには、DataBindingsNew.cpx
ファイル内のID値を新しいファイルに更新します。
例32-2 DataBindingsNew.cpx ID
<Application xmlns="http://xmlns.oracle.com/adfm/application" version="11.1.1.49.28" id="DataBinding" SeparateXMLFiles="false" Package="adf.sample.view" ClientType="Generic">
これを、例32-3に示すようなIDに変更してください。
抽象レイヤーを越えてリファクタすることはありません。たとえば、エンティティDept
に基づいてビュー・オブジェクトが作成された場合、デフォルトでDeptView
という名前になります。Dept
の名前を変更すると、DeptView
のエンティティの慣用名は更新されますが、ビュー・オブジェクトの名前は変更されません。
表32-4、JDeveloperでのリファクタのサポートに関する制限を要約して示します。
表32-4 リファクタの制限
領域 | 制限 |
---|---|
データベース |
ADFビジネス・コンポーネント・オブジェクトで使用されるデータベース・アーティファクトの名前を変更した場合、オブジェクトを更新する必要がある。このタイプのリファクタは、現在サポートされていない。 |
サービス・インタフェース |
サービス・インタフェースによって、2つの異なるソフトウェアの間の規定が定義されます。たとえば、ADFビジネス・コンポーネントのサービス・インタフェースは、ビュー・レイヤーとモデル・レイヤーへのビジネス・コンポーネントの公開に対応します。サービス・インタフェースの名前を変更すると競合が発生する可能性があります。アプリケーションを開発する際は、サービス・インタフェースを削除してからオブジェクトをリファクタし、その後でサービス・インタフェースを再生成することを検討してください。また、サービス・インタフェースで定義される検索操作が、バインド変数を指定するビュー基準に基づいている場合は、基礎となるビュー基準のバインド変数の数または順序を変更すると、サービス・インタフェースを再生成する必要があります。 詳細は、第11章「サービス対応アプリケーション・モジュールの統合」を参照してください。 |
Javaリテラル参照 |
ADFビジネス・コンポーネントによって生成されるJavaコードは、XMLメタデータへのリテラル参照を持つ。このリテラル参照は、リファクタ操作の際に更新される。生成された(型保証の)メソッドも更新される。ただし、アプリケーションが直接メタデータを参照する場合は、この参照は更新されない。 |
ドメイン |
ドメインの名前の変更や移動が必要な場合は、新しいドメインを作成してから、既存ドメインの使用方法のタイプを変更します。たとえば、ドメイン名を |
セキュリティ |
ポリシー・ストアのエンティティ・オブジェクトと属性セキュリティ・ポリシーは、エンティティ・オブジェクトまたは属性の名前を参照することがある。このポリシー定義は、エンティティ・オブジェクトや属性をリファクタに対応して更新されない。 |
リソース・バンドル |
エンティティ・オブジェクト定義は、作成した1つ以上の任意のリソース・バンドル・ファイル( |
|
ADFビジネス・コンポーネント( JDeveloperの前のバージョンでは、ADFビジネス・コンポーネント |
JDeveloperでは、ADFビジネス・コンポーネントのリファクタがサポートされます。
.jpxプロジェクト・ファイルを手動で移動するには:
.jpx
ファイルを新しいソース・ツリーの場所に移動します。
たとえば、Model.jpx
ファイルをsrc/Model.jpx
からsrc/packagenames/go/here/Model.jpx
に移動できます。
.jpx
ファイルの内容を変更します。ルート要素JboProject
のPackageName
属性は、正しい値を持つ必要があります。
たとえば、PackageName="packagenames.go.here"
と指定できます。
.jpx
ファイルで参照されている要素を含むすべてのcommon/bc4j.xcfg
ファイルで、jbo.project
属性を変更して、新しいパッケージ名を含むようにします。
例:
<AppModuleConfig name="ScottDeptAMLocal" ApplicationName="packagenames.go.here.ScottDeptAM" DeployPlatform="LOCAL" JDBCName="scottdb" jbo.project="packagenames.go.here.Model">
JDeveloperプロジェクト・ファイル(.jpr
ファイル)の内容を変更します。
新しい.jpx
パッケージの場所を設定します。後からプロジェクト・プロパティでデフォルト・パッケージを変更する場合、.jpx
ファイルが原因となって再びNotFound
エラーが発生します。
例:
<value n="defaultPackage" v="packagenames.go.here"/>
.jpx
ファイルの古い場所への参照を含むownerMap
で、いずれかのownerURL
要素を修正します。
例:
<url n="ownerURL" path="src/packagenames/go/here/Model.jpx"/>