Class ComponentImpl

    • Constructor Summary

      Constructors 
      Constructor Description
      ComponentImpl​(java.util.function.Supplier<PulsarWorkerService> workerServiceSupplier, org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean allowFunctionOps​(org.apache.pulsar.common.naming.NamespaceName namespaceName, java.lang.String role, org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)  
      void changeFunctionInstanceStatus​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String instanceId, boolean start, java.net.URI uri, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void changeFunctionStatusAllInstances​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, boolean start, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      protected void componentInstanceStatusRequestValidate​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, int instanceId, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      protected void componentStatusRequestValidate​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      static java.lang.String createPackagePath​(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, java.lang.String fileName)  
      void deregisterFunction​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataHttps clientAuthenticationDataHttps)  
      javax.ws.rs.core.StreamingOutput downloadFunction​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataHttps clientAuthenticationDataHttps)  
      javax.ws.rs.core.StreamingOutput downloadFunction​(java.lang.String path, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataHttps clientAuthenticationDataHttps)  
      protected java.lang.ClassLoader getClassLoaderFromPackage​(java.lang.String className, java.io.File packageFile, java.lang.String narExtractionDirectory)  
      org.apache.pulsar.common.functions.FunctionConfig getFunctionInfo​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      org.apache.pulsar.common.policies.data.FunctionInstanceStatsDataImpl getFunctionsInstanceStats​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String instanceId, java.net.URI uri, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      org.apache.pulsar.common.functions.FunctionState getFunctionState​(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, java.lang.String key, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      org.apache.pulsar.common.policies.data.FunctionStatsImpl getFunctionStats​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.net.URI uri, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      java.util.List<org.apache.pulsar.common.io.ConnectorDefinition> getListOfConnectors()  
      boolean isAuthorizedRole​(java.lang.String tenant, java.lang.String namespace, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)  
      boolean isSuperUser​(java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)  
      java.util.List<java.lang.String> listFunctions​(java.lang.String tenant, java.lang.String namespace, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void putFunctionState​(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, java.lang.String key, org.apache.pulsar.common.functions.FunctionState state, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void reloadConnectors​(java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)  
      void restartFunctionInstance​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String instanceId, java.net.URI uri, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void restartFunctionInstances​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void startFunctionInstance​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String instanceId, java.net.URI uri, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void startFunctionInstances​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void stopFunctionInstance​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String instanceId, java.net.URI uri, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void stopFunctionInstances​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      java.lang.String triggerFunction​(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, java.lang.String input, java.io.InputStream uploadedInputStream, java.lang.String topic, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)  
      void uploadFunction​(java.io.InputStream uploadedInputStream, java.lang.String path, java.lang.String clientRole, org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)  
      protected void validateGetFunctionInstanceRequestParams​(java.lang.String tenant, java.lang.String namespace, java.lang.String componentName, org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType, java.lang.String instanceId)  
      protected void validateGetFunctionRequestParams​(java.lang.String tenant, java.lang.String namespace, java.lang.String subject, org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType)  
      PulsarWorkerService worker()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • workerServiceSupplier

        protected final java.util.function.Supplier<PulsarWorkerService> workerServiceSupplier
      • componentType

        protected final org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType
    • Constructor Detail

      • ComponentImpl

        public ComponentImpl​(java.util.function.Supplier<PulsarWorkerService> workerServiceSupplier,
                             org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType)
    • Method Detail

      • deregisterFunction

        public void deregisterFunction​(java.lang.String tenant,
                                       java.lang.String namespace,
                                       java.lang.String componentName,
                                       java.lang.String clientRole,
                                       org.apache.pulsar.broker.authentication.AuthenticationDataHttps clientAuthenticationDataHttps)
        Specified by:
        deregisterFunction in interface Component<PulsarWorkerService>
      • getFunctionInfo

        public org.apache.pulsar.common.functions.FunctionConfig getFunctionInfo​(java.lang.String tenant,
                                                                                 java.lang.String namespace,
                                                                                 java.lang.String componentName,
                                                                                 java.lang.String clientRole,
                                                                                 org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        getFunctionInfo in interface Component<PulsarWorkerService>
      • stopFunctionInstance

        public void stopFunctionInstance​(java.lang.String tenant,
                                         java.lang.String namespace,
                                         java.lang.String componentName,
                                         java.lang.String instanceId,
                                         java.net.URI uri,
                                         java.lang.String clientRole,
                                         org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        stopFunctionInstance in interface Component<PulsarWorkerService>
      • startFunctionInstance

        public void startFunctionInstance​(java.lang.String tenant,
                                          java.lang.String namespace,
                                          java.lang.String componentName,
                                          java.lang.String instanceId,
                                          java.net.URI uri,
                                          java.lang.String clientRole,
                                          org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        startFunctionInstance in interface Component<PulsarWorkerService>
      • changeFunctionInstanceStatus

        public void changeFunctionInstanceStatus​(java.lang.String tenant,
                                                 java.lang.String namespace,
                                                 java.lang.String componentName,
                                                 java.lang.String instanceId,
                                                 boolean start,
                                                 java.net.URI uri,
                                                 java.lang.String clientRole,
                                                 org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
      • restartFunctionInstance

        public void restartFunctionInstance​(java.lang.String tenant,
                                            java.lang.String namespace,
                                            java.lang.String componentName,
                                            java.lang.String instanceId,
                                            java.net.URI uri,
                                            java.lang.String clientRole,
                                            org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        restartFunctionInstance in interface Component<PulsarWorkerService>
      • stopFunctionInstances

        public void stopFunctionInstances​(java.lang.String tenant,
                                          java.lang.String namespace,
                                          java.lang.String componentName,
                                          java.lang.String clientRole,
                                          org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        stopFunctionInstances in interface Component<PulsarWorkerService>
      • startFunctionInstances

        public void startFunctionInstances​(java.lang.String tenant,
                                           java.lang.String namespace,
                                           java.lang.String componentName,
                                           java.lang.String clientRole,
                                           org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        startFunctionInstances in interface Component<PulsarWorkerService>
      • changeFunctionStatusAllInstances

        public void changeFunctionStatusAllInstances​(java.lang.String tenant,
                                                     java.lang.String namespace,
                                                     java.lang.String componentName,
                                                     boolean start,
                                                     java.lang.String clientRole,
                                                     org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
      • restartFunctionInstances

        public void restartFunctionInstances​(java.lang.String tenant,
                                             java.lang.String namespace,
                                             java.lang.String componentName,
                                             java.lang.String clientRole,
                                             org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        restartFunctionInstances in interface Component<PulsarWorkerService>
      • getFunctionStats

        public org.apache.pulsar.common.policies.data.FunctionStatsImpl getFunctionStats​(java.lang.String tenant,
                                                                                         java.lang.String namespace,
                                                                                         java.lang.String componentName,
                                                                                         java.net.URI uri,
                                                                                         java.lang.String clientRole,
                                                                                         org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        getFunctionStats in interface Component<PulsarWorkerService>
      • getFunctionsInstanceStats

        public org.apache.pulsar.common.policies.data.FunctionInstanceStatsDataImpl getFunctionsInstanceStats​(java.lang.String tenant,
                                                                                                              java.lang.String namespace,
                                                                                                              java.lang.String componentName,
                                                                                                              java.lang.String instanceId,
                                                                                                              java.net.URI uri,
                                                                                                              java.lang.String clientRole,
                                                                                                              org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        getFunctionsInstanceStats in interface Component<PulsarWorkerService>
      • listFunctions

        public java.util.List<java.lang.String> listFunctions​(java.lang.String tenant,
                                                              java.lang.String namespace,
                                                              java.lang.String clientRole,
                                                              org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        listFunctions in interface Component<PulsarWorkerService>
      • reloadConnectors

        public void reloadConnectors​(java.lang.String clientRole,
                                     org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)
        Specified by:
        reloadConnectors in interface Component<PulsarWorkerService>
      • triggerFunction

        public java.lang.String triggerFunction​(java.lang.String tenant,
                                                java.lang.String namespace,
                                                java.lang.String functionName,
                                                java.lang.String input,
                                                java.io.InputStream uploadedInputStream,
                                                java.lang.String topic,
                                                java.lang.String clientRole,
                                                org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        triggerFunction in interface Component<PulsarWorkerService>
      • getFunctionState

        public org.apache.pulsar.common.functions.FunctionState getFunctionState​(java.lang.String tenant,
                                                                                 java.lang.String namespace,
                                                                                 java.lang.String functionName,
                                                                                 java.lang.String key,
                                                                                 java.lang.String clientRole,
                                                                                 org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        getFunctionState in interface Component<PulsarWorkerService>
      • putFunctionState

        public void putFunctionState​(java.lang.String tenant,
                                     java.lang.String namespace,
                                     java.lang.String functionName,
                                     java.lang.String key,
                                     org.apache.pulsar.common.functions.FunctionState state,
                                     java.lang.String clientRole,
                                     org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
        Specified by:
        putFunctionState in interface Component<PulsarWorkerService>
      • uploadFunction

        public void uploadFunction​(java.io.InputStream uploadedInputStream,
                                   java.lang.String path,
                                   java.lang.String clientRole,
                                   org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)
        Specified by:
        uploadFunction in interface Component<PulsarWorkerService>
      • downloadFunction

        public javax.ws.rs.core.StreamingOutput downloadFunction​(java.lang.String tenant,
                                                                 java.lang.String namespace,
                                                                 java.lang.String componentName,
                                                                 java.lang.String clientRole,
                                                                 org.apache.pulsar.broker.authentication.AuthenticationDataHttps clientAuthenticationDataHttps)
        Specified by:
        downloadFunction in interface Component<PulsarWorkerService>
      • downloadFunction

        public javax.ws.rs.core.StreamingOutput downloadFunction​(java.lang.String path,
                                                                 java.lang.String clientRole,
                                                                 org.apache.pulsar.broker.authentication.AuthenticationDataHttps clientAuthenticationDataHttps)
        Specified by:
        downloadFunction in interface Component<PulsarWorkerService>
      • validateGetFunctionInstanceRequestParams

        protected void validateGetFunctionInstanceRequestParams​(java.lang.String tenant,
                                                                java.lang.String namespace,
                                                                java.lang.String componentName,
                                                                org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType,
                                                                java.lang.String instanceId)
                                                         throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • validateGetFunctionRequestParams

        protected void validateGetFunctionRequestParams​(java.lang.String tenant,
                                                        java.lang.String namespace,
                                                        java.lang.String subject,
                                                        org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType)
                                                 throws java.lang.IllegalArgumentException
        Throws:
        java.lang.IllegalArgumentException
      • createPackagePath

        public static java.lang.String createPackagePath​(java.lang.String tenant,
                                                         java.lang.String namespace,
                                                         java.lang.String functionName,
                                                         java.lang.String fileName)
      • isAuthorizedRole

        public boolean isAuthorizedRole​(java.lang.String tenant,
                                        java.lang.String namespace,
                                        java.lang.String clientRole,
                                        org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)
                                 throws org.apache.pulsar.client.admin.PulsarAdminException
        Throws:
        org.apache.pulsar.client.admin.PulsarAdminException
      • componentStatusRequestValidate

        protected void componentStatusRequestValidate​(java.lang.String tenant,
                                                      java.lang.String namespace,
                                                      java.lang.String componentName,
                                                      java.lang.String clientRole,
                                                      org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
      • componentInstanceStatusRequestValidate

        protected void componentInstanceStatusRequestValidate​(java.lang.String tenant,
                                                              java.lang.String namespace,
                                                              java.lang.String componentName,
                                                              int instanceId,
                                                              java.lang.String clientRole,
                                                              org.apache.pulsar.broker.authentication.AuthenticationDataSource clientAuthenticationDataHttps)
      • isSuperUser

        public boolean isSuperUser​(java.lang.String clientRole,
                                   org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)
      • allowFunctionOps

        public boolean allowFunctionOps​(org.apache.pulsar.common.naming.NamespaceName namespaceName,
                                        java.lang.String role,
                                        org.apache.pulsar.broker.authentication.AuthenticationDataSource authenticationData)
      • getClassLoaderFromPackage

        protected java.lang.ClassLoader getClassLoaderFromPackage​(java.lang.String className,
                                                                  java.io.File packageFile,
                                                                  java.lang.String narExtractionDirectory)