Developer Tools
JDeveloper
複数のアプリケーションにわたるOracle ADF開発のSubversionによる管理Oracle JDeveloperのHow toドキュメント
はじめにOracle Application Development Framework(Oracle ADF)開発は、さまざまな方法で実施できます。 一部の組織では、多くのプロジェクトで構成される1つのOracle ADFアプリケーションの使用が望まれており、 ほかの組織では、開発を機能分野ごとに分けて複数のアプリケーションに分散することが望まれています。 また、開発環境の管理も、さまざまな方法で実行できます。 決定する必要がある多くの事項の中には、コードを格納してバージョニングする方法、およびチーム間でADFライブラリを共有する方法があります。 これを実現する手法は数多くありますが、もっとも一般的なのはMavenなどのツールを使用することです。Oracle JDeveloperのResource Catalogを使用して共有リソースにアクセスするか、またはソース・コード管理システムによって提供される機能を活用します。 このドキュメントでは後者の手法、とくにSubversion(SVN)を使用してチームと複数のアプリケーションとの間でADFライ ブラリなどの共通コンポーネントのバージョニングおよび共有の管理をおこなう手順を提案します。 このドキュメントでは共有コンポーネントの最適な配置を実現する方法をそのまま説明しているため、MavenまたはResource Catalogの使用については対象外となっていますが、 後日、別のドキュメントで取り上げる予定になっています。 Subversionの活用このドキュメントでは、次のようなチーム開発を実施するための作業手順を提案します。
この手順は、機能分野ごとに分けられたチームがいくつかの共通コンポーネントを使用して作業をおこなうためのものです。 通常は、1つのアプリケーションを使用して再利用可能なADFビジネス・サービスを開発します。 このアプリケーションは、再利用可能なエンティティ・オブジェクトを保持します。 さらに、アプリケーションは、再利用可能なビュー・オブジェクトも保持できます。 UIの開発は、ADFライブラリを介して共通のビジネス・サービスにアクセスする複数のアプリケーションを使用して、機能分野ごとに分散されます。 また、各UIアプリケーションをADFライブラリとして公開すれば、共通コンポーネント(アンバウンド・タスク・フローなど)を共有できます。 アプリケーションの設定開発は、複数のアプリケーションに分散されます。 このドキュメントでは、アプリケーションのネーミング規則は提案せず汎用の名前を使用するので、名前は必要に応じてカスタマイズする必要があります。 共通コンポーネント・アプリケーション通常、このアプリケーションでは、ライブラリを介して共有されるビジネス・コンポーネント、またはアプリケーション間で共有できるイン フラストラクチャ・コンポーネントを保持します。 コンポーネントには、以下が含まれます。
このアプリケーションに対する書込みアクセスは、共有コンポーネントとライブラリを使用して機能するアプリケーションに限定されます。
チーム開発アプリケーション各アプリケーションは、開発の1つの機能分野に対応しています。 アプリケーションは、SVNリポジトリにある任意のADFライブラリを直接共有するように設定する必要があります。 開発者は、開発のためにアプリケーションの'作業用コピー'をチェックアウトし、通常の方法で更新してSVNリポジトリにコミットします。 配置されたADFライブラリは、SVNリポジトリから直接共有されます。 これによって、アプリケーションで作業をするすべての開発者が常に正しいバージョンのライブラリを使用することが保証されます。 これは、ライブラリを共有ファイル・システムに保存してResource Paletteからそれにアクセスする方法の代わりに使用される手段です。 Resource Paletteの使用方法は、このドキュメントの対象外です。 commonModelEOライブラリの利用に加えて、各チームの開発アプリケーションは、ほかのチームの開発アプリケーションからの ADFライブラリを提供および利用することがあります。 通常、このような状況になるのは、異なる機能分野の間でバウンド・タスク・フローが共有される場合です。 バウンド・タスク・フローの説明は、このドキュメントの対象外です。 バウンド・タスク・フローとADFライブラリの使用方法については、OTNで入手可能な『 Oracle Application Development Framework Fusion開発者ガイド』を参照してください。 マスター・デプロイメント・アプリケーションこのアプリケーションは、すべての共通コンポーネント・アプリケーションとチーム開発アプリケーションを集めて1つのフル開発バージョ ンにまとめます。 通常、フル開発バージョンはそれ自体で機能分野別の開発を可能にするだけでなく、ほかのすべての共有コンポーネントも利用することによって、テストおよび リリースを目的とした完全なアプリケーションを提供します。 SVNの設定リポジトリの構成SVNにおける開発フォルダ構造の設定には、多くの方法があります。 このドキュメントでは、複数のアプリケーションを使用する場合の1つの方法を提案します。
タグによるライブラリ共有Subversionでは、タグ・ディレクトリを使用してマイルストーン(コードの各バージョン)を格納します。 タグ・ディレクトリは、特定のリビジョン(時点)における開発の単純なコピー*です。 タグ・ディレクトリの作成とアクセスの管理は、SVNリポジトリの管理者に任されています。 *SVNでは、ディレクトリのブランチまたはタグを作成することを'コピー'と呼びます。 ただし、これは単にポインタとして使用されているだけで高度な操作ではありません。
Versioning Navigatorによるタグの作成
バージョニングされたディレクトリのファイルURLへのアクセス
SVNリポジトリからのプロジェクトにライブラリを追加するには、 svn:externalsプロ パティを使用します。 プロパティの設定とSVNリポジトリへのコミットが完了したあと、アプリケーションのユーザーがSVNリポジトリからの作業用コピーをチェックアウトまた は更新すると、すべてのユーザーはそのライブラリを取得することになります。 共有の設定は、アプリケーション開発のできるだけ早い段階で実施することを推奨します。 アプリケーションの最初のバージョニングが完了すると、利用するライブラリをsvn:externalsプロパティを使用して取得できるようになります。 チーム開発アプリケーションによるADFライブラリの共有開発中にアプリケーション間でADFライブラリまたはそのほかの共有コンポーネントを追加するために、SVNからライブラリに直接アク セスすることを推奨します。 これによって、開発段階で各バージョンをリリースする仕組みを管理できます。 これは、開発を共有コンポーネントと非共有コンポーネントの両方に対して同時に実施する場合はとくに重要となる可能性があります。 SVNリポジトリからのプロジェクトにコードを追加するには、 svn:externalsプロパ ティを使用します。 アプリケーションのプロパティ設定が完了したあとで、アプリケーションのユーザーがSVNリポジトリからの作業用コピーをチェックアウトまたは更新する と、すべてのユーザーはそのライブラリを取得することになります。 共有の設定は、アプリケーション開発のできるだけ早い段階で実施することを推奨します。 アプリケーションの最初のバージョニングが完了すると、利用するライブラリをsvn:externalsプロパティを使用して取得できるようになります。 svn:externalsプロパティの設定最初の手順は、SVNリポジトリ内にあるライブラリが格納されているディレクトリのファイルURLをコピーすることです。 前述した手法を使用します。
SVN Console - Logを使用して、リポジトリ内にプロパティが設定されていることを確認します。 プロジェクトのResources Fileフィールドのソース・パス(.../Team1App/TeamApp1Model)には、共有ライブラリを格納する新しい shared_commonComponentsディレクトリが作成されることに注意してください。 最後に、Update Working Copyを使用して、共有ライブラリをローカルの作業用コピーにコピーします。 共有ライブラリのプロジェクトへのインポートSVNリポジトリからライブラリのコピーを共有しました。次の手順は、ライブラリを使用するプロジェクトを設定することです。 ADFライブラリを使用する場合は、次の手順を実行する必要があります。 ADFライブラリが別のサード・パーティ製ライブラリの場合は、そのライブラリをプロジェクトLibrariesとClasspathに追加するだけで十 分です(これを実行するにはProject Propertiesダイアログを使用しますが、その説明については、このドキュメントの対象外です)。
Business Components用のプロジェクトの設定Oracle ADF Business Components用のプロジェクトがまだ設定されていない場合は、次のいずれかを実行する必要があります。
Business Componentsの共有ADFライブラリのインポートプロジェクトのProject Propertiesダイアログを開いて、ライブラリのコンポーネントを格納します。 Business Componentsの下にある「 Imports」を選択して、 svn:externalsプ ロパティで指定したファイル・システムの場所から commonModelEO.jarを追加します。 これによって、プロジェクトLibrariesにjarファイルを自動的に追加するオプションが提供されます(これは、Librariesと Classpathのプロジェクト・プロパティを調べることで確認できます)。 さらに、Project Source Paths - Resourcesに移動してリソースのパスにディレクトリを追加し、ナビゲータでオブジェクトの読取り専用バージョンを確認します。 ADFライブラリの最新リビジョンへの移行開発中は、任意の共有ADFライブラリの新バージョンが繰り返し配置されます。 この新バージョンをほかのユーザーが取得できるようにする場合、またはそれが何らかのマイルストーン・リリースである場合は、アプリケーションに永続的か つ簡単にアクセスできるようにそのアプリケーションをタグ付けします。 この操作には、次の3つの段階があります。
注: プロジェクトまたはSVNに格納されているサード・パーティ製のライブラリにも、同じ手順が適用されます。
ADFライブラリの最新リビジョンに対する新しいタグの作成Versioning Navigatorを使用して、 CommonComponentsAppの コンテキスト・メニューで「 Branch/Tag」を選択します。
ADFライブラリのタグ付けされた最新バージョンをポイントするようにチーム開発アプリケーションを設定この操作では、以前に設定したsvn:externalsプロパティを変更します。 これは、特定のマイルストーンでユーザーの作業用コピーがマージされて競合が解決している場合に効果的で、新旧のライブラリ・コードの間で競合が発生する 可能性が減少します。 そのあと、更新の対象になっているチーム開発アプリケーションの作業用コピーをチェックアウトします。
チェックアウトした作業用コピーの更新各ユーザーは、SVNリポジトリからの作業用コピーを更新することで、リポジトリから最新のADFライブラリをダウンロードして取得す る必要があります。 さらに、更新されたADFライブラリのプロジェクトへのリロードを確実におこなうために、Application Navigatorでプロジェクトをいったん閉じてから再び開くか、またはOracle JDeveloperをいったん終了してから再び起動します。 |