IntelliJ Module Debug

Hello,
I’d like to say I’ve followed the guide @ Ignition SDK Programmers Guide - Ignition SDK Programmer's Guide - Ignition Documentation to the T but I am running into some issues.

Versions:
IntelliJ 2021.1.2
Ignition - 8.1.7
Java11
maven 3.8.1

When attempting to set up a debugger for the designer i get an error that says ‘com.inductiveautomation.ignition.client.launch.BootstrapSwing’ not found in module ‘designer-launcher’

Can anyone help?

BootstrapSwing would be for the client, not the designer.

I tried that as well with no luck.

I don’t think you have everything in the right place, assuming you’re using a recent version of IntelliJ.

Where you have DesignerStartupHook is where I have the args like -Djavaws.ignition.loglevel=INFO

Where you have BootstrapSwing is where I have DesignerStartupHook

If im not mistaken, this version of intelliJ moved around the location of items.

com.inductiveautomation.ignition.client.launch.BootstrapSwing - is under the main class

-Dscadarail.version=dev -Djavaws.sr.gateway.addr.0=127.0.01:8088:8043/main -Djavaws.sr.scope=C -Djavaws.sr.main=com.inductiveautomation.factorypmi.application.runtime.ClientLaunchHook -Djavaws.sr.project=ProjectName -Djavaws.sr.project.scope=Published - is under program arguments

Since you’re using Java 11, I’ll assume you’re working in 8+, which means you don’t need the -Djavaws.sr.project.scope=Published any more.

What module are you trying to run under – designer-launcher or client-launcher?

Okay, we made a little progress. all dependencies are resolving now. However, when we actually run the debug tools (both designer and client) we never get prompted for log in, and a client/designer never launches. Here is what the console outputs when we run.

"C:\Program Files\Java\jdk-11.0.11\bin\java.exe" -Dscadarail.version=dev -Djavaws.sr.gateway.addr.0=127.0.01:8088:8043/main -Djavaws.sr.scope=D -Djavaws.sr.main=com.inductiveautomation.ignition.designer.DesignerStartupHook "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2021.1.2\lib\idea_rt.jar=51922:C:\Program Files\JetBrains\IntelliJ IDEA 2021.1.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\ignition\designer\8.1.7\designer-8.1.7.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\ignition\client-bootstrap\8.1.7\client-bootstrap-8.1.7.jar;C:\Users\Michael Edmonson.m2\repository\net\java\dev\timingframework\timingframework\1.0\timingframework-1.0.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\commons\commons-compress\1.19\commons-compress-1.19.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\ignition\client-api\8.1.7\client-api-8.1.7.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\ignition\common\8.1.7\common-8.1.7.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\poi\poi\4.1.1\poi-4.1.1.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\poi\poi-ooxml-schemas\4.1.1\poi-ooxml-schemas-4.1.1.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlbeans\xmlbeans\3.1.0\xmlbeans-3.1.0.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\poi\poi-ooxml\4.1.1\poi-ooxml-4.1.1.jar;C:\Users\Michael Edmonson.m2\repository\com\github\virtuald\curvesapi\1.06\curvesapi-1.06.jar;C:\Users\Michael Edmonson.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Michael Edmonson.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Michael Edmonson.m2\repository\com\google\guava\guava\23.3-jre\guava-23.3-jre.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\ignition\ia-gson\2.8.5\ia-gson-2.8.5.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-common\3.7.4\jide-common-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\solvoj\zxing-java6\core-java6\3.2.1.4\core-java6-3.2.1.4.jar;C:\Users\Michael Edmonson.m2\repository\commons-cli\commons-cli\1.4\commons-cli-1.4.jar;C:\Users\Michael Edmonson.m2\repository\commons-codec\commons-codec\1.13\commons-codec-1.13.jar;C:\Users\Michael Edmonson.m2\repository\commons-io\commons-io\2.2\commons-io-2.2.jar;C:\Users\Michael Edmonson.m2\repository\commons-logging\commons-logging\1.2\commons-logging-1.2.jar;C:\Users\Michael Edmonson.m2\repository\edu\princeton\cup\java-cup\10k\java-cup-10k.jar;C:\Users\Michael Edmonson.m2\repository\it\sauronsoftware\cron4j\2.2.3\cron4j-2.2.3.jar;C:\Users\Michael Edmonson.m2\repository\joda-time\joda-time\2.10.2\joda-time-2.10.2.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\commons\commons-lang3\3.11\commons-lang3-3.11.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\commons\commons-math3\3.6.1\commons-math3-3.6.1.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\commons\commons-text\1.9\commons-text-1.9.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\httpcomponents\httpcore\4.4.13\httpcore-4.4.13.jar;C:\Users\Michael Edmonson.m2\repository\org\jfree\jfreechart-min\1.0.0\jfreechart-min-1.0.0.jar;C:\Users\Michael Edmonson.m2\repository\org\jgrapht\jgrapht-core\1.4.0\jgrapht-core-1.4.0.jar;C:\Users\Michael Edmonson.m2\repository\org\jheaps\jheaps\0.11\jheaps-0.11.jar;C:\Users\Michael Edmonson.m2\repository\org\python\jython\2.7.1-ia5\jython-2.7.1-ia5.jar;C:\Users\Michael Edmonson.m2\repository\org\slf4j\log4j-over-slf4j\1.7.26\log4j-over-slf4j-1.7.26.jar;C:\Users\Michael Edmonson.m2\repository\org\slf4j\slf4j-api\1.7.26\slf4j-api-1.7.26.jar;C:\Users\Michael Edmonson.m2\repository\io\dropwizard\metrics\metrics-core\3.1.0\metrics-core-3.1.0.jar;C:\Users\Michael Edmonson.m2\repository\net\sf\barcode4j\barcode4j\2.1\barcode4j-2.1.jar;C:\Users\Michael Edmonson.m2\repository\org\slf4j\jul-to-slf4j\1.7.26\jul-to-slf4j-1.7.26.jar;C:\Users\Michael Edmonson.m2\repository\org\bouncycastle\bcpkix-jdk15on\1.64\bcpkix-jdk15on-1.64.jar;C:\Users\Michael Edmonson.m2\repository\org\bouncycastle\bcprov-jdk15on\1.64\bcprov-jdk15on-1.64.jar;C:\Users\Michael Edmonson.m2\repository\org\bitbucket\b_c\jose4j\0.7.2\jose4j-0.7.2.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\ignition\active-query-builder\8.1.7\active-query-builder-8.1.7.jar;C:\Users\Michael Edmonson.m2\repository\com\jgoodies\forms\1.0.7\forms-1.0.7.jar;C:\Users\Michael Edmonson.m2\repository\com\miglayout\miglayout-swing\4.2\miglayout-swing-4.2.jar;C:\Users\Michael Edmonson.m2\repository\com\miglayout\miglayout-core\4.2\miglayout-core-4.2.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-components\3.7.4\jide-components-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-grids\3.7.4\jide-grids-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\plaf\ignition-laf\3.0.0-beta3\ignition-laf-3.0.0-beta3.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-plaf-9\0.0.1\jide-plaf-9-0.0.1.jar;C:\Users\Michael Edmonson.m2\repository\de\javasoft\synthetica\3.1.1\synthetica-3.1.1.jar;C:\Users\Michael Edmonson.m2\repository\de\javasoft\synthetica-addons\3.0.1\synthetica-addons-3.0.1.jar;C:\Users\Michael Edmonson.m2\repository\de\javasoft\jydocking\3.0.1\jydocking-3.0.1.jar;C:\Users\Michael Edmonson.m2\repository\de\javasoft\jyiconfonts\3.0.1\jyiconfonts-3.0.1.jar;C:\Users\Michael Edmonson.m2\repository\de\javasoft\jytable\3.0.1\jytable-3.0.1.jar;C:\Users\Michael Edmonson.m2\repository\de\javasoft\jywidgets\3.0.1\jywidgets-3.0.1.jar;C:\Users\Michael Edmonson.m2\repository\org\jdesktop\swingx\0.0.1-ia\swingx-0.0.1-ia.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-swing\1.12\batik-swing-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-anim\1.12\batik-anim-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-awt-util\1.12\batik-awt-util-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-bridge\1.12\batik-bridge-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-constants\1.12\batik-constants-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-css\1.12\batik-css-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-dom\1.12\batik-dom-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-ext\1.12\batik-ext-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-gvt\1.12\batik-gvt-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-i18n\1.12\batik-i18n-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-parser\1.12\batik-parser-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-script\1.12\batik-script-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-svg-dom\1.12\batik-svg-dom-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-svggen\1.12\batik-svggen-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-transcoder\1.12\batik-transcoder-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-util\1.12\batik-util-1.12.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\xmlgraphics-commons\2.3\xmlgraphics-commons-2.3.jar;C:\Users\Michael Edmonson.m2\repository\org\apache\xmlgraphics\batik-xml\1.12\batik-xml-1.12.jar;C:\Users\Michael Edmonson.m2\repository\xalan\xalan\2.7.2\xalan-2.7.2.jar;C:\Users\Michael Edmonson.m2\repository\xalan\serializer\2.7.2\serializer-2.7.2.jar;C:\Users\Michael Edmonson.m2\repository\xml-apis\xml-apis\1.3.04\xml-apis-1.3.04.jar;C:\Users\Michael Edmonson.m2\repository\xml-apis\xml-apis-ext\1.3.04\xml-apis-ext-1.3.04.jar;C:\Users\Michael Edmonson.m2\repository\com\twelvemonkeys\imageio\imageio-batik\3.4.1\imageio-batik-3.4.1.jar;C:\Users\Michael Edmonson.m2\repository\com\twelvemonkeys\imageio\imageio-core\3.4.1\imageio-core-3.4.1.jar;C:\Users\Michael Edmonson.m2\repository\com\twelvemonkeys\common\common-lang\3.4.1\common-lang-3.4.1.jar;C:\Users\Michael Edmonson.m2\repository\com\twelvemonkeys\common\common-io\3.4.1\common-io-3.4.1.jar;C:\Users\Michael Edmonson.m2\repository\com\twelvemonkeys\common\common-image\3.4.1\common-image-3.4.1.jar;C:\Users\Michael Edmonson.m2\repository\com\teamdev\jxbrowser\jxbrowser\7.12.1\jxbrowser-7.12.1.jar;C:\Users\Michael Edmonson.m2\repository\com\teamdev\jxbrowser\jxbrowser-win64\7.12.1\jxbrowser-win64-7.12.1.jar;C:\Users\Michael Edmonson.m2\repository\com\teamdev\jxbrowser\jxbrowser-linux64\7.12.1\jxbrowser-linux64-7.12.1.jar;C:\Users\Michael Edmonson.m2\repository\com\teamdev\jxbrowser\jxbrowser-mac\7.12.1\jxbrowser-mac-7.12.1.jar;C:\Users\Michael Edmonson.m2\repository\com\teamdev\jxbrowser\jxbrowser-swing\7.12.1\jxbrowser-swing-7.12.1.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-action\3.7.4\jide-action-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-dialogs\3.7.4\jide-dialogs-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-diff\3.7.4\jide-diff-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-dock\3.7.4\jide-dock-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-editor\3.7.4\jide-editor-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\jidesoft\jide-shortcut\3.7.4\jide-shortcut-3.7.4.jar;C:\Users\Michael Edmonson.m2\repository\com\fifesoft\autocomplete\3.0.0\autocomplete-3.0.0.jar;C:\Users\Michael Edmonson.m2\repository\com\fifesoft\rsyntaxtextarea\3.0.0\rsyntaxtextarea-3.0.0.jar;C:\Users\Michael Edmonson.m2\repository\com\fifesoft\languagesupport\3.0.0\languagesupport-3.0.0.jar;C:\Users\Michael Edmonson.m2\repository\org\mozilla\rhino\1.7.6\rhino-1.7.6.jar;C:\Users\Michael Edmonson.m2\repository\com\fifesoft\rstaui\3.0.0\rstaui-3.0.0.jar;C:\Users\Michael Edmonson.m2\repository\com\fifesoft\spellchecker\3.0.0\spellchecker-3.0.0.jar;C:\Users\Michael Edmonson.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk8\1.4.30\kotlin-stdlib-jdk8-1.4.30.jar;C:\Users\Michael Edmonson.m2\repository\org\jetbrains\kotlin\kotlin-stdlib\1.4.30\kotlin-stdlib-1.4.30.jar;C:\Users\Michael Edmonson.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-common\1.4.30\kotlin-stdlib-common-1.4.30.jar;C:\Users\Michael Edmonson.m2\repository\org\jetbrains\annotations\13.0\annotations-13.0.jar;C:\Users\Michael Edmonson.m2\repository\org\jetbrains\kotlin\kotlin-stdlib-jdk7\1.4.30\kotlin-stdlib-jdk7-1.4.30.jar;C:\Users\Michael Edmonson.m2\repository\org\jetbrains\kotlinx\kotlinx-coroutines-swing\1.4.1\kotlinx-coroutines-swing-1.4.1.jar;C:\Users\Michael Edmonson.m2\repository\org\jetbrains\kotlinx\kotlinx-coroutines-core\1.4.1\kotlinx-coroutines-core-1.4.1.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\vision\vision-designer\11.1.7\vision-designer-11.1.7.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\vision\vision-client\11.1.7\vision-client-11.1.7.jar;C:\Users\Michael Edmonson.m2\repository\com\inductiveautomation\vision\vision-common\11.1.7\vision-common-11.1.7.jar" com.inductiveautomation.ignition.client.launch.BootstrapSwing
Starting Bootstrap Loader v3.0
Connect Step [attempt 1] connecting to: http://127.0.01:8088/main...
Downloading manifest at http://127.0.01:8088/main/system/launchmf/D?os=windows&arch=x64
...connect successful
Successfully downloaded launch manifest:

<?xml version="1.0" encoding="UTF-8"?> Claiming id in C:\Users\Michael Edmonson\.ignition\cache\gw127.0.01_8088_main... ... obtaining lock ... lock obtained. ... claimed id 0 Calculated necessary downloads: <?xml version="1.0" encoding="UTF-8"?> Third party Python modules downloaded. Downloading "http://127.0.01:8088/main/system/translations/"... Connect successful. Starting download of 428 bytes Download successful Downloading the required Runtime for this gateways' clients. Connect successful. Descrambling runtime bytes. Existing launchclient.jar can be used. Releasing Client Cache Lock: 0 Running: [C:\Users\Michael Edmonson\.ignition\cache\resources\runtimes\11.0.11\bin\java.exe, -cp, C:\Users\Michael Edmonson\.ignition\cache\launchclient_32B0405D.jar, -Djavaws.sr.scope=D, -Dia.retarget.token=32B0405D, -Djavaws.sr.memory.init=64M, -Djavaws.sr.memory.max=256M, -Djavaws.sr.platform.edition=null, -Xms64M, -Xmx256M, com.inductiveautomation.ignition.client.launch.BootstrapSwing] Launched JVM.

Process finished with exit code 0

@pturmel any ideas? saw you were pretty active on some other related posts. Thanks in advance.

I debug with logging. Almost everything I do is so heavily multi-threaded that the JVM debug features are effectively useless.

1 Like

@pturmel Right on… How hard is that to set up?

For most stuff that purely for development, I’ll use a static logger instance for each class. Something like this:

	protected static final LoggerEx sLogger = LogUtil.getLogger(SomeClass.class.getCanonicalName());

Then wherever I need progress and status info I put something like this:

sLogger.debugf("Some pattern with %s and other formats", someObject)

It is best if your objects have .toString() implementations so above call doesn’t have to waste time generating complex string formats when debug is off.

I believe this message means that the designer detected the JVM running the designer is not the same as what it expects, so it ends the process and starts a new one. Try adding

-Djavaws.sr.runtimeOverride=true

to the launch options (the field between the classpath and the main class)

1 Like