Interface RuntimeFactory

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
KubernetesRuntimeFactory, ProcessRuntimeFactory, ThreadRuntimeFactory

public interface RuntimeFactory extends AutoCloseable
A factory to create Runtimes to invoke functions.
  • Method Details

    • initialize

      void initialize(WorkerConfig workerConfig, org.apache.pulsar.functions.instance.AuthenticationConfig authenticationConfig, org.apache.pulsar.functions.secretsproviderconfigurator.SecretsProviderConfigurator secretsProviderConfigurator, ConnectorsManager connectorsManager, FunctionsManager functionsManager, Optional<FunctionAuthProvider> authProvider, Optional<RuntimeCustomizer> runtimeCustomizer) throws Exception
      Throws:
      Exception
    • createContainer

      Runtime createContainer(org.apache.pulsar.functions.instance.InstanceConfig instanceConfig, String codeFile, String originalCodeFileName, Long expectedHealthCheckInterval) throws Exception
      Create a function container to execute a java instance.
      Parameters:
      instanceConfig - java instance config
      codeFile - code file
      expectedHealthCheckInterval - expected health check interval in seconds
      Returns:
      function container to start/stop instance
      Throws:
      Exception
    • externallyManaged

      default boolean externallyManaged()
    • doAdmissionChecks

      default void doAdmissionChecks(org.apache.pulsar.functions.proto.Function.FunctionDetails functionDetails)
    • getAuthProvider

      default Optional<? extends FunctionAuthProvider> getAuthProvider()
    • getRuntimeCustomizer

      default Optional<? extends RuntimeCustomizer> getRuntimeCustomizer()
    • close

      void close()
      Specified by:
      close in interface AutoCloseable
    • getFuntionRuntimeFactory

      static RuntimeFactory getFuntionRuntimeFactory(String className)