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 9452bc2970 Add Hop version variable, fixes #5855 (#5870)
9452bc2970 is described below

commit 9452bc2970265f90efa6579741f016baf73fee83
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Thu Oct 23 10:37:55 2025 +0200

    Add Hop version variable, fixes #5855 (#5870)
---
 core/src/main/java/org/apache/hop/core/Const.java              | 3 +++
 engine/src/main/java/org/apache/hop/pipeline/Pipeline.java     | 4 ++++
 engine/src/main/java/org/apache/hop/pipeline/PipelineMeta.java | 4 ++++
 engine/src/main/java/org/apache/hop/workflow/Workflow.java     | 4 ++++
 engine/src/main/java/org/apache/hop/workflow/WorkflowMeta.java | 4 ++++
 5 files changed, 19 insertions(+)

diff --git a/core/src/main/java/org/apache/hop/core/Const.java 
b/core/src/main/java/org/apache/hop/core/Const.java
index e451159332..adf55e0858 100644
--- a/core/src/main/java/org/apache/hop/core/Const.java
+++ b/core/src/main/java/org/apache/hop/core/Const.java
@@ -182,6 +182,9 @@ public class Const {
       description = "The operating system the hop platform runs on.")
   public static final String HOP_PLATFORM_OS = "HOP_PLATFORM_OS";
 
+  /** Variable containing the current hop version in pipelines and workflows */
+  public static final String HOP_VERSION = "HOP_VERSION";
+
   /** The runtime that is being used */
   @Variable(scope = VariableScope.SYSTEM, description = "The runtime that is 
being used.")
   public static final String HOP_PLATFORM_RUNTIME = "HOP_PLATFORM_RUNTIME";
diff --git a/engine/src/main/java/org/apache/hop/pipeline/Pipeline.java 
b/engine/src/main/java/org/apache/hop/pipeline/Pipeline.java
index 6cedad0bfd..f385faee87 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/Pipeline.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/Pipeline.java
@@ -48,6 +48,7 @@ import org.apache.commons.vfs2.FileObject;
 import org.apache.hop.core.BlockingBatchingRowSet;
 import org.apache.hop.core.BlockingRowSet;
 import org.apache.hop.core.Const;
+import org.apache.hop.core.HopVersionProvider;
 import org.apache.hop.core.IExecutor;
 import org.apache.hop.core.IExtensionData;
 import org.apache.hop.core.IRowSet;
@@ -2248,6 +2249,9 @@ public abstract class Pipeline
     // but the other around is not possible.
 
     setInternalEntryCurrentDirectory(hasFilename);
+
+    HopVersionProvider versionProvider = new HopVersionProvider();
+    setVariable(Const.HOP_VERSION, versionProvider.getVersion()[0]);
   }
 
   private void setInternalLoggingVariables() {
diff --git a/engine/src/main/java/org/apache/hop/pipeline/PipelineMeta.java 
b/engine/src/main/java/org/apache/hop/pipeline/PipelineMeta.java
index 2ee5733454..6ccc2cdd4c 100644
--- a/engine/src/main/java/org/apache/hop/pipeline/PipelineMeta.java
+++ b/engine/src/main/java/org/apache/hop/pipeline/PipelineMeta.java
@@ -37,6 +37,7 @@ import org.apache.hop.base.AbstractMeta;
 import org.apache.hop.base.BaseHopMeta;
 import org.apache.hop.core.CheckResult;
 import org.apache.hop.core.Const;
+import org.apache.hop.core.HopVersionProvider;
 import org.apache.hop.core.ICheckResult;
 import org.apache.hop.core.IProgressMonitor;
 import org.apache.hop.core.NotePadMeta;
@@ -3315,6 +3316,9 @@ public class PipelineMeta extends AbstractMeta
     setInternalFilenameHopVariables(variables);
     setInternalNameHopVariable(variables);
     setInternalEntryCurrentDirectory(variables);
+
+    HopVersionProvider versionProvider = new HopVersionProvider();
+    variables.setVariable(Const.HOP_VERSION, versionProvider.getVersion()[0]);
   }
 
   /**
diff --git a/engine/src/main/java/org/apache/hop/workflow/Workflow.java 
b/engine/src/main/java/org/apache/hop/workflow/Workflow.java
index 3564d629a0..bb3a5ac54e 100644
--- a/engine/src/main/java/org/apache/hop/workflow/Workflow.java
+++ b/engine/src/main/java/org/apache/hop/workflow/Workflow.java
@@ -34,6 +34,7 @@ import org.apache.commons.vfs2.FileName;
 import org.apache.commons.vfs2.FileObject;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.HopEnvironment;
+import org.apache.hop.core.HopVersionProvider;
 import org.apache.hop.core.IExecutor;
 import org.apache.hop.core.IExtensionData;
 import org.apache.hop.core.Result;
@@ -1223,6 +1224,9 @@ public abstract class Workflow extends Variables
     } else {
       this.setVariable(Const.INTERNAL_VARIABLE_WORKFLOW_PARENT_ID, null);
     }
+
+    HopVersionProvider versionProvider = new HopVersionProvider();
+    setVariable(Const.HOP_VERSION, versionProvider.getVersion()[0]);
   }
 
   /**
diff --git a/engine/src/main/java/org/apache/hop/workflow/WorkflowMeta.java 
b/engine/src/main/java/org/apache/hop/workflow/WorkflowMeta.java
index 4f3805e29c..622c657af0 100644
--- a/engine/src/main/java/org/apache/hop/workflow/WorkflowMeta.java
+++ b/engine/src/main/java/org/apache/hop/workflow/WorkflowMeta.java
@@ -32,6 +32,7 @@ import org.apache.hop.base.AbstractMeta;
 import org.apache.hop.base.BaseHopMeta;
 import org.apache.hop.core.CheckResult;
 import org.apache.hop.core.Const;
+import org.apache.hop.core.HopVersionProvider;
 import org.apache.hop.core.ICheckResult;
 import org.apache.hop.core.IProgressMonitor;
 import org.apache.hop.core.NotePadMeta;
@@ -1645,6 +1646,9 @@ public class WorkflowMeta extends AbstractMeta
     setInternalNameHopVariable(variables);
 
     updateCurrentDir(variables);
+
+    HopVersionProvider versionProvider = new HopVersionProvider();
+    variables.setVariable(Const.HOP_VERSION, versionProvider.getVersion()[0]);
   }
 
   // changed to protected for testing purposes

Reply via email to