Oracle® Fusion Middleware Oracle Application Development FrameworkによるFusion Webアプリケーションの開発 12c (12.1.2) E48099-02 |
|
前 |
次 |
この章では、ソース・ファイル、構成ファイル、オブジェクト、属性およびFusion Webアプリケーションの要素の名前変更、移動および削除に関する注意事項を説明します。ほとんどの場合、JDeveloperでリファクタを完全に実行できます。ただし、リファクタする前に、いくつかの手動ステップを完了する必要があることがあります。
この章には次の項が含まれます:
JDeveloperには、アプリケーションが使用する名前と場所の属性、名前付き要素、ファイル、ADFビジネス・コンポーネント・オブジェクトの名前を変更できるようにするリファクタ・オプションが用意されています。これらのリファクタ・オプションは、行った変更と、その変更に依存するアプリケーションの他の部分とを同期させます。たとえば、「名前の変更」オプションを使用して、ビュー・オブジェクトなどのADFビジネス・コンポーネント・オブジェクトの名前を変更すると、他のXMLソース・ファイル内にそのオブジェクトへの参照があれば、その参照の名前も変更されます。
Fusion Webアプリケーションでは、JDeveloperのリファクタ・アクション(移動、名前変更および削除)を使用して、オブジェクトの名前と場所を変更できます。これらのアクションは、「リファクタ」のメイン・メニューと、「アプリケーション」ウィンドウのオブジェクト・タイプごとのポップアップ・メニューから使用できます。
開発中、必要に応じてアプリケーションのニーズを満たすように、エンティティ・オブジェクトなどのオブジェクトを作成します。その後、不要になったオブジェクトを削除したり、ネーミング規則に合うようにオブジェクトの名前を変更したり、一連のオブジェクトを別のパッケージに移動してその場所をまとめたりする必要が生じる場合があります。JDeveloperを使用して、これらのオブジェクトをリファクタして更新し、また、他のオブジェクトでのこれらのオブジェクトへの参照も更新して、アプリケーション全体の整合性を維持できます。
次のメソッドを使用して、構成ファイルなどのファイルの名前を変更できます。
「アプリケーション」ウィンドウで、ファイルを選択し、メイン・メニューから「ファイル」→「名前の変更」を選択します。
「アプリケーション」ウィンドウで、ファイルを右クリックして、「リファクタ」→「名前の変更」を選択します。
ソース・エディタで、クラス名を選択し、右クリックして「名前の変更」を選択します。
ディレクトリ間でファイルを移動するには、「移動」メニュー項目を使用します。
ファイルの名前を変更したり移動したりすると、そのファイルへの参照もすべて更新されます。たとえば、ページ定義ファイルの名前を変更すると、DataBindings.cpx
ファイル内のエントリもそれに応じて更新されます。
ADFビジネス・コンポーネント・オブジェクトに関連付けられたXMLファイルやJavaファイルの名前を、そのオブジェクトと無関係に変更することはできません。これらのファイルは同期を維持する必要があるからです。詳細は、43.5項「ADFビジネス・コンポーネントのリファクタ」を参照してください。
他のリファクタ操作に加えて、JSFページのパッケージを変更できます。「アプリケーション」ウィンドウで、JSFページを右クリックして「リファクタ」→「移動」を選択し、ページを別のパッケージに移動します。JSFページを別のパッケージに移動すると、次のものが更新されます。
ページとそのパッケージを参照するfaces-config.xml
ファイル
ページに関連付けられるビューを含むADFタスク・フロー
ページへのDataBindings.cpx
マッピング
リファクタできるpagedef.xml
バインディング・オブジェクトには、バインディングと実行可能ファイルが含まれます。詳細は、17.7項「ページ定義ファイルでの作業」を参照してください。
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。詳細は、43.1項「Fusion Webアプリケーションのリファクタについて」を参照してください。
JDeveloperで、リファクタするオブジェクトを含むアプリケーションを開きます。
pagedef.xmlバインディング・オブジェクトをリファクタするには:
「アプリケーション」ウィンドウで、ADFフォームまたは選択リストなどのバインド・オブジェクトを追加したページ・ノードを選択します。
ページ・ノードを右クリックして、「ページ定義に移動」を選択します。
ページにページ定義が存在しない場合は、「ページ定義の作成」ダイアログが表示されます。「OK」をクリックすると、そのページのページ定義が作成されます。
概要エディタで、「バインディングと実行可能ファイル」タブをクリックします。
図43-1に示すように、ページで定義されているリスト・バインディングやイテレータ・バインディングなどのデータ・バインディングが、「バインディングと実行可能ファイル」の下に表示されます。
「構造」ウィンドウで、データ・バインディングまたは実行可能ファイルを右クリックして「リファクタ」を選択し、「名前の変更」や「削除」などのリファクタ・オプションを選択します。
バインディング、実行可能ファイルおよびデータ・コントロールの間の使用方法を表示するには、バインディングや実行可能ファイルを右クリックして、「使用方法の検索」を選択します。
ADFビジネス・コンポーネントには、ビュー・オブジェクト、エンティティ・オブジェクトなどのオブジェクトが含まれます。表43-1で、ADFビジネス・コンポーネントのリファクタのサポートについて説明します。
表43-1 「ADFビジネス・コンポーネントのリファクタ」
アクション | 結果 |
---|---|
移動 |
オブジェクトを異なるパッケージまたはディレクトリへ移動し、すべての参照を更新する。 |
削除 |
JDeveloperでオブジェクト上のすべての依存性が表示され、強制削除が許可される。この時点ではアプリケーションが機能しないことがある。ブレーク中の参照を解決しなければならないことがある。 |
名前の変更 |
ADFビジネス・コンポーネント・オブジェクトは、XMLファイルによって定義される。このXMLファイルのファイル名はオブジェクト名と同一である。たとえば、 たとえば、あるエンティティの名前( |
使用方法の検索 |
JDeveloperによってオブジェクトのすべての依存性が表示されます。 |
注意: 抽象レイヤーを越えてリファクタすることはありません。たとえば、 |
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。詳細は、43.1項「Fusion Webアプリケーションのリファクタについて」を参照してください。
JDeveloperで、リファクタするオブジェクトを含むアプリケーションを開きます。
ADFビジネス・コンポーネント・オブジェクトをリファクタするには:
「アプリケーション」ウィンドウで、プロジェクトを開き、「アプリケーション・ソース」ノードを開き、次にリファクタするオブジェクトを含むパッケージを開きます。
オブジェクトを右クリックして、「リファクタ」およびリファクタ・オプションを選択します。
オブジェクトの名前を変更するには、「名前の変更」を選択します。
「名前の変更」ダイアログにオブジェクトの現在の名前が表示されます。新しいオブジェクト名を入力し、「OK」をクリックしてリファクタを続行するか、「取消」をクリックして取り消します。
オプションで、「プレビュー」を選択して「OK」をクリックし、「ログ」ウィンドウに使用方法を表示できます。ここからリファクタを続行したり、取り消すことができます。「ログ」ウィンドウで使用方法をクリックすると、使用方法を含むファイルがソース・エディタで開き、含まれている行が強調表示されます。
オブジェクトの場所を変更するには、「移動」を選択します。
「移動」ダイアログにオブジェクトの現在の場所が表示されます。新しいパッケージ名を入力するか、「参照」をクリックしてそのパッケージに移動します。「OK」をクリックしてリファクタを続行するか、「取消」をクリックして取り消します。
オブジェクトを削除するには、「削除」を選択します。
「削除の確認」ダイアログに、オブジェクトの名前と使用方法の検索が表示されます。「使用方法の表示」をクリックして、オブジェクトの使用場所を表示します。「はい」をクリックしてリファクタを続行するか、「いいえ」をクリックして取り消します。「プレビュー」をクリックして、「ログ」ウィンドウに結果を表示します。ここからリファクタを続行したり、取り消すことができます。「ログ」ウィンドウで使用方法をクリックすると、使用方法を含むファイルがソース・エディタで開き、含まれている行が強調表示されます。
デフォルトでは、JDeveloperが現在のアプリケーション内でオブジェクトの使用方法を検索します。検索の範囲を変更するには、「次で使用方法の検索中」ドロップダウン・リストから選択するか、「ワーキング・セットの管理」アイコンをクリックします。
表43-1で、ADFビジネス・コンポーネントのエンティティ・オブジェクトおよびビュー・オブジェクトの属性のリファクタのサポートについて説明します。
表43-2 属性のリファクタ
アクション | 結果 |
---|---|
移動 |
サポートされない。 |
削除 |
JDeveloperで属性上のすべての依存性が表示され、強制削除が許可されます。この時点ではアプリケーションが機能しないことがある。ブレーク中の参照を解決しなければならないことがある。 |
名前の変更 |
属性は、エンティティ・オブジェクトやビュー・オブジェクト内で表現されるデータ要素を共有する(詳細は4.1項「エンティティ・オブジェクトについて」を参照)。属性の名前を変更すると、属性への参照が更新される。名前を変更すると、 属性の名前を変更しても、それが表すデータは変更されず、基礎となる表の列名も変更されない。 |
使用方法の検索 |
JDeveloperによって属性のすべての依存性が表示されます。 |
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。詳細は、43.1項「Fusion Webアプリケーションのリファクタについて」を参照してください。
JDeveloperで、リファクタする属性を含むアプリケーションを開きます。
属性をリファクタするには:
「アプリケーション」ウィンドウで、リファクタする属性を含むエンティティ・オブジェクトまたはビュー・オブジェクトをダブルクリックします。
概要エディタで、「属性」ナビゲーション・タブをクリックします。
「名前」列で、属性を右クリックしてリファクタのオプションを選択します。
属性の名前を変更するには、「名前の変更」を選択します。
「名前の変更」ダイアログに属性の現在の名前が表示されます。新しい属性名を入力し、「OK」をクリックしてリファクタを続行するか、「取消」をクリックして取り消します。
オプションで、「プレビュー」を選択して「OK」をクリックし、「ログ」ウィンドウに使用方法を表示できます。ここからリファクタを続行したり、取り消すことができます。
属性の使用場所を表示するには、「使用方法の検索」を選択します。
ログ・ウィンドウに、属性の使用方法が表示されます。「ログ」ウィンドウで使用方法をクリックすると、使用方法を含むファイルがソース・エディタで開き、含まれている行が強調表示されます。
属性を削除するには、「削除」を選択します。
「削除の確認」ダイアログで、「使用方法の表示」をクリックして属性の使用場所を表示します。「はい」をクリックしてリファクタを続行するか、「いいえ」をクリックして取り消します。「プレビュー」をクリックして、「ログ」ウィンドウに結果を表示します。ここからリファクタを続行したり、取り消すことができます。
属性のタイプを変更するには、「タイプの変更」を選択します。
「タイプの変更」ダイアログで、「タイプ」ドロップダウン・リストから新しいタイプを選択するか、「参照」をクリックしてタイプを見つけます。「OK」をクリックしてリファクタを続行するか、「取消」をクリックして取り消します。
オプションで、「プレビュー」を選択して「OK」をクリックし、「ログ」ウィンドウに使用方法を表示できます。ここからリファクタを続行したり、取り消すことができます。
名前付き要素は、Name
属性によって参照できるXMLスキーマの任意の要素です。名前付き要素は、オブジェクトや属性ではありません。表43-3で、XMLスキーマの名前付き要素のリファクタのサポートについて説明します。
表43-3 名前付き要素のリファクタ
アクション | 結果 |
---|---|
移動 |
サポートされない。 |
削除 |
サポートされない。 |
名前の変更 |
名前付き要素の定義に関する1つの例外は、設計時の要素 |
使用方法の検索 |
JDeveloperによって名前付き要素のすべての依存性が表示されます。 |
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。詳細は、43.1項「Fusion Webアプリケーションのリファクタについて」を参照してください。
JDeveloperで、リファクタする名前付き要素を含むアプリケーションを開きます。
名前付き要素をリファクタするには:
「アプリケーション」ウィンドウで、リファクタする名前付き要素を含むエンティティ・オブジェクトまたはビュー・オブジェクトをダブルクリックします。
エディタ・ウィンドウで、「ソース」タブをクリックして、検索またはスクロールして名前付き要素を見つけます。
名前付き要素は、ソース・コードでName="<element>"
などのように示されます。
<Key Name="PersonsAffContactChk">
名前付き要素は、オブジェクトや属性ではありません。
リファクタする名前付き要素を右クリックして、「リファクタ」およびリファクタ・オプションを選択します。
要素の名前を変更するには、「名前の変更」を選択します。
「名前の変更」ダイアログに要素の現在の名前が表示されます。新しい要素名を入力し、「OK」をクリックしてリファクタを続行するか、「取消」をクリックして取り消します。
オプションで、「プレビュー」を選択して「OK」をクリックし、「ログ」ウィンドウに使用方法を表示できます。ここからリファクタを続行したり、取り消すことができます。
要素を削除するには、「削除」を選択します。
「削除の確認」ダイアログで、「使用方法の表示」をクリックして要素の使用場所を表示します。「はい」をクリックしてリファクタを続行するか、「いいえ」をクリックして取り消します。「プレビュー」をクリックして、「ログ」ウィンドウに結果を表示します。ここからリファクタを続行したり、取り消すことができます。
詳細は、20.6項「新規タスク・フローおよびタスク・フロー・テンプレート作成のためのリファクタ」を参照してください。
DataBindings.cpx
ファイルは、アプリケーション全体のOracle ADFバインディング・コンテキストを定義し、Oracle ADFバインディング・オブジェクトが実行時に作成される元となるメタデータを提供します(詳細はA.7.1項「DataBindings.cpxの構文」を参照)。このファイルは、すべての.cpx
、.dcx
、.jpx
、and .xcfg
ファイルを短時間で検索するために使用されるレジストリで、それ自身もメタデータのレジストリです。
DataBindings.cpx
ファイルの名前を新しい名前に変更して、たとえばDataBindingsNew.cpx
にすると、adfm.xml
ファイルにその変更が追加されます。
例43-1に、DataBindings.cpx
がDataBindingsNew.cpx
にリファクタされた後のadfm.xml
ファイルの内容を示します。
例43-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>
さらに、アプリケーションが正しいバインディング・ファイルにアクセスできるように、ID値が例43-2と同じようなIDに変更されます。
表43-4、JDeveloperでのリファクタのサポートに関する制限を要約して示します。
表43-4 リファクタの制限
領域 | 制限 |
---|---|
データベース |
ADFビジネス・コンポーネント・オブジェクトで使用されるデータベース・アーティファクトの名前を変更した場合、オブジェクトを更新する必要がある。このタイプのリファクタは、現在サポートされていない。 |
サービス・インタフェース |
サービス・インタフェースによって、2つの異なるソフトウェアの間の規定が定義されます。たとえば、ADFビジネス・コンポーネントのサービス・インタフェースは、ビュー・レイヤーとモデル・レイヤーへのビジネス・コンポーネントの公開に対応します。サービス・インタフェースの名前を変更すると競合が発生する可能性があります。アプリケーションを開発する際は、サービス・インタフェースを削除してからオブジェクトをリファクタし、その後でサービス・インタフェースを再生成することを検討してください。また、サービス・インタフェースで定義される検索操作が、バインド変数を指定するビュー基準に基づいている場合は、基礎となるビュー基準のバインド変数の数または順序を変更すると、サービス・インタフェースを再生成する必要があります。 詳細は、第15章「サービス対応アプリケーション・モジュールの統合」を参照してください。 |
Javaリテラル参照 |
ADFビジネス・コンポーネントによって生成されるJavaコードは、XMLメタデータへのリテラル参照を持つ。このリテラル参照は、リファクタ操作の際に更新される。生成された(型保証の)メソッドも更新される。リファクタの削除操作はローカルJava変数に対しても使用できる。 ただし、アプリケーション・コードが直接メタデータを参照する場合は、この参照は更新されない。 |
ドメイン |
ドメインの名前の変更や移動が必要な場合は、新しいドメインを作成してから、既存ドメインの使用方法のタイプを変更します。たとえば、ドメイン名を |
セキュリティ |
ポリシー・ストアのセキュリティ・ポリシーは、エンティティ・オブジェクト、属性、ページまたはタスク・フローの名前を参照することがあります。このポリシー定義は、オブジェクト自体のリファクタに対応して更新されません。 |
リソース・バンドル |
エンティティ・オブジェクト定義は、作成した1つ以上の任意のリソース・バンドル・ファイル( |
|
ADFビジネス・コンポーネント・プロジェクト構成ファイル( JDeveloperの前のバージョンでは、ADFビジネス・コンポーネント・プロジェクト構成 |
ADFビジネス・コンポーネント・プロジェクト構成ファイル(.jpx
)のリファクタはサポートされていませんが、この名前または場所を変更して、プロジェクトの内容をADFライブラリとして共有する際の競合を回避する必要がある場合があります。.jpx
ファイルにはJDeveloperが設計時に使用して、ADFビジネス・コンポーネントを使ったデータ・モデル・プロジェクトの作成を可能にするための構成情報が含まれます。このファイルをリファクタする必要がある場合は、手動で実行してください。
始める前に:
リファクタに使用できるオプションに関する知識が役立つ場合があります。詳細は、43.1項「Fusion Webアプリケーションのリファクタについて」を参照してください。
ADFビジネス・コンポーネント・プロジェクト構成ファイル (.jpx)を手動で移動するには:
.jpx
ファイルを新しいソース・ツリーの場所に移動します。
たとえば、Model.jpx
ファイルをsrc/Model.jpx
からsrc/newpackage/name/here/Model.jpx
に移動できます。
.jpx
ファイルの内容を変更します。ルート要素JboProject
のPackageName
属性は、正しい値を持つ必要があります。
たとえば、PackageName="newpackage.name.here"
と指定できます。
.jpx
ファイルで参照されている要素を含むすべてのcommon/bc4j.xcfg
ファイルで、jbo.project
属性を変更して、新しいパッケージ名を含むようにします。
例:
<AppModuleConfig name="ScottDeptAMLocal" ApplicationName="newpackage.name.here.ScottDeptAM" DeployPlatform="LOCAL" JDBCName="scottdb" jbo.project="newpackage.name.here.Model">
JDeveloperプロジェクト・ファイル(.jpr
ファイル)の内容を変更します。
新しい.jpx
パッケージの場所を設定します。後からプロジェクト・プロパティでデフォルト・パッケージを変更する場合、.jpx
ファイルが原因となって再びNotFound
エラーが発生します。
例:
<value n="defaultPackage" v="newpackage.name.here"/>
.jpx
ファイルの古い場所への参照を含むownerMap
で、いずれかのownerURL
要素を修正します。
例:
<url n="ownerURL" path="src/newpackage/name/here/Model.jpx"/>