了解一下,怎样从配置项转移到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在前面已经得到。