==============================
Project Development guidelines
==============================
Helium Antlib is a standalone project which is completely independent from Helium. Its only main requirements are:
* Ant 1.7.0
* JDK 1.6 or newer
The project is split in several sub-modules which cover specific features.
Anatomy of the project
======================
::
- build.xml
- bld.bat
- bld.sh
+ antlibs
Ant specific dependencies needed to execute ant properly
e.g: Java checkstyle, Code coverage tools
The jar in that folder will not be used as compilation dependencies
+ lib
Common dependencies between modules.
e.g: common logging, ...
+ doc
General documentation of the project
+ module1
+ module1
+ modulen...
Anatomy of a module
===================
A module contains a set of Ant feature related to a specific domain (e.g: Diamonds, SCM). The following diagram shows
the physical structure of a module.
::
+ <module_name>
- build.xml
- bld.bat
- bld.sh
+ lib
module specific jar dependencies
+ src
+ com
+ nokia
+ helium
+ <module_name>
+ ant
+ taskdefs
source of the Ant tasks
+ types
source of the Ant DataType
+ listener
source of the Ant Listener
+ condition
source of the Ant Conditions
+ tests
- build.xml
- bld.bat
- bld.sh
- test_xxx.ant.xml* - Unittest implemented using AntUnit
+ data
data used for the the unittests.
+ src
+ com
+ nokia
+ helium
+ <module_name>
+ tests
source of junit unittests.
General guidelines
==================
Distribution policy
-------------------
Each directory of the Antlib project must have a Distribution.policy.S60 file with the policy value 7 (see S60 guidelines).
External dependencies
---------------------
External dependencies added to the project must be in compliance with Nokia process and rules.
Source code license
-------------------
Each file added to the project should include the following license header.
::
/*
* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/
Documentation
-------------
All classes and methods must be documented. Ant facade classes (like Task or DataType)
must be Antdoclet documented (preferably with usage example).
You can find more information on how to document Ant task using the Antdoclet plugin on http://antdoclet.neuroning.com/.
Logging
-------
Developer must use standard Ant logging for any user log output.
Internal debug logging must be implemented using Log4J framework.
This is an example on how to use logging:
::
import org.apache.log4j.Logger;
class MyClass extends Task {
private static Logger log = Logger.getLogger(MyClass.class);
public void execute() {
log("Executing...");
log.debug("some useful debug information.");
}
}
Please find more information on Log4J from the online manual: http://logging.apache.org/log4j/1.2/manual.html.