Class GatewayHook

All Implemented Interfaces:
com.inductiveautomation.ignition.gateway.clientcomm.scriptmsg.event.SessionMessageDispatchHandler, GatewayModuleHook

public class GatewayHook extends AbstractGatewayModuleHook implements com.inductiveautomation.ignition.gateway.clientcomm.scriptmsg.event.SessionMessageDispatchHandler
This class is the gateway hook for loading into the Ignition platform.
  • Constructor Details

    • GatewayHook

      public GatewayHook()
  • Method Details

    • get

      public static GatewayHook get(@Nonnull GatewayContext context)
    • getComponentModelDelegateRegistry

      public ComponentModelDelegateRegistry getComponentModelDelegateRegistry()
    • getAuthTokenManager

      public PerspectiveAuthTokenManager getAuthTokenManager()
    • setup

      public void setup(GatewayContext gatewayContext)
      Description copied from interface: GatewayModuleHook
      Called before register. The module can create data structures, loggers, etc. The module should not reach out to other parts of the system and expect them to be ready or created yet.
      Specified by:
      setup in interface GatewayModuleHook
    • startup

      public void startup(LicenseState activationState)
      Description copied from interface: GatewayModuleHook
      Called to initialize the module. Will only be called once. Persistence interface is available, but only in read-only mode.
      Specified by:
      startup in interface GatewayModuleHook
    • shutdown

      public void shutdown()
      Called to shutdown this module. Note that this instance will never be started back up - a new one will be created if a restart is desired.
      Specified by:
      shutdown in interface GatewayModuleHook
    • isMakerEditionCompatible

      public boolean isMakerEditionCompatible()
      Specified by:
      isMakerEditionCompatible in interface GatewayModuleHook
      Returns:
      true if this module opts-in to participating in Ignition Maker Edition. Default is false. If you override this and return true, your module will become activated when running in a Maker Edition installation.
    • handleMessage

      public List<String> handleMessage(com.inductiveautomation.ignition.gateway.clientcomm.scriptmsg.event.SessionMessageDispatchEvent event)
      Specified by:
      handleMessage in interface com.inductiveautomation.ignition.gateway.clientcomm.scriptmsg.event.SessionMessageDispatchHandler
    • getContext

    • getRedundancyStatus

      @Nullable public RedundancyStatus getRedundancyStatus()
    • notifyLicenseStateChanged

      public void notifyLicenseStateChanged(LicenseState platformLicense)
      Description copied from interface: GatewayModuleHook
      Notify module hook when the license state has changed. This could only contain changes for the module or it could contain a change to the platform license (version, restrictions such as expiration date, sqltag count...)
      Specified by:
      notifyLicenseStateChanged in interface GatewayModuleHook
      Overrides:
      notifyLicenseStateChanged in class AbstractGatewayModuleHook
    • getLicenseState

      public PerspectiveLicenseState getLicenseState()
    • getMountedResourceFolder

      public Optional<String> getMountedResourceFolder()
      Specified by:
      getMountedResourceFolder in interface GatewayModuleHook
      Returns:
      the path to a folder in one of the module's gateway jar files that should be mounted at /main/res/module-id/foldername
    • getMountPathAlias

      public Optional<String> getMountPathAlias()
      Description copied from interface: GatewayModuleHook
      Used by the mounting underneath /res/module-id/* and /data/module-id/* as an alternate mounting path instead of your module id, if present.
      Specified by:
      getMountPathAlias in interface GatewayModuleHook
    • mountRouteHandlers

      public void mountRouteHandlers(RouteGroup routes)
      Provides a chance for the module to mount any route handlers it wants. These will be active at /main/data/module-id/* See RouteGroup for details. Will be called after startup().
      Specified by:
      mountRouteHandlers in interface GatewayModuleHook
      Parameters:
      routes - the routes group, used to serve data via http requests to the Ignition Gateway
    • initializeScriptManager

      public void initializeScriptManager(ScriptManager manager)
      Description copied from interface: GatewayModuleHook
      Initialize a newly-instantiated script manager. This will be called exactly once for any given ScriptManager instance. Usually this will involve calling ScriptManager.addScriptModule(String, Object), which reflectively loads the public (instance and static) java functions from the given object into the scripting environment, at the provided path.

      This function may be called before GatewayModuleHook.startup(LicenseState), but never before GatewayModuleHook.setup(GatewayContext).

      Specified by:
      initializeScriptManager in interface GatewayModuleHook
      Overrides:
      initializeScriptManager in class AbstractGatewayModuleHook
    • getRpcImplementation

      public Optional<GatewayRpcImplementation> getRpcImplementation()
      Description copied from interface: GatewayModuleHook
      Returns the RPC implementation for this module, if any. This is the recommended way to expose RPC functions to the Designer or Vision Client if required. The return value will be cached for the lifetime of the Gateway.
      Specified by:
      getRpcImplementation in interface GatewayModuleHook
      Overrides:
      getRpcImplementation in class AbstractGatewayModuleHook
      See Also:
    • onMountedResourceRequest

      public void onMountedResourceRequest(String resourcePath, jakarta.servlet.http.HttpServletResponse response)
      Description copied from interface: GatewayModuleHook
      Called prior to a 'mounted resource request' being fulfilled by requests to the mounted resource servlet serving resources from /res/module-id/ (or /res/alias/ if GatewayModuleHook.getMountPathAlias() is implemented). It is called after the target resource has been successfully located.

      Primarily intended as an opportunity to amend/alter the response's headers for purposes such as establishing Cache-Control. By default, Ignition sets no additional headers on a resource request.

      Specified by:
      onMountedResourceRequest in interface GatewayModuleHook
      Parameters:
      resourcePath - path to the resource being returned by the mounted resource request
      response - the response to read/amend.
    • isClientCacheEnabled

      public static boolean isClientCacheEnabled()
    • getMaxIdleTimeMs

      public static long getMaxIdleTimeMs()
    • getIdleTimeIntervalMs

      public static long getIdleTimeIntervalMs()
    • getHelloResponseTimeoutMs

      public static long getHelloResponseTimeoutMs()