1. Developer(with Developer ’s Studio)

WebOTX Developer(with Developer ’s Studio)は、次の機能を提供しています。

1.1. 概要

WebOTX Application Server との高い親和性、生産性、保守性を持つ統合開発環境 Developer's Studio をWindows環境に提供します。
NECで開発・強化した、 によって開発を効率化し、開発期間の短縮や生産性の向上を実現します。 また、 を同梱しているので、Developer's Studioをご購入頂くだけでアプリケーションの開発・デバッグ・テスト・運用が可能です。
Developer's Studio は、広く利用されているオープンソースの統合開発環境(IDE)のEclipseをベースとしています。 このため、Developer's Studioは、以下の Eclipse の特長も引き継いでいます。 Eclipse には、Javaの開発環境が同梱されているため、Javaソース用のエディタや、型階層ビュー、 デバッグ用のビューなど、さまざまな機能も盛り込まれています。 また、Javaだけでなく、C,C++,COBOLといったプログラミング言語の開発環境としても開発が進められています。

1.1.1. 構成

Developer's Studioは、次の構成から成り立っています。

1.1.2. WTPプラグインの特長

WTPとは、Eclipse上でのJAVA EEアプリケーション開発を支援するプラグインです。JAVA EEアプリケーションの作成、デプロイ、テスト、デバッグという一連の開発サイクルをEclipse上で行うことができます。
以下のようなJAVA EEアプリケーション開発における基本的な機能をサポートしています。
1.JAVA EEプロジェクトの作成
また、効率的なJAVA EEアプリケーション開発を行うための高度な機能をサポートしています。

Memo
XDocletとは、オープンソースのJavaコード生成エンジンです。JavadocタグにXDocletタグを指定し、AntのXDocletタスクを使って、定型作業のJavaソースや設定ファイルを自動生成します。

1.1.3. TPTPプラグインの特長

TPTP(Test and Performance Tools Platform)とはEclipse上でテストおよびパフォーマンス計測を行うためのプラグインです。
以下のような機能をサポートしています。

1.1.4. アノテーション編集エディタの特長

Developer's Studioのアノテーション編集エディタは、アノテーションを定義するための環境およびツールを提供します。
次の特長があります。

1.1.5. ポータル開発プラグインの特長

Developer's Studioのポートレット開発プラグインは、WebOTX Portal に配備するポートレットを作成するための環境およびツールを提供します。
次の特長があります。

1.1.6. ESB開発プラグインの特長

Developer's StudioのESB開発プラグインは、WebOTX ESB に配備するServiceAssembly を作成するための環境およびツールを提供します。
次の特長があります。

1.1.7. XMLマッピングプラグインの特長

Developer's StudioのXMLマッピングプラグインは、XMLファイルを変換するための XSLT ファイルを作成するための環境およびツールを提供します。
次の特長があります。

1.1.8. テスト用サーバの特長

テスト用サーバはExpress相当の機能を含んでいますが、次の項目がExpressとは異なっています。

1.2. 環境設定

Developer's Studioは、初回起動時にインストールされた環境をチェックし、初期設定を自動的に行います。そのため、手動で行わなければならない初期設定はありませんが、インストールしたマシンの環境によっては、初期設定を見直す必要がある場合があります。そこで、ここではDeveloper's Studioの初回起動時に行っている設定について紹介します。初回起動直後に初期設定が正常に行われているか確認するためにお役立てください。

1.2.1. Developer's Studioの起動設定

Developer's Studioの起動方法と起動時のオプションについて記述します。

1.2.1.1. 「スタート」メニューからの起動

Developer's Studioの起動は、[スタート] > [すべてのプログラム] > [WebOTX] > [Developer's Studio] を選択。
起動時のオプションを指定する場合には、上記メニューの右クリック プロパティを選択。


図1.2.1.1-1

上図のリンク先の値を変更します。
例:VM引数の追加
"C:\WebOTX\Studio\eclipse.exe" -vm "C:\Program Files\Java\jdk1.6.0_24\\bin\javaw.exe" -data workspace -vmargs -mx768m

1.2.1.2. workspaceの切り替え

プロジェクトを保存している場所をworkspaceと呼び、workspaceを切り替えることで別のハードディスクの記憶領域で作業を行います。
起動時の"-data"オプションを変更することで、workspaceを切り替えることができます。
例:
"C:\WebOTX\Studio\eclipse.exe" -vm "C:\Program Files\Java\jdk1.6.0_24\\bin\javaw.exe" -data "C:\TMP\workspace"

1.2.2. JREの設定

メニュー [ウィンドウ] > [設定] で表示されるダイアログで次の設定を確認してください。 Java SE 5.0 または Java SE 6.0 の SDKがリストに表示されているとともに、チェックが入っていることを確認してください。それ以外のバージョン、あるいはRuntimeのみでの動作はサポートしていません。


図1.2.2-1

複数のJava SEが混在する場合、有効にしたいものをONにします。また、意図したJava SEがリストに表示されていない場合、[追加...] をクリックし、Java SEのインストールフォルダを指定してください。

Caution
Developer's StudioはJDK(Java Development Kit))のJavaソースコンパイル機能を利用しているため、ここでJRE(Java Runtime Environment)を指定しても動作しません。

1.2.3. XDocletの設定

1.2.3.1. XDoclet のインストール

XDoclet 1.2.3 の物件、 <WebOTX インストールディレクトリ>\Studio\xdoclet-bin-1.2.3.zip が存在することを確認してください。
xdoclet-bin-1.2.3.zip を解凍して配置します。以下の説明では、解凍先を「C:\xdoclet-1.2.3」としています。

1.2.3.2. XDoclet の設定

Developer's Studio を起動します。
メニューから [ウィンドウ] > [設定] を選択して、[設定]画面を開きます。左ペインから [Java EE] > [XDoclet] を選択します。
XDoclet ホームにXDocletを解凍したディレクトリを指定し、バージョンに 1.2.3 を設定します。


図1.2.3.2-1

1.2.3.3. Internetの設定

インターネットに接続する場合、3種類のプロバイダーを指定することができます。 マシンのインターネット環境に合わせて、プロバイダーを設定し、利用してください。
[設定]画面の左ペインから [一般] > [ネットワーク接続] を選択します。
[アクティブ・プロバイダー]で指定されているプロバイダーがアクティブなインターネット設定として利用されます。

直接
プロキシーなどを経由せず、インターネットに直接接続されている場合に利用します。特に設定は不要です。

手操作
プロキシー経由でインターネットに接続されている場合に利用します。プロキシーを設定する必要があります。
[HTTP] を選択し、[編集]ボタンをクリックします。[ホスト]にプロキシーのホスト名を入力します。 [ポート]にポート番号を入力します。
設定内容に関する不明点は、ネットワーク管理者にお問い合わせください。
設定を行ったら[OK]ボタンを押してください。


図1.2.3.3-1


ネイティブ
開発環境で検出されたインターネット接続設定をそのまま利用します。特に設定は不要です。

1.2.4. TPTPの設定

1.2.4.1. Agent Controller のインストール・設定および起動

インストール時に「テスト&パフォーマンスツール」 選択した場合、<WebOTXインストールディレクトリ>\Studio 配下に Agent Controller の アーカイブがインストールされますので、任意の場所に解凍します。
環境変数 AGENT_HOMEを作成して、 Agent Controller のアーカイブを解凍したディレクトリを指定します。
ここでは、C:\AgentController4.7.2 にインストールしています。
環境変数PATHに、%AGENT_HOME%\binを追加します。
コマンドプロンプトから%AGENT_HOME%\binに移動して、SetConfig と入力して Agent Controller の設定を行います。


図1.2.4.1-1

SetConfig.bat で設定する内容は、特に理由がない限り既定値でかまいませんが、
Network Access Modeについては「LOCAL」から「ALL」に変更してください。


図1.2.4.1-2

%AGENT_HOME%\binmanageservice.exe で Agent Controller を Windows のサービスに登録します。
 例えばエージェントコントローラの解凍先が"C:\AgentController4.7.2"で、サービス名を「TPTP Agent Controller」
 と指定したい場合は以下のようにコマンドを実行します。
C:\AgentController4.7.2\bin> manageservice add "TPTP Agent Controller" "C:\AgentController4.7.2"
また、サービスからの登録解除は以下のコマンドで行えます。
C:\AgentController4.7.2\bin> manageservice remove "TPTP Agent Controller"
サービスに登録したAgent Controllerの起動は以下のように行います。
1.   Windowsスタート・メニューから「コントロールパネル」を選択
2.   「管理ツール」を選択して「サービス」を選択
3.   [サービス]画面で登録したAgent Controllerを選択して、右クリックのポップアップメニューから「開始」、またはメニューバーの「サービスの開始」を選択


図1.2.4.1-3

1.2.5. テスト用サーバの設定

テスト用サーバの初期設定は自動的に行われます。そのため、手動で行わなければならない初期設定はありませんが、インストールしたマシンの環境によっては、初期設定を見直す必要がある場合があります。そこで、ここでは自動的に行っているテスト用サーバの設定について説明します。初期設定が正常に行われているか確認するためにお役立てください。

1.2.5.1. WebOTXランタイムの設定

Web Tools Platform(WTPと呼びます)を利用する場合の、インストール済みサーバランタイムの追加について説明します。
インストール済みサーバランタイムを追加することで、 WebOTXサーバーランタイムのウィザードを用い、それぞれのランタイムの新規作成が可能となります。

Memo
追加は自動的に行われるので、 通常は、以下の操作を行う必要はありません。

以下に、ローカルのアプリケーションサーバーランタイムの新規追加を例として説明します。
ローカルのアプリケーションサーバーランタイムの新規追加:
メニュー [ウィンドウ] > [設定] を選択します。


図1.2.5.1-1

設定画面で、[サーバー] > [ランタイム環境] を選択し、[追加...] をクリックします。


図1.2.5.1-2

新規サーバー・ランタイム環境で、[NEC] > [WebOTX Application Server v8(Local)] を選択して、[次へ] をクリックします。


図1.2.5.1-3

WebOTXサーバーランタイムの新規作成で、[WebOTXサーバのインストールパス] に、WebOTXインストールパスを指定します。


図1.2.5.1-4

表1.2.5.1-1
設定項目
説明
デフォルト値
サーバーランタイム名
他のサーバランタイムと識別が可能な、サーバ名ランタイムの名前を入力してください。 「新規サーバー・ランタイム環境」で、選択したサーバー種類によって決まりますが、 既存のランタイム名と重複する場合、末尾に連番が付加されます。
ランタイムのJRE
使用するランタイムJREを指定します。 メニュー [ウィンドウ] > [設定] > [Java] > [インストール済みのJRE] で設定した、インストール済みのJRE から選択することができます。
WebOTXサーバーのインストールパス
WebOTXサーバーのインストールパスを指定します。 インストール済みのWebOTXパス。
[完了] をクリックします。[サーバー・ランタイム環境]の一覧に、WebOTX Application Server v8(Local)が追加されます。[OK] をクリックします。


図1.2.5.1-5

自動追加の具体例
環境に応じた、インストール済みサーバランタイムの自動追加の具体例について説明します。
ローカルマシンにWebOTX アプリケーション サーバーがインストールされている場合、 WebOTX Developerをインストールすると、以下のランタイムが自動的に追加されます。
  • WebOTX Application Server v8(Local Default)
  • WebOTX Application Server v8(Remote Default)


図1.2.5.1-6

ローカルマシンにWebOTX ESB サーバーがインストールされている場合、WebOTX Developerをインストールすると、以下のランタイムが自動的に追加されます。
  • WebOTX Application Server v8(Local Default)
  • WebOTX Application Server v8(Remote Default)
  • WebOTX ESB v8(Local Default)
  • WebOTX ESB v8(Remote Default)


図1.2.5.1-7

ローカルマシンにWebOTX クライアントがインストールされている場合、 WebOTX Developerをインストールすると、以下のランタイムが自動的に追加されます。
  • WebOTX Application Server v8(Remote Default)
  • WebOTX ESB v8(Remote Default)


図1.2.5.1-8

1.2.5.2. WebOTXサーバーの新規作成

WebOTX Developerでプロジェクトを配備できるWebOTXサーバーについて記述しています。
WebOTX Developerで提供できるWebOTXサーバーは以下の4種類です。
以下の手順により、ローカルのWebOTXアプリケーションサーバーの新規作成を例として説明します。
ローカルのWebOTXアプリケーションサーバーの新規作成:
メニュー [ファイル] > [新規] > [その他...] を選択して、新規画面で、[サーバー] > [サーバー] を選択して、[次へ] をクリックします。


図1.2.5.2-1

新規サーバー画面が表示されます。
[NEC] > [WebOTX Application Server v8(Local)] を選択します(他のサーバーを作成する場合、対応するタイプを選択してください)。

下図のように、[サーバー・ランタイム環境] が存在していない場合、[次へ] をクリックします。


図1.2.5.2-2

Memo
リモートのWebOTXサーバーの新規作成の場合は、「サーバーのホスト名」を指定します。

WebOTXサーバーランタイムの新規作成画面が表示されます。


図1.2.5.2-3

WebOTXサーバーランタイムの新規作成画面で、[WebOTXサーバーのインストールパス] を正しく指定して、[次へ] をクリックします。
WebOTXサーバーの新規作成画面が表示されます。


図1.2.5.2-4

下図のように、[サーバー・ランタイム環境] が存在している場合、[次へ] をクリックします。


図1.2.5.2-5

Memo
リモートのWebOTXサーバーの新規作成の場合は、「サーバーのホスト名」を指定します。

WebOTXサーバーの新規作成画面が表示されます。


図1.2.5.2-6

表1.2.5.2-1
設定項目
説明
デフォルト値
サーバの種別
サーバー種別を表示します。 インストールされているサーバ製品や、Local、Remote により異なります。
詳細は、 [ アプリケーション開発ガイド(共通) > 6. サーバツール > 6.1. サーバ構成の操作 > 6.1.2. サーバ > 6.1.2.1. サーバの新規作成 ] をご覧ください。
サーバーユーザー名 新規サーバーに接続する際のユーザ名です。 admin
サーバーパスワード
新規サーバーに接続する際のパスワードです。 なし
アプリケーショングループ名
アプリケーショングループ名です。 サーバーの種別が、WebOTX Application Server Express V8の場合、指定できません。 なし
プロセスグループ名
 プロセスグループ名です。 サーバーの種別が、WebOTX Application Server Express V8の場合、指定できません。 なし
ユーザードメイン名
新規サーバーで、ユーザが利用できるドメインの名前です。 Local のサーバの場合:
  ローカルマシンに作成済みの一番目のドメイン名
Remote のサーバの場合:
  なし
ユーザードメインポート
ドメインのポート番号を指定します。 なし
ユーザードメインのHTTPポート番号
ユーザードメインのHTTPポート番号を指定します。 80
WebOTXサーバーの新規作成画面で、入力必要の項目に正しい内容を入力して、[接続チェック] をクリックします。


図1.2.5.2-7

接続チェックのダイアログが表示されます。
接続成功の場合、使用可能なWebOTXサーバーが正しく作成できます。


図1.2.5.2-8

接続失敗の場合、WebOTXサーバーは正しく作成できません。


図1.2.5.2-9

接続チェックのダイアログで[OK] をクリックして、WebOTXサーバーの新規作成画面へ戻ります。
WebOTXサーバーの新規作成画面で、[次へ] をクリックします。プロジェクトの追加および除去画面が表示されます。


図1.2.5.2-10

プロジェクトの追加および除去画面で、[使用可能] からプロジェクトを選択して、[追加] をクリックすると、[構成済み]に追加されます。また、[構成済み]からプロジェクトを選択して、[除去] をクリックすると、[使用可能] に戻されます。


図1.2.5.2-11

[完了] をクリックします。サーバービューに新規作成されたWebOTXサーバーが追加されます。


図1.2.5.2-12

リモートのWebOTXサーバーの新規作成:
手順は ローカルのWebOTXアプリケーションサーバーの新規作成 と、ほぼ同様ですが、[新規サーバーの定義]画面では「サーバーのホスト名」 に接続するマシンのホスト名またはIPアドレスを指定します。


図1.2.5.2-13

1.2.5.3. Expressとテスト用サーバーのデバッグ設定

テスト用サーバには、あらかじめデバッグ用のポート「4004」が設定されており、いつでもデバッグを開始できるようになっています。もし、このポートを閉じる必要がある場合は、運用管理コマンド(otxadmin)を使って設定を変更します。
表1.2.5.3-1
順序
手順
1
Windowsのスタートボタンから、[プログラム] > [WebOTX] > [運用管理コマンド(otxadmin)] を選択し、運用管理コマンドを起動します。[otxadmin] というプロンプトが表示されることを確認してください。
2
次のコマンドを実行してテスト用のドメインにログインします。
otxadmin> login --port 6212 --user admin --password adminadmin
3
次のコマンドを実行してデバッグ設定を解除します。
otxadmin> set server.java-config.debug-enabled="false"

Memo
デバッグ用ポートのポート番号のみを変更することはできません。

Memo
このユーザ、パスワードは初期値です。変更した場合には、その値を使用してください。

1.2.5.4. Expressとテスト用サーバー以外のデバッグ設定

Expressとテスト用サーバー以外のサーバーでデバッグする場合、以下に示す初期設定が必要です。
プロセスグループの[JavaVMオプション]にデバッグオプションを追加し、アプリケーショングループを再起動します。(例として、アプリケーショングループ [ap] とプロセスグループ [pg] を利用します、デバッグ用ポート番号に4005を使用しています。)
WebOTX統合運用管理コンソールに入ります。ツリービューメニュー [TPシステム] > [アプリケーショングループ] > [ap] > [プロセスグループ] > [pg] を選択します。
開いたメインビューの[JavaVMオプション]タブをクリックして、[JavaVMオプション] ページを開きます。
[JavaVMオプション]タブページの [その他の引数]に
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=4005
を追加して、[更新] をクリックします。


図1.2.5.4-1

続いて、  ツリービューメニュー [TPシステム] > [アプリケーショングループ] > [ap] をクリックください。
開いたメインビューの[操作]タブをクリックして、表示された[操作リスト]から[アプリケーショングループの起動] を選択して、[実行] をクリックします。  
 


図1.2.5.4-2

これで、[プアプリケーショングループ]と [プロセスグループ] に対するデバッグの初期設定は完了です。

Memo
設定するアプリケーショングループが既に起動している場合、アプリケーショングループを停止してから、再起動ください。

1.2.6. ソフトウェア更新の設定

Memo
バージョン V8.30.00.00 を例に説明します。

1.2.6.1. 更新サイトの設定

ここで、更新サイトの設定について説明します。

更新サイトの設定には二つの方法があります。
下記の更新サイトのURLを利用することが可能です。
ウィザードでの更新サイトの設定方法
以下に、[新規ソフトウェアのインストール...] のウィザードを用いた更新サイトの追加方法の例を説明します。
メニュー [ヘルプ] > [新規ソフトウェアのインストール] を選択します。


図1.2.6.1-1

[インストール]画面で、[追加...] をクリックします。


図1.2.6.1-2

[サイトの追加]画面で、[名前]には「WebOTX」を入力し、[ロケーション]には「http://www.nec.co.jp/WebOTX/download/patch/developer/update-site/83」を入力します。
[OK] をクリックすると、入力した更新サイトが追加されます。


図1.2.6.1-3

Memo
[名前](オプション項目)
    WebOTX以外の名前を設定することもできます。
[ロケーション](必須項目)
    ロケーションの構成:[更新サイトのURL]+[更新バージョンのニックネーム]
    例:更新バージョンが「V8.30.00.00」の場合、そのニックネームは「83」です。

追加した更新サイトは下記のように表示されます。


図1.2.6.1-4

設定ダイアログでの更新サイトの設定方法
次に、[設定] ダイアログを用いた更新サイトの追加方法の例を説明します。
メニュー [ウィンドウ] > [設定] を選択します。


図1.2.6.1-5

[設定]画面で、[インストール/更新] > [使用可能なソフトウェア・サイト] を選択し、[追加...] をクリックします。


図1.2.6.1-6

[サイトの追加]画面で、[名前]には「WebOTX」を入力し、[ロケーション]には「http://www.nec.co.jp/WebOTX/download/patch/developer/update-site/83」を入力します。
[OK] をクリックすると、入力した更新サイトが追加されます。


図1.2.6.1-7

Memo
[名前](オプション項目)
    WebOTX以外の名前を設定することもできます。
[ロケーション](必須項目)
    ロケーションの構成:[更新サイトのURL]+[更新バージョンのニックネーム]
    例:更新バージョンが「V8.30.00.00」の場合、そのニックネームは「83」です。

追加した更新サイトは下記のように表示されます。[OK] をクリックします。


図1.2.6.1-8

1.2.6.2. プラグインの更新方法

プラグインの更新方法について説明します。

更新可能なWebOTX Developerの製品は以下のとおりです。
WebOTX ヘルプ(JP)の更新方法の例を説明します。

メニュー [ヘルプ] > [新規ソフトウェアのインストール] を選択します。


図1.2.6.2-1

[インストール]画面で、[作業対象] をプルダウンし、先に設定した「WebOTX - http://www.nec.co.jp/WebOTX/download/patch/developer/update-site/83」を指定します。


図1.2.6.2-2

[WebOTX ヘルプ(JP)] を選択し、[次へ] をクリックします。


図1.2.6.2-3

[次へ] をクリックします。


図1.2.6.2-4

[使用条件の条項を同意します] を選択し、[完了] をクリックします。


図1.2.6.2-5

以下のダイアログが表示されるので、[はい] をクリックして、WebOTX Developerを再起動します。


図1.2.6.2-6

Caution
WebOTX Developerが再起動する前に、変更したプロジェクトやファイルがある場合は保存をしてください。 その場合、「いいえ」ボタンを押し、保存後に再起動してください。

再起動後、WebOTX ヘルプ(JP)が追加されていることを確認できます。


図1.2.6.2-7


1.3. Eclipseとは

チュートリアルで、簡単なサンプルアプリケーションを作成しながら、Eclipseの操作を理解します。
サンプルアプリケーションとして、ある文字列Aとある文字列Bを連結した文字列を返す、簡単なクラスを1つ作成します。
このサンプルアプリケーションを作成しながら、JUnitテスト・ケースの作成、Antによるビルド実行、Ant上からのテスト実行とレポート生成、CVSリポジトリーへの格納とCVSに関する操作を行います。
本チュートリアルでは、EclipseとCVS、JUnit、Antとの連携を中心に説明しています。
Eclipseは「C:\eclipse」にインストールされている前提となっています。
CVSに関するチュートリアルでは、CVSリポジトリー上のユーザー名に「test1」および「test2」が存在することを前提としています。
ワークスペースが格納されるマシンは「マシンA」、「マシンB」の2台とし、それぞれユーザー「test1」、「test2」でCVSリポジトリーに接続します。
主にマシンAを中心に使用しますが、2台のマシンで分けて操作を行ったほうがわかりやすい場合は、マシンAとマシンBに分けて説明しています。特に、断りが無い場合、マシンAを指します。


図1.3-1

1.3.1. Java プロジェクトの新規作成

メニューの [ファイル] > [新規] > [プロジェクト] を選択して、[新規プロジェクト]画面を表示します。


図1.3.1-1

[Javaプロジェクト] を選択し、[次へ]ボタンを押します。


図1.3.1-2

プロジェクト名に「sample1」を入力し、プロジェクト・レイアウトに「ソースおよびクラス・ファイルのフォルダーを個別に作成」が設定されていることを確認します。
確認したら、[次へ]ボタンを押します。


図1.3.1-3

ソース」タブにおいて、「sample1」が登録されていること及び、その配下に「src」が登録されていることを確認します。
また、「デフォルト出力フォルダー」の「sample1/bin」を確認します。
確認したら、[終了]ボタンを押します。


図1.3.1-4

パッケージ・エクスプローラーに作成したプロジェクトが表示されます。


図1.3.1-5

1.3.2. Java ソースの新規作成

Eclipse にはソース・フォルダーという概念があります。ソース・フォルダーに Java パッケージを作成し、ソースファイルを格納します。
パッケージを作成します。
パッケージ・エクスプローラーのソース・フォルダー「src」で右クリックを行い、ポップアップメニューから [新規] > [パッケージ] を選択します。


図1.3.2-1

新規 Java パッケージ画面では「ソース・フォルダー」に「sample1/src」が設定されていることを確認し、「名前」にパッケージ名「com.nec.sample」を入力して[終了]ボタンを押します。


図1.3.2-2

パッケージ・エクスプローラーにて作成したパッケージが表示されます。


図1.3.2-3

引き続き、ソースファイルを作成します。
パッケージ・エクスプローラーでソースを作成したいパッケージ「com.nec.sample」を右クリックし、ポップアップメニューから [新規] > [クラス] を選択します。


図1.3.2-4

新規Javaクラス」画面が表示されます。「ソース・フォルダー」に「sample1/src」、「パッケージ」に「com.nec.sample」が設定されていることを確認して、「名前」にクラス名「StringMaker」を入力します。
入力後、[終了]ボタンを押します。ソースの雛形が作成されます。


図1.3.2-5

Javaエディターにソースの雛形が表示されます。


図1.3.2-6

クラスを実装します。
package com.nec.sample;
public class StringMaker {

  /** プレフィックス */
  private String prefix;

  /**
   * プレフィックスを返す。
   * @return プレフィックス
   */
   public String getPrefix() {
     return prefix;
   }

  /**
   * プレフィックスと引数baseを連結した文字列を返す。
   * @param base 元となる文字列
   * @return 連結した文字列
   */
   public String makeString(String base){
     /* 新しい文字列 */
     String newString;

     newString = prefix + base;
     return newString;
   }

  /**
   * プレフィックスを設定する。
   * @param string プレフィックス
   */

   public void setPrefix(String string){
     prefix = string;
   }
}
          
編集の様子です。


図1.3.2-7

編集が完了したら、メニューから [ファイル] > [保管] を選択し保管します。ファイルとしての書き込みと同時に、コンパイルが実行されます。クラスファイルは、出力フォルダー「sample1/bin」配下のパッケージ階層に従った場所に出力されます。
「パッケージ・エクスプローラー」からは、出力フォルダー「bin」を確認することはできません。「リソース」パースペクティブの「ナビゲータ」ビューを使います。

1.3.3. Java プロジェクトで JUnit を使用するための準備

JUnitを使用してテストを行う場合、JUnitのクラスのJARである「junit.jar」がクラスパスに存在する必要があります。Eclipse上からJUnitを使用するためにプロジェクトに対してクラスパスを設定します。
まず、「パッケージ・エクスプローラー」でプロジェクト「sample1」を右クリックし、ポップアップメニューから[プロパティー] を選択します。


図1.3.3-1

[プロパティー]画面の左ペインで「Javaのビルド・パス」を選択して、右ペインの「ライブラリー」タブを開きます。
次に[変数の追加]ボタンを押します。


図1.3.3-2

[新規変数クラスパス・エントリー]画面にて、「JUNIT」を選択し、[OK]ボタンを押します。


図1.3.3-3

以下のようにjunit.jarへのクラスパスが追加されたことを確認してから、[OK]ボタンを押して、[プロパティー]画面を閉じます。


図1.3.3-4

「パッケージ・エクスプローラー」の「sample1」プロジェクトにクラスパス変数「JUNIT」が追加されます。
さらに、JUnitのソースとJavadocのパスを定義します。これらはJUnitの実行に必須ではありませんが、Javadocやソースを参照できると便利な場合がありますので以下に記述します。
sample1」プロジェクト配下のクラスパス変数「JUNIT」で右クリックを行い、ポップアップメニューから[プロパティー] を選択します。


図1.3.3-5

左ペインから [Javadocロケーション] を選択し、右ペインにjavadocへのパスを入力します。入力後、[適用]ボタンを押します。
http://www.junit.org/junit/javadoc/3.8.1/
入力後、[適用]ボタンを押します。


図1.3.3-6

Caution
妥当性の検査は失敗する場合があります。ブラウザで「http://www.junit.org/junit/javadoc/3.8.1/index.html」が参照できれば、問題ありません。

次に、左ペインで「Javaソースの添付」を選択し、右ペインで[変数]ボタンを押します。


図1.3.3-7

[変数選択]画面で、「JUNIT_SRC」を選択し、[OK]ボタンを押します。


図1.3.3-8

ロケーション変数パス」に変数「JUNIT_SRC」が設定されたことを確認して、[OK]ボタンを押します。


図1.3.3-9

このようにjarに対して、「Javadocロケーション」や「Javaソースの添付」を行っておくと、EclipseからJUnitのソースやJavadocを簡単に参照できます。

1.3.4. テスト・クラスの新規作成

Eclipseには、あるクラスをテストするための、テスト・クラスの雛形を作成する機能があります。この機能を利用して、作成したソースのテストを行うJUnitのテスト・クラスを作成します。
Eclipseではソース・フォルダーを複数作成することができます。
このチュートリアルではテスト用のソースと、開発を行っているソースを別々のフォルダーに分けて格納する例を示します。
『2. javaソースの新規作成』を参考にソース・フォルダー「testsrc」を作成してください。


図1.3.4-1

ソース・フォルダーにテスト・クラスのパッケージを追加します。
テスト対象のクラスと同じパッケージ名にしておくと、public以外のメソッドも直接呼び出せるテスト・ケースを作成することができます。
『2. javaソースの新規作成』を参考にパッケージ「com.nec.sample」を「sample/testsrc」配下に作成してください。


図1.3.4-2

次にテスト・クラスの雛形を作成します。
テスト用のソース・フォルダー「testsrc」に作成されたパッケージ「com.nec.sample」で右クリックを行い、ポップアップメニューから 新規JUnit テスト・ケース を選択します。


図1.3.4-3

名前」に「StringMakerTest」、「テスト元クラス」に「com.nec.sample.StringMaker」と入力します。
パッケージ名は省略しません。入力が完了したら[次へ]ボタンを押します。


図1.3.4-4

テストメソッドを作成するクラスやメソッド名を選択して、[終了]ボタンを押します。


図1.3.4-5

テスト・クラスの雛形が作成されます。


図1.3.4-6

テスト・クラスを以下のように実装します。
(ここではtestSetPrefixとtestGetPrefixをまとめて、testSetGetPrefixにしています。)
package com.nec.sample;

import junit.framework.TestCase;

/**
 * 文字列連結機能のテスト
 * @author nec
 */
public class StringMakerTest extends TestCase {

   /**
    * Constructor for StringMakerTest.
    * @param name
    */
   public StringMakerTest(String name){
     super(name);
   }

   /**
    * MakeString()のテスト。
    * 事前にsetPrefix(arg1)で文字列を設定し、makeString(arg2)を
    * 呼び出すことにより、返却される文字列がarg1、arg2の順に結合された
    * 文字列であることをテストする。
    */
   public void testMakeString() {
     StringMaker obj = new StringMaker();

     obj.setPrefix("Mr.");
     assertEquals("Mr.Smith",obj.makeString("Smith"));
   }

   /**
    * setPrefix()とgetPrefix()のテスト。
    * privateメンバprefixのsetter,getterのテストを行う。
    */
   public void testSetGetPrefix() {
     StringMaker obj = new StringMaker();
    
     obj.setPrefix("pre");
     assertEquals("pre", obj.getPrefix());
   }
}
          
作成イメージは以下のようになります。


図1.3.4-7

作成が終了したらメニューから [ファイル] > [保管] を選択し保管します。ファイルとしての書き込みと同時に、コンパイルが実行されます。クラスファイルは、出力フォルダー「sample1/bin」配下のパッケージ階層に従った場所に出力されます。
「パッケージ・エクスプローラー」からは、出力フォルダー「bin」を確認することはできません。「リソース」パースペクティブの「ナビゲータ」ビューを使います。

1.3.5. テストの実行

パッケージ・エクスプローラーでテスト用のソース「StringMakerTest.java」を右クリックし、ポップアップメニューから [実行] > [Junit テスト] を選択します。


図1.3.5-1

Junit」ビューにテスト結果が表示されます。表示されない場合は「Junit」ビューのタブをクリックしてください。


図1.3.5-2

<JUnitビューの開き方>
メニューから [ウィンドウ] > [ビューの表示] > [その他] を選択して、[ビューの表示]画面を開きます。
[ビューの表示]画面から [Java] > [JUnit] を選択します。
テストに失敗した場合、以下のようにJUnitビューにテスト結果が表示されます。


図1.3.5-3

1.3.6. Ant 実行のための build.xml 作成

Eclipse上からAntのビルド定義ファイルを編集して、ビルドターゲットを選択して実行することができます。
また、AntにはJUnitを実行した結果をhtmlに変換する機能があり、その機能をEclipse上から実行することができます。
パッケージ・エクスプローラーでプロジェクト「sample1」を右クリックし、ポップアップメニューから [新規] > [ファイル] を選択します。


図1.3.6-1

ファイル名に、「build.xml」を入力し、[終了]ボタンを押します


図1.3.6-2

Antエディターが起動されて「build.xml」が表示されます。


図1.3.6-3

Antエディターは、コード・アシスト機能を備えており、Javaコードを編集する場合と同じような感覚でタグや属性を補完してくれます。
「Ctrl」+「space」をキー入力して候補一覧から選択していくことで、簡単にAntのビルドファイルを作成することができるので非常に便利です。また、タグをカラフルに色付けしてくれるので、視覚的にも見やすくなっています。
build.xmlを以下のように編集して、「保管」します。
<build.xmlの内容>
<?xml version="1.0" encoding="Shift_JIS"?>
<project name="sample1" default="all" basedir=".">

  <!-- 環境依存のプロパティ定義 -->
  <!--property file="build.properties" /-->
  <property name="junit.jar" value="C:/eclipse/plugins/org.junit_3.8.1/junit.jar"/>
 
  <!-- プロパティの定義 -->
  <property name="jar.name" value="sample.jar"/>
  <property name="src" value="src"/>
  <property name="build " value="build"/>
  <property name="jar.dir" value="${build}/jar"/>
  <property name="classes" value="${build}/classes"/>
 
  <!-- 単体テスト用プロパティの定義 -->
  <property name="test.jar.name" value="sampletest.jar"/>
  <property name="test.src" value="testsrc"/>
  <property name="test.classes" value="${build}/testclasses"/>
  <property name="test.report.dir" value="${build}/report"/>
 
  <!-- ターゲット -->
  <target name="all" depends="${jar.name}"/>
 
  <target name="${jar.name}" depends="compile">
    <mkdir dir="${jar.dir}"/>
    <jar jarfile="${jar.dir}/${jar.name}" basedir="${classes}"/>
  </target>
 
  <target name="compile">
    <mkdir dir="${classes}"/>
    <javac srcdir="${src}" destdir="${classes}"/>
  </target>
 
  <target name="${test.jar.name}" depends="test.compile">
    <mkdir dir="${jar.dir}"/>
    <jar jarfile="${jar.dir}/${test.jar.name}" basedir="${test.classes}"/>
  </target>
 
  <target name="test.compile">
    <mkdir dir="${test.classes}"/>
    <javac srcdir="${test.src}" destdir="${test.classes}">
     <classpath>
       <pathelement path="${junit.jar}"/>
       <fileset dir="${jar.dir}">
         <include name="*.jar"/>
       </fileset>
     </classpath>
    </javac>
  </target>
 
  <target name="unit.test.report" depends="unit.test">
    <junitreport todir="${test.report.dir}">
      <fileset dir="${test.report.dir}">
       <include name="TEST-*.xml"/>
    </fileset>
      <report format="frames" todir="${test.report.dir}/html"/>
   </junitreport>
  </target>
 
  <target name="unit.test" depends="${jar.name},${test.jar.name}">
    <mkdir dir="${test.report.dir}"/>
    <junit printsummary="yes" haltonfailure="no">
     <classpath>
       <pathelement path="${junit.jar}"/>
       <fileset dir="${jar.dir}">
         <include name="*.jar"/>
       </fileset>
     </classpath>
     <formatter type="xml" />
     <batchtest fork="yes" todir="${test.report.dir}">
       <fileset dir="${test.src}">
         <include name="**/*Test.java" />
       </fileset>
     </batchtest>
    </junit>
  </target>
 
  <target name="clean">
    <delete dir="${build}"/>
  </target> 
</project>
          

1.3.7. Eclipse 上からの Ant 実行

パッケージ・エクスプローラーのプロジェクト「sample1」の「build.xml」で右クリックを行い、ポップアップメニューから [実行] > [Antビルド...] を選択します。


図1.3.7-1

属性と起動を変更する画面が表示されます。
クラスパス」タブでjunit.jarのクラスパスを追加します。「ユーザー・エントリー」を選択し、「外部JARの追加」ボタンを押します。


図1.3.7-2

「JARの選択」画面が表示されるので、junit.jarを選択し、「開く」ボタンを押します。


図1.3.7-3

junit.jarが追加されたことを確認します。


図1.3.7-4

ターゲット」タブで実行したいターゲットを選択します。「unit.test.report」をチェックして、[実行]ボタンを押します。


図1.3.7-5

コンソールに実行の様子が出力されます。


図1.3.7-6

HTML形式のテストレポートをブラウザで確認します。
エクスプローラ等で、「workspace」の「sample1」プロジェクトの「build\report\html」配下の「index.html」を選択し、ブラウザを起動します。


図1.3.7-7

テストが正常に完了したときの結果レポートです。


図1.3.7-8

1.3.8. プロジェクトの共用 (CVS)

プロジェクトの共用とはCVSリポジトリーにプロジェクトを登録する作業です。この操作は、最初にプロジェクト作成した人が、CVSリポジトリーに対して1度だけ行います。
マシンA を使用します。
初めにリポジトリー・ロケーションを登録します。
メニューから [ウィンドウ] > [パースペクティブを開く] > [その他] を選択します。


図1.3.8-1

[パースペクティブの選択]画面が表示されます。
CVSリポジトリー・エクスプローラー」を選択し[OK]ボタンを押します。


図1.3.8-2

「CVSリポジトリー・エクスプローラー」の「CVSリポジトリー」ビューで右クリックを行い、ポップアップメニューから [新規] > [リポジトリー・ロケーション] を選択します。


図1.3.8-3

[CVSリポジトリーの追加]画面が表示されます。
ホスト」にホスト名(例では「fileserver」)、「リポジトリー・パス」にリポジトリーのパス(例では「/cvs/repo」)、「ユーザー」にユーザー名(例では「test1」)、「接続タイプ」に「pserver」を設定し[終了]ボタンを押します。


図1.3.8-4

CVSリポジトリー」ビューにCVSリポジトリーが追加されます。


図1.3.8-5

パッケージ・エクスプローラーで、CVSリポジトリーに登録したいプロジェクト「sample1」を右クリックし、ポップアップメニューから [チーム] > [プロジェクトの共用] を選択します。


図1.3.8-6

[既存のリポジトリー・ロケーション] を選択し、[次へ]ボタンを押します。


図1.3.8-7

プロジェクト名をモジュール名として使用」を選択し、[次へ]ボタンを押します。


図1.3.8-8

次の画面で、チームで共用するファイルを確認します。


図1.3.8-9

「+」の付いた矢印は、そのファイルが、これまでCVSリポジトリーに登録されていなかったファイルであることを示します。


図1.3.8-10

ここで、CVSリポジトリーに格納しないファイルを設定します。
変更」を見るとプロジェクト「sample1」の「build」フォルダーが表示されています。このフォルダーはAntを使ってビルドした際に作成されるフォルダーなのでCVSリポジトリーに登録しません。このようにCVSリポジトリーに登録しないファイルやフォルダーは次のように設定します。

Caution
Antを実行していない場合は、buildフォルダーは表示されません。
パッケージ・エクスプローラーにbuildフォルダーが表示されていない場合には、「sample1」プロジェクトで右クリックを行い、ポップアップメニューから 更新 を実行します。

変更」にてCVSリポジトリーに登録しないフォルダーやファイルを選択します。
build」フォルダーで右クリックを行い、ポップアップメニューから [.cvsignoreに追加] を選択します。


図1.3.8-11

カスタム・パターン」を選択し、「build」を入力します。
次に、[OK]ボタンを押します。


図1.3.8-12

「変更」から、「build」フォルダーが消え、CVSの管理対象外となります。
確認後、[終了]ボタンを押します。


図1.3.8-13

プロジェクトをリポジトリーに登録するためのコメントの入力が求められます。適切なコメントを入力して [終了]ボタンを押します。ここでは「初期登録」とします。


図1.3.8-14

CVSリポジトリーにプロジェクトが格納されます。
パッケージ・エクスプローラーでは、リソースのリビジョンや状態を表すラベルが表示されます。例では「リビジョン1.1、キーワード圧縮のあるASC 2」です。
ラベルが表示されない場合には、メニュー [ウィンドウ] > [設定] から [一般] > [外観] > [ラベル装飾] を開いて「CVS」のチェックを設定してください。


図1.3.8-15

1.3.8.1. プロジェクトのチェックアウト

CVSリポジトリーに格納されているプロジェクト「sample1」をユーザー名「test2」でチェックアウトします。
ここでは、 マシンB を使用します。
マシンBにて、メニュー [ウィンドウ] > [パースペクティブを開く] > [CVSリポジトリー・エクスプローラー] を選択し、[CVSリポジトリー・ビュー] を開きます。すでに、リポジトリー・ロケーションが以下のようにユーザー名「test2」で登録されているものとします(無い場合は『3.1.8.プロジェクトの共有』を参考に登録して下さい)。


図1.3.8.1-1

CVSリポジトリー・ビューでチェックアウトしたいプロジェクトを選択して、右クリックを行いポップアップメニューから [別名チェックアウト] を選択します。
ここでは「HEAD」ブランチの「sample1」プロジェクトを選択します。「HEAD」とは、開発作業におけるメインとなる開発ラインを示します。


図1.3.8.1-2

ワークスペースにプロジェクトとしてチェックアウト」が選択されていることを確認します。「プロジェクト名」は「sample1」のままとします。
終了]ボタンを押します。


図1.3.8.1-3

チェックアウトが行われた後、[Javaパースペクティブ] を開きます。
メニュー [ウィンドウ] > [パースペクティブを開く] > [Java] を選択して開くこともできます。


図1.3.8.1-4

パッケージ・エクスプローラーでツリーを展開すると、プロジェクトがチェックアウトされたことが分かります。


図1.3.8.1-5

1.3.8.2. ファイルの修正とコミット

CVSリポジトリーにコミットする例を示します。
続けて、 マシンB を使用します。
ここでは「StringMaker.java」に、文字列を連結せずに返却するバグがあったとしてソースを修正して、保管します。


図1.3.8.2-1

パッケージ・エクスプローラーで、修正したファイル「StringMaker.java」で右クリックを行い、ポップアップメニューから [チーム] > [コミット] を選択します。


図1.3.8.2-2

Memo
「リポジトリーと同期化」を行い、同期化ビュー(発信モード)で確認してから「コミット」する方法もあります。

修正内容を入力します。
[終了]ボタンを押すと、コミットが完了します。


図1.3.8.2-3

1.3.8.3. ファイルの修正履歴の確認

ファイルの修正履歴を確認することができます。
ここで、 マシンA に戻ります。
パッケージ・エクスプローラーで履歴を確認したいファイル「StringMaker.java」で右クリックを行い、、ポップアップメニューから [チーム] > [リソース・ヒストリーに表示] を選択します。


図1.3.8.3-1

CVSリソース・ヒストリーにファイルの修正履歴が表示されます。


図1.3.8.3-2


図1.3.8.3-3

1.3.8.4. ファイルの更新

CVSリポジトリーから更新されたファイルの内容をワークスペースに取り込みます。CVSのupdateという操作に対応します。
続けて、 マシンA を使用します。(マシンBにて「ファイルの修正とコミット」が行われているという前提で、その更新した内容をマシンAにて取り込みます。)
パッケージ・エクスプローラーで、ワークスペースに取り込みたいソースファイル「StringMaker.java」を右クリックし、ポップアップメニューから [チーム] > [更新] を選択します。


図1.3.8.4-1

CVSリポジトリーの内容がワークスペースに取り込まれます。


図1.3.8.4-2

Memo
「リポジトリーと同期化」を行い、同期化ビュー(着信モード)で確認してから「更新」する方法もあります。

1.3.8.5. ファイルの追加

ファイルの追加は、ワークスペースに対して行います。次に、CVSリポジトリーにワークスペース上のファイルの追加・コミットを行います。
まず、新規のクラスを作成します。パッケージ「com.nec.sample」で右クリックを行い、ポップアップメニューから [新規] > [クラス] を選択します。


図1.3.8.5-1

クラスの名前に「StringMaker2」を入力し、[終了]ボタンを押します。


図1.3.8.5-2

以下のように、パッケージ・エクスプローラーにクラスが追加されます。


図1.3.8.5-3

続いて、CVSリポジトリーにファイルの追加とコミットを行います。
パッケージ・エクスプローラーにて追加したいファイル「StringMaker2.java」で右クリックを行い、ポップアップメニューから [チーム] > [バージョン管理に追加] を選択します。


図1.3.8.5-4

リソースがバージョン管理の対象になっていないことを示します。


図1.3.8.5-5

リソースがバージョン管理の対象になっていることを示します。


図1.3.8.5-6

次に、「StringMaker2.java」で右クリックを行い、ポップアップメニューから [チーム] > [コミット] を選択します。


図1.3.8.5-7

[コミット]画面にファイルの追加に関するコメントを記述し、[終了]ボタンを押します。


図1.3.8.5-8

[CVSリポジトリー・エクスプローラー]パースペクティブを開いて、CVSリポジトリーにファイルが追加されたことが確認できます。
表示されない場合は、「CVSリポジトリー」ビューにて右クリックを行いポップアップメニューから [ビューの更新] を選択してください。


図1.3.8.5-9

1.3.8.6. ファイルの削除

ファイルの削除は、ワークスペース上のファイルを削除後、コミットすることで行えます。
ここでは「StringMaker2.java」を削除します。
パッケージ・エクスプローラーにて削除したいファイル「StringMaker2.java」で右クリックを行い、ポップアップメニューから [削除] を選択することでワークスペースからファイルを削除します。


図1.3.8.6-1

プロジェクト「sample1」で右クリックを行い、ポップアップメニューから [チーム] > [リポジトリーと同期化] を選択し、同期化ビューを開きます。


図1.3.8.6-2

ワークスペースから削除したファイルが表示されます。削除したファイル「StringMaker2.java」で右クリックを行い、ポップアップメニューから [コミット] を選択します。
「?」の付いた矢印は、そのファイルが、ワークスペースから削除されたファイルであることを示します。


図1.3.8.6-3


図1.3.8.6-4

削除理由を入力し、[終了]ボタンを押します。


図1.3.8.6-5

以下のように、同期化ビューから削除したファイル「StringMaker2.java」が削除されます。


図1.3.8.6-6

CVSリポジトリー上も、削除済みの扱いとなります。CVSリポジトリー・ビューからも削除されます。古い情報が残っている場合は、「CVSリポジトリー」ビューにて、右クリックを行い、ポップアップメニューから [ビューの更新] を選択してください。

1.3.8.7. タグ付け

ワークスペース上のファイルに対して、「タグ」付けを行います。「タグ」付けにより、モジュール全体の各ファイルのリビジョンを「タグ」名で管理することができます。
ワークスペースで変更したファイルはすべてコミットし、ワークスペースとCVSリポジトリーとでファイルの差異がない状態にしておきます(メニューから [チーム] > [リポジトリーと同期化] を選択して確認できます)。
パッケージ・エクスプローラーでプロジェクト「sample1」で右クリックを行い、ポップアップメニューから[チーム] > [バージョンとしてタグ付け] を選択します。


図1.3.8.7-1

タグ名を入力して、[OK] を押すと、タグ付けされます。
タグ名には「Beta1」を入力しています。


図1.3.8.7-2

[CVSリポジトリー・エクスプローラー]パースペクティブを開いて、CVSリポジトリーの「バージョン」配下に、タグ名「Beta1」が付与されたプロジェクトが作成されたことを確認してください。
表示されない場合は、CVSリポジトリー・ビューにて、右クリックを行い、ポップアップメニューから [ビューの更新] を選択してください。


図1.3.8.7-3

1.3.8.8. ブランチの作成

ワークスペース上のファイルに対して、ブランチの作成を行います。「ブランチ」とは、元となるファイルと拡張版のファイルとを関連付けて管理する仕組みです。ワークスペースで変更したファイルはすべてコミットし、ワークスペースとCVSリポジトリーとでファイルの差異がない状態にしておきます(メニューから [チーム] > [リポジトリーと同期化] を選択することにより確認できます。)。
パッケージ・エクスプローラーでプロジェクト「sample1」を右クリックし、ポップアップメニューから [チーム] > [ブランチ] を選択します。


図1.3.8.8-1

ブランチ名」に「MyLine」を入力し、[OK]ボタンを押します。
バージョン名は自動的に入力されますが、必要に応じて修正できます。「ブランチで作業を開始」のチェックを設定すると、ブランチ作成後、チェックアウト操作なしで直ちにブランチに対する変更が可能になります。


図1.3.8.8-2

[CVSリポジトリー・エクスプローラー]パースペクティブを開いて、CVSリポジトリーの「ブランチ」配下に、ブランチ名「MyLine」が付与されたプロジェクトが作成されたことを確認してください。
表示されない場合は、CVSリポジトリー・ビューにて、右クリックを行いポップアップメニューから [ビューの更新] を選択してください。


図1.3.8.8-3


図1.3.8.8-4

ブランチで作業を開始」をチェックした場合、以下のようにプロジェクト名にタグ名が表示されます。これで、直ちにブランチに対する変更が可能になります。


図1.3.8.8-5

1.3.9. プロジェクトの共用 (SVN)

1.3.9.1. Subversionの特長

Subversion(以下SVNと省略)はプログラムのソース等を管理するバージョン管理システムのひとつです。従来バージョン管理システムとしてConcurrent Version System(以下CVS)が利用されてきました。近年ではCVSのさまざまな問題を解消したSVNがオープンソースの開発等、多くのプロジェクトで採用されています。以下にSVNの特徴を簡単に説明します。
アトミックコミットとチェンジセット

SVNでは、コミット単位にリポジトリツリーのリビジョン番号がカウントアップされますので、コミットによってバージョン管理を行うことができます。このリビジョンごとの差分を「チェンジセット」といいます。

関連のある修正内容(バグ修正、仕様変更対応)で複数のファイル修正を行った場合、この複数のファイルをまとめてコミットします。こうすることで、複数のファイルに対する変更をチェンジセットとしてひとまとめにし、1つの論理的な単位にすることでき、開発者はそれらの変更をよりよく系統立て、その変更を追跡可能になります。例えば、開発者がリビジョン11である機能追加をコミットしたならば、他の開発者は容易にその変更をみることができます。また複数のファイル修正をまとめてコミットすることができるためアトミックなコミットが可能となります。

推奨ディレクトリ構成

SVNでは、プロジェクトルートの下にtrunk、branches、tagsの3つのディレクトリを作成する以下のようなディレクトリ構成を推奨しています。


図1.3.9.1-1

プロジェクトルートの下にtrunk、branches、tagsの3つのサブディレクトリを作成します。各サブディレクトリは以下のように使用します。

リポジトリにプロジェクトが1つしか作成しないならば、以下のようなトップレベルディレクトリを作成しても構いません。 /trunk /branches /tags
尚、本マニュアルでは、プロジェクトルートの下にtrunk・branches・tagsを作成する前提で説明しています。

1.3.9.2. Subversionクライアント

SubversionクライアントにはSubclipse,Subversive ,TortoiseSVNなど多数あります。WebOTX DeveloperにはEclipseへ品質的に安定しているSubclipseプラグインが同梱されています。以降の章ではSubversion、Subclipseを利用した開発の流れとSubclipseの利用方法について説明します。

1.3.9.3. Subclipseを使用した開発

SVN、subclipseを使用したプログラム開発は以下のような流れで作業を行います。


図1.3.9.3-1

  1. インポート

    Eclipseからサーバのリポジトリへアクセスし、リソースを登録(インポート)します。この作業はプロジェクトチーム内で、最初に誰かが1回だけ行います。

  2. チェックアウト

    リポジトリからリソースを取得(チェックアウト)します。この操作は、開発者が開発参加時に1度行います。(インポートした方は、この操作は不要となります)

  3. リポジトリと同期化

    開発中は、各開発者がコードを変更したら開発者のワークスペース上のファイルとSVNのリポジトリ上のソースを同期化させ、同じ状態にします。SVNを利用した開発では、リポジトリ上の最新の状態を作業ワークスペースに反映させる「更新」と、ワークスペース上のファイルに加えた変更をリポジトリに反映させる「コミット」と呼ばれる作業によってファイルの同期を取ります。

  4. タグ/ブランチ作成

    リビジョン番号はコミットの際にSVNによって自動的に付与されます。開発を進めていくと、リビジョン番号もカウントアップされていき、リビジョン番号だけによって開発の作業内容を把握していくことが困難となってきます。このため、タグとブランチという機能が提供されています。

1.3.9.4. Subclipse機能説明

Subclipseでよく利用する機能について説明します。
リポジトリの設定
EclipseからSVNサーバに接続してSVNリポジトリビューにリポジトリの設定を行います。説明では以下の設定が行われているSVNサーバ(ローカル)に接続されることを想定します。
表1.3.9.4-1
[項目]
[設定値]
URLロケーション http://location/svn/test
SVNユーザ名 developer
メニューから [ウィンドウ] > [パースペクティブを開く] > [SVNリポジトリ・エクスプローラ] 、メニューがない場合には [その他] > [SVNリポジトリ・エクスプローラ] を選択して、[SVNリポジトリ]画面を開きます。
[SVNリポジトリ]画面で右クリックメニューを表示させて、[新規] > [リポジトリ・ロケーション] を選択します。


図1.3.9.4-1

SVNリポジトリ追加]画面で以下のように設定し、[ロケーション」]には、SVNサーバのホスト名とリポジトリ・パスを入力して[終了]ボタンを押します。


図1.3.9.4-2

認証」には、SVNのユーザ名とパスワードを入力し、[OK]ボタンを押します。


図1.3.9.4-3

SVNリポジトリ画面にリポジトリ・ロケーションが追加されます。


図1.3.9.4-4

新規ディレクトリ作成
SVNリポジトリ・ビューで、プロジェクトを登録する[SVNリポジトリ・ロケーション] を選択し、右クリックメニュー [新規] > [リモート・フォルダ新規作成] を選択します。


図1.3.9.4-5

新しいリモートフォルダ・ダイアログが開きますので、フォルダ名に追加したいフォルダ名を入力し、[次へ]ボタンを押します。以下の画面では[JavaProj]というフォルダ名で作成します。


図1.3.9.4-6

コミットメッセージ入力画面が開きますので、適切なコミット・コメントを入力します。ここでは「新規プロジェクトの登録」と入力します。「終了」ボタンを押します。


図1.3.9.4-7

SVNリポジトリビューに指定したフォルダ名のフォルダが作成されます。以下の例では指定した「JavaProj」というフォルダが作成されていることが確認できます。


図1.3.9.4-8

プロジェクトの共用

プロジェクトの共用とはSVNリポジトリにプロジェクトを登録する作業です。この作業は、最初にプロジェクト作成した人がSVNリポジトリに対して1度だけ行います。

本章ではEclipseのJavaプロジェクト「JavaProj」を共有する手順を説明します。

パッケージ・エクスプローラでSVNリポジトリに登録したいプロジェクト「JavaProj」を選択し、右クリックメニュー [チーム] > [プロジェクトの共用] を選択します。


図1.3.9.4-9

CVSかSVNのどちらかを利用する選択画面となりますので、ここで「SVN」を選択し[次へ]ボタンを押します。


図1.3.9.4-10

次の画面で、SVNリポジトリ・ロケーションを設定します。「既存のリポジトリ・ロケーションを使用」を選択し、プロジェクトを登録するリポジトリ・ルートURLが選択されていることを確認し、「次へ」ボタンを押します。


図1.3.9.4-11

次の画面で、「指定したフォルダ名を使用」を選択し、「JavaProj/trunk」と入力し、「次へ」ボタンを押します。


図1.3.9.4-12

次の画面でコミット・コメントを適切に入力し「終了」ボタンを押します。コミット・コメントの初期値として「初期インポート。」と入力されています。


図1.3.9.4-13

同期化」ビューを表示するため同期化パースペクティブのオープンの確認画面が表示されるので「はい」ボタンを押します。


図1.3.9.4-14

同期化」ビューでリソースをコミットします。「同期化」ビューで表示される「JavaProj」プロジェクトを右クリックしコミットを選択します。


図1.3.9.4-15

コミット」ダイアログが表示されるので適切なコミット・コメントを入力して「OK」ボタンを押します。


図1.3.9.4-16

パースペクティブを「同期化」パースペクティブから「Java」パースペクティブへ戻り、パッケージ・パッケージエクスプローラの「JavaProj」プロジェクトのリソースにSVNサーバの管理下に置かれたリソースであることを示すアイコンが付きます。


図1.3.9.4-17

プロジェクトのチェックアウト

SVNリポジトリに格納されているプロジェクトをチェックアウトする手順を説明します。

本章ではSVNリポジトリ「http://localhost/svn/test/JavaProj/trunk」に格納されているプロジェクトをEclipseのJavaプロジェクトの「JavaProj」プロジェクトとしてチェックアウトします。

まずSVNリポジトリ・ビューでチェックアウトしたいフォルダを選択して右クリックメニューで[チェックアウト] を選択します。ここでは「JavaProj」-「trunk」フォルダを選択します。「trunk」フォルダには、開発作業におけるメインとなる開発ラインのリソースが格納されています。


図1.3.9.4-18

チェックアウトのダイアログが表示されるので「プロジェクトとしてワークスペースへチェックアウト」が選択されていること、プロジェクト名は「JavaProj」となっていることを確認して「終了」ボタンを押します。


図1.3.9.4-19

チェックアウトが完了したらパッケージ・エクスプローラにJavaプロジェクトである「JavaProj」プロジェクトが作成されチェックアウトされていることが確認できます。
ファイルの修正とコミット

ファイルの修正を行いコミットする例を示します。ここではSVNサーバからチェックアウトを行ったJavaProjプロジェクトのTest.javaに修正を加えてコミットを行う例を示します。

SVNリポジトリの管理下に置かれたリソースはローカルで修正変更が行われコミットの前の状態のものには、「*」のアイコンが付きます。これは再帰的に変更されたリソースが属する上位フォルダに伝播します。以下の例ではTest.javaに変更が加わった場合、上位のフォルダ、プロジェクトにも「*」のアイコンがつくことが確認できます。


図1.3.9.4-20

パッケージエクスプローラでJavaProjプロジェクトを選択し、右クリックメニュー [チーム] > [コミット] を選択します。


図1.3.9.4-21

コミット・コメントに修正内容を入力し、修正するリソースが選択されていることを確認しOKボタンを押します。


図1.3.9.4-22

パッケージ・パッケージエクスプローラの「JavaProj」プロジェクトのリソースにSVNリポジトリの管理下に置かれたリソースであることを示すアイコンが付きます。またファイルに表示されるリビジョン番号が上がることも確認できます。


図1.3.9.4-23

Memo
「リポジトリーと同期化」を行い、同期化ビュー(着信モード)で確認してから「更新」する方法もあります。

修正履歴の確認
ファイルの修正履歴を確認することができます。パッケージ・エクスプローラで履歴を確認したいファイルを選択し右クリックメニュー [チーム] > [ヒストリーを表示] を選択します。


図1.3.9.4-24

以下のようにファイルの修正履歴を確認することができます。


図1.3.9.4-25

ファイルの更新
SVNリポジトリから更新されたリソースの内容をワークスペースに取り込みます。SVNのupdateという操作に対応します。 パッケージ・エクスプローラビューで更新したいファイルを選択し、右クリックメニュー [チーム] > [更新] を選択します。


図1.3.9.4-26

ファイルの追加

ファイルの追加を行うにはまずワークスペースに対して行い、次にSVNリポジトリにワークスペース上のファイルの追加・コミットを行います。

まず新規のソースファイルを作成します。以下ではソースフォルダのsampleパッケージにTest2.javaを追加します。


図1.3.9.4-27

続いてSVNリポジトリにファイルの追加とコミットを行います。 パッケージ・エクスプローラで追加したいファイルを選択し、右クリックメニュー [チーム] > [バージョン管理に追加] を選択します。


図1.3.9.4-28

リソースがバージョン管理の対象になると以下のようにファイルのアイコンが変更されます。


図1.3.9.4-29

次にバージョン管理の対象となったファイルを選択して右クリックメニュー [チーム] > [コミット] を選択します。


図1.3.9.4-30

コミットダイアログでファイル追加に関するコメントを記述し「OK」ボタンを押します。 これでSVNリポジトリにファイルが追加されます。


図1.3.9.4-31

SVNリポジトリ・ビューを開いてSVNリポジトリにファイルが追加されたことを確認できます。 表示されない場合は、SVNリポジトリ・ビューにて右クリックメニュー[ビューの更新] を実行してください。


図1.3.9.4-32

ファイルの削除
ファイルの削除は、ワークスペース上のファイルを削除後、コミットすることで行えます。 ここではTest2.javaを削除します。


図1.3.9.4-33

以下「削除の確認」ダイアログが表示されるので「はい」を押して、ワークスペースからファイル「Test.java」を削除します。


図1.3.9.4-34

プロジェクトを選択し、右クリックメニュー [チーム] > [リポジトリと同期化] を選択し、同期化ビューを開きます。


図1.3.9.4-35

同期化ビューが受信/発信モードで表示されていることを確認します。表示されていない場合は同期化ビューの受信/発信モードボタンを押してください。ワークスペースから削除したファイルが表示されます。
プロジェクトを選択して右クリックメニュー[コミット] を選択します。


図1.3.9.4-36

コミットダイアログでファイル削除に関するコメントを記述し「OK」ボタンを押します。


図1.3.9.4-37

以下の同期化ビューよりSVNリポジトリにファイルの削除が反映されたことが確認できます。


図1.3.9.4-38

SVNリポジトリ・ビューからも削除されます。古い情報が残っている場合は、SVNリポジトリ・ビューにて、右クリックメニュー [ビューの更新] を実行してください。
ブランチ/タグの作成

SVNではブランチをbranchesディレクトリ、タグをtagsディレクトリへ作成します。またSVNではブランチの作成とタグの作成は同じ作業となります。ここではタグの作成の方法を記載します。

プロジェクトでタグを管理するtagsディレクトリを作成します。SVNでは、すべてのタグはtagsディレクトリに置き管理します。SVNリポジトリビューでタグを作成するプロジェクトディレクトリを選択し、右クリックメニュー [新規] > [リモート・フォルダ新規作成] を選択します。


図1.3.9.4-39

新しいリモートフォルダの作成ダイアログで、フォルダ名を「tags」と入力し「次へ」ボタンを押します。


図1.3.9.4-40

次に適切なコメントを入力し「終了」ボタンを押します。


図1.3.9.4-41

SVNリポジトリビューで「tags」フォルダが作成できたことを確認できます。


図1.3.9.4-42

SVNリポジトリビューでフォルダ「trunk」を選択し、右クリックメニュー [チーム] > [ブランチ/タグ] を選択します。


図1.3.9.4-43

コピー(ブランチ/タグ)ダイアログが開きますので、コピー先のURLの「参照」ボタンをクリックします。


図1.3.9.4-44

リポジトリ・ブラウザダイアログが開きますので、先ほど作成した「tags」フォルダを選択し、「OK」ボタンを押します。


図1.3.9.4-45

コピー先のURLに作成するタグ名を追加入力して「次へ」ボタンを押します。 ここではタグ名として「beta1」を入力します。


図1.3.9.4-46

コピー(ブランチ/タグ)ダイアログでコピーするリビジョンを選択して「次へ」ボタンを押します。


図1.3.9.4-47

テキストボックスブランチ/タグコメントの編集に適切なタグコメントを入力して「終了」ボタンを押します。


図1.3.9.4-48

SVNリポジトリビューで新しく作成したタグのフォルダが作成されたことが確認できます。ここではtrunkフォルダのリソースがtags\beta1フォルダにコピーされることが確認できます。


図1.3.9.4-49