Home > Java

Java Archive

日本 Java ユーザグループ

  • 2007-04-05 (木)
  • Java

というのが出来るそうな。コミュニティのページ?見たら、国内にJava関係のコミュニティいろいろあるんだね。それで、要求開発アライアンス?ってサイトを見たらなんかデジャプというかなんか違和感を感じた。一瞬考えてなんでか判った、The Seasar Projectにそっくりだからだw。ちょい青みがかってる以外はスタイルシート同じっぽい。前回は僕が適当に書いちゃったのがベースになってますが、僕はデザイン用の画像が描けないので、今度はそういった画像作れる方にカッコいいの作って貰った方が良さそう。

S2StrutsQualified 1.3.0 beta 3


S2Struts 1.3.0 beta 3に対応したのをとりあえずアップ。使い方(UTF-8)。

S2Struts 1.3.0 beta 3からSeasar-user:5438によるとActionクラスがサブアプリ配下にある場合に"/"をセパレータに利用することも可能になってるらしく、それ用のQualifiedActionPathNamingRuleがあったので、そっちを直した方が綺麗になりそうだけど、とりあえず今までのやり方で1.3.0 beta 3対応ってことで。。公式のQualifiedActionPathNamingRuleでも例えば category.HogeEditActionImpl が /category/hoge/edit.do になったりすると嬉しいと言ってみたり。今だと /category/hogeEdit.do になる。

EclipseのFTP and WebDAV Support Plugin


SSLが使えなかった(;´Д`)。

Eclipse 3.2.1 + Windows Vista


後輩が去年のMSDNでVistaがリリースされてからVistaを検証しています。身近な問題としてEclipseが1〜2時間ぐらいすると落ちるそうです。検索してみたところSWTのバグっぽい。

僕自身はまだノーパソ1台でしか使ってません。ノーパソなので基本単なるWindows XPが入っているデスクトップへのリモートデスクトップクライアントでしか使っておらず、Vistaとしては全然使ってません(;´ー`)。

とりあえず慣れれば問題ないだろうけど、Windows XPに慣れ親しんでるとちょっと使いにくい。一番使うエクスプローラのUIも判りやすく(!?)なったことにより、逆に使いにくくなっています。若い人とかプログラム書く人なんかは良いと思うけど、仕事で事務処理などでしか使わない人とかは最初文句言いまくると思います。そして、Office 2007にしてそのUIに最初泣くと思います(笑。

Office 2007で気になるのは綺麗な図表でもファイルサイズが小さくなる新フォーマット .???x (.doc -> .docx , .xls -> .xlsx など)がOffice 2003以下と互換性がないこと。そして、これまた後輩情報によると、数式エディタで書いたオブジェクトがある互換モードで保存できないこと。

これは教授達かなり困っちゃいそう。貸し出し準備が出来次第、配って慣れて貰わないとやばそう。

Samba PDCドメインへの参加は今のところ問題なし。

1Page 1Modelを1Event 複数Modelへ


なんかこういうのが欲しい気がしてきた@Ikushipeの例。

public class UserPage {
    public Class<IndexPage> logout(@EventModel UserModel userModel) {
        ...
        return IndexPage.class;
    }
    public Class<UserPage> submit(@EventModel SubmitModel submitModel, @EventModel UserModel userModel) {
        ...
        return UserPage.class;
    }
}

@EventModelがformのパラメータに対応するもの。submitModelとuserModelで同じsetter/getterがあったら両方にパラメータ設定しちゃう。1Page 1Modelにするならこうかな。

@WebPage(model = { LoginModel.class , UserModel.class })
public class UserPage {
    public Class<IndexPage> logout(UserModel userModel) {
        ...
        return IndexPage.class;
    }
    public Class<UserPage> submit(SubmitModel submitModel, UserModel userModel) {
        ...
        return UserPage.class;
    }
}

思いつきだからいろいろダメな気 or 他にもっと良いやり方がある気がしないでもない。もっと良く考えよう。

1Action 1ActionFormを1Event 1ActionFormへ


以下途中で脈略なくなり、結論としていらないっぽい。

最近FormでSubmitする時にSubmitする前と後で同じもの、StrutsでいうところのActionFormやS2StrutsのPOJO(Dto)、IkushipeでいうところのModelを使うのが使いにくい気がしてきた。StrutsでいうとこのAction単位、Ikushipeでいうところのページ単位でActionFormやModelを持つんじゃなくて、その中のイベントごとにSubmitする前と後を定義できると嬉しいかもしれない(Strutsの場合はS2Struts限定)。特に1画面でいろんなSubmitを使うAjaxなんかで。

  • S2Strutsの例
@StrutsAction(name = "posixAccountDto", parameter = "method", validate = false)
public interface LoginAction {
    @StrutsActionForward(path = "/user/index.html")
    public static final String USER = "USER";
    @StrutsActionForward(path = "/user/login.html")
    public static final String ERROR = "ERROR";
    public String login();
}

を出来るかどうかは別として、

public interface LoginAction {
    @StrutsActionForward(path = "/user/index.html")
    public static final String USER = "USER";
    @StrutsActionForward(path = "/user/login.html")
    public static final String ERROR = "ERROR";
    @StrutsAction(submitDto = "posixAccountDto", returnDto = "userDto", parameter = "method", validate = false)
    public String login();
}

とか。でもS2Sturtsの場合、Actionにgetter用意しとけばそうなるからいらないか・・・。

  • Ikushipeの例
@WebPage(model = LoginModel.class)
public class LoginPage {
    public Class<UserPage> login(LoginModel loginModel) {
        ...
        return UserPage.class;
    }
}

を出来るかどうかは別として、

public class LoginPage {
    public Class<UserPage> login(@EventPageModel LoginModel loginModel, @ResultPageModel UserModel userModel) {
        ...
        return UserPage.class;
    }
}

@EventPageModelにリクエストパラメータを入って、ページ偏移後のattrに@ResultPageModelの中身が展開される感じ。@EventPageModelもattrに残す。こうなるとそのページで起こりうる複数のイベントを記述できる。ついでに偏移後に使うページに複数のフォームがあるかもしれないのでモデルも複数であっても構わない。

でもこれもS2Strutsみたいにgetterでattrに出せるようにすればいらないか。とりあえずの手段だとattrにセットするsetAttributeってのを作るとか。

@WebPage(model = LoginModel.class)
public class LoginPage {
    public Class<UserPage> login(LoginModel loginModel, UserModel userModel) {
        ...
        setAttribute("userModel", userModel);
        return UserPage.class;
    }
}

S2Directory 0.5について後書き


いい加減ドキュメント書いてS2Directoryについて後ろめたいのを年内に片付けたく年末にたくさん書きました。ドキュメント書くついでにS2Directoryのサイトもリニューアルしました。自分の中で何があるとすぐに使えるのかを考えた結果、サイト左下のDocumentationの並びはこうなりました。最初デモをIntroductionの次に持ってきてたもののディレクトリのデモなんて目に見えない裏のデータストアで何かが起きるだけで面白いわけがないので、TutorialをIntroductionの次に持って来てサンプルを見てもらい、次に詳細の見れるデモの説明をするようにしました。ちなみにサイトザインは、Seasarプロジェクトのサイトリニューアルの時に出した案で没になった色のやつです。使いたいプロジェクトの方はご自由にどうぞー(たぶん大丈夫だよね?)。

残念ながら某巨大掲示板の265さんご希望の優しい基礎技術の説明はまだありません。

まだまだドキュメント不十分だろうけど、とりあえずひと段落ということで来年は意見を聞きつつメンテしていき、Ashikunepのプロジェクトを進めたいと思います。

というわけで、皆様良いお年をー(´ー`)ノ。

S2Directory 0.5 Released


S2Directory 0.5をリリースしました。

  • 概要

S2Directoryは、ディレクトリサーバとの接続を容易にするためのコネクション管理機能と、ディレクトリサーバのエントリ・属性とオブジェクトを結びつけるO/D Mapping ( Object / Directory Mapping )、もしくは、別名O/L Mapping( Object / LDAP Mapping ) のフレームワーク機能を提供します。もっと簡単に一言で言い表すと、S2DaoのDao対象がリレーショナルデータベースからディレクトリサーバになったものです。

Seasar.orgのサーバではコミッタアカウントをLDAPで管理しており、コミッタ用のページからLDAPに通信するのにS2Directoryが既に使用されています。

  • Maven2からの利用方法

http://www.seasar.org/wiki/index.php?Maven2RepoRemote

  • トラッキング

https://www.seasar.org/issues/browse/DIRECTORY

残念ながらS2Directoryの利用者はまだまだ数少ないため、この機会に興味のある方がおりましたら是非ご利用いただき、ご要望やバグなどありましたらご報告ください。

また、春のカンファレンスから利用したいというご要望を数名の方にいただいておりながら、ドキュメントの整備が遅くなりすいません。今回のリリースでドキュメントを一通り揃えましたので是非ご利用ください。

よろしくお願いします。

Resinを辞めた理由が思い出せない

  • 2006-12-26 (火)
  • Java

Resinを辞めた理由を昔の日記に書いてた気がしてたので検索してみるも出てこなかった。なんで使うの辞めたんだろ。当時、開発環境のTomcatで動くものがResinにデプロイすると動かないのがあったりして単純に面倒になっただけかも。

昔のサイトに書いてたResinの導入記事がInternet Archive Wayback Machineにいくつか残ってました。

Resin 2.1.4からResin-EE 3.0.3までアーカイブされてるけど、もうちょい前ともうちょい後の分もあった気がする。僕の古いサーバのjavaディレクトリを見るとResin 3.0.8が動いてた形跡があるからそこまでかな。

うちの大学のウェブサイトのServletコンテナは昔はResinで動いてました。2年ぐらいライセンス購入してた気がする。今はTomcat(^^)。

大学のウェブサイトで使ってたのは、とある学会用のシステムをTomcatで動かしてた時に最初組み込んで使ってた論文をアップロードする仕組みがヘボくてブラウザ(lynxとか…)によっては取りこぼしがあったりしてこれはまずいってことで、趣味で使ってたResinのライセンスを買ってもらい、Resinに搭載されてたアップロードエンジンに切り替えて幸せになりました。他にもResinが持ってるコネクションプーリングが使えたりと嬉しいことがいっぱいでした。

年明けたら久しぶりに最新版入れて動かしてみようかなー。

ApacheDSが・・・

  • 2006-12-05 (火)
  • Java

1.0.0で何か変わったのかな、パス変更系のS2Directoryの処理が全滅してる。

と、思ったらApacheDSの設定の問題な気がしてきた。昔の設定上書きされちゃってる。。

[追記] やっぱし、ApacheDS 1.0-RC3 -> RC4の間で何か変わってるみたい。RC3だとエラーにならない。S2DirectoryからはJDNIのAPIで叩くだけなので、ApacheDSの内部キャッシュ周りな気がする(nio?)。

[追記] あたー。Restart required after changing password。書かれているとおり、ApacheDSを再起動したら反映された。パス管理系が全滅しちゃうとLDAPの重要な機能が果たせないのでApacheDS 1.0.0と1.0 RC4は使っちゃだめってことだね。1.0.1を待ちましょう。

でも、検証してる間にS2Directoryにコネクション閉じ忘れのバグを1箇所見つけてしまった。

[追記] 直した。ついでに例外処理を少しまじめにするようにした。当初の予定は、型で判断してValueTypeを割り当てるようになっているところを、ディレクトリらしく属性名ごとに処理を担当するValueTypeを変えられるように作り変えるつもりだったけどまた今度。そうすると、userPasswordとかLMHashとかNTHashとか特殊系を綺麗にできるかなーと思った。今はHandlerで決め打ちでごり押ししてるので、違う属性名使うディレクトリサーバがあるとパス管理とか出来ない。

ホーム > Java

検索
フィード
メタ情報

Return to page top