[更新履歴]
1.00α		2003/04/29
	初版

1.00α002	2003/04/30
	・SJIS以外の文字コードに対応(初期設定ファイルで設定)
	・メッセージ送信部スレッド化
	・初期設定ファイルの読込に対応

1.00α003	2003/05/01
	・メッセージ送信部スレッド(MessageSender)の仕様変更
	・上記に伴い、初期設定ファイルの仕様変更(バッファサイズ指定の追加)
	・アプリケーション固有属性保持用に、SocketApplication#getAttribute / setAttribute追加
	・SocketApplicationにメッセージ送信用のメソッド追加
		sendToAllClients 接続中の全ユーザへ送信
		sendToClients 特定の条件の接続中ユーザへ送信
	・SocketProcessor#getParameter / setParameter廃止
		接続初期コマンドで取得したパラメータは、getInitParamで取得できるように変更
		それに伴い、クライアント固有属性保持用に、getAttribute / setAttribute を追加

1.00α004	2003/05/02
	・SocketApplicationクラスのgetAttributeメソッドの引数がStringになっていたのをObjectに変更
	・（・３・） ◆RTquCoolEEさんに提供した頂いた、
		ECMAScriptソケットアプリケーションクラスを追加。

1.00α005	2003/05/06
	・Finder周りをチューニング
		条件文を指定して、Finderを作成可能に。
		例）username == amoi & p.room == ChatRoom & a.state != sleep
	・メッセージ送信周りを、チューニング（あまり効果ないかも…）
	・（・３・） ◆RTquCoolEEさんに提供した頂いた、
		Rhinoを使用するECMAScriptソケットアプリケーションクラスを追加。
		FESIを使用する方も細かいバグ取り修正。
	・config.xmlファイルを編集することなくスクリプトアプリケーションを配置できるように変更。

1.00α006	2003/05/08
	・JsApplication, RhinoJsApplication修正 - （・３・） ◆RTquCoolEEさん
		importSourceメソッドを追加して、外部ソースファイルをインポートできるようになる。
	・「ソケットアプリケーション」の呼称を「Socklet」に変更
		それに伴い、SocketApplicationクラスをGeneralSockletに変更
	・GeneralSockletクラスにgetClients(String condition)メソッド追加
		検索条件文を指定して、接続中クライアント一覧を取得します。

1.00α007	2003/05/10
	・JsApplication, RhinoJsApplication修正 - （・３・） ◆RTquCoolEEさん
	・GeneralSockletからSockletインターフェースを分離
		より柔軟にSockletの作成が可能になります。
	・SystemCommandApplicationをSockletインターフェース実装に変更
	・GeneralSocklet#getMain()を廃止
	・SocketProcessor#hasInitParam(String key)メソッド追加
		初期化パラメータが設定されているかどうか確認します。
	・GeneralSocklet#getOtherSocklet(String appname)メソッド追加
		サーバに配備されている、他のSockletを取得します。
		これで、Socklet間で連携した作業などが行なえます。
	・Socklet#allowAccessFromOtherSocklet(Socklet from)メソッド追加
	・GeneralSocklet#allowAccessFromOtherSocklet(Socklet from)メソッド追加
		むやみやたらにSocklet間の連携が出来てもまずいと思いますので、
		このメソッドを使用して連携の許可・不許可を設定できます。
		デフォルトでは常に不許可です。
	・GeneralSocklet#init()を抽象メソッドでは無くし、GeneralSocklet中で実装。
	・GeneralSocklet#init(List linkedSocklets)メソッド追加
		どちらをオーバーライドしても、初期化できます。優先順位は、init(List) > init()です。

1.00α008	2003/05/11
	・checkConnectionやdoCommandで、偽を返したときに、メッセージ送信を待ってからクライアントを終了するように修正
	・サンプルチャット部屋修正（未完成 -> 8.1ひとまず完成）
	・SockletDeployInfo#setInitParam()メソッド追加
	・Socklet#destroy()メソッド追加

1.00α009	2003/05/13
	・JsApplication, RhinoJsApplication修正 - （・３・） ◆RTquCoolEEさん
	・初期設定ファイル<system>ノードに子ノード<command>追加
		システムコマンドSockletの実行を許可されるIPアドレスを指定します。

1.00α010	2003/05/14
	・ログ出力に対応（by log4j）
		それに伴い、初期設定ファイルの仕様変更
			ルートに<log4j>ノード追加
			<system>ノードの下に、<logger>ノード追加
			<socklet>ノードの下に、<logger>ノード追加
	・SockletDeployInfoのパッケージをjp.wda.gpssへ変更
	・一部クラス名変更　α010.1
		JsAplication -> FesiJsSocklet
		RhinoJsApplication -> RhinoJsSocklet
		SystemCommandApplication -> SystemCommandSocklet

1.00β001	2003/05/16
	・そろそろ問題もなかろうかと、βに格上げです。
	・全体的にソースを見直しました。
	・SocketProcessorの初期化パラメータが重複キーを許可しなかったので、それを許可するように変更。
	・上に伴い、InitParamContainerインターフェース及びInitParamContainerImplクラス追加
		SocketProcessorとSocketDeployInfoが同じインターフェースで初期化パラメータを取得可能
	・Socklet#afterDeployedLinks(Map linkedSocklets)インターフェース追加
		init(List)で追加配備されたSockletを予め取得できるようになります。

1.00β002	2003/05/22
	・SocketProcessorImplクラスを外部から不可視化
	・Socklet#preRemoveClientでの原因不明例外をキャッチするように変更
	・デフォルト名のSockletが配備されている時に、システムコマンド処理Sockletが配備されないバグ修正
	・ソケットのタイムアウト設定を初期設定ファイルで行なえるようにした。
		接続用初期コマンドのタイムアウト時間は<system>ノードのtimeout属性で、
		各Sockletのタイムアウト時間は<socklet>ノードのtimeout属性で指定できます。
	・デフォルトのSocklet名を「Default」に変更
	・デフォルトのSocklet無効化を初期設定ファイルでできるようにした。
		初期設定ファイル<system>ノードにdefault属性追加
		この属性値がinvalidateの時は、デフォルトSockletを使用しません。
	・sendAndWaitのバグ修正
	・単一のSockletのみ再起動を可能に
	・ScriptSockletクラス新設
		RhinoJsSocklet / FesiJsSockletの親クラスとしました。
	・スクリプトSockletの配備名は拡張子を付けたままに変更して良い？

1.00β003	2003/05/23
	・システム管理用のFlashクライアント作成
		SystemCommandSocklet用のメソッド追加

1.00β004	2003/05/25
	・大幅にリファクタリング。
		・SocketProcessorインターフェースの継承元からRunnableを削除
		・ExecutableBaseクラス新設
		・SocketProcessorBaseクラス新設
	・restartコマンド時、そのクライアントスレッドが終了しないバグ修正。
	・Mainのソケット待受け部をスレッド化。

1.00β005	2003/05/27
	・GeneralSocklet / SocketProcessorBaseクラスに固有属性操作用の以下のメソッド追加
		Set getAttributes()
		boolean containsAttributeKey(Object key)
		Set getAttributeKeys()
		Object removeAttribute(Object key)
	・SocketProcessorImpl#isSending(boolean sw)のバグ修正
	・FinderCreatorクラス新設
	・クライアント絞込条件文字列の指定方法変更
		条件右辺値は""で括るようにし、条件値の中で&や&&などを使用可能に。
		ダブルコーテーションを条件値に含みたい場合は"&quot;"を使用のこと。
		また、""で括らずに ==null とすることで、「設定されていない」条件を指定可能に。
		逆に、!=nullとすると、「設定されている」条件になる。
	・RhinoJsSocklet更新  - （・３・） ◆RTquCoolEEさん

1.00β006	2003/05/29
	・GenericSocklet#preCreateFinder(String condition)メソッド追加
		文字列指定の処理はかなり重たいと思うので、予めFinderを作っておいてそれを再利用できるように、と思いまして。
	・Finder#addFinder(String connector, String condition)メソッド追加
		GenericSocklet#preCreateFinderで作っておいたFinderに条件を追加する時に使用できます。
	・FinderCreatingExceptionクラス新設
	・FinderCreatorクラス名称変更　FinderConditionInterpreterクラスに
	・FinderConditionInterpreterクラス処理変更
		()の処理がバグってました。
		そのほかも含めて、だいぶ処理内容は変更し、すっきりしましたが、仕様はβ005そのままです。

1.00β007	2003/06/08
	・接続ログ取得
	・AttributeContainerインターフェース追加
	・SocketProcessorインターフェースをAttributeContainerインターフェース継承に。
	・GeneralSocklet / SocketProcessorBaseに以下のメソッド追加
		setAttribute(Object key, int value)
		setAttribute(Object key, long value)
		setAttribute(Object key, boolean value)
		getAttributeInt(Object key)
		getAttributeLong(Object key)
		getAttributeBoolean(Object key)
	・SockletException、SockletAttributeExceptionクラス追加
	・SimpleXMLCreatorクラス追加
	・Sockletインターフェースに以下のメソッド追加
		sendToAllClients(String message)
		sendToClients(String message, Finder finder)
		sendToClients(String message, String condition)
	・ColonCommandSockletクラス追加

1.00β008	2003/06/14
	・RhinoJsApplication修正 - （・３・） ◆RTquCoolEEさん
	・Sockletインターフェースにpublic void log(Object message, Priority priority, Throwable throwable)追加
	・SimpleXMLCreatorクラスにparseメソッド追加
	・CommandSockletクラス追加
	・ColonCommandSockletをCommandSocklet継承クラスに変更
	・XMLCommandSockletクラス追加

1.00β008.1	2003/06/14
	・SimpleXMLCreatorクラスに以下のメソッド追加
		・List getChildren()
		・int sizeOfChildren()
		・SimpleXMLCreator getChild(int idx)
		・コンストラクタ SimpleXMLCreator(String name)
		・void setSocklet(Socklet s)
		・Socklet getSocklet()
		・static SimpleXMLCreator parse(String xml)
	・SimpleXMLCreator#toString()のバグ修正

1.00β008.3	2003/06/26
	・SimpleXMLCreator修正 - （・３・） ◆RTquCoolEEさん
		テキストノードに対応
		XMLエンティティ参照への変換メソッド追加(private)

1.00	2003/07/07
	・特に問題もなさそうですので、正式版に格上げします。
	・SimpleXMLCreator修正 - （・３・） ◆RTquCoolEEさん
		子ノードの名前を指定して取得・削除ができるようになりました。
	・その他、細かいリファクタリング及びコメント

1.01	2003/08/14
	・jp.wda.gpss.system.RhinoJsSocklet機能強化 - （・３・） ◆RTquCoolEEさん

1.02	2003/09/16
	・jp.wda.gpss.DummyClientクラス追加
	・jp.wda.gpss.util.SocketProcessorFinderByIDクラス追加
	・jp.wda.gpss.util.SocketProcessorFinderクラス修正
	
1.03
	・GeneralSocklet#getOtherSockletのバグ修正
	・SocketProcessorインターフェースに
		public void setApplication(Socklet socklet)
	　追加
	・CommandSocklet#doCommandで、例外が発生した場合FATALログを取得するように変更
	
1.04
	・jp.wda.gpss.system.seasar.GPSSServiceを追加しました。
		GPSSをSeasarサービスとして起動できます。
	・ExecutableBase#reloadCongifをreloadConfigに直しました。
		単なるタイポです．．．．．．
		Main#reloadCongif
		SystemCommandSocklet#doCommandも修正されました。
	・jp.wda.gpss.system.SockletLoaderクラス追加
		管理ツールで、「restart socklet」することにより、
		GPSS自体を再起動することなくSockletクラスを更新できるようになりました。
			＃ClassLoader派生クラスを作るときは、かならずloadClassメソッドをオーバーライドする必要があるようです。
			＃これをオーバーライドしない場合、同じパッケージに置かれたクラスを参照できなくなります。
			＃具体的には、defainClass(bytes[]...)で読み込んだクラス内から、同じパッケージのクラスを参照すると、
			＃IllegalAccessErrorが発生します。
			＃JavaDocによると、loadClassだけでなく、findClassもオーバーライドしておいた方が良いとの事。
	・jp.wda.gpss.GeneralSocklet#getOtherSocklet(String appname)の仕様が変更となりました。
		このメソッドで取得できるのは、スクリプトSockletのみとなりました。
		通常のSockletを取得・使用したい場合は、必ず連携Socklet機構を使用してください。
			＃これもクラスローダの関係です。
	・初期設定ファイル内で使用されるファイルパスに関して、
		GPSSのホームディレクトリを指定できるように変更。
		通常は変更する必要は無いですが、変更したい場合は、startupスクリプトに
			set GPSS_OPT=-Dgpss.home=(GPSSホームディレクトリ)
		の一行を入れてください。
		これはSeasarプラグイン対応のためです。
		また、この変更に伴い、RhinoJsSocklet#loadFileを一部修正しました。
		
		ただし、初期設定ファイルの<log4j><property>ノードでのログファイル指定のみは、
		この相対パスを追いません。絶対パスで指定してください。
	
1.04.02
	・jp.wda.gpss.system.seasar.GPSSServiceを修正しました。
		「homeプロパティを先に設定しなければいけない」なんていうアホな仕様はなくしました。
	・スタートアップスクリプトを書き直しました。
		JAVA_HOME環境変数が設定されていないと起動しなくなりました。
		また、GPSSのホームディレクトリは%GPSS_HOME%環境変数へ設定することで指定できるようにしました。
		
		startup.bat
			%JAVA_HOME%\jre\bin\server
			または
			%JAVA_HOME%\bin\server
			ディレクトリを検索して、Server VMを使用するかどうかを判断するようにしました。
		
		startup.sh
			${JAVA_HOME}/jre/lib/i386/server
			または
			${JAVA_HOME}/lib/i386/server
			ディレクトリを検索して、Server VMを使用するかどうかを判断するようにしました。
			
			x86以外のCPUをお使いの方は、この行(l.17〜20)を修正してください。
			例えばsparcの場合は、以下のように変更お願いします。
			if [ -d ${JAVA_HOME}/jre ] ; then
			  __SERVER_JVM_PATH=${JAVA_HOME}/jre/lib/sparc/server
			else
			  __SERVER_JVM_PATH=${JAVA_HOME}/lib/sparc/server
			fi
		
		バッチファイル/シェルスクリプトって初めて書きましたので、
		もし、もっと良い書き方を知ってる方はぜひ教えてくださいm(_ _)m
