<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.infinite-erp.co.id/index.php?action=history&amp;feed=atom&amp;title=Development_Build_Tasks</id>
	<title>Development Build Tasks - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.infinite-erp.co.id/index.php?action=history&amp;feed=atom&amp;title=Development_Build_Tasks"/>
	<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;action=history"/>
	<updated>2026-04-06T16:45:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=4333&amp;oldid=prev</id>
		<title>Wikiadmin: /* Database export */</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=4333&amp;oldid=prev"/>
		<updated>2024-05-27T14:41:10Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Database export&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:41, 27 May 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l43&quot; &gt;Line 43:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 43:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In most cases developments include modifications on the database. This modifications can be persisted in xml files using the [[DBSourceManager]] tool. DBSourceManager exports to xml files only the modules (including core) that are set as ''In Development''. To export the database execute:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In most cases developments include modifications on the database. This modifications can be persisted in xml files using the [[DBSourceManager]] tool. DBSourceManager exports to xml files only the modules (including core) that are set as ''In Development''. To export the database execute:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source lang=&amp;quot;bash&amp;quot;&lt;/del&gt;&amp;gt;ant export.database&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;ant export.database&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;After this step the changed model xml files can be pushed/committed to the source code revision system, so that other developers can pick them up and continue working on top of it.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;After this step the changed model xml files can be pushed/committed to the source code revision system, so that other developers can pick them up and continue working on top of it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l55&quot; &gt;Line 55:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 55:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Foreign key fields should be part of a foreign key constraint.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Foreign key fields should be part of a foreign key constraint.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Names of tables, columns and constraints are checked for their length (Oracle has a 30 character limit there).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Names of tables, columns and constraints are checked for their length (Oracle has a 30 character limit there).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Update database ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Update database ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=4332&amp;oldid=prev</id>
		<title>Wikiadmin: /* Update database */</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=4332&amp;oldid=prev"/>
		<updated>2024-05-27T14:40:44Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Update database&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:40, 27 May 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l60&quot; &gt;Line 60:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 60:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Database model changes are distributed by committing the database schema as xml to SCM. Other developers pull the changes from SCM and can apply them to update their own database. After updating the database the process is exactly the same as the local one, that is compile and deploy the elements that have been modified since last build. All the required actions (update database, compile last modifications and deploy them) can be done with only the '''smartbuild''' command:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Database model changes are distributed by committing the database schema as xml to SCM. Other developers pull the changes from SCM and can apply them to update their own database. After updating the database the process is exactly the same as the local one, that is compile and deploy the elements that have been modified since last build. All the required actions (update database, compile last modifications and deploy them) can be done with only the '''smartbuild''' command:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source lang=&amp;quot;bash&amp;quot;&lt;/del&gt;&amp;gt;ant smartbuild -Dlocal=no # note the -Dlocal=no&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;ant smartbuild -Dlocal=no # note the -Dlocal=no&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The only difference with the local development is in the ''local'' parameter which makes the process to update the database in case the xml files were changed.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The only difference with the local development is in the ''local'' parameter which makes the process to update the database in case the xml files were changed.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=4331&amp;oldid=prev</id>
		<title>Wikiadmin: /* Module Consistency Check */</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=4331&amp;oldid=prev"/>
		<updated>2024-05-27T14:40:23Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Module Consistency Check&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:40, 27 May 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l84&quot; &gt;Line 84:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 84:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This ant task helps to detect which are the modules that cause this inconsitency and which are the dependencies that are not satisfied, in this way it makes easier to solve the problem.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This ant task helps to detect which are the modules that cause this inconsitency and which are the dependencies that are not satisfied, in this way it makes easier to solve the problem.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source lang=&amp;quot;bash&amp;quot;&lt;/del&gt;&amp;gt;ant check.module.consistency&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;ant check.module.consistency&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Test Ant Tasks ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Test Ant Tasks ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=4330&amp;oldid=prev</id>
		<title>Wikiadmin: /* Test Ant Tasks */</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=4330&amp;oldid=prev"/>
		<updated>2024-05-27T14:40:01Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Test Ant Tasks&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 14:40, 27 May 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l89&quot; &gt;Line 89:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 89:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Openbravo has a number of ant tasks for running Junit test cases. The main one is run.tests:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Openbravo has a number of ant tasks for running Junit test cases. The main one is run.tests:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source lang=&amp;quot;bash&amp;quot;&lt;/del&gt;&amp;gt;ant run.tests&amp;lt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;source&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;ant run.tests&amp;lt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pre&lt;/ins&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It will run the tests which are side effect free. The test ant tasks assume that the Small Bazaar and Accounting Test clients have been installed.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It will run the tests which are side effect free. The test ant tasks assume that the Small Bazaar and Accounting Test clients have been installed.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=1246&amp;oldid=prev</id>
		<title>Wikiadmin: Created page with &quot;== Introduction == This document discusses the ant tasks used during the build process of Openbravo ERP. It explains what the ant tasks are used for and which properties can b...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=Development_Build_Tasks&amp;diff=1246&amp;oldid=prev"/>
		<updated>2021-11-17T01:32:32Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Introduction == This document discusses the ant tasks used during the build process of Openbravo ERP. It explains what the ant tasks are used for and which properties can b...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
This document discusses the ant tasks used during the build process of Openbravo ERP. It explains what the ant tasks are used for and which properties can be used to control their behavior. Notice that ant is case sensitive.&lt;br /&gt;
&lt;br /&gt;
== Main Build Tasks ==&lt;br /&gt;
[[Image:Build-process2.png|right]]&lt;br /&gt;
&lt;br /&gt;
This section explains the main build tasks following the steps as illustrated in the image. &lt;br /&gt;
&lt;br /&gt;
In most of the cases it is only necessary to use 3 tasks (''install.source'', ''smartbuild'' and ''export.database''). There are a number of other tasks that can be used but they are not required for the standard process, they are explained in the [[#Detailed Build Tasks|Detailed Build Tasks]] section.&lt;br /&gt;
&lt;br /&gt;
The main task for the standard process is '''smartbuild''' which performs all the required processes as explained below. This task accepts an optional property:&lt;br /&gt;
&lt;br /&gt;
# ''local'' for local or remote developments which by default is set to '''yes'''.&lt;br /&gt;
&lt;br /&gt;
The difference between ''local'' and ''remote'' development is illustrated in the diagram on the right. Local development are changes by the developer him/herself. Remote developments are changes done by other developers. Changes by remote developments are pulled from the source code revision system.&lt;br /&gt;
{{(!)| ''remote'' means that you're bringing changes to your workspace from an external location, e.g. with a [[Mercurial_Manual_for_Openbravo_Developers#Terminology|hg pull]]}}&lt;br /&gt;
&lt;br /&gt;
=== Initial installation ===&lt;br /&gt;
After downloading the Openbravo ERP source files (for example with an hg clone from mercurial). It is necessary to install and deploy it. &lt;br /&gt;
&lt;br /&gt;
The first step is to properly configure all the required configuration files (Openbravo.properties, log4j.lcf, Eclipse's .classpath, etc). All properties are stored in the ''[[Openbravo.properties]]'' file. This file is not in the base source but it can be easily generated from the ''Openbravo.properties.template''. Another way to set up it is to execute the setup tool for the current platform. (run ant setup). &lt;br /&gt;
&lt;br /&gt;
'''Note:''' More about the properties and setup ant task can be found at [[Openbravo.properties]].&lt;br /&gt;
&lt;br /&gt;
After all the properties are configured the following step is to build the application from scratch and to deploy it. All this is done by the '''install.source''' task. This task creates the database, inserts sample data on it and compiles and deploys the application accordingly with the chosen [[Openbravo.properties#General|deployment mode]]. To execute it just type in the Openbravo ERP source directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ant install.source&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once Openbravo ERP is up and running it is possible to develop on it. Generally, new developments should be done through modules, further explanations about how to develop modules can be found in the [[Modularity|Modularity article]].&lt;br /&gt;
&lt;br /&gt;
=== Build ===&lt;br /&gt;
Once the developments are ready to be tested it is necessary to build the application. It is not necessary to do a complete build, but just incremental builds, that is building only what has been modified. This is done with the '''smartbuild''' command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ant smartbuild&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This task generates and compiles the sources for the modified elements, and, depending on the deploy mode, it also deploys them.&lt;br /&gt;
&lt;br /&gt;
{{(!)|Available from '''3.0PR17Q1'''}}&lt;br /&gt;
&lt;br /&gt;
To build Openbravo to be deployed on Wildfly, [[Openbravo.properties#Others|'''application.server''' property]] needs to be set with value &amp;lt;code&amp;gt;wildfly&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Database export ===&lt;br /&gt;
In most cases developments include modifications on the database. This modifications can be persisted in xml files using the [[DBSourceManager]] tool. DBSourceManager exports to xml files only the modules (including core) that are set as ''In Development''. To export the database execute:&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ant export.database&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After this step the changed model xml files can be pushed/committed to the source code revision system, so that other developers can pick them up and continue working on top of it.&lt;br /&gt;
&lt;br /&gt;
When a module is exported using the ''export.database'' task it is first validated to check for common errors. If the validation fails then the ''export.database'' task will also fail and export is not possible.&lt;br /&gt;
&lt;br /&gt;
The following checks are currently done:&lt;br /&gt;
* A table defined in the Application Dictionary should be present in the database and vice versa.&lt;br /&gt;
* Column definitions in the database and the Application Dictionary are compared, any mismatch is reported. The column datatype, default value and length are checked.&lt;br /&gt;
* Tables should have a primary key.&lt;br /&gt;
* Foreign key fields should be part of a foreign key constraint.&lt;br /&gt;
* Names of tables, columns and constraints are checked for their length (Oracle has a 30 character limit there).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Update database ===&lt;br /&gt;
Database model changes are distributed by committing the database schema as xml to SCM. Other developers pull the changes from SCM and can apply them to update their own database. After updating the database the process is exactly the same as the local one, that is compile and deploy the elements that have been modified since last build. All the required actions (update database, compile last modifications and deploy them) can be done with only the '''smartbuild''' command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ant smartbuild -Dlocal=no # note the -Dlocal=no&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The only difference with the local development is in the ''local'' parameter which makes the process to update the database in case the xml files were changed.&lt;br /&gt;
&lt;br /&gt;
=== Validate Module ===&lt;br /&gt;
When a module is packaged with the ''package.module'' ant task, then first it is checked for some common errors. If an error is detected then the ''package.module'' task will fail.&lt;br /&gt;
&lt;br /&gt;
Specifically the following checks are done:&lt;br /&gt;
&lt;br /&gt;
* A module should depend on the Core module, or depend on a module which depends on the Core module (recursively).&lt;br /&gt;
* The path in side the ''modules/.../src'' directory must correspond to the javapackage defined for the module.&lt;br /&gt;
* The javapackages of the DataPackages which are part of the module must be in line with the Java package defined for the module. So if the module has the javapackage org.example, then all Data Packages should have a Java package which starts with org.example.&lt;br /&gt;
* The license type and text must be set.&lt;br /&gt;
* If the module is an Industry Template then it must depend on core and the dependency must be set to 'Included'.&lt;br /&gt;
* If the module adds UI artifacts such as a window or tab then its 'translation required' field must be set to yes.&lt;br /&gt;
&lt;br /&gt;
=== Module Consistency Check ===&lt;br /&gt;
&lt;br /&gt;
An instance is consistent in case the dependencies all the modules it has installed are satisfied. Development instances can define inconsistencies (for example by creating a dependency on a module version which is not installed) whereas production instances where all the modules are installed through obx or Central Repository shouldn't be inconsistent because it is guaranteed by the installation process.&lt;br /&gt;
&lt;br /&gt;
Inconsistent instances can be in a situation where it is not possible to update any of the modules (including core) they have installed. This is due the fact that Central Repository only proposes updates to consistent sets of versions and it is possible the inconsistency cannot be resolved by any.&lt;br /&gt;
&lt;br /&gt;
This ant task helps to detect which are the modules that cause this inconsitency and which are the dependencies that are not satisfied, in this way it makes easier to solve the problem.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ant check.module.consistency&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Test Ant Tasks ===&lt;br /&gt;
Openbravo has a number of ant tasks for running Junit test cases. The main one is run.tests:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;ant run.tests&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will run the tests which are side effect free. The test ant tasks assume that the Small Bazaar and Accounting Test clients have been installed.&lt;br /&gt;
&lt;br /&gt;
== Detailed Build Tasks ==&lt;br /&gt;
This section contains a detailed listing of all available build tasks.&lt;br /&gt;
&lt;br /&gt;
=== Libraries build tasks ===&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Task&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Description&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Notes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| core.lib&lt;br /&gt;
| Compiles and generates a .jar file from the src-core project. Which is needed by wad.lib and the rest of build tasks.&lt;br /&gt;
| '''Required by''': wad.lib&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| wad.lib&lt;br /&gt;
| Compiles and generates a .jar file from the src-wad project. Which is needed by the build tasks. This project contains the WAD, the automatic window generator.&lt;br /&gt;
| '''Requires''': core.lib, database created&lt;br /&gt;
&lt;br /&gt;
'''Required by''': compile.* &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| trl.lib&lt;br /&gt;
| Compiles and generates a .jar file from the src-trl project. Which is needed by the translate task. This project allows to translate to different languages manual windows.&lt;br /&gt;
| '''Requires''': core.lib&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Build tasks ===&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Task&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Description&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Notes&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Sub Tasks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| smartbuild&lt;br /&gt;
| Makes an incremental build of the application. Including:&lt;br /&gt;
* update.database&lt;br /&gt;
* compile&lt;br /&gt;
* deploy&lt;br /&gt;
&lt;br /&gt;
All these tasks are done only if needed.&lt;br /&gt;
| '''Requires''': &lt;br /&gt;
Database must be created and populated with data.&lt;br /&gt;
&lt;br /&gt;
'''Properties''':&lt;br /&gt;
* '''local:''' (default to yes) when this property is set to no ''update.database'' task is executed, otherwise it is not executed.&lt;br /&gt;
* '''tr:''' (default to yes) if set to no, translation process is not executed.&lt;br /&gt;
* '''force:''' (default to no) used with local=no. If set to yes it will overwrite the changes in the database with the XML information. Note: All un-exported changes will be lost.&lt;br /&gt;
* '''wad.generateAllClassic250Windows:''' (default to false) when it is true, it forces WAD to generate code for all 2.50 style windows.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| generate.entities&lt;br /&gt;
| Generates the Java files for src-gen directory, and compiles them. They are used by DAL to access to the database information.&lt;br /&gt;
| '''Requires''': &lt;br /&gt;
Database must be created and populated with data.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| install.source&lt;br /&gt;
| Installs the whole application: creates the database, compiles it and generates a war file to be deployed or copies the classes to Tomcat's directory (depending on the deploy.mode property set in Openbravo.properties).&lt;br /&gt;
| '''Calls''': &lt;br /&gt;
create.database, core.lib, wad.lib, trl.lib, compile.complete.deploy, applyModule&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| compile&lt;br /&gt;
| Generates Java classes for the WAD windows that are required, this is, the ones that contain processes with standard UI implemented within 2.50 windows or windows compatible only with 2.50 but not with 3.0; the rest of windows are not generated unless they are forced through &amp;lt;code&amp;gt;wad.generateAllClassic250Windows&amp;lt;/code&amp;gt; property.Generates Java classes from modified xsql files, compiles all modified classes (including the generated ones), makes insertions in translation tables for non-existing entries for the manual UI files and copies everything to WebContent directory.&lt;br /&gt;
| '''Requires''':&lt;br /&gt;
wad.lib, trl.lib, database created and populated.&lt;br /&gt;
&lt;br /&gt;
'''Calls''': &lt;br /&gt;
translate&lt;br /&gt;
&lt;br /&gt;
'''Properties''': &lt;br /&gt;
&lt;br /&gt;
* '''tab''': specifies the window name(s) to be generated, to specify more than one window add them as a list of comma separated values. Note that even window is specified by this property, its 2.50 code will not be generated unless it is required or forced.&lt;br /&gt;
* '''tr''': if set to &amp;quot;no&amp;quot; it will not call the translation process.&lt;br /&gt;
* '''module''': a list of comma separated javapackages of modules to generate just the windows containing objects for those modules.&lt;br /&gt;
* '''wad.generateAllClassic250Windows:''' (default to false) when it is true, it forces WAD to generate code for all 2.50 style windows.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
* compile.src: it does the same as compile but without generating WAD windows.&lt;br /&gt;
* compile.development: it also copies the files to the tomcat's context.&lt;br /&gt;
* compile.complete: It does the same as compile but before removes all the generated and built files, so the whole application is built. Note do not use tab or module properties because the application will be partially rebuilt.&lt;br /&gt;
* compile.complete.development: The same as compile.complete but after the process copies all the generated classes to the tomcat's context.&lt;br /&gt;
* compile.deploy: The same as compile or compile.development, depending on how the deploy.mode property in the Openbravo.properties file is set.&lt;br /&gt;
* compile.complete.deploy: The same as a compile.complete or compile.complete.development, depending on how the deploy.mode property in the Openbravo.properties file is set.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| translate&lt;br /&gt;
| Checks in the manual windows User Interface files the translateable elements that have not been yet registered and registers them, this is necessary to be able to translate those interfaces to different languages.&lt;br /&gt;
| '''Requires''': &lt;br /&gt;
trl.lib&lt;br /&gt;
&lt;br /&gt;
'''Called by: '''&lt;br /&gt;
This task is called by the compile.* tasks in case the tr property is not set to &amp;quot;no&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| war&lt;br /&gt;
| Generates a war file from the existing built code. In fact it only zips the application in a single war file.&lt;br /&gt;
| '''Requires: '''&lt;br /&gt;
compile.*: the application must be built before calling this task.&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| deploy.context&lt;br /&gt;
| Deploy the existing war file in the tomcat context using the tomcat manager.&lt;br /&gt;
| '''Requires: '''&lt;br /&gt;
&lt;br /&gt;
* war file must be created.&lt;br /&gt;
* Tomcat manager must be running&lt;br /&gt;
* These properties must be properly set in the Openbravo.properties file:&lt;br /&gt;
** tomcat.manager.url&lt;br /&gt;
** tomcat.manager.username&lt;br /&gt;
** tomcat.manager.password&lt;br /&gt;
| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Database tasks ===&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Task&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Description&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Notes&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Sub Tasks&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| update.database&lt;br /&gt;
| Synchronizes database with the current database xml files. By default it checks that no changes in application dictionary in database are done, if so the process stops.&lt;br /&gt;
| '''Properties:'''&lt;br /&gt;
&lt;br /&gt;
* force: (default as false) Do not check for database modification and update directly. This can cause lose of database data.&lt;br /&gt;
|&lt;br /&gt;
* update.database.script: It is the same as ''update.database.structure'' but does not modify the database. It only generates a sql script file with the statements that would be executed by the other tasks.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| create.database&lt;br /&gt;
| Creates the database from the xml files, note that the database is first removed.&lt;br /&gt;
&lt;br /&gt;
If the ''apply.on.create'' property is set, masterdata and sampledata will be inserted in the database. If not, only sourcedata will be inserted.&lt;br /&gt;
| '''Properties:'''&lt;br /&gt;
&lt;br /&gt;
* apply.on.create: If is set to &amp;quot;true&amp;quot; and there are modules they will be applied, otherwise they will be set as &amp;quot;In process&amp;quot; status.&lt;br /&gt;
| &lt;br /&gt;
* create.database.script: The same as ''create.database.structure'' but does not affect the database it only generates the sql script file with all the statements that would be executed by the other tasks.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| export.database&lt;br /&gt;
| Synchronizes xml files with the database current contents. By default they are only exported in case there are modifications in the database. In addition performs database validations for the modules which are exported.&lt;br /&gt;
| '''Properties:'''&lt;br /&gt;
&lt;br /&gt;
* force: (default to false) Forces the export skipping the check of which files had been modified since last update.database&lt;br /&gt;
* validate.model: (default to true) Checks the model that is being exported fulfills a series of rules related to modularity, oracle-postgreSQL compatibility, etc. In case any of these rules is not complied, export will not be done and an error message will be raisen.&lt;br /&gt;
|  &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{AvailableFrom|3.0PR17Q2}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;update.database&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;export.database&amp;lt;/code&amp;gt; tasks support multi-thread parallel execution for some of their actions such as index creation or function standardization. By default, the number of threads used is calculated as the half of the available number of cores in the machine where the task is executed. This value can be set by adding the &amp;lt;code&amp;gt;-Dmax.threads=''numOfThreads''&amp;lt;/code&amp;gt; parameter&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Task&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Description&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
| package.module&lt;br /&gt;
| Validates the module and if no errors are found generates the obx file for the module.&lt;br /&gt;
| '''Properties'''&lt;br /&gt;
* module: Java package for the module to extract.&lt;br /&gt;
* obx.export.RD: If set to true the reference data is exported for the modules (if it has), by default is false.&lt;br /&gt;
* obx.export.DB: If set to true the database is exported for the modules, by default is false.&lt;br /&gt;
* obx.export.CS: If set to true the configuration script is exported (in case there is an active template), by default is false.&lt;br /&gt;
* obx.export.validate: (from 3.0MP20) Validates module before exporting, by default is true.&lt;br /&gt;
* obx.export.allDeps: (from 3.0MP20) Includes in the obx all dependencies (recursively) of the module being exported (not only inclusions), in this way it is possible to create an umbrella module on top of all installed modules in the instance, that when it is exported, contains all the sources in the instance, being in this way much simpler to promote this code from testing to production environments. By default it is false.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| export.config.script&lt;br /&gt;
| Generates the configuration script for the current active template (if any). More information about Industry Templates and configuration scripts can be found [http://wiki.openbravo.com/wiki/ERP/2.50/Developers_Guide/How_To_Create_a_Configuration_Script here]&lt;br /&gt;
| '''Note:''' export.database must be executed before running this process&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| check.module.consistency&lt;br /&gt;
| Checks the locally installed modules satisfy all their dependencies, this is, the instance is consistent. In case there are modules that define dependencies that are not installed a message is shown indicating which is the module and which dependency is not satisfied.&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Test Tasks ===&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Task&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| run.tests&lt;br /&gt;
| The default, it runs the suite: ''org.openbravo.test.AntTaskTests''. These tests are side effect free and can be run multiple times, after the run the database should be in the same state as before.&lt;br /&gt;
|-&lt;br /&gt;
| run.quick.tests&lt;br /&gt;
| This task runs test cases which are fast and which test the most important parts of the system. It runs the test suite: ''org.openbravo.test.AllQuickAntTaskTests''.&lt;br /&gt;
|-&lt;br /&gt;
| run.all.tests&lt;br /&gt;
| Runs the suite ''org.openbravo.test.AllAntTaskTests''. This suite contains all the test cases, also tests which can change the database. &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Other Tasks ===&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Task&lt;br /&gt;
| class=&amp;quot;tittle&amp;quot; | Description&lt;br /&gt;
|-&lt;br /&gt;
| migrate.attachments&lt;br /&gt;
| Migrates the attachments to the new attachment model. For more information on the new attachment model refer [http://wiki.openbravo.com/wiki/Attachments here].&lt;br /&gt;
|-&lt;br /&gt;
| host.name&lt;br /&gt;
| Prints local host name, to be used to create an instance &amp;lt;code&amp;gt;Openbravo.properties&amp;lt;/code&amp;gt; to [[Openbravo.properties#Overriding_properties_per_instance|override common properties]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Concepts]]&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
</feed>