build.xml
author Stefan Hühner <stefan.huehner@openbravo.com>
Thu, 20 Jan 2011 12:06:03 +0100
changeset 9978 c7ebe8961ccb
parent 9811 7092e54834c6
child 10098 b3960e2ed9de
permissions -rw-r--r--
Fixed 15709: On update or uninstall remove orphan jarfiles from deployed webapp
When running with deploy.mode class not only update deployed webapp with new
files but also remove orphan jar files from it.
Note: If running from Rebuild UI (MMC) this is done between tomcat stop & start
instead of directly in the rebuild to not delete the files from under the still
running application.
asier@43
     1
<?xml version="1.0" encoding="UTF-8" ?>
asier@43
     2
<!--
juanpablo@1548
     3
*************************************************************************
juanpablo@1548
     4
* The contents of this file are subject to the Openbravo  Public  License
priya@9085
     5
* Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
juanpablo@1548
     6
* Version 1.1  with a permitted attribution clause; you may not  use this
juanpablo@1548
     7
* file except in compliance with the License. You  may  obtain  a copy of
juanpablo@1548
     8
* the License at http://www.openbravo.com/legal/license.html
juanpablo@1548
     9
* Software distributed under the License  is  distributed  on  an "AS IS"
juanpablo@1548
    10
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
juanpablo@1548
    11
* License for the specific  language  governing  rights  and  limitations
juanpablo@1548
    12
* under the License.
juanpablo@1548
    13
* The Original Code is Openbravo ERP.
ggi@6702
    14
* The Initial Developer of the Original Code is Openbravo SLU
asier@9811
    15
* All portions are Copyright (C) 2001-2011 Openbravo SLU
juanpablo@1548
    16
* All Rights Reserved.
juanpablo@1548
    17
* Contributor(s):  ______________________________________.
juanpablo@1548
    18
************************************************************************
asier@43
    19
-->
juanpablo@213
    20
<!--
juanpablo@213
    21
List of targets:
juanpablo@213
    22
juanpablo@213
    23
init: checks if exists the JAVA_HOME var.
juanpablo@213
    24
compile.complete: refer to compile.complete target of src.
juanpablo@213
    25
compile: refer to compile target of src.
juanpablo@213
    26
compile.complete.development: refer to compile.complete.development target of src.
juanpablo@213
    27
compile.development: refer to compile.development target of src.
asier@1929
    28
compile.web: refer to compile.web: target of src.
asier@1929
    29
compile.web.development: refer to compile.web.development: target of src.
juanpablo@213
    30
eclipse.compile: refer to eclipse.compile target of src.
juanpablo@213
    31
eclipse.compile.complete: refer to eclipse.compile.complete target of src.
juanpablo@213
    32
compile.src: refer to compile.src target of src.
juanpablo@213
    33
war: refer to build.war target of src.
juanpablo@213
    34
core.docs: refer to doc target of src-core.
juanpablo@213
    35
core.lib: refer to build target of src-core.
juanpablo@213
    36
eclipse.wad.lib: refer to sqlc target of src-wad.
juanpablo@213
    37
wad.docs: refer to doc target of src-wad.
juanpablo@213
    38
wad.lib: refer to build target of src-wad.
juanpablo@213
    39
eclipse.trl.lib: refer to sqlc target of src-trl.
juanpablo@213
    40
trl.docs: refer to doc target of src-trl.
juanpablo@213
    41
trl.lib: refer to build target of src-trl.
juanpablo@213
    42
database.lib: refer to jar target of src-db.
juanpablo@213
    43
clean: refer to clean target of src.
juanpablo@213
    44
trl.clean: refer to trl.clean target of src.
juanpablo@213
    45
translate: refer to translate target of src.
juanpablo@213
    46
installWebService: refer to installWebService target of src.
juanpablo@213
    47
uninstallWebService: refer to uninstallWebService target of src.
juanpablo@2061
    48
deploy.context: deploy the context into Tomcat using the manager
juanpablo@213
    49
install.source: install the ERP from sources (from subversion).
rafael@3542
    50
eclipse.install.source: install the ERP from sources for eclipse (from Mercurial).
juanpablo@213
    51
create.database: refer to create.database target of database.
juanpablo@213
    52
update.database: refer to update.database target of database.
juanpablo@213
    53
create.database.script: refer to create.database.script target of database.
juanpablo@213
    54
update.database.script: refer to update.database.script target of database.
juanpablo@213
    55
export.database: exports database structure and data to xml files.
fernando@202
    56
-->
asier@43
    57
<project name="openbravo" default="compile.complete" basedir=".">
martin@2871
    58
  <property environment="env" />
martin@2871
    59
  <property name="base.config" location="config" />
martin@2871
    60
  <property file="${base.config}/Openbravo.properties" />
martin@2871
    61
  <property file="${base.config}/checksums" />
juanpablo@131
    62
martin@2871
    63
  <property name="base.config" location="config" />
martin@2871
    64
  <property name="base.src" location="src" />
martin@3892
    65
  <property name="base.src.test" location="src-test" />
martin@2871
    66
  <property name="base.src.core" location="src-core" />
martin@2871
    67
  <property name="base.src.db" location="src-db" />
martin@2871
    68
  <property name="base.src.trl" location="src-trl" />
martin@2871
    69
  <property name="base.src.wad" location="src-wad" />
martin@2871
    70
  <property name="base.src.gen" location="src-gen" />
martin@2871
    71
  <property name="base.client.src" location="srcClient" />
martin@2871
    72
  <property name="base.db" location="src-db/database" />
martin@2871
    73
  <property name="base.web" location="web" />
martin@2871
    74
  <property name="base.context" location="WebContent" />
martin@2871
    75
  <property name="base.design" location="${base.context}/src-loc" />
martin@2871
    76
  <property name="base.lib" location="lib" />
martin@2871
    77
  <property name="base.modules" location="modules" />
martin@2871
    78
  <property name="build" location="build/classes" />
antonio@7545
    79
  <property name="build.apply.module" location="build.apply/classes" />
martin@2871
    80
  <property name="build.AD" location="srcAD" />
martin@2871
    81
  <property name="build.sqlc" location="build/javasqlc" />
martin@2871
    82
  <property name="build.core.lib" location="src-core/lib" />
martin@2871
    83
  <property name="build.trl.lib" location="src-trl/lib" />
martin@2871
    84
  <property name="build.wad.lib" location="src-wad/lib" />
martin@2871
    85
  <property name="build.docs" location="docs/api" />
martin@2871
    86
  <property name="jakarta.home" location="${env.CATALINA_HOME}" />
martin@2871
    87
  <property name="module" value="%" />
antonio@6113
    88
  <property name="apply.on.create" value="false" />
antonio@6114
    89
  <property name="apply.on.update" value="true" />
martin@2871
    90
  <property name="obx.export.RD" value="false" />
martin@2871
    91
  <property name="obx.export.DB" value="false" />
martin@2871
    92
  <property name="obx.export.CS" value="false" />
martin@2871
    93
  <property name="chekPerms" value="false" />
antonio@2896
    94
  <property name="force" value="false" />
antonio@7751
    95
  <property name="strict.template.application" value="false" />
antonio@4937
    96
  <property name="rd" value="false" />
asier@3008
    97
  <property name="local" value="true" />
asier@4119
    98
  <property name="apply.modules.complete.compilation" value="false" />
asier@4279
    99
  <property name="calculate.core.revision" value="true"/>
asier@5284
   100
  <property name="stopOnWadError" value="false"/>
antonio@5700
   101
  <property name="friendlyWarnings" value="false"/>
antonio@6807
   102
  <property name="checkTranslationConsistency" value="true"/>
antonio@7974
   103
  <property name="buildValidation" value="true"/>
antonio@8355
   104
  <property name="disableCheckReferencedOrganizations" value="false"/>
asier@2057
   105
juanpablo@3965
   106
  <available file=".hg" property="is.hg" />
martin@3038
   107
asier@4279
   108
  <condition property="calculate.core.rev">
asier@4279
   109
   <istrue value="${calculate.core.revision}"/>
asier@4279
   110
  </condition>
asier@4279
   111
  
asier@4279
   112
  <condition property="xml.core.rev">
asier@4279
   113
     <isfalse value="${calculate.core.revision}"/>
asier@4279
   114
  </condition>
asier@4279
   115
  
juanpablo@2522
   116
  <condition property="deploy.mode" value="class">
juanpablo@2522
   117
    <not>
juanpablo@2522
   118
      <isset property="${deploy.mode}" />
juanpablo@2522
   119
    </not>
juanpablo@2522
   120
  </condition>
martin@2345
   121
martin@2871
   122
  <condition property="mode.war">
martin@2871
   123
    <equals arg1="war" arg2="${deploy.mode}" />
martin@2871
   124
  </condition>
martin@2345
   125
martin@2871
   126
  <condition property="mode.class">
martin@2871
   127
    <equals arg1="class" arg2="${deploy.mode}" />
martin@2871
   128
  </condition>
martin@2345
   129
martin@2871
   130
  <condition property="apply.modules.on.create">
martin@2871
   131
    <or>
martin@2871
   132
      <equals arg1="yes" arg2="${apply.on.create}" />
martin@2871
   133
      <equals arg1="true" arg2="${apply.on.create}" />
martin@2871
   134
    </or>
martin@2871
   135
  </condition>
martin@2345
   136
antonio@6114
   137
  <condition property="apply.modules.on.update">
antonio@6114
   138
    <or>
antonio@6114
   139
      <equals arg1="yes" arg2="${apply.on.update}" />
antonio@6114
   140
      <equals arg1="true" arg2="${apply.on.update}" />
antonio@6114
   141
    </or>
antonio@6114
   142
  </condition>
antonio@6114
   143
martin@2871
   144
  <condition property="obx.exp.DB">
martin@2871
   145
    <or>
martin@2871
   146
      <equals arg1="yes" arg2="${obx.export.DB}" />
martin@2871
   147
      <equals arg1="true" arg2="${obx.export.DB}" />
martin@2871
   148
    </or>
martin@2871
   149
  </condition>
martin@2345
   150
martin@2871
   151
  <condition property="obx.exp.CS">
martin@2871
   152
    <or>
martin@2871
   153
      <equals arg1="yes" arg2="${obx.export.CS}" />
martin@2871
   154
      <equals arg1="true" arg2="${obx.export.CS}" />
martin@2871
   155
    </or>
martin@2871
   156
  </condition>
asier@43
   157
antonio@3245
   158
  <condition property="timestamp">
antonio@3245
   159
    <or>
antonio@3245
   160
      <equals arg1="no" arg2="${execute.update.build.timestamp}" />
antonio@3245
   161
      <equals arg1="false" arg2="${execute.update.build.timestamp}" />
antonio@3245
   162
    </or>
antonio@3245
   163
  </condition>
antonio@3245
   164
martin@2871
   165
  <condition property="jakarta.base" value="${env.CATALINA_BASE}" else="${jakarta.home}">
martin@2871
   166
    <and>
martin@2871
   167
      <isset property="env.CATALINA_BASE" />
martin@2871
   168
    </and>
martin@2871
   169
  </condition>
martin@2871
   170
  <property name="log.path" location="${jakarta.base}/logs" />
martin@2871
   171
  <property name="lib" location="${jakarta.home}/common" />
martin@2871
   172
  <property name="jakarta.context" location="${jakarta.base}/webapps/${context.name}" />
asier@6246
   173
juanpablo@6247
   174
  <condition property="build.maxmemory" value="1024M" else="512M">
juanpablo@6247
   175
    <or>
juanpablo@6247
   176
      <equals arg1="${os.arch}" arg2="amd64" />
juanpablo@6247
   177
      <equals arg1="${os.arch}" arg2="x86_64" />
juanpablo@6247
   178
      <equals arg1="${os.arch}" arg2="ia64" />
juanpablo@6247
   179
    </or>
asier@6246
   180
  </condition>
stefan@124
   181
juanpablo@7973
   182
  <condition property="allow.root.user" value="true" else="false">
juanpablo@7973
   183
    <or>
juanpablo@7973
   184
      <equals arg1="yes" arg2="${allow.root}" />
juanpablo@7973
   185
      <equals arg1="true" arg2="${allow.root}" />
juanpablo@7973
   186
    </or>
juanpablo@7973
   187
  </condition>
juanpablo@7973
   188
martin@2871
   189
  <condition property="no.java.home" value="true">
martin@2871
   190
    <not>
martin@2871
   191
      <isset property="env.JAVA_HOME" />
martin@2871
   192
    </not>
martin@2871
   193
  </condition>
juanpablo@1548
   194
antonio@2838
   195
  <condition property="bbdd.owner.url" value="${bbdd.url}/${bbdd.sid}" else="${bbdd.url}">
antonio@2838
   196
    <and>
martin@2871
   197
      <equals arg1="${bbdd.rdbms}" arg2="POSTGRE" />
antonio@2838
   198
    </and>
antonio@2838
   199
  </condition>
juanpablo@7973
   200
juanpablo@7973
   201
  <condition property="root.user">
juanpablo@7973
   202
    <and>
juanpablo@7973
   203
      <equals arg1="${user.name}" arg2="root" />
juanpablo@7973
   204
      <not>
juanpablo@7973
   205
        <contains string="${os.name}" substring="Windows" />
juanpablo@7973
   206
      </not>
juanpablo@7973
   207
      <equals arg1="false" arg2="${allow.root.user}" />
juanpablo@7973
   208
    </and>
juanpablo@7973
   209
  </condition>
juanpablo@7973
   210
stefan@9230
   211
  <!-- Minimal classpath used for executing Wad at compile time -->
stefan@9230
   212
  <path id="wad.class.path">
stefan@9230
   213
    <fileset dir="${base.lib}">
stefan@9230
   214
      <include name="**/*.jar" />
stefan@9230
   215
    </fileset>
stefan@9230
   216
    <fileset dir="${build.core.lib}">
stefan@9230
   217
      <include name="openbravo-core.jar" />
stefan@9230
   218
    </fileset>
stefan@9230
   219
    <fileset dir="${build.wad.lib}">
stefan@9230
   220
      <include name="openbravo-wad.jar" />
stefan@9230
   221
    </fileset>
stefan@9230
   222
  </path>
stefan@9230
   223
martin@2871
   224
  <path id="project.class.path">
antonio@7933
   225
    <dirset dir="${base.modules}">
antonio@7933
   226
      <include name="*/build/classes/" />
antonio@7933
   227
    </dirset>
antonio@7933
   228
    <pathelement path="${basedir}/../../src-util/modulescript/build/classes/" />
martin@2871
   229
    <pathelement path="${build}" />
martin@2871
   230
    <pathelement path="${base.src}" />
martin@2871
   231
    <fileset dir="${base.lib}">
martin@2871
   232
      <include name="**/*.jar" />
martin@2871
   233
    </fileset>
martin@2871
   234
    <fileset dir="${build.core.lib}">
martin@2871
   235
      <include name="openbravo-core.jar" />
martin@2871
   236
    </fileset>
martin@2871
   237
    <fileset dir="${build.trl.lib}">
martin@2871
   238
      <include name="openbravo-trl.jar" />
martin@2871
   239
    </fileset>
martin@2871
   240
    <fileset dir="${build.wad.lib}">
martin@2871
   241
      <include name="openbravo-wad.jar" />
martin@2871
   242
    </fileset>
martin@2871
   243
    <fileset dir="${base.lib}">
martin@2871
   244
      <include name="**/*.jar" />
martin@2871
   245
    </fileset>
martin@2871
   246
    <fileset dir="${base.db}/lib/">
martin@2871
   247
      <include name="**/*.jar" />
martin@2871
   248
    </fileset>
martin@2871
   249
    <fileset dir="${base.modules}">
martin@2871
   250
      <include name="*/lib/**" />
martin@2871
   251
    </fileset>
antonio@7933
   252
  </path>
antonio@7933
   253
antonio@7933
   254
  <!-- This classpath is needed only for the compile.apply.module task-->
antonio@7933
   255
  <path id="apply.module.compile.classpath">
antonio@6907
   256
    <dirset dir="${base.modules}">
antonio@6907
   257
      <include name="*/build/classes/" />
antonio@6907
   258
    </dirset>
antonio@6907
   259
    <pathelement path="${basedir}/../../src-util/modulescript/build/classes/" />
antonio@7547
   260
    <pathelement path="${build.apply.module}" />
antonio@7547
   261
    <pathelement path="${base.src}" />
antonio@7547
   262
    <fileset dir="${base.lib}">
antonio@7547
   263
      <include name="**/*.jar" />
antonio@7547
   264
    </fileset>
antonio@7547
   265
    <fileset dir="${build.core.lib}">
antonio@7547
   266
      <include name="openbravo-core.jar" />
antonio@7547
   267
    </fileset>
antonio@7547
   268
    <fileset dir="${build.trl.lib}">
antonio@7547
   269
      <include name="openbravo-trl.jar" />
antonio@7547
   270
    </fileset>
antonio@7547
   271
    <fileset dir="${build.wad.lib}">
antonio@7547
   272
      <include name="openbravo-wad.jar" />
antonio@7547
   273
    </fileset>
antonio@7547
   274
    <fileset dir="${base.lib}">
antonio@7547
   275
      <include name="**/*.jar" />
antonio@7547
   276
    </fileset>
antonio@7547
   277
    <fileset dir="${base.db}/lib/">
antonio@7547
   278
      <include name="**/*.jar" />
antonio@7547
   279
    </fileset>
antonio@7547
   280
    <fileset dir="${base.modules}">
antonio@7547
   281
      <include name="*/lib/**" />
antonio@7547
   282
    </fileset>
antonio@7933
   283
  </path>
antonio@7933
   284
  
antonio@7933
   285
  <!-- This classpath is needed only for the apply.module task-->
antonio@7933
   286
  <path id="apply.module.runtime.classpath">
antonio@7547
   287
    <dirset dir="${base.modules}">
antonio@7547
   288
      <include name="*/build/classes/" />
antonio@7547
   289
    </dirset>
antonio@7547
   290
    <pathelement path="${basedir}/../../src-util/modulescript/build/classes/" />
antonio@7545
   291
    <pathelement path="${build.apply.module}" />
antonio@7547
   292
    <pathelement path="${build}" />
antonio@7545
   293
    <pathelement path="${base.src}" />
antonio@7545
   294
    <fileset dir="${base.lib}">
antonio@7545
   295
      <include name="**/*.jar" />
antonio@7545
   296
    </fileset>
antonio@7545
   297
    <fileset dir="${build.core.lib}">
antonio@7545
   298
      <include name="openbravo-core.jar" />
antonio@7545
   299
    </fileset>
antonio@7545
   300
    <fileset dir="${build.trl.lib}">
antonio@7545
   301
      <include name="openbravo-trl.jar" />
antonio@7545
   302
    </fileset>
antonio@7545
   303
    <fileset dir="${build.wad.lib}">
antonio@7545
   304
      <include name="openbravo-wad.jar" />
antonio@7545
   305
    </fileset>
antonio@7545
   306
    <fileset dir="${base.lib}">
antonio@7545
   307
      <include name="**/*.jar" />
antonio@7545
   308
    </fileset>
antonio@7545
   309
    <fileset dir="${base.db}/lib/">
antonio@7545
   310
      <include name="**/*.jar" />
antonio@7545
   311
    </fileset>
antonio@7545
   312
    <fileset dir="${base.modules}">
antonio@7545
   313
      <include name="*/lib/**" />
antonio@7545
   314
    </fileset>
antonio@7545
   315
  </path>
antonio@5620
   316
  
antonio@5620
   317
  <macrodef name="updatesystemstatus">
antonio@5620
   318
     <attribute name="v" default="NOT SET"/>
antonio@5620
   319
     <sequential>
antonio@5620
   320
       <sql driver="${bbdd.driver}" url="${bbdd.owner.url}" userid="${bbdd.user}" password="${bbdd.password}" onerror="continue" autocommit="true">
antonio@5621
   321
         <classpath> <fileset dir="${base.lib}"> <include name="**/*.jar"> </include> </fileset> </classpath>
antonio@5621
   322
         <transaction> UPDATE ad_system_info SET system_status='@{v}' ;
antonio@5621
   323
                       DELETE FROM ad_error_log where system_status=(select system_status from ad_system_info)
antonio@5621
   324
         </transaction>
antonio@5620
   325
       </sql>
antonio@5620
   326
     </sequential>
antonio@5620
   327
  </macrodef>
antonio@5620
   328
  
martin@2871
   329
  <taskdef resource="axis-tasks.properties" classpathref="project.class.path" />
asier@5225
   330
  
asier@4277
   331
  <target name="init" depends="code.rev">
martin@2871
   332
    <fail if="no.java.home" message="The environment variable JAVA_HOME is not set." />
juanpablo@7973
   333
    <fail if="root.user" message="Don't run ant tasks with the root user" />
martin@2871
   334
  </target>
stefan@124
   335
martin@2871
   336
  <target name="code.rev" depends="set.code.rev">
juanpablo@3965
   337
    <condition property="code.revision" value="${hg.id}" else="0">
juanpablo@3965
   338
      <isset property="hg.id" />
martin@2871
   339
    </condition>
martin@2871
   340
  </target>
ivan@812
   341
juanpablo@3965
   342
  <target name="set.code.rev" if="is.hg">
juanpablo@3965
   343
    <exec executable="hg" outputproperty="hg.id" failifexecutionfails="false">
juanpablo@3965
   344
      <arg value="id"/>
juanpablo@3965
   345
      <arg value="-i"/>
juanpablo@3965
   346
    </exec>
martin@2871
   347
  </target>
asier@43
   348
martin@2871
   349
  <target name="compile.complete" depends="init">
martin@2871
   350
    <ant dir="${base.src}" target="compile.complete" inheritAll="true" inheritRefs="true" />
martin@2871
   351
  </target>
asier@2853
   352
asier@3013
   353
  <target name="smartbuild" depends="init">
martin@3038
   354
    <property name="smart.mode" value="true" />
antonio@2996
   355
    <property name="onlyIfModified" value="true" />
martin@3038
   356
    <antcall target="core.lib" />
asier@4288
   357
    
asier@4288
   358
    <condition property="no.local">
asier@4288
   359
      <not>
asier@4288
   360
        <istrue value="${local}" />
asier@4288
   361
      </not>
asier@4288
   362
    </condition>
asier@4288
   363
    <antcall target="update.database.if.no.local" />
asier@4288
   364
    
martin@3038
   365
    <antcall target="wad.lib" />
asier@5225
   366
    
asier@5228
   367
    <taskdef name="CheckSumCondition" classname="org.openbravo.utils.CheckSumCondition">
asier@5228
   368
      <classpath refid="project.class.path" />
asier@5228
   369
    </taskdef>
asier@5228
   370
    
asier@5225
   371
    <CheckSumCondition obDir="${basedir}"
asier@5225
   372
                       type="md5.wad"
asier@5225
   373
                       property="test.md5.wad"/>
martin@3038
   374
martin@3038
   375
    <condition property="new.wad">
asier@5225
   376
        <istrue value="${test.md5.wad}"/>
martin@3038
   377
    </condition>
martin@3038
   378
martin@3038
   379
    <antcall target="trl.lib" />
asier@4288
   380
    
asier@3758
   381
    <antcall inheritall="true" inheritrefs="true" target="generate.entities.quick" />
martin@2917
   382
asier@3013
   383
    <ant dir="${base.src}" target="smartbuild" inheritAll="true" inheritRefs="true" />
martin@3038
   384
antonio@7516
   385
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
antonio@5618
   386
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
antonio@4933
   387
    <antcall target="build.deploy" />
antonio@8136
   388
    <updatesystemstatus v="RB51"/>
martin@2917
   389
    <!-- only restart tomcat if the restart prop was set to true -->
martin@2917
   390
    <condition property="dorestart">
martin@2917
   391
      <istrue value="${restart}" />
martin@2917
   392
    </condition>
martin@2917
   393
    <antcall target="if.restart.tomcat" />
martin@2871
   394
  </target>
martin@3038
   395
asier@3008
   396
  <target name="update.database.if.no.local" if="no.local">
asier@3008
   397
    <antcall target="update.database" />
asier@3008
   398
  </target>
antonio@2996
   399
asier@2982
   400
  <target name="build.deploy">
martin@3038
   401
    <antcall target="build.deploy.war" />
martin@3038
   402
    <antcall target="build.deploy.class" />
asier@2982
   403
  </target>
martin@3038
   404
asier@2982
   405
  <target name="build.deploy.class" if="mode.class">
asier@2982
   406
    <ant dir="${base.src}" target="copy.files" inheritAll="true" inheritRefs="true" />
asier@2982
   407
    <mkdir dir="${jakarta.base}/webapps/${context.name}/WEB-INF/lib" />
martin@3038
   408
    <copy todir="${jakarta.base}/webapps/${context.name}/WEB-INF/lib" file="${build.core.lib}/openbravo-core.jar" encoding="UTF-8" />
asier@2982
   409
  </target>
martin@3038
   410
stefan@9978
   411
  <!-- Only needed in special cases. See issue 15709 for details.
stefan@9978
   412
       This task (if deploy.mode=class) does sync jar-files from WebContent -> deployed webapp (& delete orphan jars)
stefan@9978
   413
  -->
stefan@9978
   414
  <target name="copy.files.jarsync" depends="init" if="mode.class">
stefan@9978
   415
    <ant dir="${base.src}" target="copy.files.jarsync.do" inheritAll="true" inheritRefs="true" />
stefan@9978
   416
  </target>
stefan@9978
   417
asier@2982
   418
  <target name="build.deploy.war" if="mode.war">
martin@3038
   419
    <antcall target="war" />
asier@2982
   420
  </target>
martin@2345
   421
martin@2917
   422
  <target name="if.restart.tomcat" if="dorestart">
martin@2917
   423
    <antcall target="tomcat.restart" />
martin@2917
   424
  </target>
martin@2345
   425
martin@2871
   426
  <target name="compile" depends="init">
martin@2871
   427
    <ant dir="${base.src}" target="compile" inheritAll="true" inheritRefs="true" />
martin@2871
   428
  </target>
martin@2345
   429
antonio@6918
   430
  <target name="buildvalidation" depends="init, core.lib">
antonio@7539
   431
    <updatesystemstatus v="RB11"/> 
antonio@7974
   432
    <condition property="buildValidation.var">
antonio@7974
   433
      <istrue value="${buildValidation}"  />
antonio@7974
   434
    </condition>
antonio@6918
   435
    <ant dir="src-util/buildvalidation" target="buildvalidation" inheritAll="true" inheritRefs="true" />
antonio@6907
   436
  </target>
antonio@6907
   437
  
antonio@6907
   438
  <target name="compile.buildvalidation" depends="init, core.lib">
antonio@6907
   439
    <ant dir="src-util/buildvalidation" target="compile" inheritAll="true" inheritRefs="true" />
antonio@6907
   440
  </target>
antonio@6907
   441
  
antonio@6907
   442
  <target name="compile.modulescript" depends="init, core.lib">
antonio@6907
   443
    <ant dir="src-util/modulescript" target="compile" inheritAll="true" inheritRefs="true" />
antonio@6907
   444
  </target>
antonio@6907
   445
antonio@7539
   446
  <target name="compile.complete.deploy" depends="compile.complete.development, compile.complete.war">
antonio@7516
   447
asier@5225
   448
    <!-- Calculate wad checksum to enable smartbuild-->
asier@5228
   449
    <taskdef name="CheckSumCondition" classname="org.openbravo.utils.CheckSumCondition">
asier@5228
   450
      <classpath refid="project.class.path" />
asier@5228
   451
    </taskdef>
asier@5228
   452
    
asier@5225
   453
    <CheckSumCondition obDir="${basedir}"
asier@5225
   454
                           type="md5.wad"
asier@5225
   455
                           property="test.md5.wad"/>
martin@2871
   456
  </target>
asier@43
   457
asier@7208
   458
  <target name="compile.complete.development" depends="init" unless="mode.war">
antonio@7539
   459
    <updatesystemstatus v="RB43"/>
martin@2871
   460
    <ant dir="${base.src}" target="compile.complete.development" inheritAll="true" inheritRefs="true" />
martin@2871
   461
  </target>
asier@43
   462
martin@2871
   463
  <target name="compile.complete.war" depends="init" if="mode.war">
antonio@7539
   464
    <updatesystemstatus v="RB43"/>
martin@2871
   465
    <antcall target="compile.complete" />
martin@2871
   466
    <antcall target="war" />
martin@2871
   467
  </target>
asier@1929
   468
stefan@5405
   469
  <target name="compile.deploy" depends="compile.war, compile.development">
antonio@8136
   470
    <updatesystemstatus v="RB51"/>
martin@2871
   471
  </target>
martin@2686
   472
asier@7208
   473
  <target name="compile.development" depends="init" unless="mode.war">
martin@2871
   474
    <ant dir="${base.src}" target="compile.development" inheritAll="true" inheritRefs="true" />
martin@2871
   475
  </target>
martin@2686
   476
martin@2871
   477
  <target name="validate.database">
martin@2871
   478
    <ant dir="${base.src}" target="validate.database" inheritAll="true" inheritRefs="true" />
martin@2871
   479
  </target>
asier@1929
   480
martin@2871
   481
  <target name="validate.modules">
martin@2871
   482
    <ant dir="${base.src}" target="validate.modules" inheritAll="true" inheritRefs="true" />
martin@2871
   483
  </target>
asier@43
   484
martin@2871
   485
  <target name="compile.war" if="mode.war">
asier@7209
   486
    <antcall target="generate.entities" />
martin@2871
   487
    <antcall target="compile" />
martin@2871
   488
    <antcall target="war" />
martin@2871
   489
  </target>
ivan@1738
   490
martin@2871
   491
  <target name="compile.web" depends="init">
martin@2871
   492
    <ant dir="${base.src}" target="compile.web" inheritAll="true" inheritRefs="true" />
martin@2871
   493
  </target>
asier@43
   494
martin@2871
   495
  <target name="compile.web.development" depends="init">
martin@2871
   496
    <ant dir="${base.src}" target="compile.web.development" inheritAll="true" inheritRefs="true" />
martin@2871
   497
  </target>
martin@2245
   498
martin@2871
   499
  <target name="eclipse.compile" depends="init">
ivan@6003
   500
    <fail unless="eclipse.running" message="eclipse.* tasks must be executed inside Eclipse" />
martin@2871
   501
    <ant dir="${base.src.core}" target="build.jar" inheritAll="true" inheritRefs="true" />
martin@2871
   502
    <ant dir="${base.src.trl}" target="build.jar" inheritAll="true" inheritRefs="true" />
martin@2871
   503
    <ant dir="${base.src.wad}" target="build.jar" inheritAll="true" inheritRefs="true" />
martin@2871
   504
    <ant dir="${base.src}" target="eclipse.compile" inheritAll="true" inheritRefs="true" />
ivan@6003
   505
    <echo message="Refreshing project..." level="info" />
martin@2871
   506
    <eclipse.refreshLocal resource="openbravo" depth="infinite" />
ivan@6003
   507
    <echo message="Building project..." level="info" />
martin@2871
   508
    <eclipse.incrementalBuild project="openbravo" kind="incremental" />
martin@2871
   509
  </target>
martin@2284
   510
martin@2871
   511
  <target name="eclipse.compile.complete" depends="init">
ivan@6003
   512
    <fail unless="eclipse.running" message="eclipse.* tasks must be executed inside Eclipse" />
martin@2871
   513
    <ant dir="${base.src.core}" target="build.jar" inheritAll="true" inheritRefs="true" />
martin@2871
   514
    <ant dir="${base.src.trl}" target="build.jar" inheritAll="true" inheritRefs="true" />
martin@2871
   515
    <ant dir="${base.src.wad}" target="build.jar" inheritAll="true" inheritRefs="true" />
martin@2871
   516
    <ant dir="${base.src}" target="eclipse.compile.complete" inheritAll="true" inheritRefs="true" />
ivan@6003
   517
    <echo message="Refreshing project..." level="info" />
martin@2871
   518
    <eclipse.refreshLocal resource="openbravo" depth="infinite" />
ivan@6003
   519
    <echo message="Building project..." level="info" />
martin@2871
   520
    <eclipse.incrementalBuild project="openbravo" kind="full" />
martin@2871
   521
  </target>
asier@43
   522
martin@2871
   523
  <target name="compile.src.gen" depends="init">
martin@2871
   524
    <ant dir="${base.src}" target="compile.src.gen" inheritAll="true" inheritRefs="true" />
martin@2871
   525
  </target>
martin@2830
   526
martin@3892
   527
  <target name="generate.java.doc">
martin@5205
   528
    <javadoc sourcepath="${base.src}:${base.src.test}:${build.AD}:${base.src.core}/src:${base.src.gen}:build/javasqlc/src/:build/javasqlc/srcAD" Windowtitle="${title}" access="protected" Header="${header}" Footer="${footer}" destdir="${build.docs}" linksource="no" maxmemory="1024M">
martin@4089
   529
      <excludepackage name="org.openbravo.erpWindows.*"/>
martin@3892
   530
      <classpath>
martin@3892
   531
        <path refid="project.class.path"/>
martin@3892
   532
        <pathelement path="lib/build/js.jar" />
martin@3892
   533
      </classpath>
martin@4017
   534
      <link href="http://java.sun.com/javase/6/docs/api/"/>
martin@3892
   535
    </javadoc>
martin@3892
   536
  </target>
martin@3892
   537
martin@2871
   538
  <target name="generate.entities">
martin@2871
   539
    <ant dir="${base.src}" target="generate.entities" inheritAll="true" inheritRefs="true" />
martin@2871
   540
  </target>
asier@43
   541
martin@2871
   542
  <target name="generate.entities.quick">
martin@2871
   543
    <ant dir="${base.src}" target="generate.entities.quick" inheritAll="true" inheritRefs="true" />
martin@2871
   544
  </target>
juanpablo@131
   545
stefan@5683
   546
  <target name="run.tests" depends="init">
martin@3723
   547
    <ant dir="${base.src}" target="run.tests" inheritAll="true" inheritRefs="true" />
martin@3723
   548
  </target>
martin@3723
   549
stefan@5683
   550
  <target name="run.all.tests" depends="init">
martin@3754
   551
    <ant dir="${base.src}" target="run.all.tests" inheritAll="true" inheritRefs="true" />
martin@3754
   552
  </target>
martin@3754
   553
priya@6948
   554
  <target name="run.webservice.tests" depends="init">
priya@6948
   555
      <ant dir="${base.src}" target="run.webservice.tests" inheritAll="true" inheritRefs="true" />
priya@6948
   556
  </target>
priya@6948
   557
stefan@5683
   558
  <target name="run.quick.tests" depends="init">
martin@3723
   559
    <ant dir="${base.src}" target="run.quick.tests" inheritAll="true" inheritRefs="true" />
martin@3723
   560
  </target>
martin@3723
   561
stefan@3934
   562
  <target name="run.api.test.javascript">
stefan@3934
   563
    <ant dir="${base.src}" target="run.api.test.javascript" inheritAll="true" inheritRefs="true" />
ivan@3850
   564
  </target>
asier@3932
   565
  
asier@3932
   566
  <target name="run.api.test.model" 
asier@3932
   567
          description="Checks current xml db model and dictionary API for not-allowed changes. Requires stableDBdir parameter">
stefan@9386
   568
    <taskdef name="checkAPI" classname="org.openbravo.ddlutils.task.CheckAPIDistribution">
asier@3932
   569
      <classpath refid="project.class.path" />
asier@3932
   570
    </taskdef>
asier@3932
   571
    <checkAPI driver="${bbdd.driver}" 
asier@3932
   572
                  url="${bbdd.owner.url}" 
asier@3932
   573
                  user="${bbdd.user}" 
asier@3932
   574
                  password="${bbdd.password}" 
asier@3932
   575
                  stableDBdir="${stableDBdir}"
stefan@9386
   576
                  testDBdir="${basedir}"
asier@3932
   577
                  verbosity="${bbdd.verbosity}"
antonio@6668
   578
    />    
asier@3932
   579
  </target>
ivan@3850
   580
martin@2871
   581
  <target name="export.sample.data" depends="code.rev">
martin@2871
   582
    <ant dir="${base.src}" target="export.sample.data" inheritAll="true" inheritRefs="true" />
martin@2871
   583
  </target>
juanpablo@131
   584
martin@2871
   585
  <target name="import.sample.data" depends="code.rev">
martin@2871
   586
    <ant dir="${base.src}" target="import.sample.data" inheritAll="true" inheritRefs="true" />
martin@2871
   587
  </target>
juanpablo@131
   588
martin@2871
   589
  <target name="compile.src" depends="init">
martin@2871
   590
    <ant dir="${base.src}" target="compile.src" inheritAll="true" inheritRefs="true" />
martin@2871
   591
  </target>
juanpablo@131
   592
martin@2871
   593
  <target name="war" depends="init">
martin@2871
   594
    <ant dir="${base.src}" target="build.war" inheritAll="true" inheritRefs="true" />
martin@2871
   595
  </target>
juanpablo@131
   596
martin@2871
   597
  <target name="core.docs" depends="init">
martin@2871
   598
    <ant dir="${base.src.core}" target="doc" inheritAll="true" inheritRefs="true" />
martin@2871
   599
  </target>
juanpablo@131
   600
martin@2871
   601
  <target name="core.lib" depends="init">
martin@2871
   602
    <ant dir="${base.src.core}" target="build" inheritAll="true" inheritRefs="true" />
martin@2871
   603
    <antcall target="copy.core.lib" />
martin@2871
   604
  </target>
juanpablo@131
   605
martin@2871
   606
  <target name="copy.core.lib">
asier@2994
   607
    <copy file="${base.src.core}/lib/openbravo-core.jar" todir="${base.lib}/runtime" failonerror="false" />
martin@2871
   608
  </target>
juanpablo@131
   609
martin@2871
   610
  <target name="eclipse.wad.lib" depends="init">
martin@2871
   611
    <ant dir="${base.src.wad}" target="sqlc" inheritAll="true" inheritRefs="true" />
martin@2871
   612
    <eclipse.refreshLocal resource="OpenbravoWAD" depth="infinite" />
martin@2871
   613
    <eclipse.incrementalBuild project="OpenbravoWAD" kind="full" />
martin@2871
   614
  </target>
asier@43
   615
martin@2871
   616
  <target name="wad.docs" depends="init">
martin@2871
   617
    <ant dir="${base.src.wad}" target="doc" inheritAll="true" inheritRefs="true" />
martin@2871
   618
  </target>
juanpablo@179
   619
martin@2871
   620
  <target name="wad.lib" depends="init">
martin@2871
   621
    <ant dir="${base.src.wad}" target="build" inheritAll="true" inheritRefs="true" />
martin@2871
   622
  </target>
juanpablo@179
   623
martin@2871
   624
  <target name="eclipse.trl.lib" depends="init">
martin@2871
   625
    <ant dir="${base.src.trl}" target="sqlc" inheritAll="true" inheritRefs="true" />
martin@2871
   626
    <eclipse.refreshLocal resource="OpenbravoTrl" depth="infinite" />
martin@2871
   627
    <eclipse.incrementalBuild project="OpenbravoTrl" kind="full" />
martin@2871
   628
  </target>
juanpablo@179
   629
martin@2871
   630
  <target name="trl.docs" depends="init">
martin@2871
   631
    <ant dir="${base.src.trl}" target="doc" inheritAll="true" inheritRefs="true" />
martin@2871
   632
  </target>
asier@43
   633
martin@2871
   634
  <target name="trl.lib" depends="init">
martin@2871
   635
    <ant dir="${base.src.trl}" target="build" inheritAll="true" inheritRefs="true" />
martin@2871
   636
  </target>
asier@43
   637
martin@2871
   638
  <target name="database.lib" depends="init">
martin@2871
   639
    <ant dir="${base.src.db}" target="jar" inheritAll="true" inheritRefs="true" />
asier@2995
   640
    <copy file="${base.src.db}/build/lib/dbmanager.jar" todir="${base.db}/lib" failonerror="false" />
martin@2871
   641
  </target>
martin@2345
   642
martin@2871
   643
  <target name="clean" depends="init">
martin@2871
   644
    <ant dir="${base.src}" target="clean" inheritAll="true" inheritRefs="true" />
martin@2871
   645
  </target>
martin@2345
   646
martin@2871
   647
  <target name="trl.clean" depends="init">
martin@2871
   648
    <ant dir="${base.src}" target="trl.clean" inheritAll="true" inheritRefs="true" />
martin@2871
   649
  </target>
martin@2345
   650
martin@2871
   651
  <target name="translate" depends="init">
martin@2871
   652
    <ant dir="${base.src}" target="translate" inheritAll="true" inheritRefs="true" />
martin@2871
   653
  </target>
martin@2686
   654
martin@2871
   655
  <target name="translate.modules" depends="init">
martin@2871
   656
    <ant dir="${base.src}" target="translate.modules" inheritAll="true" inheritRefs="true" />
martin@2871
   657
  </target>
martin@2871
   658
martin@2871
   659
  <target name="installWebService" depends="init">
martin@2871
   660
    <ant dir="${base.src}" target="installWebService" inheritAll="true" inheritRefs="true">
martin@2871
   661
      <property name="wsdd" value="1" />
martin@2871
   662
    </ant>
martin@2871
   663
  </target>
martin@2871
   664
martin@2871
   665
  <target name="uninstallWebService" depends="init">
martin@2871
   666
    <ant dir="${base.src}" target="uninstallWebService" inheritAll="true" inheritRefs="true" />
martin@2871
   667
  </target>
martin@2871
   668
stefan@5405
   669
  <target name="install.source" depends="init, create.database, wad.lib, trl.lib, compile.complete.deploy">
antonio@7539
   670
    <echo message="applying modules" />    
antonio@7539
   671
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
antonio@5618
   672
martin@2871
   673
    <antcall target="import.sample.data" />
antonio@4965
   674
    <antcall target="load.logoimages" />
antonio@8136
   675
    <updatesystemstatus v="RB51"/> 
antonio@5629
   676
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
martin@2871
   677
martin@2871
   678
    <!--
martin@2686
   679
		<antcall target="validate.database" />
martin@2686
   680
		<antcall target="validate.modules" />
martin@2704
   681
		-->
martin@2871
   682
  </target>
juanpablo@131
   683
stefan@5405
   684
  <target name="eclipse.install.source" depends="init, create.database">
ivan@6003
   685
    <fail unless="eclipse.running" message="eclipse.* tasks must be executed inside Eclipse" />
ivan@6003
   686
    <echo message="Building OpenbravoCore project..." level="info" />
rafael@3542
   687
    <eclipse.incrementalBuild project="OpenbravoCore" kind="full"/>
rafael@3542
   688
    <antcall target="eclipse.wad.lib"/>
rafael@3542
   689
    <antcall target="eclipse.trl.lib"/>
rafael@3542
   690
    <antcall target="eclipse.compile.complete"/>
martin@4287
   691
    <echo message="applying modules" />    
martin@4287
   692
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
rafael@3542
   693
    <antcall target="import.sample.data" />
antonio@8136
   694
    <updatesystemstatus v="RB51"/>
antonio@6506
   695
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
martin@2871
   696
  </target>
asier@43
   697
stefan@5405
   698
  <target name="create.database" depends="init, core.lib, database.lib">
martin@2871
   699
    <ant dir="${base.db}" antfile="build-create.xml" target="create.database" inheritAll="true" inheritRefs="true" />
martin@2871
   700
    <antcall target="db.apply.modules.sampledata" />
martin@2871
   701
  </target>
antonio@1335
   702
antonio@6918
   703
  <target name="update.database" depends="init, core.lib, database.lib, buildvalidation">
antonio@7539
   704
    <updatesystemstatus v="RB12"/>
antonio@4870
   705
    <ant dir="${base.db}" target="update.database.java" inheritAll="true" inheritRefs="true" />
martin@4287
   706
    <antcall target="generate.entities.quick" />
antonio@7539
   707
    <antcall target="apply.module" />
martin@2871
   708
  </target>
asier@1929
   709
antonio@6918
   710
  <target name="update.database.mod" depends="init, core.lib, database.lib, buildvalidation">
antonio@7539
   711
    <updatesystemstatus v="RB12"/>
antonio@7549
   712
    <ant dir="${base.db}" target="update.database.mod.java" inheritAll="true" inheritRefs="true" />
antonio@7539
   713
    <antcall target="generate.entities.quick" />
antonio@7539
   714
    <antcall target="apply.module" />
martin@2871
   715
  </target>
asier@43
   716
stefan@5405
   717
  <target name="create.database.script" depends="init, core.lib">
martin@2871
   718
    <ant dir="${base.db}" target="create.database.script" inheritAll="true" inheritRefs="true" />
martin@2871
   719
  </target>
asier@43
   720
stefan@5405
   721
  <target name="update.database.script" depends="init, core.lib">
martin@2871
   722
    <ant dir="${base.db}" target="update.database.script" inheritAll="true" inheritRefs="true" />
martin@2871
   723
  </target>
adrian@97
   724
antonio@5420
   725
  <target name="export.database" depends="init, core.lib, database.lib, generate.entities.quick">
martin@2871
   726
    <ant dir="${base.db}" target="export.database.structure" inheritAll="true" inheritRefs="true" />
martin@2871
   727
  </target>
adrian@164
   728
stefan@5405
   729
  <target name="export.config.script" depends="init, core.lib">
martin@2871
   730
    <ant dir="${base.db}" target="export.config.script" inheritAll="true" inheritRefs="true" />
martin@2871
   731
  </target>
asier@1929
   732
antonio@6114
   733
  <target name="db.apply.modules" if="apply.modules.on.update">
antonio@6080
   734
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
antonio@6080
   735
  </target>
antonio@6080
   736
martin@2871
   737
  <target name="db.apply.modules.sampledata" if="apply.modules.on.create">
antonio@5103
   738
    <antcall target="generate.entities" />
martin@4287
   739
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
martin@2871
   740
    <antcall target="import.sample.data" />
antonio@4965
   741
    <antcall target="load.logoimages" />
martin@2871
   742
  </target>
martin@2345
   743
martin@4287
   744
antonio@8505
   745
  <target name="apply.modules">
martin@4287
   746
asier@4119
   747
    <condition property="apply.modules.complete.compilation.var">
asier@4119
   748
      <istrue value="${apply.modules.complete.compilation}"  />
asier@4119
   749
    </condition>
asier@4119
   750
    
asier@4119
   751
    <condition property="apply.modules.simple.compilation.var">
asier@4119
   752
      <isfalse value="${apply.modules.complete.compilation.var}" />
asier@4119
   753
    </condition>
antonio@7520
   754
antonio@7539
   755
    <updatesystemstatus v="RB43"/>
asier@4119
   756
    <antcall target="apply.modules.compile"/>
antonio@7520
   757
antonio@5614
   758
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
antonio@7520
   759
asier@4119
   760
  </target>
asier@4119
   761
  
martin@4287
   762
  <target name="apply.module.forked">
martin@4287
   763
    <!-- 
martin@4287
   764
    Note: set reinitializeModel to false because otherwise the dal is re-initialized with classes and a model
martin@4287
   765
    which are not in sync (see issue: https://issues.openbravo.com/view.php?id=9376)
martin@4287
   766
    Note: applyModule can also be moved to a java task to fork it (to prevent this from occuring)
martin@4287
   767
    but then no output is visible for the user.
martin@4287
   768
    -->
martin@4287
   769
    <taskdef name="applyModule" classname="org.openbravo.erpCommon.modules.ApplyModuleTask">
martin@4287
   770
      <classpath refid="project.class.path" />
martin@4287
   771
    </taskdef>
martin@5458
   772
    <applyModule userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties"/>
martin@4287
   773
  </target>
antonio@7539
   774
  
antonio@7539
   775
  <target name="compile.apply.module" depends="init">
antonio@7541
   776
    <updatesystemstatus v="RB31"/>
antonio@7539
   777
    <ant dir="${base.src}" target="compile.apply.module" inheritAll="true" inheritRefs="true" />
antonio@7539
   778
  </target>
antonio@7539
   779
  
antonio@7545
   780
  <!--
antonio@7545
   781
  This task uses a special classpath.
antonio@7545
   782
  This classpath is equivalent to the normal project.class.path, except for the fact that that the normal build folder
antonio@7545
   783
  is replaced by the apply.module.build folder, in which the ApplyModule task related classes will be compiled.
antonio@7545
   784
  This is done to workaround the fact that the javac task needs to compile all the related classes when upgrading openbravo
antonio@7545
   785
  and if the normal build folder is included, none of them are recompiled by default unless the whole build directory is specified.
antonio@7545
   786
  -->
antonio@7539
   787
  <target name="apply.module" depends="compile.apply.module">
antonio@6533
   788
    <java classname="org.openbravo.erpCommon.modules.ApplyModuleTask" fork="true" maxmemory="${build.maxmemory}" failonerror="true">
martin@8777
   789
      <arg line="'${base.src}' '${friendlyWarnings}'" />
antonio@7547
   790
      <classpath refid="apply.module.runtime.classpath" />
martin@4287
   791
    </java>
antonio@7545
   792
   <delete includeEmptyDirs="true"  dir="${build.apply.module}" />
martin@4287
   793
  </target>
asier@4119
   794
  
asier@6227
   795
  <target name="apply.modules.compile" depends="wad.lib">
asier@4119
   796
    <antcall target="apply.modules.compile.simple"/>
asier@4119
   797
    <antcall target="apply.modules.compile.complete"/>
asier@4119
   798
  </target>
asier@4119
   799
  
asier@4119
   800
  <target name="apply.modules.compile.simple" if="apply.modules.simple.compilation.var">
martin@2871
   801
    <antcall target="compile.deploy" />
asier@4119
   802
  </target>
asier@4119
   803
  
asier@4119
   804
  <target name="apply.modules.compile.complete" if="apply.modules.complete.compilation.var">
asier@4119
   805
     <antcall target="compile.complete.deploy" />
martin@2871
   806
  </target>
martin@4106
   807
  
martin@2871
   808
  <!-- 
martin@2345
   809
		apparently this does not overwrite the default catalina_opts, only
martin@2345
   810
		if it is not set will it be set to the value below 
martin@2345
   811
	-->
martin@2871
   812
  <property name="env.CATALINA_OPTS" value="-XX:MaxPermSize=128M" />
martin@2345
   813
martin@2871
   814
  <!-- 
martin@2345
   815
		This task is called from the Openbravo ui, it spawns a java call which again
martin@2345
   816
		calls the restart.tomcat.do task as a spawned task.
martin@2345
   817
	-->
martin@2871
   818
  <target name="tomcat.restart" description="Restart the tomcat server process">
martin@2917
   819
    <echo message="Restarting tomcat..." />
martin@2871
   820
    <java classname="org.openbravo.service.system.RestartTomcat" spawn="true" fork="true" maxmemory="${build.maxmemory}">
martin@2871
   821
      <arg line="${base.src}" />
martin@2871
   822
      <classpath refid="project.class.path" />
martin@2871
   823
    </java>
martin@2871
   824
  </target>
martin@2345
   825
martin@2871
   826
  <!--
martin@2345
   827
		Is called by the org.openbravo.service.system.RestartTomcat class.
martin@2345
   828
	-->
martin@2871
   829
  <target name="tomcat.restart.do" description="Restart the tomcat server process">
martin@2871
   830
    <echo message="Restarting Tomcat at ${env.CATALINA_HOME}" />
martin@2871
   831
    <java classname="org.apache.catalina.startup.Bootstrap" fork="true">
martin@2871
   832
      <classpath path=":${env.CATALINA_HOME}/bin/bootstrap.jar:${env.CATALINA_HOME}/bin/commons-logging-api.jar" />
martin@2871
   833
      <jvmarg value="-Dcatalina.home=${env.CATALINA_HOME}" />
martin@2871
   834
      <jvmarg value="-Dcatalina.base=${env.CATALINA_BASE}" />
martin@2871
   835
      <arg line="stop" />
martin@2871
   836
    </java>
martin@2871
   837
    <sleep description="Wait to give tomcat time to stop" seconds="20" />
stefan@9978
   838
stefan@9978
   839
    <!-- if deploy.mode=class this will sync (& delete orphan) jarfiles from WebContent -> tomcat-->
stefan@9978
   840
    <antcall target="copy.files.jarsync"/>
stefan@9978
   841
stefan@9978
   842
    <java classname="org.apache.catalina.startup.Bootstrap" fork="true" spawn="true">
martin@2871
   843
      <classpath path=":${env.CATALINA_HOME}/bin/bootstrap.jar:${env.CATALINA_HOME}/bin/commons-logging-api.jar" />
martin@2871
   844
      <!-- note because CATALINA_OPTS can be multi argument the line attribute has to be used! -->
martin@2871
   845
      <jvmarg line="${env.CATALINA_OPTS}" />
martin@2871
   846
      <jvmarg value="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" />
martin@2871
   847
      <jvmarg value="-Djava.util.logging.config.file=${env.CATALINA_BASE}/conf/logging.properties" />
martin@2871
   848
      <jvmarg value="-Djava.endorsed.dirs=${env.CATALINA_HOME}/endorsed" />
martin@2871
   849
      <jvmarg value="-Dcatalina.base=${env.CATALINA_BASE}" />
martin@2871
   850
      <jvmarg value="-Dcatalina.home=${env.CATALINA_HOME}" />
martin@2871
   851
      <jvmarg value="-Djava.io.tmpdir=${env.CATALINA_BASE}/temp" />
martin@2871
   852
      <arg line="start" />
martin@2871
   853
    </java>
martin@2871
   854
  </target>
martin@2345
   855
martin@2871
   856
  <!-- 
martin@2345
   857
		This task is called from the Openbravo ui, it spawns a java call which again
martin@2345
   858
		calls the tomcat.reload.do task as a spawned task.
martin@2345
   859
	-->
martin@2871
   860
  <target name="tomcat.reload" description="Reload the Openbravo context">
martin@2917
   861
    <echo message="Reloading webapp..." />
martin@2871
   862
    <java classname="org.openbravo.service.system.ReloadContext" jvm="${env.JAVA_HOME}/bin/java" maxmemory="${build.maxmemory}" spawn="true" fork="true">
martin@2871
   863
      <arg line="${base.src}" />
martin@2871
   864
      <classpath refid="project.class.path" />
martin@2871
   865
    </java>
martin@2871
   866
  </target>
martin@2345
   867
martin@2871
   868
  <target name="tomcat.reload.do">
martin@2871
   869
    <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
martin@2871
   870
      <classpath refid="project.class.path" />
martin@2871
   871
    </taskdef>
martin@2871
   872
    <reload url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${context.name}" />
martin@2871
   873
  </target>
adrian@171
   874
martin@2871
   875
  <target name="tomcat.list">
martin@2871
   876
    <taskdef name="list" classname="org.apache.catalina.ant.ListTask">
martin@2871
   877
      <classpath refid="project.class.path" />
martin@2871
   878
    </taskdef>
martin@2871
   879
    <list url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" />
martin@2871
   880
  </target>
martin@2345
   881
martin@2871
   882
  <target name="deploy.context">
martin@2871
   883
    <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask">
martin@2871
   884
      <classpath refid="project.class.path" />
martin@2871
   885
    </taskdef>
martin@2871
   886
    <taskdef name="deploy.tomcat" classname="org.apache.catalina.ant.DeployTask">
martin@2871
   887
      <classpath refid="project.class.path" />
martin@2871
   888
    </taskdef>
martin@2871
   889
    <taskdef name="start" classname="org.apache.catalina.ant.StartTask">
martin@2871
   890
      <classpath refid="project.class.path" />
martin@2871
   891
    </taskdef>
martin@2345
   892
martin@2871
   893
    <undeploy url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${context.name}" failonerror="false" />
martin@2871
   894
    <deploy.tomcat url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${context.name}" war="file:${base.lib}/${context.name}.war" />
martin@2871
   895
    <start url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${context.name}" />
martin@2871
   896
  </target>
martin@2345
   897
martin@2871
   898
  <target name="generate-wsdd">
martin@2871
   899
    <ant dir="${base.src}" target="generate-wsdd" inheritAll="true" inheritRefs="true" />
martin@2871
   900
  </target>
martin@2345
   901
martin@2871
   902
  <target name="obx.export.database" if="obx.exp.DB">
martin@2871
   903
    <antcall target="export.database" />
martin@2871
   904
  </target>
martin@2345
   905
martin@2871
   906
  <target name="obx.export.config.script" if="obx.exp.CS">
martin@2871
   907
    <antcall target="export.config.script" />
martin@2871
   908
  </target>
martin@2345
   909
martin@2871
   910
  <target name="package.module">
martin@2871
   911
    <taskdef name="extractModule" classname="org.openbravo.erpCommon.modules.ExtractModuleTask">
martin@2871
   912
      <classpath refid="project.class.path" />
martin@2871
   913
    </taskdef>
martin@2345
   914
martin@3038
   915
    <taskdef name="validateModules" classname="org.openbravo.service.system.SystemValidationTask">
martin@3038
   916
      <classpath refid="project.class.path" />
martin@3038
   917
    </taskdef>
asier@5533
   918
    
asier@5560
   919
    <taskdef name="WADValidation" classname="org.openbravo.wad.validation.WADValidatorTask">
asier@5533
   920
      <classpath refid="project.class.path" />
asier@5533
   921
    </taskdef>
asier@5533
   922
            
asier@5533
   923
    <echo message="Validating Module..." />
asier@5533
   924
    
asier@5533
   925
    <WADValidation propertiesFile="${base.config}/Openbravo.properties"
asier@5533
   926
                   modules="${module}"
asier@5533
   927
                   stoponerror="true"/>
martin@3038
   928
martin@5458
   929
    <validateModules moduleJavaPackage="${module}" failOnError="false" userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties" type="module" />
martin@3038
   930
martin@2871
   931
    <antcall target="obx.export.database" />
martin@2871
   932
    <antcall target="obx.export.config.script" />
juanpablo@2691
   933
martin@5458
   934
    <extractModule moduleName="${module}" userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties" exportRD="${obx.export.RD}" />
martin@2871
   935
  </target>
juanpablo@2691
   936
martin@2871
   937
  <target name="diagnostic">
antonio@6907
   938
    <ant dir="src-util/diagnostic" antfile="build-create.xml" target="build" />
antonio@6907
   939
    <ant dir="src-util/diagnostic" target="check.all" />
martin@2871
   940
  </target>
juanpablo@2691
   941
martin@3038
   942
  <target name="setup.check.os">
martin@2871
   943
    <condition property="osname" value="linux">
martin@2871
   944
      <equals arg1="${os.name}" arg2="Linux" />
martin@2871
   945
    </condition>
juanpablo@3949
   946
    <condition property="osname" value="freebsd6">
martin@2871
   947
      <equals arg1="${os.name}" arg2="FreeBSD" />
martin@2871
   948
    </condition>
martin@2871
   949
    <condition property="osname" value="windows">
martin@2871
   950
      <contains string="${os.name}" substring="Windows" />
martin@2871
   951
    </condition>
martin@2871
   952
    <condition property="osname" value="osx">
martin@2871
   953
      <contains string="${os.name}" substring="OS X" />
martin@2871
   954
    </condition>
juanpablo@4100
   955
    <condition property="osname" value="solaris">
martin@2871
   956
      <or>
martin@2871
   957
        <contains string="${os.name}" substring="Solaris" />
martin@2871
   958
        <contains string="${os.name}" substring="SunOS" />
martin@2871
   959
      </or>
martin@2871
   960
    </condition>
martin@2871
   961
    <condition property="osname" value="openbsd">
martin@2871
   962
      <equals arg1="${os.name}" arg2="OpenBSD" />
martin@2871
   963
    </condition>
martin@2871
   964
    <condition property="osname" value="aix">
martin@2871
   965
      <equals arg1="${os.name}" arg2="AIX" />
martin@2871
   966
    </condition>
martin@2871
   967
    <condition property="osname" value="hpux">
martin@2871
   968
      <equals arg1="${os.name}" arg2="HPUX" />
martin@2871
   969
    </condition>
martin@2871
   970
  </target>
juanpablo@2706
   971
martin@2871
   972
  <target name="setup.check.arch">
martin@2871
   973
    <condition property="osarch" value="">
martin@2871
   974
      <or>
martin@2871
   975
        <equals arg1="${os.arch}" arg2="x86" />
martin@2871
   976
        <equals arg1="${os.arch}" arg2="i386" />
juanpablo@7950
   977
        <contains string="${os.name}" substring="Windows" />
juanpablo@8004
   978
        <contains string="${os.name}" substring="OS X" />
martin@2871
   979
      </or>
martin@2871
   980
    </condition>
martin@2871
   981
    <condition property="osarch" value="-x64">
martin@2871
   982
      <or>
martin@2871
   983
        <equals arg1="${os.arch}" arg2="amd64" />
martin@2871
   984
        <equals arg1="${os.arch}" arg2="x86_64" />
juanpablo@7950
   985
        <not>
juanpablo@7950
   986
          <contains string="${os.name}" substring="Windows" />
juanpablo@7950
   987
        </not>
juanpablo@8004
   988
        <not>
juanpablo@8004
   989
          <contains string="${os.name}" substring="OS X" />
juanpablo@8004
   990
        </not>
martin@2871
   991
      </or>
martin@2871
   992
    </condition>
martin@2871
   993
    <condition property="osarch" value="-ia64">
martin@2871
   994
      <equals arg1="${os.arch}" arg2="ia64" />
martin@2871
   995
    </condition>
martin@2871
   996
    <condition property="osarch" value="-sparc">
martin@2871
   997
      <equals arg1="${os.arch}" arg2="sparc" />
martin@2871
   998
    </condition>
martin@2871
   999
    <condition property="osarch" value="-ppc">
martin@2871
  1000
      <equals arg1="${os.arch}" arg2="ppc" />
martin@2871
  1001
    </condition>
martin@2871
  1002
  </target>
martin@2871
  1003
martin@2871
  1004
  <target name="setup.exists.test">
juanpablo@8004
  1005
    <condition property="bin.ext" value="exe">
martin@2871
  1006
      <os family="windows" />
martin@2871
  1007
    </condition>
martin@2871
  1008
juanpablo@8004
  1009
    <condition property="bin.ext" value="app.tar.gz">
juanpablo@8004
  1010
      <os family="mac" />
juanpablo@8004
  1011
    </condition>
juanpablo@8004
  1012
juanpablo@8004
  1013
    <condition property="bin.ext" value="bin">
juanpablo@8004
  1014
      <not>
juanpablo@8004
  1015
        <isset property="${bin.ext}" />
juanpablo@8004
  1016
      </not>
juanpablo@8004
  1017
    </condition>
juanpablo@8004
  1018
martin@2871
  1019
    <available file="config/setup-properties-${osname}${osarch}.${bin.ext}" property="setup.exists" value="true" />
martin@2871
  1020
  </target>
martin@2871
  1021
martin@2871
  1022
  <target name="setup" depends="setup.check.os, setup.check.arch, setup.exists.test" unless="setup.exists">
martin@2871
  1023
    <get src="https://dev.openbravo.com/svn/packaging/setup/output/setup-properties-${osname}${osarch}.${bin.ext}" dest="config/setup-properties-${osname}${osarch}.${bin.ext}" verbose="true" />
martin@2871
  1024
martin@2871
  1025
    <chmod file="config/setup-properties-${osname}${osarch}.${bin.ext}" perm="+x" />
martin@2871
  1026
  </target>
juanpablo@2691
  1027
asier@4280
  1028
  <target name="package.core" depends="init, set.version.number">
asier@4278
  1029
	<property name="tmpdir" value="${java.io.tmpdir}/ob.core${core.rev}" />
asier@4278
  1030
   
asier@4278
  1031
  	<exec executable="hg" >
asier@4278
  1032
  		<arg value="archive"/>
asier@4278
  1033
  		<arg value="${tmpdir}"/>
asier@4278
  1034
  	</exec>
asier@4278
  1035
  	
asier@4278
  1036
  	<replaceregexp file="${tmpdir}/src-db/database/sourcedata/AD_MODULE.xml"
asier@4279
  1037
                   match="(VERSION.*\[CDATA\[).*\..*\.(.*)(\]\])"
asier@4278
  1038
                   replace="\1${core.rev}\3"
asier@4278
  1039
                   byline="true"/>
asier@4278
  1040
    
asier@4280
  1041
    <echo message="${hg.id}" file="${tmpdir}/config/instance.revision"/>
asier@9811
  1042
	
asier@9811
  1043
    <delete includeEmptyDirs="true">
asier@9811
  1044
      <fileset dir="${tmpdir}/modules" includes="**/*" defaultexcludes="no"/>
asier@9811
  1045
    </delete>
asier@4280
  1046
    
asier@4279
  1047
    <zip destfile="${basedir}/core-${core.rev}.obx" basedir="${tmpdir}"/>
asier@4278
  1048
    
asier@4278
  1049
    <delete dir="${tmpdir}"/>
asier@4278
  1050
asier@4278
  1051
   </target>
asier@4279
  1052
 
asier@4279
  1053
  <target name="set.version.number" depends="set.version.from.file, set.version.calculated"/>
asier@4279
  1054
  
asier@4279
  1055
  <target name="set.version.calculated" if="calculate.core.rev">
asier@4279
  1056
    <echo message="calculating core revision..."/>
asier@4279
  1057
    <exec executable="hg" outputproperty="hg.idno" failifexecutionfails="false">
asier@4279
  1058
      <arg value="id"/>
asier@4279
  1059
      <arg value="-n"/>
asier@4279
  1060
    </exec>
asier@4279
  1061
    <taskdef name="CoreRevision" classname="org.openbravo.erpCommon.utility.CalculateCoreRevision">
asier@4279
  1062
            <classpath refid="project.class.path" />
asier@4279
  1063
          </taskdef>
asier@4279
  1064
asier@4279
  1065
    <CoreRevision hgRevNo="${hg.idno}" revision="core.rev"/>
asier@4279
  1066
  </target>
asier@4279
  1067
  
asier@4279
  1068
  <target name="set.version.from.file" if="xml.core.rev">
asier@4279
  1069
    <echo message="reading core revision from xml file..."/>
asier@4279
  1070
    <loadfile property="core.rev" srcfile="${basedir}/src-db/database/sourcedata/AD_MODULE.xml">
asier@4279
  1071
      <filterchain>
asier@4279
  1072
        <linecontains>
asier@4279
  1073
          <contains value="VERSION>"/>
asier@4279
  1074
        </linecontains>
asier@4279
  1075
        <tokenfilter>
asier@4279
  1076
            <replaceregex pattern="(.*VERSION.*\[CDATA\[)(.*\..*\..*)(\]\].*)" replace="\2"/>
asier@4279
  1077
        </tokenfilter>
gorka@5142
  1078
        <striplinebreaks/>
asier@4279
  1079
      </filterchain>
asier@4279
  1080
    </loadfile>
asier@4279
  1081
  </target>
antonio@4917
  1082
  
antonio@4917
  1083
  
antonio@4965
  1084
  <target name="load.logoimages">
antonio@4965
  1085
    <ant dir="${base.src}" target="load.logoimages" inheritAll="true" inheritRefs="true" />
antonio@4917
  1086
  </target>
asier@5536
  1087
  
asier@5536
  1088
  <target name="validate.wad">
asier@5536
  1089
    <ant dir="${base.src}" target="wadvalidation" inheritAll="true" inheritRefs="true" />
asier@5536
  1090
  </target>
antonio@7480
  1091
  
antonio@7480
  1092
  <target name="UIrebuild" depends="core.lib">
antonio@7480
  1093
    <java classname="org.openbravo.base.BuildTask" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}">
antonio@7480
  1094
      <arg line="'${base.config}/Openbravo.properties' ${logFileName}" />
antonio@7480
  1095
      <classpath>
antonio@7480
  1096
        <pathelement path="${build.core.lib}/openbravo-core.jar" />
antonio@7480
  1097
        <pathelement path="${base.lib}/runtime/log4j-1.2.8.jar" />
antonio@7480
  1098
        <pathelement path="${base.lib}/runtime/commons-pool.jar" />
antonio@7480
  1099
        <pathelement path="${base.lib}/runtime/commons-dbcp.jar" />
antonio@7480
  1100
        <pathelement path="${base.lib}/runtime/postgresql-jdbc3-8.2.jar" />
antonio@7480
  1101
        <pathelement path="${base.lib}/runtime/ojdbc6.jar" />
antonio@7480
  1102
        <pathelement path="${base.lib}/runtime/commons-collections.jar" />
antonio@7480
  1103
        <pathelement path="${base.lib}/runtime/ant-1.7.1.jar" />
antonio@7480
  1104
        <pathelement path="${base.lib}/runtime/ant-launcher.jar" />
antonio@7480
  1105
        <pathelement path="${base.lib}/runtime/ant-apache-log4j.jar" />
antonio@7480
  1106
        <pathelement path="${base.lib}/runtime/ant-nodeps.jar" />
antonio@7480
  1107
      </classpath>
antonio@7480
  1108
    </java>
antonio@7480
  1109
  </target>
asier@8883
  1110
  
asier@8883
  1111
  <target name="check.module.consistency">
asier@8883
  1112
    <taskdef name="checkConsistency" classname="org.openbravo.erpCommon.modules.CheckLocalConsistency">
asier@8883
  1113
      <classpath refid="project.class.path" />
asier@8883
  1114
    </taskdef>
asier@8883
  1115
    <checkConsistency userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties"/>
asier@8883
  1116
  </target>
asier@43
  1117
</project>