Provided by:
erlang-manpages_10.b.7-1_all 
NAME
app - Application resource file.
DESCRIPTION
The application resource file specifies the resources an application
uses, and how the application is started. There must always be one
application resource file for each application in the system.
This file is read by the application controller when an application is
loaded. It is also used by the functions in systools when generating
start scripts etc.
FILE SYNTAX
The application resource file should be called Application.app where
Application is the name of the application. The file should be located
in the ebin directory for the application.
The .app file contains one single Erlang term, which is called an
application specification. The file has the following syntax:
{application, Application,
[{description, Description},
{id, Id},
{vsn, Vsn},
{modules, [Module1, .., ModuleN]},
{maxP, MaxP},
{maxT, MaxT},
{registered, [Name1, .., NameN]},
{included_applications, [Appl1, .., ApplN]},
{applications, [Appl1, .., ApplN]},
{env, [{Par1, Val1}, .., {ParN, ValN}]},
{mod, {Module, StartArgs}},
{start_phases, [{Phase1, PhaseArgs1}, .., {PhaseN, PhaseArgsN}]}]}.
Application = atom() is the name of the application.
For the application controller, all keys are optional. The respective
default values are used for any omitted keys.
The functions in systools require more information. If they are used,
the following keys are mandatory: description, vsn, modules, registered
and applications. The other keys are ignored by systools.
* {description, Description}
Description = string() is a textual description of the
application. Defaults to the empty string.
* {id, Id}
Id = string() is the product identification of the application.
Defaults to the empty string.
* {vsn, Vsn}
Vsn = string() is the version of the application. Defaults to the
empty string.
* {modules, Modules}
Modules = [atom()] is a list of all the modules introduced by this
application. systools uses this list when generating start scripts
and tar files. A module can only be defined in one application.
Defaults to the empty list.
It is also allowed to list a module as {Module, Vsn}, where Vsn =
term(). This has no practical implication, however, as there is no
check that Vsn is the same value as the vsn attribute of the
module. The format is retained for backwards compatibility only.
* {maxP, MaxP}
Deprecated - will be ignored
MaxP = int() | infinity is the maximum number of processes allowed
in the application. Defaults to infinity.
* {maxT, MaxT}
MaxT = int() | infinity is the maximum time in milliseconds that
the application is allowed to run. After the specified time the
application will automatically terminate. Defaults to infinity.
* {registered, Registered}
Registered = [atom()] is a list of all the names of registered
processes started in this application. systools uses this list to
detect name clashes between different applications. Defaults to the
empty list.
* {included_applications, Applications}
Applications = [atom()] is a list of all the names of applications
which are included by this application. When this application is
started, all included application will automatically be loaded, but
not started, by the application controller. Processes implemented
in an included application should be placed underneath a supervisor
in the primary application. Defaults to the empty list.
* {applications, Applications}
Applications = [atom()] is a list of all the names of applications
which must be started before this application is started. systools
uses this list to generate correct start scripts. Defaults to the
empty list, but note that all applications have dependencies to (at
least) kernel and stdlib.
* {env, Env}
Env = [{Par, Val}], where Par = atom() and Val = term(), is a list
of configuration parameters used by the application. The value of a
configuration parameter is retrieved by calling
application:get_env/1, 2. The values in the application resource
file can be overridden by values in a configuration file (see
config(4)) or by command line flags (see erl(1)). Defaults to the
empty list.
* {mod, Mod}
Mod = {Module, StartArgs}, where Module = atom() and StartArgs =
term(), specifies the application callback module and the start
argument, see application(3).
The mod key is mandatory for applications implemented as
supervision trees, but should be omitted for applications which are
code libraries, such as the application STDLIB.
* {start_phases, StartPhases}
StartPhases = [{Phase, PhaseArgs}], where Phase = atom() and
PhaseArgs = term(), is a list of start phases and the attached
start arguments for the application. After starting the
application, the application master will evaluate the function
Mod:start_phase(Phase, Type, PhaseArgs) for each defined start
phase, where Mod is the callback module as defined by mod key. This
extended start procedure is intended for synchronized startup of
included applications, refer to the chapter about OTP Design
Principles for more information. Defaults to undefined.
SEE ALSO
application(3), systools(3)
AUTHORS
Martin Björklund - support@erlang.ericsson.se
Gunilla Arendt - support@erlang.ericsson.se