论坛首页 入门技术论坛

web service build.xml

浏览 3437 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-03-30   最后修改:2008-12-15
<project name="ParaDM" default="compile" basedir=".">

  <property environment="env" value="dummy"/>

  <!-- Tomcat home directory -->
  <property name="tomcat.home" value="${env.TOMCAT_HOME}"/>
  <!-- WAR home directory -->
  <property name="war.home" value="${basedir}/../build" />

  <!-- Tomcat home directory -->
  <property name="tomcat.service" value="Apache Tomcat 4.1"/>

  <property name="webapp.locale" value="en_US"/>
  <property name="webapp.temp.resources" value="../temp/resources"/>
  <property name="webapp.temp.classes" value="../temp/classes"/>
  <property name="webapp.temp.lib" value="../temp/lib"/>
  <property name="webapp.temp.wsapi" value="../temp/wsapi"/>
  <property name="webapp.temp.services" value="../temp/services"/>
  <property name="webapp.temp.war" value="../temp"/>
  <tstamp>
    <format property="timestamp" pattern="yyyyMMdd" locale="en"/>
  </tstamp>

  <!-- ParaDM web context name -->
  <property name="webapp.name" value="ParaDM"/>

  <!-- ParaDM version number -->
  <property name="webapp.version" value="3.1.8"/>

  <!-- Source file location -->
  <property name="java.src" value="${basedir}"/>

  <!-- Web file location -->
  <property name="webapp.src" value="${basedir}/../web"/>

  <!-- Applicaton library location -->
  <property name="webapp.lib" value="${webapp.src}/WEB-INF/lib"/>

  <!-- Build result location -->
  <property name="build.dir" value="${webapp.src}/WEB-INF/"/>

  <!-- JavaDoc location -->
  <property name="build.javadoc.dir" value="${basedir}/../doc/java"/>
  <property name="build.tlddoc.dir" value="${basedir}/../doc/tld"/>
  <property name="build.jsdoc.dir" value="${basedir}/../doc/js"/>
  <property name="build.jsdoc.pl" value="D:/Projects/JSDoc-1.9.9.2/jsdoc.pl"/>
 
  <!-- Database Administrator login-->
  <property name="database.dba.login" value="root"/>
 
  <!-- Database Administrator password-->
  <property name="database.dba.password" value=""/> 

  <!-- Database ParaDM user login name -->
  <property name="database.user.login"    value="paradm"/>
 
  <!-- Database ParaDM user password-->
  <property name="database.user.password" value="paradm"/>

  <!-- Database Location -->
  <property name="database.location" value="localhost"/>
 
  <!-- Database instance name -->
  <property name="database.sid" value="ParaDM"/>   
 
  <!-- Directories to store the Web Service generated files -->
  <property name="wsapi.dir" value="${webapp.temp.wsapi}"/> 
  <property name="wsapi.classes" value="${wsapi.dir}/build/classes"/> 
  <property name="wsapi.lib" value="${wsapi.dir}/build/lib"/> 

  <condition property="paradm.home.file" value="D:/ParaDM/file">
    <os family="windows"/>
  </condition>

  <condition property="paradm.home.file" value="/usr/local/bin/ParaDM/file">
    <os family="unix"/>
  </condition>

  <!-- Set classpath -->
  <path id="build.classpath">
    <fileset dir="../lib">
      <include name="**/*.jar"/>
    </fileset>
    <fileset dir="${webapp.lib}">
      <include name="**/*.jar"/>
    </fileset>
    <fileset dir="${tomcat.home}">
      <include name="**/servlet.jar"/>
      <include name="**/mail.jar"/>
      <include name="**/activation.jar"/>
    </fileset>
  </path>

  <taskdef name="foreach" classname="net.sf.antcontrib.logic.ForEach" classpath="../lib/ant-contrib-1.0b3.jar"/>
  <taskdef name="if" classname="net.sf.antcontrib.logic.IfTask" classpath="../lib/ant-contrib-1.0b3.jar"/>

  <!-- Command for compile source and resources files [DEFAULT] -->
  <target name="compile">
    <echo>Build Begin ... ${basedir}</echo>
    <antcall target="compile_src"/>
    <antcall target="compile_res"/>
    <antcall target="copy_class"/>
    <antcall target="copy_properties"/>
    <antcall target="copy_others"/>
  </target>

  <!-- Command for compile java files -->
  <target name="compile_src">
    <!-- ========================================================================= -->
    <!-- Compile the Axis2/XMLBeans generated classes into JAR file (paradm-ws-api.jar)                                        -->
    <!-- ========================================================================= -->
    <antcall target="wsapi"/>
    <copy todir="${webapp.temp.classes}">
      <fileset dir="${java.src}">
      <include name="*.properties"/>
      <exclude name="generate.properties"/>
      </fileset>
    </copy>
    <javac srcdir="${java.src}" destdir="${webapp.temp.classes}" debug="on" memoryInitialSize="128m" memoryMaximumSize="256m" fork="true">
      <classpath refid="build.classpath"/>
      <classpath location="${wsapi.lib}/paradm-ws-api.jar"/>
      <exclude name="com/dcivision/customize/**"/>
    </javac>
    <!-- ========================================================================= -->
    <!-- Compile and package different web services (WS-ParaDM.aar, WS-ParaDOC.aar, etc)                                  -->
    <!-- ========================================================================= -->
    <antcall target="wsaar"/>
  </target>

  <!-- Command for compile resources files -->
  <target name="compile_res" depends="res.chkUpToDate" unless="res.notRequired">
    <mkdir dir="${webapp.temp.resources}"/>
    <copy overwrite="true" todir="${webapp.temp.resources}">
      <fileset dir="${java.src}">
        <include name="**/*Resource*.properties"/>
      </fileset>
    </copy>
    <copy overwrite="true" file="${webapp.temp.resources}/com/dcivision/resource/ApplicationResources.properties" tofile="${webapp.temp.resources}/com/dcivision/resource/ApplicationResources_${webapp.locale}.properties"/>
    <copy overwrite="true" file="${webapp.temp.resources}/com/dcivision/resource/CustomizedResources.properties" tofile="${webapp.temp.resources}/com/dcivision/resource/CustomizedResources_${webapp.locale}.properties"/>
    <native2ascii encoding="utf-8" src="${webapp.temp.resources}" dest="${build.dir}/classes" includes="**/*Resource*.properties" />
  </target>

  <target name="res.chkUpToDate">
    <echo message="Checking resources bundles for update"/>
    <uptodate property="res.notRequired">
      <srcfiles dir="${java.src}" includes="**/*Resource*.properties"/>
      <mapper type="glob" from="*.properties" to="${webapp.temp.resources}/*.properties" />
    </uptodate>
    <if>
      <istrue value="${res.notRequired}"/>
      <then><echo message="Resources bundles up to date: ${res.notRequired}"/></then>
    </if>
  </target>

  <target name="copy_class">
    <copy todir="${build.dir}/classes">
      <fileset dir="${webapp.temp.classes}">
        <exclude name="**/*Resource*.properties"/>
        <exclude name="*.properties"/>
        <exclude name="com/dcivision/ws/**/**"/>
      </fileset>
    </copy>
  </target>

  <target name="copy_properties">
    <copy todir="${build.dir}/classes">
      <fileset dir="${webapp.temp.classes}">
      <include name="*.properties"/>
      <exclude name="generate.properties"/>
      </fileset>
    </copy>
  </target>

  <target name="copy_others">
    <copy file="${java.src}/com/dcivision/workflow/action/AutoTaskTemplate.java" todir="${build.dir}/classes/com/dcivision/workflow/action"/>
  </target>

  <!-- Build Web Application war package -->
  <target name="buildwar"  depends="compile">
<mkdir dir="${war.home}"/>
<war destfile="${war.home}/eip.war" webxml="${webapp.src}/WEB-INF/web.xml">
   <fileset dir="${webapp.src}">
      <exclude name="${webapp.src}/WEB-INF/web.xml"/>
   </fileset>
    </war>
  </target>

  <!-- Command for deployment -->
  <target name="deploy" depends="compile">
    <copy todir="${tomcat}">
      <fileset dir="${classes}"/>
    </copy>
    <copy todir="${jsp}">
      <fileset dir="${src}/com/dcivision/dms/web/jsp"/>
    </copy>
  </target>

  <!-- Command for generation of JavaDoc -->
  <target name="javadoc" depends="compile">
    <javadoc packagenames="com.dcivision.alert,com.dcivision.alert.bean,com.dcivision.alert.core,com.dcivision.alert.dao,com.dcivision.alert.web,com.dcivision.audit,com.dcivision.audit.bean,com.dcivision.audit.core,com.dcivision.audit.dao,com.dcivision.calendar,com.dcivision.calendar.bean,com.dcivision.calendar.dao,com.dcivision.calendar.taglib,com.dcivision.calendar.web,com.dcivision.contact,com.dcivision.contact.bean,com.dcivision.contact.dao,com.dcivision.contact.web,com.dcivision.customize,com.dcivision.customize.workflow,com.dcivision.dms,com.dcivision.dms.bean,com.dcivision.dms.client,com.dcivision.dms.client.analyzer,com.dcivision.dms.client.parser,com.dcivision.dms.core,com.dcivision.dms.dao,com.dcivision.dms.extractor,com.dcivision.dms.taglib,com.dcivision.dms.web,com.dcivision.form,com.dcivision.form.bean,com.dcivision.form.core,com.dcivision.form.dao,com.dcivision.form.web,com.dcivision.forum,com.dcivision.forum.bean,com.dcivision.forum.core,com.dcivision.forum.dao,com.dcivision.forum.web,com.dcivision.framework,com.dcivision.framework.bean,com.dcivision.framework.dao,com.dcivision.framework.image,com.dcivision.framework.notification,com.dcivision.framework.taglib.bean,com.dcivision.framework.taglib.calendar,com.dcivision.framework.taglib.html,com.dcivision.framework.taglib.layout,com.dcivision.framework.taglib.logic,com.dcivision.framework.taglib.newCalender,com.dcivision.framework.web,com.dcivision.framework.xml,com.dcivision.ldap.core,com.dcivision.ldap.web,com.dcivision.mail.bean,com.dcivision.mail.core,com.dcivision.mail.dao,com.dcivision.mail.web,com.dcivision.setup,com.dcivision.setup.bean,com.dcivision.setup.dao,com.dcivision.setup.web,com.dcivision.staff,com.dcivision.staff.bean,com.dcivision.staff.dao,com.dcivision.staff.web,com.dcivision.upload.core,com.dcivision.upload.web,com.dcivision.user,com.dcivision.user.auth,com.dcivision.user.bean,com.dcivision.user.dao,com.dcivision.user.web,com.dcivision.webdav,com.dcivision.webdav.util,com.dcivision.workflow,com.dcivision.workflow.action,com.dcivision.workflow.applet,com.dcivision.workflow.applet.editor,com.dcivision.workflow.applet.editor.gif,com.dcivision.workflow.bean,com.dcivision.workflow.core,com.dcivision.workflow.dao,com.dcivision.workflow.layout,com.dcivision.workflow.taglib,com.dcivision.workflow.web"
             sourcepath="${java.src}"
             destdir="${build.javadoc.dir}"
             windowtitle="DCIVISION ParaDM API"
             author="Yes"
             version="Yes"
             use="Yes"
             maxmemory="512M"
             splitindex="Yes">
     <classpath refid="build.classpath"/>
    </javadoc>
  </target>

  <target name="tlddoc" depends="compile">
    <java fork="true" jar="${build.dir}/lib/tlddoc.jar" failonerror="true">
      <arg line="-d ${build.tlddoc.dir}"/>
      <arg value="${build.dir}/calendar.tld"/>
      <arg value="${build.dir}/cewolf.tld"/>
      <arg value="${build.dir}/dms.tld"/>
      <arg value="${build.dir}/layout.tld"/>
      <arg value="${build.dir}/newCalendar.tld"/>
      <arg value="${build.dir}/schedule.tld"/>
      <arg value="${build.dir}/struts-bean.tld"/>
      <arg value="${build.dir}/struts-html.tld"/>
      <arg value="${build.dir}/struts-logic.tld"/>
      <arg value="${build.dir}/struts-nested.tld"/>
      <arg value="${build.dir}/struts-template.tld"/>
      <arg value="${build.dir}/struts-tiles.tld"/>
      <arg value="${build.dir}/workflow.tld"/>
    </java>
  </target>

  <target name="jsdoc" description="Document the JavaScript"> 
    <exec executable="perl">
      <arg value="${build.jsdoc.pl}"/>
      <arg value="-r" />
      <arg value="--package-naming" />
      <arg value="--no-lexical-privates" />
      <arg value="--project-name" />
      <arg value="ParaDM Javascript" />
      <arg value="--logo" />
      <arg value="${webapp.src}/img/pref3/common/LayoutLogoDefault.gif" />
      <arg value="--directory"/>
      <arg value="${build.jsdoc.dir}"/>
      <arg file="${webapp.src}/js/AnchorPosition.js"/> 
      <arg file="${webapp.src}/js/autoSuggest.js"/> 
      <arg file="${webapp.src}/js/ColorPicker.js"/> 
      <arg file="${webapp.src}/js/dojo.js"/> 
      <arg file="${webapp.src}/js/FloatingSelectionBox.js"/> 
      <arg file="${webapp.src}/js/FormFunction.js"/> 
      <arg file="${webapp.src}/js/Framework.js"/> 
      <arg file="${webapp.src}/js/NewCalendar.js"/> 
      <arg file="${webapp.src}/js/OverLib.js"/> 
      <arg file="${webapp.src}/js/OverLibHiddenForm.js"/> 
      <arg file="${webapp.src}/js/PermissionSetup.js"/> 
      <arg file="${webapp.src}/js/PopupCalendar.js"/> 
      <arg file="${webapp.src}/js/PopupWindow.js"/> 
      <arg file="${webapp.src}/js/Tree.js"/> 
      <arg file="${webapp.src}/js/dojo"/> 
      <arg file="${webapp.src}/js/dojo/dnd"/> 
      <arg file="${webapp.src}/js/dojo/event"/> 
      <arg file="${webapp.src}/js/dojo/html"/> 
    </exec> 
  </target> 

  <!-- Command for clean up classes files -->
  <target name="clean">
    <echo message="Cleanup ..."/>
    <antcall target="stop"/>
    <delete dir="${tomcat.home}/work/Standalone/localhost/${webapp.name}"/>
    <delete dir="${build.dir}/classes"/>
    <delete dir="${build.dir}/services"/>
    <delete>
      <fileset dir="${build.dir}/lib" includes="paradm-web*.jar"/>
    </delete>
    <delete dir="${webapp.temp.resources}"/>
    <delete dir="${webapp.temp.classes}"/>
    <delete dir="${webapp.temp.lib}"/>
    <delete dir="${webapp.temp.wsapi}"/>
    <delete dir="${webapp.temp.services}"/>
    <antcall target="wsapi-clean"/>
  </target>

  <!-- Command for build -->
  <target name="build" depends="compile_src, compile_res, copy_properties">
    <jar jarfile="${build.dir}/lib/paradm-web-${webapp.version}.jar" basedir="${webapp.temp.classes}" excludes="*.properties,log4j.xml,com/dcivision/resource/**"/>
    <jar jarfile="${build.dir}/lib/paradm-client.jar" basedir="${webapp.temp.classes}" includes="com/dcivision/dms/client/**"/>
    <move file="${build.dir}/lib/paradm-client.jar" todir="${java.src}/../client/"/>
    <copy file="${java.src}/dms.conf" todir="${java.src}/../client/"/>
    <copy file="${java.src}/clientrun.bat" todir="${java.src}/../client/"/>
    <delete includeemptydirs="true">
      <fileset dir="${build.dir}/classes">
         <include name="com/**"/>
         <include name="*.class"/>
      <exclude name="*.xml"/>
      <exclude name="com/dcivision/resource/**"/>
      </fileset>
    </delete>
  </target>

  <!-- Command for parascan client build -->
  <target name="client" depends="compile">
    <jar jarfile="${build.dir}/lib/paradm-client.jar" basedir="${build.dir}/classes" includes="com/dcivision/dms/client/**"/>
    <move file="${build.dir}/lib/paradm-client.jar" todir="${java.src}/../client/"/>
  </target>

  <!-- Command for parsing JSP -->
  <target name="parsejsp" depends="compile">
    <echo message="${tomcat.home}"/>

    <copy todir="${basedir}/../temp">
      <fileset dir="${webapp.src}">
        <exclude name="**/*.db"/>
        <exclude name="**/*.txt"/>
        <exclude name="**/*.gif"/>
        <exclude name="**/*.class"/>
        <exclude name="**/*.jpg"/>
      </fileset>
      <mapper type="glob" from="*.jsp" to="*.jsp"/>
    </copy>

    <copy todir="${basedir}/../temp">
      <fileset dir="${webapp.src}">
        <exclude name="**/*.db"/>
        <exclude name="**/*.txt"/>
        <exclude name="**/*.gif"/>
        <exclude name="**/*.jpg"/>
        <exclude name="**/*.jsp"/>
      </fileset>
    </copy>

    <mkdir dir="${tomcat.home}/work/Standalone/localhost/${webapp.name}"/>

    <jspc srcdir="${basedir}/../temp" destdir="${tomcat.home}/work/Standalone/localhost/${webapp.name}" uriroot="${basedir}/../temp" failonerror="No">
       <classpath refid="build.classpath"/>
       <include name="**/*.jsp"/>
       <webapp basedir="${basedir}/../temp"/>
    </jspc>

    <replaceregexp byline="true">
      <regexp pattern="package (.*)" />
      <substitution expression="package org.apache.jsp;" />
      <fileset dir="${tomcat.home}/work/Standalone/localhost/${webapp.name}">
        <include name="**/*.java" />
      </fileset>
    </replaceregexp>

    <deltree dir="${basedir}/../temp"/>
  </target>

  <!-- Command for compiling JSP -->
  <target name="jspc">
    <taskdef classname="org.apache.jasper.JspC" name="jasper2" >
      <classpath id="jspc.classpath">
        <pathelement location="${java.home}/../lib/tools.jar"/>
        <fileset dir="${tomcat.home}/server/lib">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${tomcat.home}/common/lib">
          <include name="*.jar"/>
        </fileset>
      </classpath>
    </taskdef>

    <taskdef name="foreach"
        classname="net.sf.antcontrib.logic.ForEach"
        classpath="${ant}/ant-contrib.jar" />

    <jasper2
       validateXml="false"
       uriroot="${webapp.src}"
       webXmlFragment="${webapp.src}/WEB-INF/generated_web.xml"
       outputDir="${webapp.src}/WEB-INF/src"
       package="some.unique.string.asd34sad">
    </jasper2>

    <replaceregexp match="^package some.unique.string.asd34sad.*;"
             replace="package org.apache.jsp;"
             byline="true">
      <fileset dir="${webapp.src}/WEB-INF/src">
        <include name="**/*.*"/>
      </fileset>
    </replaceregexp>

    <echo>Compiling generated classes from JSPC</echo>
    <foreach target="do-jsp-compile" param="dir-path">
      <path>
        <dirset dir="${webapp.src}/WEB-INF/src"/>
      </path>
    </foreach>
    <move todir="${tomcat.home}/work/Standalone/localhost/${webapp.name}">
      <fileset dir="${webapp.src}/WEB-INF/src">
        <include name="**/*.*"/>
      </fileset>
    </move>
    <delete dir="${webapp.src}/WEB-INF/src"/>
  </target>

  <target name="do-jsp-compile">
    <echo>Compile JSP in: ${dir-path}</echo>
    <javac destdir="${dir-path}"
         optimize="off"
         debug="on"
         failonerror="false"
         srcdir="${dir-path}">
      <classpath>
        <pathelement location="${webapp.src}/WEB-INF/classes"/>
        <fileset dir="${webapp.src}/WEB-INF/lib">
          <include name="*.jar"/>
        </fileset>
        <pathelement location="${tomcat.home}/common/classes"/>
        <fileset dir="${tomcat.home}/common/lib">
          <include name="*.jar"/>
        </fileset>
        <pathelement location="${tomcat.home}/shared/classes"/>
        <fileset dir="${tomcat.home}/shared/lib">
          <include name="*.jar"/>
        </fileset>
      </classpath>
      <include name="*.java" />
    </javac>
    <mkdir dir="${dir-path}/org/apache/jsp"/>
    <move todir="${dir-path}" failonerror="false">
      <fileset dir="${dir-path}/org/apache/jsp">
        <include name="*.*"/>
      </fileset>
    </move>
    <delete dir="${dir-path}/org" failonerror="false"/>
  </target>
 
  <!--
    Task to initialize mysql connection settings
  -->
  <target name="db_init_mysql">
  </target> 
 
  <!--
    Task to mysql deployment, it can:   
      1) checkout the latest source from db/mysql folder
    2) create a new database instance
    3) deploy default ParaDM configuration data
    4) create a databaes user (paradm) for ParaDM application access
    5) grant privileges to this database user (paradm)
    6) update the ParaDM system parameter and storage location path for ParaDOC (DMS_LOC_MASTER.LOC_PATH)
   
    You need to fill in the correct parameters to make it works:
    ${database.location}      : Location of your database, default is "localhost"
    ${database.dba.login}     : Database administrator login, default is "root"
    ${database.dba.password}  : Database administrator password
    ${database.user.login}    : Database user login, default is "paradm"
    ${database.user.password} : Database user password, default is "paradm"
    ${database.sid}           : Database instance you want to create, default is "ParaDM"
  --> 
  <target name="db_deploy_mysql" depends="db_cvsupdate_mysql">
    <property name="database.driver" value="com.mysql.jdbc.Driver"/>
    <property name="database.url" value="jdbc:mysql://${database.location}:3306/mysql?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true"/>         
    <sql
      driver="${database.driver}"
      url="${database.url}"
      userid="${database.dba.login}"
      password="${database.dba.password}"
      onerror="continue">
      <classpath refid="build.classpath"/>
      <transaction>
        CREATE DATABASE ${database.sid};
        USE ${database.sid};
        GRANT ALL PRIVILEGES ON ${database.sid}.* TO '${database.user.login}'@'${database.location}' IDENTIFIED BY '${database.user.password}'       
      </transaction>     
      <transaction  src="../db/mysql/structure.sql"/>
      <transaction  src="../db/mysql/data.sql"/>
    </sql>
    <antcall target="db_configure" inheritAll="true"/>
  </target> 
 
  <!--
    Task to auto apply db patch to your database 
    Comment out the db_cvsupdate_mysql task if you don't want to update source before apply the db patch.
  -->
  <target name="db_patch_mysql"  depends="db_cvsupdate_mysql">
    <property name="database.driver" value="com.mysql.jdbc.Driver"/>
    <property name="database.url" value="jdbc:mysql://${database.location}:3306/${database.sid}?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true"/>         
    <property name="database.type" value="mysql"/>         
   
    <antcall target="db_patch" inheritAll="true"/>
  </target>      
 
  <!--
    Task called by db_patch_{database_type} to apply SQL patch    
  --> 
  <target name="db_patch">
    <sql
      driver="${database.driver}"
      url="${database.url}"
      userid="${database.user.login}"
      password="${database.user.password}"
      onerror="continue">
      <classpath refid="build.classpath"/>
      <transaction  src="../db/${database.type}/alter3.2.0.sql"/>
    </sql>
  </target>  
 
  <!--
    Task called by db_deploy_{database_type} to update ParaDM system parameters and ParaDOC root location path
  -->   
  <target name="db_configure">
    <sql
      driver="${database.driver}"
      url="${database.url}"
      userid="${database.dba.login}"
      password="${database.dba.password}"
      onerror="continue">
      <classpath refid="build.classpath"/>

      <transaction>       
        UPDATE ${database.sid}.DMS_LOC_MASTER SET LOC_PATH='${paradm.home.file}/ParaDOC';       
       
        UPDATE ${database.sid}.SYS_PARAMETER SET PARAMETER_VALUE='${paradm.home.file}/ParaDOC'        WHERE PARAMETER_CODE='dms.archive_file_path';
        UPDATE ${database.sid}.SYS_PARAMETER SET PARAMETER_VALUE='${paradm.home.file}/ParaDOC/cache/' WHERE PARAMETER_CODE='dms.emailArchive.cachefolder.path';
        UPDATE ${database.sid}.SYS_PARAMETER SET PARAMETER_VALUE='${paradm.home.file}/ParaFORM'       WHERE PARAMETER_CODE='form.attachment_physical_path';
        UPDATE ${database.sid}.SYS_PARAMETER SET PARAMETER_VALUE='${paradm.home.file}/KB'             WHERE PARAMETER_CODE='rules.kb_file_path';
        UPDATE ${database.sid}.SYS_PARAMETER SET PARAMETER_VALUE='${paradm.home.file}/Index'          WHERE PARAMETER_CODE='system.index_base_path';
        UPDATE ${database.sid}.SYS_PARAMETER SET PARAMETER_VALUE='${paradm.home.file}/ParaFLOW'       WHERE PARAMETER_CODE='workflow.attachment_physical_path';
        UPDATE ${database.sid}.SYS_PARAMETER SET PARAMETER_VALUE='${paradm.home.file}/ParaFlow/AutomaticTask/bin' WHERE PARAMETER_CODE='workflow.automatic_task_bindir';
        UPDATE ${database.sid}.SYS_PARAMETER SET PARAMETER_VALUE='${paradm.home.file}/ParaFlow/AutomaticTask/src' WHERE PARAMETER_CODE='workflow.automatic_task_srcdir';
      </transaction>
    </sql>
  </target>   
 
  <!-- Task to update the CVS MySQL db script folder  -->
  <target name="db_cvsupdate_mysql">
    <cvs dest="../db/mysql/" command="update"/>
  </target>  

  <target name="restart">
    <antcall target="stop"/>
    <delete dir="${tomcat.home}/work/Standalone/localhost/${webapp.name}"/>
    <antcall target="start"/>
  </target>

  <target name="stop">
    <exec executable="cmd.exe" os="Windows XP">
      <arg line="/c net stop &quot;${tomcat.service}&quot;"/>
    </exec>
  </target>

  <target name="start">
    <exec executable="cmd.exe" os="Windows XP">
      <arg line="/c net start &quot;${tomcat.service}&quot;"/>
    </exec>
  </target>

  <target name="war" depends="build">
    <war destfile="${webapp.temp.war}/${webapp.name}-${timestamp}.war" webxml="D:\Projects\${webapp.name}\Source\web\WEB-INF\web.xml">
      <fileset dir="D:\Projects\${webapp.name}\Source\web">
        <exclude name="**/*.rar"/>
        <exclude name="**/*.zip"/>
        <exclude name="**/.#*"/>
        <exclude name="temp/**"/>
        <exclude name="viewer/**"/>
        <exclude name="WEB-INF/web.xml"/>
        <exclude name="WEB-INF/classes/**"/>
        <exclude name="WEB-INF/lib/**"/>
      </fileset>
      <lib dir="D:\Projects\${webapp.name}\Source\web\WEB-INF\lib">
        <exclude name="ant.jar"/>
      </lib>
      <classes dir="D:\Projects\${webapp.name}\Source\web\WEB-INF\classes"/>
    </war>
  </target>

  <target name="wsapi-clean">
<!--    <delete dir="${wsapi.dir}"/>-->
  </target>

  <target name="wsapi">
    <antcall target="wsapi-clean"/>
    <mkdir dir="${wsapi.dir}"/>
    <foreach target="wsapi-module" param="wsapi.module.dir" inheritall="true">
      <path>
        <dirset dir="${java.src}/com/dcivision/resource/services">
          <include name="*"/>
          <exclude name="schemas"/>
        </dirset>
      </path>
    </foreach>
    <mkdir dir="${wsapi.lib}"/>
    <jar jarfile="${wsapi.lib}/paradm-ws-api.jar" basedir="${wsapi.classes}"/>
  </target>

  <target name="wsapi-module" depends="wsapi.chkUpToDate" unless="wsapi.notRequired">
    <foreach target="wsapi-service" param="wsapi.service.wsdl" inheritall="true">
      <path>
        <fileset dir="${java.src}/com/dcivision/resource/services/${wsapi.module.name}">
          <include name="*.wsdl"/>
        </fileset>
      </path>
    </foreach>
    <mkdir dir="${wsapi.classes}"/>
    <copy todir="${wsapi.classes}/schemaorg_apache_xmlbeans">
      <fileset dir="${wsapi.dir}/resources/schemaorg_apache_xmlbeans"/>
    </copy>
    <javac srcdir="${wsapi.dir}/src" destdir="${wsapi.classes}" debug="on" memoryInitialSize="128m" memoryMaximumSize="256m" fork="true">
      <classpath refid="build.classpath"/>
    </javac>
  </target>

  <target name="wsapi.chkUpToDate">
    <basename property="wsapi.module.name" file="${wsapi.module.dir}"/>
    <echo message="Checking WS-${wsapi.module.name} for update"/>
    <uptodate property="wsapi.notRequired" targetfile="${wsapi.lib}/paradm-ws-api.jar" >
      <srcfiles dir= "${java.src}/com/dcivision/resource/services">
        <include name="schemas/*.xsd"/>
        <include name="${wsaar.module.name}/*.wsdl"/>
        <include name="${wsaar.module.name}/*.xsd"/>
        <!-- No need to generate the API even services.xml is modified -->
        <exclude name="${wsaar.module.name}/services.xml"/>
      </srcfiles>
    </uptodate>
    <if>
      <istrue value="${wsapi.notRequired}"/>
      <then><echo message="Web Service ${wsapi.module.name} up to date: ${wsapi.notRequired}"/></then>
    </if>
  </target>

  <target name="wsapi-service">
    <basename property="wsapi.service.name" file="${wsapi.service.wsdl}" suffix=".wsdl"/>
    <echo message="    Parsing ${wsapi.service.name}"/>
    <antcall target="wsdl2java" inheritAll="true"/>
    <move file="${wsapi.dir}/resources/services.xml" tofile="${wsapi.dir}/services/${wsapi.module.name}/${wsapi.service.name}-service.xml" />
    <move todir="${wsapi.dir}/services/${wsapi.module.name}">
      <fileset dir="${wsapi.dir}/resources">
        <include name="*.wsdl"/>
        <include name="*.xsd"/>
      </fileset>
    </move>
  </target>

  <target name="wsdl2java">
    <taskdef name="codegen" classname="org.apache.axis2.tool.ant.AntCodegenTask"  classpathref="build.classpath"/>
    <echo message="${java.src}/com/dcivision/resource/services/${wsapi.module.name}/${wsapi.service.name}.wsdl"/>
    <codegen
      wsdlVersion="1.1"
      wsdlfilename="${java.src}/com/dcivision/resource/services/${wsapi.module.name}/${wsapi.service.name}.wsdl"
      serviceName="${wsapi.service.name}"
      portName="${wsapi.service.name}SOAP12Port"
      databindingName="xmlbeans"
      generateAllClasses="true"
      serverSide="true"
      serverSideInterface="true"
      generateServiceXml="true"
      output="${wsapi.dir}"
      />
  </target>

  <target name="wsdl2java2">
    <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
      <classpath refid="build.classpath"/>
      <arg value="-uri"/>
      <arg file="${java.src}/com/dcivision/resource/services/${wsapi.module.name}/${wsapi.service.name}.wsdl"/>
      <arg value="-d"/>
      <arg value="none"/>
      <arg value="-ss"/>
      <arg value="-g"/>
      <arg value="-sd"/>
      <arg value="-o"/>
      <arg file="${wsapi.dir}"/>
    </java>
  </target>

  <target name="wsaar">
    <copy todir="${build.dir}/services/lib" file="${wsapi.lib}/paradm-ws-api.jar"/>
    <foreach target="wsaar-module" param="wsaar.module.dir" inheritall="true">
      <path>
        <dirset dir="${java.src}/com/dcivision/resource/services">
          <include name="*"/>
          <exclude name="schemas"/>
        </dirset>
      </path>
    </foreach>
  </target>

  <target name="wsaar-module" depends="wsaar.chkUpToDate" unless="wsaar.notRequired">
    <property name="services.xml.dir" value="${webapp.temp.services}/WS-${wsaar.module.name}/META-INF"/>
    <antcall target="services.xml" inheritAll="true"/>
    <copy todir="${webapp.temp.services}/WS-${wsaar.module.name}/META-INF">
      <fileset dir="${java.src}/com/dcivision/resource/services/${wsaar.module.name}">
        <include name="*.wsdl"/>
        <include name="*.xsd"/>
        <include name="*.xml"/>
      </fileset>
    </copy>
    <copy todir="${webapp.temp.services}/WS-${wsaar.module.name}/schemas">
      <fileset dir="${java.src}/com/dcivision/resource/services/schemas">
        <include name="*.xsd"/>
      </fileset>
    </copy>
    <mkdir dir="${webapp.temp.services}/WS-${wsaar.module.name}/lib"/>
    <jar jarfile="${webapp.temp.services}/WS-${wsaar.module.name}/lib/WS-${wsaar.module.name}-impl.jar" basedir="${webapp.temp.classes}" includes="com/dcivision/ws/**"/>
    <jar jarfile="${webapp.temp.services}/WS-${wsaar.module.name}.aar" basedir="${webapp.temp.services}/WS-${wsaar.module.name}"/>
    <mkdir dir="${build.dir}/services"/>
    <copy todir="${build.dir}/services/" file="${webapp.temp.services}/WS-${wsaar.module.name}.aar"/>
  </target>

  <target name="wsaar.chkUpToDate">
    <basename property="wsaar.module.name" file="${wsaar.module.dir}"/>
    <echo message="Checking WS-${wsaar.module.name} for update"/>
    <uptodate property="wsaar.notRequired" targetfile="${webapp.temp.services}/WS-${wsaar.module.name}.aar" >
      <srcfiles dir= "${java.src}/com/dcivision/resource/services">
        <include name="schemas/*.xsd"/>
        <include name="${wsaar.module.name}/*.wsdl"/>
        <include name="${wsaar.module.name}/*.xsd"/>
        <!-- If services.xml is modified, need to generate a new .aar file -->
        <include name="${wsaar.module.name}/services.xml"/>
      </srcfiles>
    </uptodate>
    <if>
      <istrue value="${wsaar.notRequired}"/>
      <then><echo message="Web Service ${wsaar.module.name} up to date: ${wsaar.notRequired}"/></then>
    </if>
   
  </target>

  <!-- ========================================================================= -->
  <!-- TODO: Dynamically merge each generated services.xml into one within the same module                             -->
  <!-- ========================================================================= -->
  <target name="services.xml">
  </target>

</project>
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics