java

PowerMockでstatic methodのmock/stubが可能なようだ

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プラグインでsnapshotへの依存を残したままリリースする

Maven2には releaseプラグインというかなり便利なものがある。これを使うと、バージョニングとかpom.xmlの書き換えとか、ソースコードリポジトリへのタギングとか、なんかもう色々なことが自動化できてしまって最高である。これだけでmavenで管理する価値も…

S2Velocity 1.2.1 リリースしました

S2Velocity 1.2 にバグ(スレッドセーフではない)があり、MLでご指摘いただいて修正しました。 この修正のみとなりますが、 1.2.1 としてリリースいたしました。はじめにバグのご指摘を頂いたうえしんさんありがとうございます。S2Velocityそのものについての…

S2Velocity 1.2 リリースしました

VelocityテンプレートをWebアプリケーションのビューとして用いる場合に、S2Containerとのビューヘルパー(ツールボックス)インスタンスの管理をS2Containerと統合するためのコンポーネント、S2Velocity 1.2 をリリースしました!詳細はこちら: http://s2velo…

Javaでゲームを作るときに調べるべきライブラリ

とりあえずの「まとめ」ということで、Javaで(主に2Dの)ゲームを作る際にまずは訪れてみたい、調べてみたいライブラリ/フレームワークをまとめてみました。 足りない、これも追加するべき、というのがあったら教えてくださいませ。バインディング/ライブラリ…

versionタグなしが許されない点に注意が必要

m2eclipseの最新版を入れて使っていると、依存ライブラリを取ってこなかったりソースフォルダの設定が消えたり、と不可解な動作をしてハマったのでメモ。以下のような状況のときに起きる。 たとえば、 pom.xml <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-webdav</artifactId> </extension> </extensions> こん…

ClockWrapperパターンを守れないときにdjUnitのVMOが役立つ

http://capsctrl.que.jp/kdmsnr/wiki/bliki/?ClockWrapper ClockWrapperはある種のパターン(と、例えば安易なnew Date()に対するアンチパターン?)の提示。これは一度「ユニットテストできねえ!」という話になって教訓のようになることも多いのだけど、同種…

proxy環境下で scpを使って site-deploy出来ないときの対応

maven-site-pluginに報告あり : MSITE-211で、このエントリは 現象としては mvn site-deploy すると ProxyHTTPうんぬんエラーになる という件に対する対応方法です。 エラーの断片 [INFO] ----------------------------------------------------------------…

Maven2+djUnit その3 … ついに動いた!

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 その2

Maven2でdjUnitを使う、という調査をしていて、その続報メモ。まず、ここでいうdjUnitは "Virtual Mock Objectを使ったテストができること" と前提をおきます。jcoverageはこの際考えません。で、 maven-surefire-plugin について色々と調べていくと、pom.xm…

JUnit4Adapterテンプレート

JUnit4向けに書かれたテストケースをJUnit3環境で走らせる(djUnitのantタスクとか?)場合に、eclipseに以下のようなテンプレートを登録しておくと便利。 public static junit.framework.Test suite() { return new JUnit4TestAdapter(${enclosing_type}.class…

Maven2+djUnit+Cloverに挑む

この問題解決しました → http://d.hatena.ne.jp/tanigon/20080416#p1うちの会社ではdjUnitを使っている人が多い。これは、たとえば new Date() しているコードを(独立して)テストする staticなメソッドをコールしているコードを(独立して)テストする File()…

Halfwidth→Fullwidth 変換の半角スペース問題

icu4j 3.6で、 Transliterator tr = Transliterator.getInstance("Halfwidth-Fullwidth"); tr.transliterate(" "); // 空白のスペース #-> "\u3000" とかなって困った。\u3000は 6文字の文字列であり、エスケープ表現ではない。いろいろ確認してみたが、そも…

OutOfMemory

なんかよくわからないのだが、ランニングテストかけてたらOutOfMemoryErrorが出てしまう、というアプリがあって なにがクセモノなのか jhat とかかけて調べよう、という段階なのですが、どうもあやしいのがOGNL。 実際には、S2を使っていて、diconの中で hog…

request.getRequestURL()実装

Tomcat5.0および5.5では、たとえば Action(.do) --> Velocity(.vmとか) にRD.forward()されたあとでは、 request.getRequestURI() --> hoge.vm となっていた。つまり、「リクエストのURI」ではなく、forward後の自分のパスになっていた、というわけ。 これで…

OpenXava

コードジェネレータ型のマスタメンテ自動生成フレームワーク? RoRのscaffoldジェネレータが近い。仕組みは大きく異なりますが、RIFE/CRUDも似た感じ?仕事に追われまくってあまりまともに遊べてないのですが、仕事上で調査してみたところ結構面白かった。 こ…

superに渡したオブジェクトを使いたい

(from きしだのはてな and 今日の役に立たない一言) 私はサブクラスで堂々と参照を重複していてもいいんではないか、と思う。継承する(できる)ことを前提としてスーパークラスが設計されているにも関わらず、フィールドがprivateでかつ使えそうなセッタ・…

ひさびさの業務Webアプリ系

ケータイ系が多かったがひさびさにバックエンドというか業務支援系。で、古いソースを叩きなおしてS2化しつつ、新しい要素てんこもりでなんとかキャッチアップをはかる。 Maven2化 なんかいまんところあんまりいい感じじゃない m2eclipse(Mevenide)は結構い…

S2Daoの接続先動的切り替え

そういえば、完全におなじテーブル構成のデータベースが2つあるとして、片方をテスト系、片方を本番系として考えたとき、両方に同じBeanとDaoが使えるのは明らかです。で、ある1アプリケーションがその双方にCRUDを行えるようにする、というとき、例えば Da…

C-JDBC with S2Dao

やや特殊な用途の業務運用アプリケーションがあり、データベースに対するCRUDのうち CUDつまり更新系についてはデータベース1,データベース2を同時に更新する、というものがある。 要するにレプリケーションなのだが、サーバアプリケーション側からは二台の…

POJO Formの場合 IndexedPropertyが使えない?

POJOなFormBeanを使うとして public void setHoge(int index, String string) { .. みたいなとき、一応素のStrutsでは使えることになっているみたいなのだが、S2Struts下で試すとNullPointerが出る。う、うーむ。別件でひっかかっているInputValueForm関連な…

XStreamって地味に良い?

XMLマッパではなくて、XMLシリアライゼーションライブラリ、ということで、XStreamってのが良いですよ、って言われたんでちょっと見てた。 ほほう? 比較的分かりやすいConverter(型とXML表現のマッパみたいな)仕様 シンプルで使いやすいファサード(というか…

続メモ

先のJavaOneTokyo2005でも何種類かデモを見たが、BPMNで作ったフローが直接BPELにマッピング(変換)されて、あとはBPELエンジンで…というのは、対応の幅も広くていかにもスタンダードなのだが、ちょっと話がデカすぎる、というケースもある。Flow4Jぐらいのサ…

Flow4Jメモ

ほんとに個人的メモ。http://flow4jeclipse.sourceforge.net/フローデザイナはプラグインとして提供される。 ノーテーションはBPMNやUMLなどとは互換性がない。 設計したフローデザインは .f4j というXMLファイルでセーブされるが、ランタイムにはこのファイ…

S2Velocity別バージョン

というわけでとりあえずたたき台をおいてみる another-s2velocity.zipをダウンロード web.xmlで、VelocityViewServletのかわりにS2VelocityViewServletを指定する。 (とりあえず)toolbox.diconという namespace="toolbox"なdiconを作る サンプルがついてます…

ActionFormってjava.util.Date型のプロパティ扱えないの?

S2Strutsで、Dtoに java.util.Date なプロパティを持たせておく。で、hoge.do?startDate=2005/10/10 とか叩いてみると…no setter methodとかなんとか出てダメ。 追いかけてみると…Commons BeanutilsのConvertUtilsBeanなるクラスに文字列表現→セッタの引数型…

S2Velocity別バージョン

旧SandboxプロジェクトのS2Velocityは、S2.3RCとかでは動作しない。で、この際、ということで自分バージョンを作ってみた。VelocityTools標準のものとは違い、toolbox.xmlそのものを無くすことにして、toolbox.diconでそれを代用させるようにした。これでDI…

MBeanを書いてみる

JDK5に付いてくる jconsole が激しく便利だった。JMX準拠で、監視対象VMに登録されているMBeanをコンソールから見たりメッセージ送ったりできるので、ただのヒープメモリ監視ツールに留まらず、例えばあるコンポーネントのプロパティの無停止変更、Tomcatの…

Tigerに移行しない5つの理由

5つもない(笑)djUnitを仕事でも使っているのですが、djUnitが依存しているライブラリBCELがまだTigerに対応していません。 で、ローカル変数がGenericsを使ったようなコードに対してVMOなどを使ったテストを実施しようとすると LVTT がどうのこうのでClassFo…

モックフレームワークの使い分け

ちょっと凝ったexpectationの実現のために jMock MockInterceptor djUnitのVirtual Mock Objects の3つを使い分けるとうまくいくシーンがありました。モックオブジェクトのフレームワークも別に一つに絞る必要はなくて、いろいろ使い分ければいいのですが、…