本エントリーでは、Server ModuleとRoom Moduleを作成する際の準備方法を紹介します。UnionのバージョンはUnion alpha3を使用します。
Union ServerはJAVA言語で記述されているため、Server Module、Room ModuleともにJAVA言語で作成します。JAVA言語での開発にはeclipseを使うと便利です。
eclipeを使ったModule作成の準備
eclipseを使ってModuleを作成する際の準備方法を簡単に紹介します。
eclipseのインストール
eclipseを未だインストールしていない場合は、elipseの公式サイトからアーカイブをダウンロードしインストールします。ダウンロードして来たeclipse-SDK-3.5-win32.zipを解凍しお好きな場所へ配置します。
今回はWindowsにインストールする例ですが、Mac OS Xでもほとんど同じです。 以下のように配置しました。これらのパスはご自身の環境に合わせて読み替えて頂ければと思います。
- e:eclipse
- e:workspace
- e:union
プロジェクトの作成
[swfobj src="http://fla.la/wp-content/uploads/2009/09/union_platform007_002.swf?startingPlaybackMode=1" alt="プロジェクトの作成" align="center" width="512" height="312"]
- [File] -> [new] -> [Java Project]を選択します。
- Project nameはお好きな名前で良いですが、今回はunion_platform等と入力します。
- ContentsはCreate project from existing sourceを選択します。
- Directory: に e:¥union と入力します。これはunion serverのディレクトリを指定して下さい。
- [Next]をクリックします。
- [Finish]をクリックします。
これでUnion ServerのModuleを作成するProjectが作成出来ました。
Source Folderの作成
.javaファイルを格納するSource Folderを作成します。 [swfobj src="http://fla.la/wp-content/uploads/2009/09/union_platform007_003.swf?startingPlaybackMode=1" alt="Source Folderの作成" align="center" width="512" height="312"]
- Package Explorerでunion_platform(プロジェクト名)からコンテキストメニューを表示します。
- [New] -> [Source Folder]を選択します。
- Folder name: に src と入力します。
- [Finish]をクリックします。
e:¥union¥srcが作成されていれば成功です。ソース格納場所が出来上がりました。次はここにクラスを作成して行きます。
Classの作成
[swfobj src="http://fla.la/wp-content/uploads/2009/09/union_platform007_004.swf?startingPlaybackMode=1" alt="Classの作成" align="center" width="512" height="312"]
- Package Explorerでunion_platform(プロジェクト名)からコンテキストメニューを表示します。
- [New] -> [Class]を選択します。
- Package:に作成したいパッケージ名を入力します。今回は、com.asmple.server.union.module.serverとしました。
- Name:にPackageに所属させるクラス名を入力します。今回は、ServerModuleSampleとしました。
- Interfaces:の横の[Add]をクリックします。
- Choose interfaces: に Moduleと入力します。
- Matching intems: に Module - net.user1.union.api と表示されるので、選択して[OK]をクリックします。
- [Finish]をクリックします。
e:¥union¥src¥com¥asmple¥server¥union¥module¥server¥ServerModuleSample.javaが作成されていれば成功です。
ServerModuleSampleの編集
さて、以下のようなjavaファイルが自動で生成されますが、L:11のreturnをtrueに変更します。ここでtrueをreturnしておかないとModuleの初期化に失敗してしまいますので注意しましょう。
package com.asmple.server.union.module.server; import net.user1.union.api.Module; import net.user1.union.core.context.ModuleContext; public class ServerModuleSample implements Module { @Override public boolean init(ModuleContext arg0) { // TODO Auto-generated method stub return false; } @Override public void shutdown() { // TODO Auto-generated method stub } }
L:11を以下のように変更。
return true;
build.xmlの作成
antツールを使って、jarファイルを作成する準備をします。モジュールをいくつも作成した際に、jarにまとめてしまおうという考えです。以下のようなe:¥union¥build.xmを作成します。
antに登録
[swfobj src="http://fla.la/wp-content/uploads/2009/09/union_platform007_005.swf?startingPlaybackMode=1" alt="antに登録" align="center" width="512" height="312"]
- [Window] -> [Show View] -> Antを選択します。
- Ant Viewの左のボタン(Add Buildfiles)をクリックします。
- union_platform(プロジェクト名)配下のbuild.xml(先ほど作成したもの)を選択します。
- Ant Viewに新しいBuildファイルが追加されます。
- com_asmple_union_server_moduleを選択して、右から3番目の矢印アイコン(Run)をクリックします。
e:¥union¥lib¥com-asmple-server-union-module.jar が出来上がっていれば成功。これでClassファイルを更新した際には、AntのRunを実行することで、jarファイルを更新できます。
startup.bat(.sh)の編集
Windows環境の場合はstartup.batを編集します。
java -cp libunion.jar;libstax-api-1.0.1.jar;libwstx-asl-3.2.6.jar net.user1.union.core.UnionMain start
libwstx-asl-3.2.6.jarの後ろに以下を追記します。
;libcom-asmple-server-union-module.jar
Mac OS X, Linux環境の場合はstartup.shを編集します。
#!/bin/sh java -cp lib/union.jar:lib/stax-api-1.0.1.jar:lib/wstx-asl-3.2.6.jar net.user1.union.core.UnionMain start &
lib/wstx-asl-3.2.6.jarの後ろに以下を追記します。
:lib/com-asmple-server-union-module.jar
union.xmlの編集
9110 password 30 9100 policy.xml 9101 policy.xml serverStatsServerModule net.user1.union.servermodule.ServerStatsServerModule 300
L:26の下に以下を追加
serverModuleSample com.asmple.server.union.module.server.ServerModuleSample
Union Server起動
startup.bat(.sh)を実行して下記のようなログが出力されれば、新しいServer Moduleのロードは成功です。
2009-09-05 16:22:52,046 INFO - Loaded module type [class] with code [com.asmple.server.union.module.server.ServerModuleSample] 2009-09-05 16:22:52,046 WARN - Server module [serverModuleSample] loaded.
まとめ
今回はeclipseを使って、Union ServerのModuleを作成する準備をしてきました。私自身普段はeclipseもJAVAも触らないのですが、大分効率化出来そうですね。もっと良い方法などありましたら、是非ともご教授下さい。
では、次回は実際にModuleを作成してみようと思います。