This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/main by this push:
new eeddfa90c8 fix XP point for remoteWorkflowEngine, fixes #7140 (#7141)
eeddfa90c8 is described below
commit eeddfa90c827c336e0a9b3544c4906332cc322dc
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Mon May 18 18:57:21 2026 +0200
fix XP point for remoteWorkflowEngine, fixes #7140 (#7141)
---
.github/workflows/pr_tagger.yml | 3 ++-
.../hop/lineage/LineageRunLifecycleEmitter.java | 30 ++++++++++++----------
.../hop/lineage/xp/LineageHubWorkflowFinishXp.java | 8 +++---
.../hop/lineage/xp/LineageHubWorkflowStartXp.java | 8 +++---
4 files changed, 28 insertions(+), 21 deletions(-)
diff --git a/.github/workflows/pr_tagger.yml b/.github/workflows/pr_tagger.yml
index 9be1e4dc50..8a417b5f64 100644
--- a/.github/workflows/pr_tagger.yml
+++ b/.github/workflows/pr_tagger.yml
@@ -18,7 +18,8 @@
name: LabelPrs
on: [pull_request_target]
-permissions: read
+permissions:
+ contents: read
jobs:
label:
runs-on: ubuntu-latest
diff --git
a/engine/src/main/java/org/apache/hop/lineage/LineageRunLifecycleEmitter.java
b/engine/src/main/java/org/apache/hop/lineage/LineageRunLifecycleEmitter.java
index 5db1958504..148a1a0383 100644
---
a/engine/src/main/java/org/apache/hop/lineage/LineageRunLifecycleEmitter.java
+++
b/engine/src/main/java/org/apache/hop/lineage/LineageRunLifecycleEmitter.java
@@ -33,7 +33,6 @@ import org.apache.hop.pipeline.PipelineMeta;
import org.apache.hop.pipeline.engine.IPipelineEngine;
import org.apache.hop.pipeline.transform.ITransform;
import org.apache.hop.pipeline.transform.TransformMetaDataCombi;
-import org.apache.hop.workflow.Workflow;
import org.apache.hop.workflow.WorkflowExecutionExtension;
import org.apache.hop.workflow.WorkflowMeta;
import org.apache.hop.workflow.action.ActionMeta;
@@ -45,6 +44,10 @@ import org.apache.hop.workflow.engine.IWorkflowEngine;
*/
public final class LineageRunLifecycleEmitter {
+ public static final String OUTCOME = "outcome";
+ public static final String FAILED = "failed";
+ public static final String SUCCESS = "success";
+
private LineageRunLifecycleEmitter() {}
private static void fillFilenameFields(
@@ -119,7 +122,7 @@ public final class LineageRunLifecycleEmitter {
}
ctx.putAttribute("errors", String.valueOf(pipeline.getErrors()));
if (phase == RunLifecyclePhase.FINISHED || phase ==
RunLifecyclePhase.FAILED) {
- ctx.putAttribute("outcome", phase == RunLifecyclePhase.FAILED ? "failed"
: "success");
+ ctx.putAttribute(OUTCOME, phase == RunLifecyclePhase.FAILED ? FAILED :
SUCCESS);
}
LineageHub.getInstance()
.emit(
@@ -129,7 +132,8 @@ public final class LineageRunLifecycleEmitter {
new RunLifecycleLineagePayload(phase, detail)));
}
- public static void emitWorkflow(Workflow workflow, RunLifecyclePhase phase,
String detail) {
+ public static void emitWorkflow(
+ IWorkflowEngine<WorkflowMeta> workflow, RunLifecyclePhase phase, String
detail) {
WorkflowMeta meta = workflow.getWorkflowMeta();
String name = meta != null ? meta.getName() : null;
String filename = meta != null ? meta.getFilename() : null;
@@ -139,14 +143,14 @@ public final class LineageRunLifecycleEmitter {
.logChannelId(workflow.getLogChannelId())
.workflowName(name);
fillFilenameFields(ctx, filename, workflow);
- ctx.putAttribute("errors", String.valueOf(workflow.getErrors()));
Result result = workflow.getResult();
+ ctx.putAttribute("errors", String.valueOf(result != null ?
result.getNrErrors() : 0));
if (result != null) {
ctx.putAttribute("nrErrors", String.valueOf(result.getNrErrors()));
ctx.putAttribute("result", String.valueOf(result.getResult()));
}
if (phase == RunLifecyclePhase.FINISHED || phase ==
RunLifecyclePhase.FAILED) {
- ctx.putAttribute("outcome", phase == RunLifecyclePhase.FAILED ? "failed"
: "success");
+ ctx.putAttribute(OUTCOME, phase == RunLifecyclePhase.FAILED ? FAILED :
SUCCESS);
}
LineageHub.getInstance()
.emit(
@@ -157,15 +161,13 @@ public final class LineageRunLifecycleEmitter {
}
/** Terminal failure for a workflow at {@code WorkflowFinish} time. */
- public static boolean workflowFailed(Workflow workflow, Result result) {
- if (workflow.getErrors() > 0) {
- return true;
- }
- if (result != null) {
- if (result.getNrErrors() > 0) {
+ public static boolean workflowFailed(IWorkflowEngine<WorkflowMeta> workflow,
Result result) {
+ Result r = result != null ? result : (workflow != null ?
workflow.getResult() : null);
+ if (r != null) {
+ if (r.getNrErrors() > 0) {
return true;
}
- return !result.getResult();
+ return !r.getResult();
}
return false;
}
@@ -184,7 +186,7 @@ public final class LineageRunLifecycleEmitter {
ITransform transform = combi.transform;
ctx.putAttribute("transformErrors", String.valueOf(transform.getErrors()));
if (phase == RunLifecyclePhase.FINISHED || phase ==
RunLifecyclePhase.FAILED) {
- ctx.putAttribute("outcome", phase == RunLifecyclePhase.FAILED ? "failed"
: "success");
+ ctx.putAttribute(OUTCOME, phase == RunLifecyclePhase.FAILED ? FAILED :
SUCCESS);
}
LineageHub.getInstance()
.emit(
@@ -241,7 +243,7 @@ public final class LineageRunLifecycleEmitter {
}
if (phase == RunLifecyclePhase.FINISHED || phase ==
RunLifecyclePhase.FAILED) {
- ctx.putAttribute("outcome", phase == RunLifecyclePhase.FAILED ? "failed"
: "success");
+ ctx.putAttribute(OUTCOME, phase == RunLifecyclePhase.FAILED ? FAILED :
SUCCESS);
}
LineageHub.getInstance()
diff --git
a/engine/src/main/java/org/apache/hop/lineage/xp/LineageHubWorkflowFinishXp.java
b/engine/src/main/java/org/apache/hop/lineage/xp/LineageHubWorkflowFinishXp.java
index f8944cf890..780036e277 100644
---
a/engine/src/main/java/org/apache/hop/lineage/xp/LineageHubWorkflowFinishXp.java
+++
b/engine/src/main/java/org/apache/hop/lineage/xp/LineageHubWorkflowFinishXp.java
@@ -25,16 +25,18 @@ import org.apache.hop.core.variables.IVariables;
import org.apache.hop.lineage.LineageRunLifecycleEmitter;
import org.apache.hop.lineage.hub.LineageHub;
import org.apache.hop.lineage.model.RunLifecyclePhase;
-import org.apache.hop.workflow.Workflow;
+import org.apache.hop.workflow.WorkflowMeta;
+import org.apache.hop.workflow.engine.IWorkflowEngine;
@ExtensionPoint(
id = "LineageHubWorkflowFinishXp",
extensionPointId = "WorkflowFinish",
description =
"Emits lineage RUN_LIFECYCLE FINISHED or FAILED when a workflow ends
and flushes the lineage hub")
-public class LineageHubWorkflowFinishXp implements IExtensionPoint<Workflow> {
+public class LineageHubWorkflowFinishXp implements
IExtensionPoint<IWorkflowEngine<WorkflowMeta>> {
@Override
- public void callExtensionPoint(ILogChannel log, IVariables variables,
Workflow workflow)
+ public void callExtensionPoint(
+ ILogChannel log, IVariables variables, IWorkflowEngine<WorkflowMeta>
workflow)
throws HopException {
RunLifecyclePhase phase =
LineageRunLifecycleEmitter.workflowFailed(workflow,
workflow.getResult())
diff --git
a/engine/src/main/java/org/apache/hop/lineage/xp/LineageHubWorkflowStartXp.java
b/engine/src/main/java/org/apache/hop/lineage/xp/LineageHubWorkflowStartXp.java
index 3ca5d97eef..ed6c2099b9 100644
---
a/engine/src/main/java/org/apache/hop/lineage/xp/LineageHubWorkflowStartXp.java
+++
b/engine/src/main/java/org/apache/hop/lineage/xp/LineageHubWorkflowStartXp.java
@@ -24,15 +24,17 @@ import org.apache.hop.core.logging.ILogChannel;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.lineage.LineageRunLifecycleEmitter;
import org.apache.hop.lineage.model.RunLifecyclePhase;
-import org.apache.hop.workflow.Workflow;
+import org.apache.hop.workflow.WorkflowMeta;
+import org.apache.hop.workflow.engine.IWorkflowEngine;
@ExtensionPoint(
id = "LineageHubWorkflowStartXp",
extensionPointId = "WorkflowStart",
description = "Emits lineage RUN_LIFECYCLE STARTED for workflow
executions")
-public class LineageHubWorkflowStartXp implements IExtensionPoint<Workflow> {
+public class LineageHubWorkflowStartXp implements
IExtensionPoint<IWorkflowEngine<WorkflowMeta>> {
@Override
- public void callExtensionPoint(ILogChannel log, IVariables variables,
Workflow workflow)
+ public void callExtensionPoint(
+ ILogChannel log, IVariables variables, IWorkflowEngine<WorkflowMeta>
workflow)
throws HopException {
LineageRunLifecycleEmitter.emitWorkflow(workflow,
RunLifecyclePhase.STARTED, null);
}