build.xml
author Stefan Hühner <stefan.huehner@openbravo.com>
Wed, 15 Aug 2018 14:21:28 +0200
changeset 34510 bb6ad56d12fe
parent 34307 f2ea92b11b54
child 34825 a55bab8b0e2f
child 34968 9982442e7119
permissions -rw-r--r--
Fixed 39139. Fix links to oracle html in generated javadoc.

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