Hello.
I’m currently creating a driver in order to expose tags on the Ignition OPCUA Server from an external source.
I made a first draft version to have the communications running correctly and now, I would like to make a  clean version the would fit in the Gateway webpage as a driver. And that is driving me crazy.
The module installs without error (even if it is around 25Mb !?) and starts correctly but my devices list does not show my new driver.
Here is the code is used for this driver:
ModuleHook
public class ModuleHook extends AbstractDriverModuleHook{
    private Logger logger = LoggerFactory.getLogger(getClass());
    private static final List<DriverType> DRIVER_TYPES = new ArrayList();
    static {
        DRIVER_TYPES.add(new MiosBoxTcpDriverType());
    }
    private GatewayContext context;
    @Override
    public void setup(GatewayContext gatewayContext) {
        logger.info("MiosBox Driver : setup()");
        this.context = gatewayContext;
        BundleUtil.get().addBundle("MiosBoxDriver", getClass(), "MiosBoxDriver");
        super.setup(context);
        logger.info("MiosBox Driver : setup() - END");
    }
    @Override
         public void startup(LicenseState activationState) {
        logger.info("MiosBox Driver : startup()");
        super.startup(activationState);
        logger.info("MiosBox Driver : startup() - END");
    }
    @Override
    public void shutdown() {
        logger.info("MiosBox Driver : shutdown()");
        BundleUtil.get().removeBundle("MiosBoxDriver");
        super.shutdown();
    }
    @Override
    public void serviceReady(Class<?> serviceClass) {
        logger.info("ServiceReady pour : " + serviceClass.toString());
        super.serviceReady(serviceClass);
        logger.info("ServiceReady - END");
    }
    @Override
    protected List<DriverType> getDriverTypes() {
        logger.info("getDriverTypes(): Liste des drivers : " + DRIVER_TYPES.toString());
        return DRIVER_TYPES;
    }
    @Override
    protected int getExpectedAPIVersion() {
        logger.info("getExpectedAPIVersion Called.");
        return 4;
    }
}
The MiosBoxTcpDriverType extends from DriverType.
The initialization seems good but the overridden method serviceReady() is never called and I cannot figure why.
Here are the logs after an install/restart of the driver:
 	Time	Logger	Message
(I)	18:07:44	ModuleHook	MiosBox Driver : startup() - END
(I)	18:07:44	ModuleHook	getExpectedAPIVersion Called.
(I)	18:07:44	ModuleHook	MiosBox Driver : startup()
(I)	18:07:44	ModuleManager	Starting up module 'MiosBoxDriver' v1.0.0 (b0)...
(I)	18:07:44	ModuleHook	MiosBox Driver : setup() - END
(I)	18:07:44	ModuleHook	getDriverTypes(): Liste des drivers : [com.mios.MiosBoxDriverGateway.settings.MiosBoxTcpDriverType@190a7a23]
(I)	18:07:44	ModuleHook	MiosBox Driver : setup()
(I)	18:07:36	ModuleManager	Starting up module 'MiosBoxDriver' (v1.0.0 (b0))...
(I)	18:07:35	ModuleManager	Installing module: "MiosBoxDriver"
I cannot figure why the driver is not added to the drivers list (under OPC > Devices > Add).
I can provide more code and/or clarifications if needed, do not hesitate to ask.