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@9072
     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@6701
    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@3544
    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@3794
    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@7541
    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@6107
    88
  <property name="apply.on.create" value="false" />
antonio@6108
    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@7709
    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@3995
    98
  <property name="apply.modules.complete.compilation" value="false" />
asier@4279
    99
  <property name="calculate.core.revision" value="true"/>
asier@5275
   100
  <property name="stopOnWadError" value="false"/>
antonio@5691
   101
  <property name="friendlyWarnings" value="false"/>
antonio@6786
   102
  <property name="checkTranslationConsistency" value="true"/>
antonio@7925
   103
  <property name="buildValidation" value="true"/>
antonio@8354
   104
  <property name="disableCheckReferencedOrganizations" value="false"/>
asier@2057
   105
juanpablo@3841
   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@6108
   137
  <condition property="apply.modules.on.update">
antonio@6108
   138
    <or>
antonio@6108
   139
      <equals arg1="yes" arg2="${apply.on.update}" />
antonio@6108
   140
      <equals arg1="true" arg2="${apply.on.update}" />
antonio@6108
   141
    </or>
antonio@6108
   142
  </condition>
antonio@6108
   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@3337
   158
  <condition property="timestamp">
antonio@3337
   159
    <or>
antonio@3337
   160
      <equals arg1="no" arg2="${execute.update.build.timestamp}" />
antonio@3337
   161
      <equals arg1="false" arg2="${execute.update.build.timestamp}" />
antonio@3337
   162
    </or>
antonio@3337
   163
  </condition>
antonio@3337
   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@6240
   173
juanpablo@6241
   174
  <condition property="build.maxmemory" value="1024M" else="512M">
juanpablo@6241
   175
    <or>
juanpablo@6241
   176
      <equals arg1="${os.arch}" arg2="amd64" />
juanpablo@6241
   177
      <equals arg1="${os.arch}" arg2="x86_64" />
juanpablo@6241
   178
      <equals arg1="${os.arch}" arg2="ia64" />
juanpablo@6241
   179
    </or>
asier@6240
   180
  </condition>
stefan@124
   181
juanpablo@7924
   182
  <condition property="allow.root.user" value="true" else="false">
juanpablo@7924
   183
    <or>
juanpablo@7924
   184
      <equals arg1="yes" arg2="${allow.root}" />
juanpablo@7924
   185
      <equals arg1="true" arg2="${allow.root}" />
juanpablo@7924
   186
    </or>
juanpablo@7924
   187
  </condition>
juanpablo@7924
   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@7924
   200
juanpablo@7924
   201
  <condition property="root.user">
juanpablo@7924
   202
    <and>
juanpablo@7924
   203
      <equals arg1="${user.name}" arg2="root" />
juanpablo@7924
   204
      <not>
juanpablo@7924
   205
        <contains string="${os.name}" substring="Windows" />
juanpablo@7924
   206
      </not>
juanpablo@7924
   207
      <equals arg1="false" arg2="${allow.root.user}" />
juanpablo@7924
   208
    </and>
juanpablo@7924
   209
  </condition>
juanpablo@7924
   210
stefan@9215
   211
  <!-- Minimal classpath used for executing Wad at compile time -->
stefan@9215
   212
  <path id="wad.class.path">
stefan@9215
   213
    <fileset dir="${base.lib}">
stefan@9215
   214
      <include name="**/*.jar" />
stefan@9215
   215
    </fileset>
stefan@9215
   216
    <fileset dir="${build.core.lib}">
stefan@9215
   217
      <include name="openbravo-core.jar" />
stefan@9215
   218
    </fileset>
stefan@9215
   219
    <fileset dir="${build.wad.lib}">
stefan@9215
   220
      <include name="openbravo-wad.jar" />
stefan@9215
   221
    </fileset>
stefan@9215
   222
  </path>
stefan@9215
   223
martin@2871
   224
  <path id="project.class.path">
antonio@7894
   225
    <dirset dir="${base.modules}">
antonio@7894
   226
      <include name="*/build/classes/" />
antonio@7894
   227
    </dirset>
antonio@7894
   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@7894
   252
  </path>
antonio@7894
   253
antonio@7894
   254
  <!-- This classpath is needed only for the compile.apply.module task-->
antonio@7894
   255
  <path id="apply.module.compile.classpath">
antonio@6886
   256
    <dirset dir="${base.modules}">
antonio@6886
   257
      <include name="*/build/classes/" />
antonio@6886
   258
    </dirset>
antonio@6886
   259
    <pathelement path="${basedir}/../../src-util/modulescript/build/classes/" />
antonio@7543
   260
    <pathelement path="${build.apply.module}" />
antonio@7543
   261
    <pathelement path="${base.src}" />
antonio@7543
   262
    <fileset dir="${base.lib}">
antonio@7543
   263
      <include name="**/*.jar" />
antonio@7543
   264
    </fileset>
antonio@7543
   265
    <fileset dir="${build.core.lib}">
antonio@7543
   266
      <include name="openbravo-core.jar" />
antonio@7543
   267
    </fileset>
antonio@7543
   268
    <fileset dir="${build.trl.lib}">
antonio@7543
   269
      <include name="openbravo-trl.jar" />
antonio@7543
   270
    </fileset>
antonio@7543
   271
    <fileset dir="${build.wad.lib}">
antonio@7543
   272
      <include name="openbravo-wad.jar" />
antonio@7543
   273
    </fileset>
antonio@7543
   274
    <fileset dir="${base.lib}">
antonio@7543
   275
      <include name="**/*.jar" />
antonio@7543
   276
    </fileset>
antonio@7543
   277
    <fileset dir="${base.db}/lib/">
antonio@7543
   278
      <include name="**/*.jar" />
antonio@7543
   279
    </fileset>
antonio@7543
   280
    <fileset dir="${base.modules}">
antonio@7543
   281
      <include name="*/lib/**" />
antonio@7543
   282
    </fileset>
antonio@7894
   283
  </path>
antonio@7894
   284
  
antonio@7894
   285
  <!-- This classpath is needed only for the apply.module task-->
antonio@7894
   286
  <path id="apply.module.runtime.classpath">
antonio@7543
   287
    <dirset dir="${base.modules}">
antonio@7543
   288
      <include name="*/build/classes/" />
antonio@7543
   289
    </dirset>
antonio@7543
   290
    <pathelement path="${basedir}/../../src-util/modulescript/build/classes/" />
antonio@7541
   291
    <pathelement path="${build.apply.module}" />
antonio@7543
   292
    <pathelement path="${build}" />
antonio@7541
   293
    <pathelement path="${base.src}" />
antonio@7541
   294
    <fileset dir="${base.lib}">
antonio@7541
   295
      <include name="**/*.jar" />
antonio@7541
   296
    </fileset>
antonio@7541
   297
    <fileset dir="${build.core.lib}">
antonio@7541
   298
      <include name="openbravo-core.jar" />
antonio@7541
   299
    </fileset>
antonio@7541
   300
    <fileset dir="${build.trl.lib}">
antonio@7541
   301
      <include name="openbravo-trl.jar" />
antonio@7541
   302
    </fileset>
antonio@7541
   303
    <fileset dir="${build.wad.lib}">
antonio@7541
   304
      <include name="openbravo-wad.jar" />
antonio@7541
   305
    </fileset>
antonio@7541
   306
    <fileset dir="${base.lib}">
antonio@7541
   307
      <include name="**/*.jar" />
antonio@7541
   308
    </fileset>
antonio@7541
   309
    <fileset dir="${base.db}/lib/">
antonio@7541
   310
      <include name="**/*.jar" />
antonio@7541
   311
    </fileset>
antonio@7541
   312
    <fileset dir="${base.modules}">
antonio@7541
   313
      <include name="*/lib/**" />
antonio@7541
   314
    </fileset>
antonio@7541
   315
  </path>
antonio@5617
   316
  
antonio@5617
   317
  <macrodef name="updatesystemstatus">
antonio@5617
   318
     <attribute name="v" default="NOT SET"/>
antonio@5617
   319
     <sequential>
antonio@5617
   320
       <sql driver="${bbdd.driver}" url="${bbdd.owner.url}" userid="${bbdd.user}" password="${bbdd.password}" onerror="continue" autocommit="true">
antonio@5618
   321
         <classpath> <fileset dir="${base.lib}"> <include name="**/*.jar"> </include> </fileset> </classpath>
antonio@5618
   322
         <transaction> UPDATE ad_system_info SET system_status='@{v}' ;
antonio@5618
   323
                       DELETE FROM ad_error_log where system_status=(select system_status from ad_system_info)
antonio@5618
   324
         </transaction>
antonio@5617
   325
       </sql>
antonio@5617
   326
     </sequential>
antonio@5617
   327
  </macrodef>
antonio@5617
   328
  
martin@2871
   329
  <taskdef resource="axis-tasks.properties" classpathref="project.class.path" />
asier@5216
   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@7924
   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@3841
   337
    <condition property="code.revision" value="${hg.id}" else="0">
juanpablo@3841
   338
      <isset property="hg.id" />
martin@2871
   339
    </condition>
martin@2871
   340
  </target>
ivan@812
   341
juanpablo@3841
   342
  <target name="set.code.rev" if="is.hg">
juanpablo@3841
   343
    <exec executable="hg" outputproperty="hg.id" failifexecutionfails="false">
juanpablo@3841
   344
      <arg value="id"/>
juanpablo@3841
   345
      <arg value="-i"/>
juanpablo@3841
   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@5216
   366
    
asier@5219
   367
    <taskdef name="CheckSumCondition" classname="org.openbravo.utils.CheckSumCondition">
asier@5219
   368
      <classpath refid="project.class.path" />
asier@5219
   369
    </taskdef>
asier@5219
   370
    
asier@5216
   371
    <CheckSumCondition obDir="${basedir}"
asier@5216
   372
                       type="md5.wad"
asier@5216
   373
                       property="test.md5.wad"/>
martin@3038
   374
martin@3038
   375
    <condition property="new.wad">
asier@5216
   376
        <istrue value="${test.md5.wad}"/>
martin@3038
   377
    </condition>
martin@3038
   378
martin@3038
   379
    <antcall target="trl.lib" />
asier@4288
   380
    
asier@3660
   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@7512
   385
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
antonio@5615
   386
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
antonio@4933
   387
    <antcall target="build.deploy" />
antonio@8116
   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@6897
   430
  <target name="buildvalidation" depends="init, core.lib">
antonio@7535
   431
    <updatesystemstatus v="RB11"/> 
antonio@7925
   432
    <condition property="buildValidation.var">
antonio@7925
   433
      <istrue value="${buildValidation}"  />
antonio@7925
   434
    </condition>
antonio@6897
   435
    <ant dir="src-util/buildvalidation" target="buildvalidation" inheritAll="true" inheritRefs="true" />
antonio@6886
   436
  </target>
antonio@6886
   437
  
antonio@6886
   438
  <target name="compile.buildvalidation" depends="init, core.lib">
antonio@6886
   439
    <ant dir="src-util/buildvalidation" target="compile" inheritAll="true" inheritRefs="true" />
antonio@6886
   440
  </target>
antonio@6886
   441
  
antonio@6886
   442
  <target name="compile.modulescript" depends="init, core.lib">
antonio@6886
   443
    <ant dir="src-util/modulescript" target="compile" inheritAll="true" inheritRefs="true" />
antonio@6886
   444
  </target>
antonio@6886
   445
antonio@7535
   446
  <target name="compile.complete.deploy" depends="compile.complete.development, compile.complete.war">
antonio@7512
   447
asier@5216
   448
    <!-- Calculate wad checksum to enable smartbuild-->
asier@5219
   449
    <taskdef name="CheckSumCondition" classname="org.openbravo.utils.CheckSumCondition">
asier@5219
   450
      <classpath refid="project.class.path" />
asier@5219
   451
    </taskdef>
asier@5219
   452
    
asier@5216
   453
    <CheckSumCondition obDir="${basedir}"
asier@5216
   454
                           type="md5.wad"
asier@5216
   455
                           property="test.md5.wad"/>
martin@2871
   456
  </target>
asier@43
   457
asier@7164
   458
  <target name="compile.complete.development" depends="init" unless="mode.war">
antonio@7535
   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@7535
   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@8116
   470
    <updatesystemstatus v="RB51"/>
martin@2871
   471
  </target>
martin@2686
   472
asier@7164
   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@7165
   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@5987
   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@5987
   505
    <echo message="Refreshing project..." level="info" />
martin@2871
   506
    <eclipse.refreshLocal resource="openbravo" depth="infinite" />
ivan@5987
   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@5987
   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@5987
   517
    <echo message="Refreshing project..." level="info" />
martin@2871
   518
    <eclipse.refreshLocal resource="openbravo" depth="infinite" />
ivan@5987
   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@3794
   527
  <target name="generate.java.doc">
martin@5179
   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@3965
   529
      <excludepackage name="org.openbravo.erpWindows.*"/>
martin@3794
   530
      <classpath>
martin@3794
   531
        <path refid="project.class.path"/>
martin@3794
   532
        <pathelement path="lib/build/js.jar" />
martin@3794
   533
      </classpath>
martin@3893
   534
      <link href="http://java.sun.com/javase/6/docs/api/"/>
martin@3794
   535
    </javadoc>
martin@3794
   536
  </target>
martin@3794
   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@5674
   546
  <target name="run.tests" depends="init">
martin@3625
   547
    <ant dir="${base.src}" target="run.tests" inheritAll="true" inheritRefs="true" />
martin@3625
   548
  </target>
martin@3625
   549
stefan@5674
   550
  <target name="run.all.tests" depends="init">
martin@3656
   551
    <ant dir="${base.src}" target="run.all.tests" inheritAll="true" inheritRefs="true" />
martin@3656
   552
  </target>
martin@3656
   553
priya@6927
   554
  <target name="run.webservice.tests" depends="init">
priya@6927
   555
      <ant dir="${base.src}" target="run.webservice.tests" inheritAll="true" inheritRefs="true" />
priya@6927
   556
  </target>
priya@6927
   557
stefan@5674
   558
  <target name="run.quick.tests" depends="init">
martin@3625
   559
    <ant dir="${base.src}" target="run.quick.tests" inheritAll="true" inheritRefs="true" />
martin@3625
   560
  </target>
martin@3625
   561
stefan@3810
   562
  <target name="run.api.test.javascript">
stefan@3810
   563
    <ant dir="${base.src}" target="run.api.test.javascript" inheritAll="true" inheritRefs="true" />
ivan@3752
   564
  </target>
asier@3808
   565
  
asier@3808
   566
  <target name="run.api.test.model" 
asier@3808
   567
          description="Checks current xml db model and dictionary API for not-allowed changes. Requires stableDBdir parameter">
stefan@9371
   568
    <taskdef name="checkAPI" classname="org.openbravo.ddlutils.task.CheckAPIDistribution">
asier@3808
   569
      <classpath refid="project.class.path" />
asier@3808
   570
    </taskdef>
asier@3808
   571
    <checkAPI driver="${bbdd.driver}" 
asier@3808
   572
                  url="${bbdd.owner.url}" 
asier@3808
   573
                  user="${bbdd.user}" 
asier@3808
   574
                  password="${bbdd.password}" 
asier@3808
   575
                  stableDBdir="${stableDBdir}"
stefan@9371
   576
                  testDBdir="${basedir}"
asier@3808
   577
                  verbosity="${bbdd.verbosity}"
antonio@6668
   578
    />    
asier@3808
   579
  </target>
ivan@3752
   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@7535
   670
    <echo message="applying modules" />    
antonio@7535
   671
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
antonio@5615
   672
martin@2871
   673
    <antcall target="import.sample.data" />
antonio@4965
   674
    <antcall target="load.logoimages" />
antonio@8116
   675
    <updatesystemstatus v="RB51"/> 
antonio@5626
   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@5987
   685
    <fail unless="eclipse.running" message="eclipse.* tasks must be executed inside Eclipse" />
ivan@5987
   686
    <echo message="Building OpenbravoCore project..." level="info" />
rafael@3544
   687
    <eclipse.incrementalBuild project="OpenbravoCore" kind="full"/>
rafael@3544
   688
    <antcall target="eclipse.wad.lib"/>
rafael@3544
   689
    <antcall target="eclipse.trl.lib"/>
rafael@3544
   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@3544
   693
    <antcall target="import.sample.data" />
antonio@8116
   694
    <updatesystemstatus v="RB51"/>
antonio@6472
   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@6897
   703
  <target name="update.database" depends="init, core.lib, database.lib, buildvalidation">
antonio@7535
   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@7535
   707
    <antcall target="apply.module" />
martin@2871
   708
  </target>
asier@1929
   709
antonio@6897
   710
  <target name="update.database.mod" depends="init, core.lib, database.lib, buildvalidation">
antonio@7535
   711
    <updatesystemstatus v="RB12"/>
antonio@7545
   712
    <ant dir="${base.db}" target="update.database.mod.java" inheritAll="true" inheritRefs="true" />
antonio@7535
   713
    <antcall target="generate.entities.quick" />
antonio@7535
   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@6108
   733
  <target name="db.apply.modules" if="apply.modules.on.update">
antonio@6074
   734
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
antonio@6074
   735
  </target>
antonio@6074
   736
martin@2871
   737
  <target name="db.apply.modules.sampledata" if="apply.modules.on.create">
antonio@5077
   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@8501
   745
  <target name="apply.modules">
martin@4287
   746
asier@3995
   747
    <condition property="apply.modules.complete.compilation.var">
asier@3995
   748
      <istrue value="${apply.modules.complete.compilation}"  />
asier@3995
   749
    </condition>
asier@3995
   750
    
asier@3995
   751
    <condition property="apply.modules.simple.compilation.var">
asier@3995
   752
      <isfalse value="${apply.modules.complete.compilation.var}" />
asier@3995
   753
    </condition>
antonio@7516
   754
antonio@7535
   755
    <updatesystemstatus v="RB43"/>
asier@3995
   756
    <antcall target="apply.modules.compile"/>
antonio@7516
   757
antonio@5611
   758
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
antonio@7516
   759
asier@3995
   760
  </target>
asier@3995
   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@5455
   772
    <applyModule userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties"/>
martin@4287
   773
  </target>
antonio@7535
   774
  
antonio@7535
   775
  <target name="compile.apply.module" depends="init">
antonio@7537
   776
    <updatesystemstatus v="RB31"/>
antonio@7535
   777
    <ant dir="${base.src}" target="compile.apply.module" inheritAll="true" inheritRefs="true" />
antonio@7535
   778
  </target>
antonio@7535
   779
  
antonio@7541
   780
  <!--
antonio@7541
   781
  This task uses a special classpath.
antonio@7541
   782
  This classpath is equivalent to the normal project.class.path, except for the fact that that the normal build folder
antonio@7541
   783
  is replaced by the apply.module.build folder, in which the ApplyModule task related classes will be compiled.
antonio@7541
   784
  This is done to workaround the fact that the javac task needs to compile all the related classes when upgrading openbravo
antonio@7541
   785
  and if the normal build folder is included, none of them are recompiled by default unless the whole build directory is specified.
antonio@7541
   786
  -->
antonio@7535
   787
  <target name="apply.module" depends="compile.apply.module">
antonio@6492
   788
    <java classname="org.openbravo.erpCommon.modules.ApplyModuleTask" fork="true" maxmemory="${build.maxmemory}" failonerror="true">
martin@8779
   789
      <arg line="'${base.src}' '${friendlyWarnings}'" />
antonio@7543
   790
      <classpath refid="apply.module.runtime.classpath" />
martin@4287
   791
    </java>
antonio@7541
   792
   <delete includeEmptyDirs="true"  dir="${build.apply.module}" />
martin@4287
   793
  </target>
asier@3995
   794
  
asier@6221
   795
  <target name="apply.modules.compile" depends="wad.lib">
asier@3995
   796
    <antcall target="apply.modules.compile.simple"/>
asier@3995
   797
    <antcall target="apply.modules.compile.complete"/>
asier@3995
   798
  </target>
asier@3995
   799
  
asier@3995
   800
  <target name="apply.modules.compile.simple" if="apply.modules.simple.compilation.var">
martin@2871
   801
    <antcall target="compile.deploy" />
asier@3995
   802
  </target>
asier@3995
   803
  
asier@3995
   804
  <target name="apply.modules.compile.complete" if="apply.modules.complete.compilation.var">
asier@3995
   805
     <antcall target="compile.complete.deploy" />
martin@2871
   806
  </target>
martin@3982
   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@5455
   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@5455
   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@6886
   938
    <ant dir="src-util/diagnostic" antfile="build-create.xml" target="build" />
antonio@6886
   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@3825
   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@3976
   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@7903
   977
        <contains string="${os.name}" substring="Windows" />
juanpablo@8000
   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@7903
   985
        <not>
juanpablo@7903
   986
          <contains string="${os.name}" substring="Windows" />
juanpablo@7903
   987
        </not>
juanpablo@8000
   988
        <not>
juanpablo@8000
   989
          <contains string="${os.name}" substring="OS X" />
juanpablo@8000
   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@8000
  1005
    <condition property="bin.ext" value="exe">
martin@2871
  1006
      <os family="windows" />
martin@2871
  1007
    </condition>
martin@2871
  1008
juanpablo@8000
  1009
    <condition property="bin.ext" value="app.tar.gz">
juanpablo@8000
  1010
      <os family="mac" />
juanpablo@8000
  1011
    </condition>
juanpablo@8000
  1012
juanpablo@8000
  1013
    <condition property="bin.ext" value="bin">
juanpablo@8000
  1014
      <not>
juanpablo@8000
  1015
        <isset property="${bin.ext}" />
juanpablo@8000
  1016
      </not>
juanpablo@8000
  1017
    </condition>
juanpablo@8000
  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@5116
  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@7476
  1091
  
antonio@7476
  1092
  <target name="UIrebuild" depends="core.lib">
antonio@7476
  1093
    <java classname="org.openbravo.base.BuildTask" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}">
antonio@7476
  1094
      <arg line="'${base.config}/Openbravo.properties' ${logFileName}" />
antonio@7476
  1095
      <classpath>
antonio@7476
  1096
        <pathelement path="${build.core.lib}/openbravo-core.jar" />
antonio@7476
  1097
        <pathelement path="${base.lib}/runtime/log4j-1.2.8.jar" />
antonio@7476
  1098
        <pathelement path="${base.lib}/runtime/commons-pool.jar" />
antonio@7476
  1099
        <pathelement path="${base.lib}/runtime/commons-dbcp.jar" />
antonio@7476
  1100
        <pathelement path="${base.lib}/runtime/postgresql-jdbc3-8.2.jar" />
antonio@7476
  1101
        <pathelement path="${base.lib}/runtime/ojdbc6.jar" />
antonio@7476
  1102
        <pathelement path="${base.lib}/runtime/commons-collections.jar" />
antonio@7476
  1103
        <pathelement path="${base.lib}/runtime/ant-1.7.1.jar" />
antonio@7476
  1104
        <pathelement path="${base.lib}/runtime/ant-launcher.jar" />
antonio@7476
  1105
        <pathelement path="${base.lib}/runtime/ant-apache-log4j.jar" />
antonio@7476
  1106
        <pathelement path="${base.lib}/runtime/ant-nodeps.jar" />
antonio@7476
  1107
      </classpath>
antonio@7476
  1108
    </java>
antonio@7476
  1109
  </target>
asier@8876
  1110
  
asier@8876
  1111
  <target name="check.module.consistency">
asier@8876
  1112
    <taskdef name="checkConsistency" classname="org.openbravo.erpCommon.modules.CheckLocalConsistency">
asier@8876
  1113
      <classpath refid="project.class.path" />
asier@8876
  1114
    </taskdef>
asier@8876
  1115
    <checkConsistency userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties"/>
asier@8876
  1116
  </target>
asier@43
  1117
</project>