Class FunctionCommon


  • public class FunctionCommon
    extends java.lang.Object
    Utils used for runtime.
    • Constructor Summary

      Constructors 
      Constructor Description
      FunctionCommon()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String capFirstLetter​(java.lang.Enum en)  
      static org.apache.pulsar.client.api.SubscriptionInitialPosition convertFromFunctionDetailsSubscriptionPosition​(org.apache.pulsar.functions.proto.Function.SubscriptionPosition subscriptionPosition)  
      static org.apache.pulsar.functions.proto.Function.ProcessingGuarantees convertProcessingGuarantee​(org.apache.pulsar.common.functions.FunctionConfig.ProcessingGuarantees processingGuarantees)  
      static org.apache.pulsar.common.functions.FunctionConfig.ProcessingGuarantees convertProcessingGuarantee​(org.apache.pulsar.functions.proto.Function.ProcessingGuarantees processingGuarantees)  
      static org.apache.pulsar.functions.proto.Function.FunctionDetails.Runtime convertRuntime​(org.apache.pulsar.common.functions.FunctionConfig.Runtime runtime)  
      static org.apache.pulsar.common.functions.FunctionConfig.Runtime convertRuntime​(org.apache.pulsar.functions.proto.Function.FunctionDetails.Runtime runtime)  
      static java.lang.Object createInstance​(java.lang.String userClassName, java.lang.ClassLoader classLoader)  
      static java.io.File createPkgTempFile()  
      static void downloadFromHttpUrl​(java.lang.String destPkgUrl, java.io.File targetFile)  
      static java.lang.ClassLoader extractClassLoader​(java.lang.String destPkgUrl)  
      static java.io.File extractFileFromPkgURL​(java.lang.String destPkgUrl)  
      static java.lang.String extractNameFromFullyQualifiedName​(java.lang.String fqfn)  
      static java.lang.String extractNamespaceFromFullyQualifiedName​(java.lang.String fqfn)  
      static org.apache.pulsar.common.nar.NarClassLoader extractNarClassLoader​(java.io.File packageFile, java.lang.String narExtractionDirectory)  
      static java.lang.String extractTenantFromFullyQualifiedName​(java.lang.String fqfn)  
      static int findAvailablePort()  
      static java.lang.ClassLoader getClassLoaderFromPackage​(org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType, java.lang.String className, java.io.File packageFile, java.lang.String narExtractionDirectory)  
      static java.lang.String getFullyQualifiedInstanceId​(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName, int instanceId)  
      static java.lang.String getFullyQualifiedInstanceId​(org.apache.pulsar.functions.proto.Function.Instance instance)  
      static java.lang.String getFullyQualifiedName​(java.lang.String tenant, java.lang.String namespace, java.lang.String functionName)  
      static java.lang.String getFullyQualifiedName​(org.apache.pulsar.functions.proto.Function.FunctionDetails FunctionDetails)  
      static java.lang.Class<?>[] getFunctionTypes​(java.lang.Class userClass, boolean isWindowConfigPresent)  
      static java.lang.Class<?>[] getFunctionTypes​(org.apache.pulsar.common.functions.FunctionConfig functionConfig, java.lang.ClassLoader classLoader)  
      static org.apache.pulsar.client.api.MessageId getMessageId​(long sequenceId)  
      static long getSequenceId​(org.apache.pulsar.client.api.MessageId messageId)  
      static java.lang.Class<?> getSinkType​(java.lang.Class sinkClass)  
      static java.lang.Class<?> getSinkType​(java.lang.String className, java.lang.ClassLoader classLoader)  
      static java.lang.Class<?> getSourceType​(java.lang.Class sourceClass)  
      static java.lang.Class<?> getSourceType​(java.lang.String className, java.lang.ClassLoader classLoader)  
      static java.lang.String getStateNamespace​(java.lang.String tenant, java.lang.String namespace)
      Convert pulsar tenant and namespace to state storage namespace.
      static java.lang.Class<?> getTypeArg​(java.lang.String className, java.lang.Class<?> funClass, java.lang.ClassLoader classLoader)  
      static java.lang.String getUniquePackageName​(java.lang.String packageName)  
      static boolean isFunctionCodeBuiltin​(org.apache.pulsar.functions.proto.Function.FunctionDetailsOrBuilder functionDetails)  
      static void mergeJson​(java.lang.String json, com.google.protobuf.AbstractMessage.Builder builder)  
      static java.lang.String printJson​(com.google.protobuf.MessageOrBuilder msg)  
      static double roundDecimal​(double value, int places)  
      static byte[] toByteArray​(java.lang.Object obj)  
      • Methods inherited from class java.lang.Object

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

      • FunctionCommon

        public FunctionCommon()
    • Method Detail

      • printJson

        public static java.lang.String printJson​(com.google.protobuf.MessageOrBuilder msg)
                                          throws java.io.IOException
        Throws:
        java.io.IOException
      • mergeJson

        public static void mergeJson​(java.lang.String json,
                                     com.google.protobuf.AbstractMessage.Builder builder)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • findAvailablePort

        public static int findAvailablePort()
      • getFunctionTypes

        public static java.lang.Class<?>[] getFunctionTypes​(org.apache.pulsar.common.functions.FunctionConfig functionConfig,
                                                            java.lang.ClassLoader classLoader)
                                                     throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • getFunctionTypes

        public static java.lang.Class<?>[] getFunctionTypes​(java.lang.Class userClass,
                                                            boolean isWindowConfigPresent)
      • createInstance

        public static java.lang.Object createInstance​(java.lang.String userClassName,
                                                      java.lang.ClassLoader classLoader)
      • convertRuntime

        public static org.apache.pulsar.functions.proto.Function.FunctionDetails.Runtime convertRuntime​(org.apache.pulsar.common.functions.FunctionConfig.Runtime runtime)
      • convertRuntime

        public static org.apache.pulsar.common.functions.FunctionConfig.Runtime convertRuntime​(org.apache.pulsar.functions.proto.Function.FunctionDetails.Runtime runtime)
      • convertProcessingGuarantee

        public static org.apache.pulsar.functions.proto.Function.ProcessingGuarantees convertProcessingGuarantee​(org.apache.pulsar.common.functions.FunctionConfig.ProcessingGuarantees processingGuarantees)
      • convertProcessingGuarantee

        public static org.apache.pulsar.common.functions.FunctionConfig.ProcessingGuarantees convertProcessingGuarantee​(org.apache.pulsar.functions.proto.Function.ProcessingGuarantees processingGuarantees)
      • getSourceType

        public static java.lang.Class<?> getSourceType​(java.lang.String className,
                                                       java.lang.ClassLoader classLoader)
                                                throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • getSourceType

        public static java.lang.Class<?> getSourceType​(java.lang.Class sourceClass)
      • getSinkType

        public static java.lang.Class<?> getSinkType​(java.lang.String className,
                                                     java.lang.ClassLoader classLoader)
                                              throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • getSinkType

        public static java.lang.Class<?> getSinkType​(java.lang.Class sinkClass)
      • downloadFromHttpUrl

        public static void downloadFromHttpUrl​(java.lang.String destPkgUrl,
                                               java.io.File targetFile)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • extractClassLoader

        public static java.lang.ClassLoader extractClassLoader​(java.lang.String destPkgUrl)
                                                        throws java.io.IOException,
                                                               java.net.URISyntaxException
        Throws:
        java.io.IOException
        java.net.URISyntaxException
      • createPkgTempFile

        public static java.io.File createPkgTempFile()
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • extractFileFromPkgURL

        public static java.io.File extractFileFromPkgURL​(java.lang.String destPkgUrl)
                                                  throws java.io.IOException,
                                                         java.net.URISyntaxException
        Throws:
        java.io.IOException
        java.net.URISyntaxException
      • extractNarClassLoader

        public static org.apache.pulsar.common.nar.NarClassLoader extractNarClassLoader​(java.io.File packageFile,
                                                                                        java.lang.String narExtractionDirectory)
      • getFullyQualifiedInstanceId

        public static java.lang.String getFullyQualifiedInstanceId​(org.apache.pulsar.functions.proto.Function.Instance instance)
      • getFullyQualifiedInstanceId

        public static java.lang.String getFullyQualifiedInstanceId​(java.lang.String tenant,
                                                                   java.lang.String namespace,
                                                                   java.lang.String functionName,
                                                                   int instanceId)
      • getSequenceId

        public static final long getSequenceId​(org.apache.pulsar.client.api.MessageId messageId)
      • getMessageId

        public static final org.apache.pulsar.client.api.MessageId getMessageId​(long sequenceId)
      • toByteArray

        public static byte[] toByteArray​(java.lang.Object obj)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • getUniquePackageName

        public static java.lang.String getUniquePackageName​(java.lang.String packageName)
      • getStateNamespace

        public static java.lang.String getStateNamespace​(java.lang.String tenant,
                                                         java.lang.String namespace)
        Convert pulsar tenant and namespace to state storage namespace.
        Parameters:
        tenant - pulsar tenant
        namespace - pulsar namespace
        Returns:
        state storage namespace
      • getFullyQualifiedName

        public static java.lang.String getFullyQualifiedName​(org.apache.pulsar.functions.proto.Function.FunctionDetails FunctionDetails)
      • getFullyQualifiedName

        public static java.lang.String getFullyQualifiedName​(java.lang.String tenant,
                                                             java.lang.String namespace,
                                                             java.lang.String functionName)
      • extractTenantFromFullyQualifiedName

        public static java.lang.String extractTenantFromFullyQualifiedName​(java.lang.String fqfn)
      • extractNamespaceFromFullyQualifiedName

        public static java.lang.String extractNamespaceFromFullyQualifiedName​(java.lang.String fqfn)
      • extractNameFromFullyQualifiedName

        public static java.lang.String extractNameFromFullyQualifiedName​(java.lang.String fqfn)
      • getTypeArg

        public static java.lang.Class<?> getTypeArg​(java.lang.String className,
                                                    java.lang.Class<?> funClass,
                                                    java.lang.ClassLoader classLoader)
                                             throws java.lang.ClassNotFoundException
        Throws:
        java.lang.ClassNotFoundException
      • roundDecimal

        public static double roundDecimal​(double value,
                                          int places)
      • getClassLoaderFromPackage

        public static java.lang.ClassLoader getClassLoaderFromPackage​(org.apache.pulsar.functions.proto.Function.FunctionDetails.ComponentType componentType,
                                                                      java.lang.String className,
                                                                      java.io.File packageFile,
                                                                      java.lang.String narExtractionDirectory)
      • capFirstLetter

        public static java.lang.String capFirstLetter​(java.lang.Enum en)
      • isFunctionCodeBuiltin

        public static boolean isFunctionCodeBuiltin​(org.apache.pulsar.functions.proto.Function.FunctionDetailsOrBuilder functionDetails)
      • convertFromFunctionDetailsSubscriptionPosition

        public static org.apache.pulsar.client.api.SubscriptionInitialPosition convertFromFunctionDetailsSubscriptionPosition​(org.apache.pulsar.functions.proto.Function.SubscriptionPosition subscriptionPosition)