build.xml
author Stefan Hühner <stefan.huehner@openbravo.com>
Sun, 09 Jul 2017 14:27:29 +0200
changeset 32769 392bba693482
parent 32767 8a37ee35c54f
child 32772 03ee9b0ac0fe
permissions -rw-r--r--
[build-cleanup] Remove extra copy.core.lib target (inlined into core.lib)

The main build.xml target core.lib after calling out to src-core/build.xml
does an antcall to another separate copy.core.lib target in the same main
build.xml file. That extra target is never used anywhere else.

Inline it into the main core.lib target to simplify the build file.

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