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

Reply via email to