You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2023/03/21 11:38:33 UTC

[hop] branch master updated: fix parameters for #2002 and #1986

This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/master by this push:
     new c6f6154a49 fix parameters for #2002 and #1986
     new 1477a7afc5 Merge pull request #2754 from hansva/master
c6f6154a49 is described below

commit c6f6154a49ff4faaf9cce65ef1e4403b72564933
Author: Hans Van Akelyen <ha...@gmail.com>
AuthorDate: Tue Mar 21 10:37:58 2023 +0100

    fix parameters for #2002 and #1986
---
 .../workflow/actions/pipeline/ActionPipeline.java  | 140 ++++++++++----------
 .../actions/pipeline/ActionPipelineDialog.java     |  18 +--
 .../workflow/actions/workflow/ActionWorkflow.java  | 142 +++++++++++----------
 .../actions/workflow/ActionWorkflowDialog.java     |  24 ++--
 4 files changed, 167 insertions(+), 157 deletions(-)

diff --git a/plugins/actions/pipeline/src/main/java/org/apache/hop/workflow/actions/pipeline/ActionPipeline.java b/plugins/actions/pipeline/src/main/java/org/apache/hop/workflow/actions/pipeline/ActionPipeline.java
index cb16636561..5d7c0f6c13 100644
--- a/plugins/actions/pipeline/src/main/java/org/apache/hop/workflow/actions/pipeline/ActionPipeline.java
+++ b/plugins/actions/pipeline/src/main/java/org/apache/hop/workflow/actions/pipeline/ActionPipeline.java
@@ -17,6 +17,11 @@
 
 package org.apache.hop.workflow.actions.pipeline;
 
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.ICheckResult;
@@ -56,12 +61,6 @@ import org.apache.hop.workflow.action.validator.ActionValidatorUtils;
 import org.apache.hop.workflow.action.validator.AndValidator;
 import org.apache.hop.workflow.engine.IWorkflowEngine;
 
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
-
 /** This is the action that defines a pipeline to be run. */
 @Action(
     id = "PIPELINE",
@@ -77,8 +76,8 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
   public static final class ParameterDefinition {
     @HopMetadataProperty(key = "pass_all_parameters")
     private boolean passingAllParameters = true;
-    
-    @HopMetadataProperty(groupKey = "parameters", key = "parameter")
+
+    @HopMetadataProperty(key = "parameter")
     private List<Parameter> parameters;
 
     public ParameterDefinition() {
@@ -92,7 +91,7 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
     public void setPassingAllParameters(boolean passingAllParameters) {
       this.passingAllParameters = passingAllParameters;
     }
-    
+
     public List<Parameter> getParameters() {
       return parameters;
     }
@@ -100,52 +99,56 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
     public void setParameters(List<Parameter> parameters) {
       this.parameters = parameters;
     }
-    
+
     public String[] getNames() {
       List<String> list = new ArrayList<>();
-      for (Parameter parameter:parameters) {
+      for (Parameter parameter : parameters) {
         list.add(parameter.getName());
       }
       return list.toArray(new String[0]);
     }
-    
+
     public String[] getValues() {
       List<String> list = new ArrayList<>();
-      for (Parameter parameter:parameters) {
+      for (Parameter parameter : parameters) {
         list.add(parameter.getValue());
       }
       return list.toArray(new String[0]);
     }
   }
-  
+
   public static final class Parameter {
-    @HopMetadataProperty
-    public String name;
-    @HopMetadataProperty
-    public String value;
-    @HopMetadataProperty(key="stream_name")
-    public String field;   
-    
+    @HopMetadataProperty public String name;
+    @HopMetadataProperty public String value;
+
+    @HopMetadataProperty(key = "stream_name")
+    public String field;
+
     public String getName() {
       return name;
     }
+
     public String getValue() {
       return value;
     }
+
     public String getField() {
       return field;
     }
+
     public void setName(String name) {
       this.name = name;
     }
+
     public void setValue(String value) {
       this.value = value;
     }
+
     public void setField(String field) {
       this.field = field;
     }
   }
-  
+
   @HopMetadataProperty(key = "filename")
   private String filename;
 
@@ -173,7 +176,7 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
   @HopMetadataProperty(key = "logfile")
   private String logfile;
 
-  @HopMetadataProperty(key = "logext")  
+  @HopMetadataProperty(key = "logext")
   private String logext;
 
   @HopMetadataProperty(key = "add_date")
@@ -181,7 +184,7 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
 
   @HopMetadataProperty(key = "add_time")
   private boolean addTime;
- 
+
   @HopMetadataProperty(key = "loglevel", storeWithCode = true)
   private LogLevel logFileLevel;
 
@@ -190,7 +193,7 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
 
   @HopMetadataProperty(key = "parameters")
   private ParameterDefinition parameterDefinition;
-  
+
   @HopMetadataProperty(key = "run_configuration")
   private String runConfiguration;
 
@@ -205,7 +208,7 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
     this("");
     clear();
   }
-  
+
   public ParameterDefinition getParameterDefinition() {
     return parameterDefinition;
   }
@@ -433,48 +436,46 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
 
           if (paramsFromPrevious) { // Copy the input the parameters
 
-              for (Parameter parameter : parameterDefinition.getParameters()) {
-                if (!Utils.isEmpty(parameter.getName())) {
-                  // We have a parameter
-                  if (Utils.isEmpty(Const.trim(parameter.getField()))) {
-                    namedParam.setParameterValue(
-                        parameter.getName(), Const.NVL(resolve(parameter.getValue()), ""));
-                  } else {
-                    String fieldValue = "";
-
-                    if (resultRow != null) {
-                      fieldValue = resultRow.getString(parameter.getField(), "");
-                    }
-                    // Get the value from the input stream
-                    namedParam.setParameterValue(parameter.getName(), Const.NVL(fieldValue, ""));
+            for (Parameter parameter : parameterDefinition.getParameters()) {
+              if (!Utils.isEmpty(parameter.getName())) {
+                // We have a parameter
+                if (Utils.isEmpty(Const.trim(parameter.getField()))) {
+                  namedParam.setParameterValue(
+                      parameter.getName(), Const.NVL(resolve(parameter.getValue()), ""));
+                } else {
+                  String fieldValue = "";
+
+                  if (resultRow != null) {
+                    fieldValue = resultRow.getString(parameter.getField(), "");
                   }
+                  // Get the value from the input stream
+                  namedParam.setParameterValue(parameter.getName(), Const.NVL(fieldValue, ""));
                 }
               }
-
+            }
           }
         } else {
 
           if (paramsFromPrevious) {
             // Copy the input the parameters
             for (Parameter parameter : parameterDefinition.getParameters()) {
-                if (!Utils.isEmpty(parameter.getName())) {
-                  // We have a parameter
-                  if (Utils.isEmpty(Const.trim(parameter.getField()))) {
-                    namedParam.setParameterValue(
-                        parameter.getName(), Const.NVL(resolve(parameter.getValue()), ""));
-                  } else {
-                    String fieldValue = "";
-
-                    if (resultRow != null) {
-                      fieldValue = resultRow.getString(parameter.getField(), "");
-                    }
-                    // Get the value from the input stream
-                    namedParam.setParameterValue(parameter.getName(), Const.NVL(fieldValue, ""));
+              if (!Utils.isEmpty(parameter.getName())) {
+                // We have a parameter
+                if (Utils.isEmpty(Const.trim(parameter.getField()))) {
+                  namedParam.setParameterValue(
+                      parameter.getName(), Const.NVL(resolve(parameter.getValue()), ""));
+                } else {
+                  String fieldValue = "";
+
+                  if (resultRow != null) {
+                    fieldValue = resultRow.getString(parameter.getField(), "");
                   }
+                  // Get the value from the input stream
+                  namedParam.setParameterValue(parameter.getName(), Const.NVL(fieldValue, ""));
                 }
               }
             }
-
+          }
         }
 
         // Handle the parameters...
@@ -611,8 +612,8 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
     result.clear(); // clear only the numbers, NOT the files or rows.
     result.add(newResult);
 
-    if ( !Utils.isEmpty( newResult.getRows() )) {
-      result.setRows( newResult.getRows() );
+    if (!Utils.isEmpty(newResult.getRows())) {
+      result.setRows(newResult.getRows());
     }
   }
 
@@ -774,12 +775,16 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
     return logfile;
   }
 
-  /** @return the waitingToFinish */
+  /**
+   * @return the waitingToFinish
+   */
   public boolean isWaitingToFinish() {
     return waitingToFinish;
   }
 
-  /** @param waitingToFinish the waitingToFinish to set */
+  /**
+   * @param waitingToFinish the waitingToFinish to set
+   */
   public void setWaitingToFinish(boolean waitingToFinish) {
     this.waitingToFinish = waitingToFinish;
   }
@@ -838,11 +843,13 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
     super.setParentWorkflowMeta(parentWorkflowMeta);
   }
 
-  public void prepareFieldNamesParameters(List<Parameter> parameters, INamedParameters namedParam,
-      ActionPipeline actionPipeline) throws UnknownParamException {
+  public void prepareFieldNamesParameters(
+      List<Parameter> parameters, INamedParameters namedParam, ActionPipeline actionPipeline)
+      throws UnknownParamException {
     for (Parameter parameter : parameters) {
       // Grab the parameter value set in the Pipeline action
-      // Set parameter.getField() only if exists and if it is not declared any static parameter.getValue()
+      // Set parameter.getField() only if exists and if it is not declared any static
+      // parameter.getValue()
       //
       String thisValue = namedParam.getParameterValue(parameter.getName());
       // Set value only if is not empty at namedParam and exists in parameter.getField
@@ -858,18 +865,17 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
         // Or if not in parameter.getValue() then we can add that variable with that value too
         actionPipeline.setVariable(parameter.getName(), Const.NVL(thisValue, ""));
       }
-
     }
   }
- 
+
   public boolean isExecPerRow() {
     return execPerRow;
   }
-  
+
   public void setExecPerRow(boolean runEveryResultRow) {
     this.execPerRow = runEveryResultRow;
   }
-  
+
   public boolean isAddDate() {
     return addDate;
   }
@@ -956,5 +962,5 @@ public class ActionPipeline extends ActionBase implements Cloneable, IAction {
 
   public void setClearResultFiles(boolean clearResultFiles) {
     this.clearResultFiles = clearResultFiles;
-  }  
+  }
 }
diff --git a/plugins/actions/pipeline/src/main/java/org/apache/hop/workflow/actions/pipeline/ActionPipelineDialog.java b/plugins/actions/pipeline/src/main/java/org/apache/hop/workflow/actions/pipeline/ActionPipelineDialog.java
index 2166418cb2..ba463fe8f1 100644
--- a/plugins/actions/pipeline/src/main/java/org/apache/hop/workflow/actions/pipeline/ActionPipelineDialog.java
+++ b/plugins/actions/pipeline/src/main/java/org/apache/hop/workflow/actions/pipeline/ActionPipelineDialog.java
@@ -17,6 +17,7 @@
 
 package org.apache.hop.workflow.actions.pipeline;
 
+import java.util.List;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.extension.ExtensionPointHandler;
@@ -54,8 +55,6 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.TableItem;
 
-import java.util.List;
-
 /** This dialog allows you to edit the pipeline action (ActionPipeline) */
 public class ActionPipelineDialog extends ActionBaseDialog implements IActionDialog {
   private static final Class<?> PKG = ActionPipeline.class; // For Translator
@@ -128,7 +127,7 @@ public class ActionPipelineDialog extends ActionBaseDialog implements IActionDia
     fdWait.top = new FormAttachment(wClearFiles, 10);
     fdWait.left = new FormAttachment(0, 0);
     wWaitingToFinish.setLayoutData(fdWait);
-    
+
     // force reload from file specification
     wbGetParams.addListener(SWT.Selection, e -> getParameters(null));
 
@@ -191,7 +190,7 @@ public class ActionPipelineDialog extends ActionBaseDialog implements IActionDia
   protected Control createRunConfigurationControl() {
     wRunConfiguration =
         new MetaSelectionLine<>(
-            variables,            
+            variables,
             metadataProvider,
             PipelineRunConfiguration.class,
             shell,
@@ -199,7 +198,7 @@ public class ActionPipelineDialog extends ActionBaseDialog implements IActionDia
             null,
             null,
             true);
-    
+
     return wRunConfiguration;
   }
 
@@ -311,15 +310,10 @@ public class ActionPipelineDialog extends ActionBaseDialog implements IActionDia
     actionPipeline.setName(wName.getText());
     actionPipeline.setRunConfiguration(wRunConfiguration.getText());
     actionPipeline.setFileName(wPath.getText());
-    if (actionPipeline.getFilename().isEmpty()) {
-      throw new HopException(
-          BaseMessages.getString(
-              PKG, "ActionPipeline.Dialog.Exception.NoValidMappingDetailsFound"));
-    }
 
     ParameterDefinition parameterDefinition = action.getParameterDefinition();
     parameterDefinition.getParameters().clear();
-    
+
     // Do the parameters
     int nrItems = wParameters.nrNonEmpty();
     for (int i = 0; i < nrItems; i++) {
@@ -341,7 +335,7 @@ public class ActionPipelineDialog extends ActionBaseDialog implements IActionDia
       } else {
         parameter.setValue("");
       }
-      
+
       parameterDefinition.getParameters().add(parameter);
     }
     parameterDefinition.setPassingAllParameters(wPassParams.getSelection());
diff --git a/plugins/actions/workflow/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflow.java b/plugins/actions/workflow/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflow.java
index 10bf07a9a3..b892056e39 100644
--- a/plugins/actions/workflow/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflow.java
+++ b/plugins/actions/workflow/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflow.java
@@ -17,6 +17,12 @@
 
 package org.apache.hop.workflow.actions.workflow;
 
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
 import org.apache.commons.vfs2.FileObject;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.ICheckResult;
@@ -52,13 +58,6 @@ import org.apache.hop.workflow.action.validator.AndValidator;
 import org.apache.hop.workflow.engine.IWorkflowEngine;
 import org.apache.hop.workflow.engine.WorkflowEngineFactory;
 
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
 /**
  * Recursive definition of a Workflow. This transform means that an entire Workflow has to be
  * executed. It can be the same Workflow, but just make sure that you don't get an endless loop.
@@ -78,8 +77,8 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
   public static final class ParameterDefinition {
     @HopMetadataProperty(key = "pass_all_parameters")
     private boolean passingAllParameters = true;
-    
-    @HopMetadataProperty(groupKey = "parameters", key = "parameter")
+
+    @HopMetadataProperty(key = "parameter")
     private List<Parameter> parameters;
 
     public ParameterDefinition() {
@@ -93,7 +92,7 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
     public void setPassingAllParameters(boolean passingAllParameters) {
       this.passingAllParameters = passingAllParameters;
     }
-    
+
     public List<Parameter> getParameters() {
       return parameters;
     }
@@ -102,74 +101,78 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
       this.parameters = parameters;
     }
   }
-  
+
   public static final class Parameter {
-    @HopMetadataProperty
-    public String name;
-    @HopMetadataProperty
-    public String value;
-    @HopMetadataProperty(key="stream_name")
-    public String field;   
-    
+    @HopMetadataProperty public String name;
+    @HopMetadataProperty public String value;
+
+    @HopMetadataProperty(key = "stream_name")
+    public String field;
+
     public String getName() {
       return name;
     }
+
     public String getValue() {
       return value;
     }
+
     public String getField() {
       return field;
     }
+
     public void setName(String name) {
       this.name = name;
     }
+
     public void setValue(String value) {
       this.value = value;
     }
+
     public void setField(String field) {
       this.field = field;
     }
   }
-  
+
   @HopMetadataProperty(key = "filename")
   private String filename;
-  
+
   @HopMetadataProperty(key = "params_from_previous")
   private boolean paramsFromPrevious;
-  
+
   @HopMetadataProperty(key = "exec_per_row")
   private boolean execPerRow;
-  
+
   @HopMetadataProperty(key = "set_logfile")
   private boolean setLogfile;
-  
+
   @HopMetadataProperty(key = "logfile")
   private String logfile;
-  
+
   @HopMetadataProperty(key = "logext")
-  private String logext; 
-  
+  private String logext;
+
   @HopMetadataProperty(key = "add_date")
   private boolean addDate;
-  
+
   @HopMetadataProperty(key = "add_time")
   private boolean addTime;
-  
+
   @HopMetadataProperty(key = "loglevel", storeWithCode = true)
   private LogLevel logFileLevel;
-  
+
   @HopMetadataProperty(key = "set_append_logfile")
   private boolean setAppendLogfile;
-  
+
   @HopMetadataProperty(key = "create_parent_folder")
   private boolean createParentFolder;
-  
+
   @HopMetadataProperty(key = "wait_until_finished")
   private boolean waitingToFinish = true;
-  
+
   @HopMetadataProperty(key = "parameters")
   private ParameterDefinition parameterDefinition;
-  
+
   @HopMetadataProperty(key = "run_configuration")
   private String runConfiguration;
 
@@ -347,35 +350,34 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
         // Now add those parameter values specified by the user in the action
         //
         for (Parameter parameter : parameterDefinition.getParameters()) {
-            if (!Utils.isEmpty(parameter.getName())) {
+          if (!Utils.isEmpty(parameter.getName())) {
 
-              // If it's not yet present in the parent workflow, add it...
-              //
-              if (Const.indexOfString(parameter.getName(), namedParam.listParameters()) < 0) {
-                // We have a parameter
-                try {
-                  namedParam.addParameterDefinition(parameter.getName(), "", "Action runtime");
-                } catch (DuplicateParamException e) {
-                  // Should never happen
-                  //
-                  logError("Duplicate parameter definition for " + parameter.getName());
-                }
-              }
-
-              if (Utils.isEmpty(Const.trim(parameter.getField()))) {
-                namedParam.setParameterValue(
-                    parameter.getName(), Const.NVL(resolve(parameter.getValue()), ""));
-              } else {
-                // something filled in, in the field column...
+            // If it's not yet present in the parent workflow, add it...
+            //
+            if (Const.indexOfString(parameter.getName(), namedParam.listParameters()) < 0) {
+              // We have a parameter
+              try {
+                namedParam.addParameterDefinition(parameter.getName(), "", "Action runtime");
+              } catch (DuplicateParamException e) {
+                // Should never happen
                 //
-                String value = "";
-                if (resultRow != null) {
-                  value = resultRow.getString(parameter.getField(), "");
-                }
-                namedParam.setParameterValue(parameter.getName(), value);
+                logError("Duplicate parameter definition for " + parameter.getName());
               }
             }
 
+            if (Utils.isEmpty(Const.trim(parameter.getField()))) {
+              namedParam.setParameterValue(
+                  parameter.getName(), Const.NVL(resolve(parameter.getValue()), ""));
+            } else {
+              // something filled in, in the field column...
+              //
+              String value = "";
+              if (resultRow != null) {
+                value = resultRow.getString(parameter.getField(), "");
+              }
+              namedParam.setParameterValue(parameter.getName(), value);
+            }
+          }
         }
 
         Result oneResult = new Result();
@@ -396,8 +398,8 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
               if (!Utils.isEmpty(parameter.getName())) {
                 // We have a parameter
                 if (Utils.isEmpty(Const.trim(parameter.getField()))) {
-                  namedParam.setParameterValue(parameter.getName(),
-                      Const.NVL(resolve(parameter.getValue()), ""));
+                  namedParam.setParameterValue(
+                      parameter.getName(), Const.NVL(resolve(parameter.getValue()), ""));
                 } else {
                   String fieldValue = "";
 
@@ -421,8 +423,8 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
               if (!Utils.isEmpty(parameter.getName())) {
                 // We have a parameter
                 if (Utils.isEmpty(Const.trim(parameter.getField()))) {
-                  namedParam.setParameterValue(parameter.getName(),
-                      Const.NVL(resolve(parameter.getValue()), ""));
+                  namedParam.setParameterValue(
+                      parameter.getName(), Const.NVL(resolve(parameter.getValue()), ""));
                 } else {
                   String fieldValue = "";
 
@@ -728,12 +730,16 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
     }
   }
 
-  /** @return Returns the runEveryResultRow. */
+  /**
+   * @return Returns the runEveryResultRow.
+   */
   public boolean isExecPerRow() {
     return execPerRow;
   }
 
-  /** @param runEveryResultRow The runEveryResultRow to set. */
+  /**
+   * @param runEveryResultRow The runEveryResultRow to set.
+   */
   public void setExecPerRow(boolean runEveryResultRow) {
     this.execPerRow = runEveryResultRow;
   }
@@ -825,12 +831,16 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
     return logfile;
   }
 
-  /** @return the waitingToFinish */
+  /**
+   * @return the waitingToFinish
+   */
   public boolean isWaitingToFinish() {
     return waitingToFinish;
   }
 
-  /** @param waitingToFinish the waitingToFinish to set */
+  /**
+   * @param waitingToFinish the waitingToFinish to set
+   */
   public void setWaitingToFinish(boolean waitingToFinish) {
     this.waitingToFinish = waitingToFinish;
   }
@@ -875,7 +885,7 @@ public class ActionWorkflow extends ActionBase implements Cloneable, IAction {
       int index, IHopMetadataProvider metadataProvider, IVariables variables) throws HopException {
     return getWorkflowMeta(metadataProvider, variables);
   }
-  
+
   public boolean isAddDate() {
     return addDate;
   }
diff --git a/plugins/actions/workflow/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflowDialog.java b/plugins/actions/workflow/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflowDialog.java
index 1245b80bca..39b69247a6 100644
--- a/plugins/actions/workflow/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflowDialog.java
+++ b/plugins/actions/workflow/src/main/java/org/apache/hop/workflow/actions/workflow/ActionWorkflowDialog.java
@@ -18,6 +18,7 @@
 package org.apache.hop.workflow.actions.workflow;
 
 import com.google.common.annotations.VisibleForTesting;
+import java.util.List;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.extension.ExtensionPointHandler;
@@ -54,15 +55,13 @@ import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.TableItem;
 
-import java.util.List;
-
 /** This dialog allows you to edit the workflow action (ActionWorkflow) */
 public class ActionWorkflowDialog extends ActionBaseDialog implements IActionDialog {
   private static final Class<?> PKG = ActionWorkflow.class; // For Translator
 
   private ActionWorkflow action;
   private MetaSelectionLine<WorkflowRunConfiguration> wRunConfiguration;
-  
+
   private static final String[] FILE_FILTERLOGNAMES =
       new String[] {
         BaseMessages.getString(PKG, "ActionWorkflow.Fileformat.TXT"),
@@ -165,16 +164,17 @@ public class ActionWorkflowDialog extends ActionBaseDialog implements IActionDia
       new ErrorDialog(
           shell,
           BaseMessages.getString(PKG, "ActionWorkflowDialog.Exception.UnableToLoadWorkflow.Title"),
-          BaseMessages.getString(PKG, "ActionWorkflowDialog.Exception.UnableToLoadWorkflow.Message"),
+          BaseMessages.getString(
+              PKG, "ActionWorkflowDialog.Exception.UnableToLoadWorkflow.Message"),
           e);
     }
   }
-  
+
   @Override
   protected Control createRunConfigurationControl() {
-  wRunConfiguration =
+    wRunConfiguration =
         new MetaSelectionLine<>(
-            variables,            
+            variables,
             metadataProvider,
             WorkflowRunConfiguration.class,
             shell,
@@ -265,7 +265,7 @@ public class ActionWorkflowDialog extends ActionBaseDialog implements IActionDia
       } catch (HopException e) {
         // Ignore errors
       }
-     
+
       wRunConfiguration.setItems(runConfigurations.toArray(new String[0]));
       if (Utils.isEmpty(action.getRunConfiguration())) {
         wRunConfiguration.select(0);
@@ -277,7 +277,7 @@ public class ActionWorkflowDialog extends ActionBaseDialog implements IActionDia
     }
 
     setLogFileEnabled();
-    
+
     wName.selectAll();
     wName.setFocus();
   }
@@ -298,12 +298,12 @@ public class ActionWorkflowDialog extends ActionBaseDialog implements IActionDia
 
     ParameterDefinition parameterDefinition = action.getParameterDefinition();
     parameterDefinition.getParameters().clear();
-    
+
     // Do the parameters
     int nrItems = wParameters.nrNonEmpty();
     for (int i = 0; i < nrItems; i++) {
       TableItem item = wParameters.getNonEmpty(i);
-      
+
       Parameter parameter = new Parameter();
       parameter.setName(item.getText(1));
 
@@ -320,7 +320,7 @@ public class ActionWorkflowDialog extends ActionBaseDialog implements IActionDia
       } else {
         parameter.setValue("");
       }
-      
+
       parameterDefinition.getParameters().add(parameter);
     }
     parameterDefinition.setPassingAllParameters(wPassParams.getSelection());