Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

CPS uses very few environment variables which are defined from the OOM charts and they are being used in Application.yml. like:

  • CPS_USERNAME : username Username for basic authorization of CPS Rest APIs which is set to cpsuser.
  • CPS_PASSWORD : Password for cps Rest APIs which is auto generated.
  • DB_USERNAME : Username for the postgres DB which is set to cpsto cps.
  • DB_PASSWORD : Username for the postgres DB which is auto generated.

Java System Properties

Maven exposes all properties from java.lang.System. Anything you can retrieve from System.getProperty() can be referenced as a Maven property and could be used anywhere in the pom.xml. Since these properties would be mostly related to the entire application, it is suggested to define them in parent pom.xml.

...

In addition to the implicit properties provided by the POM, Maven Settings, environment variables, and the Java System properties, you have the ability to define your own arbitrary properties. Properties can be defined in a POM or in a Profile. Period character should be used as a separator in property names. 

  • Common dependencies to be used by the entire application should be defined as properties in cps-dependencies pom.xml
    • Eg: groovy.version, spock-spring.version
  • Other common properties to be used by the entire application should be defined as properties in cps-parent pom.xml.
    • Eg: spring-boot-maven-plugin.version,
    spotbugs
    • java.version,
    swagger-codegen-maven-plugin.version
    • minimum-coverage, base.image
  • Each module can specify the properties which is exclusively used by the module. In case a module needs to override a property defined in the cps-parent pom.xml, that could also be done in the properties section. 
  • In case a property is only used in a particular profile, then it is advised to define the property inside the profile. In case a profile needs to override a property defined in the pom, that could also be done in the profile's properties section.
    • Eg: CPS has different profiles namely cps-docker, ncmp-docker and cps-ncmp-docker for building different docker images. A property image.name  could be defined in each profile.