アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

EclipseでIRC

こんにちは、熊谷です。

以前、開発環境としてEclipseを使い始めながらもキーバインドになれず結局gvimに戻っていたのですが、「郷に入らば郷に従え」という言葉を思い出しEclipseで頑張ってみることにしました。

そんなことで再び使い始めたEclipseですが、これにはECFと呼ばれるフレームワークが提供されています。Eclipse上でコミュニケーション?を実現するためのフレームワークだそうなんですが(詳しい日本語の説明はIBMのdeveloperWorks Japanのサイトに記載されていますので参照してください)、これをインストールするとEclipse上でMSNやXMPPIRCを用いてコミュニケーション、ようは対応しているプロトコルでチャットをしたりすることができるようになるようです。

私個人的にも欲しいというか、弊社内でもコミュニケーションツールとしてIRCを利用していたりすることもあるので、Eclipse上でIRCが利用できればそれはそれで便利!と思ったので早速使ってみることにしました。

Software UpdatesでECFをインストールします。まずメニューの[Help]から[Software Updates]の[Find and Install]でSearch for new features to install、Europa Discovery Siteを選び、Communicationsにチェックを入れてインストール。これだけです。



以上で、PerspectiveにCommunicationsが追加されコミュニケーションを楽しむことができるようになります。ツールバー



こんな感じのアイコンをクリックしてプロトコルを選び接続します。



ただ、見た感じ文字コードを設定する画面がないので、このままでは日本語が文字化けを起こします。物は試しということでこのプラグイン(org.eclipse.ecf.provider.irc_1.2.0.v20071019-1300.jar)のソースコードを見てみました。

するとIRCRootContainer.java文字コードに関する部分があるので、以下のように文字コードを指定するだけで日本語がきちんと使えるようになりました。



きちんとするのであれば、設定画面を作ってそこで指定できるようにするのが一番いいのですが、まだ勉強不足でそのやり方がわからないので直接ここで。あと、wide系のサーバに繋ぐ場合、接続待ちの時間関係でエラーが出るのでwaitを入れるようにしています。


--- IRCRootContainer.java.orig  2007-10-06 17:11:18.000000000 +0900
+++ IRCRootContainer.java       2007-12-10 19:17:04.000000000 +0900
@@ -48,7 +48,7 @@

        protected String username;

-       protected String encoding = null;
+       protected String encoding = "ISO-2022-JP";

        private ArrayList invitationListeners;

@@ -113,6 +113,7 @@
                                while (connectWaiting  & & (timeout > System.currentTimeMillis())) {
                                        connectLock.wait(2000);
                                }
+                               connectLock.wait(40000);
                                if (connectWaiting)
                                        throw new TimeoutException(CONNECT_TIMEOUT, Messages.IRCRootContainer_Connect_Timeout + targetID.getName());
                                if (connectException != null)

今現在、必要最低限の機能しか追加されていないようなので、他のIRCクライアントの代わりになるというようなものではありませんが、ソースコードもあるわけですし自分でごりごり実装していくというのも面白いかもしれません。