タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

JavaとHotDeployに関するmamatumoのブックマーク (2)

  • hotdeployもどき その2

    hotdeployもどき その2を考えてみました。 hotdeployを実現するには、クラスローダーを用意して、hotdeployかけたいクラスを読み込めばいいことがわかりました。 そこでおきる問題は、hotdeployのクラスローダーで読みこんだクラスと、先に読み込んだクラスローダーで読み込まれるクラスはまったく別ものだということです。 つまり、同じクラスでもキャストができません。 ですので、hotdeployの対象となるクラスだけ読み込みなおすということと、実装と定義の分離が重要となります。 hotdeployする対象のクラスとそのインターフェイスを分離することで、実行時にリフレクションを使わないで実行できます。 その際の注意点は、インターフェイスはオリジナルのクラスローダーで読み込ませないようにすることです。 お手軽な実験ソースです。 package hotdeploy; impor

  • JRebelを使った動的クラスリローディング

    「あばばばばばばばば」 はい、この記事は、「じゃば あばばばば かれんだー - 邪 2010」の9日目、12/21日のものですのよ? 昨日は、id:nekopのBytemanによるJava黒魔術 - nekopの日記でした。このBytemanが利用している「Java(TM) java.lang.instrument」を利用したもうひとつの例として、JRebelというプロダクトを利用した動的なクラス再ローディングについて、ちょいと紹介しようと思いますのよ奥さん? そもそもjava.lang.instrument APIってなんぞ? Instrument APIは、監視/観察の対象となるアプリケーションのバイトコードをほかのバイトコードに置き換える(BCIを行う)ための枠組みを提供する。置き換えの方法としては、以下の2とおりが提供されている。 ●クラスがロードされる過程に割り込み、そのバイトコ

    JRebelを使った動的クラスリローディング
  • 1