What happened to the mockobjects.com library?

What happened to the mockobjects.com library? We recently had an inquiry about our old mockobjects.com library. It's still in cvs at the sourceforge project but, essentially, it's dormant. These days, there are better alternatives for Java, like EasyMock and (ahem) our own jMock.
jMockかEasyMockを使えとのこと。DynaMock便利なんだけどなぁ…

Javadoc生成用build.xml

サイトで見つからなかったので…


<?xml version="1.0"?>
<project name="seasar-javadoc" default="all" basedir=".">

<property name="src.dir" value="${basedir}/java" />
<property name="lib.dir" value="${basedir}/lib" />
<property name="doc.dir" value="${basedir}/apidocs" />
<property name="svn.src" value="https://www.seasar.org/svn/s2container/trunk/seasar2/s2-framework/src/main/java" />
<property name="svn.lib" value="https://www.seasar.org/svn/s2container/trunk/seasar2/lib" />

<target name="all">
<antcall target="export" />
<antcall target="javadoc" />
<antcall target="clean" />
</target>

<target name="export">
<delete dir="${src.dir}" />
<delete dir="${lib.dir}" />

<exec executable="svn">
<arg value="export" />
<arg value="${svn.src}" />
</exec>
<exec executable="svn">
<arg value="export" />
<arg value="${svn.lib}" />
</exec>
</target>

<target name="javadoc">
<delete dir="${doc.dir}" />
<mkdir dir="${doc.dir}" />

<javadoc destdir="${doc.dir}" encoding="UTF-8" docencoding="UTF-8" charset="UTF-8">
<sourcepath path="${src.dir}" />
<packageset dir="${src.dir}" />
<classpath>
<fileset dir="${lib.dir}" includes="**/*.jar" />
</classpath>
</javadoc>
</target>

<target name="clean">
<delete dir="${src.dir}" />
<delete dir="${lib.dir}" />
</target>

</project>

Struts続き

その他、いろいろ

  • Configクラスはインターフェースだけ定義しとけばいいや
  • リクエストパラメータ→リクエスト属性にそのままコピーしても問題なさそう
  • MessageResources.propertiesはファクトリ自分で作って、ふつーに日本語使えた方が自然だ
  • ExtendedPropertiesって、「,」は要エスケープなのね…
  • ComposableRequestProcessorは使わなかったなぁ…。まあでも、ControllerのAcitionに何でもやらせりゃいいや。
  • 日付チェックは、日付書式のチェックと日付の正当性チェックに分けたほうがいいや

Strutsで

Clickが却下されてしまったので、仕方なくStrutsでガリガリとコーディング。
イベント駆動のほうがいいなー…と思いながら、それなりに設定ファイルを使わずにすんだ。
やったのは

  • やっぱりActionは極力使わない
  • Validatorを使わない
  • 例外のハンドラ使わない。
  • forwordにはjspのパスを直渡し。
  • ワイルドカードを使ったActionの設定を使う
  • Mapを実装した単一のFormで、すべての入力をまかなう
  • セッターインジェクションにして、セッターを親クラスで全部定義。
  • リクエストパラメータは業務ロジックにフィールドインジェクション(WebWorkぽく…ってよく知らないけど)

コード量へらせたのはJSP2.0使えたのも大きいかも。
「Validationを業務ロジックでやっても何とかなる」ことと、「MapみたいなFormはわりかし便利(DynaActionFormはイマイチだけど)」というのは発見かも。Validationを業務ロジックでやると、DB使った入力チェックが自然に書けた。

JDK5.0は初めて業務で使った。ジェネリックのありがたみはあんまり…。どうも、コードが汚くなる害の方が大きいような。<? extends T>みたいな書き方がまだきちんと理解できず。
アノテーションはあんまり準備できなかったんで活用できず。JUnitアノテーションはなんだかなぁ(特にTestSuiteのアノテーションとか)。Eclipse3.2でJUnit4使ってたら、Eclips3.1使ってたメンバーが使えなくて、ちと困った。
Enumは、C#みたいに実体を整数として定義できるとよかったなぁ…。
static importとオートボクシングもバグの温床になりかねないので使いどころが微妙だった。Objectの戻り値にtrue/false/その他を返せるのは、面白く使えたけど。

Validationで関数プログラミング的に


Object validete() {
return isBlank(value) || (isInt(value) && maxValue(value, 100));
}
とか書いてると、果たして分かりやすいコードなんだろうか…と思ったり。

いまさらながらcssが便利だと思ったり。Clickがだいぶ参考になった。

Pico+Rhinoは便利だと思ったり。ComponentMonitorでアスペクトできる!と思ったらそうでもなかったり。


そろそろClick使いたいなぁ…・