Understanding the Code Structure

End-user search interface for Haven OnDemand and Micro Focus IDOL


Tools

  • Maven is used for Java compilation and constructing the .war files
  • webpack bundles the frontend’s JavaScript and CSS, run automatically as part of the Maven compile phase (see idol/webpack.config.js).
  • NPM is used to manage frontend dependencies (i.e. JavaScript libraries, mostly).

Maven Modules

Find consists of three modules:

  • core contains the core application components. When built, it creates a jar file that is imported by the idol module.
  • idol contains the IDOL-specific code. When built, it creates an executable war file for running against IDOL.
  • on-prem-dist is responsible for packaging the IDOL artifacts into a zip file for distribution.

Maven Profiles

By default, mvn install runs webpack in development mode. Running with the production profile builds webpack in production mode, which minifies the JavaScript and CSS.