It was working without any issues in Ignition 8.1 Maker Edition.
When I tried to install it on Ignition 8.3 Maker Edition I get the following error.
I tried adding the @Override public boolean isMakerEditionCompatible() { return true; } to GatewayHook but that didn’t fix the problem.
Can you guide me on how to tackle this?
Thank you,
com.inductiveautomation.ignition.common.modules.ModuleLoadException: Not eligible for use with Ignition Maker Edition
at com.inductiveautomation.ignition.gateway.modules.ModuleInstance.setup(ModuleInstance.java:645)
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.runStartupPhase(ModuleManagerImpl.java:499)
at com.inductiveautomation.ignition.gateway.modules.ModuleManagerImpl.setup(ModuleManagerImpl.java:441)
at com.inductiveautomation.ignition.gateway.IgnitionGateway.startupInternal(IgnitionGateway.java:1287)
at com.inductiveautomation.ignition.gateway.redundancy.RedundancyManagerImpl.startup(RedundancyManagerImpl.java:352)
at com.inductiveautomation.ignition.gateway.IgnitionGateway.initRedundancy(IgnitionGateway.java:814)
at com.inductiveautomation.ignition.gateway.IgnitionGateway.lambda$initInternal$1(IgnitionGateway.java:736)
at com.inductiveautomation.ignition.common.execution.impl.BasicExecutionEngine$ThrowableCatchingRunnable.run(BasicExecutionEngine.java:550)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
You absolutely need to build with the resources from 8.3 and with a minimum of v8.3.0 in module.xml. If those are the problem, I'd expect a different error, but that might be a bug.
(I don't use Maven or Gradle, so cannot help with specifics of your build.)
After developing my add-on using the new SDK examples, and after some thorough investigation and testing, I figured out the error is related to the requiredIgnitionVersion setting in the project.
While the error message says “Not eligible for use with Ignition Maker Edition”, it is actually not related to the GatewayHook.isMakerEditionCompatible override.
This will not work, heed the advice from earlier on in this thread about having a branch for each version. There are a lot of differences in the SDK between the versions and the dependencies that are part of each.
There is a small bug here where if loading your module fails because of the version mismatch it is later misidentified as being not compatible with maker edition and the failure reason gets overwritten.
You must fix the required Ignition version mismatch. This check is supposed to be there. All that would change with the bug fixed is you would get the correct error message.
I understand your desire. I did this for years when I first started making modules. It hasn't been possible since v7.9 came out.
Make branches in your repo.
Pull into build environments that have the right java versions to build properly. (I currently maintain both jdk11 and jdk17 in my workstation so I can build for v8.1 and v8.3, in different local folders pointing at the separate branches.)