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