daria-malkova commented on a change in pull request #16477:
URL: https://github.com/apache/beam/pull/16477#discussion_r784023100
##########
File path: playground/backend/internal/setup_tools/builder/setup_builder.go
##########
@@ -31,73 +31,139 @@ const (
javaLogConfigFilePlaceholder = "{logConfigFile}"
)
-// SetupExecutorBuilder return executor with set args for validator,
preparator, compiler and runner
-func SetupExecutorBuilder(paths fs_tool.LifeCyclePaths, pipelineOptions
string, sdkEnv *environment.BeamEnvs) (*executors.ExecutorBuilder, error) {
+// Validator return executor with set args for validator
+func Validator(paths *fs_tool.LifeCyclePaths, sdkEnv *environment.BeamEnvs)
(*executors.ExecutorBuilder, error) {
sdk := sdkEnv.ApacheBeamSdk
-
- if sdk == pb.Sdk_SDK_JAVA {
- pipelineOptions = utils.ReplaceSpacesWithEquals(pipelineOptions)
- }
-
val, err := utils.GetValidators(sdk, paths.AbsoluteSourceFilePath)
if err != nil {
return nil, err
}
+ builder := executors.NewExecutorBuilder().
+ WithValidator().
+ WithSdkValidators(val).
+ ExecutorBuilder
+ return &builder, err
+}
+
+// Preparer return executor with set args for preparator
+func Preparer(paths *fs_tool.LifeCyclePaths, sdkEnv *environment.BeamEnvs)
(*executors.ExecutorBuilder, error) {
+ sdk := sdkEnv.ApacheBeamSdk
prep, err := utils.GetPreparators(sdk, paths.AbsoluteSourceFilePath)
if err != nil {
return nil, err
}
- executorConfig := sdkEnv.ExecutorConfig
builder := executors.NewExecutorBuilder().
- WithExecutableFileName(paths.AbsoluteExecutableFilePath).
- WithWorkingDir(paths.AbsoluteBaseFolderPath).
- WithValidator().
- WithSdkValidators(val).
WithPreparator().
WithSdkPreparators(prep).
+ ExecutorBuilder
+ return &builder, err
+}
+
+// Compiler return executor with set args for compiler
+func Compiler(paths *fs_tool.LifeCyclePaths, sdkEnv *environment.BeamEnvs)
*executors.ExecutorBuilder {
+ sdk := sdkEnv.ApacheBeamSdk
+ executorConfig := sdkEnv.ExecutorConfig
+ builder := executors.NewExecutorBuilder().
WithCompiler().
WithCommand(executorConfig.CompileCmd).
+ WithWorkingDir(paths.AbsoluteBaseFolderPath).
WithArgs(executorConfig.CompileArgs).
WithFileName(paths.AbsoluteSourceFilePath).
+ ExecutorBuilder
+
+ switch sdk {
+ case pb.Sdk_SDK_JAVA:
+ builder.
+ WithCompiler().
+
WithFileName(GetFirstFileFromFolder(paths.AbsoluteSourceFileFolderPath))
+ }
+ return &builder
+}
+
+// Runner return executor with set args for runner
+func Runner(paths *fs_tool.LifeCyclePaths, pipelineOptions string, sdkEnv
*environment.BeamEnvs) (*executors.ExecutorBuilder, error) {
+ sdk := sdkEnv.ApacheBeamSdk
+
+ if sdk == pb.Sdk_SDK_JAVA {
+ pipelineOptions = utils.ReplaceSpacesWithEquals(pipelineOptions)
+ }
+ executorConfig := sdkEnv.ExecutorConfig
+ builder := executors.NewExecutorBuilder().
WithRunner().
+ WithWorkingDir(paths.AbsoluteBaseFolderPath).
WithCommand(executorConfig.RunCmd).
WithArgs(executorConfig.RunArgs).
WithPipelineOptions(strings.Split(pipelineOptions, " ")).
- WithTestRunner().
- WithCommand(executorConfig.TestCmd).
- WithArgs(executorConfig.TestArgs).
- WithWorkingDir(paths.AbsoluteSourceFileFolderPath).
ExecutorBuilder
switch sdk {
- case pb.Sdk_SDK_JAVA: // Executable name for java class will be known
after compilation
- args := make([]string, 0)
- for _, arg := range executorConfig.RunArgs {
- if strings.Contains(arg, javaLogConfigFilePlaceholder) {
- logConfigFilePath :=
filepath.Join(paths.AbsoluteBaseFolderPath, javaLogConfigFileName)
- arg = strings.Replace(arg,
javaLogConfigFilePlaceholder, logConfigFilePath, 1)
- }
- args = append(args, arg)
+ case pb.Sdk_SDK_JAVA: // Executable name for java class is known after
compilation
+ args := replaceLogPlaceholder(paths, executorConfig)
+ className, err :=
paths.ExecutableName(paths.AbsoluteExecutableFileFolderPath)
+ if err != nil {
+ return nil, fmt.Errorf("no executable file name found
for JAVA pipeline at %s", paths.AbsoluteExecutableFileFolderPath)
}
- builder = builder.WithRunner().WithArgs(args).ExecutorBuilder
- builder =
builder.WithTestRunner().WithWorkingDir(paths.AbsoluteBaseFolderPath).ExecutorBuilder
//change directory for unit test
+ builder = builder.
+ WithRunner().
Review comment:
Yes
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]