Spring
maven2 との連携の観点から。 Eclipse 3.4 (WTP 2.0) では以下のような動きをするというメモ。 Tomcat 前回の記事のコメントでもらった以下の情報通りにやると動かない。(アプリは動くが Hotdeploy できない)http://d.hatena.ne.jp/uriyuri/20080328/12066…
thick4 で Spring でも Hotdeploy ができるようになったのだが、実は Hotdeploy の仕組みと Eclipse WTP の 各種 Server プラグインの相性があまり良くないということがわかった。Hotdeploy は Eclipse の Javaクラス自動ビルド機能を利用して、ソースの変更…
とりあえずモノがないと、信じてくれない人もいると思う(自分がそうなので)ので、Spring で Hotdeploy を実現するライブラリーを公開します。http://code.google.com/p/thick4/Slim3 が正式に Spring から手を引いたみたいなので、トリビュートとして thic…
SpringでもDIのためだけにセッターを書く必要はない、という話です。 Spring 使っている人には当たり前の話なので、読み飛ばしてください。 public class Foo { @Autowired public Bar bar; } もしくは public class Foo { @Resource public Bar bar; } 早く…
Spring で Hotdeploy を書いているわけですが、2つほどショックなことが。1つ目は Spring のメンテナンス・ポリシーの変更。http://www.springsource.com/node/558というわけで、実質的に Spring (2.5.5 以降の) のマイナー・バージョン は有償化です。 こ…
再読み込み対象の XML ファイルの登録。 XmlBeanDefinitionReaderCBP の機能を再現します。 /** * Registers each XML bean resource with the SpringSingletonReconfigurer. */ public class XmlBeanDefinitionReaderCBP extends JavassistClassBytecodePro…
本命のキャッシュ無効化! org.zeroturnaround.javarebel.integration.spring.InjectionMetadataCacheCBP を移植?します。 public class InjectionMetadataCacheCBP extends JavassistClassBytecodeProcessor { public void process(ClassPool cp, ClassLoa…
順番が前後してしまいましたが、Hotdeployに関連するクラス一覧をあげておきます。 SpringPlugin クラスをみてもらうとわかるのですが、JavaRabel は以下のクラスに対して Javassist で変更をかけています。 org.springframework.beans.factory.annotation.A…
それでは、XmlWebApplicationContext を継承した、Hotdeploy対応の HotDeployXmlWebApplicationContext クラスを作っていきます。まずは、以下のXmlBeanDefinitionReaderCBP の移植方法です。 package org.zeroturnaround.javarebel.integration.spring; imp…
Springは内部で色々とキャッシュを持っているので、Hotdeployするためにはそれを無効化する方法を考えなくてはいけません。と言っても、ゼロから調査するのは大変なので、先人の知恵を拝借。ひがさんのところでも紹介されていた以下のOSSを参考にしました。J…
Slim3がなかなか出てこないけど、案件は迫ってきているので、仕方なく自分で実装することしました。 備忘録代わりに、何日かやってみた経過を記したいと思う。対象は Spring 2.5.2 以上です。SpringでHotdeployしようとする場合、Classオブジェクトやインス…