Deployer Architecture - DataSource関係の概要?

とりあえずMain→ServerImpl→MainDeployer/JARDeployer/SARDeplpoyerときて、さらにjboss-service.xml→URLDeployScannerときて、jbossjca-service.xmlの読み込み。

ここでRARDeployerとXSLSubDeployerが来る。RARDeployerは対象拡張子(.rar)の指定がハードコーディングされてるけど、XSLSubDeployerはjbossjca-service.xmlのmbeanのattributeのとこにDdSuffixが"-ds.xml"、EnhancedSuffixesが"300:-ds.xml"と書かれてる。

URLDeployScannerがscanメソッドでデプロイ対象を発見するとthis.deployメソッドを呼び、その中で(MBeanServerに隠されて見えないがおそらく)MainDeployerのdeployメソッドが呼ばれる。MainDeployerではその中で、init/create/startと処理をしていくが、まずinitにてデプロイ対象物を任せるべきSubDeployerを走査する。ここでは登録済み(全てのSubDeployerはstartServiceにてMainDeployerに自身を登録している)のSubDeployerのacceptsメソッドを順に呼び出して聞いていく。

XSLSubDeployer(SubDeployer実装)のacceptsではddsuffixを使って自身がそのデプロイ対象物の処理を引き受けるべきかどうかを判定する。XSLSubDeployerではもちろん"-ds.xml"を受け入れる。それからMainDeployerのcreate/startがそれぞれ呼ばれる。そしてそれぞれの中でXSLSubDeployerのcreate/startがそれぞれ呼ばれる。

そして、XSLSubDeployerのcreate/startではdelegateなSubDeployerのcreate/startにそれぞれ委譲する。でもってこのdelegateの正体は、、、SubDeployerインタフェースをjava.lang.reflect.Proxy越しに実装宣言しているなにものか。しかもdelegate.create()はまたここでMBeanServer経由の呼び出し。ObjectNameは"jboss.system:service=ServiceDeployer"なのでこいつの正体はたぶんSARDeployer。

ここまでは良い(SARDeployerへの委譲はAdmin_Develの説明通り)として、いつConnectionFactoryTemplate.xsl使って-ds.xmlを-service.xmlに変換するんだろう。

もうちょい読み込みneeded。