java
Mocking static methods Quick summary 1. Use the @RunWith(PowerMockRunner.class) annotation at the class-level of the test case. 2. Use the @PrepareForTest(ClassThatContainsStaticMethod.class) annotation at the class-level of the test case.…
Maven2には releaseプラグインというかなり便利なものがある。これを使うと、バージョニングとかpom.xmlの書き換えとか、ソースコードリポジトリへのタギングとか、なんかもう色々なことが自動化できてしまって最高である。これだけでmavenで管理する価値も…
S2Velocity 1.2 にバグ(スレッドセーフではない)があり、MLでご指摘いただいて修正しました。 この修正のみとなりますが、 1.2.1 としてリリースいたしました。はじめにバグのご指摘を頂いたうえしんさんありがとうございます。S2Velocityそのものについての…
VelocityテンプレートをWebアプリケーションのビューとして用いる場合に、S2Containerとのビューヘルパー(ツールボックス)インスタンスの管理をS2Containerと統合するためのコンポーネント、S2Velocity 1.2 をリリースしました!詳細はこちら: http://s2velo…
とりあえずの「まとめ」ということで、Javaで(主に2Dの)ゲームを作る際にまずは訪れてみたい、調べてみたいライブラリ/フレームワークをまとめてみました。 足りない、これも追加するべき、というのがあったら教えてくださいませ。バインディング/ライブラリ…
m2eclipseの最新版を入れて使っていると、依存ライブラリを取ってこなかったりソースフォルダの設定が消えたり、と不可解な動作をしてハマったのでメモ。以下のような状況のときに起きる。 たとえば、 pom.xml <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-webdav</artifactId> </extension> </extensions> こん…
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?ClockWrapper ClockWrapperはある種のパターン(と、例えば安易なnew Date()に対するアンチパターン?)の提示。これは一度「ユニットテストできねえ!」という話になって教訓のようになることも多いのだけど、同種…
maven-site-pluginに報告あり : MSITE-211で、このエントリは 現象としては mvn site-deploy すると ProxyHTTPうんぬんエラーになる という件に対する対応方法です。 エラーの断片 [INFO] ----------------------------------------------------------------…
Maven2でdjUnit(のVirtual Mock Object)を使う、という調査。ついに完了しました。結論だけ先に。まず、pom.xmlで surefire plugin に設定を加える必要があります。 maven-surefire-plugin 2.4.2 -Djava.system.class.loader=jp.co.dgic.testing.common.DJUn…
Maven2でdjUnitを使う、という調査をしていて、その続報メモ。まず、ここでいうdjUnitは "Virtual Mock Objectを使ったテストができること" と前提をおきます。jcoverageはこの際考えません。で、 maven-surefire-plugin について色々と調べていくと、pom.xm…
JUnit4向けに書かれたテストケースをJUnit3環境で走らせる(djUnitのantタスクとか?)場合に、eclipseに以下のようなテンプレートを登録しておくと便利。 public static junit.framework.Test suite() { return new JUnit4TestAdapter(${enclosing_type}.class…
この問題解決しました → http://d.hatena.ne.jp/tanigon/20080416#p1うちの会社ではdjUnitを使っている人が多い。これは、たとえば new Date() しているコードを(独立して)テストする staticなメソッドをコールしているコードを(独立して)テストする File()…
icu4j 3.6で、 Transliterator tr = Transliterator.getInstance("Halfwidth-Fullwidth"); tr.transliterate(" "); // 空白のスペース #-> "\u3000" とかなって困った。\u3000は 6文字の文字列であり、エスケープ表現ではない。いろいろ確認してみたが、そも…
なんかよくわからないのだが、ランニングテストかけてたらOutOfMemoryErrorが出てしまう、というアプリがあって なにがクセモノなのか jhat とかかけて調べよう、という段階なのですが、どうもあやしいのがOGNL。 実際には、S2を使っていて、diconの中で hog…
Tomcat5.0および5.5では、たとえば Action(.do) --> Velocity(.vmとか) にRD.forward()されたあとでは、 request.getRequestURI() --> hoge.vm となっていた。つまり、「リクエストのURI」ではなく、forward後の自分のパスになっていた、というわけ。 これで…
コードジェネレータ型のマスタメンテ自動生成フレームワーク? RoRのscaffoldジェネレータが近い。仕組みは大きく異なりますが、RIFE/CRUDも似た感じ?仕事に追われまくってあまりまともに遊べてないのですが、仕事上で調査してみたところ結構面白かった。 こ…
(from きしだのはてな and 今日の役に立たない一言) 私はサブクラスで堂々と参照を重複していてもいいんではないか、と思う。継承する(できる)ことを前提としてスーパークラスが設計されているにも関わらず、フィールドがprivateでかつ使えそうなセッタ・…
ケータイ系が多かったがひさびさにバックエンドというか業務支援系。で、古いソースを叩きなおしてS2化しつつ、新しい要素てんこもりでなんとかキャッチアップをはかる。 Maven2化 なんかいまんところあんまりいい感じじゃない m2eclipse(Mevenide)は結構い…
そういえば、完全におなじテーブル構成のデータベースが2つあるとして、片方をテスト系、片方を本番系として考えたとき、両方に同じBeanとDaoが使えるのは明らかです。で、ある1アプリケーションがその双方にCRUDを行えるようにする、というとき、例えば Da…
やや特殊な用途の業務運用アプリケーションがあり、データベースに対するCRUDのうち CUDつまり更新系についてはデータベース1,データベース2を同時に更新する、というものがある。 要するにレプリケーションなのだが、サーバアプリケーション側からは二台の…
POJOなFormBeanを使うとして public void setHoge(int index, String string) { .. みたいなとき、一応素のStrutsでは使えることになっているみたいなのだが、S2Struts下で試すとNullPointerが出る。う、うーむ。別件でひっかかっているInputValueForm関連な…
XMLマッパではなくて、XMLシリアライゼーションライブラリ、ということで、XStreamってのが良いですよ、って言われたんでちょっと見てた。 ほほう? 比較的分かりやすいConverter(型とXML表現のマッパみたいな)仕様 シンプルで使いやすいファサード(というか…
先のJavaOneTokyo2005でも何種類かデモを見たが、BPMNで作ったフローが直接BPELにマッピング(変換)されて、あとはBPELエンジンで…というのは、対応の幅も広くていかにもスタンダードなのだが、ちょっと話がデカすぎる、というケースもある。Flow4Jぐらいのサ…
ほんとに個人的メモ。http://flow4jeclipse.sourceforge.net/フローデザイナはプラグインとして提供される。 ノーテーションはBPMNやUMLなどとは互換性がない。 設計したフローデザインは .f4j というXMLファイルでセーブされるが、ランタイムにはこのファイ…
というわけでとりあえずたたき台をおいてみる another-s2velocity.zipをダウンロード web.xmlで、VelocityViewServletのかわりにS2VelocityViewServletを指定する。 (とりあえず)toolbox.diconという namespace="toolbox"なdiconを作る サンプルがついてます…
S2Strutsで、Dtoに java.util.Date なプロパティを持たせておく。で、hoge.do?startDate=2005/10/10 とか叩いてみると…no setter methodとかなんとか出てダメ。 追いかけてみると…Commons BeanutilsのConvertUtilsBeanなるクラスに文字列表現→セッタの引数型…
旧SandboxプロジェクトのS2Velocityは、S2.3RCとかでは動作しない。で、この際、ということで自分バージョンを作ってみた。VelocityTools標準のものとは違い、toolbox.xmlそのものを無くすことにして、toolbox.diconでそれを代用させるようにした。これでDI…
JDK5に付いてくる jconsole が激しく便利だった。JMX準拠で、監視対象VMに登録されているMBeanをコンソールから見たりメッセージ送ったりできるので、ただのヒープメモリ監視ツールに留まらず、例えばあるコンポーネントのプロパティの無停止変更、Tomcatの…
5つもない(笑)djUnitを仕事でも使っているのですが、djUnitが依存しているライブラリBCELがまだTigerに対応していません。 で、ローカル変数がGenericsを使ったようなコードに対してVMOなどを使ったテストを実施しようとすると LVTT がどうのこうのでClassFo…
ちょっと凝ったexpectationの実現のために jMock MockInterceptor djUnitのVirtual Mock Objects の3つを使い分けるとうまくいくシーンがありました。モックオブジェクトのフレームワークも別に一つに絞る必要はなくて、いろいろ使い分ければいいのですが、…