java

Genericsで戻り値を代入する変数の型によるパラメタライズ

さっきひがさんのエントリをみてちょっと驚いた。 S2TigerにSingletonS2Containerを追加しました。キャスト無しでコンポーネントを取得できるようになります。 Hoge hoge = SingletonS2Container.getComponent(Hoge.class); Hoge hoge2 = SingletonS2Contain…

Annotationメモ

public @interface Hoge { String fromStaticMethod = String.valueOf(100); // staticメソッドを呼べる String fromStaticMethodValue(); //String fromStaticMethod() default String.valueOf(100); // 直接はNG } 訂正 デフォルト値を別の属性を使って条…

S2AOPでエンハンスされたクラスからアノテーションを取得できた

どうも。他力本願なnobeansです。 S2AOP でエンハンスされたクラスは元のクラスのサブクラスなので,invoke.getThis().getClass().getSuperclass().getAnnotations() で取れるはずです commentd by id:koichik ありがとうございます!早速試してみました。 L…

S2AOPでエンハンスされたクラスからアノテーションを取得したい

んですが、どうやったらいいんでしょうかね。使える材料は、MethodInvocationのインスタンスのみ。 LOG.debug(invoke.getMethod().getName()); LOG.debug(Arrays.asList(invoke.getMethod().getAnnotations()));とメソッドのアノテーションはふつうにとれま…

自宅環境もOK

ビンゴ。 C:\Documents and Settings\\.m2\repository\org\apache\maven\plugins の下にあったmaven-eclipse-pluginディレクトリを削除したら、mvn eclipse:eclipseが成功しました。 NWの接続がおかしいときに半端なファイルが残ったのが原因のようです。 エ…

会社環境でもいけた!

C:\Documents and Settings\\.m2 配下に以前試したときの古いjarが残っていたのが原因だったみたいです。 C:\Documents and Settings\\.m2 を削除してから実行したらSUCCESSFULになりました。 ふぅ。しかも、何の苦労もなく mvn eclipse:eclipse も通りまし…

mvn eclipse:eclipseでエラー

ネット上の情報見るとMaven2でも大して苦労ナシにeclipse:eclipseを使えているようなんですが、ウチの環境だとなぜか [ERROR] BUILD ERROR [INFO] ---------------------------------------------------------------------------- [INFO] The plugin 'org.ap…

Maven2+Eclipseの連携

φ(。_。)メモメモ。 【玄人】プロジェクト管理ツールApache Maven【2.0登場】より。 58 :デフォルトの名無しさん :2006/01/21(土) 14:02:33 >>55 じゃ、おれがチュートリアルの説明をしてやる。 まずEclipseのworkspaceディレクトリにコマンドラインで移動。 そこで m…

Windows環境でのローカルリポジトリ

デフォルトでは C:\Documents and Settings\\.m2 配下なのはいいんですが、HOME環境変数を設定しても変わってくれません。なんで?cygwinつかってるので、cygwin上での /home//.m2 にあたるディレクトリに変更したいんですけど。 しょうがないからシンボリッ…

できた!

単にリポジトリ側のNWの問題だったようです。さっきやってみたら、repo1の方も接続できて結構進みました。 まだ、↓でこけるんですけど、それでもだいぶローカルリポジトリにたまりました。 [INFO] --------------------------------------------------------…

リポジトリにつながらない?

ちょっとMaven2に手を出してみようかと思って、簡単なサンプルを動かそうとしたんですが、strutsのdependencies解決すらまともに動きません。 [INFO] ---------------------------------------------------------------------------- [ERROR] BUILD ERROR [I…

S2.3.2→S2.3.4アップデート

してみたところ、S2.3.2 + S2Struts1.2RC2で作っていたサンプルJPetstoreで org.seasar.framework.container.ComponentNotFoundRuntimeException: [ESSR0046]コンポーネント(mainPage)が見つかりません org.seasar.framework.container.impl.S2ContainerBeha…

ついにS2Buri公開!

ぶり2をSeasarファウンデーションにて公開します 富野由悠季の新作を待ち続けるブログ(仮) キタ━━━━(゚∀゚)━━━━ッ!!Seasar界隈で「ぶり」という謎のフローエンジンの存在を耳にしてから、ずっと待っていたのです。 非常にありがたいのです。 是非業務で使い倒…

DIな実装とそのクラス図

// 旧実装 public class Hoge { public void invokeFoo() { Foo foo = new Foo(); foo.executeFoo(); } } public class Foo { public void executeFoo() { ... } }というクラスは、DIconを使うことで↓こうなります。 // DI実装 public class Hoge { private …

Hotswapすげー

今までTomcatのreloadable="true"を使ってたけど、コンパイルするたびにセッション状態がクリアされたり、初期化処理が再度走ったりと結構たるかったのが、Hotswapを使うと待ち時間、なんとゼロ!! reloadable="false"+Seasar hotswap。すげー。

S2DaoでTimestamp型フィールドの時間情報が消える謎

timestampという名前のTimestamp型のフィールドをJavaBeansに用意して、insert時の時間情報をそのまま登録させようとしているのですが、insert後のselectで時間情報が00:00:00になってしまう事象が発生していることに気づきました。 で、調査してみたんです…

PdStrutsことPage-Driven Strutsの概要

長いのでとりあえず仮称でPdStrutsと書いてみます。ぐぐってもヒットしないので、一応ユニークみたいです。だいぶ固まったのでPdStrutsの概要をぼちぼちと書いてみます。 大変なのであまり細かいことは書かない方向で。 基本アーキテクチャ ページドリブンで…

パッケージ分け

完全にInterfaceとその実装クラスとが1対1で対応するような、たとえばlogic系パッケージだったら hoge.logic hoge.logic.impl みたいにimplパッケージと無印パッケージで分けて管理しやすいし、特に悩まないです。ですが、自作interface、その実装(〜Impl)、…

Page-Driven Struts 完成?

なんかとりあえず動くものができたっぽい。 セキュリティ的にはまだ穴がいっぱいなんだけど。 基本アーキテクチャは結構シンプルでいい感じ。

Page-Driven StrutsでのS2Strutsの利用

jpetstoreを改造しながらnobeans版Page-Driven Strutsの実装を探っているんですが、 ここ数日、CartPageでの注文量の更新処理でActionの実行前にNullPointerExceptionになってしまうエラーで悩んでいました。 java.lang.NullPointerException org.apache.str…

Page-Driven Struts 途中経過

OzStrutsにインスパイアされて作成中のOzJpetstore改ですが、かなり書き換わってます。 JSPの構成はほぼ一緒なのでUI的には変わらないのですが、何かしら手が入っているので実装面ではかなりの違いです。 Page-DrivenでStrutsを使うという思想は一緒なんです…

Seasar2.3リリース

おめでとうございます。 koichikさんのブログで気がついたんですが、RC2から結構変わったところがあるんですねぇ。今気になっているのはhotswap。何気に素敵です。 S2Containerインスタンス単位でhotswapに対応するかどうかを制御できるようになるともっとう…

OzStrutsとS2Struts (続き)

どうもうまい方法を見つけたみたいです。 いい感じにPojoなPageクラスに置き換わっていっています。メインの実装クラスは S2Struts用の置換コンポーネント×3 Page遷移に関するコンポーネント×3〜4 程度です。もちょっと整理できたら詳しく書いてみたいと思い…

OzStrutsとS2Struts

ここ最近、OsStrutsのサンプルのjpetstoreのS2 + S2Daoに置き換える作業をしてました。 なんとか無事に下位レイヤをS2に置き換えることができました。 時間がかかったのは、まとまった時間をとりづらい子持ち日曜プログラマの悲しさと、S2Dao/S2Unitに不慣れ…

S2UnitのExcelによる期待値表

DataSet expected = readXls("期待値.xls"); assertEquals(expected, reload(expect)); // (1)現在のDBの状態と期待値を比較 assertEquals(expected, RESULT_BEAN); // (2)取得したBeanのプロパティを期待値と比較 assertEquals(expected, RESULT_BEAN_LIST)…

S2DaoのTIPS

引き続きメモ。 Pure Interface戦略 S2Daoのための定数アノテーションなどをinterfaceに書くと、クライアントクラスから見て不要なはずの定数にアクセスできたり、ちょっと気持ち悪いところもあります。 S2Daoではなく別のO/Rマッパーを使ったり、JDBCで実装…

S2DaoのTIPS

自分用メモ。 戻り値がbooleanのメソッドの振る舞い public boolean hasRecord();のように戻り値がbooleanのメソッドは、SQLの実行結果が0ならfalse、0以外はtrueとなるようです。 SQLをcount(*)で書けばレコードが存在するかどうかのチェックを簡単に実現で…

S2Daoに任せるメソッドと実装メソッドの共存

interface HogeDao { Hoge findByFooId(String fooId); Hoge findByBarId(String barId); }のようなインタフェースに対して、findByFooId()はS2Daoに任せたいがfindByBarId()は実装を書きたいという場合、どうするのがいいんでしょうか。 class HogeDaoImpl …

やっぱりJSFっていいのかも…

だんだん一度はあきらめたJSFが輝いて見えてきました。最近のサンプル開発遊びの中でもS2JSFでやったときが一番簡単にさくさくと進んだ気がします。 URL上で実ファイルパスを隠蔽できるような仮想パスの仕組みがJSFに入るとそれでOKな気もしてきます。でも実…

OzStrutsという選択肢

Struts in ActionのおかげでStrutsというものが結構理解できた。これでやっとStrutsの述語を使いこなせるというもの。今までがいい加減すぎただけか。Strutsがどれだけ素晴らしいかはよくわかったけど、実際のところそれで美しい設計でメンテナンスしやすいW…