AntでJUnit4のテストを実行する

Ant 1.6.5 で JUnit4 用のテストケースを実行しようとすると no test found とかいわれる。これは Ant 1.6.5 の TestRunner が JUnit4 に対応していないからなのだが、そういうときは suite() メソッドで JUnit4TestAdapter でラップした Test を返すといいらしい。
こんなかんじ。

import org.junit.Before;
import org.junit.After;
import org.junit.Test;
import static org.junit.Assert.*;

public class FooTest {
    public static junit.framework.Test suite() {
        return new JUnit4TestAdapter(FooTest.class);
    }

    @Before public void setUp() throws Exception {
    }

    @After public void tearDown() throws Exception {
    }

    @Test public void testBar() throws Exception {
        // do something
    }
}

まぁ、Ant というより JUnit4 に対応していない各種 IDE とかビルドツールでも同様だろう。そのうちツールの方で対応するだろうけど、それまでの次善策ということで。

Jakarta SubProjects

なんか、はてなキーワードのAntの説明が「ApacheJakarta プロジェクトのひとつ」ってなってるし。もうとっくの昔に Apache の Top Level Project になって Jakarta プロジェクトじゃないんだけどなぁ。
あと、TomcatTapestryMavenlog4jAvalonStruts、James あたりも Jakarta プロジェクトじゃ無くなってる、って並べると結構あるな。他にもあったっけ?

Resin is not Java Virtual Machine

この記事によるとResinというJava VM上で動くPHPエンジンのQuercusというものがあり、それはC言語で実装されたPHP(普段使用されているPHPです)より高速に動作するというものです。

ちょ、Resin が JVM ってことになってるよ。あれは Servelet/JSP Container + Web Server のはずだ。
あんまり関係ないけど Java は遅いというのをいまだに信じている人って多いよね。そんなに問題になるほど遅くないと思うんだけどな。HotSpot VM とかのおかげで逆にJavaの方が早い場合もあるみたいだし。いや、リソースの馬鹿喰いはどうしようも無いけどさ。