<?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_Project_Structure</id>
	<title>Development Project Structure - 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_Project_Structure"/>
	<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=Development_Project_Structure&amp;action=history"/>
	<updated>2026-04-06T23:23:27Z</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_Project_Structure&amp;diff=2774&amp;oldid=prev</id>
		<title>Wikiadmin: Created page with &quot;== Introduction ==  This document describes the structure of an Openbravo ERP development project. Openbravo ERP has a tree directory structure that logically divides differen...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.infinite-erp.co.id/index.php?title=Development_Project_Structure&amp;diff=2774&amp;oldid=prev"/>
		<updated>2021-12-16T03:20:03Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Introduction ==  This document describes the structure of an Openbravo ERP development project. Openbravo ERP has a tree directory structure that logically divides differen...&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;
&lt;br /&gt;
This document describes the structure of an Openbravo ERP development project. Openbravo ERP has a tree directory structure that logically divides different core components (XmlEngine, SQLC, HttpBaseServlet) and WAD (Wizard for Application Dictionary) from the ERP itself (forms, reports, call-outs, combos, processes and so on).&lt;br /&gt;
&lt;br /&gt;
== Project Structure ==&lt;br /&gt;
&lt;br /&gt;
The following image provides a snapshot of the Openbravo ERP development project structure. &lt;br /&gt;
&lt;br /&gt;
  openbravo  &lt;br /&gt;
    |-build&lt;br /&gt;
    |-config&lt;br /&gt;
    |-docs&lt;br /&gt;
    |-legal&lt;br /&gt;
    |-lib&lt;br /&gt;
    |-modules&lt;br /&gt;
    |-referencedata&lt;br /&gt;
    |-src&lt;br /&gt;
    |-src-core&lt;br /&gt;
    |-src-db&lt;br /&gt;
    |-src-gen&lt;br /&gt;
    |-src-test&lt;br /&gt;
    |-src-trl&lt;br /&gt;
    |-src-util&lt;br /&gt;
    |-src-wad&lt;br /&gt;
    |-srcAD&lt;br /&gt;
    |-temp&lt;br /&gt;
    |-web&lt;br /&gt;
    |-WebContent&lt;br /&gt;
&lt;br /&gt;
=== build ===&lt;br /&gt;
&lt;br /&gt;
The '''build''' directory contains the ''classes'' sub-folder where all of the compiled Java classes are copied to after executing the ant compilation build tasks . Also, the Java source code that is generated from the applications '''*.xsql''' files during the '''sqlc''' phase of the project build is written to the ''javasqlc'' sub-folder.&lt;br /&gt;
&lt;br /&gt;
   |-build&lt;br /&gt;
      |-classes&lt;br /&gt;
         |-org&lt;br /&gt;
            ...&lt;br /&gt;
      |-javasqlc&lt;br /&gt;
         |-src&lt;br /&gt;
         |-srcAD&lt;br /&gt;
&lt;br /&gt;
=== config ===&lt;br /&gt;
&lt;br /&gt;
The '''config''' directory contains the Openbravo ERP configuration files. The config directory is where the setup script is downloaded to and executed from. Other configuration files in the config directory include the application properties file, Openbravo.properties, which is generated after running the setup process, and logging and scheduling properties files (log4j.lcf and quartz.properties).&lt;br /&gt;
In this folder there are several .template files (Openbravo.properties.template, Format.xml.template, log4j.lcf.template, ...), which need to have their corresponding files ([[Openbravo.properties|Openbravo.properties]], [[Format.xml|Format.xml]], ...) for Openbravo to work correctly.&lt;br /&gt;
&lt;br /&gt;
   |-config&lt;br /&gt;
      |-log4j.lcf&lt;br /&gt;
      |-Openbravo.properties&lt;br /&gt;
      |-quartz.properties&lt;br /&gt;
      |-...&lt;br /&gt;
&lt;br /&gt;
{{(!)| Starting from '''PR19Q1''' log4j.lcf files have been replaced for log4j2's config files log4j2.xml, log4j2-web.xml and src-test/src/log4j2-test.xml}}&lt;br /&gt;
&lt;br /&gt;
=== docs ===&lt;br /&gt;
&lt;br /&gt;
The '''docs''' directory contains Openbravo's API documentation, which can be generated using the [http://java.sun.com/j2se/javadoc Javadoc] tool. This documentation can be generated by executing the command ''ant generate.java.doc''&lt;br /&gt;
&lt;br /&gt;
=== legal ===&lt;br /&gt;
&lt;br /&gt;
The '''legal''' directory contains a collection of licenses for the various libraries that Openbravo ERP utilizes.&lt;br /&gt;
&lt;br /&gt;
=== lib ===&lt;br /&gt;
&lt;br /&gt;
The '''lib''' directory contains all of the Java jar libraries used throughout the application. It is split into build and runtime, '''build''' containing the libraries used during compilation of Openbravo ERP, and '''runtime''' containing the jar files that are used during the application's execution.&lt;br /&gt;
&lt;br /&gt;
  |-lib&lt;br /&gt;
     |-build&lt;br /&gt;
     |-runtime&lt;br /&gt;
&lt;br /&gt;
=== modules ===&lt;br /&gt;
&lt;br /&gt;
The '''modules''' directory is where any modules that you may have installed or developed are located. Each module has a top level directory named according to the Java package specified in its module description, and then below, a similar layout to the core development structure, which is in itself a module. When developing a module in the application dictionary, when the module is exported, it will be exported here to the modules directory.&lt;br /&gt;
&lt;br /&gt;
  |-modules&lt;br /&gt;
     |-org.openbravo.examples.helloworld&lt;br /&gt;
        |-src&lt;br /&gt;
           ...&lt;br /&gt;
        |-src-db&lt;br /&gt;
           |-database&lt;br /&gt;
              |-model&lt;br /&gt;
              |-sourcedata&lt;br /&gt;
        |-web&lt;br /&gt;
            ...&lt;br /&gt;
        |-lib&lt;br /&gt;
          |-runtime&lt;br /&gt;
          |-build&lt;br /&gt;
&lt;br /&gt;
Above is the structure of a sample module.&lt;br /&gt;
&lt;br /&gt;
In Openbravo 3, there are several modules inside the modules/ folder which are now part of the standard distribution.&lt;br /&gt;
&lt;br /&gt;
=== referencedata ===&lt;br /&gt;
&lt;br /&gt;
The '''referencedata''' directory contains implementation specific reference data such as accounting structures, reports, product lists or price lists etc. Reference data modules are a convenient way to load reference data into Openbravo ERP. More information about this can be found [[Datasets|here]]&lt;br /&gt;
 &lt;br /&gt;
   referencedata&lt;br /&gt;
      |-sampledata&lt;br /&gt;
      |-standard&lt;br /&gt;
&lt;br /&gt;
=== src ===&lt;br /&gt;
&lt;br /&gt;
The '''src''' directory is the top level directory of the main source code base for the Openbravo ERP project. It contains the source code for all of the components that make up the core Openbravo classic web application windows, and also services, including forms, reports, call-outs, combos, Data Access Layer (DAL), processes, manual windows, xsql and HTML files, reports etc.&lt;br /&gt;
&lt;br /&gt;
   |-src&lt;br /&gt;
      |-org&lt;br /&gt;
         |-openbravo&lt;br /&gt;
            |-authentication&lt;br /&gt;
            |-base&lt;br /&gt;
            |-dal&lt;br /&gt;
            |-erpCommon&lt;br /&gt;
               |-ad_actionButton&lt;br /&gt;
               |-ad_callouts&lt;br /&gt;
               ...&lt;br /&gt;
               |-ad_reports&lt;br /&gt;
            |-erpReports&lt;br /&gt;
            |-scheduling&lt;br /&gt;
            |-services&lt;br /&gt;
&lt;br /&gt;
The ad_ prefix (in erpCommon folders/packages) denotes Application Dictionary. The directory name endings are pretty much self-explanatory. The difference between ad_reports and erpReports lays in the way we access a report within the application. If it's accessible directly through the menu, then it should be in ad_reports. On the other hand some windows (Invoices, orders, etc.) have a Print icon in the toolbar, which generates a report. These reports should be stored in erpReports.&lt;br /&gt;
&lt;br /&gt;
=== src-core ===&lt;br /&gt;
&lt;br /&gt;
The '''src-core''' directory contains the source code of the core components:  XmlEngine (View),  [[ERP_2.50:Developers_Guide/Concepts/SQLC|SQLC]] (Model),  HttpBaseServlet (Controller) and ConnectionPool.&lt;br /&gt;
&lt;br /&gt;
   |-src-core&lt;br /&gt;
      |-src&lt;br /&gt;
         |-org&lt;br /&gt;
            |-openbravo&lt;br /&gt;
               |-base&lt;br /&gt;
                  ...&lt;br /&gt;
                  |-HttpBaseServlet.java&lt;br /&gt;
                  |-HttpBaseUtils.java&lt;br /&gt;
                  ...&lt;br /&gt;
               |-data&lt;br /&gt;
                  |-Sqlc.java&lt;br /&gt;
               |-database&lt;br /&gt;
               |-exception&lt;br /&gt;
               |-utils&lt;br /&gt;
               |-xmlEngine&lt;br /&gt;
&lt;br /&gt;
=== src-db ===&lt;br /&gt;
&lt;br /&gt;
The '''src-db''' directory contains the dbsourcemanager library. It also contains the '''database''' directory which is where all of the model data (structure: tables, constraints, procedures and triggers), sample data (Openbravo ERP data such as products, business partners and so on) and source data (windows and tabs metadata) in plain *.xml files are located.&lt;br /&gt;
   &lt;br /&gt;
   |-src-db&lt;br /&gt;
      |-build&lt;br /&gt;
      |-database&lt;br /&gt;
         |-lib&lt;br /&gt;
             |-dbsourcemanager.jar&lt;br /&gt;
         |-model&lt;br /&gt;
         |-sourcedata&lt;br /&gt;
&lt;br /&gt;
=== src-util ===&lt;br /&gt;
The src-util folder contains the diagnostics tool, the buildvalidations, and the modulescripts.&lt;br /&gt;
The '''diagnostic''' directory contains the code/tool to execute a diagnostic test on your configuration and report any problems or items you have not configured correctly. The diagnostic tool is executed using the ''ant diagnostic'' task from the root openbravo directory.&lt;br /&gt;
You can find more information about what build validations and modulescripts are, and how to create one, [[How_to_create_build_validations_and_module_scripts|here]].&lt;br /&gt;
&lt;br /&gt;
  src-util&lt;br /&gt;
    |-buildvalidation&lt;br /&gt;
    |-diagnostics&lt;br /&gt;
      |-build&lt;br /&gt;
      |-config&lt;br /&gt;
      |-src&lt;br /&gt;
      |-WebContent&lt;br /&gt;
    |-modulescript&lt;br /&gt;
&lt;br /&gt;
=== src-gen ===&lt;br /&gt;
&lt;br /&gt;
The '''src-gen''' directory contains the DAL model objects generated from the Openbravo model (tables, columns, references etc.) the during the ant generate.entities task.&lt;br /&gt;
&lt;br /&gt;
   src-gen&lt;br /&gt;
      |-org&lt;br /&gt;
         |-openbravo&lt;br /&gt;
            |-model&lt;br /&gt;
&lt;br /&gt;
=== '''src-test''' ===&lt;br /&gt;
&lt;br /&gt;
The '''src-test''' directory contains the test source code, such as JUnit test and suites.&lt;br /&gt;
 &lt;br /&gt;
   src-test&lt;br /&gt;
      |-src&lt;br /&gt;
        |-org&lt;br /&gt;
          |-openbravo&lt;br /&gt;
            |-test&lt;br /&gt;
               |-ant&lt;br /&gt;
               |-base&lt;br /&gt;
               |-dal&lt;br /&gt;
               |-expression&lt;br /&gt;
               ...&lt;br /&gt;
&lt;br /&gt;
=== src-trl ===&lt;br /&gt;
&lt;br /&gt;
The '''src-trl''' directory contains the source code of the code which generates entries in the database for every translatable string in html, jrxml, fo and srpt files.&lt;br /&gt;
&lt;br /&gt;
   |-src-trl&lt;br /&gt;
      |-src&lt;br /&gt;
         |-org&lt;br /&gt;
            |-openbravo&lt;br /&gt;
               |-translate&lt;br /&gt;
&lt;br /&gt;
=== src-wad ===&lt;br /&gt;
&lt;br /&gt;
The '''src-wad''' directory contains the source code of WAD (Wizard for Application Dictionary), which is used to generate classic window files from Application Dictionary window definition information.&lt;br /&gt;
&lt;br /&gt;
   |-src-wad&lt;br /&gt;
      |-src&lt;br /&gt;
         |-org&lt;br /&gt;
            |-openbravo&lt;br /&gt;
               |-wad&lt;br /&gt;
&lt;br /&gt;
=== srcAD ===&lt;br /&gt;
&lt;br /&gt;
The '''srcAD''' directory contains all of the automatically generated code from the Application Dictionary.&lt;br /&gt;
&lt;br /&gt;
=== temp ===&lt;br /&gt;
&lt;br /&gt;
Temporary folder containing files which are not committed to Mercurial. It is created only when needed, for example, when obx files are downloaded from the Central Repository.&lt;br /&gt;
&lt;br /&gt;
=== web ===&lt;br /&gt;
&lt;br /&gt;
The '''web''' directory contains all of the web resources such as cascading style sheets (CSS), Javascript code, images and pop-up windows. &lt;br /&gt;
&lt;br /&gt;
  web&lt;br /&gt;
   |-images&lt;br /&gt;
   |-js&lt;br /&gt;
   |-popups&lt;br /&gt;
   |-skins&lt;br /&gt;
&lt;br /&gt;
=== WebContent ===&lt;br /&gt;
&lt;br /&gt;
Is the web output folder for Eclipse, the output folder defines the webapp used by the Eclipse Tomcat integration. Contains WEB-INF (with web.xml and other important files) and META-INF.&lt;br /&gt;
&lt;br /&gt;
[[Category:Concepts]]&lt;/div&gt;</summary>
		<author><name>Wikiadmin</name></author>
		
	</entry>
</feed>