You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2022/04/27 21:20:17 UTC

[hop] branch master updated: [SONAR] Imports cleanup

This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/master by this push:
     new 6efbc64705 [SONAR] Imports cleanup
     new a1ba6e4776 Merge pull request #1468 from hansva/master
6efbc64705 is described below

commit 6efbc6470593813755b4b948886d801d09e377ea
Author: Hans Van Akelyen <ha...@gmail.com>
AuthorDate: Wed Apr 27 22:51:14 2022 +0200

    [SONAR] Imports cleanup
---
 .../java/org/apache/hop/core/logging/Metrics.java  |    5 -
 .../hop/core/row/value/ValueMetaAvroRecord.java    |   17 +-
 .../java/org/apache/hop/core/util/StringUtil.java  |   17 +-
 .../main/java/org/apache/hop/core/vfs/HopVfs.java  |    4 +-
 .../org/apache/hop/core/file/IInputFileMeta.java   |    9 +-
 .../src/main/java/org/apache/hop/run/HopRun.java   |   55 +-
 .../main/java/org/apache/hop/server/HopServer.java | 2366 ++++++++++----------
 ...rkflowActionAddResultFilenamesLoadSaveTest.java |    3 -
 .../WorkflowActionFolderIsEmptyTest.java           |    1 -
 .../hop/workflow/actions/util/FtpClientUtil.java   |    1 -
 .../cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd       |    3 +-
 .../apache/hop/beam/core/coder/HopRowCoder.java    |    5 -
 .../core/transform/BeamKafkaInputTransform.java    |    4 -
 .../core/transform/BeamKafkaOutputTransform.java   |    1 -
 .../BeamDataFlowPipelineRunConfiguration.java      |    1 -
 .../HopPipelineMetaToBeamPipelineConverter.java    |    1 -
 .../bigtable/BeamBigtableOutputMeta.java           |   26 +-
 .../apache/hop/beam/transforms/io/BeamInput.java   |    6 +-
 .../hop/beam/transforms/io/BeamOutputMeta.java     |    1 +
 .../hop/beam/transforms/kafka/BeamConsumeMeta.java |    1 +
 .../hop/beam/transforms/kafka/BeamProduceMeta.java |    1 -
 .../beam/transforms/window/BeamTimestampMeta.java  |    1 +
 .../hop/beam/transforms/window/BeamWindowMeta.java |    7 +-
 .../hop/beam/core/coder/HopRowCoderTest.java       |    3 -
 .../java/org/apache/hop/www/async/AsyncStatus.java |    6 +-
 ...PeriodicPipelineStatusUpdateExtensionPoint.java |    2 +-
 plugins/misc/async/src/main/resources/server.svg   |   11 +-
 .../DrawActionDebugLevelBeeExtensionPoint.java     |    1 -
 .../projects/xp/HopGuiFileReplaceHomeVariable.java |    1 -
 .../pipeline/transform/PipelineLogging.java        |    1 +
 .../probe/transform/PipelineDataProbe.java         |   20 +-
 .../workflow/transform/WorkflowLogging.java        |    1 +
 .../testing/transforms/exectests/ExecuteTests.java |    1 -
 .../org/apache/hop/testing/util/UnitTestUtil.java  |    1 -
 .../transforms/avroinput/AvroFileInputMeta.java    |   15 +-
 .../transforms/eventhubs/write/AzureWrite.java     |    1 -
 .../transforms/cassandrainput/CassandraInput.java  |    1 -
 .../cassandrainput/CassandraInputMeta.java         |    5 +-
 .../cassandraoutput/CassandraOutput.java           |    1 -
 .../cassandrasstableoutput/SSTableOutput.java      |    1 -
 .../cassandrasstableoutput/SSTableOutputMeta.java  |    3 -
 .../datastax/DriverCqlRowHandlerTest.java          |    7 +-
 .../cassandraoutput/CassandraOutputTest.java       |    4 +-
 .../transforms/mock/TransformMockHelper.java       |    4 +-
 .../apache/hop/vfs/dropbox/DropboxFileObject.java  |   13 +-
 .../hop/vfs/dropbox/DropboxFileProvider.java       |    1 +
 .../logging/xp/PipelineLoggingExtensionPoint.java  |    3 +-
 .../neo4j/model/sw/SolutionsWorkbenchImporter.java |   14 +-
 .../hop/neo4j/transforms/cypher/CypherMeta.java    |   59 +-
 .../hop/neo4j/transforms/gencsv/GenerateCsv.java   |    1 -
 .../hop/neo4j/transforms/graph/GraphOutput.java    |   22 +-
 .../hop/neo4j/transforms/importer/Importer.java    |    1 -
 .../neo4j/transforms/importer/ImporterMeta.java    |    4 -
 .../hop/neo4j/transforms/output/Neo4JOutput.java   |    1 -
 .../hop/neo4j/transforms/split/SplitGraph.java     |    1 -
 .../transforms/graph/GraphOutputMetaTest.java      |    1 -
 .../hop/parquet/transforms/input/ParquetInput.java |    1 +
 .../parquet/transforms/input/ParquetInputMeta.java |    1 +
 .../transforms/output/ParquetOutputMeta.java       |    1 +
 .../hop/pipeline/transforms/abort/AbortMeta.java   |    1 +
 .../hop/pipeline/transforms/append/AppendMeta.java |    5 +-
 .../transforms/calculator/CalculatorMeta.java      |    1 +
 .../transforms/calculator/CalculatorUnitTest.java  |    6 +-
 .../transforms/closure/ClosureGenerator.java       |    1 -
 .../pipeline/transforms/coalesce/CoalesceMeta.java |    7 +-
 .../transforms/coalesce/CoalesceTransform.java     |    1 +
 .../pipeline/transforms/coalesce/CoalesceTest.java |    4 +-
 .../CombinationLookupMetaTest.java                 |    5 +-
 .../pipeline/transforms/constant/ConstantMeta.java |    1 +
 .../creditcardvalidator/CreditCardValidator.java   |    1 -
 .../pipeline/transforms/cubeinput/CubeInput.java   |    1 -
 .../pipeline/transforms/cubeoutput/CubeOutput.java |    1 -
 .../databaselookup/DatabaseLookupMeta.java         |   20 +-
 .../pipeline/transforms/datagrid/DataGridMeta.java |    1 +
 .../pipeline/transforms/dbproc/DBProcMetaTest.java |    5 +-
 .../hop/pipeline/transforms/delete/Delete.java     |    1 -
 .../transforms/denormaliser/Denormaliser.java      |    8 +-
 .../transforms/denormaliser/DenormaliserMeta.java  |    1 +
 .../dimensionlookup/DimensionLookup.java           |    1 -
 .../dimensionlookup/DimensionLookupMetaTest.java   |    4 +-
 .../hop/pipeline/transforms/edi2xml/Edi2Xml.java   |    1 -
 .../pipeline/transforms/excelinput/ExcelInput.java |    1 -
 .../transforms/excelinput/ExcelInputMeta.java      |  234 +-
 .../excelwriter/ExcelWriterTransform.java          |   39 +-
 .../excelwriter/ExcelWriterTransformMeta.java      |   43 +-
 .../excelwriter/ExcelWriterTransformMetaTest.java  |    7 +-
 .../pipeline/transforms/execsqlrow/ExecSqlRow.java |    1 -
 .../fieldschangesequence/FieldsChangeSequence.java |    1 -
 .../FieldsChangeSequenceMetaTest.java              |    2 +-
 .../FieldSplitter_EmptyStringVsNull_Test.java      |    2 -
 .../pipeline/transforms/fileexists/FileExists.java |    1 -
 .../pipeline/transforms/filelocked/FileLocked.java |    1 -
 .../transforms/filemetadata/FileMetadata.java      |    1 -
 .../transforms/filterrows/FilterRowsMeta.java      |    5 +-
 .../pipeline/transforms/fuzzymatch/FuzzyMatch.java |    1 -
 .../transforms/fuzzymatch/FuzzyMatchMeta.java      |    5 +-
 .../GetFilesRowsCountMetaTest.java                 |    5 +-
 .../getserversequence/GetServerSequence.java       |    1 -
 .../transforms/getsubfolders/GetSubFolders.java    |    1 -
 .../gettablenames/GetTableNamesTest.java           |    4 +-
 .../getvariable/GetVariableMetaTest.java           |    5 +-
 .../apache/hop/pipeline/transforms/http/Http.java  |    1 -
 .../hop/pipeline/transforms/httppost/HttpPost.java |    1 -
 .../transforms/httppost/HttpPostMetaTest.java      |    7 +-
 .../hop/pipeline/transforms/ifnull/IfNull.java     |    1 -
 .../hop/pipeline/transforms/ifnull/IfNullMeta.java |    1 +
 .../transforms/insertupdate/InsertUpdate.java      |    1 -
 .../transforms/insertupdate/InsertUpdateMeta.java  |   36 +-
 .../hop/pipeline/transforms/janino/JaninoMeta.java |    1 +
 .../transforms/janino/JaninoMetaFunction.java      |    1 +
 .../transforms/javafilter/JavaFilterMeta.java      |    5 +-
 .../userdefinedjavaclass/FieldHelperTest.java      |    1 -
 .../transforms/javascript/ScriptValuesDummy.java   |    1 +
 .../transforms/javascript/ScriptValuesMeta.java    |   51 +-
 .../pipeline/transforms/joinrows/JoinRowsMeta.java |    1 +
 .../pipeline/transforms/jsoninput/JsonInput.java   |    1 -
 .../transforms/jsoninput/JsonInputMeta.java        |   98 +-
 .../transforms/jsonoutput/BaseFileOutputMeta.java  |    1 +
 .../pipeline/transforms/jsonoutput/JsonOutput.java |    1 +
 .../jsonoutputenhanced/BaseFileOutputMeta.java     |    1 +
 .../transforms/jsonoutputenhanced/JsonOutput.java  |    1 -
 .../jsonoutputenhanced/JsonOutputMeta.java         |    1 +
 .../kafka/consumer/KafkaConsumerInputData.java     |    1 -
 .../kafka/consumer/KafkaConsumerInputMeta.java     |   78 +-
 .../kafka/producer/KafkaProducerOutput.java        |   16 +-
 .../pipeline/transforms/ldapinput/LdapInput.java   |    1 -
 .../transforms/ldapinput/LdapInputMeta.java        |    1 +
 .../transforms/loadfileinput/LoadFileInput.java    |    1 -
 .../hop/pipeline/transforms/mail/MailMetaTest.java |    5 +-
 .../pipeline/transforms/mailinput/MailInput.java   |    1 -
 .../pipeline/transforms/input/MappingInput.java    |    1 -
 .../transforms/memgroupby/MemoryGroupByMeta.java   |   51 +-
 .../memgroupby/MemoryGroupByMetaTest.java          |    6 +-
 .../transforms/mergerows/MergeRowsMeta.java        |    5 +-
 .../transforms/mergerows/MergeRowsMetaTest.java    |    5 +-
 .../transforms/metainput/MetadataInputMeta.java    |   35 +-
 .../transforms/metainject/MetaInjectMeta.java      |    4 +-
 .../metastructure/TransformMetaStructure.java      |    1 -
 .../monetdbbulkloader/MonetDbBulkLoader.java       |    1 -
 .../transforms/mongodbinput/MongoDbInput.java      |    9 +-
 .../mongodboutput/MongoDbOutputMeta.java           |    1 +
 .../DefaultMongoCollectionWrapperTest.java         |    4 +-
 .../transforms/multimerge/MultiMergeJoin.java      |    1 -
 .../transforms/multimerge/MultiMergeJoinMeta.java  |   13 +-
 .../transforms/normaliser/NormaliserMeta.java      |    1 +
 .../transforms/numberrange/NumberRange.java        |    1 -
 .../transforms/pgbulkloader/PGBulkLoader.java      |    1 -
 .../pgbulkloader/PGBulkLoaderMetaTest.java         |    8 +-
 .../pgpdecryptstream/PGPDecryptStream.java         |    1 -
 .../pipelineexecutor/PipelineExecutor.java         |   16 +-
 .../pipelineexecutor/PipelineExecutorMeta.java     |    4 +-
 .../transforms/processfiles/ProcessFiles.java      |    1 -
 .../transforms/processfiles/ProcessFilesMeta.java  |    1 +
 .../transforms/propertyinput/PropertyInput.java    |    1 -
 .../pipeline/transforms/regexeval/RegexEval.java   |    1 -
 .../transforms/regexeval/RegexEvalMetaTest.java    |    5 +-
 .../RegexEval_EmptyStringVsNull_Test.java          |    2 -
 .../transforms/replacestring/ReplaceString.java    |    1 -
 .../replacestring/ReplaceStringTest.java           |    4 +-
 .../reservoirsampling/ReservoirSampling.java       |    1 -
 .../transforms/rowgenerator/RowGenerator.java      |    1 +
 .../transforms/rowgenerator/RowGeneratorMeta.java  |    5 +-
 .../rowgenerator/RowGeneratorUnitTest.java         |   13 +-
 .../rowsfromresult/RowsFromResultMetaTest.java     |    5 +-
 .../transforms/rowstoresult/RowsToResultMeta.java  |    1 +
 .../transforms/salesforce/SalesforceTransform.java |    3 +-
 .../salesforce/SalesforceTransformMeta.java        |    1 +
 .../salesforceinsert/SalesforceInsertMeta.java     |    1 +
 .../salesforceupdate/SalesforceUpdateMeta.java     |    1 +
 .../salesforceupsert/SalesforceUpsertMeta.java     |    2 -
 .../hop/pipeline/transforms/sasinput/SasInput.java |    1 -
 .../pipeline/transforms/sasinput/SasInputMeta.java |    1 +
 .../transforms/selectvalues/SelectValuesMeta.java  |    4 -
 .../transforms/selectvalues/SelectValuesTest.java  |    1 -
 .../serverstatus/GetServerStatusMeta.java          |    3 -
 .../transforms/setvaluefield/SetValueField.java    |    1 +
 .../setvaluefield/SetValueFieldDialog.java         |    6 +-
 .../setvaluefield/SetValueFieldMeta.java           |    3 +-
 .../setvaluefield/SetFieldLoadSaveValidator.java   |    1 +
 .../setvaluefield/SetValueFieldMetaTest.java       |    7 +-
 .../splitfieldtorows/SplitFieldToRows.java         |    1 -
 .../transforms/splunkinput/SplunkInput.java        |    1 -
 .../transforms/splunkinput/SplunkInputMeta.java    |    4 -
 .../hop/pipeline/transforms/sql/ExecSql.java       |    1 -
 .../pipeline/transforms/sql/ExecSqlMetaTest.java   |    5 +-
 .../transforms/sqlfileoutput/SQLFileOutput.java    |    1 -
 .../hop/pipeline/transforms/ssh/SshMeta.java       |    3 +-
 .../hop/pipeline/transforms/ssh/SshMetaTest.java   |    1 -
 .../StandardizePhoneNumberMeta.java                |    3 -
 .../src/main/resources/standardizephonenumber.svg  |    4 +-
 .../transforms/streamlookup/StreamLookupMeta.java  |    6 +-
 .../transforms/streamschemamerge/StreamSchema.java |    1 -
 .../pipeline/transforms/stringcut/StringCut.java   |    1 -
 .../stringoperations/StringOperationsMetaTest.java |    5 +-
 .../transforms/switchcase/SwitchCaseMeta.java      |    5 +-
 .../SynchronizeAfterMergeMetaTest.java             |    5 +-
 .../pipeline/transforms/systemdata/SystemData.java |    1 -
 .../transforms/tablecompare/TableCompare.java      |    1 -
 .../tablecompare/TableCompareDialog.java           |    1 -
 .../transforms/tablecompare/TableCompareMeta.java  |    5 +-
 .../transforms/tableinput/TableInputMeta.java      |    5 +-
 .../transforms/tableoutput/TableOutput.java        |    1 +
 .../transforms/tableoutput/TableOutputMeta.java    |    5 +-
 .../tableoutput/TableOutputMetaTest.java           |    7 +-
 .../transforms/tableoutput/TableOutputTest.java    |    1 -
 .../hop/pipeline/transforms/terafast/TeraFast.java |    7 +-
 .../hop/pipeline/transforms/csvinput/CsvInput.java |    7 +-
 .../pipeline/transforms/csvinput/CsvInputMeta.java |    1 +
 .../transforms/fileinput/TextFileInputMeta.java    |    9 +-
 .../transforms/fileinput/text/TextFileInput.java   |    1 -
 .../fileinput/text/TextFileInputMeta.java          |    2 -
 .../textfileoutput/TextFileOutputMeta.java         |    2 -
 .../transforms/types/CsvExplorerFileType.java      |    1 -
 .../transforms/types/LogExplorerFileType.java      |    1 -
 .../transforms/types/MarkDownExplorerFileType.java |    1 -
 .../transforms/types/TextExplorerFileType.java     |    1 -
 .../types/TextExplorerFileTypeHandler.java         |   10 -
 .../text/TextFileInputMetaLoadSaveTest.java        |    2 -
 .../hop/pipeline/transforms/tika/TikaOutput.java   |    8 +-
 .../pipeline/transforms/uniquerows/UniqueRows.java |    1 -
 .../uniquerowsbyhashset/UniqueRowsByHashSet.java   |    1 -
 .../hop/pipeline/transforms/update/Update.java     |    1 -
 .../hop/pipeline/transforms/update/UpdateMeta.java |    2 -
 .../valuemapper/ValueMapperMetaTest.java           |    5 +-
 .../webserviceavailable/WebServiceAvailable.java   |    1 -
 .../transforms/webservices/WebService.java         |    1 -
 .../transforms/webservices/WebServiceMetaTest.java |    3 +-
 .../workflowexecutor/WorkflowExecutorDialog.java   |    1 -
 .../workflowexecutor/WorkflowExecutorMeta.java     |    5 +-
 .../hop/pipeline/transforms/xml/Dom4JUtil.java     |    1 +
 .../hop/pipeline/transforms/xml/addxml/AddXml.java |    3 +-
 .../pipeline/transforms/xml/addxml/AddXmlMeta.java |    3 -
 .../transforms/xml/getxmldata/GetXmlDataMeta.java  |    7 +-
 .../getxmldata/LoopNodesImportProgressDialog.java  |    1 +
 .../transforms/xml/types/XmlExplorerFileType.java  |    1 -
 .../xml/types/XmlExplorerFileTypeHandler.java      |   10 -
 .../xml/xmlinputstream/XmlInputStream.java         |   13 +-
 .../xml/xmlinputstream/XmlInputStreamMeta.java     |    1 +
 .../transforms/xml/xmljoin/XmlJoinMeta.java        |    1 +
 .../transforms/xml/xmloutput/XmlOutput.java        |    1 -
 .../transforms/xml/xmloutput/XmlOutputMeta.java    |    1 +
 .../xml/xsdvalidator/XsdValidatorMeta.java         |    1 +
 .../hop/pipeline/transforms/xml/xslt/Xslt.java     |    7 +-
 .../hop/pipeline/transforms/xml/xslt/XsltMeta.java |    1 +
 .../transforms/xml/xmloutput/XmlOutputTest.java    |    1 -
 .../xml/xsdvalidator/XsdValidatorIntTest.java      |    6 +-
 .../cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd       |    3 +-
 .../pipeline/transforms/yamlinput/YamlInput.java   |    1 -
 .../transforms/yamlinput/YamlInputMeta.java        |    1 +
 249 files changed, 2092 insertions(+), 1871 deletions(-)

diff --git a/core/src/main/java/org/apache/hop/core/logging/Metrics.java b/core/src/main/java/org/apache/hop/core/logging/Metrics.java
index c4ea0e8cdd..844270a65f 100644
--- a/core/src/main/java/org/apache/hop/core/logging/Metrics.java
+++ b/core/src/main/java/org/apache/hop/core/logging/Metrics.java
@@ -19,10 +19,6 @@ package org.apache.hop.core.logging;
 
 import org.apache.hop.core.metrics.MetricsSnapshotType;
 
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-
 public class Metrics implements IMetrics {
 
   // Database
@@ -211,5 +207,4 @@ public class Metrics implements IMetrics {
 
     return ((IMetrics) obj).getCode().equalsIgnoreCase(code);
   }
-
 }
diff --git a/core/src/main/java/org/apache/hop/core/row/value/ValueMetaAvroRecord.java b/core/src/main/java/org/apache/hop/core/row/value/ValueMetaAvroRecord.java
index cb5ceb6820..e99693d2a3 100644
--- a/core/src/main/java/org/apache/hop/core/row/value/ValueMetaAvroRecord.java
+++ b/core/src/main/java/org/apache/hop/core/row/value/ValueMetaAvroRecord.java
@@ -39,7 +39,6 @@ import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.EOFException;
 import java.io.IOException;
-import java.net.InetAddress;
 import java.net.SocketTimeoutException;
 
 @ValueMetaPlugin(
@@ -423,11 +422,12 @@ public class ValueMetaAvroRecord extends ValueMetaBase implements IValueMeta {
       // Is the value NULL?
       outputStream.writeBoolean(object == null);
 
-      if (object!=null) {
+      if (object != null) {
         GenericRecord genericRecord = (GenericRecord) object;
 
         BinaryEncoder binaryEncoder = EncoderFactory.get().directBinaryEncoder(outputStream, null);
-        GenericDatumWriter<GenericRecord> datumWriter = new GenericDatumWriter<>(genericRecord.getSchema());
+        GenericDatumWriter<GenericRecord> datumWriter =
+            new GenericDatumWriter<>(genericRecord.getSchema());
         datumWriter.write(genericRecord, binaryEncoder);
       }
     } catch (IOException e) {
@@ -436,7 +436,8 @@ public class ValueMetaAvroRecord extends ValueMetaBase implements IValueMeta {
   }
 
   @Override
-  public Object readData(DataInputStream inputStream) throws HopFileException, SocketTimeoutException {
+  public Object readData(DataInputStream inputStream)
+      throws HopFileException, SocketTimeoutException {
     try {
       // Is the value NULL?
       if (inputStream.readBoolean()) {
@@ -445,8 +446,9 @@ public class ValueMetaAvroRecord extends ValueMetaBase implements IValueMeta {
 
       // De-serialize a GenericRow object
       //
-      if (schema==null) {
-        throw new HopFileException("An Avro schema is needed to read a GenericRecord from an input stream");
+      if (schema == null) {
+        throw new HopFileException(
+            "An Avro schema is needed to read a GenericRecord from an input stream");
       }
 
       BinaryDecoder binaryDecoder = DecoderFactory.get().directBinaryDecoder(inputStream, null);
@@ -483,6 +485,7 @@ public class ValueMetaAvroRecord extends ValueMetaBase implements IValueMeta {
 
   /**
    * Try to get an Integer from an Avro value
+   *
    * @param object
    * @return
    * @throws HopValueException
@@ -490,8 +493,6 @@ public class ValueMetaAvroRecord extends ValueMetaBase implements IValueMeta {
   @Override
   public Long getInteger(Object object) throws HopValueException {
 
-
-
     return super.getInteger(object);
   }
 }
diff --git a/core/src/main/java/org/apache/hop/core/util/StringUtil.java b/core/src/main/java/org/apache/hop/core/util/StringUtil.java
index 5f53236098..6fe5fc7925 100644
--- a/core/src/main/java/org/apache/hop/core/util/StringUtil.java
+++ b/core/src/main/java/org/apache/hop/core/util/StringUtil.java
@@ -22,18 +22,9 @@ import org.apache.hop.core.exception.HopValueException;
 import org.apache.hop.core.row.IRowMeta;
 
 import java.text.DateFormat;
-import java.text.DateFormatSymbols;
-import java.text.DecimalFormat;
-import java.text.DecimalFormatSymbols;
 import java.text.Normalizer;
-import java.text.NumberFormat;
 import java.text.SimpleDateFormat;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
+import java.util.*;
 
 /** A collection of utilities to manipulate strings. */
 public class StringUtil {
@@ -112,8 +103,7 @@ public class StringUtil {
         "sun.os.patch.level",
       };
 
-  private StringUtil() {
-  }
+  private StringUtil() {}
 
   /**
    * Substitutes variables in <code>aString</code>. Variable names are delimited by open and close
@@ -254,7 +244,6 @@ public class StringUtil {
    *
    * @param aString the string on which to apply the substitution.
    * @param systemProperties the system properties to use
-   *
    * @return the string with the substitution applied.
    */
   public static final synchronized String environmentSubstitute(
@@ -412,7 +401,6 @@ public class StringUtil {
     }
   }
 
-
   /**
    * Check if the string supplied is empty. A String is empty when it is null or when the length is
    * 0
@@ -435,7 +423,6 @@ public class StringUtil {
     return string == null || string.length() == 0;
   }
 
-
   public static String getIndent(int indentLevel) {
     return INDENTCHARS.substring(0, indentLevel);
   }
diff --git a/core/src/main/java/org/apache/hop/core/vfs/HopVfs.java b/core/src/main/java/org/apache/hop/core/vfs/HopVfs.java
index 610713e402..a7b2da2bc1 100644
--- a/core/src/main/java/org/apache/hop/core/vfs/HopVfs.java
+++ b/core/src/main/java/org/apache/hop/core/vfs/HopVfs.java
@@ -472,7 +472,9 @@ public class HopVfs {
     return files;
   }
 
-  /** @see StandardFileSystemManager#freeUnusedResources() */
+  /**
+   * @see StandardFileSystemManager#freeUnusedResources()
+   */
   public static void freeUnusedResources() {
     if (fsm != null) {
       fsm.freeUnusedResources();
diff --git a/engine/src/main/java/org/apache/hop/core/file/IInputFileMeta.java b/engine/src/main/java/org/apache/hop/core/file/IInputFileMeta.java
index a19a37773c..1d1ed00ee4 100644
--- a/engine/src/main/java/org/apache/hop/core/file/IInputFileMeta.java
+++ b/engine/src/main/java/org/apache/hop/core/file/IInputFileMeta.java
@@ -18,14 +18,13 @@
 package org.apache.hop.core.file;
 
 import org.apache.hop.core.variables.IVariables;
-import org.apache.hop.pipeline.transform.ITransform;
-import org.apache.hop.pipeline.transform.ITransformData;
 import org.apache.hop.pipeline.transform.ITransformMeta;
 
-/** @deprecated replaced by implementation in the ...transforms.fileinput.text package */
+/**
+ * @deprecated replaced by implementation in the ...transforms.fileinput.text package
+ */
 @Deprecated
-public interface IInputFileMeta
-    extends ITransformMeta {
+public interface IInputFileMeta extends ITransformMeta {
 
   TextFileInputField[] getInputFields();
 
diff --git a/engine/src/main/java/org/apache/hop/run/HopRun.java b/engine/src/main/java/org/apache/hop/run/HopRun.java
index 339881e557..6127e2d93e 100644
--- a/engine/src/main/java/org/apache/hop/run/HopRun.java
+++ b/engine/src/main/java/org/apache/hop/run/HopRun.java
@@ -25,7 +25,6 @@ import org.apache.hop.core.config.plugin.ConfigPlugin;
 import org.apache.hop.core.config.plugin.ConfigPluginType;
 import org.apache.hop.core.config.plugin.IConfigOptions;
 import org.apache.hop.core.exception.HopException;
-import org.apache.hop.core.exception.HopPluginException;
 import org.apache.hop.core.extension.ExtensionPointHandler;
 import org.apache.hop.core.extension.HopExtensionPoint;
 import org.apache.hop.core.logging.HopLogStore;
@@ -519,7 +518,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return cmd;
   }
 
-  /** @param cmd The cmd to set */
+  /**
+   * @param cmd The cmd to set
+   */
   public void setCmd(CommandLine cmd) {
     this.cmd = cmd;
   }
@@ -533,7 +534,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return filename;
   }
 
-  /** @param filename The filename to set */
+  /**
+   * @param filename The filename to set
+   */
   public void setFilename(String filename) {
     this.filename = filename;
   }
@@ -547,7 +550,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return level;
   }
 
-  /** @param level The level to set */
+  /**
+   * @param level The level to set
+   */
   public void setLevel(String level) {
     this.level = level;
   }
@@ -561,7 +566,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return helpRequested;
   }
 
-  /** @param helpRequested The helpRequested to set */
+  /**
+   * @param helpRequested The helpRequested to set
+   */
   public void setHelpRequested(boolean helpRequested) {
     this.helpRequested = helpRequested;
   }
@@ -575,7 +582,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return parameters;
   }
 
-  /** @param parameters The parameters to set */
+  /**
+   * @param parameters The parameters to set
+   */
   public void setParameters(String[] parameters) {
     this.parameters = parameters;
   }
@@ -589,7 +598,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return runConfigurationName;
   }
 
-  /** @param runConfigurationName The runConfigurationName to set */
+  /**
+   * @param runConfigurationName The runConfigurationName to set
+   */
   public void setRunConfigurationName(String runConfigurationName) {
     this.runConfigurationName = runConfigurationName;
   }
@@ -603,7 +614,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return printingOptions;
   }
 
-  /** @param printingOptions The printingOptions to set */
+  /**
+   * @param printingOptions The printingOptions to set
+   */
   public void setPrintingOptions(boolean printingOptions) {
     this.printingOptions = printingOptions;
   }
@@ -617,7 +630,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return systemProperties;
   }
 
-  /** @param systemProperties The systemProperties to set */
+  /**
+   * @param systemProperties The systemProperties to set
+   */
   public void setSystemProperties(String[] systemProperties) {
     this.systemProperties = systemProperties;
   }
@@ -631,7 +646,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return variables;
   }
 
-  /** @param variables The variables to set */
+  /**
+   * @param variables The variables to set
+   */
   public void setVariables(IVariables variables) {
     this.variables = variables;
   }
@@ -645,7 +662,9 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return realRunConfigurationName;
   }
 
-  /** @param realRunConfigurationName The realRunConfigurationName to set */
+  /**
+   * @param realRunConfigurationName The realRunConfigurationName to set
+   */
   public void setRealRunConfigurationName(String realRunConfigurationName) {
     this.realRunConfigurationName = realRunConfigurationName;
   }
@@ -659,17 +678,23 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
     return realFilename;
   }
 
-  /** @param realFilename The realFilename to set */
+  /**
+   * @param realFilename The realFilename to set
+   */
   public void setRealFilename(String realFilename) {
     this.realFilename = realFilename;
   }
 
-  /** @param log The log to set */
+  /**
+   * @param log The log to set
+   */
   public void setLog(ILogChannel log) {
     this.log = log;
   }
 
-  /** @param metadataProvider The metadataProvider to set */
+  /**
+   * @param metadataProvider The metadataProvider to set
+   */
   @Override
   public void setMetadataProvider(MultiMetadataProvider metadataProvider) {
     this.metadataProvider = metadataProvider;
@@ -720,7 +745,7 @@ public class HopRun implements Runnable, IHasHopMetadataProvider {
       // Clear the jar file cache so that we don't waste memory...
       //
       JarCache.getInstance().clear();
-      
+
       // Set up the metadata to use
       //
       hopRun.metadataProvider = HopMetadataUtil.getStandardHopMetadataProvider(hopRun.variables);
diff --git a/engine/src/main/java/org/apache/hop/server/HopServer.java b/engine/src/main/java/org/apache/hop/server/HopServer.java
index c42f6a28c8..4caebcedb9 100644
--- a/engine/src/main/java/org/apache/hop/server/HopServer.java
+++ b/engine/src/main/java/org/apache/hop/server/HopServer.java
@@ -53,7 +53,6 @@ import org.apache.http.entity.InputStreamEntity;
 import org.apache.http.impl.auth.BasicScheme;
 import org.apache.http.impl.client.BasicAuthCache;
 import org.apache.http.impl.client.BasicCredentialsProvider;
-import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClients;
 import org.apache.http.message.BasicHeader;
 import org.apache.http.ssl.SSLContexts;
@@ -67,1239 +66,1228 @@ import java.text.MessageFormat;
 import java.util.*;
 
 @HopMetadata(
-        key = "server",
-        name = "Hop Server",
-        description = "Defines a Hop Hop Server",
-        image = "ui/images/server.svg",
-        documentationUrl = "/metadata-types/hop-server.html")
+    key = "server",
+    name = "Hop Server",
+    description = "Defines a Hop Hop Server",
+    image = "ui/images/server.svg",
+    documentationUrl = "/metadata-types/hop-server.html")
 public class HopServer extends HopMetadataBase implements Cloneable, IXml, IHopMetadata {
-    private static final Class<?> PKG = HopServer.class; // For Translator
+  private static final Class<?> PKG = HopServer.class; // For Translator
 
-    public static final String STRING_HOP_SERVER = "Hop Server";
+  public static final String STRING_HOP_SERVER = "Hop Server";
 
-    private static final Random RANDOM = new Random();
+  private static final Random RANDOM = new Random();
 
-    public static final String XML_TAG = "hop-server";
+  public static final String XML_TAG = "hop-server";
 
-    private static final String HTTP = "http";
-    private static final String HTTPS = "https";
+  private static final String HTTP = "http";
+  private static final String HTTPS = "https";
 
-    public static final String SSL_MODE_TAG = "sslMode";
+  public static final String SSL_MODE_TAG = "sslMode";
 
-    public static final int HOP_SERVER_RETRIES = getNumberOfHopServerRetries();
+  public static final int HOP_SERVER_RETRIES = getNumberOfHopServerRetries();
 
-    public static final int HOP_SERVER_RETRY_BACKOFF_INCREMENTS = getBackoffIncrements();
+  public static final int HOP_SERVER_RETRY_BACKOFF_INCREMENTS = getBackoffIncrements();
 
-    private static int getNumberOfHopServerRetries() {
-        try {
-            return Integer.parseInt(Const.NVL(System.getProperty("HOP_SERVER_RETRIES"), "0"));
-        } catch (Exception e) {
-            return 0;
-        }
+  private static int getNumberOfHopServerRetries() {
+    try {
+      return Integer.parseInt(Const.NVL(System.getProperty("HOP_SERVER_RETRIES"), "0"));
+    } catch (Exception e) {
+      return 0;
     }
+  }
 
-    public static int getBackoffIncrements() {
-        try {
-            return Integer.parseInt(
-                    Const.NVL(System.getProperty("HOP_SERVER_RETRY_BACKOFF_INCREMENTS"), "1000"));
-        } catch (Exception e) {
-            return 1000;
-        }
+  public static int getBackoffIncrements() {
+    try {
+      return Integer.parseInt(
+          Const.NVL(System.getProperty("HOP_SERVER_RETRY_BACKOFF_INCREMENTS"), "1000"));
+    } catch (Exception e) {
+      return 1000;
     }
+  }
 
-    private ILogChannel log;
-
-    @HopMetadataProperty
-    private String hostname;
-
-    @HopMetadataProperty
-    private String port;
-
-    @HopMetadataProperty
-    private String webAppName;
-
-    @HopMetadataProperty
-    private String username;
-
-    @HopMetadataProperty(password = true)
-    private String password;
-
-    @HopMetadataProperty
-    private String proxyHostname;
-
-    @HopMetadataProperty
-    private String proxyPort;
-
-    @HopMetadataProperty
-    private String nonProxyHosts;
-
-    @HopMetadataProperty
-    private String propertiesMasterName;
-
-    @HopMetadataProperty
-    private boolean overrideExistingProperties;
+  private ILogChannel log;
 
-    private Date changedDate;
+  @HopMetadataProperty private String hostname;
 
-    @HopMetadataProperty
-    private boolean sslMode;
+  @HopMetadataProperty private String port;
 
-    @HopMetadataProperty
-    private SslConfiguration sslConfig;
-
-    public HopServer() {
-        this.log = new LogChannel(STRING_HOP_SERVER);
-        this.changedDate = new Date();
-    }
-
-    public HopServer(String name, String hostname, String port, String username, String password) {
-        this(name, hostname, port, username, password, null, null, null, false);
-    }
-
-    public HopServer(
-            String name,
-            String hostname,
-            String port,
-            String username,
-            String password,
-            String proxyHostname,
-            String proxyPort,
-            String nonProxyHosts) {
-        this(name, hostname, port, username, password, proxyHostname, proxyPort, nonProxyHosts, false);
-    }
-
-    public HopServer(
-            String name,
-            String hostname,
-            String port,
-            String username,
-            String password,
-            String proxyHostname,
-            String proxyPort,
-            String nonProxyHosts,
-            boolean sslMode) {
-        this();
-        this.name = name;
-        this.hostname = hostname;
-        this.port = port;
-        this.username = username;
-        this.password = password;
-
-        this.proxyHostname = proxyHostname;
-        this.proxyPort = proxyPort;
-        this.nonProxyHosts = nonProxyHosts;
-        this.sslMode = sslMode;
-        this.log = new LogChannel(this);
-    }
-
-    public HopServer(Node node) {
-        this();
-        this.name = XmlHandler.getTagValue(node, "name");
-        this.hostname = XmlHandler.getTagValue(node, "hostname");
-        this.port = XmlHandler.getTagValue(node, "port");
-        this.webAppName = XmlHandler.getTagValue(node, "webAppName");
-        this.username = XmlHandler.getTagValue(node, "username");
-        this.password =
-                Encr.decryptPasswordOptionallyEncrypted(XmlHandler.getTagValue(node, "password"));
-        this.proxyHostname = XmlHandler.getTagValue(node, "proxy_hostname");
-        this.proxyPort = XmlHandler.getTagValue(node, "proxy_port");
-        this.nonProxyHosts = XmlHandler.getTagValue(node, "non_proxy_hosts");
-        this.propertiesMasterName = XmlHandler.getTagValue(node, "get_properties_from_master");
-        this.overrideExistingProperties =
-                "Y".equalsIgnoreCase(XmlHandler.getTagValue(node, "override_existing_properties"));
-        this.log = new LogChannel(this);
-
-        setSslMode("Y".equalsIgnoreCase(XmlHandler.getTagValue(node, SSL_MODE_TAG)));
-        Node sslConfig = XmlHandler.getSubNode(node, SslConfiguration.XML_TAG);
-        if (sslConfig != null) {
-            setSslMode(true);
-            this.sslConfig = new SslConfiguration(sslConfig);
-        }
-    }
-
-    public ILogChannel getLogChannel() {
-        return log;
-    }
-
-    @Override
-    public String getXml(IVariables variables) {
-        StringBuilder xml = new StringBuilder();
-
-        xml.append("      ").append(XmlHandler.openTag(XML_TAG)).append(Const.CR);
-
-        xml.append("        ").append(XmlHandler.addTagValue("name", name));
-        xml.append("        ").append(XmlHandler.addTagValue("hostname", hostname));
-        xml.append("        ").append(XmlHandler.addTagValue("port", port));
-        xml.append("        ").append(XmlHandler.addTagValue("webAppName", webAppName));
-        xml.append("        ").append(XmlHandler.addTagValue("username", username));
-        xml.append(
-                XmlHandler.addTagValue(
-                        "password", Encr.encryptPasswordIfNotUsingVariables(password), false));
-        xml.append("        ").append(XmlHandler.addTagValue("proxy_hostname", proxyHostname));
-        xml.append("        ").append(XmlHandler.addTagValue("proxy_port", proxyPort));
-        xml.append("        ").append(XmlHandler.addTagValue("non_proxy_hosts", nonProxyHosts));
-        xml.append("        ").append(XmlHandler.addTagValue(SSL_MODE_TAG, isSslMode(), false));
-        if (sslConfig != null) {
-            xml.append(sslConfig.getXml());
-        }
+  @HopMetadataProperty private String webAppName;
 
-        xml.append("      ").append(XmlHandler.closeTag(XML_TAG)).append(Const.CR);
+  @HopMetadataProperty private String username;
 
-        return xml.toString();
-    }
+  @HopMetadataProperty(password = true)
+  private String password;
 
-    @Override
-    public Object clone() {
-        HopServer hopServer = new HopServer();
-        hopServer.replaceMeta(this);
-        return hopServer;
-    }
+  @HopMetadataProperty private String proxyHostname;
 
-    public void replaceMeta(HopServer hopServer) {
-        this.name = hopServer.name;
-        this.hostname = hopServer.hostname;
-        this.port = hopServer.port;
-        this.webAppName = hopServer.webAppName;
-        this.username = hopServer.username;
-        this.password = hopServer.password;
-        this.proxyHostname = hopServer.proxyHostname;
-        this.proxyPort = hopServer.proxyPort;
-        this.nonProxyHosts = hopServer.nonProxyHosts;
-        this.sslMode = hopServer.sslMode;
-    }
+  @HopMetadataProperty private String proxyPort;
 
-    public String toString() {
-        return name;
-    }
+  @HopMetadataProperty private String nonProxyHosts;
+
+  @HopMetadataProperty private String propertiesMasterName;
+
+  @HopMetadataProperty private boolean overrideExistingProperties;
+
+  private Date changedDate;
 
-    public String getServerAndPort(IVariables variables) {
-        String realHostname;
+  @HopMetadataProperty private boolean sslMode;
 
-        realHostname = variables.resolve(hostname);
+  @HopMetadataProperty private SslConfiguration sslConfig;
 
-        if (!Utils.isEmpty(realHostname)) {
-            return realHostname + getPortSpecification(variables);
+  public HopServer() {
+    this.log = new LogChannel(STRING_HOP_SERVER);
+    this.changedDate = new Date();
+  }
+
+  public HopServer(String name, String hostname, String port, String username, String password) {
+    this(name, hostname, port, username, password, null, null, null, false);
+  }
+
+  public HopServer(
+      String name,
+      String hostname,
+      String port,
+      String username,
+      String password,
+      String proxyHostname,
+      String proxyPort,
+      String nonProxyHosts) {
+    this(name, hostname, port, username, password, proxyHostname, proxyPort, nonProxyHosts, false);
+  }
+
+  public HopServer(
+      String name,
+      String hostname,
+      String port,
+      String username,
+      String password,
+      String proxyHostname,
+      String proxyPort,
+      String nonProxyHosts,
+      boolean sslMode) {
+    this();
+    this.name = name;
+    this.hostname = hostname;
+    this.port = port;
+    this.username = username;
+    this.password = password;
+
+    this.proxyHostname = proxyHostname;
+    this.proxyPort = proxyPort;
+    this.nonProxyHosts = nonProxyHosts;
+    this.sslMode = sslMode;
+    this.log = new LogChannel(this);
+  }
+
+  public HopServer(Node node) {
+    this();
+    this.name = XmlHandler.getTagValue(node, "name");
+    this.hostname = XmlHandler.getTagValue(node, "hostname");
+    this.port = XmlHandler.getTagValue(node, "port");
+    this.webAppName = XmlHandler.getTagValue(node, "webAppName");
+    this.username = XmlHandler.getTagValue(node, "username");
+    this.password =
+        Encr.decryptPasswordOptionallyEncrypted(XmlHandler.getTagValue(node, "password"));
+    this.proxyHostname = XmlHandler.getTagValue(node, "proxy_hostname");
+    this.proxyPort = XmlHandler.getTagValue(node, "proxy_port");
+    this.nonProxyHosts = XmlHandler.getTagValue(node, "non_proxy_hosts");
+    this.propertiesMasterName = XmlHandler.getTagValue(node, "get_properties_from_master");
+    this.overrideExistingProperties =
+        "Y".equalsIgnoreCase(XmlHandler.getTagValue(node, "override_existing_properties"));
+    this.log = new LogChannel(this);
+
+    setSslMode("Y".equalsIgnoreCase(XmlHandler.getTagValue(node, SSL_MODE_TAG)));
+    Node sslConfig = XmlHandler.getSubNode(node, SslConfiguration.XML_TAG);
+    if (sslConfig != null) {
+      setSslMode(true);
+      this.sslConfig = new SslConfiguration(sslConfig);
+    }
+  }
+
+  public ILogChannel getLogChannel() {
+    return log;
+  }
+
+  @Override
+  public String getXml(IVariables variables) {
+    StringBuilder xml = new StringBuilder();
+
+    xml.append("      ").append(XmlHandler.openTag(XML_TAG)).append(Const.CR);
+
+    xml.append("        ").append(XmlHandler.addTagValue("name", name));
+    xml.append("        ").append(XmlHandler.addTagValue("hostname", hostname));
+    xml.append("        ").append(XmlHandler.addTagValue("port", port));
+    xml.append("        ").append(XmlHandler.addTagValue("webAppName", webAppName));
+    xml.append("        ").append(XmlHandler.addTagValue("username", username));
+    xml.append(
+        XmlHandler.addTagValue(
+            "password", Encr.encryptPasswordIfNotUsingVariables(password), false));
+    xml.append("        ").append(XmlHandler.addTagValue("proxy_hostname", proxyHostname));
+    xml.append("        ").append(XmlHandler.addTagValue("proxy_port", proxyPort));
+    xml.append("        ").append(XmlHandler.addTagValue("non_proxy_hosts", nonProxyHosts));
+    xml.append("        ").append(XmlHandler.addTagValue(SSL_MODE_TAG, isSslMode(), false));
+    if (sslConfig != null) {
+      xml.append(sslConfig.getXml());
+    }
+
+    xml.append("      ").append(XmlHandler.closeTag(XML_TAG)).append(Const.CR);
+
+    return xml.toString();
+  }
+
+  @Override
+  public Object clone() {
+    HopServer hopServer = new HopServer();
+    hopServer.replaceMeta(this);
+    return hopServer;
+  }
+
+  public void replaceMeta(HopServer hopServer) {
+    this.name = hopServer.name;
+    this.hostname = hopServer.hostname;
+    this.port = hopServer.port;
+    this.webAppName = hopServer.webAppName;
+    this.username = hopServer.username;
+    this.password = hopServer.password;
+    this.proxyHostname = hopServer.proxyHostname;
+    this.proxyPort = hopServer.proxyPort;
+    this.nonProxyHosts = hopServer.nonProxyHosts;
+    this.sslMode = hopServer.sslMode;
+  }
+
+  public String toString() {
+    return name;
+  }
+
+  public String getServerAndPort(IVariables variables) {
+    String realHostname;
+
+    realHostname = variables.resolve(hostname);
+
+    if (!Utils.isEmpty(realHostname)) {
+      return realHostname + getPortSpecification(variables);
+    }
+    return "Hop Server";
+  }
+
+  public boolean equals(Object obj) {
+    if (!(obj instanceof HopServer)) {
+      return false;
+    }
+    HopServer server = (HopServer) obj;
+    return name.equalsIgnoreCase(server.getName());
+  }
+
+  public int hashCode() {
+    return name.toLowerCase().hashCode();
+  }
+
+  public String getHostname() {
+    return hostname;
+  }
+
+  public void setHostname(String urlString) {
+    this.hostname = urlString;
+  }
+
+  /**
+   * @return the password
+   */
+  public String getPassword() {
+    return password;
+  }
+
+  /**
+   * @param password the password to set
+   */
+  public void setPassword(String password) {
+    this.password = password;
+  }
+
+  /**
+   * @return the username
+   */
+  public String getUsername() {
+    return username;
+  }
+
+  /**
+   * @param username the username to set
+   */
+  public void setUsername(String username) {
+    this.username = username;
+  }
+
+  /**
+   * @return the username
+   */
+  public String getWebAppName() {
+    return webAppName;
+  }
+
+  /**
+   * @param webAppName the web application name to set
+   */
+  public void setWebAppName(String webAppName) {
+    this.webAppName = webAppName;
+  }
+
+  /**
+   * @return the nonProxyHosts
+   */
+  public String getNonProxyHosts() {
+    return nonProxyHosts;
+  }
+
+  /**
+   * @param nonProxyHosts the nonProxyHosts to set
+   */
+  public void setNonProxyHosts(String nonProxyHosts) {
+    this.nonProxyHosts = nonProxyHosts;
+  }
+
+  /**
+   * @return the proxyHostname
+   */
+  public String getProxyHostname() {
+    return proxyHostname;
+  }
+
+  /**
+   * @param proxyHostname the proxyHostname to set
+   */
+  public void setProxyHostname(String proxyHostname) {
+    this.proxyHostname = proxyHostname;
+  }
+
+  /**
+   * @return the proxyPort
+   */
+  public String getProxyPort() {
+    return proxyPort;
+  }
+
+  /**
+   * @param proxyPort the proxyPort to set
+   */
+  public void setProxyPort(String proxyPort) {
+    this.proxyPort = proxyPort;
+  }
+
+  /**
+   * @return the Master name for read properties
+   */
+  public String getPropertiesMasterName() {
+    return propertiesMasterName;
+  }
+
+  /**
+   * @return flag for read properties from Master
+   */
+  public boolean isOverrideExistingProperties() {
+    return overrideExistingProperties;
+  }
+
+  /**
+   * @return the port
+   */
+  public String getPort() {
+    return port;
+  }
+
+  /**
+   * @param port the port to set
+   */
+  public void setPort(String port) {
+    this.port = port;
+  }
+
+  public String getPortSpecification(IVariables variables) {
+    String realPort = variables.resolve(port);
+    String portSpec = ":" + realPort;
+    if (Utils.isEmpty(realPort) || port.equals("80")) {
+      portSpec = "";
+    }
+    return portSpec;
+  }
+
+  public String constructUrl(IVariables variables, String serviceAndArguments)
+      throws UnsupportedEncodingException {
+    String realHostname = null;
+    String proxyHostname = null;
+    realHostname = variables.resolve(hostname);
+    proxyHostname = variables.resolve(getProxyHostname());
+    if (!Utils.isEmpty(proxyHostname) && realHostname.equals("localhost")) {
+      realHostname = "127.0.0.1";
+    }
+
+    if (!StringUtils.isBlank(webAppName)) {
+      serviceAndArguments = "/" + variables.resolve(getWebAppName()) + serviceAndArguments;
+    }
+
+    String result =
+        (isSslMode() ? HTTPS : HTTP)
+            + "://"
+            + realHostname
+            + getPortSpecification(variables)
+            + serviceAndArguments;
+    result = Const.replace(result, " ", "%20");
+    return result;
+  }
+
+  // Method is defined as package-protected in order to be accessible by unit tests
+  HttpPost buildSendXmlMethod(IVariables variables, byte[] content, String service)
+      throws Exception {
+    // Prepare HTTP put
+    //
+    String urlString = constructUrl(variables, service);
+    if (log.isDebug()) {
+      log.logDebug(BaseMessages.getString(PKG, "HopServer.DEBUG_ConnectingTo", urlString));
+    }
+    HttpPost postMethod = new HttpPost(urlString);
+
+    // Request content will be retrieved directly from the input stream
+    //
+    HttpEntity entity = new ByteArrayEntity(content);
+
+    postMethod.setEntity(entity);
+    postMethod.addHeader(new BasicHeader("Content-Type", "text/xml;charset=" + Const.XML_ENCODING));
+
+    return postMethod;
+  }
+
+  public String sendXml(IVariables variables, String xml, String service) throws Exception {
+    HttpPost method = buildSendXmlMethod(variables, xml.getBytes(Const.XML_ENCODING), service);
+    try {
+      return executeAuth(variables, method);
+    } finally {
+      // Release current connection to the connection pool once you are done
+      method.releaseConnection();
+      if (log.isDetailed()) {
+        log.logDetailed(
+            BaseMessages.getString(
+                PKG, "HopServer.DETAILED_SentXmlToService", service, variables.resolve(hostname)));
+      }
+    }
+  }
+
+  /** Throws if not ok */
+  private void handleStatus(
+      IVariables variables, HttpUriRequest method, StatusLine statusLine, int status)
+      throws HopException {
+    if (status >= 300) {
+      String message;
+      if (status == HttpStatus.SC_NOT_FOUND) {
+        message =
+            String.format(
+                "%s%s%s%s",
+                BaseMessages.getString(PKG, "HopServer.Error.404.Title"),
+                Const.CR,
+                Const.CR,
+                BaseMessages.getString(PKG, "HopServer.Error.404.Message"));
+      } else {
+        message =
+            String.format(
+                "HTTP Status %d - %s - %s",
+                status, method.getURI().toString(), statusLine.getReasonPhrase());
+      }
+      throw new HopException(message);
+    }
+  }
+
+  // Method is defined as package-protected in order to be accessible by unit tests
+  HttpPost buildSendExportMethod(IVariables variables, String type, String load, InputStream is)
+      throws UnsupportedEncodingException {
+    String serviceUrl = RegisterPackageServlet.CONTEXT_PATH;
+    if (type != null && load != null) {
+      serviceUrl +=
+          "/?"
+              + RegisterPackageServlet.PARAMETER_TYPE
+              + "="
+              + type
+              + "&"
+              + RegisterPackageServlet.PARAMETER_LOAD
+              + "="
+              + URLEncoder.encode(load, "UTF-8");
+    }
+
+    String urlString = constructUrl(variables, serviceUrl);
+    if (log.isDebug()) {
+      log.logDebug(BaseMessages.getString(PKG, "HopServer.DEBUG_ConnectingTo", urlString));
+    }
+
+    HttpPost method = new HttpPost(urlString);
+    method.setEntity(new InputStreamEntity(is));
+    method.addHeader(new BasicHeader("Content-Type", "binary/zip"));
+
+    return method;
+  }
+
+  /**
+   * Send an exported archive over to this hop server
+   *
+   * @param filename The archive to send
+   * @param type The type of file to add to the hop server (AddExportServlet.TYPE_*)
+   * @param load The filename to load in the archive (the .hwf or .hpl)
+   * @return the XML of the web result
+   * @throws Exception in case something goes awry
+   */
+  public String sendExport(IVariables variables, String filename, String type, String load)
+      throws Exception {
+    // Request content will be retrieved directly from the input stream
+    try (InputStream is = HopVfs.getInputStream(HopVfs.getFileObject(filename))) {
+      // Execute request
+      HttpPost method = buildSendExportMethod(variables, type, load, is);
+      try {
+        return executeAuth(variables, method);
+      } finally {
+        // Release current connection to the connection pool once you are done
+        method.releaseConnection();
+        if (log.isDetailed()) {
+          log.logDetailed(
+              BaseMessages.getString(
+                  PKG,
+                  "HopServer.DETAILED_SentExportToService",
+                  RegisterPackageServlet.CONTEXT_PATH,
+                  variables.resolve(hostname)));
         }
-        return "Hop Server";
-    }
-
-    public boolean equals(Object obj) {
-        if (!(obj instanceof HopServer)) {
-            return false;
+      }
+    }
+  }
+
+  /**
+   * Executes method with authentication.
+   *
+   * @param method
+   * @return
+   * @throws IOException
+   * @throws ClientProtocolException
+   * @throws HopException if response not ok
+   */
+  private String executeAuth(IVariables variables, HttpUriRequest method)
+      throws IOException, ClientProtocolException, HopException {
+    HttpResponse httpResponse = getHttpClient().execute(method, getAuthContext(variables));
+    return getResponse(variables, method, httpResponse);
+  }
+
+  private String getResponse(IVariables variables, HttpUriRequest method, HttpResponse httpResponse)
+      throws IOException, HopException {
+    StatusLine statusLine = httpResponse.getStatusLine();
+    int statusCode = statusLine.getStatusCode();
+    // The status code
+    if (log.isDebug()) {
+      log.logDebug(
+          BaseMessages.getString(
+              PKG, "HopServer.DEBUG_ResponseStatus", Integer.toString(statusCode)));
+    }
+
+    String responseBody = getResponseBodyAsString(httpResponse.getEntity().getContent());
+    if (log.isDebug()) {
+      log.logDebug(BaseMessages.getString(PKG, "HopServer.DEBUG_ResponseBody", responseBody));
+    }
+
+    // throw if not ok
+    handleStatus(variables, method, statusLine, statusCode);
+
+    return responseBody;
+  }
+
+  private void addCredentials(IVariables variables, HttpClientContext context) {
+
+    String host = variables.resolve(hostname);
+    int port = Const.toInt(variables.resolve(this.port), 80);
+    String userName = variables.resolve(username);
+    String password = Encr.decryptPasswordOptionallyEncrypted(variables.resolve(this.password));
+    String proxyHost = variables.resolve(proxyHostname);
+
+    CredentialsProvider provider = new BasicCredentialsProvider();
+    UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(userName, password);
+    if (!Utils.isEmpty(proxyHost) && host.equals("localhost")) {
+      host = "127.0.0.1";
+    }
+    provider.setCredentials(new AuthScope(host, port), credentials);
+    context.setCredentialsProvider(provider);
+    // Generate BASIC scheme object and add it to the local auth cache
+    HttpHost target = new HttpHost(host, port, isSslMode() ? HTTPS : HTTP);
+    AuthCache authCache = new BasicAuthCache();
+    BasicScheme basicAuth = new BasicScheme();
+    authCache.put(target, basicAuth);
+    context.setAuthCache(authCache);
+  }
+
+  private void addProxy(IVariables variables, HttpClientContext context) {
+    String proxyHost = variables.resolve(this.proxyHostname);
+    String proxyPort = variables.resolve(this.proxyPort);
+    String nonProxyHosts = variables.resolve(this.nonProxyHosts);
+
+    String hostName = variables.resolve(this.hostname);
+    if (Utils.isEmpty(proxyHost) || Utils.isEmpty(proxyPort)) {
+      return;
+    }
+    // skip applying proxy if non-proxy host matches
+    if (!Utils.isEmpty(nonProxyHosts) && hostName.matches(nonProxyHosts)) {
+      return;
+    }
+    HttpHost httpHost = new HttpHost(proxyHost, Integer.valueOf(proxyPort));
+
+    RequestConfig requestConfig = RequestConfig.custom().setProxy(httpHost).build();
+
+    context.setRequestConfig(requestConfig);
+  }
+
+  /**
+   * @return HttpClientContext with authorization credentials
+   */
+  protected HttpClientContext getAuthContext(IVariables variables) {
+    HttpClientContext context = HttpClientContext.create();
+    addCredentials(variables, context);
+    addProxy(variables, context);
+    return context;
+  }
+
+  public String execService(IVariables variables, String service, boolean retry) throws Exception {
+    int tries = 0;
+    int maxRetries = 0;
+    if (retry) {
+      maxRetries = HOP_SERVER_RETRIES;
+    }
+    while (true) {
+      try {
+        return execService(variables, service);
+      } catch (Exception e) {
+        if (tries >= maxRetries) {
+          throw e;
+        } else {
+          try {
+            Thread.sleep(getDelay(tries));
+          } catch (InterruptedException e2) {
+            // ignore
+          }
         }
-        HopServer server = (HopServer) obj;
-        return name.equalsIgnoreCase(server.getName());
-    }
-
-    public int hashCode() {
-        return name.toLowerCase().hashCode();
-    }
-
-    public String getHostname() {
-        return hostname;
-    }
-
-    public void setHostname(String urlString) {
-        this.hostname = urlString;
-    }
-
-    /**
-     * @return the password
-     */
-    public String getPassword() {
-        return password;
-    }
-
-    /**
-     * @param password the password to set
-     */
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    /**
-     * @return the username
-     */
-    public String getUsername() {
-        return username;
-    }
-
-    /**
-     * @param username the username to set
-     */
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    /**
-     * @return the username
-     */
-    public String getWebAppName() {
-        return webAppName;
-    }
-
-    /**
-     * @param webAppName the web application name to set
-     */
-    public void setWebAppName(String webAppName) {
-        this.webAppName = webAppName;
-    }
-
-    /**
-     * @return the nonProxyHosts
-     */
-    public String getNonProxyHosts() {
-        return nonProxyHosts;
-    }
-
-    /**
-     * @param nonProxyHosts the nonProxyHosts to set
-     */
-    public void setNonProxyHosts(String nonProxyHosts) {
-        this.nonProxyHosts = nonProxyHosts;
-    }
-
-    /**
-     * @return the proxyHostname
-     */
-    public String getProxyHostname() {
-        return proxyHostname;
-    }
-
-    /**
-     * @param proxyHostname the proxyHostname to set
-     */
-    public void setProxyHostname(String proxyHostname) {
-        this.proxyHostname = proxyHostname;
-    }
-
-    /**
-     * @return the proxyPort
-     */
-    public String getProxyPort() {
-        return proxyPort;
-    }
-
-    /**
-     * @param proxyPort the proxyPort to set
-     */
-    public void setProxyPort(String proxyPort) {
-        this.proxyPort = proxyPort;
-    }
-
-    /**
-     * @return the Master name for read properties
-     */
-    public String getPropertiesMasterName() {
-        return propertiesMasterName;
-    }
-
-    /**
-     * @return flag for read properties from Master
-     */
-    public boolean isOverrideExistingProperties() {
-        return overrideExistingProperties;
-    }
-
-    /**
-     * @return the port
-     */
-    public String getPort() {
-        return port;
-    }
-
-    /**
-     * @param port the port to set
-     */
-    public void setPort(String port) {
-        this.port = port;
-    }
-
-    public String getPortSpecification(IVariables variables) {
-        String realPort = variables.resolve(port);
-        String portSpec = ":" + realPort;
-        if (Utils.isEmpty(realPort) || port.equals("80")) {
-            portSpec = "";
-        }
-        return portSpec;
-    }
-
-    public String constructUrl(IVariables variables, String serviceAndArguments)
-            throws UnsupportedEncodingException {
-        String realHostname = null;
-        String proxyHostname = null;
-        realHostname = variables.resolve(hostname);
-        proxyHostname = variables.resolve(getProxyHostname());
-        if (!Utils.isEmpty(proxyHostname) && realHostname.equals("localhost")) {
-            realHostname = "127.0.0.1";
-        }
-
-        if (!StringUtils.isBlank(webAppName)) {
-            serviceAndArguments = "/" + variables.resolve(getWebAppName()) + serviceAndArguments;
-        }
-
-        String result =
-                (isSslMode() ? HTTPS : HTTP)
-                        + "://"
-                        + realHostname
-                        + getPortSpecification(variables)
-                        + serviceAndArguments;
-        result = Const.replace(result, " ", "%20");
-        return result;
-    }
-
-    // Method is defined as package-protected in order to be accessible by unit tests
-    HttpPost buildSendXmlMethod(IVariables variables, byte[] content, String service)
-            throws Exception {
-        // Prepare HTTP put
+      }
+      tries++;
+    }
+  }
+
+  public static long getDelay(int trial) {
+    long current = HOP_SERVER_RETRY_BACKOFF_INCREMENTS;
+    long previous = 0;
+    for (int i = 0; i < trial; i++) {
+      long tmp = current;
+      current = current + previous;
+      previous = tmp;
+    }
+    return current + RANDOM.nextInt((int) Math.min(Integer.MAX_VALUE, current / 4L));
+  }
+
+  public String execService(IVariables variables, String service) throws Exception {
+    return execService(variables, service, new HashMap<>());
+  }
+
+  // Method is defined as package-protected in order to be accessible by unit tests
+  String getResponseBodyAsString(InputStream is) throws IOException {
+    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
+    StringBuilder bodyBuffer = new StringBuilder();
+    String line;
+
+    try {
+      while ((line = bufferedReader.readLine()) != null) {
+        bodyBuffer.append(line);
+      }
+    } finally {
+      bufferedReader.close();
+    }
+
+    return bodyBuffer.toString();
+  }
+
+  // Method is defined as package-protected in order to be accessible by unit tests
+  HttpGet buildExecuteServiceMethod(
+      IVariables variables, String service, Map<String, String> headerValues)
+      throws UnsupportedEncodingException {
+    HttpGet method = new HttpGet(constructUrl(variables, service));
+
+    for (String key : headerValues.keySet()) {
+      method.setHeader(key, headerValues.get(key));
+    }
+    return method;
+  }
+
+  public String execService(IVariables variables, String service, Map<String, String> headerValues)
+      throws Exception {
+    // Prepare HTTP get
+    HttpGet method = buildExecuteServiceMethod(variables, service, headerValues);
+    // Execute request
+    try {
+      HttpResponse httpResponse = getHttpClient().execute(method, getAuthContext(variables));
+      StatusLine statusLine = httpResponse.getStatusLine();
+      int statusCode = statusLine.getStatusCode();
+
+      // The status code
+      if (log.isDebug()) {
+        log.logDebug(
+            BaseMessages.getString(
+                PKG, "HopServer.DEBUG_ResponseStatus", Integer.toString(statusCode)));
+      }
+
+      String responseBody = getResponseBodyAsString(httpResponse.getEntity().getContent());
+
+      if (log.isDetailed()) {
+        log.logDetailed(
+            BaseMessages.getString(
+                PKG,
+                "HopServer.DETAILED_FinishedReading",
+                Integer.toString(responseBody.getBytes().length)));
+      }
+      if (log.isDebug()) {
+        log.logDebug(BaseMessages.getString(PKG, "HopServer.DEBUG_ResponseBody", responseBody));
+      }
+
+      if (statusCode >= 400) {
+        throw new HopException(
+            String.format(
+                "HTTP Status %d - %s - %s",
+                statusCode, method.getURI().toString(), statusLine.getReasonPhrase()));
+      }
+
+      return responseBody;
+    } finally {
+      // Release current connection to the connection pool once you are done
+      method.releaseConnection();
+      if (log.isDetailed()) {
+        log.logDetailed(
+            BaseMessages.getString(PKG, "HopServer.DETAILED_ExecutedService", service, hostname));
+      }
+    }
+  }
+
+  // Method is defined as package-protected in order to be accessible by unit tests
+  HttpClient getHttpClient() throws HopException {
+    try {
+      if (sslMode) {
+        // Connect over an HTTPS connection
         //
-        String urlString = constructUrl(variables, service);
-        if (log.isDebug()) {
-            log.logDebug(BaseMessages.getString(PKG, "HopServer.DEBUG_ConnectingTo", urlString));
-        }
-        HttpPost postMethod = new HttpPost(urlString);
-
-        // Request content will be retrieved directly from the input stream
+        TrustStrategy acceptingTrustStrategy = new TrustSelfSignedStrategy();
+        SSLContext sslContext =
+            SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
+
+        SSLConnectionSocketFactory socketFactory =
+            new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
+        return HttpClients.custom().setSSLSocketFactory(socketFactory).build();
+      } else {
+        // Connect using a regular HTTP connection
         //
-        HttpEntity entity = new ByteArrayEntity(content);
-
-        postMethod.setEntity(entity);
-        postMethod.addHeader(new BasicHeader("Content-Type", "text/xml;charset=" + Const.XML_ENCODING));
-
-        return postMethod;
-    }
-
-    public String sendXml(IVariables variables, String xml, String service) throws Exception {
-        HttpPost method = buildSendXmlMethod(variables, xml.getBytes(Const.XML_ENCODING), service);
+        return ServerConnectionManager.getInstance().createHttpClient();
+      }
+    } catch (Exception e) {
+      throw new HopException("Error creating new HTTP client", e);
+    }
+  }
+
+  public HopServerStatus getStatus(IVariables variables) throws Exception {
+    String xml = execService(variables, GetStatusServlet.CONTEXT_PATH + "/?xml=Y");
+    return HopServerStatus.fromXml(xml);
+  }
+
+  public HopServerPipelineStatus getPipelineStatus(
+      IVariables variables, String pipelineName, String serverObjectId, int startLogLineNr)
+      throws Exception {
+    return getPipelineStatus(variables, pipelineName, serverObjectId, startLogLineNr, false);
+  }
+
+  public HopServerPipelineStatus getPipelineStatus(
+      IVariables variables,
+      String pipelineName,
+      String serverObjectId,
+      int startLogLineNr,
+      boolean sendResultXmlWithStatus)
+      throws Exception {
+    String query =
+        GetPipelineStatusServlet.CONTEXT_PATH
+            + "/?name="
+            + URLEncoder.encode(pipelineName, "UTF-8")
+            + "&id="
+            + Const.NVL(serverObjectId, "")
+            + "&xml=Y&from="
+            + startLogLineNr;
+    if (sendResultXmlWithStatus) {
+      query = query + "&" + GetPipelineStatusServlet.SEND_RESULT + "=Y";
+    }
+    String xml = execService(variables, query, true);
+    return HopServerPipelineStatus.fromXml(xml);
+  }
+
+  public HopServerWorkflowStatus getWorkflowStatus(
+      IVariables variables, String workflowName, String serverObjectId, int startLogLineNr)
+      throws Exception {
+    String xml =
+        execService(
+            variables,
+            GetWorkflowStatusServlet.CONTEXT_PATH
+                + "/?name="
+                + URLEncoder.encode(workflowName, "UTF-8")
+                + "&id="
+                + Const.NVL(serverObjectId, "")
+                + "&xml=Y&from="
+                + startLogLineNr,
+            true);
+    return HopServerWorkflowStatus.fromXml(xml);
+  }
+
+  public WebResult stopPipeline(IVariables variables, String pipelineName, String serverObjectId)
+      throws Exception {
+    String xml =
+        execService(
+            variables,
+            StopPipelineServlet.CONTEXT_PATH
+                + "/?name="
+                + URLEncoder.encode(pipelineName, "UTF-8")
+                + "&id="
+                + Const.NVL(serverObjectId, "")
+                + "&xml=Y");
+    return WebResult.fromXmlString(xml);
+  }
+
+  public WebResult pauseResumePipeline(
+      IVariables variables, String pipelineName, String serverObjectId) throws Exception {
+    String xml =
+        execService(
+            variables,
+            PausePipelineServlet.CONTEXT_PATH
+                + "/?name="
+                + URLEncoder.encode(pipelineName, "UTF-8")
+                + "&id="
+                + Const.NVL(serverObjectId, "")
+                + "&xml=Y");
+    return WebResult.fromXmlString(xml);
+  }
+
+  public WebResult removePipeline(IVariables variables, String pipelineName, String serverObjectId)
+      throws Exception {
+    String xml =
+        execService(
+            variables,
+            RemovePipelineServlet.CONTEXT_PATH
+                + "/?name="
+                + URLEncoder.encode(pipelineName, "UTF-8")
+                + "&id="
+                + Const.NVL(serverObjectId, "")
+                + "&xml=Y");
+    return WebResult.fromXmlString(xml);
+  }
+
+  public WebResult removeWorkflow(IVariables variables, String workflowName, String serverObjectId)
+      throws Exception {
+    String xml =
+        execService(
+            variables,
+            RemoveWorkflowServlet.CONTEXT_PATH
+                + "/?name="
+                + URLEncoder.encode(workflowName, "UTF-8")
+                + "&id="
+                + Const.NVL(serverObjectId, "")
+                + "&xml=Y");
+    return WebResult.fromXmlString(xml);
+  }
+
+  public WebResult stopWorkflow(IVariables variables, String pipelineName, String serverObjectId)
+      throws Exception {
+    String xml =
+        execService(
+            variables,
+            StopWorkflowServlet.CONTEXT_PATH
+                + "/?name="
+                + URLEncoder.encode(pipelineName, "UTF-8")
+                + "&xml=Y&id="
+                + Const.NVL(serverObjectId, ""));
+    return WebResult.fromXmlString(xml);
+  }
+
+  public WebResult startPipeline(IVariables variables, String pipelineName, String serverObjectId)
+      throws Exception {
+    String xml =
+        execService(
+            variables,
+            StartPipelineServlet.CONTEXT_PATH
+                + "/?name="
+                + URLEncoder.encode(pipelineName, "UTF-8")
+                + "&id="
+                + Const.NVL(serverObjectId, "")
+                + "&xml=Y");
+    return WebResult.fromXmlString(xml);
+  }
+
+  public WebResult startWorkflow(IVariables variables, String workflowName, String serverObjectId)
+      throws Exception {
+    String xml =
+        execService(
+            variables,
+            StartWorkflowServlet.CONTEXT_PATH
+                + "/?name="
+                + URLEncoder.encode(workflowName, "UTF-8")
+                + "&xml=Y&id="
+                + Const.NVL(serverObjectId, ""));
+    return WebResult.fromXmlString(xml);
+  }
+
+  public static HopServer findHopServer(List<HopServer> hopServers, String name) {
+    for (HopServer hopServer : hopServers) {
+      if (hopServer.getName() != null && hopServer.getName().equalsIgnoreCase(name)) {
+        return hopServer;
+      }
+    }
+    return null;
+  }
+
+  public static String[] getHopServerNames(IHopMetadataProvider metadataProvider)
+      throws HopException {
+    List<String> names = metadataProvider.getSerializer(HopServer.class).listObjectNames();
+    return names.toArray(new String[0]);
+  }
+
+  public String getDescription() {
+    // NOT USED
+    return null;
+  }
+
+  public void setDescription(String description) {
+    // NOT USED
+  }
+
+  /**
+   * Verify the name of the hop server and if required, change it if it already exists in the list
+   * of hop servers.
+   *
+   * @param hopServers the hop servers to check against.
+   * @param oldname the old name of the hop server
+   * @return the new hop server name
+   */
+  public String verifyAndModifyHopServerName(List<HopServer> hopServers, String oldname) {
+    String name = getName();
+    if (name.equalsIgnoreCase(oldname)) {
+      return name; // nothing to see here: move along!
+    }
+
+    int nr = 2;
+    while (HopServer.findHopServer(hopServers, getName()) != null) {
+      setName(name + " " + nr);
+      nr++;
+    }
+    return getName();
+  }
+
+  /**
+   * Sniff rows on a the hop server, return xml containing the row metadata and data.
+   *
+   * @param pipelineName pipeline name
+   * @param id the id on the server
+   * @param transformName transform name
+   * @param copyNr transform copy number
+   * @param lines lines number
+   * @param type transform type
+   * @return xml with row metadata and data
+   * @throws Exception
+   */
+  public String sniffTransform(
+      IVariables variables,
+      String pipelineName,
+      String transformName,
+      String id,
+      String copyNr,
+      int lines,
+      String type)
+      throws Exception {
+    return execService(
+        variables,
+        SniffTransformServlet.CONTEXT_PATH
+            + "/?pipeline="
+            + URLEncoder.encode(pipelineName, "UTF-8")
+            + "&id="
+            + URLEncoder.encode(id, "UTF-8")
+            + "&transform="
+            + URLEncoder.encode(transformName, "UTF-8")
+            + "&copynr="
+            + copyNr
+            + "&type="
+            + type
+            + "&lines="
+            + lines
+            + "&xml=Y");
+  }
+
+  public long getNextServerSequenceValue(
+      IVariables variables, String serverSequenceName, long incrementValue) throws HopException {
+    try {
+      String xml =
+          execService(
+              variables,
+              NextSequenceValueServlet.CONTEXT_PATH
+                  + "/"
+                  + "?"
+                  + NextSequenceValueServlet.PARAM_NAME
+                  + "="
+                  + URLEncoder.encode(serverSequenceName, "UTF-8")
+                  + "&"
+                  + NextSequenceValueServlet.PARAM_INCREMENT
+                  + "="
+                  + Long.toString(incrementValue));
+
+      Document doc = XmlHandler.loadXmlString(xml);
+      Node seqNode = XmlHandler.getSubNode(doc, NextSequenceValueServlet.XML_TAG);
+      String nextValueString =
+          XmlHandler.getTagValue(seqNode, NextSequenceValueServlet.XML_TAG_VALUE);
+      String errorString = XmlHandler.getTagValue(seqNode, NextSequenceValueServlet.XML_TAG_ERROR);
+
+      if (!Utils.isEmpty(errorString)) {
+        throw new HopException(errorString);
+      }
+      if (Utils.isEmpty(nextValueString)) {
+        throw new HopException(
+            "No value retrieved from server sequence '"
+                + serverSequenceName
+                + "' on server "
+                + toString());
+      }
+      long nextValue = Const.toLong(nextValueString, Long.MIN_VALUE);
+      if (nextValue == Long.MIN_VALUE) {
+        throw new HopException(
+            "Incorrect value '"
+                + nextValueString
+                + "' retrieved from server sequence '"
+                + serverSequenceName
+                + "' on server "
+                + toString());
+      }
+
+      return nextValue;
+    } catch (Exception e) {
+      throw new HopException(
+          "There was a problem retrieving a next sequence value from server sequence '"
+              + serverSequenceName
+              + "' on server "
+              + toString(),
+          e);
+    }
+  }
+
+  public HopServer getClient() {
+    String pHostName = getHostname();
+    String pPort = getPort();
+    String name = MessageFormat.format("Dynamic server [{0}:{1}]", pHostName, pPort);
+    HopServer client = new HopServer(name, pHostName, pPort, getUsername(), getPassword());
+    client.setSslMode(isSslMode());
+    return client;
+  }
+
+  /**
+   * Monitors a remote pipeline every 5 seconds.
+   *
+   * @param log the log channel interface
+   * @param serverObjectId the HopServer object ID
+   * @param pipelineName the pipeline name
+   */
+  public void monitorRemotePipeline(
+      IVariables variables, ILogChannel log, String serverObjectId, String pipelineName) {
+    monitorRemotePipeline(variables, log, serverObjectId, pipelineName, 5);
+  }
+
+  /**
+   * Monitors a remote pipeline at the specified interval.
+   *
+   * @param log the log channel interface
+   * @param serverObjectId the HopServer object ID
+   * @param pipelineName the pipeline name
+   * @param sleepTimeSeconds the sleep time (in seconds)
+   */
+  public void monitorRemotePipeline(
+      IVariables variables,
+      ILogChannel log,
+      String serverObjectId,
+      String pipelineName,
+      int sleepTimeSeconds) {
+    long errors = 0;
+    boolean allFinished = false;
+    while (!allFinished && errors == 0) {
+      allFinished = true;
+      errors = 0L;
+
+      // Check the remote server
+      if (allFinished && errors == 0) {
         try {
-            return executeAuth(variables, method);
-        } finally {
-            // Release current connection to the connection pool once you are done
-            method.releaseConnection();
+          HopServerPipelineStatus pipelineStatus =
+              getPipelineStatus(variables, pipelineName, serverObjectId, 0);
+          if (pipelineStatus.isRunning()) {
             if (log.isDetailed()) {
-                log.logDetailed(
-                        BaseMessages.getString(
-                                PKG, "HopServer.DETAILED_SentXmlToService", service, variables.resolve(hostname)));
-            }
-        }
-    }
-
-    /**
-     * Throws if not ok
-     */
-    private void handleStatus(
-            IVariables variables, HttpUriRequest method, StatusLine statusLine, int status)
-            throws HopException {
-        if (status >= 300) {
-            String message;
-            if (status == HttpStatus.SC_NOT_FOUND) {
-                message =
-                        String.format(
-                                "%s%s%s%s",
-                                BaseMessages.getString(PKG, "HopServer.Error.404.Title"),
-                                Const.CR,
-                                Const.CR,
-                                BaseMessages.getString(PKG, "HopServer.Error.404.Message"));
-            } else {
-                message =
-                        String.format(
-                                "HTTP Status %d - %s - %s",
-                                status, method.getURI().toString(), statusLine.getReasonPhrase());
-            }
-            throw new HopException(message);
-        }
-    }
-
-    // Method is defined as package-protected in order to be accessible by unit tests
-    HttpPost buildSendExportMethod(IVariables variables, String type, String load, InputStream is)
-            throws UnsupportedEncodingException {
-        String serviceUrl = RegisterPackageServlet.CONTEXT_PATH;
-        if (type != null && load != null) {
-            serviceUrl +=
-                    "/?"
-                            + RegisterPackageServlet.PARAMETER_TYPE
-                            + "="
-                            + type
-                            + "&"
-                            + RegisterPackageServlet.PARAMETER_LOAD
-                            + "="
-                            + URLEncoder.encode(load, "UTF-8");
-        }
-
-        String urlString = constructUrl(variables, serviceUrl);
-        if (log.isDebug()) {
-            log.logDebug(BaseMessages.getString(PKG, "HopServer.DEBUG_ConnectingTo", urlString));
-        }
-
-        HttpPost method = new HttpPost(urlString);
-        method.setEntity(new InputStreamEntity(is));
-        method.addHeader(new BasicHeader("Content-Type", "binary/zip"));
-
-        return method;
-    }
-
-    /**
-     * Send an exported archive over to this hop server
-     *
-     * @param filename The archive to send
-     * @param type     The type of file to add to the hop server (AddExportServlet.TYPE_*)
-     * @param load     The filename to load in the archive (the .hwf or .hpl)
-     * @return the XML of the web result
-     * @throws Exception in case something goes awry
-     */
-    public String sendExport(IVariables variables, String filename, String type, String load)
-            throws Exception {
-        // Request content will be retrieved directly from the input stream
-        try (InputStream is = HopVfs.getInputStream(HopVfs.getFileObject(filename))) {
-            // Execute request
-            HttpPost method = buildSendExportMethod(variables, type, load, is);
-            try {
-                return executeAuth(variables, method);
-            } finally {
-                // Release current connection to the connection pool once you are done
-                method.releaseConnection();
-                if (log.isDetailed()) {
-                    log.logDetailed(
-                            BaseMessages.getString(
-                                    PKG,
-                                    "HopServer.DETAILED_SentExportToService",
-                                    RegisterPackageServlet.CONTEXT_PATH,
-                                    variables.resolve(hostname)));
-                }
+              log.logDetailed(pipelineName, "Remote pipeline is still running.");
             }
-        }
-    }
-
-    /**
-     * Executes method with authentication.
-     *
-     * @param method
-     * @return
-     * @throws IOException
-     * @throws ClientProtocolException
-     * @throws HopException            if response not ok
-     */
-    private String executeAuth(IVariables variables, HttpUriRequest method)
-            throws IOException, ClientProtocolException, HopException {
-        HttpResponse httpResponse = getHttpClient().execute(method, getAuthContext(variables));
-        return getResponse(variables, method, httpResponse);
-    }
-
-    private String getResponse(IVariables variables, HttpUriRequest method, HttpResponse httpResponse)
-            throws IOException, HopException {
-        StatusLine statusLine = httpResponse.getStatusLine();
-        int statusCode = statusLine.getStatusCode();
-        // The status code
-        if (log.isDebug()) {
-            log.logDebug(
-                    BaseMessages.getString(
-                            PKG, "HopServer.DEBUG_ResponseStatus", Integer.toString(statusCode)));
-        }
-
-        String responseBody = getResponseBodyAsString(httpResponse.getEntity().getContent());
-        if (log.isDebug()) {
-            log.logDebug(BaseMessages.getString(PKG, "HopServer.DEBUG_ResponseBody", responseBody));
-        }
-
-        // throw if not ok
-        handleStatus(variables, method, statusLine, statusCode);
-
-        return responseBody;
-    }
-
-    private void addCredentials(IVariables variables, HttpClientContext context) {
-
-        String host = variables.resolve(hostname);
-        int port = Const.toInt(variables.resolve(this.port), 80);
-        String userName = variables.resolve(username);
-        String password = Encr.decryptPasswordOptionallyEncrypted(variables.resolve(this.password));
-        String proxyHost = variables.resolve(proxyHostname);
-
-        CredentialsProvider provider = new BasicCredentialsProvider();
-        UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(userName, password);
-        if (!Utils.isEmpty(proxyHost) && host.equals("localhost")) {
-            host = "127.0.0.1";
-        }
-        provider.setCredentials(new AuthScope(host, port), credentials);
-        context.setCredentialsProvider(provider);
-        // Generate BASIC scheme object and add it to the local auth cache
-        HttpHost target = new HttpHost(host, port, isSslMode() ? HTTPS : HTTP);
-        AuthCache authCache = new BasicAuthCache();
-        BasicScheme basicAuth = new BasicScheme();
-        authCache.put(target, basicAuth);
-        context.setAuthCache(authCache);
-    }
-
-    private void addProxy(IVariables variables, HttpClientContext context) {
-        String proxyHost = variables.resolve(this.proxyHostname);
-        String proxyPort = variables.resolve(this.proxyPort);
-        String nonProxyHosts = variables.resolve(this.nonProxyHosts);
-
-        String hostName = variables.resolve(this.hostname);
-        if (Utils.isEmpty(proxyHost) || Utils.isEmpty(proxyPort)) {
-            return;
-        }
-        // skip applying proxy if non-proxy host matches
-        if (!Utils.isEmpty(nonProxyHosts) && hostName.matches(nonProxyHosts)) {
-            return;
-        }
-        HttpHost httpHost = new HttpHost(proxyHost, Integer.valueOf(proxyPort));
-
-        RequestConfig requestConfig = RequestConfig.custom().setProxy(httpHost).build();
-
-        context.setRequestConfig(requestConfig);
-    }
-
-    /**
-     * @return HttpClientContext with authorization credentials
-     */
-    protected HttpClientContext getAuthContext(IVariables variables) {
-        HttpClientContext context = HttpClientContext.create();
-        addCredentials(variables, context);
-        addProxy(variables, context);
-        return context;
-    }
-
-    public String execService(IVariables variables, String service, boolean retry) throws Exception {
-        int tries = 0;
-        int maxRetries = 0;
-        if (retry) {
-            maxRetries = HOP_SERVER_RETRIES;
-        }
-        while (true) {
-            try {
-                return execService(variables, service);
-            } catch (Exception e) {
-                if (tries >= maxRetries) {
-                    throw e;
-                } else {
-                    try {
-                        Thread.sleep(getDelay(tries));
-                    } catch (InterruptedException e2) {
-                        // ignore
-                    }
-                }
+            allFinished = false;
+          } else {
+            if (log.isDetailed()) {
+              log.logDetailed(pipelineName, "Remote pipeline has finished.");
             }
-            tries++;
+          }
+          Result result = pipelineStatus.getResult();
+          errors += result.getNrErrors();
+        } catch (Exception e) {
+          errors += 1;
+          log.logError(
+              pipelineName,
+              "Unable to contact remote hop server '"
+                  + this.getName()
+                  + "' to check pipeline status : "
+                  + e.toString());
         }
-    }
-
-    public static long getDelay(int trial) {
-        long current = HOP_SERVER_RETRY_BACKOFF_INCREMENTS;
-        long previous = 0;
-        for (int i = 0; i < trial; i++) {
-            long tmp = current;
-            current = current + previous;
-            previous = tmp;
+      }
+
+      //
+      // Keep waiting until all pipelines have finished
+      // If needed, we stop them again and again until they yield.
+      //
+      if (!allFinished) {
+        // Not finished or error: wait a bit longer
+        if (log.isDetailed()) {
+          log.logDetailed(
+              pipelineName, "The remote pipeline is still running, waiting a few seconds...");
         }
-        return current + RANDOM.nextInt((int) Math.min(Integer.MAX_VALUE, current / 4L));
-    }
-
-    public String execService(IVariables variables, String service) throws Exception {
-        return execService(variables, service, new HashMap<>());
-    }
-
-    // Method is defined as package-protected in order to be accessible by unit tests
-    String getResponseBodyAsString(InputStream is) throws IOException {
-        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
-        StringBuilder bodyBuffer = new StringBuilder();
-        String line;
-
         try {
-            while ((line = bufferedReader.readLine()) != null) {
-                bodyBuffer.append(line);
-            }
-        } finally {
-            bufferedReader.close();
-        }
-
-        return bodyBuffer.toString();
-    }
-
-    // Method is defined as package-protected in order to be accessible by unit tests
-    HttpGet buildExecuteServiceMethod(
-            IVariables variables, String service, Map<String, String> headerValues)
-            throws UnsupportedEncodingException {
-        HttpGet method = new HttpGet(constructUrl(variables, service));
-
-        for (String key : headerValues.keySet()) {
-            method.setHeader(key, headerValues.get(key));
+          Thread.sleep(sleepTimeSeconds * 1000);
+        } catch (Exception e) {
+          // Ignore errors
         }
-        return method;
-    }
-
-    public String execService(IVariables variables, String service, Map<String, String> headerValues)
-            throws Exception {
-        // Prepare HTTP get
-        HttpGet method = buildExecuteServiceMethod(variables, service, headerValues);
-        // Execute request
+      }
+    }
+
+    log.logBasic(pipelineName, "The remote pipeline has finished.");
+  }
+
+  /**
+   * Monitors a remote workflow every 5 seconds.
+   *
+   * @param log the log channel interface
+   * @param serverObjectId the HopServer object ID
+   * @param workflowName the workflow name
+   */
+  public void monitorRemoteWorkflow(
+      IVariables variables, ILogChannel log, String serverObjectId, String workflowName) {
+    monitorRemoteWorkflow(variables, log, serverObjectId, workflowName, 5);
+  }
+
+  /**
+   * Monitors a remote workflow at the specified interval.
+   *
+   * @param log the log channel interface
+   * @param serverObjectId the HopServer object ID
+   * @param workflowName the workflow name
+   * @param sleepTimeSeconds the sleep time (in seconds)
+   */
+  public void monitorRemoteWorkflow(
+      IVariables variables,
+      ILogChannel log,
+      String serverObjectId,
+      String workflowName,
+      int sleepTimeSeconds) {
+    long errors = 0;
+    boolean allFinished = false;
+    while (!allFinished && errors == 0) {
+      allFinished = true;
+      errors = 0L;
+
+      // Check the remote server
+      if (allFinished && errors == 0) {
         try {
-            HttpResponse httpResponse = getHttpClient().execute(method, getAuthContext(variables));
-            StatusLine statusLine = httpResponse.getStatusLine();
-            int statusCode = statusLine.getStatusCode();
-
-            // The status code
-            if (log.isDebug()) {
-                log.logDebug(
-                        BaseMessages.getString(
-                                PKG, "HopServer.DEBUG_ResponseStatus", Integer.toString(statusCode)));
-            }
-
-            String responseBody = getResponseBodyAsString(httpResponse.getEntity().getContent());
-
+          HopServerWorkflowStatus jobStatus =
+              getWorkflowStatus(variables, workflowName, serverObjectId, 0);
+          if (jobStatus.isRunning()) {
             if (log.isDetailed()) {
-                log.logDetailed(
-                        BaseMessages.getString(
-                                PKG,
-                                "HopServer.DETAILED_FinishedReading",
-                                Integer.toString(responseBody.getBytes().length)));
-            }
-            if (log.isDebug()) {
-                log.logDebug(BaseMessages.getString(PKG, "HopServer.DEBUG_ResponseBody", responseBody));
+              log.logDetailed(workflowName, "Remote workflow is still running.");
             }
-
-            if (statusCode >= 400) {
-                throw new HopException(
-                        String.format(
-                                "HTTP Status %d - %s - %s",
-                                statusCode, method.getURI().toString(), statusLine.getReasonPhrase()));
-            }
-
-            return responseBody;
-        } finally {
-            // Release current connection to the connection pool once you are done
-            method.releaseConnection();
+            allFinished = false;
+          } else {
             if (log.isDetailed()) {
-                log.logDetailed(
-                        BaseMessages.getString(PKG, "HopServer.DETAILED_ExecutedService", service, hostname));
-            }
-        }
-    }
-
-    // Method is defined as package-protected in order to be accessible by unit tests
-    HttpClient getHttpClient() throws HopException {
-        try {
-            if (sslMode) {
-                // Connect over an HTTPS connection
-                //
-                TrustStrategy acceptingTrustStrategy = new TrustSelfSignedStrategy();
-                SSLContext sslContext = SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
-
-                SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
-                return HttpClients.custom().setSSLSocketFactory(socketFactory).build();
-            } else {
-                // Connect using a regular HTTP connection
-                //
-                return ServerConnectionManager.getInstance().createHttpClient();
+              log.logDetailed(workflowName, "Remote workflow has finished.");
             }
+          }
+          Result result = jobStatus.getResult();
+          errors += result.getNrErrors();
         } catch (Exception e) {
-            throw new HopException("Error creating new HTTP client", e);
+          errors += 1;
+          log.logError(
+              workflowName,
+              "Unable to contact remote hop server '"
+                  + this.getName()
+                  + "' to check workflow status : "
+                  + e.toString());
         }
-    }
-
-    public HopServerStatus getStatus(IVariables variables) throws Exception {
-        String xml = execService(variables, GetStatusServlet.CONTEXT_PATH + "/?xml=Y");
-        return HopServerStatus.fromXml(xml);
-    }
-
-    public HopServerPipelineStatus getPipelineStatus(
-            IVariables variables, String pipelineName, String serverObjectId, int startLogLineNr)
-            throws Exception {
-        return getPipelineStatus(variables, pipelineName, serverObjectId, startLogLineNr, false);
-    }
-
-    public HopServerPipelineStatus getPipelineStatus(
-            IVariables variables,
-            String pipelineName,
-            String serverObjectId,
-            int startLogLineNr,
-            boolean sendResultXmlWithStatus)
-            throws Exception {
-        String query =
-                GetPipelineStatusServlet.CONTEXT_PATH
-                        + "/?name="
-                        + URLEncoder.encode(pipelineName, "UTF-8")
-                        + "&id="
-                        + Const.NVL(serverObjectId, "")
-                        + "&xml=Y&from="
-                        + startLogLineNr;
-        if (sendResultXmlWithStatus) {
-            query = query + "&" + GetPipelineStatusServlet.SEND_RESULT + "=Y";
+      }
+
+      //
+      // Keep waiting until all pipelines have finished
+      // If needed, we stop them again and again until they yield.
+      //
+      if (!allFinished) {
+        // Not finished or error: wait a bit longer
+        if (log.isDetailed()) {
+          log.logDetailed(
+              workflowName, "The remote workflow is still running, waiting a few seconds...");
         }
-        String xml = execService(variables, query, true);
-        return HopServerPipelineStatus.fromXml(xml);
-    }
-
-    public HopServerWorkflowStatus getWorkflowStatus(
-            IVariables variables, String workflowName, String serverObjectId, int startLogLineNr)
-            throws Exception {
-        String xml =
-                execService(
-                        variables,
-                        GetWorkflowStatusServlet.CONTEXT_PATH
-                                + "/?name="
-                                + URLEncoder.encode(workflowName, "UTF-8")
-                                + "&id="
-                                + Const.NVL(serverObjectId, "")
-                                + "&xml=Y&from="
-                                + startLogLineNr,
-                        true);
-        return HopServerWorkflowStatus.fromXml(xml);
-    }
-
-    public WebResult stopPipeline(IVariables variables, String pipelineName, String serverObjectId)
-            throws Exception {
-        String xml =
-                execService(
-                        variables,
-                        StopPipelineServlet.CONTEXT_PATH
-                                + "/?name="
-                                + URLEncoder.encode(pipelineName, "UTF-8")
-                                + "&id="
-                                + Const.NVL(serverObjectId, "")
-                                + "&xml=Y");
-        return WebResult.fromXmlString(xml);
-    }
-
-    public WebResult pauseResumePipeline(
-            IVariables variables, String pipelineName, String serverObjectId) throws Exception {
-        String xml =
-                execService(
-                        variables,
-                        PausePipelineServlet.CONTEXT_PATH
-                                + "/?name="
-                                + URLEncoder.encode(pipelineName, "UTF-8")
-                                + "&id="
-                                + Const.NVL(serverObjectId, "")
-                                + "&xml=Y");
-        return WebResult.fromXmlString(xml);
-    }
-
-    public WebResult removePipeline(IVariables variables, String pipelineName, String serverObjectId)
-            throws Exception {
-        String xml =
-                execService(
-                        variables,
-                        RemovePipelineServlet.CONTEXT_PATH
-                                + "/?name="
-                                + URLEncoder.encode(pipelineName, "UTF-8")
-                                + "&id="
-                                + Const.NVL(serverObjectId, "")
-                                + "&xml=Y");
-        return WebResult.fromXmlString(xml);
-    }
-
-    public WebResult removeWorkflow(IVariables variables, String workflowName, String serverObjectId)
-            throws Exception {
-        String xml =
-                execService(
-                        variables,
-                        RemoveWorkflowServlet.CONTEXT_PATH
-                                + "/?name="
-                                + URLEncoder.encode(workflowName, "UTF-8")
-                                + "&id="
-                                + Const.NVL(serverObjectId, "")
-                                + "&xml=Y");
-        return WebResult.fromXmlString(xml);
-    }
-
-    public WebResult stopWorkflow(IVariables variables, String pipelineName, String serverObjectId)
-            throws Exception {
-        String xml =
-                execService(
-                        variables,
-                        StopWorkflowServlet.CONTEXT_PATH
-                                + "/?name="
-                                + URLEncoder.encode(pipelineName, "UTF-8")
-                                + "&xml=Y&id="
-                                + Const.NVL(serverObjectId, ""));
-        return WebResult.fromXmlString(xml);
-    }
-
-    public WebResult startPipeline(IVariables variables, String pipelineName, String serverObjectId)
-            throws Exception {
-        String xml =
-                execService(
-                        variables,
-                        StartPipelineServlet.CONTEXT_PATH
-                                + "/?name="
-                                + URLEncoder.encode(pipelineName, "UTF-8")
-                                + "&id="
-                                + Const.NVL(serverObjectId, "")
-                                + "&xml=Y");
-        return WebResult.fromXmlString(xml);
-    }
-
-    public WebResult startWorkflow(IVariables variables, String workflowName, String serverObjectId)
-            throws Exception {
-        String xml =
-                execService(
-                        variables,
-                        StartWorkflowServlet.CONTEXT_PATH
-                                + "/?name="
-                                + URLEncoder.encode(workflowName, "UTF-8")
-                                + "&xml=Y&id="
-                                + Const.NVL(serverObjectId, ""));
-        return WebResult.fromXmlString(xml);
-    }
-
-    public static HopServer findHopServer(List<HopServer> hopServers, String name) {
-        for (HopServer hopServer : hopServers) {
-            if (hopServer.getName() != null && hopServer.getName().equalsIgnoreCase(name)) {
-                return hopServer;
-            }
-        }
-        return null;
-    }
-
-    public static String[] getHopServerNames(IHopMetadataProvider metadataProvider)
-            throws HopException {
-        List<String> names = metadataProvider.getSerializer(HopServer.class).listObjectNames();
-        return names.toArray(new String[0]);
-    }
-
-    public String getDescription() {
-        // NOT USED
-        return null;
-    }
-
-    public void setDescription(String description) {
-        // NOT USED
-    }
-
-    /**
-     * Verify the name of the hop server and if required, change it if it already exists in the list
-     * of hop servers.
-     *
-     * @param hopServers the hop servers to check against.
-     * @param oldname    the old name of the hop server
-     * @return the new hop server name
-     */
-    public String verifyAndModifyHopServerName(List<HopServer> hopServers, String oldname) {
-        String name = getName();
-        if (name.equalsIgnoreCase(oldname)) {
-            return name; // nothing to see here: move along!
-        }
-
-        int nr = 2;
-        while (HopServer.findHopServer(hopServers, getName()) != null) {
-            setName(name + " " + nr);
-            nr++;
-        }
-        return getName();
-    }
-
-    /**
-     * Sniff rows on a the hop server, return xml containing the row metadata and data.
-     *
-     * @param pipelineName  pipeline name
-     * @param id            the id on the server
-     * @param transformName transform name
-     * @param copyNr        transform copy number
-     * @param lines         lines number
-     * @param type          transform type
-     * @return xml with row metadata and data
-     * @throws Exception
-     */
-    public String sniffTransform(
-            IVariables variables,
-            String pipelineName,
-            String transformName,
-            String id,
-            String copyNr,
-            int lines,
-            String type)
-            throws Exception {
-        return execService(
-                variables,
-                SniffTransformServlet.CONTEXT_PATH
-                        + "/?pipeline="
-                        + URLEncoder.encode(pipelineName, "UTF-8")
-                        + "&id="
-                        + URLEncoder.encode(id, "UTF-8")
-                        + "&transform="
-                        + URLEncoder.encode(transformName, "UTF-8")
-                        + "&copynr="
-                        + copyNr
-                        + "&type="
-                        + type
-                        + "&lines="
-                        + lines
-                        + "&xml=Y");
-    }
-
-    public long getNextServerSequenceValue(
-            IVariables variables, String serverSequenceName, long incrementValue) throws HopException {
         try {
-            String xml =
-                    execService(
-                            variables,
-                            NextSequenceValueServlet.CONTEXT_PATH
-                                    + "/"
-                                    + "?"
-                                    + NextSequenceValueServlet.PARAM_NAME
-                                    + "="
-                                    + URLEncoder.encode(serverSequenceName, "UTF-8")
-                                    + "&"
-                                    + NextSequenceValueServlet.PARAM_INCREMENT
-                                    + "="
-                                    + Long.toString(incrementValue));
-
-            Document doc = XmlHandler.loadXmlString(xml);
-            Node seqNode = XmlHandler.getSubNode(doc, NextSequenceValueServlet.XML_TAG);
-            String nextValueString =
-                    XmlHandler.getTagValue(seqNode, NextSequenceValueServlet.XML_TAG_VALUE);
-            String errorString = XmlHandler.getTagValue(seqNode, NextSequenceValueServlet.XML_TAG_ERROR);
-
-            if (!Utils.isEmpty(errorString)) {
-                throw new HopException(errorString);
-            }
-            if (Utils.isEmpty(nextValueString)) {
-                throw new HopException(
-                        "No value retrieved from server sequence '"
-                                + serverSequenceName
-                                + "' on server "
-                                + toString());
-            }
-            long nextValue = Const.toLong(nextValueString, Long.MIN_VALUE);
-            if (nextValue == Long.MIN_VALUE) {
-                throw new HopException(
-                        "Incorrect value '"
-                                + nextValueString
-                                + "' retrieved from server sequence '"
-                                + serverSequenceName
-                                + "' on server "
-                                + toString());
-            }
-
-            return nextValue;
+          Thread.sleep(sleepTimeSeconds * 1000);
         } catch (Exception e) {
-            throw new HopException(
-                    "There was a problem retrieving a next sequence value from server sequence '"
-                            + serverSequenceName
-                            + "' on server "
-                            + toString(),
-                    e);
+          // Ignore errors
         }
-    }
-
-    public HopServer getClient() {
-        String pHostName = getHostname();
-        String pPort = getPort();
-        String name = MessageFormat.format("Dynamic server [{0}:{1}]", pHostName, pPort);
-        HopServer client = new HopServer(name, pHostName, pPort, getUsername(), getPassword());
-        client.setSslMode(isSslMode());
-        return client;
-    }
-
-    /**
-     * Monitors a remote pipeline every 5 seconds.
-     *
-     * @param log            the log channel interface
-     * @param serverObjectId the HopServer object ID
-     * @param pipelineName   the pipeline name
-     */
-    public void monitorRemotePipeline(
-            IVariables variables, ILogChannel log, String serverObjectId, String pipelineName) {
-        monitorRemotePipeline(variables, log, serverObjectId, pipelineName, 5);
-    }
-
-    /**
-     * Monitors a remote pipeline at the specified interval.
-     *
-     * @param log              the log channel interface
-     * @param serverObjectId   the HopServer object ID
-     * @param pipelineName     the pipeline name
-     * @param sleepTimeSeconds the sleep time (in seconds)
-     */
-    public void monitorRemotePipeline(
-            IVariables variables,
-            ILogChannel log,
-            String serverObjectId,
-            String pipelineName,
-            int sleepTimeSeconds) {
-        long errors = 0;
-        boolean allFinished = false;
-        while (!allFinished && errors == 0) {
-            allFinished = true;
-            errors = 0L;
-
-            // Check the remote server
-            if (allFinished && errors == 0) {
-                try {
-                    HopServerPipelineStatus pipelineStatus =
-                            getPipelineStatus(variables, pipelineName, serverObjectId, 0);
-                    if (pipelineStatus.isRunning()) {
-                        if (log.isDetailed()) {
-                            log.logDetailed(pipelineName, "Remote pipeline is still running.");
-                        }
-                        allFinished = false;
-                    } else {
-                        if (log.isDetailed()) {
-                            log.logDetailed(pipelineName, "Remote pipeline has finished.");
-                        }
-                    }
-                    Result result = pipelineStatus.getResult();
-                    errors += result.getNrErrors();
-                } catch (Exception e) {
-                    errors += 1;
-                    log.logError(
-                            pipelineName,
-                            "Unable to contact remote hop server '"
-                                    + this.getName()
-                                    + "' to check pipeline status : "
-                                    + e.toString());
-                }
-            }
-
-            //
-            // Keep waiting until all pipelines have finished
-            // If needed, we stop them again and again until they yield.
-            //
-            if (!allFinished) {
-                // Not finished or error: wait a bit longer
-                if (log.isDetailed()) {
-                    log.logDetailed(
-                            pipelineName, "The remote pipeline is still running, waiting a few seconds...");
-                }
-                try {
-                    Thread.sleep(sleepTimeSeconds * 1000);
-                } catch (Exception e) {
-                    // Ignore errors
-                }
-            }
-        }
-
-        log.logBasic(pipelineName, "The remote pipeline has finished.");
-    }
-
-    /**
-     * Monitors a remote workflow every 5 seconds.
-     *
-     * @param log            the log channel interface
-     * @param serverObjectId the HopServer object ID
-     * @param workflowName   the workflow name
-     */
-    public void monitorRemoteWorkflow(
-            IVariables variables, ILogChannel log, String serverObjectId, String workflowName) {
-        monitorRemoteWorkflow(variables, log, serverObjectId, workflowName, 5);
-    }
-
-    /**
-     * Monitors a remote workflow at the specified interval.
-     *
-     * @param log              the log channel interface
-     * @param serverObjectId   the HopServer object ID
-     * @param workflowName     the workflow name
-     * @param sleepTimeSeconds the sleep time (in seconds)
-     */
-    public void monitorRemoteWorkflow(
-            IVariables variables,
-            ILogChannel log,
-            String serverObjectId,
-            String workflowName,
-            int sleepTimeSeconds) {
-        long errors = 0;
-        boolean allFinished = false;
-        while (!allFinished && errors == 0) {
-            allFinished = true;
-            errors = 0L;
-
-            // Check the remote server
-            if (allFinished && errors == 0) {
-                try {
-                    HopServerWorkflowStatus jobStatus =
-                            getWorkflowStatus(variables, workflowName, serverObjectId, 0);
-                    if (jobStatus.isRunning()) {
-                        if (log.isDetailed()) {
-                            log.logDetailed(workflowName, "Remote workflow is still running.");
-                        }
-                        allFinished = false;
-                    } else {
-                        if (log.isDetailed()) {
-                            log.logDetailed(workflowName, "Remote workflow has finished.");
-                        }
-                    }
-                    Result result = jobStatus.getResult();
-                    errors += result.getNrErrors();
-                } catch (Exception e) {
-                    errors += 1;
-                    log.logError(
-                            workflowName,
-                            "Unable to contact remote hop server '"
-                                    + this.getName()
-                                    + "' to check workflow status : "
-                                    + e.toString());
-                }
-            }
-
-            //
-            // Keep waiting until all pipelines have finished
-            // If needed, we stop them again and again until they yield.
-            //
-            if (!allFinished) {
-                // Not finished or error: wait a bit longer
-                if (log.isDetailed()) {
-                    log.logDetailed(
-                            workflowName, "The remote workflow is still running, waiting a few seconds...");
-                }
-                try {
-                    Thread.sleep(sleepTimeSeconds * 1000);
-                } catch (Exception e) {
-                    // Ignore errors
-                }
-            }
-        }
-
-        log.logBasic(workflowName, "The remote workflow has finished.");
-    }
-
-    /**
-     * @return the changedDate
-     */
-    public Date getChangedDate() {
-        return changedDate;
-    }
-
-    /**
-     * @param sslMode
-     */
-    public void setSslMode(boolean sslMode) {
-        this.sslMode = sslMode;
-    }
-
-    /**
-     * @return the sslMode
-     */
-    public boolean isSslMode() {
-        return sslMode;
-    }
-
-    /**
-     * @return the sslConfig
-     */
-    public SslConfiguration getSslConfig() {
-        return sslConfig;
-    }
-
-    /**
-     * @param sslConfig The sslConfig to set
-     */
-    public void setSslConfig(SslConfiguration sslConfig) {
-        this.sslConfig = sslConfig;
-    }
-
-    /**
-     * @param overrideExistingProperties The overrideExistingProperties to set
-     */
-    public void setOverrideExistingProperties(boolean overrideExistingProperties) {
-        this.overrideExistingProperties = overrideExistingProperties;
-    }
-
-    /**
-     * @param propertiesMasterName The propertiesMasterName to set
-     */
-    public void setPropertiesMasterName(String propertiesMasterName) {
-        this.propertiesMasterName = propertiesMasterName;
-    }
+      }
+    }
+
+    log.logBasic(workflowName, "The remote workflow has finished.");
+  }
+
+  /**
+   * @return the changedDate
+   */
+  public Date getChangedDate() {
+    return changedDate;
+  }
+
+  /**
+   * @param sslMode
+   */
+  public void setSslMode(boolean sslMode) {
+    this.sslMode = sslMode;
+  }
+
+  /**
+   * @return the sslMode
+   */
+  public boolean isSslMode() {
+    return sslMode;
+  }
+
+  /**
+   * @return the sslConfig
+   */
+  public SslConfiguration getSslConfig() {
+    return sslConfig;
+  }
+
+  /**
+   * @param sslConfig The sslConfig to set
+   */
+  public void setSslConfig(SslConfiguration sslConfig) {
+    this.sslConfig = sslConfig;
+  }
+
+  /**
+   * @param overrideExistingProperties The overrideExistingProperties to set
+   */
+  public void setOverrideExistingProperties(boolean overrideExistingProperties) {
+    this.overrideExistingProperties = overrideExistingProperties;
+  }
+
+  /**
+   * @param propertiesMasterName The propertiesMasterName to set
+   */
+  public void setPropertiesMasterName(String propertiesMasterName) {
+    this.propertiesMasterName = propertiesMasterName;
+  }
 }
diff --git a/plugins/actions/addresultfilenames/src/test/java/org/apache/hop/workflow/actions/addresultfilenames/WorkflowActionAddResultFilenamesLoadSaveTest.java b/plugins/actions/addresultfilenames/src/test/java/org/apache/hop/workflow/actions/addresultfilenames/WorkflowActionAddResultFilenamesLoadSaveTest.java
index d249f25a5c..5f2ff18bf8 100644
--- a/plugins/actions/addresultfilenames/src/test/java/org/apache/hop/workflow/actions/addresultfilenames/WorkflowActionAddResultFilenamesLoadSaveTest.java
+++ b/plugins/actions/addresultfilenames/src/test/java/org/apache/hop/workflow/actions/addresultfilenames/WorkflowActionAddResultFilenamesLoadSaveTest.java
@@ -17,7 +17,6 @@
  */
 package org.apache.hop.workflow.actions.addresultfilenames;
 
-import org.apache.hop.core.exception.HopException;
 import org.apache.hop.junit.rules.RestoreHopEngineEnvironment;
 import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidator;
 import org.apache.hop.pipeline.transforms.loadsave.validator.ListLoadSaveValidator;
@@ -25,8 +24,6 @@ import org.apache.hop.workflow.action.loadsave.WorkflowActionLoadSaveTestSupport
 import org.junit.Before;
 import org.junit.ClassRule;
 
-import java.util.Arrays;
-import java.util.List;
 import java.util.UUID;
 
 public class WorkflowActionAddResultFilenamesLoadSaveTest
diff --git a/plugins/actions/folderisempty/src/test/java/org/apache/hop/workflow/actions/folderisempty/WorkflowActionFolderIsEmptyTest.java b/plugins/actions/folderisempty/src/test/java/org/apache/hop/workflow/actions/folderisempty/WorkflowActionFolderIsEmptyTest.java
index 3ad99368a5..050a225382 100644
--- a/plugins/actions/folderisempty/src/test/java/org/apache/hop/workflow/actions/folderisempty/WorkflowActionFolderIsEmptyTest.java
+++ b/plugins/actions/folderisempty/src/test/java/org/apache/hop/workflow/actions/folderisempty/WorkflowActionFolderIsEmptyTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.hop.workflow.actions.folderisempty;
 
-import org.apache.hop.core.Const;
 import org.apache.hop.core.Result;
 import org.apache.hop.core.logging.HopLogStore;
 import org.apache.hop.workflow.WorkflowMeta;
diff --git a/plugins/actions/ftp/src/main/java/org/apache/hop/workflow/actions/util/FtpClientUtil.java b/plugins/actions/ftp/src/main/java/org/apache/hop/workflow/actions/util/FtpClientUtil.java
index 0ae39e8396..6c70ed0687 100644
--- a/plugins/actions/ftp/src/main/java/org/apache/hop/workflow/actions/util/FtpClientUtil.java
+++ b/plugins/actions/ftp/src/main/java/org/apache/hop/workflow/actions/util/FtpClientUtil.java
@@ -28,7 +28,6 @@ import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.i18n.BaseMessages;
 
 import java.io.IOException;
-import java.io.InputStream;
 import java.net.InetSocketAddress;
 import java.net.Proxy;
 
diff --git a/plugins/actions/xml/src/test/resources/xsd_issue/cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd b/plugins/actions/xml/src/test/resources/xsd_issue/cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd
index 7a5669a511..0314fec069 100644
--- a/plugins/actions/xml/src/test/resources/xsd_issue/cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd
+++ b/plugins/actions/xml/src/test/resources/xsd_issue/cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Sebastien Michon (OECD) -->
-<xsd:schema xmlns:iso="urn:oecd:ties:isocbctypes:v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:oecd:ties:isocbctypes:v1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:oecd:ties:isocbctypes:v1"
+            elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
 	<!--  ISO 3166 alpha 2 Country Code 
 
 The following disclaimer refers to all uses of the ISO country code list in the CBC schema: For practical reasons, the list is based on the ISO 3166-1 country list which is currently used by banks and other financial institutions, and hence by tax administrations. The use of this list does not imply the expression by the OECD of any opinion whatsoever concerning the legal status of the territories listed. Its content is without prejudice to the status of or sovereignty over any territory [...]
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/coder/HopRowCoder.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/coder/HopRowCoder.java
index 5ae83626eb..35df89492a 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/coder/HopRowCoder.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/coder/HopRowCoder.java
@@ -18,12 +18,7 @@
 package org.apache.hop.beam.core.coder;
 
 import org.apache.avro.Schema;
-import org.apache.avro.generic.GenericDatumReader;
-import org.apache.avro.generic.GenericDatumWriter;
 import org.apache.avro.generic.GenericRecord;
-import org.apache.avro.io.*;
-import org.apache.avro.specific.SpecificDatumReader;
-import org.apache.avro.specific.SpecificDatumWriter;
 import org.apache.beam.sdk.coders.AtomicCoder;
 import org.apache.beam.sdk.coders.CoderException;
 import org.apache.hop.beam.core.HopRow;
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/transform/BeamKafkaInputTransform.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/transform/BeamKafkaInputTransform.java
index 6df51d6c50..1f0a3e16fa 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/transform/BeamKafkaInputTransform.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/transform/BeamKafkaInputTransform.java
@@ -17,11 +17,7 @@
 
 package org.apache.hop.beam.core.transform;
 
-import io.confluent.kafka.serializers.KafkaAvroDeserializer;
 import org.apache.avro.generic.GenericRecord;
-import org.apache.beam.sdk.coders.AtomicCoder;
-import org.apache.beam.sdk.coders.AvroCoder;
-import org.apache.beam.sdk.coders.Coder;
 import org.apache.beam.sdk.io.kafka.ConfluentSchemaRegistryDeserializerProvider;
 import org.apache.beam.sdk.io.kafka.KafkaIO;
 import org.apache.beam.sdk.metrics.Counter;
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/transform/BeamKafkaOutputTransform.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/transform/BeamKafkaOutputTransform.java
index 24b4e0ed72..3aabf3d6e9 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/transform/BeamKafkaOutputTransform.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/core/transform/BeamKafkaOutputTransform.java
@@ -41,7 +41,6 @@ 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.pipeline.Pipeline;
-import org.apache.kafka.common.serialization.Serializer;
 import org.apache.kafka.common.serialization.StringSerializer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/engines/dataflow/BeamDataFlowPipelineRunConfiguration.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/engines/dataflow/BeamDataFlowPipelineRunConfiguration.java
index 2abaa84dca..143a3a3332 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/engines/dataflow/BeamDataFlowPipelineRunConfiguration.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/engines/dataflow/BeamDataFlowPipelineRunConfiguration.java
@@ -34,7 +34,6 @@ import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.pipeline.config.PipelineRunConfiguration;
 
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/pipeline/HopPipelineMetaToBeamPipelineConverter.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/pipeline/HopPipelineMetaToBeamPipelineConverter.java
index d01c2ad3d5..a48f3aded4 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/pipeline/HopPipelineMetaToBeamPipelineConverter.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/pipeline/HopPipelineMetaToBeamPipelineConverter.java
@@ -61,7 +61,6 @@ import org.jboss.jandex.DotName;
 import org.jboss.jandex.IndexView;
 
 import java.io.File;
-import java.io.IOException;
 import java.util.*;
 
 public class HopPipelineMetaToBeamPipelineConverter<T extends IBeamPipelineEngineRunConfiguration> {
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/bigtable/BeamBigtableOutputMeta.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/bigtable/BeamBigtableOutputMeta.java
index 591513dbfa..cede5e172f 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/bigtable/BeamBigtableOutputMeta.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/bigtable/BeamBigtableOutputMeta.java
@@ -34,14 +34,11 @@ import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.dummy.Dummy;
 import org.apache.hop.pipeline.transforms.dummy.DummyData;
-import org.apache.hop.pipeline.transforms.dummy.DummyMeta;
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
 
@@ -57,7 +54,8 @@ import java.util.Map;
     categoryDescription = "i18n:org.apache.hop.pipeline.transform:BaseTransform.Category.BigData",
     keywords = "i18n::BeamBigtableOutputMeta.keyword",
     documentationUrl = "/pipeline/transforms/beambigtableoutput.html")
-public class BeamBigtableOutputMeta extends BaseTransformMeta<Dummy, DummyData> implements IBeamPipelineTransformHandler {
+public class BeamBigtableOutputMeta extends BaseTransformMeta<Dummy, DummyData>
+    implements IBeamPipelineTransformHandler {
 
   @HopMetadataProperty(key = "project_id")
   private String projectId;
@@ -181,7 +179,9 @@ public class BeamBigtableOutputMeta extends BaseTransformMeta<Dummy, DummyData>
     return projectId;
   }
 
-  /** @param projectId The projectId to set */
+  /**
+   * @param projectId The projectId to set
+   */
   public void setProjectId(String projectId) {
     this.projectId = projectId;
   }
@@ -195,7 +195,9 @@ public class BeamBigtableOutputMeta extends BaseTransformMeta<Dummy, DummyData>
     return instanceId;
   }
 
-  /** @param instanceId The instanceId to set */
+  /**
+   * @param instanceId The instanceId to set
+   */
   public void setInstanceId(String instanceId) {
     this.instanceId = instanceId;
   }
@@ -209,7 +211,9 @@ public class BeamBigtableOutputMeta extends BaseTransformMeta<Dummy, DummyData>
     return tableId;
   }
 
-  /** @param tableId The tableId to set */
+  /**
+   * @param tableId The tableId to set
+   */
   public void setTableId(String tableId) {
     this.tableId = tableId;
   }
@@ -223,7 +227,9 @@ public class BeamBigtableOutputMeta extends BaseTransformMeta<Dummy, DummyData>
     return keyField;
   }
 
-  /** @param keyField The keyField to set */
+  /**
+   * @param keyField The keyField to set
+   */
   public void setKeyField(String keyField) {
     this.keyField = keyField;
   }
@@ -237,7 +243,9 @@ public class BeamBigtableOutputMeta extends BaseTransformMeta<Dummy, DummyData>
     return columns;
   }
 
-  /** @param columns The columns to set */
+  /**
+   * @param columns The columns to set
+   */
   public void setColumns(List<BigtableColumn> columns) {
     this.columns = columns;
   }
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/io/BeamInput.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/io/BeamInput.java
index b87495efde..4410e3856d 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/io/BeamInput.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/io/BeamInput.java
@@ -21,7 +21,6 @@ import org.apache.hop.core.exception.HopException;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 public class BeamInput extends BaseTransform<BeamInputMeta, BeamInputData> {
@@ -31,8 +30,9 @@ public class BeamInput extends BaseTransform<BeamInputMeta, BeamInputData> {
    * class to implement your own transforms.
    *
    * @param transformMeta The TransformMeta object to run.
-   * @param transformDataInterface the data object to store temporary data, database connections,
-   *     caches, result sets, hashtables etc.
+   * @param meta the meta object containing all metadata
+   * @param data the data object to store temporary data, database connections, caches, result sets,
+   *     hashtables etc.
    * @param copyNr The copynumber for this transform.
    * @param pipelineMeta The TransInfo of which the transform transformMeta is part of.
    * @param pipeline The (running) transformation to obtain information shared among the transforms.
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/io/BeamOutputMeta.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/io/BeamOutputMeta.java
index 0b35eab074..c2ea426389 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/io/BeamOutputMeta.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/io/BeamOutputMeta.java
@@ -39,6 +39,7 @@ import org.apache.hop.metadata.api.IHopMetadataSerializer;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.List;
 import java.util.Map;
 
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/kafka/BeamConsumeMeta.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/kafka/BeamConsumeMeta.java
index db868f5511..155cd5f189 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/kafka/BeamConsumeMeta.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/kafka/BeamConsumeMeta.java
@@ -40,6 +40,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.dummy.DummyData;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/kafka/BeamProduceMeta.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/kafka/BeamProduceMeta.java
index 73597f04cb..0e2ef85e7f 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/kafka/BeamProduceMeta.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/kafka/BeamProduceMeta.java
@@ -20,7 +20,6 @@ package org.apache.hop.beam.transforms.kafka;
 import org.apache.avro.Schema;
 import org.apache.avro.generic.GenericRecord;
 import org.apache.beam.sdk.coders.AvroCoder;
-import org.apache.beam.sdk.coders.AvroGenericCoder;
 import org.apache.beam.sdk.values.PCollection;
 import org.apache.hop.beam.core.HopRow;
 import org.apache.hop.beam.core.transform.BeamKafkaOutputTransform;
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/window/BeamTimestampMeta.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/window/BeamTimestampMeta.java
index ecfd670489..2d60d06a6f 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/window/BeamTimestampMeta.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/window/BeamTimestampMeta.java
@@ -39,6 +39,7 @@ import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.dummy.Dummy;
 import org.apache.hop.pipeline.transforms.dummy.DummyData;
+
 import java.util.List;
 import java.util.Map;
 
diff --git a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/window/BeamWindowMeta.java b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/window/BeamWindowMeta.java
index c7c7e285a5..1b3742903e 100644
--- a/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/window/BeamWindowMeta.java
+++ b/plugins/engines/beam/src/main/java/org/apache/hop/beam/transforms/window/BeamWindowMeta.java
@@ -18,11 +18,7 @@
 package org.apache.hop.beam.transforms.window;
 
 import org.apache.beam.sdk.transforms.ParDo;
-import org.apache.beam.sdk.transforms.windowing.FixedWindows;
-import org.apache.beam.sdk.transforms.windowing.GlobalWindows;
-import org.apache.beam.sdk.transforms.windowing.Sessions;
-import org.apache.beam.sdk.transforms.windowing.SlidingWindows;
-import org.apache.beam.sdk.transforms.windowing.Window;
+import org.apache.beam.sdk.transforms.windowing.*;
 import org.apache.beam.sdk.values.PCollection;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hop.beam.core.BeamDefaults;
@@ -48,6 +44,7 @@ import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.dummy.Dummy;
 import org.apache.hop.pipeline.transforms.dummy.DummyData;
 import org.joda.time.Duration;
+
 import java.util.List;
 import java.util.Map;
 
diff --git a/plugins/engines/beam/src/test/java/org/apache/hop/beam/core/coder/HopRowCoderTest.java b/plugins/engines/beam/src/test/java/org/apache/hop/beam/core/coder/HopRowCoderTest.java
index 1364b16305..0f65b1ceed 100644
--- a/plugins/engines/beam/src/test/java/org/apache/hop/beam/core/coder/HopRowCoderTest.java
+++ b/plugins/engines/beam/src/test/java/org/apache/hop/beam/core/coder/HopRowCoderTest.java
@@ -23,7 +23,6 @@ import org.apache.avro.generic.GenericData;
 import org.apache.avro.generic.GenericRecord;
 import org.apache.avro.util.Utf8;
 import org.apache.hop.beam.core.HopRow;
-import org.apache.hop.core.row.value.ValueMetaAvroRecord;
 import org.junit.Test;
 
 import java.io.ByteArrayInputStream;
@@ -32,8 +31,6 @@ import java.io.IOException;
 import java.sql.Timestamp;
 import java.util.Date;
 
-import static org.junit.Assert.assertEquals;
-
 public class HopRowCoderTest extends TestCase {
 
   ByteArrayOutputStream outputStream;
diff --git a/plugins/misc/async/src/main/java/org/apache/hop/www/async/AsyncStatus.java b/plugins/misc/async/src/main/java/org/apache/hop/www/async/AsyncStatus.java
index 6a22e2dff3..899d56dd9f 100644
--- a/plugins/misc/async/src/main/java/org/apache/hop/www/async/AsyncStatus.java
+++ b/plugins/misc/async/src/main/java/org/apache/hop/www/async/AsyncStatus.java
@@ -20,11 +20,7 @@ package org.apache.hop.www.async;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.apache.hop.www.HopServerPipelineStatus;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class AsyncStatus {
   private String service;
diff --git a/plugins/misc/async/src/main/java/org/apache/hop/www/async/xp/PeriodicPipelineStatusUpdateExtensionPoint.java b/plugins/misc/async/src/main/java/org/apache/hop/www/async/xp/PeriodicPipelineStatusUpdateExtensionPoint.java
index f723c9b51d..96490cda60 100644
--- a/plugins/misc/async/src/main/java/org/apache/hop/www/async/xp/PeriodicPipelineStatusUpdateExtensionPoint.java
+++ b/plugins/misc/async/src/main/java/org/apache/hop/www/async/xp/PeriodicPipelineStatusUpdateExtensionPoint.java
@@ -32,9 +32,9 @@ import org.apache.hop.server.HttpUtil;
 import org.apache.hop.workflow.WorkflowMeta;
 import org.apache.hop.workflow.action.IAction;
 import org.apache.hop.workflow.engine.IWorkflowEngine;
+import org.apache.hop.www.HopServerPipelineStatus;
 import org.apache.hop.www.async.AsyncWebService;
 import org.apache.hop.www.async.Defaults;
-import org.apache.hop.www.HopServerPipelineStatus;
 
 import java.io.IOException;
 import java.util.Date;
diff --git a/plugins/misc/async/src/main/resources/server.svg b/plugins/misc/async/src/main/resources/server.svg
index f230a403c9..ceb17a902a 100644
--- a/plugins/misc/async/src/main/resources/server.svg
+++ b/plugins/misc/async/src/main/resources/server.svg
@@ -17,12 +17,11 @@
   -->
 
 <svg
-    xmlns:svg="http://www.w3.org/2000/svg"
-    xmlns="http://www.w3.org/2000/svg"
-    version="1.1"
-    width="24"
-    height="24"
-    viewBox="0 0 24 24"
+        xmlns="http://www.w3.org/2000/svg"
+        version="1.1"
+        width="24"
+        height="24"
+        viewBox="0 0 24 24"
 >
   <rect
       y="1.9834554"
diff --git a/plugins/misc/debug/src/main/java/org/apache/hop/debug/action/DrawActionDebugLevelBeeExtensionPoint.java b/plugins/misc/debug/src/main/java/org/apache/hop/debug/action/DrawActionDebugLevelBeeExtensionPoint.java
index 5a5942ed42..29466ca638 100644
--- a/plugins/misc/debug/src/main/java/org/apache/hop/debug/action/DrawActionDebugLevelBeeExtensionPoint.java
+++ b/plugins/misc/debug/src/main/java/org/apache/hop/debug/action/DrawActionDebugLevelBeeExtensionPoint.java
@@ -26,7 +26,6 @@ import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.debug.util.BeePainter;
 import org.apache.hop.debug.util.DebugLevelUtil;
 import org.apache.hop.debug.util.Defaults;
-import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.workflow.WorkflowPainterExtension;
 
 import java.awt.image.BufferedImage;
diff --git a/plugins/misc/projects/src/main/java/org/apache/hop/projects/xp/HopGuiFileReplaceHomeVariable.java b/plugins/misc/projects/src/main/java/org/apache/hop/projects/xp/HopGuiFileReplaceHomeVariable.java
index 7a21ebc319..e178207f2d 100644
--- a/plugins/misc/projects/src/main/java/org/apache/hop/projects/xp/HopGuiFileReplaceHomeVariable.java
+++ b/plugins/misc/projects/src/main/java/org/apache/hop/projects/xp/HopGuiFileReplaceHomeVariable.java
@@ -19,7 +19,6 @@ package org.apache.hop.projects.xp;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.vfs2.FileObject;
-import org.apache.hop.core.Const;
 import org.apache.hop.core.extension.ExtensionPoint;
 import org.apache.hop.core.extension.IExtensionPoint;
 import org.apache.hop.core.logging.ILogChannel;
diff --git a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/pipeline/transform/PipelineLogging.java b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/pipeline/transform/PipelineLogging.java
index f1aa84c667..936ff632e5 100644
--- a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/pipeline/transform/PipelineLogging.java
+++ b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/pipeline/transform/PipelineLogging.java
@@ -30,6 +30,7 @@ import org.apache.hop.pipeline.engine.IEngineComponent;
 import org.apache.hop.pipeline.engine.IPipelineEngine;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.List;
 
 public class PipelineLogging extends BaseTransform<PipelineLoggingMeta, PipelineLoggingData>
diff --git a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/probe/transform/PipelineDataProbe.java b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/probe/transform/PipelineDataProbe.java
index 443bbc22a4..0b7d36991d 100644
--- a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/probe/transform/PipelineDataProbe.java
+++ b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/probe/transform/PipelineDataProbe.java
@@ -25,11 +25,9 @@ import org.apache.hop.core.row.RowMeta;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
-public class PipelineDataProbe extends BaseTransform<PipelineDataProbeMeta, PipelineDataProbeData>
-{
+public class PipelineDataProbe extends BaseTransform<PipelineDataProbeMeta, PipelineDataProbeData> {
 
   private String sourcePipelineName;
   private String sourceTransformLogChannelId;
@@ -103,7 +101,9 @@ public class PipelineDataProbe extends BaseTransform<PipelineDataProbeMeta, Pipe
     return sourcePipelineName;
   }
 
-  /** @param sourcePipelineName The sourcePipelineName to set */
+  /**
+   * @param sourcePipelineName The sourcePipelineName to set
+   */
   public void setSourcePipelineName(String sourcePipelineName) {
     this.sourcePipelineName = sourcePipelineName;
   }
@@ -117,7 +117,9 @@ public class PipelineDataProbe extends BaseTransform<PipelineDataProbeMeta, Pipe
     return sourceTransformLogChannelId;
   }
 
-  /** @param sourceTransformLogChannelId The sourceTransformLogChannelId to set */
+  /**
+   * @param sourceTransformLogChannelId The sourceTransformLogChannelId to set
+   */
   public void setSourceTransformLogChannelId(String sourceTransformLogChannelId) {
     this.sourceTransformLogChannelId = sourceTransformLogChannelId;
   }
@@ -131,7 +133,9 @@ public class PipelineDataProbe extends BaseTransform<PipelineDataProbeMeta, Pipe
     return sourceTransformName;
   }
 
-  /** @param sourceTransformName The sourceTransformName to set */
+  /**
+   * @param sourceTransformName The sourceTransformName to set
+   */
   public void setSourceTransformName(String sourceTransformName) {
     this.sourceTransformName = sourceTransformName;
   }
@@ -145,7 +149,9 @@ public class PipelineDataProbe extends BaseTransform<PipelineDataProbeMeta, Pipe
     return sourceTransformCopy;
   }
 
-  /** @param sourceTransformCopy The sourceTransformCopy to set */
+  /**
+   * @param sourceTransformCopy The sourceTransformCopy to set
+   */
   public void setSourceTransformCopy(long sourceTransformCopy) {
     this.sourceTransformCopy = sourceTransformCopy;
   }
diff --git a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/workflow/transform/WorkflowLogging.java b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/workflow/transform/WorkflowLogging.java
index 033c5801b4..daee3af4c9 100644
--- a/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/workflow/transform/WorkflowLogging.java
+++ b/plugins/misc/reflection/src/main/java/org/apache/hop/reflection/workflow/transform/WorkflowLogging.java
@@ -32,6 +32,7 @@ import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.workflow.ActionResult;
 import org.apache.hop.workflow.WorkflowMeta;
 import org.apache.hop.workflow.engine.IWorkflowEngine;
+
 import java.util.List;
 
 public class WorkflowLogging extends BaseTransform<WorkflowLoggingMeta, WorkflowLoggingData> {
diff --git a/plugins/misc/testing/src/main/java/org/apache/hop/testing/transforms/exectests/ExecuteTests.java b/plugins/misc/testing/src/main/java/org/apache/hop/testing/transforms/exectests/ExecuteTests.java
index 7a59004487..0af48b761d 100644
--- a/plugins/misc/testing/src/main/java/org/apache/hop/testing/transforms/exectests/ExecuteTests.java
+++ b/plugins/misc/testing/src/main/java/org/apache/hop/testing/transforms/exectests/ExecuteTests.java
@@ -26,7 +26,6 @@ import org.apache.hop.metadata.api.IHopMetadataSerializer;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.testing.PipelineUnitTest;
 import org.apache.hop.testing.UnitTestResult;
diff --git a/plugins/misc/testing/src/main/java/org/apache/hop/testing/util/UnitTestUtil.java b/plugins/misc/testing/src/main/java/org/apache/hop/testing/util/UnitTestUtil.java
index 888448fbf6..6b3bfad7e4 100644
--- a/plugins/misc/testing/src/main/java/org/apache/hop/testing/util/UnitTestUtil.java
+++ b/plugins/misc/testing/src/main/java/org/apache/hop/testing/util/UnitTestUtil.java
@@ -18,7 +18,6 @@
 package org.apache.hop.testing.util;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.hop.core.Const;
 import org.apache.hop.core.Result;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.logging.ILoggingObject;
diff --git a/plugins/tech/avro/src/main/java/org/apache/hop/avro/transforms/avroinput/AvroFileInputMeta.java b/plugins/tech/avro/src/main/java/org/apache/hop/avro/transforms/avroinput/AvroFileInputMeta.java
index 3f712475eb..c7fc9348b6 100644
--- a/plugins/tech/avro/src/main/java/org/apache/hop/avro/transforms/avroinput/AvroFileInputMeta.java
+++ b/plugins/tech/avro/src/main/java/org/apache/hop/avro/transforms/avroinput/AvroFileInputMeta.java
@@ -26,10 +26,7 @@ import org.apache.hop.core.row.value.ValueMetaAvroRecord;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
-import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 @Transform(
@@ -92,7 +89,9 @@ public class AvroFileInputMeta extends BaseTransformMeta<AvroFileInput, AvroFile
     return outputFieldName;
   }
 
-  /** @param outputFieldName The outputFieldName to set */
+  /**
+   * @param outputFieldName The outputFieldName to set
+   */
   public void setOutputFieldName(String outputFieldName) {
     this.outputFieldName = outputFieldName;
   }
@@ -106,7 +105,9 @@ public class AvroFileInputMeta extends BaseTransformMeta<AvroFileInput, AvroFile
     return dataFilenameField;
   }
 
-  /** @param dataFilenameField The dataFilenameField to set */
+  /**
+   * @param dataFilenameField The dataFilenameField to set
+   */
   public void setDataFilenameField(String dataFilenameField) {
     this.dataFilenameField = dataFilenameField;
   }
@@ -120,7 +121,9 @@ public class AvroFileInputMeta extends BaseTransformMeta<AvroFileInput, AvroFile
     return rowsLimit;
   }
 
-  /** @param rowsLimit The rowsLimit to set */
+  /**
+   * @param rowsLimit The rowsLimit to set
+   */
   public void setRowsLimit(String rowsLimit) {
     this.rowsLimit = rowsLimit;
   }
diff --git a/plugins/tech/azure/src/main/java/org/apache/hop/pipeline/transforms/eventhubs/write/AzureWrite.java b/plugins/tech/azure/src/main/java/org/apache/hop/pipeline/transforms/eventhubs/write/AzureWrite.java
index bad42d610b..2f18b60104 100644
--- a/plugins/tech/azure/src/main/java/org/apache/hop/pipeline/transforms/eventhubs/write/AzureWrite.java
+++ b/plugins/tech/azure/src/main/java/org/apache/hop/pipeline/transforms/eventhubs/write/AzureWrite.java
@@ -28,7 +28,6 @@ import org.apache.hop.core.exception.HopTransformException;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.nio.charset.StandardCharsets;
diff --git a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrainput/CassandraInput.java b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrainput/CassandraInput.java
index 9874f31964..b9a4074d8e 100644
--- a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrainput/CassandraInput.java
+++ b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrainput/CassandraInput.java
@@ -29,7 +29,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.HashMap;
diff --git a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrainput/CassandraInputMeta.java b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrainput/CassandraInputMeta.java
index e1fb8f2c25..bc689990e0 100644
--- a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrainput/CassandraInputMeta.java
+++ b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrainput/CassandraInputMeta.java
@@ -36,7 +36,10 @@ import org.apache.hop.databases.cassandra.util.Selector;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformDialog;
+import org.apache.hop.pipeline.transform.ITransformMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.eclipse.swt.widgets.Shell;
 import org.w3c.dom.Node;
 
diff --git a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandraoutput/CassandraOutput.java b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandraoutput/CassandraOutput.java
index 2ca283ae96..fcf2948d3c 100644
--- a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandraoutput/CassandraOutput.java
+++ b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandraoutput/CassandraOutput.java
@@ -33,7 +33,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.ArrayList;
diff --git a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/SSTableOutput.java b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/SSTableOutput.java
index 527a79d2e0..ef30e128a8 100644
--- a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/SSTableOutput.java
+++ b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/SSTableOutput.java
@@ -25,7 +25,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.cassandrasstableoutput.writer.AbstractSSTableWriter;
 import org.apache.hop.pipeline.transforms.cassandrasstableoutput.writer.SSTableWriterBuilder;
diff --git a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/SSTableOutputMeta.java b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/SSTableOutputMeta.java
index e852c5b907..334589ed80 100644
--- a/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/SSTableOutputMeta.java
+++ b/plugins/tech/cassandra/src/main/java/org/apache/hop/pipeline/transforms/cassandrasstableoutput/SSTableOutputMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.plugins.ParentFirst;
 import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransform;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.w3c.dom.Node;
 
diff --git a/plugins/tech/cassandra/src/test/java/org/apache/hop/database/cassandra/datastax/DriverCqlRowHandlerTest.java b/plugins/tech/cassandra/src/test/java/org/apache/hop/database/cassandra/datastax/DriverCqlRowHandlerTest.java
index a5f021201e..5fd71ef74e 100644
--- a/plugins/tech/cassandra/src/test/java/org/apache/hop/database/cassandra/datastax/DriverCqlRowHandlerTest.java
+++ b/plugins/tech/cassandra/src/test/java/org/apache/hop/database/cassandra/datastax/DriverCqlRowHandlerTest.java
@@ -31,7 +31,6 @@ import org.apache.hop.databases.cassandra.datastax.TableMetaData;
 import org.apache.hop.pipeline.transform.ITransform;
 import org.junit.Ignore;
 import org.junit.Test;
-import org.mockito.ArgumentMatcher;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -40,8 +39,10 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
-import static org.mockito.Matchers.*;
-import static org.mockito.Mockito.*;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class DriverCqlRowHandlerTest {
 
diff --git a/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/cassandraoutput/CassandraOutputTest.java b/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/cassandraoutput/CassandraOutputTest.java
index e9ab92a5f1..e146b188e5 100644
--- a/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/cassandraoutput/CassandraOutputTest.java
+++ b/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/cassandraoutput/CassandraOutputTest.java
@@ -25,7 +25,9 @@ import org.junit.Test;
 
 import java.util.Map;
 
-import static org.mockito.Matchers.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.*;
 
 public class CassandraOutputTest {
diff --git a/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/mock/TransformMockHelper.java b/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/mock/TransformMockHelper.java
index 589ae8c0fd..1c162767ff 100644
--- a/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/mock/TransformMockHelper.java
+++ b/plugins/tech/cassandra/src/test/java/org/apache/hop/pipeline/transforms/mock/TransformMockHelper.java
@@ -34,7 +34,9 @@ import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import static org.mockito.Matchers.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyObject;
 import static org.mockito.Mockito.*;
 
 public class TransformMockHelper<Meta extends ITransformMeta, Data extends ITransformData> {
diff --git a/plugins/tech/dropbox/src/main/java/org/apache/hop/vfs/dropbox/DropboxFileObject.java b/plugins/tech/dropbox/src/main/java/org/apache/hop/vfs/dropbox/DropboxFileObject.java
index 37f0c60053..99e9200188 100644
--- a/plugins/tech/dropbox/src/main/java/org/apache/hop/vfs/dropbox/DropboxFileObject.java
+++ b/plugins/tech/dropbox/src/main/java/org/apache/hop/vfs/dropbox/DropboxFileObject.java
@@ -18,6 +18,12 @@
 
 package org.apache.hop.vfs.dropbox;
 
+import com.dropbox.core.DbxException;
+import com.dropbox.core.v2.DbxClientV2;
+import com.dropbox.core.v2.files.FileMetadata;
+import com.dropbox.core.v2.files.ListFolderResult;
+import com.dropbox.core.v2.files.Metadata;
+import com.dropbox.core.v2.files.UploadUploader;
 import org.apache.commons.io.output.NullOutputStream;
 import org.apache.commons.vfs2.FileNotFoundException;
 import org.apache.commons.vfs2.FileObject;
@@ -25,18 +31,13 @@ import org.apache.commons.vfs2.FileSystemException;
 import org.apache.commons.vfs2.FileType;
 import org.apache.commons.vfs2.provider.AbstractFileName;
 import org.apache.commons.vfs2.provider.AbstractFileObject;
+
 import java.io.FilterOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
-import com.dropbox.core.DbxException;
-import com.dropbox.core.v2.DbxClientV2;
-import com.dropbox.core.v2.files.FileMetadata;
-import com.dropbox.core.v2.files.ListFolderResult;
-import com.dropbox.core.v2.files.Metadata;
-import com.dropbox.core.v2.files.UploadUploader;
 
 /** An dropbox file object. */
 public class DropboxFileObject extends AbstractFileObject<DropboxFileSystem> {
diff --git a/plugins/tech/dropbox/src/main/java/org/apache/hop/vfs/dropbox/DropboxFileProvider.java b/plugins/tech/dropbox/src/main/java/org/apache/hop/vfs/dropbox/DropboxFileProvider.java
index eba09308da..8be3520973 100644
--- a/plugins/tech/dropbox/src/main/java/org/apache/hop/vfs/dropbox/DropboxFileProvider.java
+++ b/plugins/tech/dropbox/src/main/java/org/apache/hop/vfs/dropbox/DropboxFileProvider.java
@@ -25,6 +25,7 @@ import org.apache.commons.vfs2.*;
 import org.apache.commons.vfs2.provider.AbstractOriginatingFileProvider;
 import org.apache.hop.vfs.dropbox.config.DropboxConfig;
 import org.apache.hop.vfs.dropbox.config.DropboxConfigSingleton;
+
 import java.util.Collection;
 import java.util.Set;
 
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/logging/xp/PipelineLoggingExtensionPoint.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/logging/xp/PipelineLoggingExtensionPoint.java
index 35659df26d..4a626cb30e 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/logging/xp/PipelineLoggingExtensionPoint.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/logging/xp/PipelineLoggingExtensionPoint.java
@@ -33,7 +33,8 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineHopMeta;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.engine.IPipelineEngine;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.TransformMeta;
+import org.apache.hop.pipeline.transform.TransformMetaDataCombi;
 import org.neo4j.driver.Driver;
 import org.neo4j.driver.Session;
 import org.neo4j.driver.Transaction;
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/model/sw/SolutionsWorkbenchImporter.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/model/sw/SolutionsWorkbenchImporter.java
index 654b423cfd..a335233357 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/model/sw/SolutionsWorkbenchImporter.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/model/sw/SolutionsWorkbenchImporter.java
@@ -19,22 +19,12 @@ package org.apache.hop.neo4j.model.sw;
 
 import org.apache.commons.lang.StringUtils;
 import org.apache.hop.core.exception.HopException;
-import org.apache.hop.neo4j.model.GraphModel;
-import org.apache.hop.neo4j.model.GraphNode;
-import org.apache.hop.neo4j.model.GraphPresentation;
-import org.apache.hop.neo4j.model.GraphProperty;
-import org.apache.hop.neo4j.model.GraphPropertyType;
-import org.apache.hop.neo4j.model.GraphRelationship;
+import org.apache.hop.neo4j.model.*;
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
 import org.json.simple.parser.JSONParser;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 public class SolutionsWorkbenchImporter {
 
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/cypher/CypherMeta.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/cypher/CypherMeta.java
index aa391463b9..6dac892943 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/cypher/CypherMeta.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/cypher/CypherMeta.java
@@ -35,10 +35,7 @@ import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.neo4j.core.value.ValueMetaGraph;
 import org.apache.hop.neo4j.model.GraphPropertyType;
-import org.apache.hop.pipeline.Pipeline;
-import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.w3c.dom.Node;
 
@@ -284,7 +281,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return connectionName;
   }
 
-  /** @param connectionName The connectionName to set */
+  /**
+   * @param connectionName The connectionName to set
+   */
   public void setConnectionName(String connectionName) {
     this.connectionName = connectionName;
   }
@@ -298,7 +297,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return cypher;
   }
 
-  /** @param cypher The cypher to set */
+  /**
+   * @param cypher The cypher to set
+   */
   public void setCypher(String cypher) {
     this.cypher = cypher;
   }
@@ -312,7 +313,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return batchSize;
   }
 
-  /** @param batchSize The batchSize to set */
+  /**
+   * @param batchSize The batchSize to set
+   */
   public void setBatchSize(String batchSize) {
     this.batchSize = batchSize;
   }
@@ -326,7 +329,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return cypherFromField;
   }
 
-  /** @param cypherFromField The cypherFromField to set */
+  /**
+   * @param cypherFromField The cypherFromField to set
+   */
   public void setCypherFromField(boolean cypherFromField) {
     this.cypherFromField = cypherFromField;
   }
@@ -340,7 +345,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return readOnly;
   }
 
-  /** @param readOnly The readOnly to set */
+  /**
+   * @param readOnly The readOnly to set
+   */
   public void setReadOnly(boolean readOnly) {
     this.readOnly = readOnly;
   }
@@ -354,7 +361,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return retryingOnDisconnect;
   }
 
-  /** @param retryingOnDisconnect The retrying to set */
+  /**
+   * @param retryingOnDisconnect The retrying to set
+   */
   public void setRetryingOnDisconnect(boolean retryingOnDisconnect) {
     this.retryingOnDisconnect = retryingOnDisconnect;
   }
@@ -368,7 +377,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return cypherField;
   }
 
-  /** @param cypherField The cypherField to set */
+  /**
+   * @param cypherField The cypherField to set
+   */
   public void setCypherField(String cypherField) {
     this.cypherField = cypherField;
   }
@@ -382,7 +393,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return usingUnwind;
   }
 
-  /** @param usingUnwind The usingUnwind to set */
+  /**
+   * @param usingUnwind The usingUnwind to set
+   */
   public void setUsingUnwind(boolean usingUnwind) {
     this.usingUnwind = usingUnwind;
   }
@@ -405,12 +418,16 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return returningGraph;
   }
 
-  /** @param returningGraph The returningGraph to set */
+  /**
+   * @param returningGraph The returningGraph to set
+   */
   public void setReturningGraph(boolean returningGraph) {
     this.returningGraph = returningGraph;
   }
 
-  /** @param unwindMapName The unwindMapName to set */
+  /**
+   * @param unwindMapName The unwindMapName to set
+   */
   public void setUnwindMapName(String unwindMapName) {
     this.unwindMapName = unwindMapName;
   }
@@ -424,7 +441,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return parameterMappings;
   }
 
-  /** @param parameterMappings The parameterMappings to set */
+  /**
+   * @param parameterMappings The parameterMappings to set
+   */
   public void setParameterMappings(List<ParameterMapping> parameterMappings) {
     this.parameterMappings = parameterMappings;
   }
@@ -438,7 +457,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return returnValues;
   }
 
-  /** @param returnValues The returnValues to set */
+  /**
+   * @param returnValues The returnValues to set
+   */
   public void setReturnValues(List<ReturnValue> returnValues) {
     this.returnValues = returnValues;
   }
@@ -452,7 +473,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return returnGraphField;
   }
 
-  /** @param returnGraphField The returnGraphField to set */
+  /**
+   * @param returnGraphField The returnGraphField to set
+   */
   public void setReturnGraphField(String returnGraphField) {
     this.returnGraphField = returnGraphField;
   }
@@ -466,7 +489,9 @@ public class CypherMeta extends BaseTransformMeta<Cypher, CypherData> {
     return nrRetriesOnError;
   }
 
-  /** @param nrRetriesOnError The nrRetriesOnError to set */
+  /**
+   * @param nrRetriesOnError The nrRetriesOnError to set
+   */
   public void setNrRetriesOnError(String nrRetriesOnError) {
     this.nrRetriesOnError = nrRetriesOnError;
   }
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/gencsv/GenerateCsv.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/gencsv/GenerateCsv.java
index 0d05c158ff..4010515464 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/gencsv/GenerateCsv.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/gencsv/GenerateCsv.java
@@ -27,7 +27,6 @@ import org.apache.hop.neo4j.core.value.ValueMetaGraph;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.File;
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/graph/GraphOutput.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/graph/GraphOutput.java
index d40ad657ad..55795944f6 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/graph/GraphOutput.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/graph/GraphOutput.java
@@ -26,16 +26,8 @@ import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.core.row.RowDataUtil;
 import org.apache.hop.metadata.api.IHopMetadataSerializer;
 import org.apache.hop.neo4j.core.GraphUsage;
-import org.apache.hop.neo4j.core.data.GraphData;
-import org.apache.hop.neo4j.core.data.GraphNodeData;
-import org.apache.hop.neo4j.core.data.GraphPropertyData;
-import org.apache.hop.neo4j.core.data.GraphPropertyDataType;
-import org.apache.hop.neo4j.core.data.GraphRelationshipData;
-import org.apache.hop.neo4j.model.GraphModel;
-import org.apache.hop.neo4j.model.GraphNode;
-import org.apache.hop.neo4j.model.GraphProperty;
-import org.apache.hop.neo4j.model.GraphPropertyType;
-import org.apache.hop.neo4j.model.GraphRelationship;
+import org.apache.hop.neo4j.core.data.*;
+import org.apache.hop.neo4j.model.*;
 import org.apache.hop.neo4j.model.validation.ModelValidator;
 import org.apache.hop.neo4j.model.validation.NodeProperty;
 import org.apache.hop.neo4j.shared.NeoConnection;
@@ -48,16 +40,8 @@ import org.neo4j.driver.Result;
 import org.neo4j.driver.summary.Notification;
 import org.neo4j.driver.summary.ResultSummary;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.Function;
 
 public class GraphOutput extends BaseNeoTransform<GraphOutputMeta, GraphOutputData> {
 
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/importer/Importer.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/importer/Importer.java
index 436bba9967..817d374eec 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/importer/Importer.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/importer/Importer.java
@@ -26,7 +26,6 @@ import org.apache.hop.neo4j.transforms.gencsv.StreamConsumer;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.File;
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/importer/ImporterMeta.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/importer/ImporterMeta.java
index f621dab907..3b5c2cc10c 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/importer/ImporterMeta.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/importer/ImporterMeta.java
@@ -18,17 +18,13 @@
 package org.apache.hop.neo4j.transforms.importer;
 
 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.exception.HopXmlException;
 import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.variables.IVariables;
-import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
-import org.w3c.dom.Node;
 
 @Transform(
     id = "Neo4jImport",
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/output/Neo4JOutput.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/output/Neo4JOutput.java
index 3fc2c7c62b..d2f5c4c471 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/output/Neo4JOutput.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/output/Neo4JOutput.java
@@ -34,7 +34,6 @@ import org.apache.hop.neo4j.shared.NeoConnectionUtils;
 import org.apache.hop.neo4j.transforms.BaseNeoTransform;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.neo4j.driver.Result;
 import org.neo4j.driver.summary.Notification;
diff --git a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/split/SplitGraph.java b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/split/SplitGraph.java
index e4b1c7be98..65d767cb9a 100644
--- a/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/split/SplitGraph.java
+++ b/plugins/tech/neo4j/src/main/java/org/apache/hop/neo4j/transforms/split/SplitGraph.java
@@ -29,7 +29,6 @@ import org.apache.hop.neo4j.core.value.ValueMetaGraph;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 public class SplitGraph extends BaseTransform<SplitGraphMeta, SplitGraphData> {
diff --git a/plugins/tech/neo4j/src/test/java/org/apache/hop/neo4j/transforms/graph/GraphOutputMetaTest.java b/plugins/tech/neo4j/src/test/java/org/apache/hop/neo4j/transforms/graph/GraphOutputMetaTest.java
index 819e9b3337..94121baa73 100644
--- a/plugins/tech/neo4j/src/test/java/org/apache/hop/neo4j/transforms/graph/GraphOutputMetaTest.java
+++ b/plugins/tech/neo4j/src/test/java/org/apache/hop/neo4j/transforms/graph/GraphOutputMetaTest.java
@@ -28,7 +28,6 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 
 public class GraphOutputMetaTest {
   @Test
diff --git a/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/input/ParquetInput.java b/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/input/ParquetInput.java
index 0197f982f7..6b55293f78 100644
--- a/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/input/ParquetInput.java
+++ b/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/input/ParquetInput.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.parquet.hadoop.ParquetReader;
+
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 
diff --git a/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/input/ParquetInputMeta.java b/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/input/ParquetInputMeta.java
index ae274273e4..29b3644f93 100644
--- a/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/input/ParquetInputMeta.java
+++ b/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/input/ParquetInputMeta.java
@@ -27,6 +27,7 @@ import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/output/ParquetOutputMeta.java b/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/output/ParquetOutputMeta.java
index 8bb58a7500..3869a0ec59 100644
--- a/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/output/ParquetOutputMeta.java
+++ b/plugins/tech/parquet/src/main/java/org/apache/hop/parquet/transforms/output/ParquetOutputMeta.java
@@ -22,6 +22,7 @@ import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.parquet.column.ParquetProperties;
 import org.apache.parquet.hadoop.metadata.CompressionCodecName;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java b/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
index dcec80ac06..4b54d16b14 100644
--- a/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
+++ b/plugins/transforms/abort/src/main/java/org/apache/hop/pipeline/transforms/abort/AbortMeta.java
@@ -32,6 +32,7 @@ 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;
+
 import java.util.List;
 
 /** Meta data for the abort transform. */
diff --git a/plugins/transforms/append/src/main/java/org/apache/hop/pipeline/transforms/append/AppendMeta.java b/plugins/transforms/append/src/main/java/org/apache/hop/pipeline/transforms/append/AppendMeta.java
index 4f0a038209..c8c68af695 100644
--- a/plugins/transforms/append/src/main/java/org/apache/hop/pipeline/transforms/append/AppendMeta.java
+++ b/plugins/transforms/append/src/main/java/org/apache/hop/pipeline/transforms/append/AppendMeta.java
@@ -28,7 +28,10 @@ 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.PipelineMeta.PipelineType;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/CalculatorMeta.java b/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/CalculatorMeta.java
index 1990cb0d04..229f73490e 100644
--- a/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/CalculatorMeta.java
+++ b/plugins/transforms/calculator/src/main/java/org/apache/hop/pipeline/transforms/calculator/CalculatorMeta.java
@@ -32,6 +32,7 @@ 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 java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/calculator/src/test/java/org/apache/hop/pipeline/transforms/calculator/CalculatorUnitTest.java b/plugins/transforms/calculator/src/test/java/org/apache/hop/pipeline/transforms/calculator/CalculatorUnitTest.java
index 1711186016..fa0270fc66 100644
--- a/plugins/transforms/calculator/src/test/java/org/apache/hop/pipeline/transforms/calculator/CalculatorUnitTest.java
+++ b/plugins/transforms/calculator/src/test/java/org/apache/hop/pipeline/transforms/calculator/CalculatorUnitTest.java
@@ -28,13 +28,11 @@ 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.*;
-import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.junit.rules.RestoreHopEngineEnvironment;
 import org.apache.hop.pipeline.transform.RowAdapter;
 import org.apache.hop.pipeline.transforms.calculator.CalculatorMetaFunction.CalculationType;
 import org.apache.hop.pipeline.transforms.mock.TransformMockHelper;
 import org.junit.*;
-import org.mockito.ArgumentMatcher;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
@@ -45,7 +43,9 @@ import java.util.List;
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.*;
 
 /**
diff --git a/plugins/transforms/closure/src/main/java/org/apache/hop/pipeline/transforms/closure/ClosureGenerator.java b/plugins/transforms/closure/src/main/java/org/apache/hop/pipeline/transforms/closure/ClosureGenerator.java
index b0b59b2c0a..0a5398a07d 100644
--- a/plugins/transforms/closure/src/main/java/org/apache/hop/pipeline/transforms/closure/ClosureGenerator.java
+++ b/plugins/transforms/closure/src/main/java/org/apache/hop/pipeline/transforms/closure/ClosureGenerator.java
@@ -23,7 +23,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.HashMap;
diff --git a/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceMeta.java b/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceMeta.java
index 7674493033..834d2b63de 100644
--- a/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceMeta.java
+++ b/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceMeta.java
@@ -32,11 +32,8 @@ 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 java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+
+import java.util.*;
 
 /** Lets you combine multiple fields into one, selecting the first value that is non-null. */
 @Transform(
diff --git a/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceTransform.java b/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceTransform.java
index caefcc5dea..39a4bbefcb 100644
--- a/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceTransform.java
+++ b/plugins/transforms/coalesce/src/main/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceTransform.java
@@ -28,6 +28,7 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/coalesce/src/test/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceTest.java b/plugins/transforms/coalesce/src/test/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceTest.java
index 5a63a488ef..692fe3fcd0 100644
--- a/plugins/transforms/coalesce/src/test/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceTest.java
+++ b/plugins/transforms/coalesce/src/test/java/org/apache/hop/pipeline/transforms/coalesce/CoalesceTest.java
@@ -27,7 +27,9 @@ import org.junit.BeforeClass;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Collections;
+import java.util.Random;
+import java.util.UUID;
 
 public class CoalesceTest {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
diff --git a/plugins/transforms/combinationlookup/src/test/java/org/apache/hop/pipeline/transforms/combinationlookup/CombinationLookupMetaTest.java b/plugins/transforms/combinationlookup/src/test/java/org/apache/hop/pipeline/transforms/combinationlookup/CombinationLookupMetaTest.java
index e2523f5b23..2b169ca495 100644
--- a/plugins/transforms/combinationlookup/src/test/java/org/apache/hop/pipeline/transforms/combinationlookup/CombinationLookupMetaTest.java
+++ b/plugins/transforms/combinationlookup/src/test/java/org/apache/hop/pipeline/transforms/combinationlookup/CombinationLookupMetaTest.java
@@ -39,7 +39,10 @@ import org.junit.ClassRule;
 import org.junit.Test;
 import org.mockito.Mockito;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 
diff --git a/plugins/transforms/constant/src/main/java/org/apache/hop/pipeline/transforms/constant/ConstantMeta.java b/plugins/transforms/constant/src/main/java/org/apache/hop/pipeline/transforms/constant/ConstantMeta.java
index 9139e03afd..f7edb82228 100644
--- a/plugins/transforms/constant/src/main/java/org/apache/hop/pipeline/transforms/constant/ConstantMeta.java
+++ b/plugins/transforms/constant/src/main/java/org/apache/hop/pipeline/transforms/constant/ConstantMeta.java
@@ -32,6 +32,7 @@ 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 java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/creditcardvalidator/src/main/java/org/apache/hop/pipeline/transforms/creditcardvalidator/CreditCardValidator.java b/plugins/transforms/creditcardvalidator/src/main/java/org/apache/hop/pipeline/transforms/creditcardvalidator/CreditCardValidator.java
index e7191713a1..640215a878 100644
--- a/plugins/transforms/creditcardvalidator/src/main/java/org/apache/hop/pipeline/transforms/creditcardvalidator/CreditCardValidator.java
+++ b/plugins/transforms/creditcardvalidator/src/main/java/org/apache/hop/pipeline/transforms/creditcardvalidator/CreditCardValidator.java
@@ -25,7 +25,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Check if a Credit Card is valid * */
diff --git a/plugins/transforms/cubeinput/src/main/java/org/apache/hop/pipeline/transforms/cubeinput/CubeInput.java b/plugins/transforms/cubeinput/src/main/java/org/apache/hop/pipeline/transforms/cubeinput/CubeInput.java
index c607d54b06..7020d04c49 100644
--- a/plugins/transforms/cubeinput/src/main/java/org/apache/hop/pipeline/transforms/cubeinput/CubeInput.java
+++ b/plugins/transforms/cubeinput/src/main/java/org/apache/hop/pipeline/transforms/cubeinput/CubeInput.java
@@ -28,7 +28,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.DataInputStream;
diff --git a/plugins/transforms/cubeoutput/src/main/java/org/apache/hop/pipeline/transforms/cubeoutput/CubeOutput.java b/plugins/transforms/cubeoutput/src/main/java/org/apache/hop/pipeline/transforms/cubeoutput/CubeOutput.java
index c75287a1b6..137cf08f85 100644
--- a/plugins/transforms/cubeoutput/src/main/java/org/apache/hop/pipeline/transforms/cubeoutput/CubeOutput.java
+++ b/plugins/transforms/cubeoutput/src/main/java/org/apache/hop/pipeline/transforms/cubeoutput/CubeOutput.java
@@ -25,7 +25,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.DataOutputStream;
diff --git a/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupMeta.java b/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupMeta.java
index 00218497bd..5980e68a39 100644
--- a/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupMeta.java
+++ b/plugins/transforms/databaselookup/src/main/java/org/apache/hop/pipeline/transforms/databaselookup/DatabaseLookupMeta.java
@@ -38,11 +38,9 @@ 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.DatabaseImpact;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformData;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.ArrayList;
@@ -59,7 +57,7 @@ import java.util.Set;
     keywords = "i18n::DatabaseLookupMeta.keyword",
     documentationUrl = "/pipeline/transforms/databaselookup.html")
 public class DatabaseLookupMeta extends BaseTransformMeta<DatabaseLookup, DatabaseLookupData>
-  implements IProvidesModelerMeta {
+    implements IProvidesModelerMeta {
 
   private static final Class<?> PKG = DatabaseLookupMeta.class; // For Translator
 
@@ -521,7 +519,9 @@ public class DatabaseLookupMeta extends BaseTransformMeta<DatabaseLookup, Databa
     return cached;
   }
 
-  /** @param cached The cached to set */
+  /**
+   * @param cached The cached to set
+   */
   public void setCached(boolean cached) {
     this.cached = cached;
   }
@@ -535,7 +535,9 @@ public class DatabaseLookupMeta extends BaseTransformMeta<DatabaseLookup, Databa
     return cacheSize;
   }
 
-  /** @param cacheSize The cacheSize to set */
+  /**
+   * @param cacheSize The cacheSize to set
+   */
   public void setCacheSize(int cacheSize) {
     this.cacheSize = cacheSize;
   }
@@ -549,7 +551,9 @@ public class DatabaseLookupMeta extends BaseTransformMeta<DatabaseLookup, Databa
     return loadingAllDataInCache;
   }
 
-  /** @param loadingAllDataInCache The loadingAllDataInCache to set */
+  /**
+   * @param loadingAllDataInCache The loadingAllDataInCache to set
+   */
   public void setLoadingAllDataInCache(boolean loadingAllDataInCache) {
     this.loadingAllDataInCache = loadingAllDataInCache;
   }
@@ -563,7 +567,9 @@ public class DatabaseLookupMeta extends BaseTransformMeta<DatabaseLookup, Databa
     return lookup;
   }
 
-  /** @param lookup The lookup to set */
+  /**
+   * @param lookup The lookup to set
+   */
   public void setLookup(Lookup lookup) {
     this.lookup = lookup;
   }
diff --git a/plugins/transforms/datagrid/src/main/java/org/apache/hop/pipeline/transforms/datagrid/DataGridMeta.java b/plugins/transforms/datagrid/src/main/java/org/apache/hop/pipeline/transforms/datagrid/DataGridMeta.java
index a8d121ff85..ccc7da64fa 100644
--- a/plugins/transforms/datagrid/src/main/java/org/apache/hop/pipeline/transforms/datagrid/DataGridMeta.java
+++ b/plugins/transforms/datagrid/src/main/java/org/apache/hop/pipeline/transforms/datagrid/DataGridMeta.java
@@ -28,6 +28,7 @@ import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/dbproc/src/test/java/org/apache/hop/pipeline/transforms/dbproc/DBProcMetaTest.java b/plugins/transforms/dbproc/src/test/java/org/apache/hop/pipeline/transforms/dbproc/DBProcMetaTest.java
index 8a5e104a99..1d82fd0c66 100644
--- a/plugins/transforms/dbproc/src/test/java/org/apache/hop/pipeline/transforms/dbproc/DBProcMetaTest.java
+++ b/plugins/transforms/dbproc/src/test/java/org/apache/hop/pipeline/transforms/dbproc/DBProcMetaTest.java
@@ -28,7 +28,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class DBProcMetaTest implements IInitializer<ITransformMeta> {
   LoadSaveTester loadSaveTester;
diff --git a/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/Delete.java b/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/Delete.java
index 7520f3c9f6..347574380f 100644
--- a/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/Delete.java
+++ b/plugins/transforms/delete/src/main/java/org/apache/hop/pipeline/transforms/delete/Delete.java
@@ -30,7 +30,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.sql.SQLException;
diff --git a/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/Denormaliser.java b/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/Denormaliser.java
index 16b42ef7dd..d1e6d78de8 100644
--- a/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/Denormaliser.java
+++ b/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/Denormaliser.java
@@ -25,7 +25,6 @@ import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.core.row.RowDataUtil;
 import org.apache.hop.core.row.ValueDataUtil;
-import org.apache.hop.core.row.value.ValueMetaBase;
 import org.apache.hop.core.row.value.ValueMetaDate;
 import org.apache.hop.core.row.value.ValueMetaFactory;
 import org.apache.hop.core.row.value.ValueMetaInteger;
@@ -34,7 +33,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.math.BigDecimal;
@@ -108,9 +106,9 @@ public class Denormaliser extends BaseTransform<DenormaliserMeta, DenormaliserDa
     return true;
   }
 
-  private boolean processFirstRow() throws HopTransformException {   
-    allNullsAreZero = getVariableBoolean(Const.HOP_AGGREGATION_ALL_NULLS_ARE_ZERO, false);      
-    minNullIsValued = getVariableBoolean(Const.HOP_AGGREGATION_MIN_NULL_IS_VALUED, false);    
+  private boolean processFirstRow() throws HopTransformException {
+    allNullsAreZero = getVariableBoolean(Const.HOP_AGGREGATION_ALL_NULLS_ARE_ZERO, false);
+    minNullIsValued = getVariableBoolean(Const.HOP_AGGREGATION_MIN_NULL_IS_VALUED, false);
     data.inputRowMeta = getInputRowMeta();
     data.outputRowMeta = data.inputRowMeta.clone();
     meta.getFields(data.outputRowMeta, getTransformName(), null, null, this, metadataProvider);
diff --git a/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/DenormaliserMeta.java b/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/DenormaliserMeta.java
index 89f61834d7..2e47571cdf 100644
--- a/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/DenormaliserMeta.java
+++ b/plugins/transforms/denormaliser/src/main/java/org/apache/hop/pipeline/transforms/denormaliser/DenormaliserMeta.java
@@ -31,6 +31,7 @@ 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 java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/dimensionlookup/src/main/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookup.java b/plugins/transforms/dimensionlookup/src/main/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookup.java
index 2843117abe..ada62cb255 100644
--- a/plugins/transforms/dimensionlookup/src/main/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookup.java
+++ b/plugins/transforms/dimensionlookup/src/main/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookup.java
@@ -38,7 +38,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.sql.SQLException;
diff --git a/plugins/transforms/dimensionlookup/src/test/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookupMetaTest.java b/plugins/transforms/dimensionlookup/src/test/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookupMetaTest.java
index 2b5f5482f9..1e3a27df67 100644
--- a/plugins/transforms/dimensionlookup/src/test/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookupMetaTest.java
+++ b/plugins/transforms/dimensionlookup/src/test/java/org/apache/hop/pipeline/transforms/dimensionlookup/DimensionLookupMetaTest.java
@@ -43,7 +43,9 @@ import org.mockito.Mockito;
 import java.util.*;
 
 import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.*;
 
 public class DimensionLookupMetaTest implements IInitializer<ITransformMeta> {
diff --git a/plugins/transforms/edi2xml/src/main/java/org/apache/hop/pipeline/transforms/edi2xml/Edi2Xml.java b/plugins/transforms/edi2xml/src/main/java/org/apache/hop/pipeline/transforms/edi2xml/Edi2Xml.java
index a9d7db857f..88ed35270f 100644
--- a/plugins/transforms/edi2xml/src/main/java/org/apache/hop/pipeline/transforms/edi2xml/Edi2Xml.java
+++ b/plugins/transforms/edi2xml/src/main/java/org/apache/hop/pipeline/transforms/edi2xml/Edi2Xml.java
@@ -30,7 +30,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.edi2xml.grammar.FastSimpleGenericEdifactDirectXMLLexer;
 import org.apache.hop.pipeline.transforms.edi2xml.grammar.FastSimpleGenericEdifactDirectXMLParser;
diff --git a/plugins/transforms/excelinput/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInput.java b/plugins/transforms/excelinput/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInput.java
index 7c9ab10d6d..49d0f3248a 100644
--- a/plugins/transforms/excelinput/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInput.java
+++ b/plugins/transforms/excelinput/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInput.java
@@ -38,7 +38,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.errorhandling.CompositeFileErrorHandler;
 import org.apache.hop.pipeline.transform.errorhandling.FileErrorHandlerContentLineNumber;
diff --git a/plugins/transforms/excelinput/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputMeta.java b/plugins/transforms/excelinput/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputMeta.java
index a65b6899b5..46fde61d75 100644
--- a/plugins/transforms/excelinput/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputMeta.java
+++ b/plugins/transforms/excelinput/src/main/java/org/apache/hop/pipeline/transforms/excelinput/ExcelInputMeta.java
@@ -43,10 +43,8 @@ import org.apache.hop.core.vfs.HopVfs;
 import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.resource.IResourceNaming;
 import org.apache.hop.resource.ResourceDefinition;
@@ -225,122 +223,170 @@ public class ExcelInputMeta extends BaseTransformMeta<ExcelInput, ExcelInputData
     super(); // allocate BaseTransformMeta
   }
 
-  /** @return Returns the shortFileFieldName. */
+  /**
+   * @return Returns the shortFileFieldName.
+   */
   public String getShortFileNameField() {
     return shortFileFieldName;
   }
 
-  /** @param field The shortFileFieldName to set. */
+  /**
+   * @param field The shortFileFieldName to set.
+   */
   public void setShortFileNameField(String field) {
     shortFileFieldName = field;
   }
 
-  /** @return Returns the pathFieldName. */
+  /**
+   * @return Returns the pathFieldName.
+   */
   public String getPathField() {
     return pathFieldName;
   }
 
-  /** @param field The pathFieldName to set. */
+  /**
+   * @param field The pathFieldName to set.
+   */
   public void setPathField(String field) {
     this.pathFieldName = field;
   }
 
-  /** @return Returns the hiddenFieldName. */
+  /**
+   * @return Returns the hiddenFieldName.
+   */
   public String isHiddenField() {
     return hiddenFieldName;
   }
 
-  /** @param field The hiddenFieldName to set. */
+  /**
+   * @param field The hiddenFieldName to set.
+   */
   public void setIsHiddenField(String field) {
     hiddenFieldName = field;
   }
 
-  /** @return Returns the lastModificationTimeFieldName. */
+  /**
+   * @return Returns the lastModificationTimeFieldName.
+   */
   public String getLastModificationDateField() {
     return lastModificationTimeFieldName;
   }
 
-  /** @param field The lastModificationTimeFieldName to set. */
+  /**
+   * @param field The lastModificationTimeFieldName to set.
+   */
   public void setLastModificationDateField(String field) {
     lastModificationTimeFieldName = field;
   }
 
-  /** @return Returns the uriNameFieldName. */
+  /**
+   * @return Returns the uriNameFieldName.
+   */
   public String getUriField() {
     return uriNameFieldName;
   }
 
-  /** @param field The uriNameFieldName to set. */
+  /**
+   * @param field The uriNameFieldName to set.
+   */
   public void setUriField(String field) {
     uriNameFieldName = field;
   }
 
-  /** @return Returns the uriNameFieldName. */
+  /**
+   * @return Returns the uriNameFieldName.
+   */
   public String getRootUriField() {
     return rootUriNameFieldName;
   }
 
-  /** @param field The rootUriNameFieldName to set. */
+  /**
+   * @param field The rootUriNameFieldName to set.
+   */
   public void setRootUriField(String field) {
     rootUriNameFieldName = field;
   }
 
-  /** @return Returns the extensionFieldName. */
+  /**
+   * @return Returns the extensionFieldName.
+   */
   public String getExtensionField() {
     return extensionFieldName;
   }
 
-  /** @param field The extensionFieldName to set. */
+  /**
+   * @param field The extensionFieldName to set.
+   */
   public void setExtensionField(String field) {
     extensionFieldName = field;
   }
 
-  /** @return Returns the sizeFieldName. */
+  /**
+   * @return Returns the sizeFieldName.
+   */
   public String getSizeField() {
     return sizeFieldName;
   }
 
-  /** @param field The sizeFieldName to set. */
+  /**
+   * @param field The sizeFieldName to set.
+   */
   public void setSizeField(String field) {
     sizeFieldName = field;
   }
 
-  /** @return Returns the fieldLength. */
+  /**
+   * @return Returns the fieldLength.
+   */
   public ExcelInputField[] getField() {
     return field;
   }
 
-  /** @param fields The excel input fields to set. */
+  /**
+   * @param fields The excel input fields to set.
+   */
   public void setField(ExcelInputField[] fields) {
     this.field = fields;
   }
 
-  /** @return Returns the fileField. */
+  /**
+   * @return Returns the fileField.
+   */
   public String getFileField() {
     return fileField;
   }
 
-  /** @param fileField The fileField to set. */
+  /**
+   * @param fileField The fileField to set.
+   */
   public void setFileField(String fileField) {
     this.fileField = fileField;
   }
 
-  /** @return Returns the fileMask. */
+  /**
+   * @return Returns the fileMask.
+   */
   public String[] getFileMask() {
     return fileMask;
   }
 
-  /** @param fileMask The fileMask to set. */
+  /**
+   * @param fileMask The fileMask to set.
+   */
   public void setFileMask(String[] fileMask) {
     this.fileMask = fileMask;
   }
 
-  /** @return Returns the excludeFileMask. */
+  /**
+   * @return Returns the excludeFileMask.
+   */
   public String[] getExcludeFileMask() {
     return excludeFileMask;
   }
 
-  /** @param excludeFileMask The excludeFileMask to set. */
+  /**
+   * @param excludeFileMask The excludeFileMask to set.
+   */
   public void setExcludeFileMask(String[] excludeFileMask) {
     this.excludeFileMask = excludeFileMask;
   }
@@ -382,112 +428,156 @@ public class ExcelInputMeta extends BaseTransformMeta<ExcelInput, ExcelInputData
     }
   }
 
-  /** @return Returns the fileName. */
+  /**
+   * @return Returns the fileName.
+   */
   public String[] getFileName() {
     return fileName;
   }
 
-  /** @param fileName The fileName to set. */
+  /**
+   * @param fileName The fileName to set.
+   */
   public void setFileName(String[] fileName) {
     this.fileName = fileName;
   }
 
-  /** @return Returns the ignoreEmptyRows. */
+  /**
+   * @return Returns the ignoreEmptyRows.
+   */
   public boolean ignoreEmptyRows() {
     return ignoreEmptyRows;
   }
 
-  /** @param ignoreEmptyRows The ignoreEmptyRows to set. */
+  /**
+   * @param ignoreEmptyRows The ignoreEmptyRows to set.
+   */
   public void setIgnoreEmptyRows(boolean ignoreEmptyRows) {
     this.ignoreEmptyRows = ignoreEmptyRows;
   }
 
-  /** @return Returns the rowLimit. */
+  /**
+   * @return Returns the rowLimit.
+   */
   public long getRowLimit() {
     return rowLimit;
   }
 
-  /** @param rowLimit The rowLimit to set. */
+  /**
+   * @param rowLimit The rowLimit to set.
+   */
   public void setRowLimit(long rowLimit) {
     this.rowLimit = rowLimit;
   }
 
-  /** @return Returns the rowNumberField. */
+  /**
+   * @return Returns the rowNumberField.
+   */
   public String getRowNumberField() {
     return rowNumberField;
   }
 
-  /** @param rowNumberField The rowNumberField to set. */
+  /**
+   * @param rowNumberField The rowNumberField to set.
+   */
   public void setRowNumberField(String rowNumberField) {
     this.rowNumberField = rowNumberField;
   }
 
-  /** @return Returns the sheetRowNumberField. */
+  /**
+   * @return Returns the sheetRowNumberField.
+   */
   public String getSheetRowNumberField() {
     return sheetRowNumberField;
   }
 
-  /** @param rowNumberField The rowNumberField to set. */
+  /**
+   * @param rowNumberField The rowNumberField to set.
+   */
   public void setSheetRowNumberField(String rowNumberField) {
     this.sheetRowNumberField = rowNumberField;
   }
 
-  /** @return Returns the sheetField. */
+  /**
+   * @return Returns the sheetField.
+   */
   public String getSheetField() {
     return sheetField;
   }
 
-  /** @param sheetField The sheetField to set. */
+  /**
+   * @param sheetField The sheetField to set.
+   */
   public void setSheetField(String sheetField) {
     this.sheetField = sheetField;
   }
 
-  /** @return Returns the sheetName. */
+  /**
+   * @return Returns the sheetName.
+   */
   public String[] getSheetName() {
     return sheetName;
   }
 
-  /** @param sheetName The sheetName to set. */
+  /**
+   * @param sheetName The sheetName to set.
+   */
   public void setSheetName(String[] sheetName) {
     this.sheetName = sheetName;
   }
 
-  /** @return Returns the startColumn. */
+  /**
+   * @return Returns the startColumn.
+   */
   public int[] getStartColumn() {
     return startColumn;
   }
 
-  /** @param startColumn The startColumn to set. */
+  /**
+   * @param startColumn The startColumn to set.
+   */
   public void setStartColumn(int[] startColumn) {
     this.startColumn = startColumn;
   }
 
-  /** @return Returns the startRow. */
+  /**
+   * @return Returns the startRow.
+   */
   public int[] getStartRow() {
     return startRow;
   }
 
-  /** @param startRow The startRow to set. */
+  /**
+   * @param startRow The startRow to set.
+   */
   public void setStartRow(int[] startRow) {
     this.startRow = startRow;
   }
 
-  /** @return Returns the startsWithHeader. */
+  /**
+   * @return Returns the startsWithHeader.
+   */
   public boolean startsWithHeader() {
     return startsWithHeader;
   }
 
-  /** @param startsWithHeader The startsWithHeader to set. */
+  /**
+   * @param startsWithHeader The startsWithHeader to set.
+   */
   public void setStartsWithHeader(boolean startsWithHeader) {
     this.startsWithHeader = startsWithHeader;
   }
 
-  /** @return Returns the stopOnEmpty. */
+  /**
+   * @return Returns the stopOnEmpty.
+   */
   public boolean stopOnEmpty() {
     return stopOnEmpty;
   }
 
-  /** @param stopOnEmpty The stopOnEmpty to set. */
+  /**
+   * @param stopOnEmpty The stopOnEmpty to set.
+   */
   public void setStopOnEmpty(boolean stopOnEmpty) {
     this.stopOnEmpty = stopOnEmpty;
   }
@@ -1228,62 +1318,86 @@ public class ExcelInputMeta extends BaseTransformMeta<ExcelInput, ExcelInputData
     }
   }
 
-  /** @return Returns the acceptingField. */
+  /**
+   * @return Returns the acceptingField.
+   */
   public String getAcceptingField() {
     return acceptingField;
   }
 
-  /** @param acceptingField The acceptingField to set. */
+  /**
+   * @param acceptingField The acceptingField to set.
+   */
   public void setAcceptingField(String acceptingField) {
     this.acceptingField = acceptingField;
   }
 
-  /** @return Returns the acceptingFilenames. */
+  /**
+   * @return Returns the acceptingFilenames.
+   */
   public boolean isAcceptingFilenames() {
     return acceptingFilenames;
   }
 
-  /** @param acceptingFilenames The acceptingFilenames to set. */
+  /**
+   * @param acceptingFilenames The acceptingFilenames to set.
+   */
   public void setAcceptingFilenames(boolean acceptingFilenames) {
     this.acceptingFilenames = acceptingFilenames;
   }
 
-  /** @return Returns the acceptingTransform. */
+  /**
+   * @return Returns the acceptingTransform.
+   */
   public TransformMeta getAcceptingTransform() {
     return acceptingTransform;
   }
 
-  /** @param acceptingTransform The acceptingTransform to set. */
+  /**
+   * @param acceptingTransform The acceptingTransform to set.
+   */
   public void setAcceptingTransform(TransformMeta acceptingTransform) {
     this.acceptingTransform = acceptingTransform;
   }
 
-  /** @return Returns the acceptingTransformName. */
+  /**
+   * @return Returns the acceptingTransformName.
+   */
   public String getAcceptingTransformName() {
     return acceptingTransformName;
   }
 
-  /** @param acceptingTransformName The acceptingTransformName to set. */
+  /**
+   * @param acceptingTransformName The acceptingTransformName to set.
+   */
   public void setAcceptingTransformName(String acceptingTransformName) {
     this.acceptingTransformName = acceptingTransformName;
   }
 
-  /** @return the encoding */
+  /**
+   * @return the encoding
+   */
   public String getEncoding() {
     return encoding;
   }
 
-  /** @param encoding the encoding to set */
+  /**
+   * @param encoding the encoding to set
+   */
   public void setEncoding(String encoding) {
     this.encoding = encoding;
   }
 
-  /** @param isaddresult The isaddresult to set. */
+  /**
+   * @param isaddresult The isaddresult to set.
+   */
   public void setAddResultFile(boolean isaddresult) {
     this.isaddresult = isaddresult;
   }
 
-  /** @return Returns isaddresult. */
+  /**
+   * @return Returns isaddresult.
+   */
   public boolean isAddResultFile() {
     return isaddresult;
   }
diff --git a/plugins/transforms/excelwriter/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransform.java b/plugins/transforms/excelwriter/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransform.java
index 5207231668..fe01c6b8d3 100644
--- a/plugins/transforms/excelwriter/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransform.java
+++ b/plugins/transforms/excelwriter/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransform.java
@@ -21,19 +21,16 @@ import org.apache.commons.vfs2.FileObject;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.ResultFile;
 import org.apache.hop.core.exception.HopException;
-import org.apache.hop.core.exception.HopFileException;
 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.ValueMetaString;
 import org.apache.hop.core.util.Utils;
-import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.core.vfs.HopVfs;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.workarounds.BufferedOutputStreamWithCloseDetection;
 import org.apache.poi.common.usermodel.HyperlinkType;
@@ -221,35 +218,33 @@ public class ExcelWriterTransform
       if (parentfolder.exists()) {
         if (isDetailed()) {
           logDetailed(
-                  BaseMessages.getString(
-                          PKG,
-                          "ExcelWriter.Log.ParentFolderExist",
-                          HopVfs.getFriendlyURI(parentfolder)));
+              BaseMessages.getString(
+                  PKG, "ExcelWriter.Log.ParentFolderExist", HopVfs.getFriendlyURI(parentfolder)));
         }
       } else {
         if (isDetailed()) {
           logDetailed(
-                  BaseMessages.getString(
-                          PKG,
-                          "ExcelWriter.Log.ParentFolderNotExist",
-                          HopVfs.getFriendlyURI(parentfolder)));
+              BaseMessages.getString(
+                  PKG,
+                  "ExcelWriter.Log.ParentFolderNotExist",
+                  HopVfs.getFriendlyURI(parentfolder)));
         }
         if (meta.getFile().isCreateParentFolder()) {
           parentfolder.createFolder();
           if (isDetailed()) {
             logDetailed(
-                    BaseMessages.getString(
-                            PKG,
-                            "ExcelWriter.Log.ParentFolderCreated",
-                            HopVfs.getFriendlyURI(parentfolder)));
+                BaseMessages.getString(
+                    PKG,
+                    "ExcelWriter.Log.ParentFolderCreated",
+                    HopVfs.getFriendlyURI(parentfolder)));
           }
         } else {
           throw new HopException(
-                  BaseMessages.getString(
-                          PKG,
-                          "ExcelWriter.Log.ParentFolderNotExistCreateIt",
-                          HopVfs.getFriendlyURI(parentfolder),
-                          HopVfs.getFriendlyURI(filename)));
+              BaseMessages.getString(
+                  PKG,
+                  "ExcelWriter.Log.ParentFolderNotExistCreateIt",
+                  HopVfs.getFriendlyURI(parentfolder),
+                  HopVfs.getFriendlyURI(filename)));
         }
       }
     } finally {
@@ -680,7 +675,8 @@ public class ExcelWriterTransform
 
       data.file = HopVfs.getFileObject(buildFilename);
 
-      if (!HopVfs.getFileObject(buildFilename).getParent().exists() && meta.getFile().isCreateParentFolder()) {
+      if (!HopVfs.getFileObject(buildFilename).getParent().exists()
+          && meta.getFile().isCreateParentFolder()) {
         logDebug("Create parent directory for " + buildFilename + " because it does not exist.");
         createParentFolder(buildFilename);
       }
@@ -701,7 +697,6 @@ public class ExcelWriterTransform
         throw new HopException("Could not delete stale file " + buildFilename);
       }
 
-
       // adding filename to result
       if (meta.isAddToResultFilenames()) {
         // Add this to the result file names...
diff --git a/plugins/transforms/excelwriter/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformMeta.java b/plugins/transforms/excelwriter/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformMeta.java
index fe2780f618..6a0b6f3573 100644
--- a/plugins/transforms/excelwriter/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformMeta.java
+++ b/plugins/transforms/excelwriter/src/main/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformMeta.java
@@ -50,7 +50,8 @@ import java.util.Map;
     categoryDescription = "i18n:org.apache.hop.pipeline.transform:BaseTransform.Category.Output",
     keywords = "i18n::ExcelWriterTransformMeta.keyword",
     documentationUrl = "/pipeline/transforms/excelwriter.html")
-public class ExcelWriterTransformMeta extends BaseTransformMeta<ExcelWriterTransform, ExcelWriterTransformData> {
+public class ExcelWriterTransformMeta
+    extends BaseTransformMeta<ExcelWriterTransform, ExcelWriterTransformData> {
   private static final Class<?> PKG = ExcelWriterTransformMeta.class; // For Translator
 
   public static final String IF_FILE_EXISTS_REUSE = "reuse";
@@ -193,52 +194,72 @@ public class ExcelWriterTransformMeta extends BaseTransformMeta<ExcelWriterTrans
     this.rowWritingMethod = rowWritingMethod;
   }
 
-  /** @return Returns the footer. */
+  /**
+   * @return Returns the footer.
+   */
   public boolean isFooterEnabled() {
     return footerEnabled;
   }
 
-  /** @param footer The footer to set. */
+  /**
+   * @param footer The footer to set.
+   */
   public void setFooterEnabled(boolean footer) {
     this.footerEnabled = footer;
   }
 
-  /** @return Returns the header. */
+  /**
+   * @return Returns the header.
+   */
   public boolean isHeaderEnabled() {
     return headerEnabled;
   }
 
-  /** @param header The header to set. */
+  /**
+   * @param header The header to set.
+   */
   public void setHeaderEnabled(boolean header) {
     this.headerEnabled = header;
   }
 
-  /** @return Returns the add to result filesname. */
+  /**
+   * @return Returns the add to result filesname.
+   */
   public boolean isAddToResultFilenames() {
     return addToResultFilenames;
   }
 
-  /** @param addtoresultfilenames The addtoresultfilenames to set. */
+  /**
+   * @param addtoresultfilenames The addtoresultfilenames to set.
+   */
   public void setAddToResultFilenames(boolean addtoresultfilenames) {
     this.addToResultFilenames = addtoresultfilenames;
   }
 
-  /** @return Returns the outputFields. */
+  /**
+   * @return Returns the outputFields.
+   */
   public List<ExcelWriterOutputField> getOutputFields() {
     return outputFields;
   }
 
-  /** @param outputFields The outputFields to set. */
+  /**
+   * @param outputFields The outputFields to set.
+   */
   public void setOutputFields(List<ExcelWriterOutputField> outputFields) {
     this.outputFields = outputFields;
   }
 
-  /** @return Returns the appendLines. */
+  /**
+   * @return Returns the appendLines.
+   */
   public boolean isAppendLines() {
     return appendLines;
   }
 
-  /** @param append The appendLines to set. */
+  /**
+   * @param append The appendLines to set.
+   */
   public void setAppendLines(boolean append) {
     this.appendLines = append;
   }
diff --git a/plugins/transforms/excelwriter/src/test/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformMetaTest.java b/plugins/transforms/excelwriter/src/test/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformMetaTest.java
index 421ba4bb39..1ef4c2273f 100644
--- a/plugins/transforms/excelwriter/src/test/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformMetaTest.java
+++ b/plugins/transforms/excelwriter/src/test/java/org/apache/hop/pipeline/transforms/excelwriter/ExcelWriterTransformMetaTest.java
@@ -17,22 +17,19 @@
 
 package org.apache.hop.pipeline.transforms.excelwriter;
 
-import org.apache.commons.lang.builder.EqualsBuilder;
 import org.apache.hop.core.HopEnvironment;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.junit.rules.RestoreHopEngineEnvironment;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transforms.loadsave.LoadSaveTester;
-import org.apache.hop.pipeline.transforms.loadsave.initializer.IInitializer;
 import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidator;
 import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidatorFactory;
 import org.apache.hop.pipeline.transforms.loadsave.validator.ListLoadSaveValidator;
-import org.apache.hop.pipeline.transforms.loadsave.validator.ObjectValidator;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Random;
+import java.util.UUID;
 
 public class ExcelWriterTransformMetaTest {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
diff --git a/plugins/transforms/execsqlrow/src/main/java/org/apache/hop/pipeline/transforms/execsqlrow/ExecSqlRow.java b/plugins/transforms/execsqlrow/src/main/java/org/apache/hop/pipeline/transforms/execsqlrow/ExecSqlRow.java
index 1a85926aff..964aae7077 100644
--- a/plugins/transforms/execsqlrow/src/main/java/org/apache/hop/pipeline/transforms/execsqlrow/ExecSqlRow.java
+++ b/plugins/transforms/execsqlrow/src/main/java/org/apache/hop/pipeline/transforms/execsqlrow/ExecSqlRow.java
@@ -31,7 +31,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Execute one or more SQL statements in a script, one time or parameterised (for every row) */
diff --git a/plugins/transforms/fieldschangesequence/src/main/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequence.java b/plugins/transforms/fieldschangesequence/src/main/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequence.java
index c2e44a2385..6835abdc45 100644
--- a/plugins/transforms/fieldschangesequence/src/main/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequence.java
+++ b/plugins/transforms/fieldschangesequence/src/main/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequence.java
@@ -25,7 +25,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Add sequence to each input row. */
diff --git a/plugins/transforms/fieldschangesequence/src/test/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequenceMetaTest.java b/plugins/transforms/fieldschangesequence/src/test/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequenceMetaTest.java
index c2e02b8c1c..dbf5d44147 100644
--- a/plugins/transforms/fieldschangesequence/src/test/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequenceMetaTest.java
+++ b/plugins/transforms/fieldschangesequence/src/test/java/org/apache/hop/pipeline/transforms/fieldschangesequence/FieldsChangeSequenceMetaTest.java
@@ -27,7 +27,7 @@ import org.junit.BeforeClass;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.UUID;
 
 public class FieldsChangeSequenceMetaTest {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
diff --git a/plugins/transforms/fieldsplitter/src/test/java/org/apache/hop/pipeline/transforms/fieldsplitter/FieldSplitter_EmptyStringVsNull_Test.java b/plugins/transforms/fieldsplitter/src/test/java/org/apache/hop/pipeline/transforms/fieldsplitter/FieldSplitter_EmptyStringVsNull_Test.java
index c88833f298..a675b2ce2f 100644
--- a/plugins/transforms/fieldsplitter/src/test/java/org/apache/hop/pipeline/transforms/fieldsplitter/FieldSplitter_EmptyStringVsNull_Test.java
+++ b/plugins/transforms/fieldsplitter/src/test/java/org/apache/hop/pipeline/transforms/fieldsplitter/FieldSplitter_EmptyStringVsNull_Test.java
@@ -27,8 +27,6 @@ import org.apache.hop.pipeline.PipelineTestingUtil;
 import org.apache.hop.pipeline.transform.ITransformData;
 import org.apache.hop.pipeline.transforms.mock.TransformMockHelper;
 import org.junit.*;
-import org.junit.runner.RunWith;
-import org.powermock.modules.junit4.PowerMockRunner;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/plugins/transforms/fileexists/src/main/java/org/apache/hop/pipeline/transforms/fileexists/FileExists.java b/plugins/transforms/fileexists/src/main/java/org/apache/hop/pipeline/transforms/fileexists/FileExists.java
index dfdb471b11..1c1a6788d9 100644
--- a/plugins/transforms/fileexists/src/main/java/org/apache/hop/pipeline/transforms/fileexists/FileExists.java
+++ b/plugins/transforms/fileexists/src/main/java/org/apache/hop/pipeline/transforms/fileexists/FileExists.java
@@ -27,7 +27,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Check if a file exists* */
diff --git a/plugins/transforms/filelocked/src/main/java/org/apache/hop/pipeline/transforms/filelocked/FileLocked.java b/plugins/transforms/filelocked/src/main/java/org/apache/hop/pipeline/transforms/filelocked/FileLocked.java
index 3cbcb62a4c..91dd8e4f50 100644
--- a/plugins/transforms/filelocked/src/main/java/org/apache/hop/pipeline/transforms/filelocked/FileLocked.java
+++ b/plugins/transforms/filelocked/src/main/java/org/apache/hop/pipeline/transforms/filelocked/FileLocked.java
@@ -26,7 +26,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.workflow.actions.checkfilelocked.LockFile;
 
diff --git a/plugins/transforms/filemetadata/src/main/java/org/apache/hop/pipeline/transforms/filemetadata/FileMetadata.java b/plugins/transforms/filemetadata/src/main/java/org/apache/hop/pipeline/transforms/filemetadata/FileMetadata.java
index c87cc55885..d9c6350a15 100644
--- a/plugins/transforms/filemetadata/src/main/java/org/apache/hop/pipeline/transforms/filemetadata/FileMetadata.java
+++ b/plugins/transforms/filemetadata/src/main/java/org/apache/hop/pipeline/transforms/filemetadata/FileMetadata.java
@@ -30,7 +30,6 @@ import org.apache.hop.core.vfs.HopVfs;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.filemetadata.util.delimiters.DelimiterDetector;
 import org.apache.hop.pipeline.transforms.filemetadata.util.delimiters.DelimiterDetectorBuilder;
diff --git a/plugins/transforms/filterrows/src/main/java/org/apache/hop/pipeline/transforms/filterrows/FilterRowsMeta.java b/plugins/transforms/filterrows/src/main/java/org/apache/hop/pipeline/transforms/filterrows/FilterRowsMeta.java
index f94a1c5bf5..d73d6a0044 100644
--- a/plugins/transforms/filterrows/src/main/java/org/apache/hop/pipeline/transforms/filterrows/FilterRowsMeta.java
+++ b/plugins/transforms/filterrows/src/main/java/org/apache/hop/pipeline/transforms/filterrows/FilterRowsMeta.java
@@ -37,7 +37,10 @@ import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatch.java b/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatch.java
index 9a728c9121..22abf175fe 100644
--- a/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatch.java
+++ b/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatch.java
@@ -39,7 +39,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.Iterator;
diff --git a/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatchMeta.java b/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatchMeta.java
index e02121c0ef..3c13517f28 100644
--- a/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatchMeta.java
+++ b/plugins/transforms/fuzzymatch/src/main/java/org/apache/hop/pipeline/transforms/fuzzymatch/FuzzyMatchMeta.java
@@ -34,7 +34,10 @@ import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/getfilesrowcount/src/test/java/org/apache/hop/pipeline/transforms/getfilesrowcount/GetFilesRowsCountMetaTest.java b/plugins/transforms/getfilesrowcount/src/test/java/org/apache/hop/pipeline/transforms/getfilesrowcount/GetFilesRowsCountMetaTest.java
index 9bdd7a2abf..6b1b7e4da3 100644
--- a/plugins/transforms/getfilesrowcount/src/test/java/org/apache/hop/pipeline/transforms/getfilesrowcount/GetFilesRowsCountMetaTest.java
+++ b/plugins/transforms/getfilesrowcount/src/test/java/org/apache/hop/pipeline/transforms/getfilesrowcount/GetFilesRowsCountMetaTest.java
@@ -30,7 +30,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class GetFilesRowsCountMetaTest implements IInitializer<ITransformMeta> {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
diff --git a/plugins/transforms/getserversequence/src/main/java/org/apache/hop/pipeline/transforms/getserversequence/GetServerSequence.java b/plugins/transforms/getserversequence/src/main/java/org/apache/hop/pipeline/transforms/getserversequence/GetServerSequence.java
index 2bcfd968af..b67837df1c 100644
--- a/plugins/transforms/getserversequence/src/main/java/org/apache/hop/pipeline/transforms/getserversequence/GetServerSequence.java
+++ b/plugins/transforms/getserversequence/src/main/java/org/apache/hop/pipeline/transforms/getserversequence/GetServerSequence.java
@@ -26,7 +26,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Adds a sequential number to a stream of rows. */
diff --git a/plugins/transforms/getsubfolders/src/main/java/org/apache/hop/pipeline/transforms/getsubfolders/GetSubFolders.java b/plugins/transforms/getsubfolders/src/main/java/org/apache/hop/pipeline/transforms/getsubfolders/GetSubFolders.java
index cfa515c2ac..f7e5cec2e0 100644
--- a/plugins/transforms/getsubfolders/src/main/java/org/apache/hop/pipeline/transforms/getsubfolders/GetSubFolders.java
+++ b/plugins/transforms/getsubfolders/src/main/java/org/apache/hop/pipeline/transforms/getsubfolders/GetSubFolders.java
@@ -30,7 +30,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.IOException;
diff --git a/plugins/transforms/gettablenames/src/test/java/org/apache/hop/pipeline/transforms/gettablenames/GetTableNamesTest.java b/plugins/transforms/gettablenames/src/test/java/org/apache/hop/pipeline/transforms/gettablenames/GetTableNamesTest.java
index 0ae8650e6b..cc72cf8d4b 100644
--- a/plugins/transforms/gettablenames/src/test/java/org/apache/hop/pipeline/transforms/gettablenames/GetTableNamesTest.java
+++ b/plugins/transforms/gettablenames/src/test/java/org/apache/hop/pipeline/transforms/gettablenames/GetTableNamesTest.java
@@ -25,7 +25,9 @@ import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
 
-import static org.mockito.Matchers.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.*;
 import static org.powermock.reflect.Whitebox.setInternalState;
 
diff --git a/plugins/transforms/getvariable/src/test/java/org/apache/hop/pipeline/transforms/getvariable/GetVariableMetaTest.java b/plugins/transforms/getvariable/src/test/java/org/apache/hop/pipeline/transforms/getvariable/GetVariableMetaTest.java
index 1d4b437e5f..3777e9b08a 100644
--- a/plugins/transforms/getvariable/src/test/java/org/apache/hop/pipeline/transforms/getvariable/GetVariableMetaTest.java
+++ b/plugins/transforms/getvariable/src/test/java/org/apache/hop/pipeline/transforms/getvariable/GetVariableMetaTest.java
@@ -37,7 +37,10 @@ import org.junit.BeforeClass;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import static org.junit.Assert.*;
 
diff --git a/plugins/transforms/http/src/main/java/org/apache/hop/pipeline/transforms/http/Http.java b/plugins/transforms/http/src/main/java/org/apache/hop/pipeline/transforms/http/Http.java
index 47547d0576..39fc979ccd 100644
--- a/plugins/transforms/http/src/main/java/org/apache/hop/pipeline/transforms/http/Http.java
+++ b/plugins/transforms/http/src/main/java/org/apache/hop/pipeline/transforms/http/Http.java
@@ -31,7 +31,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.http.*;
 import org.apache.http.client.AuthCache;
diff --git a/plugins/transforms/httppost/src/main/java/org/apache/hop/pipeline/transforms/httppost/HttpPost.java b/plugins/transforms/httppost/src/main/java/org/apache/hop/pipeline/transforms/httppost/HttpPost.java
index 2c5f9e9930..19a329d6ab 100644
--- a/plugins/transforms/httppost/src/main/java/org/apache/hop/pipeline/transforms/httppost/HttpPost.java
+++ b/plugins/transforms/httppost/src/main/java/org/apache/hop/pipeline/transforms/httppost/HttpPost.java
@@ -30,7 +30,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.http.*;
 import org.apache.http.client.AuthCache;
diff --git a/plugins/transforms/httppost/src/test/java/org/apache/hop/pipeline/transforms/httppost/HttpPostMetaTest.java b/plugins/transforms/httppost/src/test/java/org/apache/hop/pipeline/transforms/httppost/HttpPostMetaTest.java
index df06ac0910..341c4f3423 100644
--- a/plugins/transforms/httppost/src/test/java/org/apache/hop/pipeline/transforms/httppost/HttpPostMetaTest.java
+++ b/plugins/transforms/httppost/src/test/java/org/apache/hop/pipeline/transforms/httppost/HttpPostMetaTest.java
@@ -19,12 +19,11 @@ package org.apache.hop.pipeline.transforms.httppost;
 
 import org.apache.hop.core.HopEnvironment;
 import org.apache.hop.core.exception.HopException;
-import org.apache.hop.core.plugins.PluginRegistry;
-import org.apache.hop.junit.rules.RestoreHopEngineEnvironment;
 import org.apache.hop.pipeline.transforms.loadsave.LoadSaveTester;
-import org.apache.hop.pipeline.transforms.loadsave.validator.*;
+import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidator;
+import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidatorFactory;
+import org.apache.hop.pipeline.transforms.loadsave.validator.ListLoadSaveValidator;
 import org.junit.Before;
-import org.junit.ClassRule;
 import org.junit.Test;
 
 import java.util.Arrays;
diff --git a/plugins/transforms/ifnull/src/main/java/org/apache/hop/pipeline/transforms/ifnull/IfNull.java b/plugins/transforms/ifnull/src/main/java/org/apache/hop/pipeline/transforms/ifnull/IfNull.java
index d108fd781f..b9da6b9ecd 100644
--- a/plugins/transforms/ifnull/src/main/java/org/apache/hop/pipeline/transforms/ifnull/IfNull.java
+++ b/plugins/transforms/ifnull/src/main/java/org/apache/hop/pipeline/transforms/ifnull/IfNull.java
@@ -25,7 +25,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.ArrayList;
diff --git a/plugins/transforms/ifnull/src/main/java/org/apache/hop/pipeline/transforms/ifnull/IfNullMeta.java b/plugins/transforms/ifnull/src/main/java/org/apache/hop/pipeline/transforms/ifnull/IfNullMeta.java
index c8e364ae06..2781489c33 100644
--- a/plugins/transforms/ifnull/src/main/java/org/apache/hop/pipeline/transforms/ifnull/IfNullMeta.java
+++ b/plugins/transforms/ifnull/src/main/java/org/apache/hop/pipeline/transforms/ifnull/IfNullMeta.java
@@ -35,6 +35,7 @@ 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;
+
 import java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java
index 08c303b756..e835643d4f 100644
--- a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java
+++ b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdate.java
@@ -31,7 +31,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.sql.SQLException;
diff --git a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateMeta.java b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateMeta.java
index c0c64cc1b2..6653367b66 100644
--- a/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateMeta.java
+++ b/plugins/transforms/insertupdate/src/main/java/org/apache/hop/pipeline/transforms/insertupdate/InsertUpdateMeta.java
@@ -33,11 +33,9 @@ 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.DatabaseImpact;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformData;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.utils.RowMetaUtils;
 
@@ -53,7 +51,7 @@ import java.util.List;
     keywords = "i18n::InsertUpdateMeta.keyword",
     documentationUrl = "/pipeline/transforms/insertupdate.html")
 public class InsertUpdateMeta extends BaseTransformMeta<InsertUpdate, InsertUpdateData>
-  implements IProvidesModelerMeta {
+    implements IProvidesModelerMeta {
   private static final Class<?> PKG = InsertUpdateMeta.class; // For Translator
 
   private IHopMetadataProvider metadataProvider;
@@ -100,7 +98,9 @@ public class InsertUpdateMeta extends BaseTransformMeta<InsertUpdate, InsertUpda
     return null;
   }
 
-  /** @return Returns the commitSize. */
+  /**
+   * @return Returns the commitSize.
+   */
   public String getCommitSize() {
     return commitSize;
   }
@@ -116,7 +116,9 @@ public class InsertUpdateMeta extends BaseTransformMeta<InsertUpdate, InsertUpda
     return Integer.parseInt(vs.resolve(commitSize));
   }
 
-  /** @param commitSize The commitSize to set. */
+  /**
+   * @param commitSize The commitSize to set.
+   */
   public void setCommitSize(String commitSize) {
     this.commitSize = commitSize;
   }
@@ -148,13 +150,17 @@ public class InsertUpdateMeta extends BaseTransformMeta<InsertUpdate, InsertUpda
     return updateStreamFields;
   }
 
-  /** @return Returns the tableName. */
+  /**
+   * @return Returns the tableName.
+   */
   @Override
   public String getTableName() {
     return insertUpdateLookupField.getTableName();
   }
 
-  /** @return Returns the tableName. */
+  /**
+   * @return Returns the tableName.
+   */
   @Override
   public String getSchemaName() {
     return insertUpdateLookupField.getSchemaName();
@@ -437,8 +443,9 @@ public class InsertUpdateMeta extends BaseTransformMeta<InsertUpdate, InsertUpda
 
     String connectionName = variables.resolve(connection);
 
-    if ( StringUtils.isEmpty(connectionName)) {
-      sqlStatement.setError(BaseMessages.getString(PKG, "InsertUpdateMeta.ReturnValue.NoConnectionDefined"));
+    if (StringUtils.isEmpty(connectionName)) {
+      sqlStatement.setError(
+          BaseMessages.getString(PKG, "InsertUpdateMeta.ReturnValue.NoConnectionDefined"));
       return sqlStatement;
     }
 
@@ -521,7 +528,8 @@ public class InsertUpdateMeta extends BaseTransformMeta<InsertUpdate, InsertUpda
           }
 
           // Key lookup dimensions...
-          if (idxFields != null && !db.checkIndexExists(
+          if (idxFields != null
+              && !db.checkIndexExists(
                   variables.resolve(insertUpdateLookupField.getSchemaName()),
                   variables.resolve(insertUpdateLookupField.getTableName()),
                   idxFields)) {
@@ -619,12 +627,16 @@ public class InsertUpdateMeta extends BaseTransformMeta<InsertUpdate, InsertUpda
     }
   }
 
-  /** @return Returns the updateBypassed. */
+  /**
+   * @return Returns the updateBypassed.
+   */
   public boolean isUpdateBypassed() {
     return updateBypassed;
   }
 
-  /** @param updateBypassed The updateBypassed to set. */
+  /**
+   * @param updateBypassed The updateBypassed to set.
+   */
   public void setUpdateBypassed(boolean updateBypassed) {
     this.updateBypassed = updateBypassed;
   }
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 1ee0eda40e..5003f4e4ac 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
@@ -36,6 +36,7 @@ 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;
+
 import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
diff --git a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoMetaFunction.java b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoMetaFunction.java
index f113f608bf..622674a9fa 100644
--- a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoMetaFunction.java
+++ b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/janino/JaninoMetaFunction.java
@@ -21,6 +21,7 @@ import org.apache.hop.core.injection.Injection;
 import org.apache.hop.core.row.value.ValueMetaFactory;
 import org.apache.hop.core.xml.XmlHandler;
 import org.w3c.dom.Node;
+
 import java.util.Objects;
 
 public class JaninoMetaFunction implements Cloneable {
diff --git a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/javafilter/JavaFilterMeta.java b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/javafilter/JavaFilterMeta.java
index 89e9030b24..9907e18b3c 100644
--- a/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/javafilter/JavaFilterMeta.java
+++ b/plugins/transforms/janino/src/main/java/org/apache/hop/pipeline/transforms/javafilter/JavaFilterMeta.java
@@ -28,7 +28,10 @@ import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/janino/src/test/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/FieldHelperTest.java b/plugins/transforms/janino/src/test/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/FieldHelperTest.java
index 9b5e1d29e1..d058992acb 100644
--- a/plugins/transforms/janino/src/test/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/FieldHelperTest.java
+++ b/plugins/transforms/janino/src/test/java/org/apache/hop/pipeline/transforms/userdefinedjavaclass/FieldHelperTest.java
@@ -22,7 +22,6 @@ import org.apache.hop.core.logging.LogChannel;
 import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.core.row.value.*;
-import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.powermock.core.classloader.annotations.PrepareForTest;
diff --git a/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesDummy.java b/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesDummy.java
index ec21d0fe80..0897d09f7d 100644
--- a/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesDummy.java
+++ b/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesDummy.java
@@ -31,6 +31,7 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.engine.EngineComponent;
 import org.apache.hop.pipeline.transform.*;
+
 import java.awt.event.ComponentListener;
 import java.util.Collections;
 import java.util.Date;
diff --git a/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesMeta.java b/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesMeta.java
index ffd0ecf936..bdd895608c 100644
--- a/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesMeta.java
+++ b/plugins/transforms/javascript/src/main/java/org/apache/hop/pipeline/transforms/javascript/ScriptValuesMeta.java
@@ -35,11 +35,8 @@ 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.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransform;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.mozilla.javascript.*;
 import org.w3c.dom.Document;
@@ -118,47 +115,65 @@ public class ScriptValuesMeta extends BaseTransformMeta<ScriptValues, ScriptValu
     }
   }
 
-  /** @return Returns the length. */
+  /**
+   * @return Returns the length.
+   */
   public int[] getLength() {
     return length;
   }
 
-  /** @param length The length to set. */
+  /**
+   * @param length The length to set.
+   */
   public void setLength(int[] length) {
     this.length = length;
   }
 
-  /** @return Returns the name. */
+  /**
+   * @return Returns the name.
+   */
   public String[] getFieldname() {
     return fieldname;
   }
 
-  /** @param fieldname The name to set. */
+  /**
+   * @param fieldname The name to set.
+   */
   public void setFieldname(String[] fieldname) {
     this.fieldname = fieldname;
   }
 
-  /** @return Returns the precision. */
+  /**
+   * @return Returns the precision.
+   */
   public int[] getPrecision() {
     return precision;
   }
 
-  /** @param precision The precision to set. */
+  /**
+   * @param precision The precision to set.
+   */
   public void setPrecision(int[] precision) {
     this.precision = precision;
   }
 
-  /** @return Returns the rename. */
+  /**
+   * @return Returns the rename.
+   */
   public String[] getRename() {
     return rename;
   }
 
-  /** @param rename The rename to set. */
+  /**
+   * @param rename The rename to set.
+   */
   public void setRename(String[] rename) {
     this.rename = rename;
   }
 
-  /** @return Returns the type. */
+  /**
+   * @return Returns the type.
+   */
   public int[] getType() {
     return this.type;
   }
@@ -171,7 +186,9 @@ public class ScriptValuesMeta extends BaseTransformMeta<ScriptValues, ScriptValu
     extend(fieldname.length);
   }
 
-  /** @param type The type to set. */
+  /**
+   * @param type The type to set.
+   */
   public void setType(int[] type) {
     this.type = type;
   }
@@ -833,12 +850,16 @@ public class ScriptValuesMeta extends BaseTransformMeta<ScriptValues, ScriptValu
     return true;
   }
 
-  /** @return the replace */
+  /**
+   * @return the replace
+   */
   public boolean[] getReplace() {
     return replace;
   }
 
-  /** @param replace the replace to set */
+  /**
+   * @param replace the replace to set
+   */
   public void setReplace(boolean[] replace) {
     this.replace = replace;
   }
diff --git a/plugins/transforms/joinrows/src/main/java/org/apache/hop/pipeline/transforms/joinrows/JoinRowsMeta.java b/plugins/transforms/joinrows/src/main/java/org/apache/hop/pipeline/transforms/joinrows/JoinRowsMeta.java
index d736ce41a3..c06ee619bc 100644
--- a/plugins/transforms/joinrows/src/main/java/org/apache/hop/pipeline/transforms/joinrows/JoinRowsMeta.java
+++ b/plugins/transforms/joinrows/src/main/java/org/apache/hop/pipeline/transforms/joinrows/JoinRowsMeta.java
@@ -36,6 +36,7 @@ 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;
+
 import java.io.File;
 import java.util.List;
 
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInput.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInput.java
index c21ab7ae54..9eb53dd94a 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInput.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInput.java
@@ -33,7 +33,6 @@ import org.apache.hop.core.vfs.HopVfs;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.file.BaseFileInputTransform;
 import org.apache.hop.pipeline.transforms.file.IBaseFileInputReader;
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInputMeta.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInputMeta.java
index 11f358e14a..1ad7d6e846 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInputMeta.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsoninput/JsonInputMeta.java
@@ -39,9 +39,7 @@ 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.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.file.BaseFileInputAdditionalField;
 import org.apache.hop.pipeline.transforms.file.BaseFileInputFiles;
@@ -278,87 +276,121 @@ public class JsonInputMeta
     this.defaultPathLeafToNull = defaultPathLeafToNull;
   }
 
-  /** @return Returns the shortFileFieldName. */
+  /**
+   * @return Returns the shortFileFieldName.
+   */
   public String getShortFileNameField() {
     return additionalOutputFields.shortFilenameField;
   }
 
-  /** @param field The shortFileFieldName to set. */
+  /**
+   * @param field The shortFileFieldName to set.
+   */
   public void setShortFileNameField(String field) {
     additionalOutputFields.shortFilenameField = field;
   }
 
-  /** @return Returns the pathFieldName. */
+  /**
+   * @return Returns the pathFieldName.
+   */
   public String getPathField() {
     return additionalOutputFields.pathField;
   }
 
-  /** @param field The pathFieldName to set. */
+  /**
+   * @param field The pathFieldName to set.
+   */
   public void setPathField(String field) {
     additionalOutputFields.pathField = field;
   }
 
-  /** @return Returns the hiddenFieldName. */
+  /**
+   * @return Returns the hiddenFieldName.
+   */
   public String isHiddenField() { // name..
     return additionalOutputFields.hiddenField;
   }
 
-  /** @param field The hiddenFieldName to set. */
+  /**
+   * @param field The hiddenFieldName to set.
+   */
   public void setIsHiddenField(String field) { // name..
     additionalOutputFields.hiddenField = field;
   }
 
-  /** @return Returns the lastModificationTimeFieldName. */
+  /**
+   * @return Returns the lastModificationTimeFieldName.
+   */
   public String getLastModificationDateField() {
     return additionalOutputFields.lastModificationField;
   }
 
-  /** @param field The lastModificationTimeFieldName to set. */
+  /**
+   * @param field The lastModificationTimeFieldName to set.
+   */
   public void setLastModificationDateField(String field) {
     additionalOutputFields.lastModificationField = field;
   }
 
-  /** @return Returns the uriNameFieldName. */
+  /**
+   * @return Returns the uriNameFieldName.
+   */
   public String getUriField() {
     return additionalOutputFields.uriField;
   }
 
-  /** @param field The uriNameFieldName to set. */
+  /**
+   * @param field The uriNameFieldName to set.
+   */
   public void setUriField(String field) {
     additionalOutputFields.uriField = field;
   }
 
-  /** @return Returns the uriNameFieldName. */
+  /**
+   * @return Returns the uriNameFieldName.
+   */
   public String getRootUriField() {
     return additionalOutputFields.rootUriField;
   }
 
-  /** @param field The rootUriNameFieldName to set. */
+  /**
+   * @param field The rootUriNameFieldName to set.
+   */
   public void setRootUriField(String field) {
     additionalOutputFields.rootUriField = field;
   }
 
-  /** @return Returns the extensionFieldName. */
+  /**
+   * @return Returns the extensionFieldName.
+   */
   public String getExtensionField() {
     return additionalOutputFields.extensionField;
   }
 
-  /** @param field The extensionFieldName to set. */
+  /**
+   * @param field The extensionFieldName to set.
+   */
   public void setExtensionField(String field) {
     additionalOutputFields.extensionField = field;
   }
 
-  /** @return Returns the sizeFieldName. */
+  /**
+   * @return Returns the sizeFieldName.
+   */
   public String getSizeField() {
     return additionalOutputFields.sizeField;
   }
 
-  /** @param field The sizeFieldName to set. */
+  /**
+   * @param field The sizeFieldName to set.
+   */
   public void setSizeField(String field) {
     additionalOutputFields.sizeField = field;
   }
 
-  /** @return the add result filesname flag */
+  /**
+   * @return the add result filesname flag
+   */
   public boolean addResultFile() {
     return addResultFile;
   }
@@ -388,7 +420,9 @@ public class JsonInputMeta
     return super.getInputFields();
   }
 
-  /** @param inputFields The input fields to set. */
+  /**
+   * @param inputFields The input fields to set.
+   */
   public void setInputFields(JsonInputField[] inputFields) {
     this.inputFields = inputFields;
   }
@@ -468,32 +502,44 @@ public class JsonInputMeta
     this.includeFilename = includeFilename;
   }
 
-  /** @return Returns the includeRowNumber. */
+  /**
+   * @return Returns the includeRowNumber.
+   */
   public boolean includeRowNumber() {
     return includeRowNumber;
   }
 
-  /** @param includeRowNumber The includeRowNumber to set. */
+  /**
+   * @param includeRowNumber The includeRowNumber to set.
+   */
   public void setIncludeRowNumber(boolean includeRowNumber) {
     this.includeRowNumber = includeRowNumber;
   }
 
-  /** @return Returns the rowLimit. */
+  /**
+   * @return Returns the rowLimit.
+   */
   public long getRowLimit() {
     return rowLimit;
   }
 
-  /** @param rowLimit The rowLimit to set. */
+  /**
+   * @param rowLimit The rowLimit to set.
+   */
   public void setRowLimit(long rowLimit) {
     this.rowLimit = rowLimit;
   }
 
-  /** @return the IsIgnoreEmptyFile flag */
+  /**
+   * @return the IsIgnoreEmptyFile flag
+   */
   public boolean isIgnoreEmptyFile() {
     return isIgnoreEmptyFile;
   }
 
-  /** @param isIgnoreEmptyFile the IsIgnoreEmptyFile to set */
+  /**
+   * @param isIgnoreEmptyFile the IsIgnoreEmptyFile to set
+   */
   public void setIgnoreEmptyFile(boolean isIgnoreEmptyFile) {
     this.isIgnoreEmptyFile = isIgnoreEmptyFile;
   }
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/BaseFileOutputMeta.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/BaseFileOutputMeta.java
index 3402fc0950..5be32db0da 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/BaseFileOutputMeta.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/BaseFileOutputMeta.java
@@ -21,6 +21,7 @@ import org.apache.hop.core.injection.Injection;
 import org.apache.hop.core.util.Utils;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
+
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/JsonOutput.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/JsonOutput.java
index 08dd23a092..65aa253c08 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/JsonOutput.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutput/JsonOutput.java
@@ -33,6 +33,7 @@ import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.json.simple.JSONArray;
 import org.json.simple.JSONObject;
+
 import java.io.BufferedOutputStream;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/BaseFileOutputMeta.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/BaseFileOutputMeta.java
index 935771e8d1..f90935606a 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/BaseFileOutputMeta.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/BaseFileOutputMeta.java
@@ -21,6 +21,7 @@ import org.apache.hop.core.injection.Injection;
 import org.apache.hop.core.util.Utils;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
+
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutput.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutput.java
index fa8506abed..e0c772adcb 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutput.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutput.java
@@ -38,7 +38,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.BufferedOutputStream;
diff --git a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutputMeta.java b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutputMeta.java
index 0472c0fc01..b2dfb1d137 100644
--- a/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutputMeta.java
+++ b/plugins/transforms/json/src/main/java/org/apache/hop/pipeline/transforms/jsonoutputenhanced/JsonOutputMeta.java
@@ -38,6 +38,7 @@ import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.w3c.dom.Node;
+
 import java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/consumer/KafkaConsumerInputData.java b/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/consumer/KafkaConsumerInputData.java
index 02cec0b0c3..f32a6543aa 100644
--- a/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/consumer/KafkaConsumerInputData.java
+++ b/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/consumer/KafkaConsumerInputData.java
@@ -17,7 +17,6 @@
 
 package org.apache.hop.pipeline.transforms.kafka.consumer;
 
-import org.apache.avro.generic.GenericRecord;
 import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.pipeline.RowProducer;
 import org.apache.hop.pipeline.SingleThreadedPipelineExecutor;
diff --git a/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/consumer/KafkaConsumerInputMeta.java b/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/consumer/KafkaConsumerInputMeta.java
index a818ff3fae..7354c505bb 100644
--- a/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/consumer/KafkaConsumerInputMeta.java
+++ b/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/consumer/KafkaConsumerInputMeta.java
@@ -39,10 +39,8 @@ 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.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.TransformWithMappingMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformErrorMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.pipelineexecutor.PipelineExecutorMeta;
@@ -402,7 +400,6 @@ public class KafkaConsumerInputMeta
     return newClone;
   }
 
-
   @Override
   public void getFields(
       IRowMeta rowMeta,
@@ -433,19 +430,18 @@ public class KafkaConsumerInputMeta
                 });
       }
 
-      // Check if we get called from error path and only in that case, show fields that will dump the
+      // Check if we get called from error path and only in that case, show fields that will dump
+      // the
       // record coming from the kafka queue.
       TransformErrorMeta transformErrorMeta = getParentTransformMeta().getTransformErrorMeta();
-      if (transformErrorMeta != null && transformErrorMeta.getTargetTransform().getName().equals(nextTransform.getName())) {
+      if (transformErrorMeta != null
+          && transformErrorMeta.getTargetTransform().getName().equals(nextTransform.getName())) {
         rowMeta.addValueMeta(createValueMetaString(getKeyField().getOutputName()));
         rowMeta.addValueMeta(createValueMetaString(getMessageField().getOutputName()));
         rowMeta.addValueMeta(createValueMetaString(getTopicField().getOutputName()));
-        rowMeta.addValueMeta(
-            createValueMetaInteger(getPartitionField().getOutputName()));
-        rowMeta.addValueMeta(
-            createValueMetaInteger(getOffsetField().getOutputName()));
-        rowMeta.addValueMeta(
-            createValueMetaInteger(getTimestampField().getOutputName()));
+        rowMeta.addValueMeta(createValueMetaInteger(getPartitionField().getOutputName()));
+        rowMeta.addValueMeta(createValueMetaInteger(getOffsetField().getOutputName()));
+        rowMeta.addValueMeta(createValueMetaInteger(getTimestampField().getOutputName()));
       }
     } catch (HopException e) {
       getLog().logDebug("could not get fields, probable AEL");
@@ -541,7 +537,9 @@ public class KafkaConsumerInputMeta
     return filename;
   }
 
-  /** @param filename The filename to set */
+  /**
+   * @param filename The filename to set
+   */
   @Override
   public void setFilename(String filename) {
     this.filename = filename;
@@ -556,7 +554,9 @@ public class KafkaConsumerInputMeta
     return batchSize;
   }
 
-  /** @param batchSize The batchSize to set */
+  /**
+   * @param batchSize The batchSize to set
+   */
   public void setBatchSize(String batchSize) {
     this.batchSize = batchSize;
   }
@@ -570,7 +570,9 @@ public class KafkaConsumerInputMeta
     return batchDuration;
   }
 
-  /** @param batchDuration The batchDuration to set */
+  /**
+   * @param batchDuration The batchDuration to set
+   */
   public void setBatchDuration(String batchDuration) {
     this.batchDuration = batchDuration;
   }
@@ -601,7 +603,9 @@ public class KafkaConsumerInputMeta
     return directBootstrapServers;
   }
 
-  /** @param directBootstrapServers The directBootstrapServers to set */
+  /**
+   * @param directBootstrapServers The directBootstrapServers to set
+   */
   public void setDirectBootstrapServers(String directBootstrapServers) {
     this.directBootstrapServers = directBootstrapServers;
   }
@@ -615,7 +619,9 @@ public class KafkaConsumerInputMeta
     return topics;
   }
 
-  /** @param topics The topics to set */
+  /**
+   * @param topics The topics to set
+   */
   public void setTopics(List<String> topics) {
     this.topics = topics;
   }
@@ -629,7 +635,9 @@ public class KafkaConsumerInputMeta
     return consumerGroup;
   }
 
-  /** @param consumerGroup The consumerGroup to set */
+  /**
+   * @param consumerGroup The consumerGroup to set
+   */
   public void setConsumerGroup(String consumerGroup) {
     this.consumerGroup = consumerGroup;
   }
@@ -643,7 +651,9 @@ public class KafkaConsumerInputMeta
     return keyField;
   }
 
-  /** @param keyField The keyField to set */
+  /**
+   * @param keyField The keyField to set
+   */
   public void setKeyField(KafkaConsumerField keyField) {
     this.keyField = keyField;
   }
@@ -657,7 +667,9 @@ public class KafkaConsumerInputMeta
     return messageField;
   }
 
-  /** @param messageField The messageField to set */
+  /**
+   * @param messageField The messageField to set
+   */
   public void setMessageField(KafkaConsumerField messageField) {
     this.messageField = messageField;
   }
@@ -671,7 +683,9 @@ public class KafkaConsumerInputMeta
     return injectedConfigNames;
   }
 
-  /** @param injectedConfigNames The injectedConfigNames to set */
+  /**
+   * @param injectedConfigNames The injectedConfigNames to set
+   */
   public void setInjectedConfigNames(List<String> injectedConfigNames) {
     this.injectedConfigNames = injectedConfigNames;
   }
@@ -685,7 +699,9 @@ public class KafkaConsumerInputMeta
     return injectedConfigValues;
   }
 
-  /** @param injectedConfigValues The injectedConfigValues to set */
+  /**
+   * @param injectedConfigValues The injectedConfigValues to set
+   */
   public void setInjectedConfigValues(List<String> injectedConfigValues) {
     this.injectedConfigValues = injectedConfigValues;
   }
@@ -699,7 +715,9 @@ public class KafkaConsumerInputMeta
     return topicField;
   }
 
-  /** @param topicField The topicField to set */
+  /**
+   * @param topicField The topicField to set
+   */
   public void setTopicField(KafkaConsumerField topicField) {
     this.topicField = topicField;
   }
@@ -713,7 +731,9 @@ public class KafkaConsumerInputMeta
     return offsetField;
   }
 
-  /** @param offsetField The offsetField to set */
+  /**
+   * @param offsetField The offsetField to set
+   */
   public void setOffsetField(KafkaConsumerField offsetField) {
     this.offsetField = offsetField;
   }
@@ -727,7 +747,9 @@ public class KafkaConsumerInputMeta
     return partitionField;
   }
 
-  /** @param partitionField The partitionField to set */
+  /**
+   * @param partitionField The partitionField to set
+   */
   public void setPartitionField(KafkaConsumerField partitionField) {
     this.partitionField = partitionField;
   }
@@ -741,7 +763,9 @@ public class KafkaConsumerInputMeta
     return timestampField;
   }
 
-  /** @param timestampField The timestampField to set */
+  /**
+   * @param timestampField The timestampField to set
+   */
   public void setTimestampField(KafkaConsumerField timestampField) {
     this.timestampField = timestampField;
   }
@@ -755,7 +779,9 @@ public class KafkaConsumerInputMeta
     return autoCommit;
   }
 
-  /** @param autoCommit The autoCommit to set */
+  /**
+   * @param autoCommit The autoCommit to set
+   */
   public void setAutoCommit(boolean autoCommit) {
     this.autoCommit = autoCommit;
   }
diff --git a/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/producer/KafkaProducerOutput.java b/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/producer/KafkaProducerOutput.java
index e3defe41c3..373d716218 100644
--- a/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/producer/KafkaProducerOutput.java
+++ b/plugins/transforms/kafka/src/main/java/org/apache/hop/pipeline/transforms/kafka/producer/KafkaProducerOutput.java
@@ -17,18 +17,12 @@
 
 package org.apache.hop.pipeline.transforms.kafka.producer;
 
-import org.apache.avro.generic.GenericData;
-import org.apache.avro.generic.GenericRecord;
-import org.apache.avro.generic.IndexedRecord;
-import org.apache.avro.specific.SpecificData;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hop.core.exception.HopException;
-import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.kafka.consumer.KafkaConsumerField;
 import org.apache.hop.pipeline.transforms.kafka.shared.KafkaFactory;
@@ -101,11 +95,11 @@ public class KafkaProducerOutput
               .getValueMeta(data.messageFieldIndex)
               .getNativeDataType(r[data.messageFieldIndex]);
 
-        producerRecord =
-            new ProducerRecord<>(
-                resolve(meta.getTopic()),
-                getInputRowMeta().getString(r, data.keyFieldIndex),
-                nativeObject);
+      producerRecord =
+          new ProducerRecord<>(
+              resolve(meta.getTopic()),
+              getInputRowMeta().getString(r, data.keyFieldIndex),
+              nativeObject);
     }
 
     data.kafkaProducer.send(producerRecord);
diff --git a/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapinput/LdapInput.java b/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapinput/LdapInput.java
index 2b90844a16..74a6aeaaf3 100644
--- a/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapinput/LdapInput.java
+++ b/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapinput/LdapInput.java
@@ -28,7 +28,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import javax.naming.NamingEnumeration;
diff --git a/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapinput/LdapInputMeta.java b/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapinput/LdapInputMeta.java
index 0ff1a35671..7bb61f2915 100644
--- a/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapinput/LdapInputMeta.java
+++ b/plugins/transforms/ldap/src/main/java/org/apache/hop/pipeline/transforms/ldapinput/LdapInputMeta.java
@@ -37,6 +37,7 @@ 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;
+
 import java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInput.java b/plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInput.java
index 91006e7b8b..ae99c365f7 100644
--- a/plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInput.java
+++ b/plugins/transforms/loadfileinput/src/main/java/org/apache/hop/pipeline/transforms/loadfileinput/LoadFileInput.java
@@ -33,7 +33,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.BufferedInputStream;
diff --git a/plugins/transforms/mail/src/test/java/org/apache/hop/pipeline/transforms/mail/MailMetaTest.java b/plugins/transforms/mail/src/test/java/org/apache/hop/pipeline/transforms/mail/MailMetaTest.java
index 2b05d41f58..40844dec1a 100644
--- a/plugins/transforms/mail/src/test/java/org/apache/hop/pipeline/transforms/mail/MailMetaTest.java
+++ b/plugins/transforms/mail/src/test/java/org/apache/hop/pipeline/transforms/mail/MailMetaTest.java
@@ -30,7 +30,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class MailMetaTest implements IInitializer<ITransformMeta> {
   LoadSaveTester loadSaveTester;
diff --git a/plugins/transforms/mailinput/src/main/java/org/apache/hop/pipeline/transforms/mailinput/MailInput.java b/plugins/transforms/mailinput/src/main/java/org/apache/hop/pipeline/transforms/mailinput/MailInput.java
index a5ce03b4c6..d0107a21ec 100644
--- a/plugins/transforms/mailinput/src/main/java/org/apache/hop/pipeline/transforms/mailinput/MailInput.java
+++ b/plugins/transforms/mailinput/src/main/java/org/apache/hop/pipeline/transforms/mailinput/MailInput.java
@@ -28,7 +28,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.workflow.actions.getpop.MailConnection;
 import org.apache.hop.workflow.actions.getpop.MailConnectionMeta;
diff --git a/plugins/transforms/mapping/src/main/java/org/apache/hop/pipeline/transforms/input/MappingInput.java b/plugins/transforms/mapping/src/main/java/org/apache/hop/pipeline/transforms/input/MappingInput.java
index 611a90acbd..be2ee8eceb 100644
--- a/plugins/transforms/mapping/src/main/java/org/apache/hop/pipeline/transforms/input/MappingInput.java
+++ b/plugins/transforms/mapping/src/main/java/org/apache/hop/pipeline/transforms/input/MappingInput.java
@@ -21,7 +21,6 @@ import org.apache.hop.core.exception.HopException;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Do nothing. Pass all input data to the next transforms. */
diff --git a/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java b/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
index 38b2b5f96b..f116026013 100644
--- a/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
+++ b/plugins/transforms/memgroupby/src/main/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMeta.java
@@ -29,7 +29,6 @@ import org.apache.hop.core.injection.InjectionSupported;
 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.ValueMetaNone;
 import org.apache.hop.core.util.Utils;
@@ -162,52 +161,72 @@ public class MemoryGroupByMeta extends BaseTransformMeta<MemoryGroupBy, MemoryGr
     super(); // allocate BaseTransformMeta
   }
 
-  /** @return Returns the aggregateField. */
+  /**
+   * @return Returns the aggregateField.
+   */
   public String[] getAggregateField() {
     return aggregateField;
   }
 
-  /** @param aggregateField The aggregateField to set. */
+  /**
+   * @param aggregateField The aggregateField to set.
+   */
   public void setAggregateField(String[] aggregateField) {
     this.aggregateField = aggregateField;
   }
 
-  /** @return Returns the aggregateType. */
+  /**
+   * @return Returns the aggregateType.
+   */
   public int[] getAggregateType() {
     return aggregateType;
   }
 
-  /** @param aggregateType The aggregateType to set. */
+  /**
+   * @param aggregateType The aggregateType to set.
+   */
   public void setAggregateType(int[] aggregateType) {
     this.aggregateType = aggregateType;
   }
 
-  /** @return Returns the groupField. */
+  /**
+   * @return Returns the groupField.
+   */
   public String[] getGroupField() {
     return groupField;
   }
 
-  /** @param groupField The groupField to set. */
+  /**
+   * @param groupField The groupField to set.
+   */
   public void setGroupField(String[] groupField) {
     this.groupField = groupField;
   }
 
-  /** @return Returns the subjectField. */
+  /**
+   * @return Returns the subjectField.
+   */
   public String[] getSubjectField() {
     return subjectField;
   }
 
-  /** @param subjectField The subjectField to set. */
+  /**
+   * @param subjectField The subjectField to set.
+   */
   public void setSubjectField(String[] subjectField) {
     this.subjectField = subjectField;
   }
 
-  /** @return Returns the valueField. */
+  /**
+   * @return Returns the valueField.
+   */
   public String[] getValueField() {
     return valueField;
   }
 
-  /** @param valueField The valueField to set. */
+  /**
+   * @param valueField The valueField to set.
+   */
   public void setValueField(String[] valueField) {
     this.valueField = valueField;
   }
@@ -330,7 +349,7 @@ public class MemoryGroupByMeta extends BaseTransformMeta<MemoryGroupBy, MemoryGr
       TransformMeta nextTransform,
       IVariables variables,
       IHopMetadataProvider metadataProvider) {
-    
+
     // re-assemble a new row of metadata
     //
     IRowMeta fields = new RowMeta();
@@ -493,12 +512,16 @@ public class MemoryGroupByMeta extends BaseTransformMeta<MemoryGroupBy, MemoryGr
     }
   }
 
-  /** @return the alwaysGivingBackOneRow */
+  /**
+   * @return the alwaysGivingBackOneRow
+   */
   public boolean isAlwaysGivingBackOneRow() {
     return alwaysGivingBackOneRow;
   }
 
-  /** @param alwaysGivingBackOneRow the alwaysGivingBackOneRow to set */
+  /**
+   * @param alwaysGivingBackOneRow the alwaysGivingBackOneRow to set
+   */
   public void setAlwaysGivingBackOneRow(boolean alwaysGivingBackOneRow) {
     this.alwaysGivingBackOneRow = alwaysGivingBackOneRow;
   }
diff --git a/plugins/transforms/memgroupby/src/test/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMetaTest.java b/plugins/transforms/memgroupby/src/test/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMetaTest.java
index 2fd4501733..7ac88ea8cc 100644
--- a/plugins/transforms/memgroupby/src/test/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMetaTest.java
+++ b/plugins/transforms/memgroupby/src/test/java/org/apache/hop/pipeline/transforms/memgroupby/MemoryGroupByMetaTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.hop.pipeline.transforms.memgroupby;
 
-import org.apache.hop.core.Const;
 import org.apache.hop.core.HopEnvironment;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.plugins.PluginRegistry;
@@ -34,7 +33,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import static org.junit.Assert.*;
 
diff --git a/plugins/transforms/mergerows/src/main/java/org/apache/hop/pipeline/transforms/mergerows/MergeRowsMeta.java b/plugins/transforms/mergerows/src/main/java/org/apache/hop/pipeline/transforms/mergerows/MergeRowsMeta.java
index 31b8ef53d9..7396dd1f4b 100644
--- a/plugins/transforms/mergerows/src/main/java/org/apache/hop/pipeline/transforms/mergerows/MergeRowsMeta.java
+++ b/plugins/transforms/mergerows/src/main/java/org/apache/hop/pipeline/transforms/mergerows/MergeRowsMeta.java
@@ -36,7 +36,10 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.PipelineMeta.PipelineType;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/mergerows/src/test/java/org/apache/hop/pipeline/transforms/mergerows/MergeRowsMetaTest.java b/plugins/transforms/mergerows/src/test/java/org/apache/hop/pipeline/transforms/mergerows/MergeRowsMetaTest.java
index c4db6ae767..2790902403 100644
--- a/plugins/transforms/mergerows/src/test/java/org/apache/hop/pipeline/transforms/mergerows/MergeRowsMetaTest.java
+++ b/plugins/transforms/mergerows/src/test/java/org/apache/hop/pipeline/transforms/mergerows/MergeRowsMetaTest.java
@@ -31,7 +31,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class MergeRowsMetaTest implements IInitializer<ITransformMeta> {
   LoadSaveTester loadSaveTester;
diff --git a/plugins/transforms/metadata/src/main/java/org/apache/hop/pipeline/transforms/metainput/MetadataInputMeta.java b/plugins/transforms/metadata/src/main/java/org/apache/hop/pipeline/transforms/metainput/MetadataInputMeta.java
index 7c38207818..3cc31974d5 100644
--- a/plugins/transforms/metadata/src/main/java/org/apache/hop/pipeline/transforms/metainput/MetadataInputMeta.java
+++ b/plugins/transforms/metadata/src/main/java/org/apache/hop/pipeline/transforms/metainput/MetadataInputMeta.java
@@ -24,10 +24,7 @@ import org.apache.hop.core.row.RowMetaBuilder;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
-import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.ArrayList;
@@ -118,7 +115,9 @@ public class MetadataInputMeta extends BaseTransformMeta<MetadataInput, Metadata
     return providerFieldName;
   }
 
-  /** @param providerFieldName The providerFieldName to set */
+  /**
+   * @param providerFieldName The providerFieldName to set
+   */
   public void setProviderFieldName(String providerFieldName) {
     this.providerFieldName = providerFieldName;
   }
@@ -132,7 +131,9 @@ public class MetadataInputMeta extends BaseTransformMeta<MetadataInput, Metadata
     return typeKeyFieldName;
   }
 
-  /** @param typeKeyFieldName The typeKeyFieldName to set */
+  /**
+   * @param typeKeyFieldName The typeKeyFieldName to set
+   */
   public void setTypeKeyFieldName(String typeKeyFieldName) {
     this.typeKeyFieldName = typeKeyFieldName;
   }
@@ -146,7 +147,9 @@ public class MetadataInputMeta extends BaseTransformMeta<MetadataInput, Metadata
     return typeNameFieldName;
   }
 
-  /** @param typeNameFieldName The typeNameFieldName to set */
+  /**
+   * @param typeNameFieldName The typeNameFieldName to set
+   */
   public void setTypeNameFieldName(String typeNameFieldName) {
     this.typeNameFieldName = typeNameFieldName;
   }
@@ -160,7 +163,9 @@ public class MetadataInputMeta extends BaseTransformMeta<MetadataInput, Metadata
     return typeDescriptionFieldName;
   }
 
-  /** @param typeDescriptionFieldName The typeDescriptionFieldName to set */
+  /**
+   * @param typeDescriptionFieldName The typeDescriptionFieldName to set
+   */
   public void setTypeDescriptionFieldName(String typeDescriptionFieldName) {
     this.typeDescriptionFieldName = typeDescriptionFieldName;
   }
@@ -174,7 +179,9 @@ public class MetadataInputMeta extends BaseTransformMeta<MetadataInput, Metadata
     return typeClassFieldName;
   }
 
-  /** @param typeClassFieldName The typeClassFieldName to set */
+  /**
+   * @param typeClassFieldName The typeClassFieldName to set
+   */
   public void setTypeClassFieldName(String typeClassFieldName) {
     this.typeClassFieldName = typeClassFieldName;
   }
@@ -188,7 +195,9 @@ public class MetadataInputMeta extends BaseTransformMeta<MetadataInput, Metadata
     return nameFieldName;
   }
 
-  /** @param nameFieldName The nameFieldName to set */
+  /**
+   * @param nameFieldName The nameFieldName to set
+   */
   public void setNameFieldName(String nameFieldName) {
     this.nameFieldName = nameFieldName;
   }
@@ -202,7 +211,9 @@ public class MetadataInputMeta extends BaseTransformMeta<MetadataInput, Metadata
     return jsonFieldName;
   }
 
-  /** @param jsonFieldName The jsonFieldName to set */
+  /**
+   * @param jsonFieldName The jsonFieldName to set
+   */
   public void setJsonFieldName(String jsonFieldName) {
     this.jsonFieldName = jsonFieldName;
   }
@@ -216,7 +227,9 @@ public class MetadataInputMeta extends BaseTransformMeta<MetadataInput, Metadata
     return typeKeyFilters;
   }
 
-  /** @param typeKeyFilters The typeKeyFilters to set */
+  /**
+   * @param typeKeyFilters The typeKeyFilters to set
+   */
   public void setTypeKeyFilters(List<String> typeKeyFilters) {
     this.typeKeyFilters = typeKeyFilters;
   }
diff --git a/plugins/transforms/metainject/src/main/java/org/apache/hop/pipeline/transforms/metainject/MetaInjectMeta.java b/plugins/transforms/metainject/src/main/java/org/apache/hop/pipeline/transforms/metainject/MetaInjectMeta.java
index dac3a3e414..fee0d02447 100644
--- a/plugins/transforms/metainject/src/main/java/org/apache/hop/pipeline/transforms/metainject/MetaInjectMeta.java
+++ b/plugins/transforms/metainject/src/main/java/org/apache/hop/pipeline/transforms/metainject/MetaInjectMeta.java
@@ -39,7 +39,9 @@ import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.ISubPipelineAwareMeta;
 import org.apache.hop.pipeline.PipelineHopMeta;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformMetaChangeListener;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.resource.IResourceNaming;
 import org.apache.hop.resource.ResourceDefinition;
 import org.apache.hop.resource.ResourceEntry;
diff --git a/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructure.java b/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructure.java
index 36edb29a7e..cf66e18f75 100644
--- a/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructure.java
+++ b/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructure.java
@@ -25,7 +25,6 @@ import org.apache.hop.core.row.RowMeta;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Return the structure of the stream */
diff --git a/plugins/transforms/monetdbbulkloader/src/main/java/org/apache/hop/pipeline/transforms/monetdbbulkloader/MonetDbBulkLoader.java b/plugins/transforms/monetdbbulkloader/src/main/java/org/apache/hop/pipeline/transforms/monetdbbulkloader/MonetDbBulkLoader.java
index 8e70866b39..56a4e012c9 100644
--- a/plugins/transforms/monetdbbulkloader/src/main/java/org/apache/hop/pipeline/transforms/monetdbbulkloader/MonetDbBulkLoader.java
+++ b/plugins/transforms/monetdbbulkloader/src/main/java/org/apache/hop/pipeline/transforms/monetdbbulkloader/MonetDbBulkLoader.java
@@ -33,7 +33,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.monetdb.mcl.io.BufferedMCLReader;
 import org.monetdb.mcl.io.BufferedMCLWriter;
diff --git a/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodbinput/MongoDbInput.java b/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodbinput/MongoDbInput.java
index 17612606d6..6de38dadca 100644
--- a/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodbinput/MongoDbInput.java
+++ b/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodbinput/MongoDbInput.java
@@ -17,6 +17,10 @@
 
 package org.apache.hop.pipeline.transforms.mongodbinput;
 
+import com.mongodb.Cursor;
+import com.mongodb.DBObject;
+import com.mongodb.ServerAddress;
+import com.mongodb.util.JSON;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.row.RowDataUtil;
@@ -29,11 +33,8 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.List;
-import com.mongodb.Cursor;
-import com.mongodb.DBObject;
-import com.mongodb.ServerAddress;
-import com.mongodb.util.JSON;
 
 public class MongoDbInput extends BaseTransform<MongoDbInputMeta, MongoDbInputData> {
   private static final Class<?> PKG = MongoDbInputMeta.class; // For i18n - Translator
diff --git a/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodboutput/MongoDbOutputMeta.java b/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodboutput/MongoDbOutputMeta.java
index ee9dd49fff..0ebf58f6a6 100644
--- a/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodboutput/MongoDbOutputMeta.java
+++ b/plugins/transforms/mongodb/src/main/java/org/apache/hop/pipeline/transforms/mongodboutput/MongoDbOutputMeta.java
@@ -34,6 +34,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.mongodb.MongoDbMeta;
 import org.w3c.dom.Node;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/mongodb/src/test/java/org/apache/hop/mongo/wrapper/collection/DefaultMongoCollectionWrapperTest.java b/plugins/transforms/mongodb/src/test/java/org/apache/hop/mongo/wrapper/collection/DefaultMongoCollectionWrapperTest.java
index 7522d45806..088f208f0a 100644
--- a/plugins/transforms/mongodb/src/test/java/org/apache/hop/mongo/wrapper/collection/DefaultMongoCollectionWrapperTest.java
+++ b/plugins/transforms/mongodb/src/test/java/org/apache/hop/mongo/wrapper/collection/DefaultMongoCollectionWrapperTest.java
@@ -30,7 +30,9 @@ import java.util.List;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Matchers.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyList;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.*;
 
 public class DefaultMongoCollectionWrapperTest {
diff --git a/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoin.java b/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoin.java
index 8e37084bbd..55bab64224 100644
--- a/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoin.java
+++ b/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoin.java
@@ -29,7 +29,6 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineHopMeta;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.ITransformIOMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
diff --git a/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoinMeta.java b/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoinMeta.java
index e4d04bd2ed..6cc958b1a4 100644
--- a/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoinMeta.java
+++ b/plugins/transforms/multimerge/src/main/java/org/apache/hop/pipeline/transforms/multimerge/MultiMergeJoinMeta.java
@@ -31,9 +31,10 @@ 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.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
 import org.apache.hop.pipeline.transform.stream.StreamIcon;
@@ -85,12 +86,16 @@ public class MultiMergeJoinMeta extends BaseTransformMeta<MultiMergeJoin, MultiM
     this.joinType = joinType;
   }
 
-  /** @return Returns the keyFields1. */
+  /**
+   * @return Returns the keyFields1.
+   */
   public String[] getKeyFields() {
     return keyFields;
   }
 
-  /** @param keyFields The keyFields1 to set. */
+  /**
+   * @param keyFields The keyFields1 to set.
+   */
   public void setKeyFields(String[] keyFields) {
     this.keyFields = keyFields;
   }
diff --git a/plugins/transforms/normaliser/src/main/java/org/apache/hop/pipeline/transforms/normaliser/NormaliserMeta.java b/plugins/transforms/normaliser/src/main/java/org/apache/hop/pipeline/transforms/normaliser/NormaliserMeta.java
index ffcb4cdffa..fd07a75965 100644
--- a/plugins/transforms/normaliser/src/main/java/org/apache/hop/pipeline/transforms/normaliser/NormaliserMeta.java
+++ b/plugins/transforms/normaliser/src/main/java/org/apache/hop/pipeline/transforms/normaliser/NormaliserMeta.java
@@ -37,6 +37,7 @@ 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;
+
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
diff --git a/plugins/transforms/numberrange/src/main/java/org/apache/hop/pipeline/transforms/numberrange/NumberRange.java b/plugins/transforms/numberrange/src/main/java/org/apache/hop/pipeline/transforms/numberrange/NumberRange.java
index 98fc77cdd5..2211e3bb10 100644
--- a/plugins/transforms/numberrange/src/main/java/org/apache/hop/pipeline/transforms/numberrange/NumberRange.java
+++ b/plugins/transforms/numberrange/src/main/java/org/apache/hop/pipeline/transforms/numberrange/NumberRange.java
@@ -23,7 +23,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Business logic for the NumberRange */
diff --git a/plugins/transforms/pgbulkloader/src/main/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoader.java b/plugins/transforms/pgbulkloader/src/main/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoader.java
index ccdd5bac09..547bdeda44 100644
--- a/plugins/transforms/pgbulkloader/src/main/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoader.java
+++ b/plugins/transforms/pgbulkloader/src/main/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoader.java
@@ -38,7 +38,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.postgresql.PGConnection;
 import org.postgresql.copy.PGCopyOutputStream;
diff --git a/plugins/transforms/pgbulkloader/src/test/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoaderMetaTest.java b/plugins/transforms/pgbulkloader/src/test/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoaderMetaTest.java
index 54b9f988a6..b3abae6ecf 100644
--- a/plugins/transforms/pgbulkloader/src/test/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoaderMetaTest.java
+++ b/plugins/transforms/pgbulkloader/src/test/java/org/apache/hop/pipeline/transforms/pgbulkloader/PGBulkLoaderMetaTest.java
@@ -18,8 +18,6 @@
 package org.apache.hop.pipeline.transforms.pgbulkloader;
 
 import org.apache.hop.core.HopEnvironment;
-import org.apache.hop.core.database.DatabaseMeta;
-import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.plugins.PluginRegistry;
 import org.apache.hop.core.plugins.TransformPluginType;
 import org.apache.hop.core.row.value.ValueMetaPluginType;
@@ -29,13 +27,15 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.engines.local.LocalPipelineEngine;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.loadsave.LoadSaveTester;
-import org.apache.hop.pipeline.transforms.loadsave.validator.*;
+import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidator;
+import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidatorFactory;
+import org.apache.hop.pipeline.transforms.loadsave.validator.ListLoadSaveValidator;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.UUID;
 
 public class PGBulkLoaderMetaTest {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
diff --git a/plugins/transforms/pgp/src/main/java/org/apache/hop/pipeline/transforms/pgpdecryptstream/PGPDecryptStream.java b/plugins/transforms/pgp/src/main/java/org/apache/hop/pipeline/transforms/pgpdecryptstream/PGPDecryptStream.java
index 5d2dce4ba3..238081810c 100644
--- a/plugins/transforms/pgp/src/main/java/org/apache/hop/pipeline/transforms/pgpdecryptstream/PGPDecryptStream.java
+++ b/plugins/transforms/pgp/src/main/java/org/apache/hop/pipeline/transforms/pgpdecryptstream/PGPDecryptStream.java
@@ -25,7 +25,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.workflow.actions.pgpencryptfiles.GPG;
 
diff --git a/plugins/transforms/pipelineexecutor/src/main/java/org/apache/hop/pipeline/transforms/pipelineexecutor/PipelineExecutor.java b/plugins/transforms/pipelineexecutor/src/main/java/org/apache/hop/pipeline/transforms/pipelineexecutor/PipelineExecutor.java
index 55447363fe..825629fbbc 100644
--- a/plugins/transforms/pipelineexecutor/src/main/java/org/apache/hop/pipeline/transforms/pipelineexecutor/PipelineExecutor.java
+++ b/plugins/transforms/pipelineexecutor/src/main/java/org/apache/hop/pipeline/transforms/pipelineexecutor/PipelineExecutor.java
@@ -17,11 +17,8 @@
 
 package org.apache.hop.pipeline.transforms.pipelineexecutor;
 
-import org.apache.hop.core.Const;
-import org.apache.hop.core.IRowSet;
-import org.apache.hop.core.Result;
-import org.apache.hop.core.ResultFile;
-import org.apache.hop.core.RowMetaAndData;
+import com.google.common.annotations.VisibleForTesting;
+import org.apache.hop.core.*;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.logging.HopLogStore;
 import org.apache.hop.core.logging.LoggingRegistry;
@@ -37,13 +34,8 @@ import org.apache.hop.pipeline.engine.IPipelineEngine;
 import org.apache.hop.pipeline.engine.PipelineEngineFactory;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import com.google.common.annotations.VisibleForTesting;
+
+import java.util.*;
 
 /** Execute a pipeline for every input row, set parameters. */
 public class PipelineExecutor extends BaseTransform<PipelineExecutorMeta, PipelineExecutorData> {
diff --git a/plugins/transforms/pipelineexecutor/src/main/java/org/apache/hop/pipeline/transforms/pipelineexecutor/PipelineExecutorMeta.java b/plugins/transforms/pipelineexecutor/src/main/java/org/apache/hop/pipeline/transforms/pipelineexecutor/PipelineExecutorMeta.java
index 54288757cc..5c47da072a 100644
--- a/plugins/transforms/pipelineexecutor/src/main/java/org/apache/hop/pipeline/transforms/pipelineexecutor/PipelineExecutorMeta.java
+++ b/plugins/transforms/pipelineexecutor/src/main/java/org/apache/hop/pipeline/transforms/pipelineexecutor/PipelineExecutorMeta.java
@@ -39,7 +39,9 @@ import org.apache.hop.pipeline.ISubPipelineAwareMeta;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.PipelineMeta.PipelineType;
 import org.apache.hop.pipeline.TransformWithMappingMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/processfiles/src/main/java/org/apache/hop/pipeline/transforms/processfiles/ProcessFiles.java b/plugins/transforms/processfiles/src/main/java/org/apache/hop/pipeline/transforms/processfiles/ProcessFiles.java
index beede5ae76..7c028fcde5 100644
--- a/plugins/transforms/processfiles/src/main/java/org/apache/hop/pipeline/transforms/processfiles/ProcessFiles.java
+++ b/plugins/transforms/processfiles/src/main/java/org/apache/hop/pipeline/transforms/processfiles/ProcessFiles.java
@@ -29,7 +29,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 public class ProcessFiles extends BaseTransform<ProcessFilesMeta, ProcessFilesData> {
diff --git a/plugins/transforms/processfiles/src/main/java/org/apache/hop/pipeline/transforms/processfiles/ProcessFilesMeta.java b/plugins/transforms/processfiles/src/main/java/org/apache/hop/pipeline/transforms/processfiles/ProcessFilesMeta.java
index 3e1c8aaf9f..4a841f77ae 100644
--- a/plugins/transforms/processfiles/src/main/java/org/apache/hop/pipeline/transforms/processfiles/ProcessFilesMeta.java
+++ b/plugins/transforms/processfiles/src/main/java/org/apache/hop/pipeline/transforms/processfiles/ProcessFilesMeta.java
@@ -29,6 +29,7 @@ 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 java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/propertyinput/src/main/java/org/apache/hop/pipeline/transforms/propertyinput/PropertyInput.java b/plugins/transforms/propertyinput/src/main/java/org/apache/hop/pipeline/transforms/propertyinput/PropertyInput.java
index d754d8a7c0..6620fd27eb 100644
--- a/plugins/transforms/propertyinput/src/main/java/org/apache/hop/pipeline/transforms/propertyinput/PropertyInput.java
+++ b/plugins/transforms/propertyinput/src/main/java/org/apache/hop/pipeline/transforms/propertyinput/PropertyInput.java
@@ -32,7 +32,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.ini4j.Wini;
 
diff --git a/plugins/transforms/regexeval/src/main/java/org/apache/hop/pipeline/transforms/regexeval/RegexEval.java b/plugins/transforms/regexeval/src/main/java/org/apache/hop/pipeline/transforms/regexeval/RegexEval.java
index 8cc7917055..cd76a16e6f 100644
--- a/plugins/transforms/regexeval/src/main/java/org/apache/hop/pipeline/transforms/regexeval/RegexEval.java
+++ b/plugins/transforms/regexeval/src/main/java/org/apache/hop/pipeline/transforms/regexeval/RegexEval.java
@@ -26,7 +26,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.regex.Matcher;
diff --git a/plugins/transforms/regexeval/src/test/java/org/apache/hop/pipeline/transforms/regexeval/RegexEvalMetaTest.java b/plugins/transforms/regexeval/src/test/java/org/apache/hop/pipeline/transforms/regexeval/RegexEvalMetaTest.java
index cc654ac8f5..2777c99c19 100644
--- a/plugins/transforms/regexeval/src/test/java/org/apache/hop/pipeline/transforms/regexeval/RegexEvalMetaTest.java
+++ b/plugins/transforms/regexeval/src/test/java/org/apache/hop/pipeline/transforms/regexeval/RegexEvalMetaTest.java
@@ -37,7 +37,10 @@ import org.junit.ClassRule;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Matchers.eq;
diff --git a/plugins/transforms/regexeval/src/test/java/org/apache/hop/pipeline/transforms/regexeval/RegexEval_EmptyStringVsNull_Test.java b/plugins/transforms/regexeval/src/test/java/org/apache/hop/pipeline/transforms/regexeval/RegexEval_EmptyStringVsNull_Test.java
index bd77ffbe57..f4c3a3fad8 100644
--- a/plugins/transforms/regexeval/src/test/java/org/apache/hop/pipeline/transforms/regexeval/RegexEval_EmptyStringVsNull_Test.java
+++ b/plugins/transforms/regexeval/src/test/java/org/apache/hop/pipeline/transforms/regexeval/RegexEval_EmptyStringVsNull_Test.java
@@ -27,8 +27,6 @@ import org.apache.hop.pipeline.PipelineTestingUtil;
 import org.apache.hop.pipeline.transform.ITransformData;
 import org.apache.hop.pipeline.transforms.mock.TransformMockHelper;
 import org.junit.*;
-import org.junit.runner.RunWith;
-import org.powermock.modules.junit4.PowerMockRunner;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/plugins/transforms/replacestring/src/main/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceString.java b/plugins/transforms/replacestring/src/main/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceString.java
index 9e4e95a86c..8f4f7cb931 100644
--- a/plugins/transforms/replacestring/src/main/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceString.java
+++ b/plugins/transforms/replacestring/src/main/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceString.java
@@ -29,7 +29,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.HashSet;
diff --git a/plugins/transforms/replacestring/src/test/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceStringTest.java b/plugins/transforms/replacestring/src/test/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceStringTest.java
index 65bd2d9975..2718dc5ae4 100644
--- a/plugins/transforms/replacestring/src/test/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceStringTest.java
+++ b/plugins/transforms/replacestring/src/test/java/org/apache/hop/pipeline/transforms/replacestring/ReplaceStringTest.java
@@ -33,7 +33,9 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import static org.junit.Assert.assertArrayEquals;
-import static org.mockito.Matchers.*;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.*;
 
 /** User: Dzmitry Stsiapanau Date: 1/31/14 Time: 11:19 AM */
diff --git a/plugins/transforms/reservoirsampling/src/main/java/org/apache/hop/pipeline/transforms/reservoirsampling/ReservoirSampling.java b/plugins/transforms/reservoirsampling/src/main/java/org/apache/hop/pipeline/transforms/reservoirsampling/ReservoirSampling.java
index a9369d0f47..f28bd1bf9e 100644
--- a/plugins/transforms/reservoirsampling/src/main/java/org/apache/hop/pipeline/transforms/reservoirsampling/ReservoirSampling.java
+++ b/plugins/transforms/reservoirsampling/src/main/java/org/apache/hop/pipeline/transforms/reservoirsampling/ReservoirSampling.java
@@ -22,7 +22,6 @@ import org.apache.hop.core.exception.HopException;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.reservoirsampling.ReservoirSamplingData.PROC_MODE;
 
diff --git a/plugins/transforms/rowgenerator/src/main/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGenerator.java b/plugins/transforms/rowgenerator/src/main/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGenerator.java
index 29b06f5ec3..8f46c3a28c 100644
--- a/plugins/transforms/rowgenerator/src/main/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGenerator.java
+++ b/plugins/transforms/rowgenerator/src/main/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGenerator.java
@@ -38,6 +38,7 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
diff --git a/plugins/transforms/rowgenerator/src/main/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGeneratorMeta.java b/plugins/transforms/rowgenerator/src/main/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGeneratorMeta.java
index 8b9ae2b7a7..7360c90687 100644
--- a/plugins/transforms/rowgenerator/src/main/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGeneratorMeta.java
+++ b/plugins/transforms/rowgenerator/src/main/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGeneratorMeta.java
@@ -30,7 +30,10 @@ 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.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/plugins/transforms/rowgenerator/src/test/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGeneratorUnitTest.java b/plugins/transforms/rowgenerator/src/test/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGeneratorUnitTest.java
index 24e8a0f623..28eea09eb2 100644
--- a/plugins/transforms/rowgenerator/src/test/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGeneratorUnitTest.java
+++ b/plugins/transforms/rowgenerator/src/test/java/org/apache/hop/pipeline/transforms/rowgenerator/RowGeneratorUnitTest.java
@@ -17,20 +17,17 @@
 
 package org.apache.hop.pipeline.transforms.rowgenerator;
 
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.when;
 import org.apache.hop.core.HopEnvironment;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.logging.ILoggingObject;
 import org.apache.hop.core.variables.Variables;
 import org.apache.hop.junit.rules.RestoreHopEngineEnvironment;
 import org.apache.hop.pipeline.transforms.mock.TransformMockHelper;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.*;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.when;
 
 public class RowGeneratorUnitTest {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
diff --git a/plugins/transforms/rowsfromresult/src/test/java/org/apache/hop/pipeline/transforms/rowsfromresult/RowsFromResultMetaTest.java b/plugins/transforms/rowsfromresult/src/test/java/org/apache/hop/pipeline/transforms/rowsfromresult/RowsFromResultMetaTest.java
index 2dc03038f4..3d514abe91 100644
--- a/plugins/transforms/rowsfromresult/src/test/java/org/apache/hop/pipeline/transforms/rowsfromresult/RowsFromResultMetaTest.java
+++ b/plugins/transforms/rowsfromresult/src/test/java/org/apache/hop/pipeline/transforms/rowsfromresult/RowsFromResultMetaTest.java
@@ -28,7 +28,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class RowsFromResultMetaTest implements IInitializer<ITransformMeta> {
   LoadSaveTester loadSaveTester;
diff --git a/plugins/transforms/rowstoresult/src/main/java/org/apache/hop/pipeline/transforms/rowstoresult/RowsToResultMeta.java b/plugins/transforms/rowstoresult/src/main/java/org/apache/hop/pipeline/transforms/rowstoresult/RowsToResultMeta.java
index e91f8b1046..825c2b0e69 100644
--- a/plugins/transforms/rowstoresult/src/main/java/org/apache/hop/pipeline/transforms/rowstoresult/RowsToResultMeta.java
+++ b/plugins/transforms/rowstoresult/src/main/java/org/apache/hop/pipeline/transforms/rowstoresult/RowsToResultMeta.java
@@ -30,6 +30,7 @@ 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;
+
 import java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransform.java b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransform.java
index 28b91397d4..7bbd20bc22 100644
--- a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransform.java
+++ b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransform.java
@@ -17,6 +17,7 @@
 
 package org.apache.hop.pipeline.transforms.salesforce;
 
+import com.google.common.primitives.Ints;
 import org.apache.hop.core.Const;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.exception.HopValueException;
@@ -27,9 +28,9 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.Calendar;
 import java.util.TimeZone;
-import com.google.common.primitives.Ints;
 
 public abstract class SalesforceTransform<Meta extends SalesforceTransformMeta, Data extends SalesforceTransformData> extends BaseTransform<Meta, Data> {
 
diff --git a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransformMeta.java b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransformMeta.java
index 639a7f7900..7e23b543bc 100644
--- a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransformMeta.java
+++ b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforce/SalesforceTransformMeta.java
@@ -32,6 +32,7 @@ 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;
+
 import java.util.List;
 
 public abstract class SalesforceTransformMeta<Main extends SalesforceTransform, Data extends SalesforceTransformData>
diff --git a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinsert/SalesforceInsertMeta.java b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinsert/SalesforceInsertMeta.java
index 1275be9a69..8832a581c3 100644
--- a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinsert/SalesforceInsertMeta.java
+++ b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceinsert/SalesforceInsertMeta.java
@@ -35,6 +35,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.salesforce.SalesforceTransformMeta;
 import org.w3c.dom.Node;
+
 import java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateMeta.java b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateMeta.java
index 5b4484d559..dc6a0f0489 100644
--- a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateMeta.java
+++ b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupdate/SalesforceUpdateMeta.java
@@ -32,6 +32,7 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.salesforce.SalesforceTransformMeta;
 import org.w3c.dom.Node;
+
 import java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertMeta.java b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertMeta.java
index 132b74dbcb..10478c369c 100644
--- a/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertMeta.java
+++ b/plugins/transforms/salesforce/src/main/java/org/apache/hop/pipeline/transforms/salesforceupsert/SalesforceUpsertMeta.java
@@ -31,9 +31,7 @@ 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.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.salesforce.SalesforceTransformMeta;
 import org.w3c.dom.Node;
diff --git a/plugins/transforms/sasinput/src/main/java/org/apache/hop/pipeline/transforms/sasinput/SasInput.java b/plugins/transforms/sasinput/src/main/java/org/apache/hop/pipeline/transforms/sasinput/SasInput.java
index 97a32b8617..fb5c8e2d49 100644
--- a/plugins/transforms/sasinput/src/main/java/org/apache/hop/pipeline/transforms/sasinput/SasInput.java
+++ b/plugins/transforms/sasinput/src/main/java/org/apache/hop/pipeline/transforms/sasinput/SasInput.java
@@ -36,7 +36,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.InputStream;
diff --git a/plugins/transforms/sasinput/src/main/java/org/apache/hop/pipeline/transforms/sasinput/SasInputMeta.java b/plugins/transforms/sasinput/src/main/java/org/apache/hop/pipeline/transforms/sasinput/SasInputMeta.java
index b70c8d43d8..79c3c2baa4 100644
--- a/plugins/transforms/sasinput/src/main/java/org/apache/hop/pipeline/transforms/sasinput/SasInputMeta.java
+++ b/plugins/transforms/sasinput/src/main/java/org/apache/hop/pipeline/transforms/sasinput/SasInputMeta.java
@@ -34,6 +34,7 @@ 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;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/selectvalues/src/main/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesMeta.java b/plugins/transforms/selectvalues/src/main/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesMeta.java
index e2a424f714..ced2e6667f 100644
--- a/plugins/transforms/selectvalues/src/main/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesMeta.java
+++ b/plugins/transforms/selectvalues/src/main/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesMeta.java
@@ -31,7 +31,6 @@ import org.apache.hop.core.injection.InjectionSupported;
 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.EnvUtil;
 import org.apache.hop.core.util.Utils;
@@ -40,11 +39,8 @@ import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.lineage.FieldnameLineage;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransform;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.w3c.dom.Node;
 
diff --git a/plugins/transforms/selectvalues/src/test/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesTest.java b/plugins/transforms/selectvalues/src/test/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesTest.java
index 2e1a86e1b6..bb2d9383e6 100644
--- a/plugins/transforms/selectvalues/src/test/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesTest.java
+++ b/plugins/transforms/selectvalues/src/test/java/org/apache/hop/pipeline/transforms/selectvalues/SelectValuesTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.hop.pipeline.transforms.selectvalues;
 
-import org.apache.hop.core.Const;
 import org.apache.hop.core.HopEnvironment;
 import org.apache.hop.core.IRowSet;
 import org.apache.hop.core.exception.HopConversionException;
diff --git a/plugins/transforms/serverstatus/src/main/java/org/apache/hop/pipeline/transforms/serverstatus/GetServerStatusMeta.java b/plugins/transforms/serverstatus/src/main/java/org/apache/hop/pipeline/transforms/serverstatus/GetServerStatusMeta.java
index 1b16efb298..7e6b660b46 100644
--- a/plugins/transforms/serverstatus/src/main/java/org/apache/hop/pipeline/transforms/serverstatus/GetServerStatusMeta.java
+++ b/plugins/transforms/serverstatus/src/main/java/org/apache/hop/pipeline/transforms/serverstatus/GetServerStatusMeta.java
@@ -28,10 +28,7 @@ import org.apache.hop.core.row.value.ValueMetaString;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
-import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 @Transform(
diff --git a/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueField.java b/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueField.java
index 1e1ecff7fd..f395a18f0f 100644
--- a/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueField.java
+++ b/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueField.java
@@ -26,6 +26,7 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.util.List;
 
 /** Set value field with another value field. */
diff --git a/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldDialog.java b/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldDialog.java
index 9f58189498..ef0a3e984b 100644
--- a/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldDialog.java
+++ b/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldDialog.java
@@ -38,11 +38,9 @@ import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
 import org.eclipse.swt.layout.FormLayout;
 import org.eclipse.swt.widgets.*;
-import java.util.ArrayList;
-import java.util.HashMap;
+
 import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 public class SetValueFieldDialog extends BaseTransformDialog implements ITransformDialog {
   private static final Class<?> PKG = SetValueFieldMeta.class; // For Translator
diff --git a/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldMeta.java b/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldMeta.java
index 9d441f396e..83c90a9689 100644
--- a/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldMeta.java
+++ b/plugins/transforms/setvaluefield/src/main/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldMeta.java
@@ -23,14 +23,13 @@ import org.apache.hop.core.annotations.Transform;
 import org.apache.hop.core.row.IRowMeta;
 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;
+
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/setvaluefield/src/test/java/org/apache/hop/pipeline/transforms/setvaluefield/SetFieldLoadSaveValidator.java b/plugins/transforms/setvaluefield/src/test/java/org/apache/hop/pipeline/transforms/setvaluefield/SetFieldLoadSaveValidator.java
index 99341a4164..b6ac3fe6d4 100644
--- a/plugins/transforms/setvaluefield/src/test/java/org/apache/hop/pipeline/transforms/setvaluefield/SetFieldLoadSaveValidator.java
+++ b/plugins/transforms/setvaluefield/src/test/java/org/apache/hop/pipeline/transforms/setvaluefield/SetFieldLoadSaveValidator.java
@@ -18,6 +18,7 @@ package org.apache.hop.pipeline.transforms.setvaluefield;
 
 import org.apache.commons.lang.builder.EqualsBuilder;
 import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidator;
+
 import java.util.Random;
 import java.util.UUID;
 
diff --git a/plugins/transforms/setvaluefield/src/test/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldMetaTest.java b/plugins/transforms/setvaluefield/src/test/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldMetaTest.java
index e97f20dc2a..0c1b7707a6 100644
--- a/plugins/transforms/setvaluefield/src/test/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldMetaTest.java
+++ b/plugins/transforms/setvaluefield/src/test/java/org/apache/hop/pipeline/transforms/setvaluefield/SetValueFieldMetaTest.java
@@ -23,15 +23,16 @@ import org.apache.hop.core.plugins.PluginRegistry;
 import org.apache.hop.junit.rules.RestoreHopEngineEnvironment;
 import org.apache.hop.pipeline.transforms.loadsave.LoadSaveTester;
 import org.apache.hop.pipeline.transforms.loadsave.initializer.IInitializer;
-import org.apache.hop.pipeline.transforms.loadsave.validator.ArrayLoadSaveValidator;
 import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidator;
 import org.apache.hop.pipeline.transforms.loadsave.validator.ListLoadSaveValidator;
-import org.apache.hop.pipeline.transforms.loadsave.validator.StringLoadSaveValidator;
 import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class SetValueFieldMetaTest implements IInitializer<SetValueFieldMeta> {
   LoadSaveTester<SetValueFieldMeta> loadSaveTester;
diff --git a/plugins/transforms/splitfieldtorows/src/main/java/org/apache/hop/pipeline/transforms/splitfieldtorows/SplitFieldToRows.java b/plugins/transforms/splitfieldtorows/src/main/java/org/apache/hop/pipeline/transforms/splitfieldtorows/SplitFieldToRows.java
index 37f69656eb..30fc23c66c 100644
--- a/plugins/transforms/splitfieldtorows/src/main/java/org/apache/hop/pipeline/transforms/splitfieldtorows/SplitFieldToRows.java
+++ b/plugins/transforms/splitfieldtorows/src/main/java/org/apache/hop/pipeline/transforms/splitfieldtorows/SplitFieldToRows.java
@@ -26,7 +26,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.regex.Pattern;
diff --git a/plugins/transforms/splunk/src/main/java/org/apache/hop/pipeline/transforms/splunkinput/SplunkInput.java b/plugins/transforms/splunk/src/main/java/org/apache/hop/pipeline/transforms/splunkinput/SplunkInput.java
index d904d9065b..9aa15830df 100644
--- a/plugins/transforms/splunk/src/main/java/org/apache/hop/pipeline/transforms/splunkinput/SplunkInput.java
+++ b/plugins/transforms/splunk/src/main/java/org/apache/hop/pipeline/transforms/splunkinput/SplunkInput.java
@@ -29,7 +29,6 @@ import org.apache.hop.metadata.api.IHopMetadataSerializer;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.splunk.SplunkConnection;
 
diff --git a/plugins/transforms/splunk/src/main/java/org/apache/hop/pipeline/transforms/splunkinput/SplunkInputMeta.java b/plugins/transforms/splunk/src/main/java/org/apache/hop/pipeline/transforms/splunkinput/SplunkInputMeta.java
index 434c807ce8..92d2e8e222 100644
--- a/plugins/transforms/splunk/src/main/java/org/apache/hop/pipeline/transforms/splunkinput/SplunkInputMeta.java
+++ b/plugins/transforms/splunk/src/main/java/org/apache/hop/pipeline/transforms/splunkinput/SplunkInputMeta.java
@@ -32,11 +32,7 @@ import org.apache.hop.core.row.value.ValueMetaFactory;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
-import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransform;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.w3c.dom.Node;
 
diff --git a/plugins/transforms/sql/src/main/java/org/apache/hop/pipeline/transforms/sql/ExecSql.java b/plugins/transforms/sql/src/main/java/org/apache/hop/pipeline/transforms/sql/ExecSql.java
index a78312edb2..679c1831dd 100644
--- a/plugins/transforms/sql/src/main/java/org/apache/hop/pipeline/transforms/sql/ExecSql.java
+++ b/plugins/transforms/sql/src/main/java/org/apache/hop/pipeline/transforms/sql/ExecSql.java
@@ -32,7 +32,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.ArrayList;
diff --git a/plugins/transforms/sql/src/test/java/org/apache/hop/pipeline/transforms/sql/ExecSqlMetaTest.java b/plugins/transforms/sql/src/test/java/org/apache/hop/pipeline/transforms/sql/ExecSqlMetaTest.java
index 8df91eee52..a46ee4e501 100644
--- a/plugins/transforms/sql/src/test/java/org/apache/hop/pipeline/transforms/sql/ExecSqlMetaTest.java
+++ b/plugins/transforms/sql/src/test/java/org/apache/hop/pipeline/transforms/sql/ExecSqlMetaTest.java
@@ -24,7 +24,10 @@ import org.apache.hop.junit.rules.RestoreHopEngineEnvironment;
 import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transforms.loadsave.LoadSaveTester;
 import org.apache.hop.pipeline.transforms.loadsave.initializer.IInitializer;
-import org.apache.hop.pipeline.transforms.loadsave.validator.*;
+import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidator;
+import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidatorFactory;
+import org.apache.hop.pipeline.transforms.loadsave.validator.ListLoadSaveValidator;
+import org.apache.hop.pipeline.transforms.loadsave.validator.ObjectValidator;
 import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
diff --git a/plugins/transforms/sqlfileoutput/src/main/java/org/apache/hop/pipeline/transforms/sqlfileoutput/SQLFileOutput.java b/plugins/transforms/sqlfileoutput/src/main/java/org/apache/hop/pipeline/transforms/sqlfileoutput/SQLFileOutput.java
index 319990792c..c24e3dc3ee 100644
--- a/plugins/transforms/sqlfileoutput/src/main/java/org/apache/hop/pipeline/transforms/sqlfileoutput/SQLFileOutput.java
+++ b/plugins/transforms/sqlfileoutput/src/main/java/org/apache/hop/pipeline/transforms/sqlfileoutput/SQLFileOutput.java
@@ -29,7 +29,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.BufferedOutputStream;
diff --git a/plugins/transforms/ssh/src/main/java/org/apache/hop/pipeline/transforms/ssh/SshMeta.java b/plugins/transforms/ssh/src/main/java/org/apache/hop/pipeline/transforms/ssh/SshMeta.java
index bfa1c8732a..cfcb6d46f4 100644
--- a/plugins/transforms/ssh/src/main/java/org/apache/hop/pipeline/transforms/ssh/SshMeta.java
+++ b/plugins/transforms/ssh/src/main/java/org/apache/hop/pipeline/transforms/ssh/SshMeta.java
@@ -32,7 +32,8 @@ 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.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.List;
 
diff --git a/plugins/transforms/ssh/src/test/java/org/apache/hop/pipeline/transforms/ssh/SshMetaTest.java b/plugins/transforms/ssh/src/test/java/org/apache/hop/pipeline/transforms/ssh/SshMetaTest.java
index b0e21a5ba1..f87540f011 100644
--- a/plugins/transforms/ssh/src/test/java/org/apache/hop/pipeline/transforms/ssh/SshMetaTest.java
+++ b/plugins/transforms/ssh/src/test/java/org/apache/hop/pipeline/transforms/ssh/SshMetaTest.java
@@ -21,7 +21,6 @@ import org.apache.hop.core.Const;
 import org.apache.hop.core.encryption.Encr;
 import org.apache.hop.core.encryption.TwoWayPasswordEncoderPluginType;
 import org.apache.hop.core.exception.HopException;
-import org.apache.hop.core.exception.HopXmlException;
 import org.apache.hop.core.plugins.PluginRegistry;
 import org.apache.hop.core.util.EnvUtil;
 import org.apache.hop.core.xml.XmlHandler;
diff --git a/plugins/transforms/standardizephonenumber/src/main/java/org/apache/hop/pipeline/transforms/standardizephonenumber/StandardizePhoneNumberMeta.java b/plugins/transforms/standardizephonenumber/src/main/java/org/apache/hop/pipeline/transforms/standardizephonenumber/StandardizePhoneNumberMeta.java
index 33cccf86ce..0504788a70 100644
--- a/plugins/transforms/standardizephonenumber/src/main/java/org/apache/hop/pipeline/transforms/standardizephonenumber/StandardizePhoneNumberMeta.java
+++ b/plugins/transforms/standardizephonenumber/src/main/java/org/apache/hop/pipeline/transforms/standardizephonenumber/StandardizePhoneNumberMeta.java
@@ -32,11 +32,8 @@ import org.apache.hop.core.variables.IVariables;
 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.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransform;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.Serializable;
diff --git a/plugins/transforms/standardizephonenumber/src/main/resources/standardizephonenumber.svg b/plugins/transforms/standardizephonenumber/src/main/resources/standardizephonenumber.svg
index 8b6e727204..c298b4aba1 100644
--- a/plugins/transforms/standardizephonenumber/src/main/resources/standardizephonenumber.svg
+++ b/plugins/transforms/standardizephonenumber/src/main/resources/standardizephonenumber.svg
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- Generator: Adobe Illustrator 14.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 43363)  -->
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
+     width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
 <path id="path5_1_" fill="#3D6480" d="M13.4,1.256c-6.526,0-11.836,5.636-11.836,12.564S6.874,26.383,13.4,26.383
 	c0.403,0,0.729-0.348,0.729-0.773c0-0.428-0.326-0.774-0.729-0.774c-5.723,0-10.377-4.94-10.377-11.014S7.678,2.806,13.4,2.806
 	s10.377,4.941,10.377,11.015c0,2.538-1.273,5.055-3.094,6.121c-0.662,0.385-1.381,0.578-2.146,0.584
diff --git a/plugins/transforms/streamlookup/src/main/java/org/apache/hop/pipeline/transforms/streamlookup/StreamLookupMeta.java b/plugins/transforms/streamlookup/src/main/java/org/apache/hop/pipeline/transforms/streamlookup/StreamLookupMeta.java
index 2014c22a80..8dce4527c0 100644
--- a/plugins/transforms/streamlookup/src/main/java/org/apache/hop/pipeline/transforms/streamlookup/StreamLookupMeta.java
+++ b/plugins/transforms/streamlookup/src/main/java/org/apache/hop/pipeline/transforms/streamlookup/StreamLookupMeta.java
@@ -33,9 +33,11 @@ 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.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/streamschemamerge/src/main/java/org/apache/hop/pipeline/transforms/streamschemamerge/StreamSchema.java b/plugins/transforms/streamschemamerge/src/main/java/org/apache/hop/pipeline/transforms/streamschemamerge/StreamSchema.java
index 8de3b24418..658eb6f285 100644
--- a/plugins/transforms/streamschemamerge/src/main/java/org/apache/hop/pipeline/transforms/streamschemamerge/StreamSchema.java
+++ b/plugins/transforms/streamschemamerge/src/main/java/org/apache/hop/pipeline/transforms/streamschemamerge/StreamSchema.java
@@ -24,7 +24,6 @@ import org.apache.hop.core.row.RowDataUtil;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 
diff --git a/plugins/transforms/stringcut/src/main/java/org/apache/hop/pipeline/transforms/stringcut/StringCut.java b/plugins/transforms/stringcut/src/main/java/org/apache/hop/pipeline/transforms/stringcut/StringCut.java
index 19ce762b4e..30c190ef57 100644
--- a/plugins/transforms/stringcut/src/main/java/org/apache/hop/pipeline/transforms/stringcut/StringCut.java
+++ b/plugins/transforms/stringcut/src/main/java/org/apache/hop/pipeline/transforms/stringcut/StringCut.java
@@ -28,7 +28,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 /** Cut strings. */
diff --git a/plugins/transforms/stringoperations/src/test/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperationsMetaTest.java b/plugins/transforms/stringoperations/src/test/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperationsMetaTest.java
index 004d14ce51..2957e0baa8 100644
--- a/plugins/transforms/stringoperations/src/test/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperationsMetaTest.java
+++ b/plugins/transforms/stringoperations/src/test/java/org/apache/hop/pipeline/transforms/stringoperations/StringOperationsMetaTest.java
@@ -34,7 +34,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.mock;
diff --git a/plugins/transforms/switchcase/src/main/java/org/apache/hop/pipeline/transforms/switchcase/SwitchCaseMeta.java b/plugins/transforms/switchcase/src/main/java/org/apache/hop/pipeline/transforms/switchcase/SwitchCaseMeta.java
index 289812b94f..f2de559c16 100644
--- a/plugins/transforms/switchcase/src/main/java/org/apache/hop/pipeline/transforms/switchcase/SwitchCaseMeta.java
+++ b/plugins/transforms/switchcase/src/main/java/org/apache/hop/pipeline/transforms/switchcase/SwitchCaseMeta.java
@@ -30,7 +30,10 @@ 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.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/synchronizeaftermerge/src/test/java/org/apache/hop/pipeline/transforms/synchronizeaftermerge/SynchronizeAfterMergeMetaTest.java b/plugins/transforms/synchronizeaftermerge/src/test/java/org/apache/hop/pipeline/transforms/synchronizeaftermerge/SynchronizeAfterMergeMetaTest.java
index 675f73000f..6471d9f60e 100644
--- a/plugins/transforms/synchronizeaftermerge/src/test/java/org/apache/hop/pipeline/transforms/synchronizeaftermerge/SynchronizeAfterMergeMetaTest.java
+++ b/plugins/transforms/synchronizeaftermerge/src/test/java/org/apache/hop/pipeline/transforms/synchronizeaftermerge/SynchronizeAfterMergeMetaTest.java
@@ -31,7 +31,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class SynchronizeAfterMergeMetaTest implements IInitializer<ITransform> {
   LoadSaveTester loadSaveTester;
diff --git a/plugins/transforms/systemdata/src/main/java/org/apache/hop/pipeline/transforms/systemdata/SystemData.java b/plugins/transforms/systemdata/src/main/java/org/apache/hop/pipeline/transforms/systemdata/SystemData.java
index fbce32b6e9..041aaf4afa 100644
--- a/plugins/transforms/systemdata/src/main/java/org/apache/hop/pipeline/transforms/systemdata/SystemData.java
+++ b/plugins/transforms/systemdata/src/main/java/org/apache/hop/pipeline/transforms/systemdata/SystemData.java
@@ -25,7 +25,6 @@ import org.apache.hop.core.row.RowMeta;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.Calendar;
diff --git a/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompare.java b/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompare.java
index bfb8fb0fa1..f9b95a61f6 100644
--- a/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompare.java
+++ b/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompare.java
@@ -30,7 +30,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.sql.ResultSet;
diff --git a/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompareDialog.java b/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompareDialog.java
index bd5892231c..0bfc4de2ad 100644
--- a/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompareDialog.java
+++ b/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompareDialog.java
@@ -40,7 +40,6 @@ import org.eclipse.swt.custom.ScrolledComposite;
 import org.eclipse.swt.events.ModifyListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
 import org.eclipse.swt.layout.FormLayout;
diff --git a/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompareMeta.java b/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompareMeta.java
index a8b2f184d6..3287d36f0f 100644
--- a/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompareMeta.java
+++ b/plugins/transforms/tablecompare/src/main/java/org/apache/hop/pipeline/transforms/tablecompare/TableCompareMeta.java
@@ -20,22 +20,19 @@ package org.apache.hop.pipeline.transforms.tablecompare;
 import org.apache.hop.core.CheckResult;
 import org.apache.hop.core.ICheckResult;
 import org.apache.hop.core.annotations.Transform;
-import org.apache.hop.core.database.DatabaseMeta;
 import org.apache.hop.core.exception.HopTransformException;
-import org.apache.hop.core.exception.HopXmlException;
 import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.core.row.value.ValueMetaInteger;
 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;
+
 import java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/tableinput/src/main/java/org/apache/hop/pipeline/transforms/tableinput/TableInputMeta.java b/plugins/transforms/tableinput/src/main/java/org/apache/hop/pipeline/transforms/tableinput/TableInputMeta.java
index 26f5f80eaa..8922c5a9e9 100644
--- a/plugins/transforms/tableinput/src/main/java/org/apache/hop/pipeline/transforms/tableinput/TableInputMeta.java
+++ b/plugins/transforms/tableinput/src/main/java/org/apache/hop/pipeline/transforms/tableinput/TableInputMeta.java
@@ -38,7 +38,10 @@ import org.apache.hop.metadata.api.HopMetadataProperty;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.DatabaseImpact;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutput.java b/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutput.java
index 3b600be9ac..d113717c4d 100644
--- a/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutput.java
+++ b/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutput.java
@@ -35,6 +35,7 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
+
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 import java.text.SimpleDateFormat;
diff --git a/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputMeta.java b/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputMeta.java
index af9b3e5085..660fccc684 100644
--- a/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputMeta.java
+++ b/plugins/transforms/tableoutput/src/main/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputMeta.java
@@ -34,9 +34,10 @@ 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.DatabaseImpact;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformData;
+import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/plugins/transforms/tableoutput/src/test/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputMetaTest.java b/plugins/transforms/tableoutput/src/test/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputMetaTest.java
index 4d8dac945f..c26bb88707 100644
--- a/plugins/transforms/tableoutput/src/test/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputMetaTest.java
+++ b/plugins/transforms/tableoutput/src/test/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputMetaTest.java
@@ -21,23 +21,22 @@ import org.apache.commons.lang.builder.EqualsBuilder;
 import org.apache.hop.core.HopEnvironment;
 import org.apache.hop.core.database.DatabaseMeta;
 import org.apache.hop.core.database.IDatabase;
-import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.plugins.PluginRegistry;
 import org.apache.hop.core.row.RowMeta;
 import org.apache.hop.core.row.value.ValueMetaFactory;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.metadata.serializer.memory.MemoryMetadataProvider;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transforms.loadsave.LoadSaveTester;
-import org.apache.hop.pipeline.transforms.loadsave.initializer.IInitializer;
 import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidator;
 import org.apache.hop.pipeline.transforms.loadsave.validator.IFieldLoadSaveValidatorFactory;
 import org.apache.hop.pipeline.transforms.loadsave.validator.ListLoadSaveValidator;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.List;
+import java.util.Random;
+import java.util.UUID;
 
 import static org.junit.Assert.*;
 import static org.mockito.Mockito.*;
diff --git a/plugins/transforms/tableoutput/src/test/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputTest.java b/plugins/transforms/tableoutput/src/test/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputTest.java
index 78a79f6eef..e6276611fe 100644
--- a/plugins/transforms/tableoutput/src/test/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputTest.java
+++ b/plugins/transforms/tableoutput/src/test/java/org/apache/hop/pipeline/transforms/tableoutput/TableOutputTest.java
@@ -28,7 +28,6 @@ import org.apache.hop.pipeline.engines.local.LocalPipelineEngine;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.TransformPartitioningMeta;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import java.sql.Connection;
diff --git a/plugins/transforms/terafast/src/main/java/org/apache/hop/pipeline/transforms/terafast/TeraFast.java b/plugins/transforms/terafast/src/main/java/org/apache/hop/pipeline/transforms/terafast/TeraFast.java
index 4d7bb364af..9faf2241d9 100644
--- a/plugins/transforms/terafast/src/main/java/org/apache/hop/pipeline/transforms/terafast/TeraFast.java
+++ b/plugins/transforms/terafast/src/main/java/org/apache/hop/pipeline/transforms/terafast/TeraFast.java
@@ -35,11 +35,8 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PrintStream;
+
+import java.io.*;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInput.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInput.java
index 253a626e62..e5c36ec6b2 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInput.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInput.java
@@ -42,11 +42,8 @@ import org.apache.hop.pipeline.transforms.fileinput.TextFileInput;
 import org.apache.hop.pipeline.transforms.fileinput.TextFileInputMeta;
 import org.apache.hop.pipeline.transforms.fileinput.text.BOMDetector;
 import org.apache.hop.ui.pipeline.transform.common.TextFileLineUtil;
-import java.io.BufferedInputStream;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.UnsupportedEncodingException;
+
+import java.io.*;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInputMeta.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInputMeta.java
index e56552d49c..391595324e 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInputMeta.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/csvinput/CsvInputMeta.java
@@ -53,6 +53,7 @@ import org.apache.hop.resource.ResourceEntry;
 import org.apache.hop.resource.ResourceEntry.ResourceType;
 import org.apache.hop.resource.ResourceReference;
 import org.w3c.dom.Node;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/TextFileInputMeta.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/TextFileInputMeta.java
index 4fe64ea729..e1e0cccbba 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/TextFileInputMeta.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/TextFileInputMeta.java
@@ -18,6 +18,7 @@
 
 package org.apache.hop.pipeline.transforms.fileinput;
 
+import com.google.common.annotations.VisibleForTesting;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.vfs2.FileObject;
 import org.apache.hop.core.CheckResult;
@@ -32,11 +33,7 @@ import org.apache.hop.core.file.TextFileInputField;
 import org.apache.hop.core.fileinput.FileInputList;
 import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.row.IValueMeta;
-import org.apache.hop.core.row.value.ValueMetaBoolean;
-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.*;
 import org.apache.hop.core.util.EnvUtil;
 import org.apache.hop.core.util.Utils;
 import org.apache.hop.core.variables.IVariables;
@@ -53,11 +50,11 @@ import org.apache.hop.resource.ResourceEntry;
 import org.apache.hop.resource.ResourceEntry.ResourceType;
 import org.apache.hop.resource.ResourceReference;
 import org.w3c.dom.Node;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import com.google.common.annotations.VisibleForTesting;
 
 /** @deprecated replaced by implementation in the ...transforms.fileinput.text package */
 @Deprecated
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInput.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInput.java
index 3447880dd1..1cc367c63b 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInput.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInput.java
@@ -22,7 +22,6 @@ import org.apache.hop.core.playlist.FilePlayListAll;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.file.BaseFileInputTransform;
 import org.apache.hop.pipeline.transforms.file.IBaseFileInputReader;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputMeta.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputMeta.java
index 1af2e914f7..644029c86d 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputMeta.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputMeta.java
@@ -43,9 +43,7 @@ import org.apache.hop.core.vfs.HopVfs;
 import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.common.ICsvInputAwareMeta;
 import org.apache.hop.pipeline.transforms.file.BaseFileField;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputMeta.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputMeta.java
index a4444877cc..909ed3581a 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputMeta.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/textfileoutput/TextFileOutputMeta.java
@@ -38,10 +38,8 @@ import org.apache.hop.core.vfs.HopVfs;
 import org.apache.hop.core.xml.XmlHandler;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.resource.IResourceNaming;
 import org.apache.hop.resource.ResourceDefinition;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/CsvExplorerFileType.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/CsvExplorerFileType.java
index 57299501e4..03dd735aaa 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/CsvExplorerFileType.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/CsvExplorerFileType.java
@@ -26,7 +26,6 @@ import org.apache.hop.ui.hopgui.file.empty.EmptyHopFileTypeHandler;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerFile;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.IExplorerFileType;
-import org.apache.hop.ui.hopgui.perspective.explorer.file.types.base.BaseExplorerFileType;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.types.text.BaseTextExplorerFileType;
 
 import java.util.Properties;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/LogExplorerFileType.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/LogExplorerFileType.java
index 9342c3f968..c9f5558542 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/LogExplorerFileType.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/LogExplorerFileType.java
@@ -26,7 +26,6 @@ import org.apache.hop.ui.hopgui.file.empty.EmptyHopFileTypeHandler;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerFile;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.IExplorerFileType;
-import org.apache.hop.ui.hopgui.perspective.explorer.file.types.base.BaseExplorerFileType;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.types.text.BaseTextExplorerFileType;
 
 import java.util.Properties;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/MarkDownExplorerFileType.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/MarkDownExplorerFileType.java
index 02954fd53c..a0eca07c63 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/MarkDownExplorerFileType.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/MarkDownExplorerFileType.java
@@ -26,7 +26,6 @@ import org.apache.hop.ui.hopgui.file.empty.EmptyHopFileTypeHandler;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerFile;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.IExplorerFileType;
-import org.apache.hop.ui.hopgui.perspective.explorer.file.types.base.BaseExplorerFileType;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.types.text.BaseTextExplorerFileType;
 
 import java.util.Properties;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/TextExplorerFileType.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/TextExplorerFileType.java
index 46d7780fa2..9c2ed44e13 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/TextExplorerFileType.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/TextExplorerFileType.java
@@ -26,7 +26,6 @@ import org.apache.hop.ui.hopgui.file.empty.EmptyHopFileTypeHandler;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerFile;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.IExplorerFileType;
-import org.apache.hop.ui.hopgui.perspective.explorer.file.types.base.BaseExplorerFileType;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.types.text.BaseTextExplorerFileType;
 
 import java.util.Properties;
diff --git a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/TextExplorerFileTypeHandler.java b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/TextExplorerFileTypeHandler.java
index 45e9823b28..037254abbb 100644
--- a/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/TextExplorerFileTypeHandler.java
+++ b/plugins/transforms/textfile/src/main/java/org/apache/hop/pipeline/transforms/types/TextExplorerFileTypeHandler.java
@@ -17,21 +17,11 @@
 
 package org.apache.hop.pipeline.transforms.types;
 
-import org.apache.hop.core.Const;
-import org.apache.hop.core.Props;
-import org.apache.hop.core.logging.LogChannel;
-import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.hopgui.HopGui;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerFile;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.IExplorerFileTypeHandler;
-import org.apache.hop.ui.hopgui.perspective.explorer.file.types.base.BaseExplorerFileTypeHandler;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.types.text.BaseTextExplorerFileTypeHandler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
 
 /** How do we handle an SVG file in file explorer perspective? */
 public class TextExplorerFileTypeHandler extends BaseTextExplorerFileTypeHandler
diff --git a/plugins/transforms/textfile/src/test/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputMetaLoadSaveTest.java b/plugins/transforms/textfile/src/test/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputMetaLoadSaveTest.java
index 41dd92b68c..92a7b132ed 100644
--- a/plugins/transforms/textfile/src/test/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputMetaLoadSaveTest.java
+++ b/plugins/transforms/textfile/src/test/java/org/apache/hop/pipeline/transforms/fileinput/text/TextFileInputMetaLoadSaveTest.java
@@ -29,8 +29,6 @@ import org.junit.Test;
 
 import java.util.*;
 
-import static org.junit.Assert.assertTrue;
-
 public class TextFileInputMetaLoadSaveTest {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
 
diff --git a/plugins/transforms/tika/src/main/java/org/apache/hop/pipeline/transforms/tika/TikaOutput.java b/plugins/transforms/tika/src/main/java/org/apache/hop/pipeline/transforms/tika/TikaOutput.java
index f6dac3d0cb..e59cc3b350 100755
--- a/plugins/transforms/tika/src/main/java/org/apache/hop/pipeline/transforms/tika/TikaOutput.java
+++ b/plugins/transforms/tika/src/main/java/org/apache/hop/pipeline/transforms/tika/TikaOutput.java
@@ -40,13 +40,7 @@ import javax.xml.transform.TransformerConfigurationException;
 import javax.xml.transform.sax.SAXTransformerFactory;
 import javax.xml.transform.sax.TransformerHandler;
 import javax.xml.transform.stream.StreamResult;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
+import java.io.*;
 import java.text.NumberFormat;
 import java.text.ParsePosition;
 import java.util.Arrays;
diff --git a/plugins/transforms/uniquerows/src/main/java/org/apache/hop/pipeline/transforms/uniquerows/UniqueRows.java b/plugins/transforms/uniquerows/src/main/java/org/apache/hop/pipeline/transforms/uniquerows/UniqueRows.java
index 7c6dfad826..e234d94905 100644
--- a/plugins/transforms/uniquerows/src/main/java/org/apache/hop/pipeline/transforms/uniquerows/UniqueRows.java
+++ b/plugins/transforms/uniquerows/src/main/java/org/apache/hop/pipeline/transforms/uniquerows/UniqueRows.java
@@ -25,7 +25,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.List;
diff --git a/plugins/transforms/uniquerowsbyhashset/src/main/java/org/apache/hop/pipeline/transforms/uniquerowsbyhashset/UniqueRowsByHashSet.java b/plugins/transforms/uniquerowsbyhashset/src/main/java/org/apache/hop/pipeline/transforms/uniquerowsbyhashset/UniqueRowsByHashSet.java
index 58a8c16968..9e9696fda3 100644
--- a/plugins/transforms/uniquerowsbyhashset/src/main/java/org/apache/hop/pipeline/transforms/uniquerowsbyhashset/UniqueRowsByHashSet.java
+++ b/plugins/transforms/uniquerowsbyhashset/src/main/java/org/apache/hop/pipeline/transforms/uniquerowsbyhashset/UniqueRowsByHashSet.java
@@ -23,7 +23,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 public class UniqueRowsByHashSet
diff --git a/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/Update.java b/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/Update.java
index a69bcad333..fccfb4401b 100644
--- a/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/Update.java
+++ b/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/Update.java
@@ -32,7 +32,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.sql.SQLException;
diff --git a/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/UpdateMeta.java b/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/UpdateMeta.java
index 41e89d3b55..54da49eccd 100644
--- a/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/UpdateMeta.java
+++ b/plugins/transforms/update/src/main/java/org/apache/hop/pipeline/transforms/update/UpdateMeta.java
@@ -36,10 +36,8 @@ 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.DatabaseImpact;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.utils.RowMetaUtils;
 
diff --git a/plugins/transforms/valuemapper/src/test/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMetaTest.java b/plugins/transforms/valuemapper/src/test/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMetaTest.java
index 3130925c0a..d6ef93b717 100644
--- a/plugins/transforms/valuemapper/src/test/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMetaTest.java
+++ b/plugins/transforms/valuemapper/src/test/java/org/apache/hop/pipeline/transforms/valuemapper/ValueMapperMetaTest.java
@@ -32,7 +32,10 @@ import org.junit.Before;
 import org.junit.ClassRule;
 import org.junit.Test;
 
-import java.util.*;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class ValueMapperMetaTest implements IInitializer<ITransformMeta> {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
diff --git a/plugins/transforms/webserviceavailable/src/main/java/org/apache/hop/pipeline/transforms/webserviceavailable/WebServiceAvailable.java b/plugins/transforms/webserviceavailable/src/main/java/org/apache/hop/pipeline/transforms/webserviceavailable/WebServiceAvailable.java
index bb72d670e0..89dcebd9d3 100644
--- a/plugins/transforms/webserviceavailable/src/main/java/org/apache/hop/pipeline/transforms/webserviceavailable/WebServiceAvailable.java
+++ b/plugins/transforms/webserviceavailable/src/main/java/org/apache/hop/pipeline/transforms/webserviceavailable/WebServiceAvailable.java
@@ -25,7 +25,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.io.InputStream;
diff --git a/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebService.java b/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebService.java
index a900351eee..2823e4123e 100644
--- a/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebService.java
+++ b/plugins/transforms/webservices/src/main/java/org/apache/hop/pipeline/transforms/webservices/WebService.java
@@ -35,7 +35,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transforms.webservices.wsdl.*;
 import org.apache.http.*;
diff --git a/plugins/transforms/webservices/src/test/java/org/apache/hop/pipeline/transforms/webservices/WebServiceMetaTest.java b/plugins/transforms/webservices/src/test/java/org/apache/hop/pipeline/transforms/webservices/WebServiceMetaTest.java
index 1a07559169..ae28a05525 100644
--- a/plugins/transforms/webservices/src/test/java/org/apache/hop/pipeline/transforms/webservices/WebServiceMetaTest.java
+++ b/plugins/transforms/webservices/src/test/java/org/apache/hop/pipeline/transforms/webservices/WebServiceMetaTest.java
@@ -43,7 +43,8 @@ import java.util.Arrays;
 import java.util.List;
 
 import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class WebServiceMetaTest {
   @ClassRule public static RestoreHopEngineEnvironment env = new RestoreHopEngineEnvironment();
diff --git a/plugins/transforms/workflowexecutor/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutorDialog.java b/plugins/transforms/workflowexecutor/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutorDialog.java
index 2b6dc49500..8dbea7263f 100644
--- a/plugins/transforms/workflowexecutor/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutorDialog.java
+++ b/plugins/transforms/workflowexecutor/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutorDialog.java
@@ -34,7 +34,6 @@ import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
 import org.apache.hop.pipeline.transform.ITransformDialog;
 import org.apache.hop.ui.core.ConstUi;
-import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.dialog.BaseDialog;
 import org.apache.hop.ui.core.dialog.EnterMappingDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
diff --git a/plugins/transforms/workflowexecutor/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutorMeta.java b/plugins/transforms/workflowexecutor/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutorMeta.java
index 65a0fb3ab7..9ff0e7a873 100644
--- a/plugins/transforms/workflowexecutor/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutorMeta.java
+++ b/plugins/transforms/workflowexecutor/src/main/java/org/apache/hop/pipeline/transforms/workflowexecutor/WorkflowExecutorMeta.java
@@ -39,7 +39,10 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.metadata.api.IHopMetadataProvider;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.PipelineMeta.PipelineType;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransformMeta;
+import org.apache.hop.pipeline.transform.ITransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformIOMeta;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.IStream.StreamType;
 import org.apache.hop.pipeline.transform.stream.Stream;
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/Dom4JUtil.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/Dom4JUtil.java
index a89824e163..e05f4b6a22 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/Dom4JUtil.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/Dom4JUtil.java
@@ -20,6 +20,7 @@ import org.apache.hop.core.logging.HopLogStore;
 import org.apache.hop.core.logging.ILogChannel;
 import org.dom4j.io.SAXReader;
 import org.xml.sax.SAXException;
+
 import javax.xml.XMLConstants;
 
 public class Dom4JUtil {
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXml.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXml.java
index 1dd3c6b247..e28804109f 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXml.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXml.java
@@ -27,7 +27,8 @@ import org.apache.hop.core.xml.XmlParserFactoryProducer;
 import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
-import org.apache.hop.pipeline.transform.*;
+import org.apache.hop.pipeline.transform.BaseTransform;
+import org.apache.hop.pipeline.transform.TransformMeta;
 import org.w3c.dom.*;
 
 import javax.xml.parsers.ParserConfigurationException;
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXmlMeta.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXmlMeta.java
index af577797f5..b88f27afdd 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXmlMeta.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/addxml/AddXmlMeta.java
@@ -34,11 +34,8 @@ 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.IHopMetadataProvider;
-import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransformMeta;
-import org.apache.hop.pipeline.transform.ITransform;
-import org.apache.hop.pipeline.transform.ITransformMeta;
 import org.apache.hop.pipeline.transform.TransformMeta;
 import org.w3c.dom.Node;
 
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/GetXmlDataMeta.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/GetXmlDataMeta.java
index f55fcc5b26..db424bf6c1 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/GetXmlDataMeta.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/GetXmlDataMeta.java
@@ -28,11 +28,7 @@ import org.apache.hop.core.exception.HopXmlException;
 import org.apache.hop.core.fileinput.FileInputList;
 import org.apache.hop.core.row.IRowMeta;
 import org.apache.hop.core.row.IValueMeta;
-import org.apache.hop.core.row.value.ValueMetaBoolean;
-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.*;
 import org.apache.hop.core.util.Utils;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.core.xml.XmlHandler;
@@ -44,6 +40,7 @@ import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.resource.IResourceNaming;
 import org.apache.hop.resource.ResourceDefinition;
 import org.w3c.dom.Node;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/LoopNodesImportProgressDialog.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/LoopNodesImportProgressDialog.java
index fce42e0cca..41e27adb03 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/LoopNodesImportProgressDialog.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/getxmldata/LoopNodesImportProgressDialog.java
@@ -30,6 +30,7 @@ import org.dom4j.Element;
 import org.dom4j.Node;
 import org.dom4j.io.SAXReader;
 import org.eclipse.swt.widgets.Shell;
+
 import java.io.InputStream;
 import java.io.StringReader;
 import java.lang.reflect.InvocationTargetException;
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/types/XmlExplorerFileType.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/types/XmlExplorerFileType.java
index e064cfbea7..168cec710f 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/types/XmlExplorerFileType.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/types/XmlExplorerFileType.java
@@ -26,7 +26,6 @@ import org.apache.hop.ui.hopgui.file.empty.EmptyHopFileTypeHandler;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerFile;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.IExplorerFileType;
-import org.apache.hop.ui.hopgui.perspective.explorer.file.types.base.BaseExplorerFileType;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.types.text.BaseTextExplorerFileType;
 
 import java.util.Properties;
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/types/XmlExplorerFileTypeHandler.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/types/XmlExplorerFileTypeHandler.java
index 7e56526d46..42dd7a414f 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/types/XmlExplorerFileTypeHandler.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/types/XmlExplorerFileTypeHandler.java
@@ -17,21 +17,11 @@
 
 package org.apache.hop.pipeline.transforms.xml.types;
 
-import org.apache.hop.core.Const;
-import org.apache.hop.core.Props;
-import org.apache.hop.core.logging.LogChannel;
-import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.hopgui.HopGui;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerFile;
 import org.apache.hop.ui.hopgui.perspective.explorer.ExplorerPerspective;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.IExplorerFileTypeHandler;
-import org.apache.hop.ui.hopgui.perspective.explorer.file.types.base.BaseExplorerFileTypeHandler;
 import org.apache.hop.ui.hopgui.perspective.explorer.file.types.text.BaseTextExplorerFileTypeHandler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Text;
 
 /** How do we handle an SVG file in file explorer perspective? */
 public class XmlExplorerFileTypeHandler extends BaseTextExplorerFileTypeHandler
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmlinputstream/XmlInputStream.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmlinputstream/XmlInputStream.java
index ca460708ad..9904de41ef 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmlinputstream/XmlInputStream.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmlinputstream/XmlInputStream.java
@@ -32,12 +32,7 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
+
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
@@ -45,6 +40,12 @@ import javax.xml.stream.events.Attribute;
 import javax.xml.stream.events.EndElement;
 import javax.xml.stream.events.Namespace;
 import javax.xml.stream.events.XMLEvent;
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
 
 /** Use a StAX parser to read XML in a flexible and fast way. */
 // TODO black box testing
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmlinputstream/XmlInputStreamMeta.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmlinputstream/XmlInputStreamMeta.java
index 6f16b7ec6c..83b7671d43 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmlinputstream/XmlInputStreamMeta.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmlinputstream/XmlInputStreamMeta.java
@@ -35,6 +35,7 @@ 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;
+
 import java.util.List;
 
 @Transform(
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmljoin/XmlJoinMeta.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmljoin/XmlJoinMeta.java
index 024537deef..a07616b21b 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmljoin/XmlJoinMeta.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmljoin/XmlJoinMeta.java
@@ -42,6 +42,7 @@ import org.apache.hop.pipeline.transform.stream.IStream;
 import org.apache.hop.pipeline.transform.stream.Stream;
 import org.apache.hop.pipeline.transform.stream.StreamIcon;
 import org.w3c.dom.Node;
+
 import java.util.Arrays;
 import java.util.List;
 
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutput.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutput.java
index c135670cab..29a5b3e243 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutput.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutput.java
@@ -25,7 +25,6 @@ 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.util.Utils;
 import org.apache.hop.core.vfs.HopVfs;
 import org.apache.hop.pipeline.Pipeline;
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 207deaa2f8..53a692aaaf 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
@@ -44,6 +44,7 @@ import org.apache.hop.pipeline.transforms.xml.xmloutput.XmlField.ContentType;
 import org.apache.hop.resource.IResourceNaming;
 import org.apache.hop.resource.ResourceDefinition;
 import org.w3c.dom.Node;
+
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xsdvalidator/XsdValidatorMeta.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xsdvalidator/XsdValidatorMeta.java
index ebc438e603..8b649d0f28 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xsdvalidator/XsdValidatorMeta.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xsdvalidator/XsdValidatorMeta.java
@@ -40,6 +40,7 @@ import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.resource.IResourceNaming;
 import org.apache.hop.resource.ResourceDefinition;
 import org.w3c.dom.Node;
+
 import java.util.List;
 import java.util.Map;
 
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xslt/Xslt.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xslt/Xslt.java
index f910e707ef..7decdb7673 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xslt/Xslt.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xslt/Xslt.java
@@ -29,14 +29,15 @@ import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.util.Properties;
+
 import javax.xml.transform.Source;
 import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.Properties;
 
 /** Executes a XSL Transform on the values in the input stream. */
 public class Xslt extends BaseTransform<XsltMeta, XsltData> {
diff --git a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xslt/XsltMeta.java b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xslt/XsltMeta.java
index e3e6dcd58d..9be44c5813 100644
--- a/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xslt/XsltMeta.java
+++ b/plugins/transforms/xml/src/main/java/org/apache/hop/pipeline/transforms/xml/xslt/XsltMeta.java
@@ -35,6 +35,7 @@ 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;
+
 import java.io.File;
 import java.util.List;
 
diff --git a/plugins/transforms/xml/src/test/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputTest.java b/plugins/transforms/xml/src/test/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputTest.java
index c0eeb16bc0..7f89ddbe17 100644
--- a/plugins/transforms/xml/src/test/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputTest.java
+++ b/plugins/transforms/xml/src/test/java/org/apache/hop/pipeline/transforms/xml/xmloutput/XmlOutputTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.hop.pipeline.transforms.xml.xmloutput;
 
-import org.apache.hop.core.Const;
 import org.apache.hop.core.exception.HopException;
 import org.apache.hop.core.logging.ILoggingObject;
 import org.apache.hop.core.logging.LogLevel;
diff --git a/plugins/transforms/xml/src/test/java/org/apache/hop/pipeline/transforms/xml/xsdvalidator/XsdValidatorIntTest.java b/plugins/transforms/xml/src/test/java/org/apache/hop/pipeline/transforms/xml/xsdvalidator/XsdValidatorIntTest.java
index 17d42966b2..dd955ca331 100644
--- a/plugins/transforms/xml/src/test/java/org/apache/hop/pipeline/transforms/xml/xsdvalidator/XsdValidatorIntTest.java
+++ b/plugins/transforms/xml/src/test/java/org/apache/hop/pipeline/transforms/xml/xsdvalidator/XsdValidatorIntTest.java
@@ -32,11 +32,7 @@ import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.*;
 import java.util.ArrayList;
 import java.util.List;
 
diff --git a/plugins/transforms/xml/src/test/resources/xsdvalidator/xsd_issue/cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd b/plugins/transforms/xml/src/test/resources/xsdvalidator/xsd_issue/cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd
index 7a5669a511..0314fec069 100644
--- a/plugins/transforms/xml/src/test/resources/xsdvalidator/xsd_issue/cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd
+++ b/plugins/transforms/xml/src/test/resources/xsdvalidator/xsd_issue/cbc-xml-schema-v1.0/isocbctypes_v1.0.xsd
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- edited with XMLSPY v2004 rel. 3 U (http://www.xmlspy.com) by Sebastien Michon (OECD) -->
-<xsd:schema xmlns:iso="urn:oecd:ties:isocbctypes:v1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:oecd:ties:isocbctypes:v1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:oecd:ties:isocbctypes:v1"
+            elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
 	<!--  ISO 3166 alpha 2 Country Code 
 
 The following disclaimer refers to all uses of the ISO country code list in the CBC schema: For practical reasons, the list is based on the ISO 3166-1 country list which is currently used by banks and other financial institutions, and hence by tax administrations. The use of this list does not imply the expression by the OECD of any opinion whatsoever concerning the legal status of the territories listed. Its content is without prejudice to the status of or sovereignty over any territory [...]
diff --git a/plugins/transforms/yamlinput/src/main/java/org/apache/hop/pipeline/transforms/yamlinput/YamlInput.java b/plugins/transforms/yamlinput/src/main/java/org/apache/hop/pipeline/transforms/yamlinput/YamlInput.java
index 1f70741b1a..70eee97081 100644
--- a/plugins/transforms/yamlinput/src/main/java/org/apache/hop/pipeline/transforms/yamlinput/YamlInput.java
+++ b/plugins/transforms/yamlinput/src/main/java/org/apache/hop/pipeline/transforms/yamlinput/YamlInput.java
@@ -32,7 +32,6 @@ import org.apache.hop.i18n.BaseMessages;
 import org.apache.hop.pipeline.Pipeline;
 import org.apache.hop.pipeline.PipelineMeta;
 import org.apache.hop.pipeline.transform.BaseTransform;
-import org.apache.hop.pipeline.transform.ITransform;
 import org.apache.hop.pipeline.transform.TransformMeta;
 
 import java.util.List;
diff --git a/plugins/transforms/yamlinput/src/main/java/org/apache/hop/pipeline/transforms/yamlinput/YamlInputMeta.java b/plugins/transforms/yamlinput/src/main/java/org/apache/hop/pipeline/transforms/yamlinput/YamlInputMeta.java
index 79ed799b31..fb5d2c5471 100644
--- a/plugins/transforms/yamlinput/src/main/java/org/apache/hop/pipeline/transforms/yamlinput/YamlInputMeta.java
+++ b/plugins/transforms/yamlinput/src/main/java/org/apache/hop/pipeline/transforms/yamlinput/YamlInputMeta.java
@@ -43,6 +43,7 @@ import org.apache.hop.pipeline.transform.TransformMeta;
 import org.apache.hop.resource.IResourceNaming;
 import org.apache.hop.resource.ResourceDefinition;
 import org.w3c.dom.Node;
+
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;