Menu

FrontPage

Eclipseプラグイン
Eclipse小技集
リファクタリング講座
テスティングフレームワーク JUnit
MSDEについて



The 20 newest affair
2010-09-092010-09-082010-09-072010-09-062010-09-012010-08-312010-08-272010-08-242010-08-232010-08-172010-08-162010-07-302010-07-212010-07-132010-06-272010-06-182010-06-172010-06-16

version0.8.0で、パッチなしで実行できるようになりました。


jakarta HiveMind と djUnit


たまたま、「HiveMind1.0を使用したクラスのテストをdjUnitで実行したい」という相談が来たので、調査してみました。

    HiveMind[http://jakarta.apache.org/hivemind/]

HiveMindとは?  Λ


全く、詳しくないし、きちんと使ったわけではないのですが、
SpringフレームワークのIoCコンテナに似ているという印象を受けました。
(他にも、いろいろできるようですが)

現象  Λ


HiveMind1.0を使用したクラスのテストをdjUnitで実行すると、以下のエラーが出ます。

org.apache.hivemind.ApplicationRuntimeException:
$InnerProxy_1008eb7ab41_1.<init>($SingletonProxy_1008eb7aa0b_0, org.apache.hivemind.impl.servicemodel.SingletonServiceModel)

調査結果  Λ


いろいろ調べた結果、HiveMind1.0のクラスローダにパッチを当てるのが、今のところ一番簡単だという結論になりました。

    org.apache.hivemind.service.impl.ClassFactoryClassLoaderの 31行目を修正しました。

    [修正前] super();
    [修正後] super(Thread.currentThread().getContextClassLoader());

この修正後のClassFactoryClassLoaderを、クラスパスに追加(hivemindのjarよりも前に)することで、動作するようになりました。

とりあえずの対策(for HiveMind1.0)  Λ


    修正後ののソースを公開しますので、ダウンロードして、コンパイルし、クラスパスに追加してみてください。

    一番簡単なのは、プロジェクトのソースに追加してしまうことです。

hivemind-patch.zip


Attached File: [Attached File All List]

Lastmodified: 2006-06-03 (土) 17:27:58 (1558d)