General Formatting Conventions

The Open For Business projects follows the Sun coding standards for Java source code.
For information regarding this standard please visit http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

In accordance with this standard we use 4 space indention rather than tabs, and set the tab size to 8 spaces to make code with tabs easier to pick out. Make sure no code contains tab characters.
For XML/HTML/FTL files we follow the standard XML/HTML/FTL format (TODO: add link to a reference here); as well as use 4 space indention rather than tabs (note some HTML/FTL files may use 2 spaces instead of 4, but they should all really use 4 spaces).

HTML code should be XHTML compliant.

BSH files should follow the same convention as Java files.

Entity Definitions

Entity Names

Entities are named in accordance with the Java naming conventions for classes (e.g. ExampleEntity).
The physical database names are generated by the system by applying the Java naming convention of constants to the entity names (e.g. ExampleEntity => EXAMPLE_ENTITY).
Important: database table names should never be longer than 30 characters, so you have to keep this in mind when you define a new entity name.
For example: the entity name "AnExampleOfALongEntityName" (that is is 26 characters long) is transformed into the database table name AN_EXAMPLE_OF_A_LONG_ENTITY_NAME, that is 32 characters long and exceeds the maximum length of 30 characters and so it is not a good choice.

Entity Field Names

Entity fields are named in accordance with the Java naming conventions for fields (e.g. exampleField).
TODO: pk/fk names (including maximum length)
 

TODO: view-entity names and conventions 

Service Definitions

Best Practices

Apache OFBiz Best Practices Guide

License Headers

Each and every source file should contain the ASL2.0 header:

http://svn.ofbiz.org/svn/ofbiz/trunk/APACHE2_HEADER

Adding author information to source files (.e.g. using the @author tag) is a discouraged practice: clearer information about the contributors of a file should be derived from the commit logs.

Naming Conventions for Artifacts and controller entries

TODO: controller's request and view naming conventions

TODO: conventions for screen names (top-level screens, included screens, decorators)

TODO: conventions for form names 

TODO: conventions for menu names

TODO: conventions for artifacts names such as ftl templates and bsh scripts