jBPM4.4安装时候数据库的配置

在通过ant执行build.xml,安装jBPM时候,数据库的配置如下:

 

jBPM目前安装在tomcat中,

 

和数据库进行相连,在build.xml中:

<target name="install.jbpm.into.tomcat" description="Deploy jBPM to Tomcat">

由这个target生成

 

 install.jbpm.into.tomcat的配置中,有以下配置:

    <generatecfg connection="tomcat" />

    <!-- create the jbpm configuration jar file in lib/ -->
    <jar destfile="${tomcat.home}/lib/jbpm-cfg.jar">
      <fileset dir="${jbpm.home}/install/generated/cfg">
        <include name="jbpm.cfg.xml" />
        <include name="jbpm.hibernate.cfg.xml" />
        <include name="jbpm.mail.properties" />
      </fileset>
    </jar>

 jbpm.cfg.xml,  jbpm.hibernate.cfg.xml, jbpm.mail.properties 这3个文件打包在jbpm-cfg.jar中。

(还有一个logging.properties没有见到上哪里去了)

 

对于generatecfg的配置:

  <macrodef name="generatecfg">
    <!-- {standalone | jta | spring | tomcat} -->
    <attribute name="transaction" default="standalone" />
    <!-- jdbc | datasource -->
    <attribute name="connection" default="jdbc" />
    <!-- jdk | none -->
    <attribute name="log" default="jdk" />
    <!-- default | testsuite -->
    <attribute name="mail" default="default" />

    <sequential>
      <mkdir dir="${cfg.dest.dir}" />
      <copy tofile="${cfg.dest.dir}/jbpm.cfg.xml"
            file="${install.src.dir}/cfg/jbpm/@{transaction}.jbpm.cfg.xml"
            overwrite="true"
            failonerror="false" />
      <copy tofile="${cfg.dest.dir}/jbpm.hibernate.cfg.xml"
            file="${install.src.dir}/cfg/hibernate/@{connection}/${database}.hibernate.cfg.xml"
            overwrite="true">
        <filterset filtersfile="${jdbc.properties.dir}/${database}.properties" />
      </copy>
      <replace file="${cfg.dest.dir}/jbpm.hibernate.cfg.xml"
               token="$${bind.address}"
               value="${bind.address}" />
      <copy todir="${cfg.dest.dir}" overwrite="true">
        <fileset dir="${install.src.dir}/cfg/logging/@{log}" />
      </copy>
      <copy tofile="${cfg.dest.dir}/jbpm.mail.properties"
            file="${install.src.dir}/cfg/mail/jbpm.mail.@{mail}.properties"
            overwrite="true">
        <filterset>
          <filter token="bind.address" value="${bind.address}" />
        </filterset>
      </copy>

      <!-- If the target environment uses Spring, also copy the applicationContext.xml file-->
      <condition property="is.spring.environment">
        <contains string="@{transaction}" substring="spring" />
      </condition>
      <antcall target="internal.copy.spring.applicationContext" />
    </sequential>
  </macrodef>

 在执行install.jbpm.into.tomcat的时候,根据设置的参数,将所用到的参数文件,放到${cfg.dest.dir}目录中,

打包成jbpm-cfg.jar,放在tomcat/lib目录中了

 

----------------------------------------------------------------------------------

这些文件的来源:

 

这些文件都是在install/src/cfg目录中的,从每个目录中复制一个文件过来:

      <copy tofile="${cfg.dest.dir}/jbpm.cfg.xml

"
            file="${install.src.dir}/cfg/jbpm
/@{transaction}.jbpm.cfg.xml"
            overwrite="true"
            failonerror="false" />

      <copy tofile="${cfg.dest.dir}/jbpm.hibernate.cfg.xml

"
            file="${install.src.dir}/cfg/hibernate
/@{connection}/${database}.hibernate.cfg.xml"
            overwrite="true">
            <filterset filtersfile="${jdbc.properties.dir}/${database}.properties" />
      </copy>
      <!-- 这个replace有问题的,看是在hibernate配置文件中,替换bind.address变量,
             但是实际情况中,只有在mail的配置文件中,才出现bind.address这个变量   -->

      <replace file="${cfg.dest.dir}/jbpm.hibernate.cfg.xml"
               token="$${bind.address}"
               value="${bind.address}" />

       <!-- log的配置文件处理 -->
       <copy todir="${cfg.dest.dir}" overwrite="true">
            <fileset dir="${install.src.dir}/cfg/logging
/@{log}" />
      </copy>

      <copy tofile="${cfg.dest.dir}/jbpm.mail.properties

"
            file="${install.src.dir}/cfg/mail
/jbpm.mail.@{mail}.properties"
            overwrite="true">
        <filterset>
          <filter token="bind.address" value="${bind.address}" />
        </filterset>
      </copy>
     
      <!-- Spring的处理

 If the target environment uses Spring, also copy the applicationContext.xml file-->
      <condition property="is.spring.environment">
        <contains string="@{transaction}" substring="spring" />
      </condition>
      <antcall target="internal.copy.spring.applicationContext" />

 

tomcat的安装中,hibernate数据库连接用到了JNDI配置:java:comp/env/jdbc/JBpmDS

但是在安装的地方没有设置(只有在birt中有提到)

 

但是在生成的tomcat/conf目录中生成的server.xml中,有一个Resource,名字为:jdbc/jbpm,而不是JBpmDS。

 

在tomcat/webapps中的2个安装的工程:

gwt-console-server和jbpm-console的 META-INF目录中的context.xml文件中,把JBpmDS指向了jdbc/jbpm

<?xml version="1.0" encoding="UTF-8"?>

<Context>
  <ResourceLink name="jdbc/JbpmDS
" global="jdbc/jbpm
" type="javax.sql.DataSource" />
  <Realm className="org.jbpm.integration.tomcat6.JbpmConsoleRealm" dataSourceName="jdbc/jbpm" />
</Context>

 通过这样的方式,把jBPM工程中的JNDI名字和tomcat中的Resource连接起来;

 

 

你可能感兴趣的:(spring,tomcat,Hibernate,xml,jbpm)