BkJava - Becky! Java Plugin

BkJava は メールソフト Becky! Internet Mail Version 2 (以下 Becky!) で
Java を使用するためのプラグインです。

このプラグインにより、Java から Becky! のプラグイン API を使用することが
可能になります。
また Groovy でプラグイン API を使用可能にするアドイン BkGroovy も公開しています。

最新版のダウンロードは、こちらから

2011-01-06 ダウンロードサイトを変更しました

[]

またまた、ずいぶんとご無沙汰してしまいましたが、その間にダウンロードサイトとして使わせていただいていたインフォシークのiswebライトサービスが終了してしまっていまして、一時ダウンロードができない状態が続いておりました。

本日ダウンロードサイトを切り替え、ダウンロードが再開できるようになりました。


ダウンロードしてみようかなと思われた方にはご迷惑をおかけし、大変申し訳ありませんでした。


BkGroovy の方は、ファイルをアップロードしていませんが、今のところアップロードする予定はありません。どうしても欲しい方はメールにてご連絡ください。ご要望が多ければ再度アップロードするかも知れません。


BkJava はこちらにリリースしてはいなかったものの、微々たる変更ではありますが、アップデートをしていまして、この機会に、整い次第リリースしようかなと考えています。バージョンはβなしの1.0とする予定です。

2007-10-17 BkJava β7 をリリースしました

[]

BkJava の最新版 1.0 β7 をリリースしました。

今回の変更で、最新版の Becky! Plug-in SDK (Version 2.40.00 リリース時のもの) に対応しました。


もうひとつの変更点は、ログまわりの変更です。これまで、JRE6 で動作させると、ログが適切に出力されないというバグがありましたが、それが解消されました。

また、サンプルにも変更点がありますが、詳しくは history.txt をご覧下さい。


最新版のダウンロードこちら から。

[]

最新の BkJava API ドキュメント は こちら

2007-09-20 BkJava β6 をリリースしました

[]

BkJava の最新版 1.0 β6 をリリースしました。

今回の変更で、初期設定の煩わしさや、初期設定のミスによる問題が大幅に解消されるのではないかと思っています。


ひとつ目の変更点は、環境変数 PATH を設定しなくても JREインストールされていれば、Java が自動的に起動できるようにしたことです。

もうひとつの変更点は、初期設定を インストーラー によって行なえるようにしたことです。

また、SWTインストーラー に含めることにしました。(これにより サイズ が結構大きくなってしまったのですが。。)


これらの変更により、インストーラー によって セットアップ を行なえば、設定ファイル を編集することなく BkJava が使えることになりました。

インストーラー は、ファイルとフォルダを作成するだけのもので、レジストリ も書き換えません。

いままでと同じ形式の配布ファイルも公開していますが、ぜひ、インストーラー を使ってみてください。


BkGroovy のほうは変更ありませんので、そのまま使用できます。

最新版のダウンロードこちら から。

[]

APIドキュメント は 前から変わってないのですが、最新の BkJava API ドキュメント は こちら

2007-09-10 Groovy 1.0 での動作確認

[]

ずいぶんとご無沙汰してしまいましたが、その間に Groovy 1.0 のリリースが行われていました。

http://groovy.codehaus.org/Download から Groovy の 最新安定版 1.0 がダウンロードできるようになっています。


早速、BkGroovy の動作確認をしてみたところ、意図した動きをしてくれているようです。


前回書いた、ログの設定による Exception の発生が気になるところだったので、試してみたところ、ログレベルを FINER に設定しても Exception は発生していませんでした。


今回、動作確認した組み合わせは以下のとおりです。

  • Java(TM) Platform, Standard Edition Runtime Environment Version 6 (jre1.6.0_02)
  • BkJava 1.0 β5
  • BkGroovy 1.0.1
  • Groovy 1.0

2006-02-14 Groovy 1.0 JSR-05 がリリース

[]

2/13 に http://dist.codehaus.org/groovy/distributions/ から Groovy の 最新版 JSR-05 がダウンロードできるようになりました。


早速、BkGroovy の動作確認をしてみたところ、意図した動きをしてくれている用です。


特に JSR-05 で groovy.lang.GroovyClassLoader クラスがどのように変更されるかが気がかりだったのですが、コードもすっきりとなっていて、古いバージョンの BkGroovy1.0 でも、また以前のように動くようになってくれていました。

1.0.1 の変更は、あまり納得できる変更ではなかったので、BkGroovy 1.0 のコードに戻そうと考えているところです。


JSR-04 でも確認していたのですが、一点気になる点が残っていて、それは ログの設定を FINER 以上に設定すると、NullPointerException が発生することです。


情報: java.lang.NullPointerException
  at org.codehaus.groovy.runtime.MetaClassHelper.getClassName(MetaClassHelper.java:729)
  at org.codehaus.groovy.runtime.MetaClassHelper.logMethodCall(MetaClassHelper.java:904)
  at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:472)
  at org.codehaus.groovy.runtime.Invoker.invokeStaticMethod(Invoker.java:184)
  at org.codehaus.groovy.runtime.InvokerHelper.invokeStaticMethod(InvokerHelper.java:119)
  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeStaticMethod
      (ScriptBytecodeAdapter.java:115)
  at Sample01.<init>(Sample01.groovy)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance
      (DelegatingConstructorAccessorImpl.java:27)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
  at java.lang.Class.newInstance0(Class.java:308)
  at java.lang.Class.newInstance(Class.java:261)
  at org.becky.bkj.groovy.BkGroovy.loadScripts(BkGroovy.java:38)
  at org.becky.bkj.groovy.BkGroovyFactory.createEventHandler(BkGroovyFactory.java:61)
  at org.becky.bkj.BkJava.loadConfig(BkJava.java:78)

というログが出力されます。(Sample01 のところはスクリプト毎に異なります。また、一部意図的に改行している行があります。)

この点は現在、調査中です。

2006-02-10 BkGroovy をアップデートしました

[]

BkGroovy が Groovy JSR-4 で正常に動作しなかったのを修正しました。

バージョンは 1.0.1 としています。

Groovy は 今月に JSR-5 がリリースされるようですので、それに合わせて、また変更があるかも知れません。

ダウンロードこちら から。

2005-07-25 BkJava 1.0 β5 をリリースしました

[]

最新版1.0 β5をリリースしました。ベータ版をリリースするのはあと1,2回だと思います。

BkGroovy のほうは変更ありませんので、そのまま使用できます。

ダウンロードこちら から。

[]

最新の BkJava API ドキュメント は こちら

2005-07-15 Becky! で Groovy !

[]

GroovyJava実行環境で動作するスクリプト言語のひとつです。

Groovy の紹介については @IT にコラム 「@IT:Groovyに触ってみよう」 があります。


この Groovy を BkJava に組み込んで、Groovy から Becky!プラグインAPIを使用することができるようにする方法をご紹介します。これにより、Becky! へのスクリプトアクセスが可能になります。

BkGroovyアドイン のダウンロード

まず、こちら から BkGroovyアドイン をダウンロードします。

BkGroovyアドインは Becky!Groovy を動作可能にする BkJava のアドインです。

Groovyダウンロード

Groovyのホームページ から、Groovyダウンロードします。

現状の最新版は、groovy-1.0-jsr-02.zip でした。

このファイルを展開したフォルダ配下に embeddable フォルダがありますが、

この中にある groovy-all-1.0-jsr-02.jar を BkJava.ini のクラスパス設定に追加します。


以下のようになります。

(見やすくするため、改行が入っていますが、実際は各エントリは一行に記述してください)

jvm.option.count=4
jvm.option.0=-Djava.compiler=NONE
jvm.option.1=-Djava.class.path=C:\Program Files\RimArts\B2\PlugIns\BkJava\classes;
C:\Program Files\RimArts\B2\PlugIns\BkJava\lib\bkjava.jar;
C:\Program Files\RimArts\B2\PlugIns\BkJava\lib\groovy-all-1.0-jsr-02.jar
jvm.option.2=-Djava.library.path=C:\Program Files\RimArts\B2\PlugIns\BkJava\lib
jvm.option.3=-Djava.util.logging.config.file=C:\Program Files\RimArts\B2
\Plugins\BkJava\conf\logging.properties
jvm.option.4=
jvm.option.5=

config.xml の編集

Groovy のファイルを置く場所を BkJava/conf フォルダの config.xml に設定します。

"lib" パラメーターの値(value属性) には、動的に読み込みたい jar ファイルを置くパスを設定します。

ここに置いた jar ファイルにあるクラスは BkJava.ini ファイルのクラスパス設定に追加しなくても、Groovyファイルから使用することができます。

"groovy" パラメーターの値(value属性) には、Groovy ファイルを置くパスを指定します。

この直下に置かれた BkEventHandler を実装した Groovyファイルは、Becky!プラグインとして動作します。(ファイルは複数配置することが可能です。)

<?xml version="1.0" encoding="Shift_JIS" ?>
<config>
<event_handler>
<!--
 factory 要素:
     class属性:BkEventHandlerFactoryを実装するクラスを指定します。
-->
<factory class="org.becky.bkj.groovy.BkGroovyFactory">
<param name="lib" value="C:\Program Files\RimArts\B2\PlugIns\BkJava\lib" />
<param name="groovy" value="C:\Program Files\RimArts\B2\PlugIns\BkJava\groovy" />
</factory>
</event_handler>
</config>

groovy ファイルを作成する

上で指定したフォルダに BkEventHandler を実装した Groovyファイル を作成します。

ここでは、以下のような GroovyTest01.groovy を作成しました。

import org.becky.bkj.*
import java.util.logging.Logger

class GroovyTest01 extends BkEventAdapter
{
    void start()
    {
        Logger.global.info("GroovyTest01 を開始します。")
    }

    int exit()
    {
        Logger.global.info("GroovyTest01 を終了します。")
        return 0
    }

    void finishRetrieve(int number)
    {
        Logger.global.info(number + "件 受信しました。")
    }
}

動かしてみる

Becky! を起動して、メールを受信後、終了すると、以下のようなログが見れます。

2005/07/16 0:19:22 gjdk.java.util.logging.Logger_GroovyReflector invoke
情報: GroovyTest01 を開始します。
2005/07/16 0:19:28 gjdk.java.util.logging.Logger_GroovyReflector invoke
情報: 0件 受信しました。
2005/07/16 0:20:36 gjdk.java.util.logging.Logger_GroovyReflector invoke
情報: GroovyTest01 を終了します。

2005-07-12 BkJava 1.0 ベータ版 をリリースしました

サンプルプログラムを用意しています。(サンプルには実用性はないです。)

サンプルは、「ツール」メニューに「BkJava:SWTサンプル」と「BkJava:Swingサンプル」という2つのメニューを追加し、そのメニューを選択すると、SWT(ヘッダ表示のサンプル)とSwing(メール作成ウィンドウの起動)のサンプルが動作する、というものです。

サンプルはソースコードがありますので、参照してください。

[]

BkJava 1.0 β4 をリリースしました。

サンプルの修正と、config.xml の仕様の変更を行いました。

[]

BkJava 1.0 β3 をリリースしました。

不具合の修正と、一部インターフェイスを変更しました。(※さらに、もうちょっと変更する予定です・・)

ダウンロードは、こちらから

[]

readme.txt をご覧ください。こちらにあります。

2005-07-09 BkJava 1.0 ベータ版 をリリースしました

サンプルプログラムを用意しています。

サンプルは、「ツール」メニューに「BkJava:SWTサンプル」と「BkJava:Swingサンプル」という2つのメニューを追加し、そのメニューを選択すると、SWT(ヘッダ表示のサンプル)とSwing(メール作成ウィンドウの起動)のサンプルが動作する、というものです。

サンプルはソースコードがありますので、参照してください。

[]

BkJava 1.0 β2 をリリースしました。

サンプルに不具合がありました。サンプルのみの修正です。

ダウンロードは、こちらから

[]

BkJava 1.0 β1 をリリースしました。

ダウンロードは、こちらから

2005-07-02 準備ページを作成しました

Becky! からJavaを使用するプラグイン BkJava のための日記ページです。

現在準備中ですのでプラグイン自体は公開していません・・・。

※7月9日にベータ版を公開しました。→ トップページへ

[]

[]

  1. jvm.dll のあるフォルダ(JREでは %JAVA_HOME/bin/clientだと思います)を環境変数PATHに追加します。
  2. BkJava.dll と BkJavaフォルダを Becky! の Plugins フォルダに配置します。
  3. BkJavaフォルダにある BkJava.ini を環境に合わせて編集します。
  4. BkJavaフォルダにある conf/config.xml を編集します。