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 7ea271532b Cleanup XML of action Wait for file #1999
     new 6ebae26409 Merge pull request #2904 from nadment/1999
7ea271532b is described below

commit 7ea271532bd2a7fc9715ae21f9ae900b717a6f87
Author: Nicolas Adment <[email protected]>
AuthorDate: Sat May 6 16:55:48 2023 +0200

    Cleanup XML of action Wait for file #1999
---
 .../actions/waitforfile/ActionWaitForFile.java     | 64 ++++++----------------
 .../waitforfile/ActionWaitForFileDialog.java       |  6 +-
 2 files changed, 21 insertions(+), 49 deletions(-)

diff --git 
a/plugins/actions/waitforfile/src/main/java/org/apache/hop/workflow/actions/waitforfile/ActionWaitForFile.java
 
b/plugins/actions/waitforfile/src/main/java/org/apache/hop/workflow/actions/waitforfile/ActionWaitForFile.java
index 304fedb9e8..7f8dfece2e 100644
--- 
a/plugins/actions/waitforfile/src/main/java/org/apache/hop/workflow/actions/waitforfile/ActionWaitForFile.java
+++ 
b/plugins/actions/waitforfile/src/main/java/org/apache/hop/workflow/actions/waitforfile/ActionWaitForFile.java
@@ -24,12 +24,11 @@ import org.apache.hop.core.ICheckResult;
 import org.apache.hop.core.Result;
 import org.apache.hop.core.ResultFile;
 import org.apache.hop.core.annotations.Action;
-import org.apache.hop.core.exception.HopXmlException;
 import org.apache.hop.core.util.Utils;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.core.vfs.HopVfs;
-import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.i18n.BaseMessages;
+import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.resource.ResourceEntry;
 import org.apache.hop.resource.ResourceEntry.ResourceType;
@@ -39,8 +38,6 @@ import org.apache.hop.workflow.action.ActionBase;
 import org.apache.hop.workflow.action.IAction;
 import org.apache.hop.workflow.action.validator.ActionValidatorUtils;
 import org.apache.hop.workflow.action.validator.AndValidator;
-import org.w3c.dom.Node;
-
 import java.util.List;
 
 /** This defines a 'wait for file' action. Its use is to wait for a file to 
appear. */
@@ -55,15 +52,26 @@ import java.util.List;
 public class ActionWaitForFile extends ActionBase implements Cloneable, 
IAction {
   private static final Class<?> PKG = ActionWaitForFile.class; // For 
Translator
 
+  @HopMetadataProperty(key = "filename")
   private String filename;
-  private String maximumTimeout; // maximum timeout in seconds
-  private String checkCycleTime; // cycle time in seconds
+  /** Maximum timeout in seconds */
+  @HopMetadataProperty(key = "maximum_timeout")
+  private String maximumTimeout;  
+  /** cycle time in seconds */
+  @HopMetadataProperty(key = "check_cycle_time")
+  private String checkCycleTime; 
+  @HopMetadataProperty(key = "success_on_timeout")
   private boolean successOnTimeout;
+  @HopMetadataProperty(key = "file_size_check")
   private boolean fileSizeCheck;
+  @HopMetadataProperty(key = "add_filename_result")
   private boolean addFilenameToResult;
+  
+  // infinite timeout
+  private static String DEFAULT_MAXIMUM_TIMEOUT = "0";
 
-  private static String DEFAULT_MAXIMUM_TIMEOUT = "0"; // infinite timeout
-  private static String DEFAULT_CHECK_CYCLE_TIME = "60"; // 1 minute
+  // 1 minute
+  private static String DEFAULT_CHECK_CYCLE_TIME = "60";
 
   public ActionWaitForFile(String n) {
     super(n, "");
@@ -85,41 +93,6 @@ public class ActionWaitForFile extends ActionBase implements 
Cloneable, IAction
     return je;
   }
 
-  @Override
-  public String getXml() {
-    StringBuilder retval = new StringBuilder(100);
-
-    retval.append(super.getXml());
-    retval.append("      ").append(XmlHandler.addTagValue("filename", 
filename));
-    retval.append("      ").append(XmlHandler.addTagValue("maximum_timeout", 
maximumTimeout));
-    retval.append("      ").append(XmlHandler.addTagValue("check_cycle_time", 
checkCycleTime));
-    retval.append("      
").append(XmlHandler.addTagValue("success_on_timeout", successOnTimeout));
-    retval.append("      ").append(XmlHandler.addTagValue("file_size_check", 
fileSizeCheck));
-    retval
-        .append("      ")
-        .append(XmlHandler.addTagValue("add_filename_result", 
addFilenameToResult));
-
-    return retval.toString();
-  }
-
-  @Override
-  public void loadXml(Node entrynode, IHopMetadataProvider metadataProvider, 
IVariables variables)
-      throws HopXmlException {
-    try {
-      super.loadXml(entrynode);
-      filename = XmlHandler.getTagValue(entrynode, "filename");
-      maximumTimeout = XmlHandler.getTagValue(entrynode, "maximum_timeout");
-      checkCycleTime = XmlHandler.getTagValue(entrynode, "check_cycle_time");
-      successOnTimeout =
-          "Y".equalsIgnoreCase(XmlHandler.getTagValue(entrynode, 
"success_on_timeout"));
-      fileSizeCheck = "Y".equalsIgnoreCase(XmlHandler.getTagValue(entrynode, 
"file_size_check"));
-      addFilenameToResult =
-          "Y".equalsIgnoreCase(XmlHandler.getTagValue(entrynode, 
"add_filename_result"));
-    } catch (HopXmlException xe) {
-      throw new HopXmlException("Unable to load action of type 'wait for file' 
from XML node", xe);
-    }
-  }
-
   public void setFilename(String filename) {
     this.filename = filename;
   }
@@ -139,7 +112,7 @@ public class ActionWaitForFile extends ActionBase 
implements Cloneable, IAction
     Result result = previousResult;
     result.setResult(false);
 
-    // starttime (in seconds)
+    // Start time (in seconds)
     long timeStart = System.currentTimeMillis() / 1000;
 
     if (filename != null) {
@@ -379,9 +352,8 @@ public class ActionWaitForFile extends ActionBase 
implements Cloneable, IAction
       IVariables variables, WorkflowMeta workflowMeta) {
     List<ResourceReference> references = 
super.getResourceDependencies(variables, workflowMeta);
     if (!Utils.isEmpty(filename)) {
-      String realFileName = resolve(filename);
       ResourceReference reference = new ResourceReference(this);
-      reference.getEntries().add(new ResourceEntry(realFileName, 
ResourceType.FILE));
+      reference.getEntries().add(new ResourceEntry(getRealFilename(), 
ResourceType.FILE));
       references.add(reference);
     }
     return references;
diff --git 
a/plugins/actions/waitforfile/src/main/java/org/apache/hop/workflow/actions/waitforfile/ActionWaitForFileDialog.java
 
b/plugins/actions/waitforfile/src/main/java/org/apache/hop/workflow/actions/waitforfile/ActionWaitForFileDialog.java
index 5b2fe50fc5..1f95cfc8ab 100644
--- 
a/plugins/actions/waitforfile/src/main/java/org/apache/hop/workflow/actions/waitforfile/ActionWaitForFileDialog.java
+++ 
b/plugins/actions/waitforfile/src/main/java/org/apache/hop/workflow/actions/waitforfile/ActionWaitForFileDialog.java
@@ -296,9 +296,9 @@ public class ActionWaitForFileDialog extends ActionDialog 
implements IActionDial
   /** Copy information from the meta-data input to the dialog fields. */
   public void getData() {
     wName.setText(Const.nullToEmpty(action.getName()));
-    wFilename.setText(Const.NVL(action.getFilename(), ""));
-    wMaximumTimeout.setText(Const.NVL(action.getMaximumTimeout(), ""));
-    wCheckCycleTime.setText(Const.NVL(action.getCheckCycleTime(), ""));
+    wFilename.setText(Const.nullToEmpty(action.getFilename()));
+    wMaximumTimeout.setText(Const.nullToEmpty(action.getMaximumTimeout()));
+    wCheckCycleTime.setText(Const.nullToEmpty(action.getCheckCycleTime()));
     wSuccessOnTimeout.setSelection(action.isSuccessOnTimeout());
     wFileSizeCheck.setSelection(action.isFileSizeCheck());
     wAddFilenameResult.setSelection(action.isAddFilenameToResult());

Reply via email to