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/HCL/software/package_cache/rhel07/drive-2.3.0/drive
├── etc
├── infra -> /home/user/HCL/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
folderThe
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/HCL/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:
HCL_HOME
= /home/user/stash/goliath/bld/rhel07/install/goliath/drive/
- This folder contains the compiled code, executables and configuration files for the product Detect.
HCL_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
folderThis 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
folderThis folder contains the built product code which the solution would be referring to.
etc
folderThis
folder contains solution based configuration files. This will explained in more
detail in the :ref:configuration<solutionconfiguration>
section.
infra
folderThis 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
fileThis
is actually a symlink which points to a Makefile within the
dev_env_bootstrapper
folder.
pom.xml
fileParent 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
folderContains solution code for the feed applications and helper functions.
test
folderContains test code for running automated test on the solution's feed applications.