Folder Structure¶
A basic solution folder structure mainly consist of the following folders mentioned below. Taking goliath solution as an example here. The structure is as follows:
$ tree -L 1 /home/user/stash/goliath/
/home/user/stash/goliath/
├── bld
├── dev_env_bootstrapper
├── drive -> /home/user/unscrambl/software/package_cache/rhel07/drive-2.3.0/drive
├── etc
├── infra -> /home/user/unscrambl/software/package_cache/rhel07/infra-3.5.3
├── Makefile -> dev_env_bootstrapper/Makefile
├── pom.xml
├── src
└── test
Let’s go through each folder and understand the contents within it.
bld
folder¶
The bld
folder mainly contains the generated or compiled code. It also contains the installation files which one
would find in an installer tarball. The structure is as follows:
$ tree -L 1 /home/user/stash/goliath/bld/
/home/user/stash/goliath/bld/
├── current_arch -> /home/user/stash/goliath/bld/rhel07
├── external_dependencies -> /home/user/unscrambl/goliath/1.0.0/rhel07
└── rhel07
Based on your running operation system (rhel07
/ rhel08
) a folder would be created. Some of the important paths are:
UNSCRAMBL_HOME
= /home/user/stash/goliath/bld/rhel07/install/goliath/drive/
This folder contains the compiled code, executables and configuration files for the product qbo Decisions.
UNSCRAMBL_INSTANCE_HOME
= /home/user/stash/goliath/bld/rhel07/instance_home/goliath
This folder contains the runtime generated files and logs. This also contains the flat files where NameService, Kafka, PinPoint and FastPast store their data.
Also, for feed applications which use files for input data, the default input file path would be here.
dev_env_bootstrapper
folder¶
This folder contains the scripts which sets up your bash environment, Python environment, environment variables and other environment settings required to build, develop and bring up the services.
This also contains a Makefile
which is referred when any make command is executed.
drive
folder¶
This folder contains the built product code which the solution would be referring to.
etc
folder¶
This folder contains solution based configuration files. This will explained in more detail in the
:ref:configuration <solution configuration>
section.
infra
folder¶
This folder contains the built infra code which the solution would be referring to. Infra contains some build related code, helper classes and methods and commonly used utilities such as database conectors, logger methods, etc.
Makefile
file¶
This is actually a symlink which points to a Makefile within the dev_env_bootstrapper
folder.
pom.xml
file¶
Parent pom file for the solution which is required as part of the Java build of the solution. This file would contain the Maven dependencies that the solution imports and build plugins required.
src
folder¶
Contains solution code for the feed applications and helper functions.
test
folder¶
Contains test code for running automated test on the solution’s feed applications.