jCustomer 1.6.0

November 14, 2023

jCustomer 1.6.0

In case you are migrating to jCustomer-1.6.0 from a jCustomer version lower than 1.5.4, please consider also the step specific to migration to 1.5.4 in your migration procedure.

New Docker images

jCustomer 1.6.0 introduced enhanced support for Docker and overall jCustomer orchestration when using Docker. 

Environment variables

Unomi environment variables do not need to be prefixed with “unomi_env_var_” anymore, and the new image natively supports Unomi environment variables.

When migrating from an older image, simply remove the prefix.

  • Unomi 1.5.7 and below: unomi_env_var_UNOMI_ROOT_PASSWORD: karaf
  • Unomi 1.6.0 and above: UNOMI_ROOT_PASSWORD: karaf

GeoIP City and country databases

Previously, a token had to be passed using the “MAXMIND_KEY” environment variable, resulting in the database being downloaded from a URL hardcoded in the Docker image.

With the new image, this environment variable was replaced with a new one called: “JCUSTOMER_MAXMIND_GEOIP2_CITY_DATABASE_URL” which, when set, should point to the full database url.

This provides more flexibility into where the database can be downloaded from, in particular to support use cases in which this file is cached on your local servers.

If your token was previously: ABCD, you can use the following environment variable:
JCUSTOMER_MAXMIND_GEOIP2_CITY_DATABASE_URL: https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&license_key=ABCD&suffix=tar.gz

A similar approach was taken for the database of countries. it was previously downloaded from a fixed URL (http://download.geonames.org/export/dump/allCountries.zip) without possibility for customization.

With the new image, an environment variable can be provided:
JCUSTOMER_GEONAMES_ALL_COUNTRIES_ARCHIVE_URL: http://download.geonames.org/export/dump/allCountries.zip

Apache Unomi auto-start

With the new image, Apache Unomi starts by default when launching the container. Specifying unomi_env_var_KARAF_OPTS: "-Dunomi.autoStart=true" is not necessary anymore.

Waiting for Elasticsearch

Elasticsearch is required for Unomi to operate, and the Docker images (old and new) are waiting for Elasticsearch to be available before starting Unomi.

In the previous image, a maximum number of attempts (set to 120) was defined, with unomi being started after these 120 attempts.

In the new image, jCustomer will be waiting indefinitely.

Debug mode

Useful for development, a debug mode can be activated by setting the following environment variable: JCUSTOMER_DEBUG:'true'. Enabling debug mode appends -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 to JAVA_OPS.

Please refer to the jCustomer changelog notes and Unomi changelog note for the complete list of changes introduced in version 1.6.0

Changelog notes

New features and improvements

  • Introduced new Docker images (detailed above)
  • Added support for Unomi groovy actions (see Unomi documentation)
  • Allow jCustomer to start offline (without having to fetch external dependencies at runtime)

Libraries/dependencies upgrade

  • Updated karaf from 4.2.8 to 4.2.15
  • Updated cxf from 3.3.4 to 3.3.11
  • Updated cellar from 4.1.3 to 4.2.1

Please refer to Unomi 1.6.0 changelog for additional changes and features made available with jCustomer 1.6.0.