|
jakarta Hivemindについてhttp://works.dgic.co.jp/djwiki/Viewpage.do?pid=@6A616B6172746120486976656D696E64E381ABE381A4E38184E381A6Encoding:UTF-8 / Locale:en_US / PageStatus: Frozen Owner of this page:kataoka |
jakarta HiveMind と djUnitたまたま、「HiveMind1.0を使用したクラスのテストをdjUnitで実行したい」という相談が来たので、調査してみました。 HiveMind[http://jakarta.apache.org/hivemind/] HiveMindとは? Λ全く、詳しくないし、きちんと使ったわけではないのですが、 SpringフレームワークのIoCコンテナに似ているという印象を受けました。 (他にも、いろいろできるようですが) 現象 ΛHiveMind1.0を使用したクラスのテストをdjUnitで実行すると、以下のエラーが出ます。 org.apache.hivemind.ApplicationRuntimeException: 調査結果 Λいろいろ調べた結果、HiveMind1.0のクラスローダにパッチを当てるのが、今のところ一番簡単だという結論になりました。 org.apache.hivemind.service.impl.ClassFactoryClassLoaderの 31行目を修正しました。 [修正前] super(); [修正後] super(Thread.currentThread().getContextClassLoader()); この修正後のClassFactoryClassLoaderを、クラスパスに追加(hivemindのjarよりも前に)することで、動作するようになりました。 とりあえずの対策(for HiveMind1.0) Λ修正後ののソースを公開しますので、ダウンロードして、コンパイルし、クラスパスに追加してみてください。 一番簡単なのは、プロジェクトのソースに追加してしまうことです。 |