Skip to content
Discussions/App Development/Canton startup scriptForum ↗

Canton startup script

App Development4 posts325 views2 likesLast activity Oct 2022
PI
Piotr_OstrowskiOP
Oct 2022

Hello,

I need to set up a custom Logback appender to ship my logs towards tools like Loki. To do that i’m using a custom Logback configuration file as suggested here.

Next step is to put the custom appender JAR on my classpath, and this is where i’m facing issues. Namely the bash script starting canton (canton/bin/canton) uses
java -jar canton.jar
so it’s not picking up --classpath/-cp options.

Is there another way to achieve that? Or if not, wouldn’t it be a good idea to change this script, so it uses
-cp $CLASSPATH:${PROG_HOME}/lib/canton.jar MainClass?
or another dedicated option? I’ve been able to achieve what i need with the above, but it’s obviously not a good solution as i need to mess around with canton files shipped with the whole package.

Thanks in advance!

BE
bernhard
Oct 2022

Hi @Piotr_Ostrowski , welcome to the Daml forums. You can set JVM options including classpath either through the JAVA_OPTS environment variable or the -D command line flag. See documentation here.

PI
Piotr_Ostrowski
Oct 2022

Hi @bernhard,

I’m aware of JAVA_OPTS env variable, but just as i described in my initial question - all of the classpath settings are ignored by java when you use -jar option. The JAR you’re specifying is supposed to be the the source of all of your classes. (Please refer to this documentation, -jar option description in particular).

Having all that in mind i changed the /canton/bin/canton script to use another way of running a JAR, that is actually able to pickup classpath settings. To make this possible, instead of using:
java -jar canton.jar
one should be using:
java -cp canton.jar MainClass
MainClass is obviously the one you’ll find in the canton.jar manifest. (e.g. com.digitalasset.canton.CantonEnterpriseApp for your canton-enterprise).

So my question still stands, wouldn’t it be a good idea to modify the startup script? Or is there something else that i’m missing? If so, please elaborate.

Thanks for your help!

RA
Ratko_Veprek
Oct 2022

It does make sense to change this! The launch script is actually taken from sbt-pack and has been adapted for our purpose (as the company policy is to ship fat jars). The template also uses -cp over jar, so it shouldn’t be hard to change this. I’ve added an internal (lower priority) issue to our internal issue tracking system.

← Back to Discussions