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());