Class ThreadRuntimeFactory

  • All Implemented Interfaces:
    java.lang.AutoCloseable, RuntimeFactory

    public class ThreadRuntimeFactory
    extends java.lang.Object
    implements RuntimeFactory
    Thread based function container factory implementation.
    • Constructor Summary

      Constructors 
      Constructor Description
      ThreadRuntimeFactory​(java.lang.String threadGroupName, java.lang.String pulsarServiceUrl, java.lang.String storageServiceUrl, org.apache.pulsar.functions.instance.AuthenticationConfig authConfig, org.apache.pulsar.functions.secretsprovider.SecretsProvider secretsProvider, org.apache.pulsar.functions.instance.stats.FunctionCollectorRegistry collectorRegistry, java.lang.String narExtractionDirectory, java.lang.ClassLoader rootClassLoader, boolean exposePulsarAdminClientEnabled, java.lang.String pulsarWebServiceUrl)
      This constructor is used by other runtimes (e.g.
    • Constructor Detail

      • ThreadRuntimeFactory

        public ThreadRuntimeFactory​(java.lang.String threadGroupName,
                                    java.lang.String pulsarServiceUrl,
                                    java.lang.String storageServiceUrl,
                                    org.apache.pulsar.functions.instance.AuthenticationConfig authConfig,
                                    org.apache.pulsar.functions.secretsprovider.SecretsProvider secretsProvider,
                                    org.apache.pulsar.functions.instance.stats.FunctionCollectorRegistry collectorRegistry,
                                    java.lang.String narExtractionDirectory,
                                    java.lang.ClassLoader rootClassLoader,
                                    boolean exposePulsarAdminClientEnabled,
                                    java.lang.String pulsarWebServiceUrl)
                             throws java.lang.Exception
        This constructor is used by other runtimes (e.g. ProcessRuntime and KubernetesRuntime) that rely on ThreadRuntime to actually run an instance of the function. When used by other runtimes, the arguments such as secretsProvider and rootClassLoader will be provided.
        Throws:
        java.lang.Exception
    • Method Detail

      • initialize

        public void initialize​(WorkerConfig workerConfig,
                               org.apache.pulsar.functions.instance.AuthenticationConfig authenticationConfig,
                               org.apache.pulsar.functions.secretsproviderconfigurator.SecretsProviderConfigurator secretsProviderConfigurator,
                               ConnectorsManager connectorsManager,
                               java.util.Optional<FunctionAuthProvider> functionAuthProvider,
                               java.util.Optional<RuntimeCustomizer> runtimeCustomizer)
                        throws java.lang.Exception
        Specified by:
        initialize in interface RuntimeFactory
        Throws:
        java.lang.Exception
      • createContainer

        public ThreadRuntime createContainer​(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig,
                                             java.lang.String jarFile,
                                             java.lang.String originalCodeFileName,
                                             java.lang.Long expectedHealthCheckInterval)
        Description copied from interface: RuntimeFactory
        Create a function container to execute a java instance.
        Specified by:
        createContainer in interface RuntimeFactory
        Parameters:
        instanceConfig - java instance config
        jarFile - code file
        expectedHealthCheckInterval - expected health check interval in seconds
        Returns:
        function container to start/stop instance
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface RuntimeFactory