URLDeployScannerについての小話

URLDeployScannerってのはクラス宣言がこうなっていて、こいつ自身は対象ディレクトリをスキャンするためのscanメソッドとか、差分をデプロイしたりアンデプロイするためのdeployメソッド/undeployメソッドといったものを持っているけれども、MBeanとしては肝心のライフサイクルメソッドを持っていない。

public class URLDeploymentScanner extends AbstractDeploymentScanner
   implements DeploymentScanner, URLDeploymentScannerMBean

で、どこでライフサイクルメソッドが実装されているかというと基底クラスのAbstractDeploymentScanner。

AbstractDeploymentScannerはcreateServiceメソッドでScannerThreadを作成する。こいつはjava.lang.Threadの継承クラスで、scanPeriod(5000ms)ごとにAbstractDeploymentScanner実装クラスのdoScanメソッドを呼ぶスレッドとなって稼動する。

後はこのScannerThread自身もshutdownHookに追加されたりとかetc。