Overview

Each module is responsible for providing a build.xml that describes how the module should be built and assembled. Each build.xml defines a set of targets:

compile - compiles the source code of the module
dist - creates a binary distribution of the module
doc - builds the javadoc for the module
clean - removes all files and directories generated by the module
update - updates the module with changes in the CVS repository (developers only)
commit - commits local changes to the CVS repository (developers only)

Enviroment dependencies are provided in build.properties, for each module, use build.properties.sample as a template if you need make local changes. Some of the properties used in build process:

lib_3pp - the location of third party libraries, ie scam_libs
lib - the location of module dependent SCAM libraries and the destination of each module distribution.
skip.dependencies - set this flag if the module dependencies are stable, ie dependent modules will not be built in the build process.
skip.repository - set this flag to exclude the the SCAM repository from build process, eg if the application will relay on a SCAM repository that is already deployed (only used by scamPortfolio).
manifest.classpath - value of the "Class-Path" atribute in the module distribution manifest, eg the META-INF/manifest.mf.
jndi.prefix - defines a prefix for the JNDI-name associated with a EJB, eg using unique prefix enables an application to have dedicated EJB's.
context - defines the context of the application, eg 'portfolio' for the SCAM Portfolio application.
ui.language.default - defines the default language used in the user interface of the application.
scam.repository.datasource - defines the JNDI-name associated with the datasource for the repository.
scam.repository.content.base - defines the root location for downloaded files.
scam.repository.temp.content.base - defines root location for temporary files
scam.repository.backup.base - defines the the root location for backupfiles.
scam.commandchain.file - defines the file containig command-chain definition.
scam.application.prefs.file - defines the file containing application preferences.
scam.views.file = defines the file containing view definitions.
scam.role.admin - defines the name of the admin role
scam.role.guest - defines the name of the guest role, a role associated with anonymous users.

Each module will by default build all dependent SCAM modules, the location of dependent modules is defined by properties (eg scamDrutten.home). The default is to have all modules in a flat organization.

            [some folder]
            |
            +-- scamController
            |
            +-- scamDrutten
            |
            +-- scamEditor
            |
            +-- scamPortfolio
            |
            +-- scamRepository
            |
            +-- scamTaglib
            |
            :
        

If you choose another organization strategy you have to define location of each module.

The scamPortfolio application can be built as a self-contained application (does not include JBoss though).

Note

The scamPortfolio application defines some of it's application settings in build.properties, this simplifies the process of building new enhanced applications based on scamPortfolio.