Java

Javaによるうるう年チェック

土曜日に参加したペアプログラミング勉強会で作って自信満々にお披露目したうるう年チェックのコードが誤ってたのでここでさらしておきますw

クラスパスのワイルドカード

Java 1.6からやっとクラスパスにワイルドカードを指定できるようになりました。 でも、若干動きが微妙です。例えば、 dom4j-1.6.1.jar hoge.bat hoge.jar junit.jar log4j-1.3.jarと言うファイル群があるディレクトリで、 java -cp * hoge.Launcherと叩くと…

自己参照でかつ継承するテーブルの扱い

切るところが無い。。。 非常に冗長になってしまったので、短気な人は暇なときにでもお越しくださいな。

Actionクラスにロジックを書くな!!

新しいプログラマーが来るたびに同じこと言わすなっつぅの! 多分、ネットで引っかからないんだろうな。だから、書いておくことにした。 もぅ、Shaleや、JSFもあるし今更感は多分にありますが、今更ながら言わされたので。。。プレゼンテーションロジックは…

coberturaに日本語パッチをあてる

以前の日記でコードカバレッジで、djUnitを使用するように書きましたが、 Antから実行するのがどうにも厄介そう*1なので、急遽jcoverageの後継であるcoberturaを使用するように変更しました。しかし、このツールも他のツールと同様、お米の国の方が作成した…

cglibを使用しているプログラムでdjUnitを使うための適当パッチ

Hibernateは内部でcglibを用いています。 SpringFrameworkもクラスに対してAOPを適用しようとするとcglibを使おうとします。 cglibは、クラス生成を行うためにASMの1.5.3を内部的に使用しています。 1.5.3は二世代前のバージョンなのですがこれまではさした…

cflow系ポイントカットとifポイントカットの相性

この件は、言語仕様として明には書かれていない(と思われる)ため、 違うバージョンでは違う振る舞いをするかもしれません。 ちなみに、実験したバージョンはこんな感じです。 Eclipse 3.3.0(Europa) AJDT 1.5.0 AspectJ 1.5.4.200705211336 JDK 1.6.0_02 …

JDTコンパイラならOKだけど、純正コンパイラじゃ通らない記述

久々にはまった。。。 以前にも書きましたが、JDTコンパイラとSunの純正コンパイラはいろいろ微妙に振る舞いが違ってます。 01:public class Sample { 02: public static void main(String[] args) { 03: List list = new ArrayList(); 04: list.add(1L); 05…

速報。。。XDocletのバグ!?

誤報(勘違い)であることをひたすらに願う!! (2006.12.12追記)誤報でしたm(_._)m今のお仕事では、DBアクセスのクラスは、、、 Torqueのスキーマファイルのフォーマット(若干拡張している)にテーブル定義を書く Torqueのタスクを叩いてHibernateのXDo…

RAC構成のOracleへthinドライバで接続するためのJDBC URL

とあるお客様のお仕事でたまたまOracleのRAC構成のサーバへ接続する必要が生じました。 RAC構成のOracleへ接続する場合、JDBC URLはtnsnames.oraに書くのと全く同じように書かないと接続はできません。 つまりこんな感じ。 Class.forName("oracle.jdbc.Oracl…

@Implementsアノテーションも欲しいなぁ。。。

tigerにも徐々に使い慣れてきた今日この頃。 当初は@Overrideアノテーションにすごい感謝してたのですが、 最近はちょっと不満に感じてきました。@Overrideアノテーションは、ある特定のメソッドがOverrideされた メソッドであることを表明するアノテーショ…

Eclipseじゃ通るけどantのjavacタスクじゃ通らない記述

Eclipseのコンパイラってjavacと互換性ないのね。。。 同一マシンで同一JavaVMでも動作しやがらねぇ。 Write Once Run Anywereの精神はどこにいきやがりやったのでしょう?今日はEclipseがIEに見えました。(T_T) その1.アノテーションで配列のメタデータを…

struts-tilesはマルチスレッド?

struts-tilesなのか、jasperなのかは不明ですが、 titlesでページを部品化した場合、それぞれのJSPの実行は、 同一スレッドでの実行が保証されないんですね。認証情報をHttpSessionから引っ張ってくるのはダサい(*1)ので、 ThreadLocalに格納するように…

svnantはtiger専用?

以下のお話は2006/1/17時点でダウンロードしたもののお話です。svnantは、tigerで追加されたAPIを利用している箇所が有ります。まだ、業務系のお仕事では諸事情でJDK 1.4.2.xを利用しているところが 大半だと思いますので、このままでは使えません。org.t…

Excelの「縮小して全体を表示する」をPOIで指定できるようにするパッチ

元ねたはここ パッチ自体はアスペクトで当てるほうがエレガント(だと個人的に思う)なので、 AspectJで記述。 package jp.gr.java_conf.e_yamane.apache.poi; import org.apache.commons.beanutils.BeanUtils; import org.apache.poi.hssf.record.ExtendedF…

続・AJDT 1.2M2駄目ぽ

Eclipse 3.0.xは Java 5.0サポートしてないじゃん!orzだっせぇ。 速攻困ってしまった。つぅ訳でなんでAJDT 1.2M2が動かないか本気で調べてみることにしました。で、原因判明! Eclipseの製品構成を見ると、見事にバッテンが付いてます。 このフィーチャーが…

AJDT 1.2M2駄目ぽ

嘘有り。続編へ今まではAspectJを使用する場合は、DOS窓+テキストエディタで しこしこ作ってたんですが、さすがに面倒になってきました。暇で暇で仕方ないので、AJDTを入れてみることにしました。 JavaPressの私の記事をご覧になった方はご存知かもしれませ…

enumのtoString()

JDK 5.0のenum。そのまま出力すると、定義名がそのまま出力されるんですが、 この振る舞いを変更できないのが気持ち悪い。 public class EnumSample { public static enum TYPE {A, B, C}; public static void main(String[] args) { System.out.println(TYP…