この章では、TopLinkを統合開発環境(IDE)で使用する方法について説明します。
この章の内容は次のとおりです。
ここで説明する開発環境に加え、TopLinkはあらゆるJava EE開発環境およびJava EE開発プロセスで使用できます。
この項では、TopLinkをOracle JDeveloper用に構成する方法について説明します。Oracle JDeveloperは、E-BusinessアプリケーションとWebサービスの開発、デバッグおよびデプロイをエンドツーエンドでサポートするJava EE開発環境です。
Oracle JDeveloper 10g以降、標準のOracle JDeveloperインストールにはTopLinkエディタが埋め込まれています。詳細は、Oracle JDeveloperのドキュメントを参照してください。
TopLinkをOracle JDeveloper 9.0.4以下で使用するには、次の手順に従って、TopLink JARファイルをOracle JDeveloperプロジェクトに追加します。
システム・ナビゲータ・ウィンドウでOracle JDeveloperプロジェクトを選択します。
「プロジェクト」→「プロジェクトの設定」を選択します。プロジェクトの設定ウィンドウが表示されます。
「構成」→「開発」→「ライブラリ」を選択します。事前定義ライブラリとユーザー定義ライブラリのリストが表示されます。
「新規」をクリックして、TopLinkの.jar
ファイルを含める新規ライブラリを作成します。「新規ライブラリの作成」ダイアログ・ボックスが表示されます。
新規ライブラリの名前(たとえば「TopLink」)を入力します。「場所」のデフォルト選択肢が「ユーザー・ライブラリ」のままであることを確認します。
クラスパスを編集してTopLinkの.jar
ファイルを追加するには、「編集」をクリックします。
次の行をクラスパスの先頭に追加します。
<TOPLINK_HOME>\jlib\toplink.jar <TOPLINK_HOME>\modules\com.bea.core.antlr.runtime_2.7.7.jar <ORACLE_HOME>\modules\xmlparserv2.jar <ORACLE_HOME>\modules\xml.jar
「OK」をクリックします。プロジェクトの設定ウィンドウで、「OK」をクリックします。
既存のユーザー定義のTopLinkライブラリの使用
ユーザー・ライブラリは、作成後、他のプロジェクトで再度参照できます。「プロジェクトの設定」のライブラリ・ウィンドウを再表示し、TopLinkを使用するプロジェクトにTopLinkライブラリを追加します。
TopLink Workbenchをソース制御管理(SCM)システムとともに使用すると、エンタープライズ・レベルのチームによる開発が容易になります(7.2.1項「ソース制御管理システムの使用方法」を参照)。小規模な開発チームの場合は、変更をXMLファイル内で管理できます(7.2.3項「プロジェクト・オブジェクトの共有方法」を参照)。
TopLink Workbenchプロジェクトをチーム環境で使用する場合は、自分が行った変更を他の開発者が行った変更と同期化する必要があります。詳細は、7.2.2項「ファイルのマージ方法」を参照してください。
ファイルに基づいたエンタープライズ・レベルのソース制御管理システムを使用してJavaソース・ファイルを管理する場合は、同じシステムをTopLink Workbenchプロジェクト・ファイルで使用できます。これらのプロジェクト・ファイルは、TopLink Workbenchで管理され、XMLファイル形式で書き込まれます。
ソース制御システム用のチェック・インおよびチェック・アウト・メカニズムにより、マルチユーザー環境でのソース(XMLソースおよびTopLink Workbenchプロジェクト・ファイル)の管理方法が定義されます。
TopLink Workbenchプロジェクト・ファイルのチェック・アウトおよびチェック・イン
実際の開発プロセスはSCMツールによって異なりますが、一般的なプロセスには次の手順が含まれます。
ソース管理システムから取得するファイルを(SCMシステムに基づいて)決定します。
TopLink Workbenchを使用してプロジェクトを編集します。
編集したプロジェクトを保存します。TopLink Workbenchで「読取り専用ファイル」ダイアログ・ボックスが表示される場合は、これらのファイルを書き留めておきます。これらのファイルはロック解除する必要があり、マージも必要な場合があります。詳細は、7.2.5項「ロックされたファイルの使用方法」を参照してください。
必要なプロジェクト・ファイルをマージします。詳細は、7.2.2項「ファイルのマージ方法」を参照してください。
変更したファイルをチェック・インした後で、このTopLink Workbenchプロジェクトに対して追加または変更されたすべてのファイルをリポジトリから取得します。
アプリケーション開発で最も難しい点は、同じファイルを同時に編集した2人以上の開発チーム・メンバーによる変更をマージすることです。自分の変更をチェック・インすると、マージが必要な状況が発生します。ファイル比較ツールを使用して、プロジェクトでマージされた部分を特定します。編集するファイルは、次のようにマージのタイプによって異なります。
例7-1および例7-2に、マージ・アウトというマージ方法を示します。
プロジェクト・ファイルには、プロジェクト内のオブジェクトへの参照が含まれています。一般に、プロジェクト<projectName>
.mwp
には、次の要素が含まれています。
データベース情報: <database>
データベース表: <tables>
ディスクリプタ: <descriptors>
リポジトリ: <repository>
クラス: <classpath-entries>
.mwp
ファイルのこれらの部分が変更されるのは、一般に、プロジェクト要素を追加、削除または名前変更した場合です。
通常は、ディスクリプタ、表またはクラスを追加あるいは削除している間に、別の開発者が同じプロジェクトのディスクリプタ、表またはクラスを追加あるいは削除してプロジェクトをチェック・インした場合に、プロジェクト・ファイルのマージが必要になります。プロジェクトの.mwp
ファイルをマージするには、次の手順を実行します。
リポジトリ内の<projectName>
.mwp
ファイルとローカル・コピーのファイル比較を行います。ファイル比較により、所有者(つまり、<database>
、<descriptors>
または<repository>
)内でプロジェクト要素が追加または削除されたことが表示されます。
XMLスクリプトをローカル<projectName>
.mwp
ファイル(対応する所有要素内のファイル)に挿入、またはこのファイルから削除します。この結果、コード・リポジトリ内の現在のコードに従ってローカル・コードが更新されます。
更新されたことがソース制御システムにより示されたすべてのファイルを取得します。
これで、ローカル・ソースがリポジトリに一致します。
例7-1 プロジェクトのマージ
TopLink Workbenchプロジェクトで作業している間に、別の開発者が同じプロジェクトで新しいEmployeeクラス・ディスクリプタをcom.demo
パッケージに追加してチェック・インしました。新たに変更されたプロジェクトに自分の作業をマージするには、次の手順に従います。
<projectName>
.mwp
ファイルでファイル比較を行い、ローカル・ファイルとリポジトリ内のファイルの差異を特定します。SCMシステムによっては、ファイルがマージ・ステータスにあることが表示されます。
ファイル比較により、<package-descriptor>
タグと、このタグ内の<name>
要素が追加されたことが表示されます。
<package-descriptor>
<name>com.demo.Employee.ClassDescriptor</name>
</package-descriptor>
このXMLをローカル<projectName>
.mwp
ファイル(<descriptors>
要素内のファイル)に挿入し、このファイルをソース・リポジトリ内の現在のファイルに基づいて更新します。
新規または更新されたすべてのファイルをソース制御システムから取得します。これには、新たに追加されたEmployeeクラス・ディスクリプタも含まれます。
変更したファイルをチェック・インします。
複数の開発者が既存の同じ表、ディスクリプタまたはクラス・ファイルを同時に変更すると、次のファイルをマージする必要が生じます。
表: <tableName>
.xml
(各表に1つ)
ディスクリプタ: <descriptorName.type>
.xml
(各ディスクリプタに1つ)
クラス: <className>
.xml
(各クラスに1つ)
これらのファイル内のいずれかの内容を変更した場合(ディスクリプタへのマッピングの追加、クラスへの属性の追加、表内のフィールド参照の変更など)、プロジェクトの保存時にこれらのファイルはTopLink Workbenchにより変更されます。
ディスクリプタのマッピングを変更している間に別の開発者が同じ表、ディスクリプタまたはクラスの別の属性を変更した場合、プロジェクトのマージが必要になります。プロジェクトをマージするには、次の手順を実行します。
マージ・ステータスにある特定の.xml
ファイル(つまり、表、ディスクリプタまたはクラス)でファイル比較を行います。ファイル比較により、XML要素が追加または削除されたことが表示されます。
XMLスクリプトをローカル.xml
ファイルに挿入、またはこのファイルから削除し、このファイルをソース・リポジトリ内の現在のファイルに基づいて更新します。
例7-2 ファイルのマージ
Employeeクラス・ディスクリプタのマッピングを変更している間に、別の開発者が別のfirstNameマッピングを同じディスクリプタに追加してチェック・インしました。新たに変更されたプロジェクトに自分の作業をマージするには、次の手順を実行します。
<projectRoot>
/Descriptor/
ディレクトリにあるマージ・ステータスのcom.demo.Employee.ClassDescriptor.xml
ファイルでファイル比較を行います。
ファイル比較により、<mapping>
タグと、このタグに要素が追加されたことが表示されます。
<mapping>
<uses-method-accessing>false</uses-method-accessing>
<inherited>false</inherited>
<read-only>false</read-only>
<instance-variable-name>firstName</instance-variable-name>
<default-field-names>
<default-field-name>direct field=</default-field-name>
</default-field-names>
<field-handle>
<field-handle>
<table>EMPLOYEE</table>
<field-name>F_NAME</field-name>
</field-handle>
</field-handle>
<mapping-class>MWDirectToFieldMapping </mapping-class>
</mapping>
このXMLブロックをローカルのcom.demo.Employee.ClassDescriptor.xml
ファイル(既存の<mapping>
要素内のファイル)に挿入し、このファイルをソース・リポジトリ内の現在のファイルに基づいて更新します。
欠落していることがソース制御システムにより示されているすべての新規ファイルを取得します。これらのファイル(表やディスクリプタなど)は新しいマッピングで参照できるようになります。
変更したファイルをチェック・インします。
表またはディスクリプタ・ファイルをターゲット・プロジェクト内の適切なディレクトリにコピーすることで、プロジェクト・オブジェクトを共有することもできます。
ファイルをコピーした後、<projectName>
.mwp
ファイル内の適切な場所に表、ディスクリプタまたはクラスへの参照を挿入します。プロジェクト・ファイル内に含まれているすべての参照は、プロジェクト内の既存オブジェクトを参照する必要があります。
チーム環境で作業している場合は、ejb-jar.xml
ファイルを.xml
プロジェクト・ファイルと同様に管理します。EJBプロジェクトでの作業時は、必要に応じて、TopLink Workbenchによりejb-jar.xml
ファイルが編集および更新されます。
バージョン制御システムを使用する場合は、同じチェック・インおよびチェック・アウト手順を実行します。マージが必要な場合には、ファイル比較ツールを使用して、追加または削除された要素を特定します。必要に応じてファイルを変更し、ファイルをチェック・インして自分の作業に対するバージョン制御を実行します。
チーム環境で作業している場合は、ファイルをリポジトリから取得する際、ソース制御システムによってファイルがロックされていることがあります。ロックされたファイルをTopLink Workbenchで保存しようとすると、「バージョン制御アシスタンス」ダイアログ・ボックスが表示され、ロックされたファイルが表示されます。
次の方法のいずれかを選択してプロジェクトを保存します。
ソース制御システムを使用してファイルをロック解除した後、「保存」をクリックします。
「別名保存」をクリックしてプロジェクトを新しい場所に保存します。
詳細は、116.2.2項「プロジェクトの保存方法」を参照してください。