瞭解一下,怎樣從配置項轉移到jboss 數據源聲明。
1、XXX-deploy目錄下setup.xml文件負責部署工程任務,首先加載了common-targets.xml和common-domain.xml文件
2、在common-targets.xml中的 init-props-db-prepare 任務中,加載了config.dev文件,解析了所有配置項,並加上前綴dbconf。
任務如下:
<target name="init-props-db-prepare">
<loadproperties srcfile="${dir.tpl}/oracle/config.${dbmode}">
<filterchain>
<filterreader classname="org.apache.tools.ant.filters.PrefixLines">
<param name="prefix" value="dbconf."/>
</filterreader>
</filterchain>
</loadproperties>
</target>
3、回到setup.xml文件,在 init-props-db 任務中,配置所有數據庫的用戶名,密碼,sid信息,例如:
<property name="conf.db.zhifb.sid" value="${dbconf.pay.zhifb.sid}"/>
<property name="conf.db.zhifb.user" value="${dbconf.pay.zhifb.user}"/>
<property name="conf.db.zhifb.password" value="${dbconf.pay.zhifb.password}"/>
會依次得到conf.db.zhifb.sid,conf.db.zhifb.user,conf.db.zhifb.password配置信息(包含其他數據庫的)。
在次會到 setup-jboss-db-ds 這個任務,複製所有tpl目錄下面的*ds.xml文件到${dir.server.deploy}目錄下,並且置換*ds文件中的sid。
例如:
<copy file="${dir.tpl}/alipay-trade-ds.xml" tofile="${dir.server.deploy}/alipay-trade-ds.xml"/>
<replaceregexp file="${dir.server.deploy}/alipay-trade-ds.xml" match="@db.zhifb.sid@" flags="sg" replace="${conf.db.zhifb.sid}"/>
先複製alipay-trade-ds.xml文件到deploy目錄下,同時置換該文件中db.zhifb.sid爲conf.db.zhifb.sid,而conf.db.zhifb.sid在前面已經得到。
4、最後在置換login-config.xml文件中的用戶名和密碼。
例如:
<replaceregexp file="${dir.server.conf}/login-config.xml" match="@db.zhifb.user@" flags="sg" replace="${conf.db.zhifb.user}"/>
<replaceregexp file="${dir.server.conf}/login-config.xml" match="@db.zhifb.password@" flags="sg" replace="${conf.db.zhifb.password}"/>
置換該文件中db.zhifb.user爲conf.db.zhifb.user,db.zhifb.password爲conf.db.zhifb.password,而conf.db.zhifb.user和conf.db.zhifb.password在前面已經得到。