build.xml 25.0 KB
Newer Older
T
tombaeyens 已提交
1 2 3 4
<?xml version="1.0" encoding="UTF-8"?>

<project name="activiti.setup" default="demo.setup">
  
T
tombaeyens 已提交
5
  <property file="${user.home}/.activiti/build.properties" />
T
tombaeyens 已提交
6 7
  <property file="build.properties" />
  <property file="build.${db}.properties" />
8

T
tombaeyens 已提交
9 10
  <!-- TODO: move that to the standalone profile? -->
  <property file="files/cfg.cycle/cycle.properties" />
T
tombaeyens 已提交
11 12

  <property name="activiti.home" value=".." /> 
T
tombaeyens 已提交
13
  <property name="activiti.version" value="5.0.rc1-SNAPSHOT" />   
T
tombaeyens 已提交
14 15 16 17
  <property name="apache.mirror.url" value="http://mirrors.enquira.co.uk/apache/" />
  <property name="tomcat.home" value="${activiti.home}/apps/apache-tomcat-${tomcat.version}" /> 
  <property name="tomcat.filename" value="apache-tomcat-${tomcat.version}.zip" /> 
  <property name="tomcat.download.url" value="${apache.mirror.url}tomcat/tomcat-6/v${tomcat.version}/bin/${tomcat.filename}" />    
18
  <property name="tomcat.java.opts" value="-server -Xms128m -Xmx512m -XX:NewSize=64m -XX:MaxNewSize=64m -XX:PermSize=256m -XX:MaxPermSize=512m -Dfile.encoding=UTF-8" /> 
19 20 21 22
	
  <property name="macos.browser" value="/usr/bin/open" />
  <property name="windows.browser" value="C:/Program Files/Mozilla Firefox/firefox.exe" />
  <property name="linux.browser" value="firefox" />
T
tombaeyens 已提交
23

24 25
  <property name="cycle.workspace" location="${activiti.home}/apps/${cycle.workspace.file.path}"/>

T
tombaeyens 已提交
26 27 28 29 30
  <!-- 
  to work with Activiti Modeler or Activiti Cycle on trunk, set property activiti.modeler.download.url
  in your ${user.home}/.activiti/build.properties
  -->  
  <property name="activiti.modeler.download.url" value="http://activiti.org/downloads/activiti-modeler-${activiti.version}.war" />
31
  <available property="is.activiti.modeler.available" file="${downloads.dir}/activiti-modeler-${activiti.version}.war" />
32
  <property name="activiti.modeler.repository.home" value="${activiti.home}/apps/activiti-model-repository" />
T
tombaeyens 已提交
33 34 35 36 37 38
  
  <property name="maven.version" value="2.2.1" />
  <available property="is.maven.installed" file="${activiti.home}/apps/apache-maven-${maven.version}" />
  <property name="maven.download.destination" value="${downloads.dir}/apache-maven-${maven.version}.zip" />
  <available property="is.maven.downloaded" file="${maven.download.destination}" />
  <property name="maven.download.url" value="http://www.apache.org/dist/maven/binaries/apache-maven-${maven.version}-bin.zip" />
39
  <condition property="mvn.executable" value="mvn.bat" else="mvn">
T
tombaeyens 已提交
40 41
    <os family="windows"/>
  </condition>
42 43 44 45 46
  <!-- fix to get relative urls working with exec-task under windows (especially maven)-->
  <condition property="vmlauncher" value="false" else="true">
	<os family="windows"/>
  </condition>
	
47 48 49 50 51 52 53 54 55
  <condition property="db.use.mysql">
    <equals arg1="${db}" arg2="mysql" casesensitive="false"/>
  </condition>
  <condition property="db.use.h2">
    <equals arg1="${db}" arg2="h2" casesensitive="false"/>
  </condition>
  <condition property="db.use.postgres">
	<equals arg1="${db}" arg2="postgres" casesensitive="false"/>
  </condition>
56 57 58
  <condition property="db.use.oracle">
	<equals arg1="${db}" arg2="oracle" casesensitive="false"/>
  </condition>
59
	
60
  <property name="maven.path" value="apps/apache-maven-${maven.version}/bin/${mvn.executable}" />
T
tombaeyens 已提交
61

62
  <target name="demo.setup" depends="examples.get.libs.all,
63
  	                                 db.get.libs,
64 65
  	                                 h2.install, 
  	                                 h2.start, 
T
tombaeyens 已提交
66
                                     db.create, 
T
tombaeyens 已提交
67
                                     tomcat.install, 
68
                                     deploy.activiti.engine.into.tomcat,
T
tombaeyens 已提交
69 70
                                     db.demo.data,
                                     deploy.activiti.rest.into.tomcat, 
T
tombaeyens 已提交
71
                                     deploy.activiti.explorer.and.probe.into.tomcat,
72
                                     deploy.activiti.cycle.into.tomcat,
T
tombaeyens 已提交
73
                                     tomcat.start,
74 75
                                     deploy.activiti.modeler.into.tomcat, 
                                     explorer.browser.open "/>
T
tombaeyens 已提交
76 77 78
  
  <target name="demo.teardown" depends="tomcat.stop, db.drop, h2.stop" />
  
79 80 81 82 83
  <target name="examples.get.libs.all" 
  	      depends="examples.get.libs.pvm,
  	               examples.get.libs.engine,
  	               examples.get.libs.spring" 
  	      description="retrieves the libs for all the examples" />
84
    
85 86
  <available property="is.examples.pvm.libs.fetched" file="${activiti.home}/examples/activiti-pvm-examples/libs-runtime" />
  <target name="examples.get.libs.pvm" depends="maven.install, internal.install.activiti.libs" unless="is.examples.pvm.libs.fetched">
87
    <get-module-libs module="pvm" profile="" />
88 89 90 91
  </target>

  <available property="is.examples.engine.libs.fetched" file="${activiti.home}/examples/activiti-engine-examples/libs-runtime" />
  <target name="examples.get.libs.engine" depends="maven.install, internal.install.activiti.libs" unless="is.examples.engine.libs.fetched">
92
    <get-module-libs module="engine" profile="-Ddatabase=${db}" />
93 94 95 96
  </target>

  <available property="is.examples.spring.libs.fetched" file="${activiti.home}/examples/activiti-spring-examples/libs-runtime" />
  <target name="examples.get.libs.spring" depends="maven.install, internal.install.activiti.libs" unless="is.examples.spring.libs.fetched">
97
  	<get-module-libs module="spring" profile=""/>
98 99 100 101
  </target>
	
	<macrodef name="get-module-libs">
		<attribute name="module" />
102
		<attribute name="profile" />
103 104
		<sequential>
	    <mkdir dir="${activiti.home}/examples/activiti-@{module}-examples/libs-runtime" />
105
	    <exec dir="files/examples/modules/activiti-@{module}" executable="../../../../../${maven.path}" vmlauncher="${vmlauncher}">
106
	      <arg line="dependency:copy-dependencies @{profile} -DincludeScope=runtime -DoutputDirectory=../../../../../examples/activiti-@{module}-examples/libs-runtime"/>
107 108
	    </exec>
      <mkdir dir="${activiti.home}/examples/activiti-@{module}-examples/libs-test" />
109
      <exec dir="files/examples/modules/activiti-@{module}" executable="../../../../../${maven.path}" vmlauncher="${vmlauncher}">
110
        <arg line="dependency:copy-dependencies @{profile} -DexcludeScope=runtime -DoutputDirectory=../../../../../examples/activiti-@{module}-examples/libs-test"/>
111 112 113 114 115
      </exec>
	    <copy file="${activiti.home}/lib/activiti-@{module}-${activiti.version}.jar" todir="${activiti.home}/examples/activiti-@{module}-examples/libs-runtime" />
		</sequential>
	</macrodef>
  
116 117 118 119 120
  <target name="db.get.libs" depends="examples.get.libs.engine">
  	<!-- Depending on the db, driver jar is added to fileset jdbc.driver.libs -->
  	<fileset id="jdbc.driver.libs" dir="${activiti.home}/examples/activiti-engine-examples/libs-test">
  	  <include name="h2-*.jar" if="db.use.h2"/>
  	  <include name="mysql-*.jar" if="db.use.mysql"/>
F
frederikheremans 已提交
121
  	  <include name="postgres-*.jar" if="db.use.postgres"/>
122
  	  <include name="ojdbc5*.jar" if="db.use.oracle"/>
123 124 125
  	</fileset>
  </target>
	
126
  <target name="internal.install.activiti.libs">
127
    <exec dir="${activiti.home}/lib" executable="../${maven.path}" vmlauncher="${vmlauncher}">
T
tombaeyens 已提交
128
      <arg line="install:install-file -Dfile=activiti-pvm-${activiti.version}.jar -DgroupId=org.activiti -DartifactId=activiti-pvm -Dpackaging=jar -Dversion=${activiti.version}"/>
T
tombaeyens 已提交
129
    </exec>
130
    <exec dir="${activiti.home}/lib" executable="../${maven.path}" vmlauncher="${vmlauncher}">
T
tombaeyens 已提交
131
      <arg line="install:install-file -Dfile=activiti-engine-${activiti.version}.jar -DgroupId=org.activiti -DartifactId=activiti-engine -Dpackaging=jar -Dversion=${activiti.version}"/>
T
tombaeyens 已提交
132
    </exec>
133
    <exec dir="${activiti.home}/lib" executable="../${maven.path}" vmlauncher="${vmlauncher}">
134
      <arg line="install:install-file -Dfile=activiti-spring-${activiti.version}.jar -DgroupId=org.activiti -DartifactId=activiti-spring -Dpackaging=jar -Dversion=${activiti.version}"/>
T
tombaeyens 已提交
135
    </exec>
T
tombaeyens 已提交
136
  </target>
137

T
tombaeyens 已提交
138 139
  <target name="maven.install" depends="maven.download" unless="is.maven.installed">
    <unzip src="${maven.download.destination}" dest="${activiti.home}/apps" />
140
    <chmod perm="a+x" file="${activiti.home}/apps/apache-maven-${maven.version}/bin/${mvn.executable}" />
T
tombaeyens 已提交
141 142 143 144 145 146 147
  </target>

  <target name="maven.download" unless="is.maven.downloaded">
    <mkdir dir="${downloads.dir}" />
    <get src="${maven.download.url}" dest="${maven.download.destination}" />
  </target>

148
  <target name="h2.install" depends="examples.get.libs.engine" if="db.use.h2">
T
tombaeyens 已提交
149 150
    <mkdir dir="${activiti.home}/apps/h2" />
    <copy todir="${activiti.home}/apps/h2">
151
      <fileset dir="${activiti.home}/examples/activiti-engine-examples/libs-test">
T
tombaeyens 已提交
152 153
        <include name="h2*.jar"/>
      </fileset>
T
tombaeyens 已提交
154
      <fileset dir="files/h2" />
T
tombaeyens 已提交
155 156 157 158 159 160
    </copy>
    <chmod perm="a+x">
      <fileset dir="${activiti.home}/apps/h2">
        <include name="*.sh"/>
      </fileset>
    </chmod>
T
tombaeyens 已提交
161 162
  </target>

163
  <target name="h2.start" depends="internal.taskdef.launch" if="db.use.h2">
T
tombaeyens 已提交
164 165 166
    <launch dir="${activiti.home}/apps/h2"
            script="h2.start"
            msg="TCP server running on"/>
T
tombaeyens 已提交
167
  </target>
T
tombaeyens 已提交
168
  
169
  <target name="h2.stop" depends="internal.taskdef.launch" if="db.use.h2">
T
tombaeyens 已提交
170 171 172
    <launch dir="${activiti.home}/apps/h2"
            script="h2.stop"/>
  </target>
173
	
174
	<target name="h2.console.start" depends="internal.taskdef.launch" if="db.use.h2">
175 176 177 178 179
	  <launch dir="${activiti.home}/apps/h2"
	          script="h2.console.start" /> <!-- Not using a launch complete msg, since there is no way
	                                            of stopping the h2 console later on,
	                                            so we don't want to let the ant task return--> 
	</target>
T
tombaeyens 已提交
180 181 182 183 184 185 186
  
  <target name="db.create" depends="internal.classpath.libs">
    <sql driver="${jdbc.driver}" 
         password="${jdbc.password}" 
         url="${jdbc.url}" 
         userid="${jdbc.username}"
         classpathref="classpath.libs">
T
tombaeyens 已提交
187
      <javaresource name="org/activiti/db/create/activiti.${db}.create.sql" 
T
tombaeyens 已提交
188 189
                    classpathref="classpath.libs" /> 
    </sql>
190 191 192 193 194 195
  	    <!--added to create ACT_CY_CONFIG table-->
        <sql driver="${jdbc.driver}" 
             password="${jdbc.password}" 
             url="${jdbc.url}" 
             userid="${jdbc.username}"
             classpathref="classpath.libs">
196
          <javaresource name="org/activiti/db/cycle/create/activiti.${db}.create.sql" 
197 198
                        classpathref="classpath.libs" /> 
        </sql>
T
tombaeyens 已提交
199
  </target>
T
tombaeyens 已提交
200 201 202 203 204 205 206
  
  <target name="db.drop" depends="internal.classpath.libs">
    <sql driver="${jdbc.driver}" 
         password="${jdbc.password}" 
         url="${jdbc.url}" 
         classpathref="classpath.libs"
         userid="${jdbc.username}">
T
tombaeyens 已提交
207
      <transaction>
T
tombaeyens 已提交
208 209
        <javaresource name="org/activiti/db/drop/activiti.${db}.drop.sql"
                      classpathref="classpath.libs"/> 
T
tombaeyens 已提交
210
      </transaction>
211 212 213 214 215 216 217 218
    </sql>
	    <!--added to drop ACT_CY_CONFIG table-->
    <sql driver="${jdbc.driver}" 
         password="${jdbc.password}" 
         url="${jdbc.url}" 
         userid="${jdbc.username}"
         classpathref="classpath.libs">
      <transaction>	
219
         <javaresource name="org/activiti/db/cycle/drop/activiti.${db}.drop.sql" 
220 221
                    classpathref="classpath.libs" /> 
      </transaction>
T
tombaeyens 已提交
222 223
    </sql>
  </target>
T
tombaeyens 已提交
224 225 226 227 228 229 230 231
  
  <target name="tomcat.install">
    <mkdir dir="${activiti.home}/apps" />
    <property name="tomcat.distro" value="${downloads.dir}/${tomcat.filename}" />
    <available property="is.tomcat.available" file="${tomcat.distro}" />
    <antcall target="internal.download.tomcat" />
    <unzip src="${tomcat.distro}" dest="${activiti.home}/apps"/>
    <available file="${user.home}/.activiti/tomcat-users.xml" property="tomcat.users.available" />
T
tombaeyens 已提交
232
    <antcall target="tomcat.copy.users" />
T
tombaeyens 已提交
233 234 235 236
    <antcall target="tomcat.enable.debug" />
    <replace file="${tomcat.home}/bin/catalina.sh">
      <replacetoken><![CDATA[#!/bin/sh]]></replacetoken>
      <replacevalue><![CDATA[#!/bin/sh
237

238
JAVA_OPTS=$JAVA_OPTS" @tomcat.java.opts@"
239
]]></replacevalue>
T
tombaeyens 已提交
240
    </replace>
241
    <replace file="${tomcat.home}/bin/catalina.sh" token="@tomcat.java.opts@" value="${tomcat.java.opts}" />
T
tombaeyens 已提交
242 243 244 245 246
    <chmod perm="a+x" os="Linux, Mac OS X">
      <fileset dir="${tomcat.home}/bin">
        <include name="*.sh" />
      </fileset>
    </chmod>
247
  	<copy file="${activiti.home}/setup/files/tomcat/logging.properties" todir="${tomcat.home}/conf" overwrite="true" /> 
T
tombaeyens 已提交
248
  </target>
T
tombaeyens 已提交
249

T
tombaeyens 已提交
250 251 252 253 254
  <target name="tomcat.copy.users" if="tomcat.users.available">
    <copy file="${user.home}/.activiti/tomcat-users.xml" 
          todir="${tomcat.home}/conf" 
          overwrite="true"/>
  </target>
T
tombaeyens 已提交
255

T
tombaeyens 已提交
256 257 258
  <target name="tomcat.enable.debug" if="tomcat.enable.debug">
    <echo>Enabling tomcat remote debugging ... </echo>
    <replace file="${tomcat.home}/bin/startup.sh">
T
tombaeyens 已提交
259 260
      <replacetoken><![CDATA[
# Licensed to the Apache Software Foundation (ASF) under one or more]]></replacetoken>
T
tombaeyens 已提交
261
      <replacevalue><![CDATA[
T
tombaeyens 已提交
262 263
JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787"
# Licensed to the Apache Software Foundation (ASF) under one or more]]></replacevalue>
T
tombaeyens 已提交
264 265 266
    </replace>
  </target>
  
T
tombaeyens 已提交
267 268 269 270 271 272 273 274 275 276 277
  <target name="tomcat.start" depends="internal.taskdef.launch">
    <launch dir="${activiti.home}/apps/apache-tomcat-${tomcat.version}/bin"
            script="startup"
            msg="Using CLASSPATH:" />
  </target>

  <target name="tomcat.stop" depends="internal.taskdef.launch">
    <launch dir="${activiti.home}/apps/apache-tomcat-${tomcat.version}/bin"
            script="shutdown"
            msg="Using CLASSPATH:"/>
  </target>
278 279 280 281 282 283 284
  
  <target name="explorer.browser.open">
  	<!-- Sleep for 5 second to be sure tomcat coyote http-connector is ready to accept connections -->
  	<sleep seconds="5"/>
  	<property name="url" value="http://localhost:8080/activiti-explorer" />
  	<antcall target="open.html.page"/>
  </target>
T
tombaeyens 已提交
285

T
tombaeyens 已提交
286 287 288
  <target name="cfg.create">
    <mkdir dir="${activiti.home}/setup/build/activiti-cfg" />
    <copy todir="${activiti.home}/setup/build/activiti-cfg" overwrite="true">
T
tombaeyens 已提交
289
      <filterset filtersfile="build.${db}.properties" />
T
tombaeyens 已提交
290 291 292 293 294 295
      <fileset dir="files/cfg.activiti/${tx}" />
    </copy>
    <jar destfile="${activiti.home}/setup/build/activiti-cfg.jar">
      <fileset dir="${activiti.home}/setup/build/activiti-cfg" />
    </jar>
  </target>
T
tombaeyens 已提交
296

297
  <target name="deploy.activiti.engine.into.tomcat" depends="cfg.create, examples.get.libs.engine">
T
tombaeyens 已提交
298
    <copy todir="${tomcat.home}/lib">
299
      <fileset dir="${activiti.home}/examples/activiti-engine-examples/libs-runtime">
300
        <include name="activiti-pvm-${activiti.version}.jar"/>
T
tombaeyens 已提交
301
        <include name="activiti-engine-${activiti.version}.jar"/>
302
      	<include name="activiti-juel-*.jar"/>
T
tombaeyens 已提交
303 304
        <include name="mybatis-*.jar"/>
        <include name="juel*.jar" />
305
      	<include name="livetribe-jsr223*.jar" />
306 307 308 309
      	
      	<!-- webservice -->
      	<include name="jaxb*.jar" />
      	<include name="wsdl4j*.jar" />
T
tombaeyens 已提交
310
      </fileset>
311 312 313 314
      <fileset refid="jdbc.driver.libs" />
	  <!--added to copy activiti-cycle-*.jar-->
      <fileset dir="${activiti.home}/lib">
        <include name="activiti-cycle-${activiti.version}.jar"/>
315
      </fileset>
T
tombaeyens 已提交
316 317 318 319
      <fileset dir="build">
        <include name="activiti-cfg.jar"/>
      </fileset>
    </copy>
T
tombaeyens 已提交
320
  </target>
T
tombaeyens 已提交
321 322

  <target name="db.demo.data" depends="internal.classpath.libs">
323 324 325 326 327 328 329 330
    <mkdir dir="build/demo" />
    <copy file="files/demo/${db}.data.sql" todir="build/demo" />
    
    <!-- replace some properties currently needed/used for cycle config -->
    <replace file="build/demo/${db}.data.sql">
      <replacefilter token="@activiti.modeler.base.url@" value="${activiti.modeler.base.url}" />
      <replacefilter token="@cycle.base.file.path@" value="${cycle.workspace}" />
    </replace>
T
tombaeyens 已提交
331 332 333 334 335
    <sql driver="${jdbc.driver}" 
         password="${jdbc.password}" 
         url="${jdbc.url}" 
         userid="${jdbc.username}"
         classpathref="classpath.libs" 
336 337
         src="build/demo/${db}.data.sql"/>
         
T
tombaeyens 已提交
338
    <zip destfile="${activiti.home}/setup/build/activiti-examples.bar">
339
      <fileset dir="${activiti.home}/examples/activiti-engine-examples/src">
T
tombaeyens 已提交
340 341 342 343 344 345 346 347 348 349
        <include name="org/activiti/examples/bpmn/usertask/taskassignee/TaskAssigneeTest.testTaskAssignee.bpmn20.xml"/>
        <include name="org/activiti/examples/bpmn/usertask/taskcandidate/TaskCandidateTest.testMixedCandidateUserAndGroup.bpmn20.xml"/>
        <include name="org/activiti/examples/bpmn/usertask/taskcandidate/TaskCandidateTest.testMultipleCandidateGroups.bpmn20.xml"/>
        <include name="org/activiti/examples/bpmn/usertasktaskcandidate/TaskCandidateTest.testMultipleCandidateUsers.bpmn20.xml"/>
        <include name="org/activiti/examples/bpmn/usertask/taskcandidate/TaskCandidateTest.testSingleCandidateGroup.bpmn20.xml"/>
        <include name="org/activiti/examples/bpmn/usertask/FinancialReportProcess.bpmn20.xml"/>
        <include name="org/activiti/examples/taskforms/VacationRequest.bpmn20.xml"/>
        <include name="org/activiti/examples/taskforms/request.form"/>
        <include name="org/activiti/examples/taskforms/approve.form"/>
        <include name="org/activiti/examples/taskforms/adjustRequest.form"/>
350
      	<include name="org/activiti/examples/bpmn/event/timer/BoundaryTimerEventTest.testInterruptingTimerDuration.bpmn20.xml" />
T
tombaeyens 已提交
351 352 353 354 355 356
      </fileset>
    </zip>
    <taskdef name="deploy-bar" classname="org.activiti.engine.impl.ant.DeployBarTask">
      <classpath>
        <pathelement path="files/demo"/>
        <fileset dir="build">
T
tombaeyens 已提交
357
          <include name="activiti-cfg.jar"/>
T
tombaeyens 已提交
358
        </fileset>
359 360
        <fileset dir="${activiti.home}/examples/activiti-engine-examples/libs-runtime" />
        <fileset dir="${activiti.home}/examples/activiti-engine-examples/libs-test" />
T
tombaeyens 已提交
361 362 363
      </classpath>
    </taskdef>
    <deploy-bar file="${activiti.home}/setup/build/activiti-examples.bar" />
T
tombaeyens 已提交
364 365 366
  </target>

  <target name="deploy.activiti.rest.into.tomcat" depends="build.webapp.activiti.engine.init, build.webapp.activiti.rest">
367 368
    <mkdir dir="${tomcat.home}/webapps/activiti-webapp-init" />
    <unzip dest="${tomcat.home}/webapps/activiti-webapp-init" src="${activiti.home}/setup/build/activiti-webapp-init.war" />
T
tombaeyens 已提交
369 370
    <mkdir dir="${tomcat.home}/webapps/activiti-rest" />
    <unzip dest="${tomcat.home}/webapps/activiti-rest" src="${activiti.home}/setup/build/activiti-rest.war" />
T
tombaeyens 已提交
371 372 373
  </target>
  
  <target name="build.webapp.activiti.engine.init">
374 375
    <zip destfile="${activiti.home}/setup/build/activiti-webapp-init.war">
      <fileset dir="${activiti.home}/setup/files/webapps/activiti-webapp-init.war"/>
T
tombaeyens 已提交
376 377
    </zip>
  </target>
T
tombaeyens 已提交
378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398

  <target name="build.webapp.activiti.rest">
    <zip destfile="${activiti.home}/setup/build/activiti-rest.war">
      <fileset dir="${activiti.home}/setup/files/webapps/activiti-rest.war"/>
      <fileset dir="${activiti.home}/setup/files/webapps/libs" />
    </zip>
  </target>

  <target name="build.webapp.activiti.probe">
    <zip destfile="${activiti.home}/setup/build/activiti-probe.war">
      <fileset dir="${activiti.home}/setup/files/webapps/activiti-probe.war"/>
      <fileset dir="${activiti.home}/setup/files/webapps/libs" />
    </zip>
  </target>

  <target name="build.webapp.activiti.explorer">
    <zip destfile="${activiti.home}/setup/build/activiti-explorer.war">
      <fileset dir="${activiti.home}/setup/files/webapps/activiti-explorer.war"/>
      <fileset dir="${activiti.home}/setup/files/webapps/libs" />
    </zip>
  </target>
399 400
  
  <target name="build.webapp.activiti.cycle">
401 402
    <zip destfile="${activiti.home}/setup/build/activiti-cycle.war">
      <fileset dir="${activiti.home}/setup/files/webapps/activiti-cycle.war"/>
403 404 405
      <fileset dir="${activiti.home}/setup/files/webapps/libs" />
    </zip>
  </target>
T
tombaeyens 已提交
406

407
  <target name="deploy.activiti.explorer.and.probe.into.tomcat" depends="build.webapp.activiti.explorer, build.webapp.activiti.probe, build.webapp.activiti.cycle">
T
tombaeyens 已提交
408 409 410 411 412 413
    <mkdir dir="${tomcat.home}/webapps/activiti-explorer" />
    <unzip dest="${tomcat.home}/webapps/activiti-explorer" src="${activiti.home}/setup/build/activiti-explorer.war" />
    <mkdir dir="${tomcat.home}/webapps/activiti-probe" />
    <unzip dest="${tomcat.home}/webapps/activiti-probe" src="${activiti.home}/setup/build/activiti-probe.war" />
  </target>

T
tombaeyens 已提交
414 415 416 417 418 419 420 421 422 423 424 425 426 427
  <target name="deploy.activiti.cycle.into.tomcat" depends="build.webapp.activiti.cycle">   
    <mkdir dir="${tomcat.home}/webapps/activiti-cycle" />
    <unzip dest="${tomcat.home}/webapps/activiti-cycle" src="${activiti.home}/setup/build/activiti-cycle.war" />
    
    <!-- unzip bpmn 20 example models into activiti-modeler dir -->
    <unzip dest="${activiti.modeler.repository.home}" src="files/examples/modeler-examples.zip" />
    
    <!-- unzip eclipse  example models into workspace dir -->
    <mkdir dir="${cycle.workspace}" />
    <unzip dest="${cycle.workspace}" src="files/examples/eclipse-projects.zip" />
  </target>
  
  <target name="deploy.activiti.modeler.into.tomcat" unless="skip.deploy.activiti.modeler">
    <antcall target="internal.download.activiti.modeler" /> <!-- Can't use depends for this, due to http://ant.apache.org/faq.html#stop-dependency-->
428
    <mkdir dir="${activiti.modeler.repository.home}"/>
429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453
  	
  	<!--ACT-177 Workaround for the Modeler not supporting relative paths -->
  	    
  	<!-- covert slashes on windows to unix styl slahes -->
  	<pathconvert property="model.repo.path" targetos="unix">
  	  <map from="${basedir}/" to='' />
  	  <map from="${basedir}\\" to='' />
  	  <path location="${activiti.modeler.repository.home}"/>
  	</pathconvert>
  	    
  	<!-- replace fileSystemRootDirectory with actual path -->
  	<replaceregexp file="files/cfg.modeler/configuration.properties" flags="s"
  	              match="model_repo"  replace="${model.repo.path}"/>
  	    
  	<!-- Touch is required, see http://stackoverflow.com/questions/2210041/updating-files-inside-an-existing-war-file -->
  	<tstamp> <format property="touch.time" pattern="MM/dd/yyyy hh:mm aa"/>  </tstamp>
  	<touch datetime="${touch.time}" file="files/cfg.modeler/configuration.properties"/>
  	    
  	<war destfile="${downloads.dir}/activiti-modeler-${activiti.version}.war" update="true">
  	  <zipfileset file="files/cfg.modeler/configuration.properties"  prefix="WEB-INF/classes/"/>
  	</war>
  	    
  	<!-- end of ACT-177 -->

  	
T
tombaeyens 已提交
454 455 456 457 458 459 460 461 462
    <copy file="${downloads.dir}/activiti-modeler-${activiti.version}.war"
          tofile="${tomcat.home}/webapps/activiti-modeler.war"/>
  </target>
  
  <target name="internal.download.activiti.modeler" unless="is.activiti.modeler.available">
    <echo message="This could take a while. Set the 'skip.deploy.activiti.modeler' property in user.home/.activiti/build.properties to skip this step" />
    <mkdir dir="${downloads.dir}"/>
    <get src="${activiti.modeler.download.url}" dest="${downloads.dir}/activiti-modeler-${activiti.version}.war"/>
  </target>
T
tombaeyens 已提交
463 464 465 466 467 468 469

  <target name="internal.download.tomcat" unless="is.tomcat.available">
    <mkdir dir="${downloads.dir}" />
    <get src="${tomcat.download.url}" dest="${tomcat.distro}" />
  </target>
  
  <target name="internal.taskdef.launch" depends="internal.classpath.libs">
470
    <taskdef name="launch" classname="org.activiti.engine.impl.ant.LaunchTask" classpathref="classpath.libs" />
T
tombaeyens 已提交
471
  </target>
T
tombaeyens 已提交
472
  
473
  <target name="internal.classpath.libs" depends="examples.get.libs.engine">
T
tombaeyens 已提交
474
    <path id="classpath.libs">
475 476 477 478
      <fileset dir="${activiti.home}/examples/activiti-engine-examples/libs-runtime">
        <include name="*.jar" />
      </fileset>
      <fileset dir="${activiti.home}/examples/activiti-engine-examples/libs-test">
T
tombaeyens 已提交
479 480
        <include name="*.jar" />
      </fileset>
481 482 483 484 485
    	<!--TODO: not really sure if this a good solution. Maybe create an own target for the activiti.cycle classpath-->  
    	<!--added for testing-->
        <fileset dir="${activiti.home}/lib">
          <include name="activiti-cycle-${activiti.version}.jar" />
        </fileset>
T
tombaeyens 已提交
486
    </path>
T
tombaeyens 已提交
487
  </target>
T
tombaeyens 已提交
488

489 490 491 492 493 494 495 496 497 498 499 500
  <target name="open.html.page">
    <fail message="property url has to be specified to use this target" unless="url" />
	  <exec executable="${macos.browser}" os="Mac OS X" failifexecutionfails="false" failonerror="false">
	    <arg value="${url}" />
	  </exec>
	  <exec executable="cmd" os="Windows Vista, Windows XP,Windows 2000,Windows 98" failifexecutionfails="false" failonerror="false">
	    <arg value="/C start &quot;${windows.browser}&quot; &quot;${url}&quot;" />
	  </exec>
  	  <exec executable="${linux.browser}" os="Linux" failifexecutionfails="false" failonerror="false">
	    <arg value="${url}" />
	  </exec>
  </target>
501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521
  
  <target name="db.oracle.install.driver">
	<install-lib-in-maven group-id="com.oracle.jdbc"
  	  artifact-id="ojdbc5"
  	  version="11.2.0.1.0"
  	  jar-name="ojdbc5.jar" />
  </target>
	
  <macrodef name="install-lib-in-maven">
	<attribute name="group-id" />
	<attribute name="artifact-id" />
  	<attribute name="version"/>
  	<attribute name="jar-name" />
	<sequential>
	  <available file="${activiti.home}/lib/provided/@{jar-name}" property="is.jar.available" />
	  <fail message="Please put jar '@{jar-name}' in the folder '${activiti.home}/lib/provided/'" unless="is.jar.available" />
	  <exec dir="${activiti.home}/lib/provided" executable="../../${maven.path}" vmlauncher="${vmlauncher}">
	    <arg line="install:install-file -Dfile=@{jar-name} -DgroupId=@{group-id} -DartifactId=@{artifact-id} -Dpackaging=jar -Dversion=@{version} -DcreateChecksum=true -DgeneratePom=true"/>
	  </exec>
    </sequential>
  </macrodef>
T
tombaeyens 已提交
522
</project>