Project is a collection of modules and additional information (pictures, report design files, etc.) that fully describe the functionality of the information system being created.
Projects, like modules, can depend on each other. A project graph should "include" a module graph. That is, if module
A depends on module
B, then module
A project should depend on module
Also, as a rule, assembly automation and versioning are supported for projects (for example, assembling a single executable file with all dependencies).
From a technical standpoint, a project is nothing more than a set of files, so project support is not directly a part of the platform. It is assumed that external tools are used for this, from simple built-in IDEs to complex multi-purpose frameworks (such as Maven).
By default, at startup the platform searches for all files with the lsf extension in the classpath of the application server being started, and considers them loaded modules. Modules are loaded in the order of their dependencies, so if
A depends on
C, then by default
B is initialized first, then
C, and only then
The above behavior can however be changed using the appropriate lsFusion application server startup parameters:
logics.excludePaths- the paths (relative to the classpath) in which the platform will look for LSF files. When specifying these parameters you can use paths to specific files (for example,
A/B/C.lsf) as well as path templates (for example,
A/*- all LSF files in folder
Aand all its subfolders). In addition, in these parameters you can specify several paths/path patterns at once, separated by semicolons - for example,
A.lsf; dirB/*. The name of a JAR file in the path is ignored (that is, a file in
b.jar/C/x.lsfis considered to have the path
C/x.lsf). By default,
includePathsis equal to
*(that is, all files), and
logics.topModule- the name of the top module. If this parameter is specified (not empty), not all LSF files will be loaded, but only the specified module and all its dependencies. By default, this parameter is considered not specified (empty).
logics.orderDependencies- redefinition of the order of dependencies (set as module names separated by commas). Thus, if
C, and this parameter contains
Cwill be initialized before
B. By default, this parameter is considered not specified (empty); that is, the
REQUIREorder is used in the LSF files themselves.
Regardless of the parameters described above, the platform always automatically loads the following system modules: