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 c25b86e13c Issue #6988 : Hide ValueMetaBase constructor (#7387)
c25b86e13c is described below
commit c25b86e13cd5795c78eba581e4f59094e4f806e4
Author: Matt Casters <[email protected]>
AuthorDate: Mon Jul 13 15:56:45 2026 +0200
Issue #6988 : Hide ValueMetaBase constructor (#7387)
* issue #7118 : field selection for table view export to spreadsheet
* issue #6988 : Visibility of ValueMetaBase Constructors
* issue #6988 : Visibility of ValueMetaBase Constructors (spotless)
---
.../main/java/org/apache/hop/core/row/RowMeta.java | 10 +-
.../apache/hop/core/row/value/ValueMetaBase.java | 87 +++++++-----
.../java/org/apache/hop/core/util/TestUtil.java | 82 +++++++++++
.../java/org/apache/hop/core/ConditionTest.java | 8 ++
.../hop/core/database/BaseDatabaseMetaTest.java | 2 +
.../hop/core/database/DatabaseConnectingTest.java | 4 +
.../apache/hop/core/database/DatabaseMetaTest.java | 2 +
.../org/apache/hop/core/database/DatabaseTest.java | 2 +
.../extension/ExtensionPointIntegrationTest.java | 2 +
.../hop/core/row/RowMetaAddRemoveValueTest.java | 2 +
.../java/org/apache/hop/core/row/RowMetaTest.java | 13 +-
.../apache/hop/core/row/ValueMetaAndDataTests.java | 2 +
.../core/row/value/ValueMetaAvroRecordTest.java | 2 +
.../hop/core/row/value/ValueMetaBaseTest.java | 3 +
.../hop/core/row/value/ValueMetaFactoryTest.java | 2 +
.../apache/hop/core/util/StringEvaluatorTest.java | 2 +
.../hop/core/variables/VariableRegistryTest.java | 6 +-
.../metadata/SerializableMetadataProviderTest.java | 2 +
.../apache/hop/execution/ExecutionDataTest.java | 2 +
.../hop/pipeline/transform/BaseTransformTest.java | 23 +--
.../cratedb/CrateDBValueMetaBaseTest.java | 9 +-
.../greenplum/GreenplumValueMetaBaseTest.java | 8 +-
.../hop/databases/hive/HiveValueMetaBaseTest.java | 3 +-
.../databases/mysql/MySqlValueMetaBaseTest.java | 3 +-
.../postgresql/PostgreSqlValueMetaBaseTest.java | 9 +-
.../teradata/TeradataValueMetaBaseTest.java | 8 +-
.../vertica/Vertica5DatabaseMetaTest.java | 2 +-
.../writer/Cql3SsTableWriterTest.java | 8 +-
.../transforms/jdbcmetadata/JdbcMetadataMeta.java | 21 ++-
.../textfileoutput/TextFileOutputTest.java | 4 +-
.../transforms/webservices/WebServiceDialog.java | 156 +++++++++++----------
.../transforms/xml/xmloutput/XmlOutputMeta.java | 4 +-
32 files changed, 332 insertions(+), 161 deletions(-)
diff --git a/core/src/main/java/org/apache/hop/core/row/RowMeta.java
b/core/src/main/java/org/apache/hop/core/row/RowMeta.java
index 5ea4ffdc5d..295720c15a 100644
--- a/core/src/main/java/org/apache/hop/core/row/RowMeta.java
+++ b/core/src/main/java/org/apache/hop/core/row/RowMeta.java
@@ -1294,8 +1294,14 @@ public class RowMeta implements IRowMeta {
int nrValues = XmlHandler.countNodes(node, ValueMetaBase.XML_META_TAG);
for (int i = 0; i < nrValues; i++) {
- IValueMeta valueMetaSource =
- new ValueMetaBase(XmlHandler.getSubNodeByNr(node,
ValueMetaBase.XML_META_TAG, i));
+ Node valueMetaNode = XmlHandler.getSubNodeByNr(node,
ValueMetaBase.XML_META_TAG, i);
+
+ // Load the base value metadata from XML
+ int valueType =
ValueMetaBase.getType(XmlHandler.getTagValue(valueMetaNode, "type"));
+ IValueMeta valueMetaSource = ValueMetaFactory.createValueMeta(valueType);
+ ValueMetaBase.loadBaseValueMetaFromXml(valueMetaSource, valueMetaNode);
+
+ // Clone the metadata
IValueMeta valueMeta =
ValueMetaFactory.createValueMeta(
valueMetaSource.getName(),
diff --git
a/core/src/main/java/org/apache/hop/core/row/value/ValueMetaBase.java
b/core/src/main/java/org/apache/hop/core/row/value/ValueMetaBase.java
index 3cdbeef757..5dae65ca35 100644
--- a/core/src/main/java/org/apache/hop/core/row/value/ValueMetaBase.java
+++ b/core/src/main/java/org/apache/hop/core/row/value/ValueMetaBase.java
@@ -284,27 +284,27 @@ public class ValueMetaBase implements IValueMeta {
// endregion
- public ValueMetaBase() {
+ protected ValueMetaBase() {
this(null, IValueMeta.TYPE_NONE, -1, -1);
}
- public ValueMetaBase(String name) {
+ protected ValueMetaBase(String name) {
this(name, IValueMeta.TYPE_NONE, -1, -1);
}
- public ValueMetaBase(String name, int type) {
+ protected ValueMetaBase(String name, int type) {
this(name, type, -1, -1);
}
- public ValueMetaBase(String name, int type, Comparator<Object> comparator) {
+ protected ValueMetaBase(String name, int type, Comparator<Object>
comparator) {
this(name, type, -1, -1, comparator);
}
- public ValueMetaBase(String name, int type, int length, int precision) {
+ protected ValueMetaBase(String name, int type, int length, int precision) {
this(name, type, length, precision, null);
}
- public ValueMetaBase(
+ protected ValueMetaBase(
String name, int type, int length, int precision, Comparator<Object>
comparator) {
this.name = name;
this.type = type;
@@ -336,17 +336,21 @@ public class ValueMetaBase implements IValueMeta {
setDefaultConversionMask();
}
- public ValueMetaBase(Node node) throws HopException {
+ protected ValueMetaBase(Node node) throws HopException {
this();
+ this.type = getType(XmlHandler.getTagValue(node, "type"));
+ loadBaseValueMetaFromXml(this, node);
+ }
- type = getType(XmlHandler.getTagValue(node, "type"));
- storageType = getStorageType(XmlHandler.getTagValue(node, "storagetype"));
+ public static void loadBaseValueMetaFromXml(IValueMeta valueMeta, Node node)
throws HopException {
+ int storageType = getStorageType(XmlHandler.getTagValue(node,
"storagetype"));
+ valueMeta.setStorageType(storageType);
switch (storageType) {
case STORAGE_TYPE_INDEXED:
Node indexNode = XmlHandler.getSubNode(node, CONST_INDEX);
int nrIndexes = XmlHandler.countNodes(indexNode, CONST_VALUE);
- index = new Object[nrIndexes];
+ Object[] index = new Object[nrIndexes];
for (int i = 0; i < index.length; i++) {
Node valueNode = XmlHandler.getSubNodeByNr(indexNode, CONST_VALUE,
i);
@@ -354,7 +358,7 @@ public class ValueMetaBase implements IValueMeta {
if (Utils.isEmpty(valueString)) {
index[i] = null;
} else {
- switch (type) {
+ switch (valueMeta.getType()) {
case TYPE_STRING:
index[i] = valueString;
break;
@@ -378,9 +382,9 @@ public class ValueMetaBase implements IValueMeta {
break;
default:
throw new HopException(
- this
+ valueMeta
+ " : Unable to de-serialize index storage type from
XML for data type "
- + getType());
+ + valueMeta.getTypeDesc());
}
}
}
@@ -392,7 +396,10 @@ public class ValueMetaBase implements IValueMeta {
Node storageMetaNode = XmlHandler.getSubNode(node, CONST_STORAGE_META);
Node storageValueMetaNode = XmlHandler.getSubNode(storageMetaNode,
XML_META_TAG);
if (storageValueMetaNode != null) {
- storageMetadata = new ValueMetaBase(storageValueMetaNode);
+ int storageValueType =
getType(XmlHandler.getTagValue(storageValueMetaNode, "type"));
+ IValueMeta storageValueMeta =
ValueMetaFactory.createValueMeta(storageValueType);
+ loadBaseValueMetaFromXml(storageValueMeta, storageValueMetaNode);
+ valueMeta.setStorageMetadata(storageValueMeta);
}
break;
@@ -400,36 +407,42 @@ public class ValueMetaBase implements IValueMeta {
break;
}
- name = XmlHandler.getTagValue(node, "name");
- length = Integer.parseInt(XmlHandler.getTagValue(node, CONST_LENGTH));
- precision = Integer.parseInt(XmlHandler.getTagValue(node,
CONST_PRECISION));
- origin = XmlHandler.getTagValue(node, "origin");
- comments = XmlHandler.getTagValue(node, "comments");
- conversionMask = XmlHandler.getTagValue(node, "conversion_Mask");
- decimalSymbol = XmlHandler.getTagValue(node, "decimal_symbol");
- groupingSymbol = XmlHandler.getTagValue(node, "grouping_symbol");
- currencySymbol = XmlHandler.getTagValue(node, "currency_symbol");
- trimType = getTrimTypeByCode(XmlHandler.getTagValue(node, "trim_type"));
- caseInsensitive = "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"case_insensitive"));
- collatorDisabled = "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"collator_disabled"));
+ valueMeta.setName(XmlHandler.getTagValue(node, "name"));
+ valueMeta.setLength(Integer.parseInt(XmlHandler.getTagValue(node,
CONST_LENGTH)));
+ valueMeta.setPrecision(Integer.parseInt(XmlHandler.getTagValue(node,
CONST_PRECISION)));
+ valueMeta.setOrigin(XmlHandler.getTagValue(node, "origin"));
+ valueMeta.setComments(XmlHandler.getTagValue(node, "comments"));
+ valueMeta.setConversionMask(XmlHandler.getTagValue(node,
"conversion_Mask"));
+ valueMeta.setDecimalSymbol(XmlHandler.getTagValue(node, "decimal_symbol"));
+ valueMeta.setGroupingSymbol(XmlHandler.getTagValue(node,
"grouping_symbol"));
+ valueMeta.setCurrencySymbol(XmlHandler.getTagValue(node,
"currency_symbol"));
+ valueMeta.setTrimType(getTrimTypeByCode(XmlHandler.getTagValue(node,
"trim_type")));
+ valueMeta.setCaseInsensitive(
+ "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"case_insensitive")));
+ valueMeta.setCollatorDisabled(
+ "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"collator_disabled")));
if (XmlHandler.getTagValue(node, CONST_COLLATOR_STRENGTH) != null) {
- collatorStrength = Integer.parseInt(XmlHandler.getTagValue(node,
CONST_COLLATOR_STRENGTH));
- }
- sortedDescending = "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"sort_descending"));
- outputPaddingEnabled = "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"output_padding"));
- dateFormatLenient = "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"date_format_lenient"));
+ valueMeta.setCollatorStrength(
+ Integer.parseInt(XmlHandler.getTagValue(node,
CONST_COLLATOR_STRENGTH)));
+ }
+ valueMeta.setSortedDescending(
+ "Y".equalsIgnoreCase(XmlHandler.getTagValue(node, "sort_descending")));
+ valueMeta.setOutputPaddingEnabled(
+ "Y".equalsIgnoreCase(XmlHandler.getTagValue(node, "output_padding")));
+ valueMeta.setDateFormatLenient(
+ "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"date_format_lenient")));
String dateFormatLocaleString = XmlHandler.getTagValue(node,
"date_format_locale");
if (!Utils.isEmpty(dateFormatLocaleString)) {
- dateFormatLocale = EnvUtil.createLocale(dateFormatLocaleString);
+
valueMeta.setDateFormatLocale(EnvUtil.createLocale(dateFormatLocaleString));
}
String dateTimeZoneString = XmlHandler.getTagValue(node,
"date_format_timezone");
if (!Utils.isEmpty(dateTimeZoneString)) {
- dateFormatTimeZone = EnvUtil.createTimeZone(dateTimeZoneString);
+
valueMeta.setDateFormatTimeZone(EnvUtil.createTimeZone(dateTimeZoneString));
} else {
- dateFormatTimeZone = TimeZone.getDefault();
+ valueMeta.setDateFormatTimeZone(TimeZone.getDefault());
}
- lenientStringToNumber =
- "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"lenient_string_to_number"));
+ valueMeta.setLenientStringToNumber(
+ "Y".equalsIgnoreCase(XmlHandler.getTagValue(node,
"lenient_string_to_number")));
}
/**
@@ -442,7 +455,7 @@ public class ValueMetaBase implements IValueMeta {
* loadMetaData() method.
*/
@Deprecated(since = "2.0")
- public ValueMetaBase(DataInputStream inputStream) throws HopFileException {
+ protected ValueMetaBase(DataInputStream inputStream) throws HopFileException
{
this();
try {
type = inputStream.readInt();
diff --git a/core/src/main/java/org/apache/hop/core/util/TestUtil.java
b/core/src/main/java/org/apache/hop/core/util/TestUtil.java
new file mode 100644
index 0000000000..ad8573a994
--- /dev/null
+++ b/core/src/main/java/org/apache/hop/core/util/TestUtil.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.hop.core.util;
+
+import org.apache.hop.core.HopClientEnvironment;
+import org.apache.hop.core.database.DatabaseMetaPlugin;
+import org.apache.hop.core.database.DatabasePluginType;
+import org.apache.hop.core.database.NoneDatabaseMeta;
+import org.apache.hop.core.encryption.HopTwoWayPasswordEncoder;
+import org.apache.hop.core.encryption.TwoWayPasswordEncoderPlugin;
+import org.apache.hop.core.encryption.TwoWayPasswordEncoderPluginType;
+import org.apache.hop.core.exception.HopException;
+import org.apache.hop.core.plugins.PluginRegistry;
+import org.apache.hop.core.row.value.ValueMetaAvroRecord;
+import org.apache.hop.core.row.value.ValueMetaBigNumber;
+import org.apache.hop.core.row.value.ValueMetaBinary;
+import org.apache.hop.core.row.value.ValueMetaBoolean;
+import org.apache.hop.core.row.value.ValueMetaDate;
+import org.apache.hop.core.row.value.ValueMetaInteger;
+import org.apache.hop.core.row.value.ValueMetaInternetAddress;
+import org.apache.hop.core.row.value.ValueMetaNone;
+import org.apache.hop.core.row.value.ValueMetaNumber;
+import org.apache.hop.core.row.value.ValueMetaPlugin;
+import org.apache.hop.core.row.value.ValueMetaPluginType;
+import org.apache.hop.core.row.value.ValueMetaSerializable;
+import org.apache.hop.core.row.value.ValueMetaString;
+import org.apache.hop.core.row.value.ValueMetaTimestamp;
+
+public class TestUtil {
+ public static void registerTestPluginTypes() throws HopException {
+ HopClientEnvironment.init();
+ PluginRegistry registry = PluginRegistry.getInstance();
+ registry.registerPluginClass(
+ ValueMetaNone.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaString.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaInteger.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaNumber.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaDate.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaBigNumber.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaBoolean.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaSerializable.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaBinary.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaTimestamp.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaInternetAddress.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+ registry.registerPluginClass(
+ ValueMetaAvroRecord.class.getName(), ValueMetaPluginType.class,
ValueMetaPlugin.class);
+
+ registry.registerPluginClass(
+ NoneDatabaseMeta.class.getName(), DatabasePluginType.class,
DatabaseMetaPlugin.class);
+
+ registry.registerPluginClass(
+ HopTwoWayPasswordEncoder.class.getName(),
+ TwoWayPasswordEncoderPluginType.class,
+ TwoWayPasswordEncoderPlugin.class);
+ }
+}
diff --git a/core/src/test/java/org/apache/hop/core/ConditionTest.java
b/core/src/test/java/org/apache/hop/core/ConditionTest.java
index 8081c9c176..eb911d84d0 100644
--- a/core/src/test/java/org/apache/hop/core/ConditionTest.java
+++ b/core/src/test/java/org/apache/hop/core/ConditionTest.java
@@ -29,8 +29,10 @@ import org.apache.hop.core.row.RowMeta;
import org.apache.hop.core.row.ValueMetaAndData;
import org.apache.hop.core.row.value.ValueMetaInteger;
import org.apache.hop.core.row.value.ValueMetaNumber;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.core.xml.XmlHandler;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
+import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.w3c.dom.Document;
@@ -39,6 +41,12 @@ import org.w3c.dom.Node;
@ExtendWith(RestoreHopEnvironmentExtension.class)
class ConditionTest {
+ @BeforeAll
+ static void setUpClass() throws Exception {
+ HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
+ }
+
@Test
void testNegatedTrueFuncEvaluatesAsFalse() throws Exception {
String left = "test_filed";
diff --git
a/core/src/test/java/org/apache/hop/core/database/BaseDatabaseMetaTest.java
b/core/src/test/java/org/apache/hop/core/database/BaseDatabaseMetaTest.java
index 9f21a90a75..784f464b74 100644
--- a/core/src/test/java/org/apache/hop/core/database/BaseDatabaseMetaTest.java
+++ b/core/src/test/java/org/apache/hop/core/database/BaseDatabaseMetaTest.java
@@ -36,6 +36,7 @@ import org.apache.hop.core.exception.HopRuntimeException;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaString;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.core.variables.Variables;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
import org.junit.jupiter.api.BeforeEach;
@@ -53,6 +54,7 @@ class BaseDatabaseMetaTest {
nativeMeta = new ConcreteBaseDatabaseMeta();
nativeMeta.setAccessType(DatabaseMeta.TYPE_ACCESS_NATIVE);
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@Test
diff --git
a/core/src/test/java/org/apache/hop/core/database/DatabaseConnectingTest.java
b/core/src/test/java/org/apache/hop/core/database/DatabaseConnectingTest.java
index 2c70540978..47e04a0e4a 100644
---
a/core/src/test/java/org/apache/hop/core/database/DatabaseConnectingTest.java
+++
b/core/src/test/java/org/apache/hop/core/database/DatabaseConnectingTest.java
@@ -38,6 +38,7 @@ import org.apache.hop.core.HopClientEnvironment;
import org.apache.hop.core.database.map.DatabaseConnectionMap;
import org.apache.hop.core.exception.HopDatabaseException;
import org.apache.hop.core.logging.ILoggingObject;
+import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.core.variables.Variables;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
@@ -55,6 +56,9 @@ class DatabaseConnectingTest {
@BeforeAll
static void setUp() throws Exception {
HopClientEnvironment.init();
+ PluginRegistry registry = PluginRegistry.getInstance();
+ registry.registerPluginClass(
+ NoneDatabaseMeta.class.getName(), DatabasePluginType.class,
DatabaseMetaPlugin.class);
}
@AfterEach
diff --git
a/core/src/test/java/org/apache/hop/core/database/DatabaseMetaTest.java
b/core/src/test/java/org/apache/hop/core/database/DatabaseMetaTest.java
index 4269c950e8..44b095e82a 100644
--- a/core/src/test/java/org/apache/hop/core/database/DatabaseMetaTest.java
+++ b/core/src/test/java/org/apache/hop/core/database/DatabaseMetaTest.java
@@ -46,6 +46,7 @@ import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.RowMeta;
import org.apache.hop.core.row.value.ValueMetaNone;
import org.apache.hop.core.row.value.ValueMetaPluginType;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.core.variables.Variables;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
@@ -70,6 +71,7 @@ class DatabaseMetaTest {
DatabasePluginType.getInstance().searchPlugins();
ValueMetaPluginType.getInstance().searchPlugins();
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@BeforeEach
diff --git a/core/src/test/java/org/apache/hop/core/database/DatabaseTest.java
b/core/src/test/java/org/apache/hop/core/database/DatabaseTest.java
index 4debf7e507..77b33eaf3c 100644
--- a/core/src/test/java/org/apache/hop/core/database/DatabaseTest.java
+++ b/core/src/test/java/org/apache/hop/core/database/DatabaseTest.java
@@ -57,6 +57,7 @@ import org.apache.hop.core.logging.LogLevel;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.value.ValueMetaNumber;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.core.variables.Variables;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
@@ -96,6 +97,7 @@ class DatabaseTest {
@BeforeAll
static void setUpClass() throws Exception {
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@BeforeEach
diff --git
a/core/src/test/java/org/apache/hop/core/extension/ExtensionPointIntegrationTest.java
b/core/src/test/java/org/apache/hop/core/extension/ExtensionPointIntegrationTest.java
index 0ad736e78f..88f5e61ec1 100644
---
a/core/src/test/java/org/apache/hop/core/extension/ExtensionPointIntegrationTest.java
+++
b/core/src/test/java/org/apache/hop/core/extension/ExtensionPointIntegrationTest.java
@@ -44,6 +44,7 @@ import org.apache.hop.core.exception.HopPluginException;
import org.apache.hop.core.logging.ILogChannel;
import org.apache.hop.core.plugins.IPlugin;
import org.apache.hop.core.plugins.PluginRegistry;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -67,6 +68,7 @@ class ExtensionPointIntegrationTest {
}
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@Test
diff --git
a/core/src/test/java/org/apache/hop/core/row/RowMetaAddRemoveValueTest.java
b/core/src/test/java/org/apache/hop/core/row/RowMetaAddRemoveValueTest.java
index 4e39c49205..a16ec13461 100644
--- a/core/src/test/java/org/apache/hop/core/row/RowMetaAddRemoveValueTest.java
+++ b/core/src/test/java/org/apache/hop/core/row/RowMetaAddRemoveValueTest.java
@@ -22,6 +22,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import org.apache.hop.core.HopClientEnvironment;
import org.apache.hop.core.exception.HopValueException;
import org.apache.hop.core.row.value.ValueMetaFactory;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -33,6 +34,7 @@ class RowMetaAddRemoveValueTest {
@BeforeAll
static void setUpClass() throws Exception {
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@Test
diff --git a/core/src/test/java/org/apache/hop/core/row/RowMetaTest.java
b/core/src/test/java/org/apache/hop/core/row/RowMetaTest.java
index e2168b1e6b..fa7376e3c7 100644
--- a/core/src/test/java/org/apache/hop/core/row/RowMetaTest.java
+++ b/core/src/test/java/org/apache/hop/core/row/RowMetaTest.java
@@ -38,12 +38,13 @@ import org.apache.commons.io.IOUtils;
import org.apache.hop.core.HopClientEnvironment;
import org.apache.hop.core.exception.HopPluginException;
import org.apache.hop.core.exception.HopValueException;
-import org.apache.hop.core.row.value.ValueMetaBase;
+import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.core.row.value.ValueMetaDate;
import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaInteger;
import org.apache.hop.core.row.value.ValueMetaString;
import org.apache.hop.core.row.value.ValueMetaTimestamp;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.core.xml.XmlHandler;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
import org.junit.jupiter.api.BeforeAll;
@@ -66,6 +67,8 @@ class RowMetaTest {
@BeforeAll
static void setUpBeforeClass() throws Exception {
HopClientEnvironment.init();
+ PluginRegistry registry = PluginRegistry.getInstance();
+ TestUtil.registerTestPluginTypes();
}
@BeforeEach
@@ -172,8 +175,8 @@ class RowMetaTest {
}
@Test
- void testAddValueMetaNullName() {
- IValueMeta vmi = new ValueMetaBase();
+ void testAddValueMetaNullName() throws HopPluginException {
+ IValueMeta vmi = ValueMetaFactory.createValueMeta(IValueMeta.TYPE_NONE);
rowMeta.addValueMeta(vmi);
assertTrue(rowMeta.getValueMetaList().contains(vmi));
}
@@ -216,8 +219,8 @@ class RowMetaTest {
}
@Test
- void testSetValueMetaNullName() {
- IValueMeta vmi = new ValueMetaBase();
+ void testSetValueMetaNullName() throws HopPluginException {
+ IValueMeta vmi = ValueMetaFactory.createValueMeta(IValueMeta.TYPE_NONE);
rowMeta.setValueMeta(1, vmi);
assertEquals(1, rowMeta.getValueMetaList().indexOf(vmi));
assertEquals(3, rowMeta.size(), "There is still 3 elements:");
diff --git
a/core/src/test/java/org/apache/hop/core/row/ValueMetaAndDataTests.java
b/core/src/test/java/org/apache/hop/core/row/ValueMetaAndDataTests.java
index 446c8fc970..dcdb6586ad 100644
--- a/core/src/test/java/org/apache/hop/core/row/ValueMetaAndDataTests.java
+++ b/core/src/test/java/org/apache/hop/core/row/ValueMetaAndDataTests.java
@@ -33,6 +33,7 @@ import org.apache.hop.core.row.value.ValueMetaInteger;
import org.apache.hop.core.row.value.ValueMetaNumber;
import org.apache.hop.core.row.value.ValueMetaSerializable;
import org.apache.hop.core.row.value.ValueMetaString;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.core.xml.XmlHandler;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
import org.junit.jupiter.api.BeforeAll;
@@ -47,6 +48,7 @@ class ValueMetaAndDataTests {
@BeforeAll
static void beforeClassSetUp() throws HopException {
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@Test
diff --git
a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaAvroRecordTest.java
b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaAvroRecordTest.java
index bcb110aa31..3db6b47748 100644
---
a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaAvroRecordTest.java
+++
b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaAvroRecordTest.java
@@ -33,6 +33,7 @@ import org.apache.avro.generic.GenericData;
import org.apache.avro.generic.GenericRecord;
import org.apache.avro.util.Utf8;
import org.apache.hop.core.HopClientEnvironment;
+import org.apache.hop.core.util.TestUtil;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.junit.jupiter.api.BeforeAll;
@@ -95,6 +96,7 @@ class ValueMetaAvroRecordTest {
@BeforeAll
static void before() throws Exception {
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@Test
diff --git
a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaBaseTest.java
b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaBaseTest.java
index b61a2cdf17..1d09e760cb 100644
--- a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaBaseTest.java
+++ b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaBaseTest.java
@@ -70,6 +70,7 @@ import org.apache.hop.core.logging.HopLoggingEvent;
import org.apache.hop.core.logging.IHopLoggingEventListener;
import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.core.row.IValueMeta;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.core.variables.Variables;
import org.apache.hop.core.xml.XmlHandler;
@@ -120,6 +121,8 @@ class ValueMetaBaseTest {
PluginRegistry.addPluginType(DatabasePluginType.getInstance());
PluginRegistry.init();
HopLogStore.init();
+
+ TestUtil.registerTestPluginTypes();
}
@BeforeEach
diff --git
a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaFactoryTest.java
b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaFactoryTest.java
index c867346c11..3bea13e04e 100644
--- a/core/src/test/java/org/apache/hop/core/row/value/ValueMetaFactoryTest.java
+++ b/core/src/test/java/org/apache/hop/core/row/value/ValueMetaFactoryTest.java
@@ -37,6 +37,7 @@ import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.exception.HopPluginException;
import org.apache.hop.core.exception.HopValueException;
import org.apache.hop.core.row.IValueMeta;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -49,6 +50,7 @@ class ValueMetaFactoryTest {
@BeforeAll
static void beforeClassSetUp() throws HopException {
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@Test
diff --git
a/core/src/test/java/org/apache/hop/core/util/StringEvaluatorTest.java
b/core/src/test/java/org/apache/hop/core/util/StringEvaluatorTest.java
index 51ed53f767..9d69e64fcd 100644
--- a/core/src/test/java/org/apache/hop/core/util/StringEvaluatorTest.java
+++ b/core/src/test/java/org/apache/hop/core/util/StringEvaluatorTest.java
@@ -49,6 +49,8 @@ class StringEvaluatorTest {
@BeforeEach
void setUp() throws HopException {
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
+
evaluator = new StringEvaluator();
Locale.setDefault(Locale.US);
}
diff --git
a/core/src/test/java/org/apache/hop/core/variables/VariableRegistryTest.java
b/core/src/test/java/org/apache/hop/core/variables/VariableRegistryTest.java
index 32d3552c9b..0d16ae3104 100644
--- a/core/src/test/java/org/apache/hop/core/variables/VariableRegistryTest.java
+++ b/core/src/test/java/org/apache/hop/core/variables/VariableRegistryTest.java
@@ -22,6 +22,8 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.apache.hop.core.Const;
+import org.apache.hop.core.HopClientEnvironment;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.junit.rules.RestoreHopEnvironmentExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -32,8 +34,10 @@ class VariableRegistryTest {
@Test
void testInit() throws Exception {
- VariableRegistry.init();
+ HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
+ VariableRegistry.init();
VariableRegistry registry = VariableRegistry.getInstance();
DescribedVariable describedVariable =
registry.findDescribedVariable(Const.HOP_PASSWORD_ENCODER_PLUGIN);
diff --git
a/engine/src/test/java/org/apache/hop/core/metadata/SerializableMetadataProviderTest.java
b/engine/src/test/java/org/apache/hop/core/metadata/SerializableMetadataProviderTest.java
index d7593d37f9..0b6f9c6f70 100644
---
a/engine/src/test/java/org/apache/hop/core/metadata/SerializableMetadataProviderTest.java
+++
b/engine/src/test/java/org/apache/hop/core/metadata/SerializableMetadataProviderTest.java
@@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import org.apache.hop.core.HopEnvironment;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.metadata.api.IHopMetadataSerializer;
import org.apache.hop.metadata.serializer.memory.MemoryMetadataProvider;
import org.apache.hop.server.HopServerMeta;
@@ -32,6 +33,7 @@ class SerializableMetadataProviderTest {
@BeforeEach
void before() throws Exception {
HopEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@Test
diff --git
a/engine/src/test/java/org/apache/hop/execution/ExecutionDataTest.java
b/engine/src/test/java/org/apache/hop/execution/ExecutionDataTest.java
index 9764cbae40..a87ca1d62c 100644
--- a/engine/src/test/java/org/apache/hop/execution/ExecutionDataTest.java
+++ b/engine/src/test/java/org/apache/hop/execution/ExecutionDataTest.java
@@ -32,6 +32,7 @@ import org.apache.hop.core.json.HopJson;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.RowBuffer;
import org.apache.hop.core.row.RowMetaBuilder;
+import org.apache.hop.core.util.TestUtil;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -41,6 +42,7 @@ class ExecutionDataTest {
void before() throws Exception {
// Load data type plugins
HopClientEnvironment.init();
+ TestUtil.registerTestPluginTypes();
}
@Test
diff --git
a/engine/src/test/java/org/apache/hop/pipeline/transform/BaseTransformTest.java
b/engine/src/test/java/org/apache/hop/pipeline/transform/BaseTransformTest.java
index 4a0a343bd2..9410f39796 100644
---
a/engine/src/test/java/org/apache/hop/pipeline/transform/BaseTransformTest.java
+++
b/engine/src/test/java/org/apache/hop/pipeline/transform/BaseTransformTest.java
@@ -44,6 +44,7 @@ import org.apache.hop.core.QueueRowSet;
import org.apache.hop.core.ResultFile;
import org.apache.hop.core.SingleRowRowSet;
import org.apache.hop.core.exception.HopException;
+import org.apache.hop.core.exception.HopPluginException;
import org.apache.hop.core.exception.HopTransformException;
import org.apache.hop.core.fileinput.NonAccessibleFileObject;
import org.apache.hop.core.logging.ILogChannel;
@@ -52,9 +53,10 @@ import org.apache.hop.core.logging.LogLevel;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.RowMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
+import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaInteger;
import org.apache.hop.core.row.value.ValueMetaString;
+import org.apache.hop.core.util.TestUtil;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.pipeline.Pipeline;
import org.apache.hop.pipeline.engines.local.LocalPipelineEngine;
@@ -75,7 +77,8 @@ class BaseTransformTest {
@Mock private IRowHandler rowHandler;
@BeforeEach
- void setup() {
+ void setup() throws HopException {
+ TestUtil.registerTestPluginTypes();
mockHelper =
new TransformMockHelper<>("BASE TRANSFORM", ITransformMeta.class,
ITransformData.class);
@@ -386,7 +389,7 @@ class BaseTransformTest {
}
@Test
- void notEmptyFieldName() throws HopTransformException {
+ void notEmptyFieldName() throws HopException {
BaseTransform<ITransformMeta, ITransformData> baseTransform =
new BaseTransform<>(
mockHelper.transformMeta,
@@ -400,13 +403,13 @@ class BaseTransformTest {
baseTransform.setRowHandler(rowHandler);
IRowMeta rowMeta = new RowMeta();
- rowMeta.addValueMeta(new ValueMetaBase("name", IValueMeta.TYPE_INTEGER));
+ rowMeta.addValueMeta(ValueMetaFactory.createValueMeta("name",
IValueMeta.TYPE_INTEGER));
baseTransform.putRow(rowMeta, new Object[] {0});
}
@Test
- void nullFieldName() {
+ void nullFieldName() throws HopPluginException {
BaseTransform<ITransformMeta, ITransformData> baseTransform =
new BaseTransform<>(
mockHelper.transformMeta,
@@ -421,14 +424,14 @@ class BaseTransformTest {
baseTransform.setAllowEmptyFieldNamesAndTypes(false);
IRowMeta rowMeta = new RowMeta();
- rowMeta.addValueMeta(new ValueMetaBase(null, IValueMeta.TYPE_INTEGER));
+ rowMeta.addValueMeta(ValueMetaFactory.createValueMeta(null,
IValueMeta.TYPE_INTEGER));
assertThrows(
HopTransformException.class, () -> baseTransform.putRow(rowMeta, new
Object[] {0}));
}
@Test
- void emptyFieldName() {
+ void emptyFieldName() throws HopPluginException {
BaseTransform<ITransformMeta, ITransformData> baseTransform =
new BaseTransform<>(
mockHelper.transformMeta,
@@ -441,14 +444,14 @@ class BaseTransformTest {
baseTransform.setAllowEmptyFieldNamesAndTypes(false);
IRowMeta rowMeta = new RowMeta();
- rowMeta.addValueMeta(new ValueMetaBase("", IValueMeta.TYPE_INTEGER));
+ rowMeta.addValueMeta(ValueMetaFactory.createValueMeta("",
IValueMeta.TYPE_INTEGER));
assertThrows(
HopTransformException.class, () -> baseTransform.putRow(rowMeta, new
Object[] {0}));
}
@Test
- void blankFieldName() {
+ void blankFieldName() throws HopPluginException {
BaseTransform<ITransformMeta, ITransformData> baseTransform =
new BaseTransform<>(
mockHelper.transformMeta,
@@ -461,7 +464,7 @@ class BaseTransformTest {
baseTransform.setAllowEmptyFieldNamesAndTypes(false);
IRowMeta rowMeta = new RowMeta();
- rowMeta.addValueMeta(new ValueMetaBase(" ", IValueMeta.TYPE_INTEGER));
+ rowMeta.addValueMeta(ValueMetaFactory.createValueMeta(" ",
IValueMeta.TYPE_INTEGER));
assertThrows(
HopTransformException.class, () -> baseTransform.putRow(rowMeta, new
Object[] {0}));
diff --git
a/plugins/databases/cratedb/src/test/java/org/apache/hop/databases/cratedb/CrateDBValueMetaBaseTest.java
b/plugins/databases/cratedb/src/test/java/org/apache/hop/databases/cratedb/CrateDBValueMetaBaseTest.java
index ce098d16ca..2471f79cbc 100644
---
a/plugins/databases/cratedb/src/test/java/org/apache/hop/databases/cratedb/CrateDBValueMetaBaseTest.java
+++
b/plugins/databases/cratedb/src/test/java/org/apache/hop/databases/cratedb/CrateDBValueMetaBaseTest.java
@@ -158,7 +158,8 @@ class CrateDBValueMetaBaseTest {
String data = StringUtils.repeat("*", 2048);
- ValueMetaBase valueMetaString = new ValueMetaBase(LOG_FIELD,
IValueMeta.TYPE_STRING, 2048, 0);
+ IValueMeta valueMetaString =
+ ValueMetaFactory.createValueMeta(LOG_FIELD, IValueMeta.TYPE_STRING,
2048, 0);
valueMetaString.setPreparedStatementValue(databaseMetaSpy,
preparedStatementMock, 0, data);
verify(preparedStatementMock, never()).setString(0, data);
@@ -171,9 +172,9 @@ class CrateDBValueMetaBaseTest {
events.get(0).getMessage().toString());
}
- private void initValueMeta(BaseDatabaseMeta dbMeta, int length, Object data)
- throws HopDatabaseException {
- ValueMetaBase valueMetaString = new ValueMetaBase(LOG_FIELD,
IValueMeta.TYPE_STRING, length, 0);
+ private void initValueMeta(BaseDatabaseMeta dbMeta, int length, Object data)
throws HopException {
+ IValueMeta valueMetaString =
+ ValueMetaFactory.createValueMeta(LOG_FIELD, IValueMeta.TYPE_STRING,
length, 0);
databaseMetaSpy.setIDatabase(dbMeta);
valueMetaString.setPreparedStatementValue(databaseMetaSpy,
preparedStatementMock, 0, data);
}
diff --git
a/plugins/databases/greenplum/src/test/java/org/apache/hop/databases/greenplum/GreenplumValueMetaBaseTest.java
b/plugins/databases/greenplum/src/test/java/org/apache/hop/databases/greenplum/GreenplumValueMetaBaseTest.java
index f39131642f..4c5d7b88e4 100644
---
a/plugins/databases/greenplum/src/test/java/org/apache/hop/databases/greenplum/GreenplumValueMetaBaseTest.java
+++
b/plugins/databases/greenplum/src/test/java/org/apache/hop/databases/greenplum/GreenplumValueMetaBaseTest.java
@@ -38,7 +38,7 @@ import org.apache.hop.core.logging.HopLoggingEvent;
import org.apache.hop.core.logging.IHopLoggingEventListener;
import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.core.row.IValueMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
+import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaPluginType;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.core.variables.Variables;
@@ -76,7 +76,7 @@ class GreenplumValueMetaBaseTest {
private PreparedStatement preparedStatementMock =
mock(PreparedStatement.class);
private ResultSet resultSet;
private DatabaseMeta dbMeta;
- private ValueMetaBase valueMetaBase;
+ private IValueMeta valueMetaBase;
private IVariables variables;
@BeforeAll
@@ -89,12 +89,12 @@ class GreenplumValueMetaBaseTest {
}
@BeforeEach
- void setUp() {
+ void setUp() throws HopException {
listener = new StoreLoggingEventListener();
HopLogStore.getAppender().addLoggingEventListener(listener);
dbMeta = spy(DatabaseMeta.class);
dbMeta.setIDatabase(spy(GreenplumDatabaseMeta.class));
- valueMetaBase = new ValueMetaBase();
+ valueMetaBase = ValueMetaFactory.createValueMeta(IValueMeta.TYPE_NONE);
resultSet = mock(ResultSet.class);
variables = spy(new Variables());
}
diff --git
a/plugins/databases/hive/src/test/java/org/apache/hop/databases/hive/HiveValueMetaBaseTest.java
b/plugins/databases/hive/src/test/java/org/apache/hop/databases/hive/HiveValueMetaBaseTest.java
index 6d639d7b40..f698c421f6 100644
---
a/plugins/databases/hive/src/test/java/org/apache/hop/databases/hive/HiveValueMetaBaseTest.java
+++
b/plugins/databases/hive/src/test/java/org/apache/hop/databases/hive/HiveValueMetaBaseTest.java
@@ -39,7 +39,6 @@ import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.exception.HopPluginException;
import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.core.row.IValueMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaPluginType;
import org.apache.hop.core.row.value.ValueMetaString;
@@ -91,7 +90,7 @@ class HiveValueMetaBaseTest {
void testGetValueFromSqlTypeBinaryHive() throws Exception {
final int binaryColumnIndex = 1;
- ValueMetaBase valueMetaBase = new ValueMetaBase();
+ IValueMeta valueMetaBase =
ValueMetaFactory.createValueMeta(IValueMeta.TYPE_NONE);
DatabaseMeta dbMeta = spy(new DatabaseMeta());
IDatabase iDatabase = new HiveDatabaseMeta();
dbMeta.setIDatabase(iDatabase);
diff --git
a/plugins/databases/mysql/src/test/java/org/apache/hop/databases/mysql/MySqlValueMetaBaseTest.java
b/plugins/databases/mysql/src/test/java/org/apache/hop/databases/mysql/MySqlValueMetaBaseTest.java
index 7b746d2a62..fa82e5852b 100644
---
a/plugins/databases/mysql/src/test/java/org/apache/hop/databases/mysql/MySqlValueMetaBaseTest.java
+++
b/plugins/databases/mysql/src/test/java/org/apache/hop/databases/mysql/MySqlValueMetaBaseTest.java
@@ -42,7 +42,6 @@ import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.exception.HopPluginException;
import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.core.row.IValueMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaPluginType;
import org.apache.hop.core.row.value.ValueMetaString;
@@ -101,7 +100,7 @@ class MySqlValueMetaBaseTest {
void testGetValueFromSqlTypeBinaryMysql() throws Exception {
final int binaryColumnIndex = 1;
- ValueMetaBase valueMetaBase = new ValueMetaBase();
+ IValueMeta valueMetaBase =
ValueMetaFactory.createValueMeta(IValueMeta.TYPE_NONE);
DatabaseMeta dbMeta = spy(new DatabaseMeta());
IDatabase iDatabase = new MySqlDatabaseMeta();
dbMeta.setIDatabase(iDatabase);
diff --git
a/plugins/databases/postgresql/src/test/java/org/apache/hop/databases/postgresql/PostgreSqlValueMetaBaseTest.java
b/plugins/databases/postgresql/src/test/java/org/apache/hop/databases/postgresql/PostgreSqlValueMetaBaseTest.java
index 1141f7a44c..294b3205b1 100644
---
a/plugins/databases/postgresql/src/test/java/org/apache/hop/databases/postgresql/PostgreSqlValueMetaBaseTest.java
+++
b/plugins/databases/postgresql/src/test/java/org/apache/hop/databases/postgresql/PostgreSqlValueMetaBaseTest.java
@@ -158,7 +158,8 @@ class PostgreSqlValueMetaBaseTest {
String data = StringUtils.repeat("*", 2048);
- ValueMetaBase valueMetaString = new ValueMetaBase(LOG_FIELD,
IValueMeta.TYPE_STRING, 2048, 0);
+ IValueMeta valueMetaString =
+ ValueMetaFactory.createValueMeta(LOG_FIELD, IValueMeta.TYPE_STRING,
2048, 0);
valueMetaString.setPreparedStatementValue(databaseMetaSpy,
preparedStatementMock, 0, data);
verify(preparedStatementMock, never()).setString(0, data);
@@ -171,9 +172,9 @@ class PostgreSqlValueMetaBaseTest {
events.get(0).getMessage().toString());
}
- private void initValueMeta(BaseDatabaseMeta dbMeta, int length, Object data)
- throws HopDatabaseException {
- ValueMetaBase valueMetaString = new ValueMetaBase(LOG_FIELD,
IValueMeta.TYPE_STRING, length, 0);
+ private void initValueMeta(BaseDatabaseMeta dbMeta, int length, Object data)
throws HopException {
+ IValueMeta valueMetaString =
+ ValueMetaFactory.createValueMeta(LOG_FIELD, IValueMeta.TYPE_STRING,
length, 0);
databaseMetaSpy.setIDatabase(dbMeta);
valueMetaString.setPreparedStatementValue(databaseMetaSpy,
preparedStatementMock, 0, data);
}
diff --git
a/plugins/databases/teradata/src/test/java/org/apache/hop/databases/teradata/TeradataValueMetaBaseTest.java
b/plugins/databases/teradata/src/test/java/org/apache/hop/databases/teradata/TeradataValueMetaBaseTest.java
index 6abe4e0b55..ec1255232d 100644
---
a/plugins/databases/teradata/src/test/java/org/apache/hop/databases/teradata/TeradataValueMetaBaseTest.java
+++
b/plugins/databases/teradata/src/test/java/org/apache/hop/databases/teradata/TeradataValueMetaBaseTest.java
@@ -38,7 +38,7 @@ import org.apache.hop.core.logging.HopLoggingEvent;
import org.apache.hop.core.logging.IHopLoggingEventListener;
import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.core.row.IValueMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
+import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaPluginType;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.core.variables.Variables;
@@ -76,7 +76,7 @@ class TeradataValueMetaBaseTest {
private final PreparedStatement preparedStatementMock =
mock(PreparedStatement.class);
private ResultSet resultSet;
private DatabaseMeta dbMeta;
- private ValueMetaBase valueMetaBase;
+ private IValueMeta valueMetaBase;
private IVariables variables;
@BeforeAll
@@ -88,11 +88,11 @@ class TeradataValueMetaBaseTest {
}
@BeforeEach
- void setUp() {
+ void setUp() throws HopException {
listener = new StoreLoggingEventListener();
HopLogStore.getAppender().addLoggingEventListener(listener);
- valueMetaBase = new ValueMetaBase();
+ valueMetaBase = ValueMetaFactory.createValueMeta(IValueMeta.TYPE_NONE);
dbMeta = spy(new DatabaseMeta());
dbMeta.setIDatabase(spy(TeradataDatabaseMeta.class));
resultSet = mock(ResultSet.class);
diff --git
a/plugins/databases/vertica/src/test/java/org/apache/hop/databases/vertica/Vertica5DatabaseMetaTest.java
b/plugins/databases/vertica/src/test/java/org/apache/hop/databases/vertica/Vertica5DatabaseMetaTest.java
index faac0a84b6..449ad11068 100644
---
a/plugins/databases/vertica/src/test/java/org/apache/hop/databases/vertica/Vertica5DatabaseMetaTest.java
+++
b/plugins/databases/vertica/src/test/java/org/apache/hop/databases/vertica/Vertica5DatabaseMetaTest.java
@@ -153,7 +153,7 @@ class Vertica5DatabaseMetaTest extends
VerticaDatabaseMetaTest {
final int expectedBinarylength = 1;
final int expectedVarBinarylength = 80;
- ValueMetaBase obj = new ValueMetaBase();
+ IValueMeta obj = ValueMetaFactory.createValueMeta(IValueMeta.TYPE_NONE);
DatabaseMeta dbMeta = spy(new DatabaseMeta());
IDatabase iDatabase = new Vertica5DatabaseMeta();
dbMeta.setIDatabase(iDatabase);
diff --git
a/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/writer/Cql3SsTableWriterTest.java
b/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/writer/Cql3SsTableWriterTest.java
index 633fecfb28..f38b631b6e 100644
---
a/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/writer/Cql3SsTableWriterTest.java
+++
b/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/writer/Cql3SsTableWriterTest.java
@@ -35,9 +35,11 @@ import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.cassandra.io.sstable.CQLSSTableWriter;
import org.apache.commons.lang3.SystemUtils;
+import org.apache.hop.core.exception.HopPluginException;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.value.ValueMetaBase;
+import org.apache.hop.core.row.value.ValueMetaFactory;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.mockito.stubbing.Answer;
@@ -101,12 +103,12 @@ class Cql3SsTableWriterTest {
writer.init();
}
- private Cql3SSTableWriter getCql3SSTableWriter() {
+ private Cql3SSTableWriter getCql3SSTableWriter() throws HopPluginException {
Cql3SSTableWriter writer = new CQL3SSTableWriterStub();
writer.setPrimaryKey(KEY_FIELD);
IRowMeta rmi = mock(IRowMeta.class);
- IValueMeta one = new ValueMetaBase(KEY_FIELD, ValueMetaBase.TYPE_INTEGER);
- IValueMeta two = new ValueMetaBase(COLUMN, ValueMetaBase.TYPE_STRING);
+ IValueMeta one = ValueMetaFactory.createValueMeta(KEY_FIELD,
ValueMetaBase.TYPE_INTEGER);
+ IValueMeta two = ValueMetaFactory.createValueMeta(COLUMN,
ValueMetaBase.TYPE_STRING);
List<IValueMeta> valueMetaList = new ArrayList<>();
valueMetaList.add(one);
valueMetaList.add(two);
diff --git
a/plugins/transforms/jdbc-metadata/src/main/java/org/apache/hop/pipeline/transforms/jdbcmetadata/JdbcMetadataMeta.java
b/plugins/transforms/jdbc-metadata/src/main/java/org/apache/hop/pipeline/transforms/jdbcmetadata/JdbcMetadataMeta.java
index 4922536504..b112c95de8 100644
---
a/plugins/transforms/jdbc-metadata/src/main/java/org/apache/hop/pipeline/transforms/jdbcmetadata/JdbcMetadataMeta.java
+++
b/plugins/transforms/jdbc-metadata/src/main/java/org/apache/hop/pipeline/transforms/jdbcmetadata/JdbcMetadataMeta.java
@@ -28,8 +28,8 @@ import org.apache.hop.core.exception.HopTransformException;
import org.apache.hop.core.exception.HopValueException;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.IValueMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
import org.apache.hop.core.row.value.ValueMetaBoolean;
+import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaInteger;
import org.apache.hop.core.row.value.ValueMetaString;
import org.apache.hop.core.variables.IVariables;
@@ -626,12 +626,19 @@ public class JdbcMetadataMeta extends
BaseTransformMeta<JdbcMetadata, JdbcMetada
if (!fieldName.equals(outputField.getName())) {
continue;
}
- field =
- new ValueMetaBase(
- outputField.getRename() == null ? fieldName :
outputField.getRename(),
- field.getType());
- field.setOrigin(origin);
- rowMeta.addValueMeta(field);
+ String newFieldName = outputField.getRename() == null ? fieldName :
outputField.getRename();
+ try {
+ field = ValueMetaFactory.createValueMeta(newFieldName,
field.getType());
+ field.setOrigin(origin);
+ rowMeta.addValueMeta(field);
+ } catch (Exception e) {
+ throw new HopTransformException(
+ "Error creating a value metadata called "
+ + newFieldName
+ + " of type "
+ + field.getType(),
+ e);
+ }
break;
}
}
diff --git
a/plugins/transforms/textfile/src/test/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputTest.java
b/plugins/transforms/textfile/src/test/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputTest.java
index 9cdb2cbac5..cff519cc11 100644
---
a/plugins/transforms/textfile/src/test/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputTest.java
+++
b/plugins/transforms/textfile/src/test/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputTest.java
@@ -45,7 +45,7 @@ import org.apache.hop.core.plugins.PluginRegistry;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.RowMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
+import org.apache.hop.core.row.value.ValueMetaFactory;
import org.apache.hop.core.row.value.ValueMetaString;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.core.variables.Variables;
@@ -837,7 +837,7 @@ class TextFileOutputTest {
String outputEncode = "Windows-1252";
Object[] rows = {testString.getBytes(inputEncode)};
- ValueMetaBase iValueMeta = new ValueMetaBase("test",
IValueMeta.TYPE_STRING);
+ IValueMeta iValueMeta = ValueMetaFactory.createValueMeta("test",
IValueMeta.TYPE_STRING);
iValueMeta.setStringEncoding(inputEncode);
iValueMeta.setStorageType(IValueMeta.STORAGE_TYPE_BINARY_STRING);
iValueMeta.setStorageMetadata(new ValueMetaString());
diff --git
a/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebServiceDialog.java
b/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebServiceDialog.java
index a4da94acc8..a299f360d1 100644
---
a/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebServiceDialog.java
+++
b/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebServiceDialog.java
@@ -29,11 +29,12 @@ import javax.xml.namespace.QName;
import org.apache.hop.core.Const;
import org.apache.hop.core.Props;
import org.apache.hop.core.exception.HopException;
+import org.apache.hop.core.exception.HopPluginException;
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.RowMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
+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.i18n.BaseMessages;
@@ -376,31 +377,29 @@ public class WebServiceDialog extends BaseTransformDialog
{
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
- if (inWsdlParamContainer == null) {
- try {
- loadWebService(wURL.getText());
- loadOperation(wOperation.getText());
- } catch (HopException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ try {
+ if (inWsdlParamContainer == null) {
+ loadWebServiceAndOperation();
}
- }
- IRowMeta r = getInWebServiceFields();
- if (r != null) {
- BaseTransformDialog.getFieldsFromPrevious(
- r, fieldInTableView, 2, new int[] {2}, new int[] {}, -1, -1,
null);
- }
- // Define type for new entries
- if (inWsdlParamContainer != null) {
- TableItem[] items = fieldInTableView.table.getItems();
- for (TableItem item : items) {
- String type =
inWsdlParamContainer.getParamType(item.getText(2));
- if (type != null) {
- item.setText(3, type);
- } else {
- item.dispose();
+ IRowMeta r = getInWebServiceFields();
+ if (r != null) {
+ BaseTransformDialog.getFieldsFromPrevious(
+ r, fieldInTableView, 2, new int[] {2}, new int[] {}, -1,
-1, null);
+ }
+ // Define type for new entries
+ if (inWsdlParamContainer != null) {
+ TableItem[] items = fieldInTableView.table.getItems();
+ for (TableItem item : items) {
+ String type =
inWsdlParamContainer.getParamType(item.getText(2));
+ if (type != null) {
+ item.setText(3, type);
+ } else {
+ item.dispose();
+ }
}
}
+ } catch (Exception e) {
+ new ErrorDialog(shell, "Error", "Error getting Web Service
fields", e);
}
}
});
@@ -428,20 +427,24 @@ public class WebServiceDialog extends BaseTransformDialog
{
tabItemFieldIn.setControl(vCompositeTabField);
if (inWsdlParamContainer != null) {
- IRowMeta r = getInWebServiceFields();
- for (int i = 0; i < r.size(); ++i) {
- String wsName = r.getValueMeta(i).getName();
- TableItem vTableItem = new TableItem(fieldInTableView.table, SWT.NONE);
- vTableItem.setText(2, Const.NVL(wsName, ""));
- vTableItem.setText(3,
Const.NVL(inWsdlParamContainer.getParamType(wsName), ""));
-
- if (oldTableView != null) {
- TableItem[] oldItems = oldTableView.table.getItems();
- String previousField = getField(oldItems, wsName);
- if (previousField != null) {
- vTableItem.setText(1, previousField);
+ try {
+ IRowMeta r = getInWebServiceFields();
+ for (int i = 0; i < r.size(); ++i) {
+ String wsName = r.getValueMeta(i).getName();
+ TableItem vTableItem = new TableItem(fieldInTableView.table,
SWT.NONE);
+ vTableItem.setText(2, Const.NVL(wsName, ""));
+ vTableItem.setText(3,
Const.NVL(inWsdlParamContainer.getParamType(wsName), ""));
+
+ if (oldTableView != null) {
+ TableItem[] oldItems = oldTableView.table.getItems();
+ String previousField = getField(oldItems, wsName);
+ if (previousField != null) {
+ vTableItem.setText(1, previousField);
+ }
}
}
+ } catch (Exception e) {
+ new ErrorDialog(shell, "Error", "Error getting Web Service fields", e);
}
}
if (oldTableView != null) {
@@ -452,6 +455,15 @@ public class WebServiceDialog extends BaseTransformDialog {
fieldInTableView.optWidth(true);
}
+ private void loadWebServiceAndOperation() throws HopException {
+ try {
+ loadWebService(wURL.getText());
+ loadOperation(wOperation.getText());
+ } catch (HopException e) {
+ throw new HopException("Error loading web service and operation", e);
+ }
+ }
+
private String getField(TableItem[] items, String wsName) {
if (wsName == null) {
return null;
@@ -521,26 +533,24 @@ public class WebServiceDialog extends BaseTransformDialog
{
new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
- if (outWsdlParamContainer == null) {
- try {
- loadWebService(wURL.getText());
- loadOperation(wOperation.getText());
- } catch (HopException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ try {
+ if (outWsdlParamContainer == null) {
+ loadWebServiceAndOperation();
}
- }
- IRowMeta r = getOutWebServiceFields();
- if (r != null) {
- BaseTransformDialog.getFieldsFromPrevious(
- r, fieldOutTableView, 2, new int[] {1, 2}, new int[] {}, -1,
-1, null);
- }
- // Define type for new entries
- if (outWsdlParamContainer != null) {
- TableItem[] items = fieldOutTableView.table.getItems();
- for (TableItem item : items) {
- item.setText(3,
outWsdlParamContainer.getParamType(item.getText(2)));
+ IRowMeta r = getOutWebServiceFields();
+ if (r != null) {
+ BaseTransformDialog.getFieldsFromPrevious(
+ r, fieldOutTableView, 2, new int[] {1, 2}, new int[] {},
-1, -1, null);
+ }
+ // Define type for new entries
+ if (outWsdlParamContainer != null) {
+ TableItem[] items = fieldOutTableView.table.getItems();
+ for (TableItem item : items) {
+ item.setText(3,
outWsdlParamContainer.getParamType(item.getText(2)));
+ }
}
+ } catch (Exception e) {
+ new ErrorDialog(shell, "Error", "Error getting web service
fields", e);
}
}
});
@@ -567,24 +577,28 @@ public class WebServiceDialog extends BaseTransformDialog
{
tabItemFieldOut.setControl(vCompositeTabFieldOut);
if (fieldOutTableView.table.getItemCount() == 0 && outWsdlParamContainer
!= null) {
- IRowMeta r = getOutWebServiceFields();
- for (int i = 0; i < r.size(); ++i) {
- String wsName = r.getValueMeta(i).getName();
- String wsType = r.getValueMeta(i).getTypeDesc();
-
- TableItem vTableItem = new TableItem(fieldOutTableView.table,
SWT.NONE);
- vTableItem.setText(2, wsName);
- vTableItem.setText(3, wsType);
- if (oldTableView != null) {
- String previousField = getField(oldTableView.table.getItems(),
wsName);
- if (previousField != null && !"".equals(previousField)) {
- vTableItem.setText(1, previousField);
+ try {
+ IRowMeta r = getOutWebServiceFields();
+ for (int i = 0; i < r.size(); ++i) {
+ String wsName = r.getValueMeta(i).getName();
+ String wsType = r.getValueMeta(i).getTypeDesc();
+
+ TableItem vTableItem = new TableItem(fieldOutTableView.table,
SWT.NONE);
+ vTableItem.setText(2, wsName);
+ vTableItem.setText(3, wsType);
+ if (oldTableView != null) {
+ String previousField = getField(oldTableView.table.getItems(),
wsName);
+ if (previousField != null && !"".equals(previousField)) {
+ vTableItem.setText(1, previousField);
+ } else {
+ vTableItem.setText(1, wsName);
+ }
} else {
vTableItem.setText(1, wsName);
}
- } else {
- vTableItem.setText(1, wsName);
}
+ } catch (Exception e) {
+ new ErrorDialog(shell, "Error", "Error getting web service fields", e);
}
}
fieldOutTableView.removeEmptyRows();
@@ -592,7 +606,7 @@ public class WebServiceDialog extends BaseTransformDialog {
fieldOutTableView.optWidth(true);
}
- private IRowMeta getInWebServiceFields() {
+ private IRowMeta getInWebServiceFields() throws HopPluginException {
IRowMeta r = null;
if (inWsdlParamContainer != null) {
r = new RowMeta();
@@ -600,7 +614,7 @@ public class WebServiceDialog extends BaseTransformDialog {
// If we have already saved fields mapping, we only show these mappings
for (String param : params) {
IValueMeta value =
- new ValueMetaBase(
+ ValueMetaFactory.createValueMeta(
param,
XsdType.xsdTypeToHopType(inWsdlParamContainer.getParamType(param)));
r.addValueMeta(value);
}
@@ -608,7 +622,7 @@ public class WebServiceDialog extends BaseTransformDialog {
return r;
}
- private IRowMeta getOutWebServiceFields() {
+ private IRowMeta getOutWebServiceFields() throws HopPluginException {
IRowMeta r = null;
if (outWsdlParamContainer != null) {
r = new RowMeta();
@@ -616,7 +630,7 @@ public class WebServiceDialog extends BaseTransformDialog {
// If we have already saved fields mapping, we only show these mappings
for (String outParam : outParams) {
IValueMeta value =
- new ValueMetaBase(
+ ValueMetaFactory.createValueMeta(
outParam,
XsdType.xsdTypeToHopType(outWsdlParamContainer.getParamType(outParam)));
r.addValueMeta(value);
}
diff --git
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputMeta.java
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputMeta.java
index 2d2bb26548..e1ca7c3058 100644
---
a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputMeta.java
+++
b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputMeta.java
@@ -34,7 +34,7 @@ import org.apache.hop.core.exception.HopException;
import org.apache.hop.core.row.IRowMeta;
import org.apache.hop.core.row.IValueMeta;
import org.apache.hop.core.row.RowMeta;
-import org.apache.hop.core.row.value.ValueMetaBase;
+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.vfs.HopVfs;
@@ -358,7 +358,7 @@ public class XmlOutputMeta extends
BaseTransformMeta<XmlOutput, XmlOutputData> {
RowMeta row = new RowMeta();
for (XmlField field : outputFields) {
row.addValueMeta(
- new ValueMetaBase(
+ ValueMetaFactory.createValueMeta(
field.getFieldName(), field.getType(), field.getLength(),
field.getPrecision()));
}
return row;