8.3 module development experience

Hi all,

I've been able to build an Ignition 8.3 module. During development I often have to adjust the code to get to a final solution.

With 8.1 I was able to use ‘gradlew build deployModl’ to streamline this process. However this no longer works with 8.3. I suspect that this is due to the fact that each module install/update requires a restart.

Are there other ways to steamline module development like for instance code hot reloading that you guys are using?

In theory, the same general approach outlined in this thread for client/designer launches from your IDE would work.

In practice there'll be some back and forth for whichever intrepid soul decides to try this first. Maybe if I get some time (hah) I'll see if I can come up with a gateway launcher repo.

In the meantime, I'll say that the main class to launch is com.inductiveautomation.catapult.Catapult, and the list of VM options I'm using out of the IDE is:

-ea
-Xms8G
-Xmx8G
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/java.security.cert=ALL-UNNAMED
--add-opens=java.base/jdk.internal.misc=ALL-UNNAMED
-Dignition.allowunsignedmodules=true
-Dignition.gateway.resourceOverrideFile=/Users/pgriffith/Projects/ignition-8.3/config/resources/resource-config.json
-Dignition.gateway.systemJsOverrideFile=/Users/pgriffith/Projects/ignition-8.3/config/resources/systemjs-config.json
-Dres.path.com.inductiveautomation.perspective.themes=/Users/pgriffith/Projects/ignition-8.3/Modules/perspective/perspective-themes/src/main/css
-Dperspective.gateway.disableClientCaching=true
-Dreporting.gateway.disableClientCaching=true
-Djava.library.path=/Users/pgriffith/Projects/ignition-8.3/IDE-Launchers/gateway-launcher/src/main/home/lib/core/gateway
-Dignition.webserver.exposeErrorDetails=true

You'll have to come up with your own Maven/Gradle 'subproject' to get the IDE to give you all the gateway and common dependencies on one classpath, and I have no idea how loading modules would work out. You'll also need to either point it at a valid installation or recreate the basic directory structure of a valid installation.