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 dffe81e480 issue #7266 : Conversion from PDI - In UDJE the "Java
expression" column is emptied (#7368)
dffe81e480 is described below
commit dffe81e480ca1cbd1414680b1c152433accf93ff
Author: Matt Casters <[email protected]>
AuthorDate: Tue Jun 30 09:19:22 2026 +0200
issue #7266 : Conversion from PDI - In UDJE the "Java expression" column is
emptied (#7368)
---
.../hop/pipeline/transforms/janino/JaninoMeta.java | 20 ++++++++++++
.../pipeline/transforms/janino/JaninoMetaTest.java | 38 ++++++++++++++++++++++
2 files changed, 58 insertions(+)
diff --git
a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoMeta.java
b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoMeta.java
index 5127f2ac0f..dc6d5dbc55 100644
---
a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoMeta.java
+++
b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoMeta.java
@@ -23,18 +23,21 @@ import lombok.Setter;
import org.apache.hop.core.CheckResult;
import org.apache.hop.core.ICheckResult;
import org.apache.hop.core.annotations.Transform;
+import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.exception.HopTransformException;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.util.Utils;
import org.apache.hop.core.variables.IVariables;
+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.pipeline.PipelineMeta;
import org.apache.hop.pipeline.transform.BaseTransformMeta;
import org.apache.hop.pipeline.transform.TransformMeta;
+import org.w3c.dom.Node;
@Transform(
id = "Janino",
@@ -203,4 +206,21 @@ public class JaninoMeta extends BaseTransformMeta<Janino,
JaninoData> {
public boolean supportsErrorHandling() {
return true;
}
+
+ @Override
+ public void convertLegacyXml(Node node) throws HopException {
+ int nrCalcs = XmlHandler.countNodes(node, "formula");
+ for (int i = 0; i < nrCalcs; i++) {
+ Node calcnode = XmlHandler.getSubNodeByNr(node, "formula", i);
+ if (calcnode != null) {
+ String expression = XmlHandler.getTagValue(calcnode, "formula");
+ if (expression != null && i < functions.size()) {
+ JaninoMetaFunction fn = functions.get(i);
+ if (Utils.isEmpty(fn.getFormula())) {
+ fn.setFormula(expression);
+ }
+ }
+ }
+ }
+ }
}
diff --git
a/plugins/transforms/janino/src/test/java/org/apache/hop/pipeline/transforms/janino/JaninoMetaTest.java
b/plugins/transforms/janino/src/test/java/org/apache/hop/pipeline/transforms/janino/JaninoMetaTest.java
index 2f08e89149..6ce5f40400 100644
---
a/plugins/transforms/janino/src/test/java/org/apache/hop/pipeline/transforms/janino/JaninoMetaTest.java
+++
b/plugins/transforms/janino/src/test/java/org/apache/hop/pipeline/transforms/janino/JaninoMetaTest.java
@@ -340,4 +340,42 @@ class JaninoMetaTest {
void supportsErrorHandling_returnsTrue() {
assertTrue(new JaninoMeta().supportsErrorHandling());
}
+
+ // ------------------------------------------------------------------
convertLegacyXml
+
+ @Test
+ void testConvertLegacyXml() throws Exception {
+ String xml =
+ "<transform>"
+ + " <formula>"
+ + " <field_name>f1</field_name>"
+ + " <formula>expression1</formula>"
+ + " <value_type>String</value_type>"
+ + " <value_length>100</value_length>"
+ + " <value_precision>-1</value_precision>"
+ + " <replace_field>replace1</replace_field>"
+ + " </formula>"
+ + " <formula>"
+ + " <field_name>f2</field_name>"
+ + " <formula>expression2</formula>"
+ + " <value_type>Integer</value_type>"
+ + " <value_length>7</value_length>"
+ + " <value_precision>-1</value_precision>"
+ + " <replace_field>replace2</replace_field>"
+ + " </formula>"
+ + "</transform>";
+
+ JaninoMeta meta = new JaninoMeta();
+ XmlMetadataUtil.deSerializeFromXml(
+ XmlHandler.loadXmlString(xml, TransformMeta.XML_TAG),
+ JaninoMeta.class,
+ meta,
+ new MemoryMetadataProvider());
+
+ assertEquals(2, meta.getFunctions().size());
+ assertEquals("f1", meta.getFunctions().get(0).getFieldName());
+ assertEquals("expression1", meta.getFunctions().get(0).getFormula());
+ assertEquals("f2", meta.getFunctions().get(1).getFieldName());
+ assertEquals("expression2", meta.getFunctions().get(1).getFormula());
+ }
}