Folder Structure
A basic solution folder structure mainly consist of the following folders mentioned below. The structure is as follows:
.
├── acme
│ ├── etc
│ ├── jupyter
│ ├── lib
│ ├── python
│ └── web
├── drive
│ ├── bin
│ ├── doc
│ ├── etc
│ ├── include
│ ├── lib
│ └── python
├── external
│ ├── apache-tomcat-9.0.86
│ ├── boost-1.84.0-python-3.11.9
│ ├── gcc-8.2.0
│ ├── kafka_2.12-3.7.0
│ ├── pyenv-3.11.9
│ ├── redis-5.0.5
│ └── server-jre-1.8.0_202
├── HCLDetectv12.1.8-LICENSE.txt
└── HCLDetectv12.1.8-NOTICE.txt
Let's go through each folder and understand the contents within it.
acme folderThe
acme folder is solution folder, which mainly contains the
information specific to the customer code.
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, executable 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 connectors, 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.