@@ -161,9 +161,9 @@ func MakePodTemplate(container *corev1.Container, volumes []corev1.Volume,
161161 }
162162}
163163
164- func MakeJavaFunctionCommand (downloadPath , packageFile , name , clusterName , details , memory string , authProvided bool ) []string {
164+ func MakeJavaFunctionCommand (downloadPath , packageFile , name , clusterName , details , memory , extraDependenciesDir string , authProvided bool ) []string {
165165 processCommand := setShardIDEnvironmentVariableCommand () + " && " +
166- strings .Join (getProcessJavaRuntimeArgs (name , packageFile , clusterName , details , memory , authProvided ), " " )
166+ strings .Join (getProcessJavaRuntimeArgs (name , packageFile , clusterName , details , memory , extraDependenciesDir , authProvided ), " " )
167167 if downloadPath != "" {
168168 // prepend download command if the downPath is provided
169169 downloadCommand := strings .Join (getDownloadCommand (downloadPath , packageFile ), " " )
@@ -235,12 +235,16 @@ func setShardIDEnvironmentVariableCommand() string {
235235 return fmt .Sprintf ("%s=${POD_NAME##*-} && echo shardId=${%s} && %s" , EnvShardID , EnvShardID , tlsCommand )
236236}
237237
238- func getProcessJavaRuntimeArgs (name string , packageName string , clusterName string , details string , memory string , authProvided bool ) []string {
238+ func getProcessJavaRuntimeArgs (name , packageName , clusterName , details , memory , extraDependenciesDir string , authProvided bool ) []string {
239+ classPath := "/pulsar/instances/java-instance.jar"
240+ if extraDependenciesDir != "" {
241+ classPath = fmt .Sprintf ("%s:%s/*" , classPath , extraDependenciesDir )
242+ }
239243 args := []string {
240244 "exec" ,
241245 "java" ,
242246 "-cp" ,
243- "/pulsar/instances/java-instance.jar" ,
247+ classPath ,
244248 fmt .Sprintf ("-D%s=%s" , FunctionsInstanceClasspath , "/pulsar/lib/*" ),
245249 "-Dlog4j.configurationFile=kubernetes_instance_log4j2.xml" , // todo
246250 "-Dpulsar.function.log.dir=logs/functions" ,
@@ -255,7 +259,7 @@ func getProcessJavaRuntimeArgs(name string, packageName string, clusterName stri
255259 return args
256260}
257261
258- func getProcessPythonRuntimeArgs (name string , packageName string , clusterName string , details string , authProvided bool ) []string {
262+ func getProcessPythonRuntimeArgs (name , packageName , clusterName , details string , authProvided bool ) []string {
259263 args := []string {
260264 "exec" ,
261265 "python" ,
0 commit comments