src/build.xml
author Asier Lostalé <asier.lostale@openbravo.com>
Mon, 17 Jun 2019 13:19:13 +0200
changeset 36391 9df5739468b6
parent 36363 d7cab79ced40
permissions -rw-r--r--
[axis] remvoed task to publish axis services
carlos@0
     1
<?xml version="1.0" encoding="UTF-8" ?>
carlos@0
     2
<!--
carlos@0
     3
 *************************************************************************
carlos@0
     4
 * The contents of this file are subject to the Openbravo Public License 
carlos@0
     5
 * Version 1.1 (the "License"), being the Mozilla Public License 
carlos@0
     6
 * version 1.1  with a permitted attribution clause ; you may not use 
carlos@0
     7
 * this file except in compliance with the License. 
carlos@0
     8
 * You may obtain a copy of the License at  
carlos@0
     9
 * http://www.openbravo.com/legal/license.txt 
carlos@0
    10
 * Software distributed under the License is distributed on an 
carlos@0
    11
 * "AS IS" basis, WITHOUT WARRANTY OF  ANY KIND, either express or 
carlos@0
    12
 * implied. See the License for the specific language governing rights 
carlos@0
    13
 * and  limitations under the License. 
carlos@0
    14
 * The Original Code is Openbravo ERP. 
ggi@6702
    15
 * The Initial Developer of the Original Code is Openbravo SLU 
carlos@35345
    16
 * All portions are Copyright (C) 2005-2019 Openbravo SLU 
carlos@0
    17
 * All Rights Reserved. 
ggi@6702
    18
 * Contributor(s): Openbravo S.L.U.
carlos@0
    19
 ************************************************************************
carlos@0
    20
-->
juanpablo@213
    21
juanpablo@213
    22
<!--
ivan@1738
    23
List of methods infside:
juanpablo@213
    24
juanpablo@213
    25
init: creates all the folders.
juanpablo@213
    26
trl.clean: clean the AD_TEXTINTERFACES table
juanpablo@213
    27
clean: delete all folders.
juanpablo@213
    28
sqlc: generates the java from the xsql files.
juanpablo@213
    29
compileSqlc: compiles all the java generated from the xsqls.
juanpablo@213
    30
wad: generates all the files from the mda.
juanpablo@213
    31
postwad: copies the generated files to the base design folder.
juanpablo@213
    32
postsrc: copies the src files to the base design folder and the 
juanpablo@213
    33
         xml and jasper files to the translated designs folders
asier@1929
    34
postsrc.modules: it does the same as postsrc but for module files
juanpablo@213
    35
build.local.context: copies all files to the eclipse base context 
juanpablo@213
    36
                     (WebContent...).
juanpablo@213
    37
compile.src: comiles only the src files.
juanpablo@213
    38
compile: compiles specified WAD window and src and also translates.
juanpablo@213
    39
compile.complete: compiles all WAD windows and src and also translates.
juanpablo@213
    40
translate: Translate the modified files.
juanpablo@213
    41
copy.files: copy the local files to the context.
juanpablo@213
    42
compile.development: like compile, but also copies the files to the context.
juanpablo@213
    43
compile.complete.development: like compile.complete, but also copies the files 
juanpablo@213
    44
                              to the context.
asier@1929
    45
compile.web: re-builds the web folder.
asier@1929
    46
compile.web.development: like compile.web, but also copies the files to the context.
juanpablo@213
    47
build.war: build a war file in the lib directory.
juanpablo@213
    48
-->
juanpablo@213
    49
carlos@0
    50
<project name="openbravo sources" default="compile" basedir=".">
stefan@2143
    51
martin@2868
    52
  <taskdef name="yuicompress" classname="com.yahoo.platform.yui.compressor.YUICompressTask">
ivan@6262
    53
    <classpath>
ivan@6262
    54
      <pathelement location="${base.lib}/build/yuicompressor-2.4.2.jar" />
ivan@6262
    55
      <pathelement location="${base.lib}/build/ob-rhino-1.6R7.jar" />
ivan@6262
    56
      <pathelement location="${base.lib}/build/YUIAnt.jar" />
ivan@6262
    57
    </classpath>
martin@2868
    58
  </taskdef>
stefan@2143
    59
martin@2868
    60
  <condition property="minimizeJSandCSSbool">
martin@2868
    61
    <istrue value="${minimizeJSandCSS}" />
martin@2868
    62
  </condition>
stefan@2143
    63
martin@2868
    64
  <property name="webTab" value="all" />
martin@2868
    65
  <property name="tab" value="%" />
asier@1929
    66
martin@2868
    67
  <property name="base.translate.structure" value="org/openbravo/erpWindows" />
martin@2868
    68
  <property name="src" value="." />
martin@2868
    69
  <property name="tr" value="yes" />
asier@30503
    70
asier@30503
    71
  <condition property="exclude.cdi">
asier@30503
    72
    <equals arg1="wildfly" arg2="${application.server}" />
asier@30503
    73
  </condition>
asier@30503
    74
martin@2868
    75
  <condition property="translation">
martin@2868
    76
    <not>
martin@2868
    77
      <equals arg1="no" arg2="${tr}" />
martin@2868
    78
    </not>
martin@2868
    79
  </condition>
martin@2868
    80
  <target name="init">
martin@2868
    81
    <mkdir dir="${build}" />
martin@2868
    82
    <mkdir dir="${base.design}/design" />
martin@2868
    83
    <mkdir dir="${build.sqlc}/src" />
martin@2868
    84
    <mkdir dir="${build.sqlc}/srcAD" />
martin@2868
    85
    <mkdir dir="${build.AD}/org/openbravo/erpWindows" />
martin@2868
    86
    <mkdir dir="${build.AD}/org/openbravo/erpCommon/ad_actionButton" />
martin@2868
    87
    <mkdir dir="${build.AD}/org/openbravo/erpCommon/ad_callouts" />
martin@2868
    88
    <mkdir dir="${build.AD}/org/openbravo/erpCommon/reference" />
martin@2868
    89
  </target>
antonio@5620
    90
  <macrodef name="updatesystemstatus">
antonio@5620
    91
     <attribute name="v" default="NOT SET"/>
antonio@5620
    92
     <sequential>
antonio@5620
    93
       <sql driver="${bbdd.driver}" url="${bbdd.owner.url}" userid="${bbdd.user}" password="${bbdd.password}" onerror="continue" autocommit="true">
antonio@5621
    94
         <classpath> <fileset dir="${base.lib}"> <include name="**/*.jar"> </include> </fileset> </classpath>
antonio@5621
    95
         <transaction> UPDATE ad_system_info SET system_status='@{v}' ;
antonio@5621
    96
                       DELETE FROM ad_error_log where system_status=(select system_status from ad_system_info)
antonio@5621
    97
         </transaction>
antonio@5620
    98
       </sql>
antonio@5620
    99
     </sequential>
antonio@5620
   100
  </macrodef>
carlos@0
   101
martin@2868
   102
  <target name="validate.database">
martin@2868
   103
    <taskdef name="validateDatabase" classname="org.openbravo.service.system.SystemValidationTask">
martin@2868
   104
      <classpath refid="project.class.path" />
martin@2868
   105
    </taskdef>
martin@5458
   106
    <validateDatabase userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties" type="database" />
martin@2868
   107
  </target>
carlos@0
   108
martin@2868
   109
  <target name="validate.modules">
martin@2868
   110
    <taskdef name="validateModules" classname="org.openbravo.service.system.SystemValidationTask">
martin@2868
   111
      <classpath refid="project.class.path" />
martin@2868
   112
    </taskdef>
asier@5709
   113
    <validateModules userId="0" adminMode="true" propertiesFile="${base.config}/Openbravo.properties" type="module" moduleJavaPackage="${module}"/>
martin@2868
   114
  </target>
antonio@18802
   115
martin@2868
   116
  <target name="trl.clean" if="translation">
martin@2868
   117
    <java classname="org.openbravo.translate.Translate" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}">
asier@32644
   118
      <arg line="'${base.config}/Openbravo.properties' clean" />
martin@2868
   119
      <classpath refid="project.class.path" />
antonio@7592
   120
      <syspropertyset>
antonio@7592
   121
         <propertyref name="java.security.egd" />
antonio@7592
   122
      </syspropertyset>
martin@2868
   123
    </java>
martin@2868
   124
  </target>
asier@5937
   125
  
asier@5937
   126
  <target name="trl.remove.unused" if="translation">
asier@5937
   127
    <java classname="org.openbravo.translate.Translate" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}">
asier@32644
   128
      <arg line="'${base.config}/Openbravo.properties' remove" />
asier@5937
   129
      <classpath refid="project.class.path" />
antonio@7592
   130
      <syspropertyset>
antonio@7592
   131
         <propertyref name="java.security.egd" />
antonio@7592
   132
      </syspropertyset>
asier@5937
   133
    </java>
asier@5937
   134
  </target>
martin@2346
   135
martin@2868
   136
  <target name="clean" depends="trl.clean">
martin@2868
   137
    <property name="complete" value="true" />
martin@2868
   138
    <delete includeEmptyDirs="true" failonerror="false">
martin@2868
   139
      <fileset dir="${base.design}" />
martin@2868
   140
      <fileset dir="${build}" />
martin@2868
   141
      <fileset dir="${build.docs}" />
martin@2868
   142
      <fileset dir="${build.AD}" />
martin@2868
   143
      <fileset dir="${build.sqlc}" />
martin@2868
   144
      <fileset dir="${base.context}">
martin@2868
   145
        <exclude name=".svn" />
martin@2868
   146
        <exclude name="META-INF/MANIFEST.MF" />
juanpablo@3236
   147
        <exclude name="**/.keep" />
martin@2868
   148
      </fileset>
martin@2868
   149
    </delete>
martin@2868
   150
  </target>
carlos@0
   151
antonio@7539
   152
  <target name="compile.apply.module" depends="init">
antonio@7545
   153
    <mkdir dir="${build.apply.module}" />
antonio@7539
   154
    <java classname="org.openbravo.data.Sqlc" fork="yes" jvm="${env.JAVA_HOME}/bin/java" maxmemory="${build.maxmemory}" failonerror="true">
antonio@7539
   155
      <arg line="'${base.config}'/Openbravo.properties .xsql . '${build.sqlc}'/src" />
stefan@15451
   156
      <jvmarg value="-Dsqlc.listOfFiles=ApplyModule_data.xsql,PInstanceProcess_data.xsql,Translation_data.xsql,MessageBD_data.xsql"/>
antonio@7539
   157
      <classpath refid="project.class.path" />
antonio@7592
   158
      <syspropertyset>
antonio@7592
   159
         <propertyref name="java.security.egd" />
antonio@7592
   160
      </syspropertyset>
antonio@7539
   161
    </java>
stefan@11995
   162
    <javac includes="org/openbravo/erpCommon/modules/ApplyModuleTask.java" destdir="${build.apply.module}" encoding="UTF-8" fork="true" memorymaximumsize="${build.maxmemory}" debug="true" debuglevel="lines,vars,source" deprecation="on" verbose="false" nowarn="${friendlyWarnings}" includeantruntime="false" >
antonio@7539
   163
      <src path="${base.src}"/>
antonio@7539
   164
      <src path="../build/javasqlc/src"/>
antonio@7545
   165
      <src path="../src-gen"/>
carlos@33983
   166
      <src path="../modules/org.openbravo.base.weld/src/"/>
antonio@7547
   167
      <classpath refid="apply.module.compile.classpath" />
javier@35051
   168
      <compilerarg value="-implicit:class" />
antonio@7539
   169
    </javac>
antonio@7539
   170
  </target>
antonio@7539
   171
  
stefan@12082
   172
  <target name="sqlc">
asier@3189
   173
    <java classname="org.openbravo.data.Sqlc" fork="yes" jvm="${env.JAVA_HOME}/bin/java" maxmemory="${build.maxmemory}" failonerror="true">
martin@2868
   174
      <arg line="'${base.config}'/Openbravo.properties .xsql . '${build.sqlc}'/src" />
martin@2868
   175
      <classpath refid="project.class.path" />
antonio@7592
   176
      <syspropertyset>
antonio@7592
   177
         <propertyref name="java.security.egd" />
antonio@7592
   178
      </syspropertyset>
martin@2868
   179
    </java>
asier@3189
   180
    <java classname="org.openbravo.data.Sqlc" fork="yes" jvm="${env.JAVA_HOME}/bin/java" maxmemory="${build.maxmemory}" failonerror="true">
martin@2868
   181
      <arg line="'${base.config}'/Openbravo.properties .xsql '${base.modules}' '${build.sqlc}'/src */src" />
stefan@5227
   182
      <jvmarg value="-Dsqlc.queryExecutionStrategy=traditional"/>
martin@2868
   183
      <classpath refid="project.class.path" />
antonio@7592
   184
      <syspropertyset>
antonio@7592
   185
         <propertyref name="java.security.egd" />
antonio@7592
   186
      </syspropertyset>
martin@2868
   187
    </java>
martin@2868
   188
    <copy file="${base.src}/buildAD.xml" tofile="${build.AD}/build.xml" />
martin@2868
   189
    <ant dir="${build.AD}" target="buildAD" inheritAll="true" inheritRefs="true" />
martin@2868
   190
  </target>
carlos@0
   191
martin@2868
   192
  <target name="clean.src.gen">
martin@2868
   193
    <delete includeEmptyDirs="true" failonerror="false">
juanpablo@3236
   194
      <fileset dir="${base.src.gen}" >
juanpablo@3236
   195
        <exclude name="**/.keep" />
juanpablo@3236
   196
      </fileset>
martin@2868
   197
    </delete>
martin@2868
   198
  </target>
martin@2868
   199
stefan@11851
   200
  <!-- full generate.entities -> clean + .quick -->
stefan@11851
   201
  <target name="generate.entities" depends="clean.src.gen,generate.entities.quick" />
martin@2830
   202
martin@2868
   203
  <!-- 
martin@2830
   204
		Generates entities only when the application dictionary has changed.
martin@2830
   205
		Difference with the generate.entities is that it does not clean the src-gen directory. The standard
martin@2830
   206
		GenerateEntitiesTask always checks if the AD was changed before regenerating. The check is to compare
martin@2830
   207
		the modified time of the generated sources with the updated time of the Application Dictionary. If there
martin@2830
   208
		is a source older than the last updated time of the Application Dictionary then the sources need to be regenerated.		
martin@2830
   209
	-->
martin@2868
   210
  <target name="generate.entities.quick" depends="compile.src.gen">
stefan@11851
   211
    <java classname="org.openbravo.base.gen.GenerateEntitiesTask" fork="yes" jvm="${env.JAVA_HOME}/bin/java" maxmemory="${build.maxmemory}" failonerror="true">
stefan@11851
   212
      <arg line="'${base.src}' '${friendlyWarnings}'" />
stefan@11851
   213
      <classpath refid="project.class.path" />
antonio@7592
   214
      <syspropertyset>
antonio@7592
   215
         <propertyref name="java.security.egd" />
antonio@7592
   216
      </syspropertyset>
stefan@11851
   217
    </java>
stefan@11851
   218
      <!--
stefan@11851
   219
        see issue: https://issues.openbravo.com/view.php?id=9331
stefan@11851
   220
        Custom columns in standard tables should support a reference to a table in the module
stefan@11851
   221
        if this occurs then possible the following javac has to be enabled instead of the two javacs below
stefan@11851
   222
      <javac srcdir="${base.src}:${base.src.gen}" destdir="${build}" encoding="UTF-8" fork="true" memorymaximumsize="${build.maxmemory}" debug="true" debuglevel="lines,vars,source" deprecation="on">
stefan@11851
   223
        <classpath refid="project.class.path" />      
stefan@11851
   224
      </javac>
stefan@11851
   225
      -->
carlos@33979
   226
      <javac srcdir="${base.src}:${base.src.gen}:${base.modules}" includes="org/openbravo/model/**,org/openbravo/base/structure/**,org/openbravo/dal/**,org/openbravo/service/dataset/**,*/src/**/base/weld/**" destdir="${build}" encoding="UTF-8" fork="true" memorymaximumsize="${build.maxmemory}" debug="true" debuglevel="lines,vars,source" deprecation="on" includeantruntime="false">
javier@35051
   227
        <classpath refid="project.class.path" />
javier@35051
   228
        <compilerarg value="-implicit:class" />
stefan@11851
   229
      </javac>
stefan@11995
   230
      <javac srcdir="${base.src.gen}" excludes="org/openbravo/model/**,org/openbravo/base/structure/**,org/openbravo/dal/**,org/openbravo/service/dataset/**" destdir="${build}" encoding="UTF-8" fork="true" memorymaximumsize="${build.maxmemory}" debug="true" debuglevel="lines,vars,source" deprecation="on" includeantruntime="false">
stefan@11851
   231
        <classpath refid="project.class.path" />
stefan@11851
   232
      </javac>
stefan@11851
   233
  </target>
martin@4106
   234
stefan@11851
   235
  <!-- build-internal forking helper -->
stefan@11851
   236
  <target name="generate.entities.quick.forked" depends="compile.src.gen">
stefan@11852
   237
    <taskdef name="workflow" classpathref="project.class.path" classname="org.openbravo.base.gen.GenerateEntitiesTask" />
stefan@11851
   238
    <workflow friendlyWarnings="${friendlyWarnings}" srcGenPath="${base.src.gen}" propertiesFile="${base.config}/Openbravo.properties" />
asier@24247
   239
  </target> 
priya@6948
   240
antonio@16458
   241
  <path id="my-src-dirs">
antonio@16458
   242
    <pathelement path="${basedir}" />
antonio@16458
   243
    <pathelement path="${build.sqlc}/src" />
antonio@16458
   244
    <pathelement path="${build.sqlc}/srcAD" />
antonio@16458
   245
    <dirset dir="${base.modules}">
stefan@17945
   246
      <include name="*/src" />
antonio@16458
   247
    </dirset>
antonio@16458
   248
  </path>
antonio@16458
   249
 
martin@2868
   250
  <target name="compileSqlc" depends="sqlc">
antonio@16458
   251
    <javac excludes="*/src-wad/**,*/src-util/**,**/org/openbravo/erpWindows/**" destdir="${build}" encoding="UTF-8" fork="true" memorymaximumsize="${build.maxmemory}" debug="true" debuglevel="lines,vars,source" nowarn="${friendlyWarnings}" includeantruntime="false">
antonio@16458
   252
      <src refid="my-src-dirs"/>
antonio@16458
   253
      <classpath refid="project.class.path" />
antonio@16458
   254
    </javac>
antonio@16458
   255
antonio@16458
   256
    <javac srcdir="${build.sqlc}/srcAD" destdir="${build}" encoding="UTF-8" fork="true" memorymaximumsize="${build.maxmemory}" debug="true" debuglevel="lines,vars,source" nowarn="${friendlyWarnings}" includeantruntime="false">
asier@2967
   257
      <classpath refid="project.class.path" />
asier@2967
   258
    </javac>
antonio@6986
   259
stefan@11995
   260
    <javac srcdir="${build.AD}" destdir="${build}" encoding="UTF-8" fork="true" memorymaximumsize="${build.maxmemory}" debug="true" debuglevel="lines,vars,source" nowarn="${friendlyWarnings}" includeantruntime="false">
martin@2868
   261
      <classpath refid="project.class.path" />
martin@2868
   262
    </javac>
martin@2868
   263
  </target>
antonio@5595
   264
martin@2868
   265
  <target name="compile.src.gen" depends="init">
stefan@11995
   266
    <javac srcdir="${basedir}" includes="org/openbravo/base/exception/**,org/openbravo/base/gen/**,org/openbravo/base/expression/**,org/openbravo/base/provider/**,org/openbravo/base/model/**,org/openbravo/base/session/**,org/openbravo/base/validation/**,org/openbravo/base/util/**" destdir="${build}" encoding="UTF-8" fork="true" memorymaximumsize="${build.maxmemory}" debug="true" debuglevel="lines,vars,source" deprecation="on" includeantruntime="false">
martin@2868
   267
      <classpath refid="project.class.path" />
javier@35051
   268
      <compilerarg value="-implicit:class" />
martin@2868
   269
    </javac>
martin@2868
   270
    <copy todir="${build}">
stefan@32772
   271
      <fileset dir="${basedir}">
stefan@32772
   272
        <include name="**/*.hbm.xml" />
stefan@32772
   273
        <include name="**/*.properties" />
stefan@32772
   274
      </fileset>
martin@2868
   275
    </copy>
martin@6163
   276
    
martin@6163
   277
    <!-- also compile the domaintypes in modules -->
stefan@11995
   278
    <javac srcdir="${basedir}/../" includes="modules/*/src/**/model/domaintype/**/*.java" destdir="${build}"  fork="true" deprecation="on" encoding="UTF-8" debug="true" debuglevel="lines,vars,source" includeantruntime="false">
martin@6163
   279
      <classpath refid="project.class.path" />
martin@6163
   280
    </javac>
martin@6163
   281
    
martin@6163
   282
    <!-- copy all configuration files in modules to the output path also -->
martin@6163
   283
    <copy todir="${build}" encoding="UTF-8">
martin@6163
   284
      <fileset dir="${base.modules}">
martin@6163
   285
          <include name="*/src/**/*" />
martin@6163
   286
          <exclude name="*/src/**/*.java" />
martin@6163
   287
          <exclude name="*/src/**/*.xsql" />
martin@6163
   288
      </fileset>
martin@6163
   289
      <mapper type="regexp" from="(.*\${file.separator}src)(.*)" to="\2" />
martin@6163
   290
    </copy>
martin@2868
   291
  </target>
martin@2346
   292
asier@5532
   293
  <target name="wadvalidation">
asier@5535
   294
    <taskdef name="WADValidation" classname="org.openbravo.wad.validation.WADValidatorTask">
asier@5532
   295
            <classpath refid="project.class.path" />
asier@5532
   296
          </taskdef>
asier@5532
   297
        
asier@5532
   298
        <WADValidation propertiesFile="${base.config}/Openbravo.properties"
asier@5532
   299
                       modules="${module}"
antonio@5700
   300
                       stoponerror="${stopOnWadError}"
antonio@5700
   301
                       friendlyWarnings="${friendlyWarnings}"/>
asier@5532
   302
  </target>
asier@5532
   303
  
asier@5532
   304
  <target name="wad" depends="init, wadvalidation">
asier@5265
   305
    <java classname="org.openbravo.wad.Wad" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}" failonerror="true">
asier@30507
   306
      <arg line="'${base.config}' '${tab}' '${build.AD}/org/openbravo/erpWindows' '${build.AD}/org/openbravo/erpCommon' '${build.sqlc}/src' '${webTab}' '${build.AD}/org/openbravo/erpCommon/ad_actionButton' '${base.design}' '${base.translate.structure}' 'dummyValueUnused' '..' '${attach.path}' '${web.url}' '${base.src}' '${complete}' '${module}' 'noquick' '${wad.generateAllClassic250Windows}' '${exclude.cdi}'" />
stefan@9230
   307
      <classpath refid="wad.class.path" />
antonio@7592
   308
      <syspropertyset>
antonio@7592
   309
         <propertyref name="java.security.egd" />
antonio@7592
   310
      </syspropertyset>
martin@2868
   311
    </java>
martin@2868
   312
    <antcall target="postwad" inheritall="true" inheritrefs="true" />
martin@2868
   313
  </target>
martin@2346
   314
asier@5532
   315
  <target name="wad.quick" depends="init, wadvalidation">
martin@2868
   316
    <java classname="org.openbravo.wad.Wad" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}">
asier@30507
   317
      <arg line="'${base.config}' '${tab}' '${build.AD}/org/openbravo/erpWindows' '${build.AD}/org/openbravo/erpCommon' '${build.sqlc}/src' '${webTab}' '${build.AD}/org/openbravo/erpCommon/ad_actionButton' '${base.design}' '${base.translate.structure}' 'dummyValueUnused' '..' '${attach.path}' '${web.url}' '${base.src}' '${complete}' '${module}' 'quick' '${wad.generateAllClassic250Windows}' '${exclude.cdi}'" />
stefan@9230
   318
      <classpath refid="wad.class.path" />
antonio@7592
   319
      <syspropertyset>
antonio@7592
   320
         <propertyref name="java.security.egd" />
antonio@7592
   321
      </syspropertyset>
martin@2868
   322
    </java>
martin@2868
   323
    <antcall target="postwad" inheritall="true" inheritrefs="true" />
martin@2868
   324
  </target>
asier@1929
   325
martin@2868
   326
  <target name="postsrc" depends="postsrc.modules">
antonio@5620
   327
martin@2868
   328
    <copy todir="${build}">
stefan@32772
   329
      <fileset dir="${basedir}">
stefan@32772
   330
        <include name="**/*.properties" />
stefan@32772
   331
        <include name="**/*.xslt" />
stefan@32772
   332
        <include name="**/*.hbm.xml" />
stefan@32772
   333
        <include name="**/*.ftl" />
stefan@32772
   334
      </fileset>
asier@19912
   335
    </copy>
martin@2868
   336
    <copy todir="${base.design}/design">
stefan@32772
   337
      <fileset dir="${basedir}">
stefan@32772
   338
        <include name="**/*.xml" />
stefan@32772
   339
        <include name="**/*.fo" />
stefan@32772
   340
        <include name="**/*.html" />
stefan@32772
   341
        <include name="**/*.srpt" />
stefan@32772
   342
        <include name="**/*.jrxml" />
stefan@32772
   343
        <include name="**/*.jasper" />
stefan@32772
   344
      </fileset>
martin@2868
   345
    </copy>
martin@2868
   346
    <copy todir="${build}">
martin@2868
   347
      <fileset file="${base.config}/quartz.properties" />
martin@2868
   348
    </copy>
asier@8385
   349
    <copy todir="${base.design}/design/org/openbravo/erpCommon/obps" file="${basedir}/org/openbravo/erpCommon/obps/licenseRestrictions"/>
martin@2868
   350
    <antcall target="build.local.context" inheritAll="true" inheritrefs="true" />
martin@2868
   351
  </target>
asier@1929
   352
martin@2868
   353
  <target name="postsrc.modules">
martin@2868
   354
    <copy todir="${base.design}/design">
martin@2868
   355
      <fileset dir="${base.modules}">
martin@2868
   356
        <include name="*/src/**/*.xml" />
martin@2868
   357
        <include name="*/src/**/*.fo" />
martin@2868
   358
        <include name="*/src/**/*.html" />
martin@2868
   359
        <include name="*/src/**/*.srpt" />
martin@2868
   360
        <include name="*/src/**/*.jrxml" />
martin@2868
   361
        <include name="*/src/**/*.jasper" />
martin@2868
   362
      </fileset>
martin@2868
   363
      <mapper type="regexp" from="(.*\${file.separator}src)(.*)" to="\2" />
martin@2868
   364
    </copy>
martin@6160
   365
    <copy todir="${build}">
martin@6160
   366
      <fileset dir="${base.modules}">
martin@6160
   367
        <include name="*/src/**" />
martin@6160
   368
        <exclude name="*/src/**/*.java" />
martin@6160
   369
      </fileset>
martin@6160
   370
      <mapper type="regexp" from="(.*\${file.separator}src)(.*)" to="\2" />
martin@6160
   371
    </copy>
martin@2868
   372
  </target>
asier@1929
   373
martin@2868
   374
  <!-- end of auxiliar tasks-->
martin@2346
   375
martin@2868
   376
  <target name="build.local.context">
martin@2868
   377
    <copy todir="${base.context}" encoding="UTF-8">
ivan@10243
   378
      <fileset file="${basedir}/index.jsp" />
martin@2868
   379
    </copy>
martin@2868
   380
    <copy todir="${base.context}/WEB-INF" encoding="UTF-8">
martin@2868
   381
      <fileset file="${build.sqlc}/src/web.xml" />
martin@2868
   382
      <fileset dir="${base.config}">
martin@2868
   383
        <exclude name="**/eclipse/**" />
martin@2868
   384
        <exclude name="**/setup-properties**" />
martin@2868
   385
        <exclude name="*.template" />
asier@2974
   386
        <exclude name="checksums"/>
asier@35058
   387
        <exclude name="log4j2.xml"/>
martin@2868
   388
      </fileset>
martin@2868
   389
    </copy>
martin@2868
   390
    <copy todir="${base.context}/WEB-INF" encoding="UTF-8">
martin@2868
   391
      <fileset dir="${base.modules}">
martin@2868
   392
        <include name="*/config/**" />
martin@2868
   393
        <exclude name="*.template" />
martin@2868
   394
      </fileset>
martin@2868
   395
      <mapper type="regexp" from="(.*\${file.separator}config)(.*)" to="\2" />
martin@2868
   396
    </copy>
martin@2868
   397
    <copy todir="${base.context}/WEB-INF/lib" encoding="UTF-8">
martin@2868
   398
      <fileset dir="${base.lib}/runtime">
martin@2868
   399
        <exclude name="openbravo-wad.jar" />
martin@2868
   400
        <exclude name="openbravo-trl.jar" />
martin@2868
   401
        <exclude name="*.war" />
martin@2868
   402
      </fileset>
martin@2868
   403
      <fileset dir="${base.db}/lib">
martin@2868
   404
        <include name="*" />
carlos@35345
   405
      	<exclude name="wstx-asl-3.0.2.jar" />
martin@2868
   406
      </fileset>
martin@2868
   407
    </copy>
martin@2346
   408
martin@2868
   409
    <copy todir="${base.context}/WEB-INF/lib" encoding="UTF-8">
martin@2868
   410
      <fileset dir="${base.modules}">
martin@2868
   411
        <include name="*/lib/runtime/**" />
carlos@35677
   412
        <exclude if="exclude.cdi" name="org.openbravo.base.weld/lib/runtime/cdi*"/>
carlos@35677
   413
        <exclude if="exclude.cdi" name="org.openbravo.base.weld/lib/runtime/javax*"/>
carlos@35677
   414
        <exclude if="exclude.cdi" name="org.openbravo.base.weld/lib/runtime/jboss*"/>
asier@30503
   415
        <exclude if="exclude.cdi" name="org.openbravo.base.weld/lib/runtime/weld*"/>
martin@2868
   416
      </fileset>
martin@2868
   417
      <mapper type="regexp" from="(.*\${file.separator}lib\${file.separator}runtime)(.*)" to="\2" />
martin@2868
   418
    </copy>
asier@34811
   419
asier@34811
   420
    <copy todir="${base.context}/WEB-INF/referencedata/standard/org.openbravo">
asier@34811
   421
      <fileset dir="${basedir}/../referencedata/standard">
asier@34811
   422
        <include name="*.xml" />
asier@34811
   423
      </fileset>
asier@34811
   424
    </copy>
asier@34811
   425
asier@34811
   426
    <copy todir="${base.context}/WEB-INF/referencedata">
asier@34811
   427
      <fileset dir="${base.modules}">
asier@34811
   428
        <include name="*/referencedata/standard/*.xml" />
asier@34811
   429
        <include name="*/referencedata/accounts/COA.csv" />
asier@34811
   430
      </fileset>
asier@34811
   431
      <mapper type="regexp" from="(.*\${file.separator})referencedata\${file.separator}(standard|accounts)\${file.separator}(.*)" to="\2/\1\3" />
asier@34811
   432
    </copy>
asier@34811
   433
martin@2868
   434
    <antcall target="build.web.folder" inheritAll="true" inheritrefs="true" />
martin@2868
   435
  </target>
martin@2346
   436
martin@2868
   437
  <target name="build.web.folder">
martin@2868
   438
    <copy todir="${base.context}/web" encoding="UTF-8">
martin@2868
   439
      <fileset dir="${base.web}">
martin@2868
   440
        <include name="*/**" />
martin@2868
   441
        <exclude name="skins/**" />
martin@2868
   442
      </fileset>
martin@2868
   443
    </copy>
asier@2994
   444
    
asier@2994
   445
    <taskdef name="CheckSumCondition" classname="org.openbravo.utils.CheckSumCondition">
asier@2994
   446
        <classpath refid="project.class.path" />
asier@2994
   447
      </taskdef>
asier@2994
   448
    
asier@2994
   449
    <CheckSumCondition obDir="${basedir}/.."
asier@2994
   450
                       type="md5.skins"
asier@2994
   451
                       property="changes.in.md5.skins"/>
asier@2994
   452
    <condition property="do.skins">
asier@2994
   453
      <or>
asier@2994
   454
        <istrue value="${changes.in.md5.skins}" />
asier@2994
   455
        <not>
asier@3013
   456
          <istrue value="${smart.mode}"/>
asier@2994
   457
        </not>
augusto@15962
   458
        <not>
augusto@15962
   459
          <available file="${base.context}/web/skins/rtl" type="dir"/>
augusto@15962
   460
        </not>
augusto@15962
   461
        <not>
augusto@15962
   462
          <available file="${base.context}/web/skins/ltr" type="dir"/>
augusto@15962
   463
        </not>
asier@2994
   464
      </or>
asier@2994
   465
    </condition>
asier@2994
   466
    
asier@2994
   467
    <antcall target="build.web.folder.skins"  inheritAll="true" inheritrefs="true" />
asier@2994
   468
    
asier@2994
   469
    <antcall target="minimizeJSandCSS" inheritAll="true" inheritrefs="true" />
asier@2994
   470
  </target>
asier@2994
   471
    
asier@9013
   472
  
asier@9013
   473
  <target name="build.web.folder.base">
asier@9013
   474
    <mkdir dir="${base.context}/web" />
asier@9013
   475
    <copy todir="${base.context}/web" encoding="UTF-8">
asier@9013
   476
      <fileset dir="${base.modules}">
asier@9013
   477
        <include name="*/web/*/**" />
asier@9013
   478
        <exclude name="*/web/*/skins/**" />
asier@9013
   479
      </fileset>
augusto@16403
   480
      <mapper type="regexp" from="(.*)(\${file.separator}web)(\${file.separator}.*)" to="\3" />
asier@9013
   481
    </copy>
asier@9013
   482
  </target>
martin@2346
   483
asier@2994
   484
  <target name="build.web.folder.skins" if="do.skins">
asier@2994
   485
asier@2994
   486
    <delete includeEmptyDirs="true" dir="${base.context}/web/skins" quiet="yes" />
martin@2868
   487
    <mkdir dir="${base.context}/web/skins/ltr" />
martin@2868
   488
    <copy todir="${base.context}/web/skins/ltr" encoding="UTF-8">
martin@2868
   489
      <fileset dir="${base.web}/skins" />
martin@2868
   490
    </copy>
martin@2868
   491
    <mkdir dir="${base.context}/web/skins/rtl" />
martin@2868
   492
    <copy todir="${base.context}/web/skins/rtl" encoding="UTF-8">
martin@2868
   493
      <fileset dir="${base.web}/skins" />
martin@2868
   494
    </copy>
martin@2346
   495
asier@9013
   496
    <antcall target="build.web.folder.base" />
martin@2346
   497
martin@2868
   498
    <copy todir="${base.context}/web/skins/ltr" encoding="UTF-8">
martin@2868
   499
      <fileset dir="${base.modules}">
david@5270
   500
        <include name="*/web/*/skins/**" />
martin@2868
   501
      </fileset>
asier@3604
   502
      <mapper type="regexp" from="(.*)(\${file.separator}web)(.*\${file.separator})(skins\${file.separator})(.*)" to="\3\5" />
martin@2868
   503
    </copy>
carlos@0
   504
martin@2868
   505
    <copy todir="${base.context}/web/skins/rtl" encoding="UTF-8">
martin@2868
   506
      <fileset dir="${base.modules}">
david@5270
   507
        <include name="*/web/*/skins/**" />
martin@2868
   508
      </fileset>
asier@3604
   509
      <mapper type="regexp" from="(.*)(\${file.separator}web)(.*\${file.separator})(skins\${file.separator})(.*)" to="\3\5" />
martin@2868
   510
    </copy>
stefan@2143
   511
martin@2868
   512
    <java classname="org.openbravo.translate.RTLSkin" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}">
david@3771
   513
      <arg line="${base.context}/web/skins/rtl ${base.context}/web/skins/ltr" />
martin@2868
   514
      <classpath refid="project.class.path" />
martin@2868
   515
    </java>
asier@2994
   516
    
martin@2868
   517
  </target>
juanpablo@131
   518
martin@2868
   519
  <target name="minimizeJSandCSS" description="minimize JS and CSS files" if="minimizeJSandCSSbool">
martin@2868
   520
    <yuicompress linebreak="300" warn="false" munge="yes" preserveallsemicolons="true" outputfolder="${base.context}/web" charset="UTF-8">
martin@2868
   521
      <fileset dir="${base.web}">
martin@2868
   522
        <include name="**/*.js" />
martin@2868
   523
        <include name="**/*.css" />
martin@2868
   524
        <!-- The following scripts break in minification process -->
martin@2868
   525
        <exclude name="**/js/dojo/src/docs.js" />
martin@2868
   526
        <exclude name="**/js/dojo/src/hostenv_jsc.js" />
martin@2868
   527
        <exclude name="**/js/jscalendar/lang/calendar-al.js" />
martin@2868
   528
        <exclude name="**/js/jscalendar/lang/calendar-he-utf8.js" />
martin@2868
   529
        <exclude name="**/js/jscalendar/lang/calendar-hr.js" />
martin@2868
   530
        <!-- dojotoolkit files are already compressd -->
martin@2868
   531
        <exclude name="**/dojotoolkit/**" />
martin@2868
   532
        <!-- from old dojo, only compress main file -->
martin@2868
   533
        <exclude name="**/dojo/**" />
martin@2868
   534
        <include name="js/dojo/dojo.js" />
martin@2868
   535
      </fileset>
martin@2868
   536
    </yuicompress>
martin@2868
   537
  </target>
david@1883
   538
martin@2868
   539
  <target name="postwad">
martin@2868
   540
    <copy todir="${base.design}/design">
stefan@32772
   541
      <fileset dir="${build.AD}">
stefan@32772
   542
        <include name="**/*.xml" />
stefan@32772
   543
        <include name="**/*.fo" />
stefan@32772
   544
        <include name="**/*.html" />
stefan@32772
   545
        <include name="**/*.srpt" />
stefan@32772
   546
        <include name="**/*.jrxml" />
stefan@32772
   547
        <include name="**/*.jasper" />
stefan@32772
   548
      </fileset>
martin@2868
   549
    </copy>
martin@2868
   550
  </target>
martin@2346
   551
martin@2868
   552
  <target name="compile.src" depends="compileSqlc, postsrc, copy.files">
martin@2868
   553
  </target>
martin@2868
   554
asier@5937
   555
  <target name="compile.complete" depends="clean,generate.entities,wad,compileSqlc,postsrc,translate, trl.remove.unused">
martin@2868
   556
    <antcall target="update.build.timestamp" />
martin@2868
   557
  </target>
martin@2868
   558
martin@2868
   559
asier@3013
   560
  <target name="smartbuild.new.wad" if="new.wad">
martin@2868
   561
    <antcall inheritall="true" inheritrefs="true" target="wad" />
asier@2854
   562
    <taskdef name="updateWADmd5" classname="org.openbravo.utils.WADCheckSumTask">
asier@2854
   563
      <classpath refid="project.class.path" />
asier@2854
   564
    </taskdef>
martin@2868
   565
    <updateWADmd5 obDir="${basedir}/.." />
martin@2868
   566
  </target>
asier@2854
   567
asier@3013
   568
  <target name="smartbuild.no.new.wad" unless="new.wad">
martin@2868
   569
    <antcall inheritall="true" inheritrefs="true" target="wad.quick" />
asier@2974
   570
  </target>
asier@2974
   571
asier@3013
   572
  <target name="smartbuild">
asier@3013
   573
    <antcall inheritall="true" inheritrefs="true" target="smartbuild.new.wad" />
asier@3013
   574
    <antcall inheritall="true" inheritrefs="true" target="smartbuild.no.new.wad" />
martin@2868
   575
    <antcall inheritall="true" inheritrefs="true" target="compileSqlc" />
martin@2868
   576
    <antcall inheritall="true" inheritrefs="true" target="postsrc" />
asier@9013
   577
    <antcall inheritall="true" inheritrefs="true" target="build.web.folder.base" />
martin@2868
   578
    <antcall inheritall="true" inheritrefs="true" target="translate" />
martin@2868
   579
    <antcall inheritall="true" inheritrefs="true" target="update.build.timestamp" />
martin@2868
   580
  </target>
carlos@0
   581
martin@2868
   582
  <target name="translate" if="translation">
martin@2868
   583
    <java classname="org.openbravo.translate.Translate" jvm="${env.JAVA_HOME}/bin/java" fork="yes" maxmemory="${build.maxmemory}">
asier@32644
   584
      <arg line="'${base.config}/Openbravo.properties' '${basedir}/..'" />
martin@2868
   585
      <classpath refid="project.class.path" />
antonio@7592
   586
      <syspropertyset>
antonio@7592
   587
         <propertyref name="java.security.egd" />
antonio@7592
   588
      </syspropertyset>
martin@2868
   589
    </java>
martin@2868
   590
  </target>
carlos@0
   591
asier@32644
   592
  <target name="compile" depends="wad,compileSqlc, postsrc, translate">
asier@32644
   593
  </target>
asier@32644
   594
stefan@9978
   595
  <!-- Note (see issue 15709 for details):
stefan@9978
   596
       orphan jarfiles are not deleted from the webapp as deployed in tomcat when
stefan@9978
   597
       this rebuild is running inside the rebuild UI (started from MMC). See also the related
stefan@9978
   598
       copy.files.jarsync(.do) task which does this deletion between tomcat stop & start
stefan@9978
   599
   -->
stefan@9978
   600
  <target name="copy.files" depends="copy.files.jarsync.notinrebuildui" if="mode.class">
martin@2868
   601
    <mkdir dir="${jakarta.base}/webapps/${context.name}" />
antonio@7595
   602
    <sync todir="${jakarta.base}/webapps/${context.name}">
antonio@7595
   603
      <preserveintarget>
antonio@7595
   604
        <include name="**/WEB-INF/classes/**"/>
stefan@9052
   605
        <include name="**/WEB-INF/lib/**"/>
antonio@7595
   606
      </preserveintarget>
martin@2868
   607
      <fileset dir="${base.context}" />
antonio@7595
   608
    </sync>
martin@2868
   609
    <mkdir dir="${jakarta.base}/webapps/${context.name}/WEB-INF/classes" />
antonio@7595
   610
    <sync todir="${jakarta.base}/webapps/${context.name}/WEB-INF/classes">
martin@2868
   611
      <fileset dir="${build}" />
antonio@7595
   612
    </sync>
asier@7208
   613
    <mkdir dir="${jakarta.base}/webapps/${context.name}/WEB-INF/lib" />
asier@7208
   614
      <copy todir="${jakarta.base}/webapps/${context.name}/WEB-INF/lib" file="${build.core.lib}/openbravo-core.jar" encoding="UTF-8">
asier@7208
   615
    </copy>
martin@2868
   616
  </target>
ivan@1738
   617
stefan@9978
   618
  <target name="copy.files.jarsync.notinrebuildui" unless="runningInRebuildUI">
stefan@9978
   619
    <antcall target="copy.files.jarsync.do"/>
stefan@9978
   620
  </target>
stefan@9978
   621
stefan@9978
   622
  <!-- sync jar files from WebContent -> deployed webapp & delete orphan jars from webapp
stefan@9978
   623
       as delete orphan is excluded from normal copy.files task -->
stefan@9978
   624
  <target name="copy.files.jarsync.do" if="mode.class">
stefan@9978
   625
    <mkdir dir="${jakarta.base}/webapps/${context.name}/WEB-INF/lib"/>
stefan@9978
   626
    <sync todir="${jakarta.base}/webapps/${context.name}/WEB-INF/lib">
stefan@9978
   627
      <fileset dir="${base.context}/WEB-INF/lib" />
stefan@9978
   628
    </sync>
stefan@9978
   629
  </target>
stefan@9978
   630
martin@2868
   631
  <target name="compile.development" depends="generate.entities, compile, copy.files">
martin@2868
   632
  </target>
asier@1929
   633
martin@2868
   634
  <target name="compile.complete.development" depends="compile.complete, copy.files">
antonio@8136
   635
    <updatesystemstatus v="RB51"/>
martin@2868
   636
  </target>
asier@1929
   637
martin@2868
   638
  <target name="compile.web" depends="build.web.folder">
martin@2868
   639
  </target>
asier@1929
   640
martin@2868
   641
  <target name="compile.web.development" depends="build.web.folder, copy.files">
martin@2868
   642
  </target>
asier@1929
   643
martin@2868
   644
  <target name="build.war">
martin@2868
   645
    <delete failonerror="false" file="${base.lib}/${context.name}.war" />
martin@2868
   646
    <war compress="true" destfile="${base.lib}/${context.name}.war" encoding="UTF-8" webxml="${base.context}/WEB-INF/web.xml">
martin@2868
   647
      <zipfileset dir="${base.context}">
martin@2868
   648
        <exclude name="**/WEB-INF/web.xml" />
martin@2868
   649
      </zipfileset>
martin@2868
   650
      <classes dir="${build}" />
martin@2868
   651
    </war>
antonio@8136
   652
    <updatesystemstatus v="RB51"/>
martin@2868
   653
  </target>
martin@2868
   654
antonio@3372
   655
  <target name="update.build.timestamp" unless="timestamp">
martin@2868
   656
    <sql driver="${bbdd.driver}" url="${bbdd.owner.url}" userid="${bbdd.user}" password="${bbdd.password}" delimiter="/">
martin@2868
   657
      <classpath>
martin@2868
   658
        <fileset dir="${base.lib}">
martin@2868
   659
          <include name="**/*.jar">
martin@2868
   660
          </include>
martin@2868
   661
        </fileset>
martin@2868
   662
      </classpath>
martin@2868
   663
      <transaction>
asier@2819
   664
	        UPDATE AD_SYSTEM_INFO SET LAST_BUILD=NOW()
asier@2819
   665
	      </transaction>
martin@2868
   666
    </sql>
martin@2868
   667
  </target>
asier@1929
   668
carlos@0
   669
</project>