build.xml
author Asier Lostalé <asier.lostale@openbravo.com>
Thu, 26 Apr 2018 07:46:08 +0200
changeset 33930 b33d1c4cc375
parent 33925 a608b59e1e60
child 33931 1c1c62de03b1
permissions -rw-r--r--
fixes 38449: compilation warnings in src-core + buildvalidations with JDK10

JDK version validation is now performed directly in ant without need of executing
and build validation (note checking only if it is 6 as before core was only compiled
with 6, so it would have failed anyway if running with an older one).

This allows to compile core and build validations with the same JDK as the rest.
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
carlos@33710
    15
* All portions are Copyright (C) 2001-2018 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
compile.src: refer to compile.src target of src.
juanpablo@213
    31
war: refer to build.war target of src.
juanpablo@213
    32
core.lib: refer to build target of src-core.
juanpablo@213
    33
wad.lib: refer to build target of src-wad.
juanpablo@213
    34
trl.lib: refer to build target of src-trl.
juanpablo@213
    35
database.lib: refer to jar target of src-db.
juanpablo@213
    36
clean: refer to clean target of src.
juanpablo@213
    37
trl.clean: refer to trl.clean target of src.
juanpablo@213
    38
translate: refer to translate target of src.
juanpablo@213
    39
installWebService: refer to installWebService target of src.
juanpablo@213
    40
uninstallWebService: refer to uninstallWebService target of src.
juanpablo@2061
    41
deploy.context: deploy the context into Tomcat using the manager
juanpablo@213
    42
install.source: install the ERP from sources (from subversion).
juanpablo@213
    43
create.database: refer to create.database target of database.
juanpablo@213
    44
update.database: refer to update.database target of database.
juanpablo@213
    45
create.database.script: refer to create.database.script target of database.
juanpablo@213
    46
update.database.script: refer to update.database.script target of database.
juanpablo@213
    47
export.database: exports database structure and data to xml files.
fernando@202
    48
-->
asier@43
    49
<project name="openbravo" default="compile.complete" basedir=".">
martin@2871
    50
  <property environment="env" />
martin@2871
    51
  <property name="base.config" location="config" />
martin@2871
    52
  <property file="${base.config}/Openbravo.properties" />
martin@2871
    53
  <property file="${base.config}/checksums" />
juanpablo@131
    54
martin@2871
    55
  <property name="base.config" location="config" />
martin@2871
    56
  <property name="base.src" location="src" />
martin@3794
    57
  <property name="base.src.test" location="src-test" />
martin@2871
    58
  <property name="base.src.core" location="src-core" />
martin@2871
    59
  <property name="base.src.db" location="src-db" />
martin@2871
    60
  <property name="base.src.trl" location="src-trl" />
martin@2871
    61
  <property name="base.src.wad" location="src-wad" />
martin@2871
    62
  <property name="base.src.gen" location="src-gen" />
martin@2871
    63
  <property name="base.db" location="src-db/database" />
martin@2871
    64
  <property name="base.web" location="web" />
martin@2871
    65
  <property name="base.context" location="WebContent" />
martin@2871
    66
  <property name="base.design" location="${base.context}/src-loc" />
martin@2871
    67
  <property name="base.lib" location="lib" />
martin@2871
    68
  <property name="base.modules" location="modules" />
martin@2871
    69
  <property name="build" location="build/classes" />
antonio@7541
    70
  <property name="build.apply.module" location="build.apply/classes" />
martin@2871
    71
  <property name="build.AD" location="srcAD" />
martin@2871
    72
  <property name="build.sqlc" location="build/javasqlc" />
martin@2871
    73
  <property name="build.core.lib" location="src-core/lib" />
martin@2871
    74
  <property name="build.trl.lib" location="src-trl/lib" />
martin@2871
    75
  <property name="build.wad.lib" location="src-wad/lib" />
martin@2871
    76
  <property name="build.docs" location="docs/api" />
martin@2871
    77
  <property name="jakarta.home" location="${env.CATALINA_HOME}" />
martin@2871
    78
  <property name="module" value="%" />
antonio@6107
    79
  <property name="apply.on.create" value="false" />
antonio@6108
    80
  <property name="apply.on.update" value="true" />
martin@2871
    81
  <property name="obx.export.RD" value="false" />
martin@2871
    82
  <property name="obx.export.DB" value="false" />
martin@2871
    83
  <property name="obx.export.CS" value="false" />
asier@19231
    84
  <property name="obx.export.validate" value="true" />
asier@19231
    85
  <property name="obx.export.allDeps" value="false" />
martin@2871
    86
  <property name="chekPerms" value="false" />
antonio@2896
    87
  <property name="force" value="false" />
antonio@7709
    88
  <property name="strict.template.application" value="false" />
antonio@4937
    89
  <property name="rd" value="false" />
asier@3008
    90
  <property name="local" value="true" />
asier@3995
    91
  <property name="apply.modules.complete.compilation" value="false" />
martin@14869
    92
  <property name="calculate.core.revision" value="true"/>
martin@14869
    93
  <property name="stopOnWadError" value="false"/>
martin@14869
    94
  <property name="friendlyWarnings" value="false"/>
martin@14869
    95
  <property name="checkTranslationConsistency" value="true"/>
martin@14869
    96
  <property name="buildValidation" value="true"/>
antonio@29768
    97
  <property name="modules" value=""/> 
antonio@29768
    98
 
juanpablo@3841
    99
  <available file=".hg" property="is.hg" />
martin@3038
   100
carlos@33755
   101
  <condition property="xdoclint.missing" value="" else="-Xdoclint:-missing">
carlos@33755
   102
    <equals arg1="${ant.java.version}" arg2="1.7"/>
asier@32951
   103
  </condition>
asier@32951
   104
asier@4279
   105
  <condition property="calculate.core.rev">
martin@14869
   106
   <istrue value="${calculate.core.revision}"/>
asier@4279
   107
  </condition>
martin@14869
   108
  
asier@4279
   109
  <condition property="xml.core.rev">
martin@14869
   110
     <isfalse value="${calculate.core.revision}"/>
asier@4279
   111
  </condition>
martin@14869
   112
  
juanpablo@2522
   113
  <condition property="deploy.mode" value="class">
juanpablo@2522
   114
    <not>
juanpablo@2522
   115
      <isset property="${deploy.mode}" />
juanpablo@2522
   116
    </not>
juanpablo@2522
   117
  </condition>
martin@2345
   118
martin@2871
   119
  <condition property="mode.war">
martin@2871
   120
    <equals arg1="war" arg2="${deploy.mode}" />
martin@2871
   121
  </condition>
martin@2345
   122
martin@2871
   123
  <condition property="mode.class">
martin@2871
   124
    <equals arg1="class" arg2="${deploy.mode}" />
martin@2871
   125
  </condition>
martin@2345
   126
martin@2871
   127
  <condition property="apply.modules.on.create">
martin@2871
   128
    <or>
martin@2871
   129
      <equals arg1="yes" arg2="${apply.on.create}" />
martin@2871
   130
      <equals arg1="true" arg2="${apply.on.create}" />
martin@2871
   131
    </or>
martin@2871
   132
  </condition>
martin@2345
   133
antonio@6108
   134
  <condition property="apply.modules.on.update">
antonio@6108
   135
    <or>
antonio@6108
   136
      <equals arg1="yes" arg2="${apply.on.update}" />
antonio@6108
   137
      <equals arg1="true" arg2="${apply.on.update}" />
antonio@6108
   138
    </or>
antonio@6108
   139
  </condition>
antonio@6108
   140
martin@2871
   141
  <condition property="obx.exp.DB">
martin@2871
   142
    <or>
martin@2871
   143
      <equals arg1="yes" arg2="${obx.export.DB}" />
martin@2871
   144
      <equals arg1="true" arg2="${obx.export.DB}" />
martin@2871
   145
    </or>
martin@2871
   146
  </condition>
martin@2345
   147
martin@2871
   148
  <condition property="obx.exp.CS">
martin@2871
   149
    <or>
martin@2871
   150
      <equals arg1="yes" arg2="${obx.export.CS}" />
martin@2871
   151
      <equals arg1="true" arg2="${obx.export.CS}" />
martin@2871
   152
    </or>
martin@2871
   153
  </condition>
asier@19231
   154
  
asier@19231
   155
  <condition property="obx.exp.validate">
asier@19231
   156
    <or>
asier@19231
   157
      <equals arg1="yes" arg2="${obx.export.validate}" />
asier@19231
   158
      <equals arg1="true" arg2="${obx.export.validate}" />
asier@19231
   159
    </or>
asier@19231
   160
  </condition>
asier@43
   161
antonio@3337
   162
  <condition property="timestamp">
antonio@3337
   163
    <or>
antonio@3337
   164
      <equals arg1="no" arg2="${execute.update.build.timestamp}" />
antonio@3337
   165
      <equals arg1="false" arg2="${execute.update.build.timestamp}" />
antonio@3337
   166
    </or>
antonio@3337
   167
  </condition>
antonio@3337
   168
martin@2871
   169
  <condition property="jakarta.base" value="${env.CATALINA_BASE}" else="${jakarta.home}">
martin@2871
   170
    <and>
martin@2871
   171
      <isset property="env.CATALINA_BASE" />
martin@2871
   172
    </and>
martin@2871
   173
  </condition>
martin@2871
   174
  <property name="log.path" location="${jakarta.base}/logs" />
martin@2871
   175
  <property name="lib" location="${jakarta.home}/common" />
martin@2871
   176
  <property name="jakarta.context" location="${jakarta.base}/webapps/${context.name}" />
asier@6240
   177
juanpablo@6241
   178
  <condition property="build.maxmemory" value="1024M" else="512M">
juanpablo@6241
   179
    <or>
juanpablo@6241
   180
      <equals arg1="${os.arch}" arg2="amd64" />
juanpablo@6241
   181
      <equals arg1="${os.arch}" arg2="x86_64" />
juanpablo@6241
   182
      <equals arg1="${os.arch}" arg2="ia64" />
juanpablo@6241
   183
    </or>
asier@6240
   184
  </condition>
stefan@124
   185
juanpablo@7924
   186
  <condition property="allow.root.user" value="true" else="false">
juanpablo@7924
   187
    <or>
juanpablo@7924
   188
      <equals arg1="yes" arg2="${allow.root}" />
juanpablo@7924
   189
      <equals arg1="true" arg2="${allow.root}" />
juanpablo@7924
   190
    </or>
juanpablo@7924
   191
  </condition>
juanpablo@7924
   192
martin@2871
   193
  <condition property="no.java.home" value="true">
martin@2871
   194
    <not>
martin@2871
   195
      <isset property="env.JAVA_HOME" />
martin@2871
   196
    </not>
martin@2871
   197
  </condition>
juanpablo@1548
   198
antonio@2838
   199
  <condition property="bbdd.owner.url" value="${bbdd.url}/${bbdd.sid}" else="${bbdd.url}">
antonio@2838
   200
    <and>
martin@2871
   201
      <equals arg1="${bbdd.rdbms}" arg2="POSTGRE" />
antonio@2838
   202
    </and>
antonio@2838
   203
  </condition>
juanpablo@7924
   204
juanpablo@7924
   205
  <condition property="root.user">
juanpablo@7924
   206
    <and>
juanpablo@7924
   207
      <equals arg1="${user.name}" arg2="root" />
juanpablo@7924
   208
      <not>
juanpablo@7924
   209
        <contains string="${os.name}" substring="Windows" />
juanpablo@7924
   210
      </not>
juanpablo@7924
   211
      <equals arg1="false" arg2="${allow.root.user}" />
juanpablo@7924
   212
    </and>
juanpablo@7924
   213
  </condition>
juanpablo@7924
   214
stefan@9215
   215
  <!-- Minimal classpath used for executing Wad at compile time -->
stefan@9215
   216
  <path id="wad.class.path">
stefan@9215
   217
    <fileset dir="${base.lib}">
stefan@9215
   218
      <include name="**/*.jar" />
stefan@9215
   219
    </fileset>
stefan@9215
   220
    <fileset dir="${build.core.lib}">
stefan@9215
   221
      <include name="openbravo-core.jar" />
stefan@9215
   222
    </fileset>
stefan@9215
   223
    <fileset dir="${build.wad.lib}">
stefan@9215
   224
      <include name="openbravo-wad.jar" />
stefan@9215
   225
    </fileset>
stefan@9215
   226
  </path>
stefan@9215
   227
martin@2871
   228
  <path id="project.class.path">
antonio@7894
   229
    <dirset dir="${base.modules}">
antonio@7894
   230
      <include name="*/build/classes/" />
antonio@7894
   231
    </dirset>
antonio@10098
   232
    <pathelement path="${basedir}/src-util/modulescript/build/classes/" />
martin@2871
   233
    <pathelement path="${build}" />
martin@2871
   234
    <pathelement path="${base.src}" />
martin@2871
   235
    <fileset dir="${base.lib}">
martin@2871
   236
      <include name="**/*.jar" />
martin@2871
   237
    </fileset>
martin@2871
   238
    <fileset dir="${build.core.lib}">
martin@2871
   239
      <include name="openbravo-core.jar" />
martin@2871
   240
    </fileset>
martin@2871
   241
    <fileset dir="${build.trl.lib}">
martin@2871
   242
      <include name="openbravo-trl.jar" />
martin@2871
   243
    </fileset>
martin@2871
   244
    <fileset dir="${build.wad.lib}">
martin@2871
   245
      <include name="openbravo-wad.jar" />
martin@2871
   246
    </fileset>
martin@2871
   247
    <fileset dir="${base.lib}">
martin@2871
   248
      <include name="**/*.jar" />
asier@24247
   249
      <exclude name="**/test/*.jar" />
martin@2871
   250
    </fileset>
martin@2871
   251
    <fileset dir="${base.db}/lib/">
martin@2871
   252
      <include name="**/*.jar" />
martin@2871
   253
    </fileset>
martin@2871
   254
    <fileset dir="${base.modules}">
martin@2871
   255
      <include name="*/lib/**" />
asier@24247
   256
       <exclude name="**/test/*.jar" />
martin@2871
   257
    </fileset>
antonio@7894
   258
  </path>
antonio@7894
   259
antonio@7894
   260
  <!-- This classpath is needed only for the compile.apply.module task-->
antonio@7894
   261
  <path id="apply.module.compile.classpath">
antonio@6886
   262
    <dirset dir="${base.modules}">
antonio@6886
   263
      <include name="*/build/classes/" />
antonio@6886
   264
    </dirset>
antonio@6886
   265
    <pathelement path="${basedir}/../../src-util/modulescript/build/classes/" />
antonio@7543
   266
    <pathelement path="${build.apply.module}" />
antonio@7543
   267
    <pathelement path="${base.src}" />
antonio@7543
   268
    <fileset dir="${base.lib}">
antonio@7543
   269
      <include name="**/*.jar" />
antonio@7543
   270
    </fileset>
antonio@7543
   271
    <fileset dir="${build.core.lib}">
antonio@7543
   272
      <include name="openbravo-core.jar" />
antonio@7543
   273
    </fileset>
antonio@7543
   274
    <fileset dir="${build.trl.lib}">
antonio@7543
   275
      <include name="openbravo-trl.jar" />
antonio@7543
   276
    </fileset>
antonio@7543
   277
    <fileset dir="${build.wad.lib}">
antonio@7543
   278
      <include name="openbravo-wad.jar" />
antonio@7543
   279
    </fileset>
antonio@7543
   280
    <fileset dir="${base.lib}">
antonio@7543
   281
      <include name="**/*.jar" />
antonio@7543
   282
    </fileset>
antonio@7543
   283
    <fileset dir="${base.db}/lib/">
antonio@7543
   284
      <include name="**/*.jar" />
antonio@7543
   285
    </fileset>
antonio@7543
   286
    <fileset dir="${base.modules}">
antonio@7543
   287
      <include name="*/lib/**" />
antonio@7543
   288
    </fileset>
antonio@7894
   289
  </path>
martin@14869
   290
  
antonio@7894
   291
  <!-- This classpath is needed only for the apply.module task-->
antonio@7894
   292
  <path id="apply.module.runtime.classpath">
antonio@7543
   293
    <dirset dir="${base.modules}">
antonio@7543
   294
      <include name="*/build/classes/" />
antonio@7543
   295
    </dirset>
antonio@7543
   296
    <pathelement path="${basedir}/../../src-util/modulescript/build/classes/" />
antonio@7541
   297
    <pathelement path="${build.apply.module}" />
antonio@7543
   298
    <pathelement path="${build}" />
antonio@7541
   299
    <pathelement path="${base.src}" />
antonio@7541
   300
    <fileset dir="${base.lib}">
antonio@7541
   301
      <include name="**/*.jar" />
antonio@7541
   302
    </fileset>
antonio@7541
   303
    <fileset dir="${build.core.lib}">
antonio@7541
   304
      <include name="openbravo-core.jar" />
antonio@7541
   305
    </fileset>
antonio@7541
   306
    <fileset dir="${build.trl.lib}">
antonio@7541
   307
      <include name="openbravo-trl.jar" />
antonio@7541
   308
    </fileset>
antonio@7541
   309
    <fileset dir="${build.wad.lib}">
antonio@7541
   310
      <include name="openbravo-wad.jar" />
antonio@7541
   311
    </fileset>
antonio@7541
   312
    <fileset dir="${base.lib}">
antonio@7541
   313
      <include name="**/*.jar" />
antonio@7541
   314
    </fileset>
antonio@7541
   315
    <fileset dir="${base.db}/lib/">
antonio@7541
   316
      <include name="**/*.jar" />
antonio@7541
   317
    </fileset>
antonio@7541
   318
    <fileset dir="${base.modules}">
antonio@7541
   319
      <include name="*/lib/**" />
antonio@7541
   320
    </fileset>
antonio@7541
   321
  </path>
martin@14869
   322
  
antonio@5617
   323
  <macrodef name="updatesystemstatus">
martin@14869
   324
     <attribute name="v" default="NOT SET"/>
martin@14869
   325
     <sequential>
martin@14869
   326
       <sql driver="${bbdd.driver}" url="${bbdd.owner.url}" userid="${bbdd.user}" password="${bbdd.password}" onerror="continue" autocommit="true">
martin@14869
   327
         <classpath> <fileset dir="${base.lib}"> <include name="**/*.jar"> </include> </fileset> </classpath>
martin@14869
   328
         <transaction> UPDATE ad_system_info SET system_status='@{v}' ;
antonio@5618
   329
                       DELETE FROM ad_error_log where system_status=(select system_status from ad_system_info)
antonio@5618
   330
         </transaction>
martin@14869
   331
       </sql>
martin@14869
   332
     </sequential>
antonio@5617
   333
  </macrodef>
martin@14869
   334
  
antonio@16688
   335
  <macrodef name="updatesystemstatuswhennot">
antonio@16688
   336
    <attribute name="v" default="NOT SET"/>
antonio@16688
   337
    <attribute name="previous" default="NOT SET"/>
antonio@16688
   338
     <sequential>
antonio@16688
   339
       <sql driver="${bbdd.driver}" url="${bbdd.owner.url}" userid="${bbdd.user}" password="${bbdd.password}" onerror="continue" autocommit="true">
antonio@16688
   340
         <classpath> <fileset dir="${base.lib}"> <include name="**/*.jar"> </include> </fileset> </classpath>
antonio@16688
   341
         <transaction> UPDATE ad_system_info SET system_status='@{v}' where system_status!='@{previous}' ;
antonio@16688
   342
                       DELETE FROM ad_error_log where system_status=(select system_status from ad_system_info)
antonio@16688
   343
         </transaction>
antonio@16688
   344
       </sql>
antonio@16688
   345
     </sequential>
antonio@16688
   346
  </macrodef>
antonio@16688
   347
  
martin@2871
   348
  <taskdef resource="axis-tasks.properties" classpathref="project.class.path" />
martin@14869
   349
  
asier@4277
   350
  <target name="init" depends="code.rev">
juanpablo@11541
   351
    <fail if="root.user" message="Don't run ant tasks with the root user" />
martin@2871
   352
    <fail if="no.java.home" message="The environment variable JAVA_HOME is not set." />
asier@33930
   353
    <fail message="Unsupported Java version ${ant.java.version}. Minimum required is 7 (1.7).">
asier@33930
   354
      <condition>
asier@33930
   355
        <equals arg1="${ant.java.version}" arg2="1.6"/>
asier@33930
   356
      </condition>
asier@33930
   357
    </fail>
martin@2871
   358
  </target>
stefan@124
   359
martin@2871
   360
  <target name="code.rev" depends="set.code.rev">
juanpablo@3841
   361
    <condition property="code.revision" value="${hg.id}" else="0">
juanpablo@3841
   362
      <isset property="hg.id" />
martin@2871
   363
    </condition>
martin@2871
   364
  </target>
ivan@812
   365
juanpablo@3841
   366
  <target name="set.code.rev" if="is.hg">
juanpablo@3841
   367
    <exec executable="hg" outputproperty="hg.id" failifexecutionfails="false">
martin@14869
   368
      <arg value="id"/>
martin@14869
   369
      <arg value="-i"/>
juanpablo@3841
   370
    </exec>
martin@2871
   371
  </target>
asier@43
   372
miguel@16422
   373
  <target name="compile.complete" depends="init, core.lib, wad.lib, trl.lib">
martin@2871
   374
    <ant dir="${base.src}" target="compile.complete" inheritAll="true" inheritRefs="true" />
martin@2871
   375
  </target>
asier@2853
   376
shankar@20726
   377
  <target name="migrate.attachments" depends="init">
shankar@20765
   378
    <taskdef name="MigrateAttachments" classname="org.openbravo.erpCommon.utility.MigrateAttachments" >
shankar@20726
   379
      <classpath refid="project.class.path" />
shankar@20765
   380
    </taskdef>
shankar@20765
   381
    <MigrateAttachments/>
shankar@20726
   382
  </target>
shankar@20726
   383
asier@3013
   384
  <target name="smartbuild" depends="init">
martin@3038
   385
    <property name="smart.mode" value="true" />
antonio@2996
   386
    <property name="onlyIfModified" value="true" />
martin@3038
   387
    <antcall target="core.lib" />
martin@14869
   388
    
asier@4288
   389
    <condition property="no.local">
asier@4288
   390
      <not>
asier@4288
   391
        <istrue value="${local}" />
asier@4288
   392
      </not>
asier@4288
   393
    </condition>
asier@4288
   394
    <antcall target="update.database.if.no.local" />
martin@14869
   395
    
martin@3038
   396
    <antcall target="wad.lib" />
martin@14869
   397
    
asier@5219
   398
    <taskdef name="CheckSumCondition" classname="org.openbravo.utils.CheckSumCondition">
asier@5219
   399
      <classpath refid="project.class.path" />
asier@5219
   400
    </taskdef>
martin@14869
   401
    
martin@14869
   402
    <CheckSumCondition obDir="${basedir}"
martin@14869
   403
                       type="md5.wad"
martin@14869
   404
                       property="test.md5.wad"/>
martin@3038
   405
martin@3038
   406
    <condition property="new.wad">
martin@14869
   407
        <istrue value="${test.md5.wad}"/>
martin@3038
   408
    </condition>
martin@3038
   409
martin@3038
   410
    <antcall target="trl.lib" />
martin@14869
   411
    
asier@3660
   412
    <antcall inheritall="true" inheritrefs="true" target="generate.entities.quick" />
martin@2917
   413
asier@3013
   414
    <ant dir="${base.src}" target="smartbuild" inheritAll="true" inheritRefs="true" />
martin@3038
   415
antonio@5615
   416
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
antonio@4933
   417
    <antcall target="build.deploy" />
antonio@16688
   418
    <updatesystemstatuswhennot v="RB51" previous="RB12"/>
martin@2917
   419
    <!-- only restart tomcat if the restart prop was set to true -->
martin@2917
   420
    <condition property="dorestart">
martin@2917
   421
      <istrue value="${restart}" />
martin@2917
   422
    </condition>
martin@2917
   423
    <antcall target="if.restart.tomcat" />
martin@2871
   424
  </target>
martin@3038
   425
asier@3008
   426
  <target name="update.database.if.no.local" if="no.local">
asier@3008
   427
    <antcall target="update.database" />
asier@3008
   428
  </target>
antonio@2996
   429
asier@2982
   430
  <target name="build.deploy">
martin@3038
   431
    <antcall target="build.deploy.war" />
martin@3038
   432
    <antcall target="build.deploy.class" />
asier@2982
   433
  </target>
martin@3038
   434
asier@2982
   435
  <target name="build.deploy.class" if="mode.class">
asier@2982
   436
    <ant dir="${base.src}" target="copy.files" inheritAll="true" inheritRefs="true" />
asier@2982
   437
    <mkdir dir="${jakarta.base}/webapps/${context.name}/WEB-INF/lib" />
martin@3038
   438
    <copy todir="${jakarta.base}/webapps/${context.name}/WEB-INF/lib" file="${build.core.lib}/openbravo-core.jar" encoding="UTF-8" />
asier@2982
   439
  </target>
martin@3038
   440
stefan@9978
   441
  <!-- Only needed in special cases. See issue 15709 for details.
stefan@9978
   442
       This task (if deploy.mode=class) does sync jar-files from WebContent -> deployed webapp (& delete orphan jars)
stefan@9978
   443
  -->
stefan@9978
   444
  <target name="copy.files.jarsync" depends="init" if="mode.class">
stefan@9978
   445
    <ant dir="${base.src}" target="copy.files.jarsync.do" inheritAll="true" inheritRefs="true" />
stefan@9978
   446
  </target>
stefan@9978
   447
asier@2982
   448
  <target name="build.deploy.war" if="mode.war">
martin@3038
   449
    <antcall target="war" />
asier@2982
   450
  </target>
martin@2345
   451
martin@2917
   452
  <target name="if.restart.tomcat" if="dorestart">
martin@2917
   453
    <antcall target="tomcat.restart" />
martin@2917
   454
  </target>
martin@2345
   455
miguel@16422
   456
  <target name="compile" depends="init,core.lib, wad.lib, trl.lib">
martin@2871
   457
    <ant dir="${base.src}" target="compile" inheritAll="true" inheritRefs="true" />
martin@2871
   458
  </target>
martin@2345
   459
antonio@6897
   460
  <target name="buildvalidation" depends="init, core.lib">
martin@14869
   461
    <updatesystemstatus v="RB11"/> 
antonio@7925
   462
    <condition property="buildValidation.var">
martin@14869
   463
      <istrue value="${buildValidation}"  />
antonio@7925
   464
    </condition>
antonio@6897
   465
    <ant dir="src-util/buildvalidation" target="buildvalidation" inheritAll="true" inheritRefs="true" />
antonio@6886
   466
  </target>
martin@14869
   467
  
antonio@6886
   468
  <target name="compile.buildvalidation" depends="init, core.lib">
antonio@6886
   469
    <ant dir="src-util/buildvalidation" target="compile" inheritAll="true" inheritRefs="true" />
antonio@6886
   470
  </target>
martin@14869
   471
  
antonio@6886
   472
  <target name="compile.modulescript" depends="init, core.lib">
antonio@6886
   473
    <ant dir="src-util/modulescript" target="compile" inheritAll="true" inheritRefs="true" />
antonio@6886
   474
  </target>
antonio@6886
   475
antonio@7535
   476
  <target name="compile.complete.deploy" depends="compile.complete.development, compile.complete.war">
antonio@7512
   477
asier@5216
   478
    <!-- Calculate wad checksum to enable smartbuild-->
asier@5219
   479
    <taskdef name="CheckSumCondition" classname="org.openbravo.utils.CheckSumCondition">
asier@5219
   480
      <classpath refid="project.class.path" />
asier@5219
   481
    </taskdef>
martin@14869
   482
    
martin@14869
   483
    <CheckSumCondition obDir="${basedir}"
martin@14869
   484
                           type="md5.wad"
martin@14869
   485
                           property="test.md5.wad"/>
martin@2871
   486
  </target>
asier@43
   487
inigo@31982
   488
  <target name="compile.complete.development" depends="init, core.lib, wad.lib, trl.lib" unless="mode.war">
martin@14869
   489
    <updatesystemstatus v="RB43"/>
martin@2871
   490
    <ant dir="${base.src}" target="compile.complete.development" inheritAll="true" inheritRefs="true" />
martin@2871
   491
  </target>
asier@43
   492
martin@2871
   493
  <target name="compile.complete.war" depends="init" if="mode.war">
martin@14869
   494
    <updatesystemstatus v="RB43"/>
martin@2871
   495
    <antcall target="compile.complete" />
martin@2871
   496
    <antcall target="war" />
martin@2871
   497
  </target>
asier@1929
   498
stefan@5405
   499
  <target name="compile.deploy" depends="compile.war, compile.development">
martin@14869
   500
    <updatesystemstatus v="RB51"/>
martin@2871
   501
  </target>
martin@2686
   502
asier@7164
   503
  <target name="compile.development" depends="init" unless="mode.war">
martin@2871
   504
    <ant dir="${base.src}" target="compile.development" inheritAll="true" inheritRefs="true" />
martin@2871
   505
  </target>
martin@2686
   506
martin@2871
   507
  <target name="validate.database">
martin@2871
   508
    <ant dir="${base.src}" target="validate.database" inheritAll="true" inheritRefs="true" />
martin@2871
   509
  </target>
asier@1929
   510
martin@2871
   511
  <target name="validate.modules">
martin@2871
   512
    <ant dir="${base.src}" target="validate.modules" inheritAll="true" inheritRefs="true" />
martin@2871
   513
  </target>
asier@43
   514
martin@2871
   515
  <target name="compile.war" if="mode.war">
asier@7165
   516
    <antcall target="generate.entities" />
martin@2871
   517
    <antcall target="compile" />
martin@2871
   518
    <antcall target="war" />
martin@2871
   519
  </target>
ivan@1738
   520
martin@2871
   521
  <target name="compile.web" depends="init">
martin@2871
   522
    <ant dir="${base.src}" target="compile.web" inheritAll="true" inheritRefs="true" />
martin@2871
   523
  </target>
asier@43
   524
martin@2871
   525
  <target name="compile.web.development" depends="init">
martin@2871
   526
    <ant dir="${base.src}" target="compile.web.development" inheritAll="true" inheritRefs="true" />
martin@2871
   527
  </target>
martin@2245
   528
martin@2871
   529
  <target name="compile.src.gen" depends="init">
martin@2871
   530
    <ant dir="${base.src}" target="compile.src.gen" inheritAll="true" inheritRefs="true" />
martin@2871
   531
  </target>
martin@2830
   532
martin@3794
   533
  <target name="generate.java.doc">
carlos@33755
   534
    <javadoc Windowtitle="${title}" access="protected" Header="${header}" Footer="${footer}" destdir="${build.docs}" maxmemory="1024M" failonerror="yes" additionalparam="${xdoclint.missing}">
stefan@27905
   535
      <sourcepath>
stefan@27905
   536
        <pathelement path="${base.src}" />
stefan@27905
   537
        <pathelement path="${base.src.test}/src" />
stefan@27905
   538
        <pathelement path="${build.AD}" />
stefan@27905
   539
        <pathelement path="${base.src.core}/src" />
stefan@27905
   540
        <pathelement path="${base.src.gen}" />
stefan@27905
   541
        <pathelement path="build/javasqlc/src" />
stefan@27905
   542
        <pathelement path="build/javasqlc/srcAD" />
stefan@27905
   543
        <dirset dir="${base.modules}">
stefan@27905
   544
          <include name="*/src" />
stefan@27905
   545
          <include name="*/src-test" />
stefan@27905
   546
        </dirset>
stefan@27905
   547
      </sourcepath>
martin@14869
   548
      <excludepackage name="org.openbravo.erpWindows.*"/>
martin@3794
   549
      <classpath>
martin@14869
   550
        <path refid="project.class.path"/>
martin@3794
   551
        <pathelement path="lib/build/js.jar" />
stefan@27905
   552
        <fileset dir="${base.modules}">
stefan@27905
   553
          <include name="*/lib/test/*.jar" />
stefan@27905
   554
        </fileset>
martin@3794
   555
      </classpath>
stefan@30848
   556
      <link href="http://docs.oracle.com/javase/7/docs/api/"/>
martin@3794
   557
    </javadoc>
martin@3794
   558
  </target>
martin@3794
   559
martin@2871
   560
  <target name="generate.entities">
martin@2871
   561
    <ant dir="${base.src}" target="generate.entities" inheritAll="true" inheritRefs="true" />
martin@2871
   562
  </target>
asier@43
   563
martin@2871
   564
  <target name="generate.entities.quick">
martin@2871
   565
    <ant dir="${base.src}" target="generate.entities.quick" inheritAll="true" inheritRefs="true" />
martin@2871
   566
  </target>
juanpablo@131
   567
stefan@11851
   568
  <!-- build-internal forking helper -->
stefan@11851
   569
  <target name="generate.entities.quick.forked">
stefan@11851
   570
    <ant dir="${base.src}" target="generate.entities.quick.forked" inheritAll="true" inheritRefs="true" />
stefan@11851
   571
  </target>
stefan@11851
   572
asier@24247
   573
  <target name="compile.test" depends="init">
asier@24247
   574
    <ant dir="${base.src.test}" target="compile.test" inheritAll="true" inheritRefs="true" />
asier@24247
   575
  </target>
asier@24247
   576
  
stefan@5674
   577
  <target name="run.tests" depends="init">
asier@24247
   578
    <ant dir="${base.src.test}" target="run.tests" inheritAll="true" inheritRefs="true" />
martin@3625
   579
  </target>
martin@3625
   580
stefan@5674
   581
  <target name="run.all.tests" depends="init">
asier@24247
   582
    <ant dir="${base.src.test}" target="run.all.tests" inheritAll="true" inheritRefs="true" />
martin@3656
   583
  </target>
martin@3656
   584
priya@6927
   585
  <target name="run.webservice.tests" depends="init">
asier@24247
   586
      <ant dir="${base.src.test}" target="run.webservice.tests" inheritAll="true" inheritRefs="true" />
priya@6927
   587
  </target>
priya@6927
   588
stefan@5674
   589
  <target name="run.quick.tests" depends="init">
asier@24247
   590
    <ant dir="${base.src.test}" target="run.quick.tests" inheritAll="true" inheritRefs="true" />
martin@3625
   591
  </target>
martin@3625
   592
asier@32457
   593
  <target name="run.test" depends="init">
asier@32457
   594
    <ant dir="${base.src.test}" target="run.test" inheritAll="true" inheritRefs="true" />
ivan@3752
   595
  </target>
martin@14869
   596
  
martin@14869
   597
  <target name="run.api.test.model" 
martin@14869
   598
          description="Checks current xml db model and dictionary API for not-allowed changes. Requires stableDBdir parameter">
stefan@9371
   599
    <taskdef name="checkAPI" classname="org.openbravo.ddlutils.task.CheckAPIDistribution">
asier@3808
   600
      <classpath refid="project.class.path" />
asier@3808
   601
    </taskdef>
martin@14869
   602
    <checkAPI driver="${bbdd.driver}" 
martin@14869
   603
                  url="${bbdd.owner.url}" 
martin@14869
   604
                  user="${bbdd.user}" 
martin@14869
   605
                  password="${bbdd.password}" 
martin@14869
   606
                  stableDBdir="${stableDBdir}"
martin@14869
   607
                  testDBdir="${basedir}"
martin@14869
   608
                  verbosity="${bbdd.verbosity}"
antonio@29768
   609
                  modules="${modules}"
martin@14869
   610
    />    
asier@3808
   611
  </target>
antonio@29768
   612
  
martin@2871
   613
  <target name="compile.src" depends="init">
martin@2871
   614
    <ant dir="${base.src}" target="compile.src" inheritAll="true" inheritRefs="true" />
martin@2871
   615
  </target>
juanpablo@131
   616
martin@2871
   617
  <target name="war" depends="init">
martin@2871
   618
    <ant dir="${base.src}" target="build.war" inheritAll="true" inheritRefs="true" />
martin@2871
   619
  </target>
juanpablo@131
   620
martin@2871
   621
  <target name="core.lib" depends="init">
martin@2871
   622
    <ant dir="${base.src.core}" target="build" inheritAll="true" inheritRefs="true" />
asier@2994
   623
    <copy file="${base.src.core}/lib/openbravo-core.jar" todir="${base.lib}/runtime" failonerror="false" />
martin@2871
   624
  </target>
juanpablo@131
   625
martin@2871
   626
  <target name="wad.lib" depends="init">
martin@2871
   627
    <ant dir="${base.src.wad}" target="build" inheritAll="true" inheritRefs="true" />
martin@2871
   628
  </target>
juanpablo@179
   629
martin@2871
   630
  <target name="trl.lib" depends="init">
martin@2871
   631
    <ant dir="${base.src.trl}" target="build" inheritAll="true" inheritRefs="true" />
martin@2871
   632
  </target>
asier@43
   633
martin@2871
   634
  <target name="database.lib" depends="init">
martin@2871
   635
    <ant dir="${base.src.db}" target="jar" inheritAll="true" inheritRefs="true" />
asier@2995
   636
    <copy file="${base.src.db}/build/lib/dbmanager.jar" todir="${base.db}/lib" failonerror="false" />
martin@2871
   637
  </target>
martin@2345
   638
martin@2871
   639
  <target name="clean" depends="init">
martin@2871
   640
    <ant dir="${base.src}" target="clean" inheritAll="true" inheritRefs="true" />
martin@2871
   641
  </target>
martin@2345
   642
martin@2871
   643
  <target name="trl.clean" depends="init">
martin@2871
   644
    <ant dir="${base.src}" target="trl.clean" inheritAll="true" inheritRefs="true" />
martin@2871
   645
  </target>
martin@2345
   646
stefan@11820
   647
  <target name="trl.remove.unused" depends="init">
stefan@11820
   648
    <ant dir="${base.src}" target="trl.remove.unused" inheritAll="true" inheritRefs="true" />
stefan@11820
   649
  </target>
stefan@11820
   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="installWebService" depends="init">
martin@2871
   656
    <ant dir="${base.src}" target="installWebService" inheritAll="true" inheritRefs="true">
martin@2871
   657
      <property name="wsdd" value="1" />
martin@2871
   658
    </ant>
martin@2871
   659
  </target>
martin@2871
   660
martin@2871
   661
  <target name="uninstallWebService" depends="init">
martin@2871
   662
    <ant dir="${base.src}" target="uninstallWebService" inheritAll="true" inheritRefs="true" />
martin@2871
   663
  </target>
martin@2871
   664
miguel@16113
   665
  <target name="install.source" depends="init, cleanSubfolders, create.database, wad.lib, trl.lib, compile.complete.deploy">
martin@14869
   666
    <echo message="applying modules" />    
antonio@7535
   667
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
antonio@5615
   668
augusto@28711
   669
    <antcall inheritall="true" target="import.sample.data" />
martin@14869
   670
    <updatesystemstatus v="RB51"/> 
antonio@5626
   671
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
martin@2871
   672
martin@2871
   673
    <!--
martin@2686
   674
		<antcall target="validate.database" />
martin@2686
   675
		<antcall target="validate.modules" />
martin@2704
   676
		-->
martin@2871
   677
  </target>
juanpablo@131
   678
stefan@5405
   679
  <target name="create.database" depends="init, core.lib, database.lib">
martin@2871
   680
    <ant dir="${base.db}" antfile="build-create.xml" target="create.database" inheritAll="true" inheritRefs="true" />
martin@2871
   681
    <antcall target="db.apply.modules.sampledata" />
martin@2871
   682
  </target>
antonio@1335
   683
antonio@6897
   684
  <target name="update.database" depends="init, core.lib, database.lib, buildvalidation">
martin@14869
   685
    <updatesystemstatus v="RB12"/>
antonio@4870
   686
    <ant dir="${base.db}" target="update.database.java" inheritAll="true" inheritRefs="true" />
martin@4287
   687
    <antcall target="generate.entities.quick" />
antonio@7535
   688
    <antcall target="apply.module" />
martin@2871
   689
  </target>
asier@1929
   690
stefan@5405
   691
  <target name="create.database.script" depends="init, core.lib">
martin@2871
   692
    <ant dir="${base.db}" target="create.database.script" inheritAll="true" inheritRefs="true" />
martin@2871
   693
  </target>
asier@43
   694
stefan@5405
   695
  <target name="update.database.script" depends="init, core.lib">
martin@2871
   696
    <ant dir="${base.db}" target="update.database.script" inheritAll="true" inheritRefs="true" />
martin@2871
   697
  </target>
adrian@97
   698
antonio@5420
   699
  <target name="export.database" depends="init, core.lib, database.lib, generate.entities.quick">
martin@2871
   700
    <ant dir="${base.db}" target="export.database.structure" inheritAll="true" inheritRefs="true" />
martin@2871
   701
  </target>
adrian@164
   702
stefan@5405
   703
  <target name="export.config.script" depends="init, core.lib">
martin@2871
   704
    <ant dir="${base.db}" target="export.config.script" inheritAll="true" inheritRefs="true" />
martin@2871
   705
  </target>
asier@1929
   706
stefan@20707
   707
  <target name="export.sample.data" depends="init, core.lib">
stefan@20707
   708
    <ant dir="${base.db}" target="export.sample.data" inheritAll="true" inheritRefs="true" />
stefan@20707
   709
  </target>
stefan@20707
   710
stefan@20707
   711
  <target name="import.sample.data" depends="init, core.lib">
stefan@20707
   712
    <ant dir="${base.db}" target="import.sample.data" inheritAll="true" inheritRefs="true" />
stefan@20707
   713
  </target>
stefan@20707
   714
antonio@6108
   715
  <target name="db.apply.modules" if="apply.modules.on.update">
antonio@6074
   716
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
antonio@6074
   717
  </target>
antonio@6074
   718
martin@2871
   719
  <target name="db.apply.modules.sampledata" if="apply.modules.on.create">
antonio@5077
   720
    <antcall target="generate.entities" />
martin@4287
   721
    <antcall inheritall="true" inheritrefs="true" target="apply.module" />
martin@2871
   722
    <antcall target="import.sample.data" />
martin@2871
   723
  </target>
martin@2345
   724
martin@4287
   725
antonio@8501
   726
  <target name="apply.modules">
martin@4287
   727
asier@3995
   728
    <condition property="apply.modules.complete.compilation.var">
martin@14869
   729
      <istrue value="${apply.modules.complete.compilation}"  />
asier@3995
   730
    </condition>
martin@14869
   731
    
asier@3995
   732
    <condition property="apply.modules.simple.compilation.var">
asier@3995
   733
      <isfalse value="${apply.modules.complete.compilation.var}" />
asier@3995
   734
    </condition>
antonio@7516
   735
martin@14869
   736
    <updatesystemstatus v="RB43"/>
martin@14869
   737
    <antcall target="apply.modules.compile"/>
antonio@7516
   738
antonio@5611
   739
    <ant dir="${base.db}" target="setApplied" inheritAll="true" inheritRefs="true" />
antonio@7516
   740
asier@3995
   741
  </target>
martin@14869
   742
  
martin@4287
   743
  <target name="apply.module.forked">
martin@4287
   744
    <!-- 
martin@4287
   745
    Note: set reinitializeModel to false because otherwise the dal is re-initialized with classes and a model
martin@4287
   746
    which are not in sync (see issue: https://issues.openbravo.com/view.php?id=9376)
martin@4287
   747
    Note: applyModule can also be moved to a java task to fork it (to prevent this from occuring)
martin@4287
   748
    but then no output is visible for the user.
martin@4287
   749
    -->
martin@4287
   750
    <taskdef name="applyModule" classname="org.openbravo.erpCommon.modules.ApplyModuleTask">
martin@4287
   751
      <classpath refid="project.class.path" />
martin@4287
   752
    </taskdef>
antonio@15503
   753
    <applyModule userId="0" adminMode="true" forceRefData="${forceRefData}" propertiesFile="${base.config}/Openbravo.properties"/>
martin@4287
   754
  </target>
martin@14869
   755
  
antonio@7535
   756
  <target name="compile.apply.module" depends="init">
martin@14869
   757
    <updatesystemstatus v="RB31"/>
antonio@7535
   758
    <ant dir="${base.src}" target="compile.apply.module" inheritAll="true" inheritRefs="true" />
antonio@7535
   759
  </target>
martin@14869
   760
  
antonio@7541
   761
  <!--
antonio@7541
   762
  This task uses a special classpath.
antonio@7541
   763
  This classpath is equivalent to the normal project.class.path, except for the fact that that the normal build folder
antonio@7541
   764
  is replaced by the apply.module.build folder, in which the ApplyModule task related classes will be compiled.
antonio@7541
   765
  This is done to workaround the fact that the javac task needs to compile all the related classes when upgrading openbravo
antonio@7541
   766
  and if the normal build folder is included, none of them are recompiled by default unless the whole build directory is specified.
antonio@7541
   767
  -->
antonio@7535
   768
  <target name="apply.module" depends="compile.apply.module">
antonio@6492
   769
    <java classname="org.openbravo.erpCommon.modules.ApplyModuleTask" fork="true" maxmemory="${build.maxmemory}" failonerror="true">
antonio@15503
   770
      <arg line="'${base.src}' '${friendlyWarnings}' '${forceRefData}'" />
antonio@7543
   771
      <classpath refid="apply.module.runtime.classpath" />
martin@4287
   772
    </java>
martin@14869
   773
   <delete includeEmptyDirs="true"  dir="${build.apply.module}" />
martin@4287
   774
  </target>
martin@14869
   775
  
asier@6221
   776
  <target name="apply.modules.compile" depends="wad.lib">
martin@14869
   777
    <antcall target="apply.modules.compile.simple"/>
martin@14869
   778
    <antcall target="apply.modules.compile.complete"/>
asier@3995
   779
  </target>
martin@14869
   780
  
asier@3995
   781
  <target name="apply.modules.compile.simple" if="apply.modules.simple.compilation.var">
martin@2871
   782
    <antcall target="compile.deploy" />
asier@3995
   783
  </target>
martin@14869
   784
  
asier@3995
   785
  <target name="apply.modules.compile.complete" if="apply.modules.complete.compilation.var">
martin@14869
   786
     <antcall target="compile.complete.deploy" />
martin@2871
   787
  </target>
martin@14869
   788
  
martin@2871
   789
  <!-- 
martin@2345
   790
		apparently this does not overwrite the default catalina_opts, only
martin@2345
   791
		if it is not set will it be set to the value below 
martin@2345
   792
	-->
martin@2871
   793
  <property name="env.CATALINA_OPTS" value="-XX:MaxPermSize=128M" />
martin@2345
   794
martin@2871
   795
  <!-- 
martin@2345
   796
		This task is called from the Openbravo ui, it spawns a java call which again
martin@2345
   797
		calls the restart.tomcat.do task as a spawned task.
martin@2345
   798
	-->
martin@2871
   799
  <target name="tomcat.restart" description="Restart the tomcat server process">
martin@2917
   800
    <echo message="Restarting tomcat..." />
martin@2871
   801
    <java classname="org.openbravo.service.system.RestartTomcat" spawn="true" fork="true" maxmemory="${build.maxmemory}">
martin@2871
   802
      <arg line="${base.src}" />
martin@2871
   803
      <classpath refid="project.class.path" />
martin@2871
   804
    </java>
martin@2871
   805
  </target>
martin@2345
   806
martin@2871
   807
  <!--
martin@2345
   808
		Is called by the org.openbravo.service.system.RestartTomcat class.
martin@2345
   809
	-->
martin@2871
   810
  <target name="tomcat.restart.do" description="Restart the tomcat server process">
martin@2871
   811
    <echo message="Restarting Tomcat at ${env.CATALINA_HOME}" />
martin@2871
   812
    <java classname="org.apache.catalina.startup.Bootstrap" fork="true">
asier@25200
   813
      <classpath path=":${env.CATALINA_HOME}/bin/bootstrap.jar:${env.CATALINA_HOME}/bin/commons-logging-api.jar:${env.CATALINA_HOME}/bin/tomcat-juli.jar" />
martin@2871
   814
      <jvmarg value="-Dcatalina.home=${env.CATALINA_HOME}" />
martin@2871
   815
      <jvmarg value="-Dcatalina.base=${env.CATALINA_BASE}" />
martin@2871
   816
      <arg line="stop" />
martin@2871
   817
    </java>
martin@2871
   818
    <sleep description="Wait to give tomcat time to stop" seconds="20" />
stefan@9978
   819
stefan@9978
   820
    <!-- if deploy.mode=class this will sync (& delete orphan) jarfiles from WebContent -> tomcat-->
martin@14869
   821
    <antcall target="copy.files.jarsync"/>
stefan@9978
   822
stefan@9978
   823
    <java classname="org.apache.catalina.startup.Bootstrap" fork="true" spawn="true">
asier@25200
   824
      <classpath path=":${env.CATALINA_HOME}/bin/bootstrap.jar:${env.CATALINA_HOME}/bin/commons-logging-api.jar:${env.CATALINA_HOME}/bin/tomcat-juli.jar" />
martin@2871
   825
      <!-- note because CATALINA_OPTS can be multi argument the line attribute has to be used! -->
martin@2871
   826
      <jvmarg line="${env.CATALINA_OPTS}" />
martin@2871
   827
      <jvmarg value="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" />
martin@2871
   828
      <jvmarg value="-Djava.util.logging.config.file=${env.CATALINA_BASE}/conf/logging.properties" />
martin@2871
   829
      <jvmarg value="-Dcatalina.base=${env.CATALINA_BASE}" />
martin@2871
   830
      <jvmarg value="-Dcatalina.home=${env.CATALINA_HOME}" />
martin@2871
   831
      <jvmarg value="-Djava.io.tmpdir=${env.CATALINA_BASE}/temp" />
martin@2871
   832
      <arg line="start" />
martin@2871
   833
    </java>
martin@2871
   834
  </target>
martin@2345
   835
martin@2871
   836
  <!-- 
martin@2345
   837
		This task is called from the Openbravo ui, it spawns a java call which again
martin@2345
   838
		calls the tomcat.reload.do task as a spawned task.
martin@2345
   839
	-->
martin@2871
   840
  <target name="tomcat.reload" description="Reload the Openbravo context">
martin@2917
   841
    <echo message="Reloading webapp..." />
martin@2871
   842
    <java classname="org.openbravo.service.system.ReloadContext" jvm="${env.JAVA_HOME}/bin/java" maxmemory="${build.maxmemory}" spawn="true" fork="true">
martin@2871
   843
      <arg line="${base.src}" />
martin@2871
   844
      <classpath refid="project.class.path" />
martin@2871
   845
    </java>
martin@2871
   846
  </target>
martin@2345
   847
martin@2871
   848
  <target name="tomcat.reload.do">
martin@2871
   849
    <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
martin@2871
   850
      <classpath refid="project.class.path" />
martin@2871
   851
    </taskdef>
martin@2871
   852
    <reload url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${context.name}" />
martin@2871
   853
  </target>
adrian@171
   854
martin@2871
   855
  <target name="tomcat.list">
martin@2871
   856
    <taskdef name="list" classname="org.apache.catalina.ant.ListTask">
martin@2871
   857
      <classpath refid="project.class.path" />
martin@2871
   858
    </taskdef>
martin@2871
   859
    <list url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" />
martin@2871
   860
  </target>
martin@2345
   861
martin@2871
   862
  <target name="deploy.context">
martin@2871
   863
    <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask">
martin@2871
   864
      <classpath refid="project.class.path" />
martin@2871
   865
    </taskdef>
martin@2871
   866
    <taskdef name="deploy.tomcat" classname="org.apache.catalina.ant.DeployTask">
martin@2871
   867
      <classpath refid="project.class.path" />
martin@2871
   868
    </taskdef>
martin@2871
   869
    <taskdef name="start" classname="org.apache.catalina.ant.StartTask">
martin@2871
   870
      <classpath refid="project.class.path" />
martin@2871
   871
    </taskdef>
martin@2345
   872
martin@2871
   873
    <undeploy url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${context.name}" failonerror="false" />
martin@2871
   874
    <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
   875
    <start url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${context.name}" />
martin@2871
   876
  </target>
martin@2345
   877
martin@2871
   878
  <target name="generate-wsdd">
martin@2871
   879
    <ant dir="${base.src}" target="generate-wsdd" inheritAll="true" inheritRefs="true" />
martin@2871
   880
  </target>
martin@2345
   881
martin@2871
   882
  <target name="obx.export.database" if="obx.exp.DB">
martin@2871
   883
    <antcall target="export.database" />
martin@2871
   884
  </target>
martin@2345
   885
martin@2871
   886
  <target name="obx.export.config.script" if="obx.exp.CS">
martin@2871
   887
    <antcall target="export.config.script" />
martin@2871
   888
  </target>
martin@2345
   889
asier@19231
   890
  <target name="obx.export.validateModules" if="obx.exp.validate">
asier@19231
   891
    <taskdef name="validateModules" classname="org.openbravo.service.system.SystemValidationTask">
martin@2871
   892
      <classpath refid="project.class.path" />
martin@2871
   893
    </taskdef>
martin@2345
   894
asier@5560
   895
    <taskdef name="WADValidation" classname="org.openbravo.wad.validation.WADValidatorTask">
asier@5533
   896
      <classpath refid="project.class.path" />
asier@5533
   897
    </taskdef>
asier@19231
   898
asier@5533
   899
    <echo message="Validating Module..." />
asier@19231
   900
martin@14869
   901
    <WADValidation propertiesFile="${base.config}/Openbravo.properties"
martin@14869
   902
                   modules="${module}"
martin@14869
   903
                   stoponerror="true"/>
martin@3038
   904
asier@11044
   905
    <validateModules moduleJavaPackage="${module}" failOnError="true" userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties" type="module" />
asier@19231
   906
  </target>
asier@19231
   907
  
asier@19231
   908
  <target name="package.module">
asier@19231
   909
    <taskdef name="extractModule" classname="org.openbravo.erpCommon.modules.ExtractModuleTask">
asier@19231
   910
      <classpath refid="project.class.path" />
asier@19231
   911
    </taskdef>
asier@19231
   912
    
asier@19231
   913
    <antcall target="obx.export.validateModules" />
martin@2871
   914
    <antcall target="obx.export.database" />
martin@2871
   915
    <antcall target="obx.export.config.script" />
juanpablo@2691
   916
asier@19231
   917
    <extractModule moduleName="${module}" 
asier@19231
   918
                   userId="0" 
asier@19231
   919
                   adminMode="true" 
asier@19231
   920
                   propertiesFile="${base.config}/Openbravo.properties" 
asier@19231
   921
                   exportRD="${obx.export.RD}" 
asier@19231
   922
                   addAllDependencies="${obx.export.allDeps}"/>
martin@2871
   923
  </target>
juanpablo@2691
   924
martin@2871
   925
  <target name="diagnostic">
antonio@6886
   926
    <ant dir="src-util/diagnostic" antfile="build-create.xml" target="build" />
antonio@6886
   927
    <ant dir="src-util/diagnostic" target="check.all" />
martin@2871
   928
  </target>
inigo@25249
   929
  
inigo@25249
   930
  <target name="setup.compile">
inigo@25519
   931
	<mkdir dir="build/classes" />
inigo@25525
   932
    <javac srcdir="src/org/openbravo/configuration" destdir="build/classes" fork="true" deprecation="off" encoding="UTF-8" debug="true" debuglevel="lines,vars,source" includeantruntime="false">
inigo@25519
   933
      <classpath refid="project.class.path"/>  
inigo@25519
   934
    </javac>
martin@2871
   935
  </target>
juanpablo@2706
   936
inigo@25525
   937
  <target name="setup" depends="init, setup.compile">
inigo@25519
   938
    <echo message="Launching configuration application..."/>
inigo@25519
   939
    <taskdef name="configurationApp" classname="org.openbravo.configuration.ConfigurationApp">
inigo@25519
   940
      <classpath refid="project.class.path" />
inigo@25519
   941
    </taskdef>
inigo@25519
   942
    <configurationApp/>
inigo@25249
   943
    </target>
inigo@25249
   944
  
asier@4280
   945
  <target name="package.core" depends="init, set.version.number">
martin@14869
   946
	<property name="tmpdir" value="${java.io.tmpdir}/ob.core${core.rev}" />
martin@14869
   947
   
martin@14869
   948
  	<exec executable="hg" >
martin@14869
   949
  		<arg value="archive"/>
martin@14869
   950
  		<arg value="${tmpdir}"/>
martin@14869
   951
  	</exec>
martin@14869
   952
  	
martin@14869
   953
  	<replaceregexp file="${tmpdir}/src-db/database/sourcedata/AD_MODULE.xml"
martin@14869
   954
                   match="(VERSION.*\[CDATA\[).*\..*\.(.*)(\]\])"
martin@14869
   955
                   replace="\1${core.rev}\3"
martin@14869
   956
                   byline="true"/>
martin@14869
   957
    
martin@14869
   958
    <echo message="${hg.id}" file="${tmpdir}/config/instance.revision"/>
martin@14869
   959
	
martin@14869
   960
    <delete includeEmptyDirs="true">
martin@14869
   961
      <fileset dir="${tmpdir}/modules" includes="**/*" defaultexcludes="no"/>
martin@14869
   962
    </delete>
martin@14869
   963
    
martin@14869
   964
    <zip destfile="${basedir}/core-${core.rev}.obx" basedir="${tmpdir}"/>
martin@14869
   965
    
martin@14869
   966
    <delete dir="${tmpdir}"/>
martin@14868
   967
martin@14869
   968
   </target>
martin@14869
   969
 
martin@14869
   970
  <target name="set.version.number" depends="set.version.from.file, set.version.calculated"/>
martin@14869
   971
  
asier@4279
   972
  <target name="set.version.calculated" if="calculate.core.rev">
martin@14869
   973
    <echo message="calculating core revision..."/>
asier@4279
   974
    <exec executable="hg" outputproperty="hg.idno" failifexecutionfails="false">
martin@14869
   975
      <arg value="id"/>
martin@14869
   976
      <arg value="-n"/>
asier@4279
   977
    </exec>
guillermo@15690
   978
        <propertyfile file="currentRevision.tmp">
guillermo@15690
   979
          <entry key="core.rev" value="3.0.${hg.idno}"/>
guillermo@15690
   980
        </propertyfile>
guillermo@15690
   981
        <replaceregexp file="currentRevision.tmp"
guillermo@15690
   982
                       match="\+"
guillermo@15690
   983
                       replace=""
guillermo@15690
   984
                       byline="true"
guillermo@15690
   985
        />
guillermo@15690
   986
        <loadproperties> 
guillermo@15690
   987
          <file file="currentRevision.tmp"/> 
guillermo@15690
   988
        </loadproperties>
guillermo@15690
   989
        <delete file="currentRevision.tmp"/>
asier@4279
   990
  </target>
martin@14869
   991
  
asier@4279
   992
  <target name="set.version.from.file" if="xml.core.rev">
martin@14869
   993
    <echo message="reading core revision from xml file..."/>
asier@4279
   994
    <loadfile property="core.rev" srcfile="${basedir}/src-db/database/sourcedata/AD_MODULE.xml">
asier@4279
   995
      <filterchain>
asier@4279
   996
        <linecontains>
martin@14869
   997
          <contains value="VERSION>"/>
asier@4279
   998
        </linecontains>
asier@4279
   999
        <tokenfilter>
martin@14869
  1000
            <replaceregex pattern="(.*VERSION.*\[CDATA\[)(.*\..*\..*)(\]\].*)" replace="\2"/>
asier@4279
  1001
        </tokenfilter>
martin@14869
  1002
        <striplinebreaks/>
asier@4279
  1003
      </filterchain>
asier@4279
  1004
    </loadfile>
asier@4279
  1005
  </target>
martin@14869
  1006
  
asier@5536
  1007
  <target name="validate.wad">
asier@5536
  1008
    <ant dir="${base.src}" target="wadvalidation" inheritAll="true" inheritRefs="true" />
asier@5536
  1009
  </target>
martin@14869
  1010
  
antonio@7476
  1011
  <target name="UIrebuild" depends="core.lib">
antonio@7476
  1012
    <java classname="org.openbravo.base.BuildTask" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}">
antonio@7476
  1013
      <arg line="'${base.config}/Openbravo.properties' ${logFileName}" />
antonio@7476
  1014
      <classpath>
antonio@7476
  1015
        <pathelement path="${build.core.lib}/openbravo-core.jar" />
stefan@11940
  1016
        <pathelement path="${base.lib}/runtime/log4j-1.2.16.jar" />
stefan@11940
  1017
        <pathelement path="${base.lib}/runtime/commons-pool-1.5.6.jar" />
stefan@11940
  1018
        <pathelement path="${base.lib}/runtime/commons-dbcp-1.4.jar" />
carlos@28271
  1019
        <pathelement path="${base.lib}/runtime/postgresql-9.4.1207.jre6.jar" />
antonio@7476
  1020
        <pathelement path="${base.lib}/runtime/ojdbc6.jar" />
stefan@11940
  1021
        <pathelement path="${base.lib}/runtime/commons-collectionsi-3.2.1.jar" />
augusto@24383
  1022
        <pathelement path="${base.lib}/runtime/ant-1.9.2.jar" />
augusto@24383
  1023
        <pathelement path="${base.lib}/runtime/ant-launcher-1.9.2.jar" />
augusto@24383
  1024
        <pathelement path="${base.lib}/runtime/ant-apache-log4j-1.9.2.jar" />
antonio@7476
  1025
        <pathelement path="${base.lib}/runtime/ant-nodeps.jar" />
antonio@7476
  1026
      </classpath>
antonio@7476
  1027
    </java>
antonio@7476
  1028
  </target>
martin@14869
  1029
  
asier@8876
  1030
  <target name="check.module.consistency">
asier@8876
  1031
    <taskdef name="checkConsistency" classname="org.openbravo.erpCommon.modules.CheckLocalConsistency">
asier@8876
  1032
      <classpath refid="project.class.path" />
asier@8876
  1033
    </taskdef>
martin@14869
  1034
    <checkConsistency userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties"/>
asier@8876
  1035
  </target>
martin@14869
  1036
  
miguel@16113
  1037
  <target name="cleanSubfolders" depends="init">
miguel@16113
  1038
      <ant dir="${base.src.core}" target="clean" inheritAll="true" inheritRefs="true" />
miguel@16113
  1039
      <ant dir="${base.src.trl}" target="clean" inheritAll="true" inheritRefs="true" />
miguel@16113
  1040
      <ant dir="${base.src.wad}" target="clean" inheritAll="true" inheritRefs="true" />
asier@16641
  1041
  </target>
asier@16641
  1042
  
asier@16641
  1043
  <target name="activate.instance" depends="init"
asier@16641
  1044
          description="Activates the instance with the provided public key">
asier@16641
  1045
   <taskdef name="activateInstace" classname="org.openbravo.erpCommon.obps.ActivationTask">
asier@16641
  1046
     <classpath refid="project.class.path" />
asier@16641
  1047
   </taskdef>
asier@16641
  1048
   <property name="purpose" value="" />
asier@16641
  1049
   <property name="publicKey" value="" />
asier@16641
  1050
   <property name="publicKeyFile" value="" />
asier@16641
  1051
    
asier@16641
  1052
   <activateInstace purpose="${purpose}"
asier@16641
  1053
                    publicKey="${publicKey}"
asier@16641
  1054
                    publicKeyFile="${publicKeyFile}"
asier@16641
  1055
                    userId="0" 
asier@16641
  1056
                    adminMode="true" 
asier@16641
  1057
                    propertiesFile="${base.config}/Openbravo.properties"/>
asier@16641
  1058
  </target>
miguel@16113
  1059
  
asier@25752
  1060
  <target name="host.name"
asier@25752
  1061
          description="Prints this machine's name. This name can be used to overwrite common Openbravo.properties by machine.name.Openbravo properties file">
asier@25753
  1062
    <mkdir dir="build/classes"/>
asier@25752
  1063
    <javac srcdir="src/org/openbravo/base/session" includes="HostNameTask.java" destdir="build/classes" fork="true" deprecation="off" encoding="UTF-8" debug="true" debuglevel="lines,vars,source" includeantruntime="false">
asier@25752
  1064
      <classpath refid="project.class.path"/>
asier@25752
  1065
    </javac>
asier@25752
  1066
    <taskdef name="hostName" classname="org.openbravo.base.session.HostNameTask">
asier@25752
  1067
      <classpath refid="project.class.path"/>
asier@25752
  1068
    </taskdef>
asier@25752
  1069
    <hostName/>
asier@25752
  1070
  </target>
asier@43
  1071
</project>