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 2021/11/07 21:30:52 UTC

[incubator-hop] branch master updated: HOP-3486 Add database documentation link - Add documentation url to database annotation - Add help button in database meta editor depending on the database type - Fix documentation url for metadata RDBMS

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/incubator-hop.git


The following commit(s) were added to refs/heads/master by this push:
     new 1a7cbaa  HOP-3486 Add database documentation link - Add documentation url to database annotation - Add help button in database meta editor depending on the database type - Fix documentation url for metadata RDBMS
     new 39a47c7  Merge pull request #1190 from nadment/HOP-3486
1a7cbaa is described below

commit 1a7cbaa9a6856424409c83fcb6dcd44a4881d34f
Author: Nicolas Adment <na...@gmail.com>
AuthorDate: Sun Nov 7 21:12:38 2021 +0100

    HOP-3486 Add database documentation link
    - Add documentation url to database annotation
    - Add help button in database meta editor depending on the database type
    - Fix documentation url for metadata RDBMS
---
 .../apache/hop/core/database/BaseDatabaseMeta.java |  3 --
 .../java/org/apache/hop/core/database/Catalog.java |  3 --
 .../apache/hop/core/database/DatabaseFactory.java  |  1 -
 .../org/apache/hop/core/database/DatabaseMeta.java |  2 +-
 .../hop/core/database/DatabaseMetaPlugin.java      |  4 +--
 .../hop/core/database/DatabasePluginType.java      |  4 +--
 .../hop/core/database/DatabaseTestResults.java     |  1 -
 .../apache/hop/core/database/DelegatingDriver.java |  2 --
 .../org/apache/hop/core/database/IDatabase.java    |  3 --
 .../apache/hop/core/database/NoneDatabaseMeta.java |  2 +-
 .../hop/core/database/PartitionDatabaseMeta.java   |  2 --
 .../java/org/apache/hop/core/database/Schema.java  |  3 --
 .../hop/core/exception/HopDatabaseException.java   |  3 --
 .../hop/i18n/messages/messages_en_US.properties    |  1 +
 .../transform/messages/messages_fr_FR.properties   |  2 +-
 .../hop/databases/as400/AS400DatabaseMeta.java     |  5 +--
 .../hop/databases/cache/CacheDatabaseMeta.java     |  7 ++--
 .../clickhouse/ClickhouseDatabaseMeta.java         |  2 +-
 .../cockroachdb/CockroachDatabaseMeta.java         |  5 +--
 .../apache/hop/databases/db2/DB2DatabaseMeta.java  |  5 +--
 .../hop/databases/derby/DerbyDatabaseMeta.java     |  7 ++--
 .../hop/databases/doris/DorisDatabaseMeta.java     |  2 +-
 .../hop/databases/exasol4/Exasol4DatabaseMeta.java |  5 +--
 .../databases/firebird/FirebirdDatabaseMeta.java   |  5 +--
 .../hop/databases/generic/GenericDatabaseMeta.java |  5 +--
 .../googlebigquery/GoogleBigQueryDatabaseMeta.java |  2 +-
 .../databases/greenplum/GreenplumDatabaseMeta.java |  5 +--
 .../apache/hop/databases/h2/H2DatabaseMeta.java    |  7 ++--
 .../hypersonic/HypersonicDatabaseMeta.java         |  5 +--
 .../databases/infinidb/InfiniDbDatabaseMeta.java   |  2 +-
 .../infobright/InfobrightDatabaseMeta.java         |  2 +-
 .../databases/informix/InformixDatabaseMeta.java   |  6 ++--
 .../hop/databases/ingres/IngresDatabaseMeta.java   |  5 +--
 .../databases/interbase/InterbaseDatabaseMeta.java |  5 +--
 .../kingbasees/KingbaseESDatabaseMeta.java         |  7 ++--
 .../hop/databases/mariadb/MariaDBDatabaseMeta.java |  2 +-
 .../hop/databases/monetdb/MonetDBDatabaseMeta.java |  5 +--
 .../databases/mssql/MsSqlServerDatabaseMeta.java   |  5 +--
 .../mssqlnative/MsSqlServerNativeDatabaseMeta.java |  2 +-
 .../hop/databases/mysql/MySqlDatabaseMeta.java     |  5 +--
 .../hop/databases/netezza/NetezzaDatabaseMeta.java |  5 +--
 .../hop/databases/oracle/OracleDatabaseMeta.java   |  5 +--
 .../databases/oraclerdb/OracleRDBDatabaseMeta.java |  5 +--
 .../postgresql/PostgreSqlDatabaseMeta.java         |  5 +--
 .../databases/redshift/RedshiftDatabaseMeta.java   |  3 +-
 .../hop/databases/sapdb/SAPDBDatabaseMeta.java     |  5 +--
 .../databases/snowflake/SnowflakeDatabaseMeta.java |  2 +-
 .../hop/databases/sqlbase/GuptaDatabaseMeta.java   |  5 +--
 .../hop/databases/sqlite/SqliteDatabaseMeta.java   |  5 +--
 .../hop/databases/sybase/SybaseDatabaseMeta.java   |  5 +--
 .../databases/sybaseiq/SybaseIQDatabaseMeta.java   |  5 +--
 .../databases/teradata/TeradataDatabaseMeta.java   |  5 +--
 .../databases/universe/UniVerseDatabaseMeta.java   |  5 +--
 .../vectorwise/VectorWiseDatabaseMeta.java         |  5 +--
 .../databases/vertica/Vertica5DatabaseMeta.java    |  9 +-----
 .../hop/databases/vertica/VerticaDatabaseMeta.java |  7 +---
 .../hop/ui/core/database/DatabaseMetaEditor.java   | 37 ++++++++++++++++++----
 .../java/org/apache/hop/ui/util/HelpUtils.java     |  8 +++--
 58 files changed, 89 insertions(+), 186 deletions(-)

diff --git a/core/src/main/java/org/apache/hop/core/database/BaseDatabaseMeta.java b/core/src/main/java/org/apache/hop/core/database/BaseDatabaseMeta.java
index c945372..10d3b5c92 100644
--- a/core/src/main/java/org/apache/hop/core/database/BaseDatabaseMeta.java
+++ b/core/src/main/java/org/apache/hop/core/database/BaseDatabaseMeta.java
@@ -35,9 +35,6 @@ import java.util.*;
 /**
  * This class contains the basic information on a database connection. It is not intended to be used
  * other than the inheriting classes such as OracleDatabaseInfo, ...
- *
- * @author Matt
- * @since 11-mrt-2005
  */
 public abstract class BaseDatabaseMeta implements Cloneable, IDatabase {
 
diff --git a/core/src/main/java/org/apache/hop/core/database/Catalog.java b/core/src/main/java/org/apache/hop/core/database/Catalog.java
index 0a71f47..7f0b23b 100644
--- a/core/src/main/java/org/apache/hop/core/database/Catalog.java
+++ b/core/src/main/java/org/apache/hop/core/database/Catalog.java
@@ -19,9 +19,6 @@ package org.apache.hop.core.database;
 
 /**
  * Contains the information that's stored in a single catalog.
- *
- * @author Matt
- * @since 7-apr-2005
  */
 public class Catalog {
   private String catalogName;
diff --git a/core/src/main/java/org/apache/hop/core/database/DatabaseFactory.java b/core/src/main/java/org/apache/hop/core/database/DatabaseFactory.java
index dae4d20..d1e05e1 100644
--- a/core/src/main/java/org/apache/hop/core/database/DatabaseFactory.java
+++ b/core/src/main/java/org/apache/hop/core/database/DatabaseFactory.java
@@ -26,7 +26,6 @@ import org.apache.hop.core.logging.SimpleLoggingObject;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.i18n.BaseMessages;
 
-/** @author matt */
 public class DatabaseFactory implements IDatabaseFactory {
 
   private static final Class<?> PKG = Database.class; // For Translator
diff --git a/core/src/main/java/org/apache/hop/core/database/DatabaseMeta.java b/core/src/main/java/org/apache/hop/core/database/DatabaseMeta.java
index 63416c5..c250df4 100644
--- a/core/src/main/java/org/apache/hop/core/database/DatabaseMeta.java
+++ b/core/src/main/java/org/apache/hop/core/database/DatabaseMeta.java
@@ -51,7 +51,7 @@ import java.util.concurrent.Future;
     name = "Relational Database Connection",
     description = "This contains all the metadata needed to connect to a relational database",
     image = "ui/images/database.svg",
-    documentationUrl = "/metadata-types/pipeline-run-config.html")
+    documentationUrl = "/metadata-types/rdbms-connection.html")
 public class DatabaseMeta extends HopMetadataBase implements Cloneable, IHopMetadata {
   private static final Class<?> PKG = Database.class; // For Translator
 
diff --git a/core/src/main/java/org/apache/hop/core/database/DatabaseMetaPlugin.java b/core/src/main/java/org/apache/hop/core/database/DatabaseMetaPlugin.java
index 6ac4d8c..56dfc8a 100644
--- a/core/src/main/java/org/apache/hop/core/database/DatabaseMetaPlugin.java
+++ b/core/src/main/java/org/apache/hop/core/database/DatabaseMetaPlugin.java
@@ -21,8 +21,6 @@ import java.lang.annotation.*;
 
 /**
  * This annotation signals to the plugin system that the class is a database metadata plugin.
- *
- * @author matt
  */
 @Documented
 @Retention(RetentionPolicy.RUNTIME)
@@ -33,4 +31,6 @@ public @interface DatabaseMetaPlugin {
   String typeDescription();
 
   String classLoaderGroup() default "";
+  
+  String documentationUrl() default "";
 }
diff --git a/core/src/main/java/org/apache/hop/core/database/DatabasePluginType.java b/core/src/main/java/org/apache/hop/core/database/DatabasePluginType.java
index f11b8d4..fc994ec 100644
--- a/core/src/main/java/org/apache/hop/core/database/DatabasePluginType.java
+++ b/core/src/main/java/org/apache/hop/core/database/DatabasePluginType.java
@@ -25,8 +25,6 @@ import java.util.Map;
 
 /**
  * This class represents the transform plugin type.
- *
- * @author matt
  */
 public class DatabasePluginType extends BasePluginType<DatabaseMetaPlugin> {
   private static DatabasePluginType pluginType;
@@ -87,7 +85,7 @@ public class DatabasePluginType extends BasePluginType<DatabaseMetaPlugin> {
 
   @Override
   protected String extractDocumentationUrl(DatabaseMetaPlugin annotation) {
-    return null;
+    return annotation.documentationUrl();
   }
 
   @Override
diff --git a/core/src/main/java/org/apache/hop/core/database/DatabaseTestResults.java b/core/src/main/java/org/apache/hop/core/database/DatabaseTestResults.java
index 0e886bc..223158a 100644
--- a/core/src/main/java/org/apache/hop/core/database/DatabaseTestResults.java
+++ b/core/src/main/java/org/apache/hop/core/database/DatabaseTestResults.java
@@ -17,7 +17,6 @@
 
 package org.apache.hop.core.database;
 
-/** Created by ddiroma on 5/10/2018. */
 public class DatabaseTestResults {
   private String message;
   private boolean success;
diff --git a/core/src/main/java/org/apache/hop/core/database/DelegatingDriver.java b/core/src/main/java/org/apache/hop/core/database/DelegatingDriver.java
index 8fee4a7..799f666 100644
--- a/core/src/main/java/org/apache/hop/core/database/DelegatingDriver.java
+++ b/core/src/main/java/org/apache/hop/core/database/DelegatingDriver.java
@@ -29,8 +29,6 @@ import java.util.logging.Logger;
  * making DriverManager believe that the parent class loader is used.
  *
  * <p>It's an unfortunate hack but it works fine.
- *
- * @author matt
  */
 public class DelegatingDriver implements Driver {
   private final Driver driver;
diff --git a/core/src/main/java/org/apache/hop/core/database/IDatabase.java b/core/src/main/java/org/apache/hop/core/database/IDatabase.java
index 6c39590..83091f7 100644
--- a/core/src/main/java/org/apache/hop/core/database/IDatabase.java
+++ b/core/src/main/java/org/apache/hop/core/database/IDatabase.java
@@ -33,9 +33,6 @@ import java.util.Map;
 /**
  * This interface describes the methods that a database connection needs to have in order to
  * describe it properly.
- *
- * @author Matt
- * @since 11-mrt-2005
  */
 @HopMetadataObject(objectFactory = DatabaseMetaObjectFactory.class)
 public interface IDatabase extends Cloneable {
diff --git a/core/src/main/java/org/apache/hop/core/database/NoneDatabaseMeta.java b/core/src/main/java/org/apache/hop/core/database/NoneDatabaseMeta.java
index 03f9bb5..d043812 100644
--- a/core/src/main/java/org/apache/hop/core/database/NoneDatabaseMeta.java
+++ b/core/src/main/java/org/apache/hop/core/database/NoneDatabaseMeta.java
@@ -20,7 +20,7 @@ package org.apache.hop.core.database;
 import org.apache.hop.core.exception.HopDatabaseException;
 import org.apache.hop.core.row.IValueMeta;
 
-@DatabaseMetaPlugin(type = "NONE", typeDescription = "No connection type")
+@DatabaseMetaPlugin(type = "NONE", typeDescription = "No connection type", documentationUrl = "/database/databases.html")
 public class NoneDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
   public static final String ATRRIBUTE_CUSTOM_DRIVER_CLASS = "CUSTOM_DRIVER_CLASS";
diff --git a/core/src/main/java/org/apache/hop/core/database/PartitionDatabaseMeta.java b/core/src/main/java/org/apache/hop/core/database/PartitionDatabaseMeta.java
index 468b5dd..e25e86d 100644
--- a/core/src/main/java/org/apache/hop/core/database/PartitionDatabaseMeta.java
+++ b/core/src/main/java/org/apache/hop/core/database/PartitionDatabaseMeta.java
@@ -19,8 +19,6 @@ package org.apache.hop.core.database;
 
 /**
  * Class to contain the information needed to parition (cluster): id, hostname, port, database
- *
- * @author Matt
  */
 public class PartitionDatabaseMeta {
   String partitionId;
diff --git a/core/src/main/java/org/apache/hop/core/database/Schema.java b/core/src/main/java/org/apache/hop/core/database/Schema.java
index ba571a0..166e891 100644
--- a/core/src/main/java/org/apache/hop/core/database/Schema.java
+++ b/core/src/main/java/org/apache/hop/core/database/Schema.java
@@ -19,9 +19,6 @@ package org.apache.hop.core.database;
 
 /**
  * Contains the information that's stored in a single schema.
- *
- * @author Matt
- * @since 7-apr-2005
  */
 public class Schema {
   private String schemaName;
diff --git a/core/src/main/java/org/apache/hop/core/exception/HopDatabaseException.java b/core/src/main/java/org/apache/hop/core/exception/HopDatabaseException.java
index 853ee3e..b4a2448 100644
--- a/core/src/main/java/org/apache/hop/core/exception/HopDatabaseException.java
+++ b/core/src/main/java/org/apache/hop/core/exception/HopDatabaseException.java
@@ -19,9 +19,6 @@ package org.apache.hop.core.exception;
 
 /**
  * This exception is used by the Database class.
- *
- * @author Matt
- * @since 9-12-2004
  */
 public class HopDatabaseException extends HopException {
   public static final long serialVersionUID = 0x8D8EA0264F7A1C0FL;
diff --git a/core/src/main/resources/org/apache/hop/i18n/messages/messages_en_US.properties b/core/src/main/resources/org/apache/hop/i18n/messages/messages_en_US.properties
index 93c7e81..772cbee 100644
--- a/core/src/main/resources/org/apache/hop/i18n/messages/messages_en_US.properties
+++ b/core/src/main/resources/org/apache/hop/i18n/messages/messages_en_US.properties
@@ -53,6 +53,7 @@ System.Button.Edit=&Edit
 System.Tooltip.VariableToDir=Insert a variable in the directory
 System.Button.Preview=\ &Preview 
 System.Help.Action.IsNotAvailable=Help for action {0} is not available.
+System.Help.Database.IsNotAvailable=Help for database {0} is not available.
 System.Dialog.AvailableSchemas.Empty.Title=Schemas
 System.FileType.XMLFiles=XML files
 Dialog.Error.Header=Error
diff --git a/engine/src/main/resources/org/apache/hop/pipeline/transform/messages/messages_fr_FR.properties b/engine/src/main/resources/org/apache/hop/pipeline/transform/messages/messages_fr_FR.properties
index 0f3c2e5..f3cd513 100644
--- a/engine/src/main/resources/org/apache/hop/pipeline/transform/messages/messages_fr_FR.properties
+++ b/engine/src/main/resources/org/apache/hop/pipeline/transform/messages/messages_fr_FR.properties
@@ -109,7 +109,7 @@ BaseTransformDialog.AddNew=Ajouter &nouveaux
 BaseTransformDialog.Cancel=&Annuler
 BaseTransformDialog.ClearAndAdd=Vider et ajouter tous
 BaseTransformDialog.Connection.Label=Connexion
-BaseTransformDialog.Connection.Tooltip=S\u00E9l\ectionner la connexion \u00E0 la base de donn�es relationnelle \u00E0 utiliser
+BaseTransformDialog.Connection.Tooltip=S\u00E9l\ectionner la connexion \u00E0 la base de donn\u00E9es relationnelle \u00E0 utiliser
 BaseTransformDialog.EditConnectionButton.Label=&Editer...
 BaseTransformDialog.ErrorHandling.Enable.Label=Activer la gestion des erreurs
 BaseTransformDialog.ErrorHandling.ErrCodeFieldName.Label=Champ contenant code erreur
diff --git a/plugins/databases/as400/src/main/java/org/apache/hop/databases/as400/AS400DatabaseMeta.java b/plugins/databases/as400/src/main/java/org/apache/hop/databases/as400/AS400DatabaseMeta.java
index 8375f79..9287034 100644
--- a/plugins/databases/as400/src/main/java/org/apache/hop/databases/as400/AS400DatabaseMeta.java
+++ b/plugins/databases/as400/src/main/java/org/apache/hop/databases/as400/AS400DatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains AS/400 specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "AS/400", typeDescription = "AS/400")
+@DatabaseMetaPlugin(type = "AS/400", typeDescription = "AS/400", documentationUrl = "/database/databases/as400.html")
 @GuiPlugin(id = "GUI-AS400DatabaseMeta")
 public class AS400DatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/cache/src/main/java/org/apache/hop/databases/cache/CacheDatabaseMeta.java b/plugins/databases/cache/src/main/java/org/apache/hop/databases/cache/CacheDatabaseMeta.java
index 5f180f0..bfd100b 100644
--- a/plugins/databases/cache/src/main/java/org/apache/hop/databases/cache/CacheDatabaseMeta.java
+++ b/plugins/databases/cache/src/main/java/org/apache/hop/databases/cache/CacheDatabaseMeta.java
@@ -26,12 +26,9 @@ import org.apache.hop.core.gui.plugin.GuiPlugin;
 import org.apache.hop.core.row.IValueMeta;
 
 /**
- * Contains DB2 specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
+ * Contains Intersystems Cache specific information through static final members
  */
-@DatabaseMetaPlugin(type = "CACHE", typeDescription = "Intersystems Cache")
+@DatabaseMetaPlugin(type = "CACHE", typeDescription = "Intersystems Cache", documentationUrl = "/database/databases/cache.html")
 @GuiPlugin(id = "GUI-CacheDatabaseMeta")
 public class CacheDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/clickhouse/src/main/java/org/apache/hop/databases/clickhouse/ClickhouseDatabaseMeta.java b/plugins/databases/clickhouse/src/main/java/org/apache/hop/databases/clickhouse/ClickhouseDatabaseMeta.java
index 8065c9d..e8688c7 100644
--- a/plugins/databases/clickhouse/src/main/java/org/apache/hop/databases/clickhouse/ClickhouseDatabaseMeta.java
+++ b/plugins/databases/clickhouse/src/main/java/org/apache/hop/databases/clickhouse/ClickhouseDatabaseMeta.java
@@ -33,7 +33,7 @@ import org.apache.hop.core.util.Utils;
  *
  * <p>https://clickhouse.tech/docs/en/sql-reference/
  */
-@DatabaseMetaPlugin(type = "CLICKHOUSE", typeDescription = "ClickHouse")
+@DatabaseMetaPlugin(type = "CLICKHOUSE", typeDescription = "ClickHouse", documentationUrl = "/database/databases/clickhouse.html")
 @GuiPlugin(id = "GUI-ClickhouseDatabaseMeta")
 public class ClickhouseDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/cockroachdb/src/main/java/org/apache/hop/databases/cockroachdb/CockroachDatabaseMeta.java b/plugins/databases/cockroachdb/src/main/java/org/apache/hop/databases/cockroachdb/CockroachDatabaseMeta.java
index 3a097c2..e155736 100644
--- a/plugins/databases/cockroachdb/src/main/java/org/apache/hop/databases/cockroachdb/CockroachDatabaseMeta.java
+++ b/plugins/databases/cockroachdb/src/main/java/org/apache/hop/databases/cockroachdb/CockroachDatabaseMeta.java
@@ -24,10 +24,7 @@ import org.apache.hop.databases.postgresql.PostgreSqlDatabaseMeta;
 
 /**
  * Contains PostgreSQL specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "COCKROACHDB", typeDescription = "CockroachDB")
+@DatabaseMetaPlugin(type = "COCKROACHDB", typeDescription = "CockroachDB", documentationUrl = "/database/databases/postgresql.html")
 @GuiPlugin(id = "GUI-CockroachDatabaseMeta")
 public class CockroachDatabaseMeta extends PostgreSqlDatabaseMeta implements IDatabase {}
diff --git a/plugins/databases/db2/src/main/java/org/apache/hop/databases/db2/DB2DatabaseMeta.java b/plugins/databases/db2/src/main/java/org/apache/hop/databases/db2/DB2DatabaseMeta.java
index 5729cef..670fd72 100644
--- a/plugins/databases/db2/src/main/java/org/apache/hop/databases/db2/DB2DatabaseMeta.java
+++ b/plugins/databases/db2/src/main/java/org/apache/hop/databases/db2/DB2DatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains DB2 specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "DB2", typeDescription = "DB2")
+@DatabaseMetaPlugin(type = "DB2", typeDescription = "DB2", documentationUrl = "/database/databases/db2.html")
 @GuiPlugin(id = "GUI-DB2DatabaseMeta")
 public class DB2DatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/derby/src/main/java/org/apache/hop/databases/derby/DerbyDatabaseMeta.java b/plugins/databases/derby/src/main/java/org/apache/hop/databases/derby/DerbyDatabaseMeta.java
index cecbb01..ea16a5c 100644
--- a/plugins/databases/derby/src/main/java/org/apache/hop/databases/derby/DerbyDatabaseMeta.java
+++ b/plugins/databases/derby/src/main/java/org/apache/hop/databases/derby/DerbyDatabaseMeta.java
@@ -27,12 +27,9 @@ import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.core.util.Utils;
 
 /**
- * Contains Generic Database Connection information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
+ * Contains Apache Derby Database Connection information through static final members
  */
-@DatabaseMetaPlugin(type = "DERBY", typeDescription = "Apache Derby")
+@DatabaseMetaPlugin(type = "DERBY", typeDescription = "Apache Derby", documentationUrl = "/database/databases/derby.html")
 @GuiPlugin(id = "GUI-DerbyDatabaseMeta")
 public class DerbyDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/doris/src/main/java/org/apache/hop/databases/doris/DorisDatabaseMeta.java b/plugins/databases/doris/src/main/java/org/apache/hop/databases/doris/DorisDatabaseMeta.java
index d9e83f6..080c20d 100644
--- a/plugins/databases/doris/src/main/java/org/apache/hop/databases/doris/DorisDatabaseMeta.java
+++ b/plugins/databases/doris/src/main/java/org/apache/hop/databases/doris/DorisDatabaseMeta.java
@@ -20,6 +20,6 @@ import org.apache.hop.core.database.DatabaseMetaPlugin;
 import org.apache.hop.core.gui.plugin.GuiPlugin;
 import org.apache.hop.databases.mysql.MySqlDatabaseMeta;
 
-@DatabaseMetaPlugin(type = "DORIS", typeDescription = "Apache Doris")
+@DatabaseMetaPlugin(type = "DORIS", typeDescription = "Apache Doris", documentationUrl = "/database/databases/doris.html")
 @GuiPlugin(id = "GUI-DorisDatabaseMeta")
 public class DorisDatabaseMeta extends MySqlDatabaseMeta {}
diff --git a/plugins/databases/exasol4/src/main/java/org/apache/hop/databases/exasol4/Exasol4DatabaseMeta.java b/plugins/databases/exasol4/src/main/java/org/apache/hop/databases/exasol4/Exasol4DatabaseMeta.java
index 2f75fc4..49cd194 100644
--- a/plugins/databases/exasol4/src/main/java/org/apache/hop/databases/exasol4/Exasol4DatabaseMeta.java
+++ b/plugins/databases/exasol4/src/main/java/org/apache/hop/databases/exasol4/Exasol4DatabaseMeta.java
@@ -25,11 +25,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Exasol 4 specific information through static final members
- *
- * @author Slawomir Chodnicki
- * @since Jan 24, 2012
  */
-@DatabaseMetaPlugin(type = "EXASOL4", typeDescription = "Exasol")
+@DatabaseMetaPlugin(type = "EXASOL4", typeDescription = "Exasol", documentationUrl = "/database/databases/exasol.html")
 @GuiPlugin(id = "GUI-ExasolDatabaseMeta")
 public class Exasol4DatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/firebird/src/main/java/org/apache/hop/databases/firebird/FirebirdDatabaseMeta.java b/plugins/databases/firebird/src/main/java/org/apache/hop/databases/firebird/FirebirdDatabaseMeta.java
index 3d39e69..01ff3d6 100644
--- a/plugins/databases/firebird/src/main/java/org/apache/hop/databases/firebird/FirebirdDatabaseMeta.java
+++ b/plugins/databases/firebird/src/main/java/org/apache/hop/databases/firebird/FirebirdDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Firebird specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "FIREBIRD", typeDescription = "Firebird SQL")
+@DatabaseMetaPlugin(type = "FIREBIRD", typeDescription = "Firebird SQL", documentationUrl = "/database/databases/firebird.html")
 @GuiPlugin(id = "GUI-FirebirdDatabaseMeta")
 public class FirebirdDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/generic/src/main/java/org/apache/hop/databases/generic/GenericDatabaseMeta.java b/plugins/databases/generic/src/main/java/org/apache/hop/databases/generic/GenericDatabaseMeta.java
index 1e87541..834f5e2 100644
--- a/plugins/databases/generic/src/main/java/org/apache/hop/databases/generic/GenericDatabaseMeta.java
+++ b/plugins/databases/generic/src/main/java/org/apache/hop/databases/generic/GenericDatabaseMeta.java
@@ -33,11 +33,8 @@ import java.util.Map;
 
 /**
  * Contains Generic Database Connection information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "GENERIC", typeDescription = "Generic database")
+@DatabaseMetaPlugin(type = "GENERIC", typeDescription = "Generic database", documentationUrl = "/database/databases.html")
 @GuiPlugin(description = "Generic database GUI Plugin")
 public class GenericDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   public static final String ATRRIBUTE_CUSTOM_DRIVER_CLASS = "CUSTOM_DRIVER_CLASS";
diff --git a/plugins/databases/googlebigquery/src/main/java/org/apache/hop/databases/googlebigquery/GoogleBigQueryDatabaseMeta.java b/plugins/databases/googlebigquery/src/main/java/org/apache/hop/databases/googlebigquery/GoogleBigQueryDatabaseMeta.java
index 336ad85..987ab1e 100644
--- a/plugins/databases/googlebigquery/src/main/java/org/apache/hop/databases/googlebigquery/GoogleBigQueryDatabaseMeta.java
+++ b/plugins/databases/googlebigquery/src/main/java/org/apache/hop/databases/googlebigquery/GoogleBigQueryDatabaseMeta.java
@@ -27,7 +27,7 @@ import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.core.util.StringUtil;
 import org.apache.hop.i18n.BaseMessages;
 
-@DatabaseMetaPlugin(type = "GOOGLEBIGQUERY", typeDescription = "Google BigQuery")
+@DatabaseMetaPlugin(type = "GOOGLEBIGQUERY", typeDescription = "Google BigQuery", documentationUrl = "/database/databases/googlebigquery.html")
 @GuiPlugin(id = "GUI-GoogleBigQueryDatabaseMeta")
 public class GoogleBigQueryDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/greenplum/src/main/java/org/apache/hop/databases/greenplum/GreenplumDatabaseMeta.java b/plugins/databases/greenplum/src/main/java/org/apache/hop/databases/greenplum/GreenplumDatabaseMeta.java
index 67f03a6..240cca7 100644
--- a/plugins/databases/greenplum/src/main/java/org/apache/hop/databases/greenplum/GreenplumDatabaseMeta.java
+++ b/plugins/databases/greenplum/src/main/java/org/apache/hop/databases/greenplum/GreenplumDatabaseMeta.java
@@ -24,11 +24,8 @@ import org.apache.hop.databases.postgresql.PostgreSqlDatabaseMeta;
 
 /**
  * Contains PostgreSQL specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "GREENPLUM", typeDescription = "Greenplum")
+@DatabaseMetaPlugin(type = "GREENPLUM", typeDescription = "Greenplum", documentationUrl = "/database/databases/greenplum.html")
 @GuiPlugin(id = "GUI-GreenplumDatabaseMeta")
 public class GreenplumDatabaseMeta extends PostgreSqlDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/h2/src/main/java/org/apache/hop/databases/h2/H2DatabaseMeta.java b/plugins/databases/h2/src/main/java/org/apache/hop/databases/h2/H2DatabaseMeta.java
index 231b545..f972dfc 100644
--- a/plugins/databases/h2/src/main/java/org/apache/hop/databases/h2/H2DatabaseMeta.java
+++ b/plugins/databases/h2/src/main/java/org/apache/hop/databases/h2/H2DatabaseMeta.java
@@ -27,12 +27,9 @@ import org.apache.hop.core.row.IValueMeta;
 import org.apache.hop.core.util.Utils;
 
 /**
- * Contains Hypersonic specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
+ * Contains H2 specific information through static final members
  */
-@DatabaseMetaPlugin(type = "H2", typeDescription = "H2")
+@DatabaseMetaPlugin(type = "H2", typeDescription = "H2", documentationUrl = "/database/databases/h2.html")
 @GuiPlugin(id = "GUI-H2DatabaseMeta")
 public class H2DatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/hypersonic/src/main/java/org/apache/hop/databases/hypersonic/HypersonicDatabaseMeta.java b/plugins/databases/hypersonic/src/main/java/org/apache/hop/databases/hypersonic/HypersonicDatabaseMeta.java
index d24dadb..0b9d4f4 100644
--- a/plugins/databases/hypersonic/src/main/java/org/apache/hop/databases/hypersonic/HypersonicDatabaseMeta.java
+++ b/plugins/databases/hypersonic/src/main/java/org/apache/hop/databases/hypersonic/HypersonicDatabaseMeta.java
@@ -28,11 +28,8 @@ import org.apache.hop.core.util.Utils;
 
 /**
  * Contains Hypersonic specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "HYPERSONIC", typeDescription = "Hypersonic")
+@DatabaseMetaPlugin(type = "HYPERSONIC", typeDescription = "Hypersonic", documentationUrl = "/database/databases/hypersonic.html" )
 @GuiPlugin(id = "GUI-HypersonicDatabaseMeta")
 public class HypersonicDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/infinidb/src/main/java/org/apache/hop/databases/infinidb/InfiniDbDatabaseMeta.java b/plugins/databases/infinidb/src/main/java/org/apache/hop/databases/infinidb/InfiniDbDatabaseMeta.java
index b77af52..52d438e 100644
--- a/plugins/databases/infinidb/src/main/java/org/apache/hop/databases/infinidb/InfiniDbDatabaseMeta.java
+++ b/plugins/databases/infinidb/src/main/java/org/apache/hop/databases/infinidb/InfiniDbDatabaseMeta.java
@@ -21,7 +21,7 @@ import org.apache.hop.core.database.DatabaseMetaPlugin;
 import org.apache.hop.core.gui.plugin.GuiPlugin;
 import org.apache.hop.databases.mysql.MySqlDatabaseMeta;
 
-@DatabaseMetaPlugin(type = "INFINIDB", typeDescription = "Calpont InfiniDB")
+@DatabaseMetaPlugin(type = "INFINIDB", typeDescription = "Calpont InfiniDB", documentationUrl = "/database/databases/infinidb.html")
 @GuiPlugin(id = "GUI-InfiniDbDatabaseMeta")
 public class InfiniDbDatabaseMeta extends MySqlDatabaseMeta {
 
diff --git a/plugins/databases/infobright/src/main/java/org/apache/hop/databases/infobright/InfobrightDatabaseMeta.java b/plugins/databases/infobright/src/main/java/org/apache/hop/databases/infobright/InfobrightDatabaseMeta.java
index 4f8a946..3dcc19d 100644
--- a/plugins/databases/infobright/src/main/java/org/apache/hop/databases/infobright/InfobrightDatabaseMeta.java
+++ b/plugins/databases/infobright/src/main/java/org/apache/hop/databases/infobright/InfobrightDatabaseMeta.java
@@ -22,7 +22,7 @@ import org.apache.hop.core.database.DatabaseMetaPlugin;
 import org.apache.hop.core.gui.plugin.GuiPlugin;
 import org.apache.hop.databases.mysql.MySqlDatabaseMeta;
 
-@DatabaseMetaPlugin(type = "INFOBRIGHT", typeDescription = "Infobright")
+@DatabaseMetaPlugin(type = "INFOBRIGHT", typeDescription = "Infobright", documentationUrl = "/database/databases/infobright.html")
 @GuiPlugin(id = "GUI-InfobrightDatabaseMeta")
 public class InfobrightDatabaseMeta extends MySqlDatabaseMeta {
 
diff --git a/plugins/databases/informix/src/main/java/org/apache/hop/databases/informix/InformixDatabaseMeta.java b/plugins/databases/informix/src/main/java/org/apache/hop/databases/informix/InformixDatabaseMeta.java
index 91292b1..a1ee559 100644
--- a/plugins/databases/informix/src/main/java/org/apache/hop/databases/informix/InformixDatabaseMeta.java
+++ b/plugins/databases/informix/src/main/java/org/apache/hop/databases/informix/InformixDatabaseMeta.java
@@ -29,11 +29,9 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Informix specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
+
  */
-@DatabaseMetaPlugin(type = "INFORMIX", typeDescription = "Informix")
+@DatabaseMetaPlugin(type = "INFORMIX", typeDescription = "Informix", documentationUrl = "/database/databases/informix.html")
 @GuiPlugin(id = "GUI-InformixDatabaseMeta")
 public class InformixDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/ingres/src/main/java/org/apache/hop/databases/ingres/IngresDatabaseMeta.java b/plugins/databases/ingres/src/main/java/org/apache/hop/databases/ingres/IngresDatabaseMeta.java
index 9b463c7..f56b85e 100644
--- a/plugins/databases/ingres/src/main/java/org/apache/hop/databases/ingres/IngresDatabaseMeta.java
+++ b/plugins/databases/ingres/src/main/java/org/apache/hop/databases/ingres/IngresDatabaseMeta.java
@@ -28,11 +28,8 @@ import org.apache.hop.core.util.Utils;
 
 /**
  * Contains Computer Associates Ingres specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "INGRES", typeDescription = "Ingres")
+@DatabaseMetaPlugin(type = "INGRES", typeDescription = "Ingres", documentationUrl = "/database/databases/ingres.html")
 @GuiPlugin(id = "GUI-IngresDatabaseMeta")
 public class IngresDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/interbase/src/main/java/org/apache/hop/databases/interbase/InterbaseDatabaseMeta.java b/plugins/databases/interbase/src/main/java/org/apache/hop/databases/interbase/InterbaseDatabaseMeta.java
index a6e159a..ff34795 100644
--- a/plugins/databases/interbase/src/main/java/org/apache/hop/databases/interbase/InterbaseDatabaseMeta.java
+++ b/plugins/databases/interbase/src/main/java/org/apache/hop/databases/interbase/InterbaseDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Interbase specific information through static final members
- *
- * @author Matt
- * @since 10-jan-2006
  */
-@DatabaseMetaPlugin(type = "INTERBASE", typeDescription = "Borland Interbase")
+@DatabaseMetaPlugin(type = "INTERBASE", typeDescription = "Borland Interbase", documentationUrl = "/database/databases/interbase.html")
 @GuiPlugin(id = "GUI-InterbaseDatabaseMeta")
 public class InterbaseDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/kingbasees/src/main/java/org/apache/hop/databases/kingbasees/KingbaseESDatabaseMeta.java b/plugins/databases/kingbasees/src/main/java/org/apache/hop/databases/kingbasees/KingbaseESDatabaseMeta.java
index 63660e8..3f1ca0a 100644
--- a/plugins/databases/kingbasees/src/main/java/org/apache/hop/databases/kingbasees/KingbaseESDatabaseMeta.java
+++ b/plugins/databases/kingbasees/src/main/java/org/apache/hop/databases/kingbasees/KingbaseESDatabaseMeta.java
@@ -26,12 +26,9 @@ import org.apache.hop.core.gui.plugin.GuiPlugin;
 import org.apache.hop.core.row.IValueMeta;
 
 /**
- * Contains Firebird specific information through static final members
- *
- * @author jjchu
- * @since 21-03-2008
+ * Contains KingbaseES specific information through static final members
  */
-@DatabaseMetaPlugin(type = "KINGBASEES", typeDescription = "KingbaseES")
+@DatabaseMetaPlugin(type = "KINGBASEES", typeDescription = "KingbaseES", documentationUrl = "/database/databases/kingbasees.html")
 @GuiPlugin(id = "GUI-KingbaseDatabaseMeta")
 public class KingbaseESDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   /** @return The extra option separator in database URL for this platform */
diff --git a/plugins/databases/mariadb/src/main/java/org/apache/hop/databases/mariadb/MariaDBDatabaseMeta.java b/plugins/databases/mariadb/src/main/java/org/apache/hop/databases/mariadb/MariaDBDatabaseMeta.java
index 4376484..d0ae6ee 100644
--- a/plugins/databases/mariadb/src/main/java/org/apache/hop/databases/mariadb/MariaDBDatabaseMeta.java
+++ b/plugins/databases/mariadb/src/main/java/org/apache/hop/databases/mariadb/MariaDBDatabaseMeta.java
@@ -28,7 +28,7 @@ import java.sql.DatabaseMetaData;
 import java.sql.ResultSetMetaData;
 import java.util.Set;
 
-@DatabaseMetaPlugin(type = "MARIADB", typeDescription = "MariaDB")
+@DatabaseMetaPlugin(type = "MARIADB", typeDescription = "MariaDB", documentationUrl = "/database/databases/mariadb.html")
 @GuiPlugin(id = "GUI-MariaDBDatabaseMeta")
 public class MariaDBDatabaseMeta extends MySqlDatabaseMeta {
   private static final Class<?> PKG = MariaDBDatabaseMeta.class; // For Translator
diff --git a/plugins/databases/monetdb/src/main/java/org/apache/hop/databases/monetdb/MonetDBDatabaseMeta.java b/plugins/databases/monetdb/src/main/java/org/apache/hop/databases/monetdb/MonetDBDatabaseMeta.java
index 09cbe06..d54b827 100644
--- a/plugins/databases/monetdb/src/main/java/org/apache/hop/databases/monetdb/MonetDBDatabaseMeta.java
+++ b/plugins/databases/monetdb/src/main/java/org/apache/hop/databases/monetdb/MonetDBDatabaseMeta.java
@@ -28,11 +28,8 @@ import org.apache.hop.core.util.Utils;
 
 /**
  * Contains Generic Database Connection information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "MONETDB", typeDescription = "MonetDB")
+@DatabaseMetaPlugin(type = "MONETDB", typeDescription = "MonetDB", documentationUrl = "/database/databases/monetdb.html")
 @GuiPlugin(id = "GUI-MonetDBDatabaseMeta")
 public class MonetDBDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/mssql/src/main/java/org/apache/hop/databases/mssql/MsSqlServerDatabaseMeta.java b/plugins/databases/mssql/src/main/java/org/apache/hop/databases/mssql/MsSqlServerDatabaseMeta.java
index a2898b9..e796226 100644
--- a/plugins/databases/mssql/src/main/java/org/apache/hop/databases/mssql/MsSqlServerDatabaseMeta.java
+++ b/plugins/databases/mssql/src/main/java/org/apache/hop/databases/mssql/MsSqlServerDatabaseMeta.java
@@ -31,11 +31,8 @@ import java.sql.ResultSet;
 
 /**
  * Contains MS SQL specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "MSSQL", typeDescription = "MS SQL Server")
+@DatabaseMetaPlugin(type = "MSSQL", typeDescription = "MS SQL Server", documentationUrl = "/database/databases/mssql.html")
 @GuiPlugin(id = "GUI-MSSQLServerDatabaseMeta")
 public class MsSqlServerDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/mssqlnative/src/main/java/org/apache/hop/databases/mssqlnative/MsSqlServerNativeDatabaseMeta.java b/plugins/databases/mssqlnative/src/main/java/org/apache/hop/databases/mssqlnative/MsSqlServerNativeDatabaseMeta.java
index 2b95240..da28369 100644
--- a/plugins/databases/mssqlnative/src/main/java/org/apache/hop/databases/mssqlnative/MsSqlServerNativeDatabaseMeta.java
+++ b/plugins/databases/mssqlnative/src/main/java/org/apache/hop/databases/mssqlnative/MsSqlServerNativeDatabaseMeta.java
@@ -35,7 +35,7 @@ import org.eclipse.swt.widgets.Control;
 import java.util.ArrayList;
 import java.util.List;
 
-@DatabaseMetaPlugin(type = "MSSQLNATIVE", typeDescription = "MS SQL Server (Native)")
+@DatabaseMetaPlugin(type = "MSSQLNATIVE", typeDescription = "MS SQL Server (Native)", documentationUrl = "/database/databases/mssqlnative.html")
 @GuiPlugin(id = "GUI-MSSQLServerNativeDatabaseMeta")
 public class MsSqlServerNativeDatabaseMeta extends MsSqlServerDatabaseMeta
     implements IGuiPluginCompositeWidgetsListener {
diff --git a/plugins/databases/mysql/src/main/java/org/apache/hop/databases/mysql/MySqlDatabaseMeta.java b/plugins/databases/mysql/src/main/java/org/apache/hop/databases/mysql/MySqlDatabaseMeta.java
index 01c0049..c7b850a 100644
--- a/plugins/databases/mysql/src/main/java/org/apache/hop/databases/mysql/MySqlDatabaseMeta.java
+++ b/plugins/databases/mysql/src/main/java/org/apache/hop/databases/mysql/MySqlDatabaseMeta.java
@@ -42,11 +42,8 @@ import java.util.Set;
 
 /**
  * Contains MySQL specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "MYSQL", typeDescription = "MySQL")
+@DatabaseMetaPlugin(type = "MYSQL", typeDescription = "MySQL", documentationUrl = "/database/databases/mysql.html")
 @GuiPlugin(id = "GUI-MySQLDatabaseMeta")
 public class MySqlDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   private static final Class<?> PKG = MySqlDatabaseMeta.class; // For Translator
diff --git a/plugins/databases/netezza/src/main/java/org/apache/hop/databases/netezza/NetezzaDatabaseMeta.java b/plugins/databases/netezza/src/main/java/org/apache/hop/databases/netezza/NetezzaDatabaseMeta.java
index 0783f3b..c4bb688 100644
--- a/plugins/databases/netezza/src/main/java/org/apache/hop/databases/netezza/NetezzaDatabaseMeta.java
+++ b/plugins/databases/netezza/src/main/java/org/apache/hop/databases/netezza/NetezzaDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Netezza specific information through static final members
- *
- * @author Biswapesh
- * @since 16-oct-2006
  */
-@DatabaseMetaPlugin(type = "NETEZZA", typeDescription = "Netezza")
+@DatabaseMetaPlugin(type = "NETEZZA", typeDescription = "Netezza", documentationUrl = "/database/databases/netezza.html")
 @GuiPlugin(id = "GUI-NetezzaDatabaseMeta")
 public class NetezzaDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   public static final int MAX_CHAR_LEN = 32767;
diff --git a/plugins/databases/oracle/src/main/java/org/apache/hop/databases/oracle/OracleDatabaseMeta.java b/plugins/databases/oracle/src/main/java/org/apache/hop/databases/oracle/OracleDatabaseMeta.java
index 5064ec7..e2e4bd1 100644
--- a/plugins/databases/oracle/src/main/java/org/apache/hop/databases/oracle/OracleDatabaseMeta.java
+++ b/plugins/databases/oracle/src/main/java/org/apache/hop/databases/oracle/OracleDatabaseMeta.java
@@ -29,11 +29,8 @@ import java.sql.ResultSet;
 
 /**
  * Contains Oracle specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "ORACLE", typeDescription = "Oracle")
+@DatabaseMetaPlugin(type = "ORACLE", typeDescription = "Oracle", documentationUrl = "/database/databases/oracle.html")
 @GuiPlugin(id = "GUI-OracleDatabaseMeta")
 public class OracleDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/oraclerdb/src/main/java/org/apache/hop/databases/oraclerdb/OracleRDBDatabaseMeta.java b/plugins/databases/oraclerdb/src/main/java/org/apache/hop/databases/oraclerdb/OracleRDBDatabaseMeta.java
index 4fc8232..7ad14bc 100644
--- a/plugins/databases/oraclerdb/src/main/java/org/apache/hop/databases/oraclerdb/OracleRDBDatabaseMeta.java
+++ b/plugins/databases/oraclerdb/src/main/java/org/apache/hop/databases/oraclerdb/OracleRDBDatabaseMeta.java
@@ -28,11 +28,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Oracle RDB specific information through static final members
- *
- * @author Matt
- * @since 27-jul-2006
  */
-@DatabaseMetaPlugin(type = "ORACLERDB", typeDescription = "Oracle RDB")
+@DatabaseMetaPlugin(type = "ORACLERDB", typeDescription = "Oracle RDB", documentationUrl = "/database/databases/oraclerdb.html")
 @GuiPlugin(id = "GUI-OracleRDBDatabaseMeta")
 public class OracleRDBDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/postgresql/src/main/java/org/apache/hop/databases/postgresql/PostgreSqlDatabaseMeta.java b/plugins/databases/postgresql/src/main/java/org/apache/hop/databases/postgresql/PostgreSqlDatabaseMeta.java
index 1246419..fc5801f 100644
--- a/plugins/databases/postgresql/src/main/java/org/apache/hop/databases/postgresql/PostgreSqlDatabaseMeta.java
+++ b/plugins/databases/postgresql/src/main/java/org/apache/hop/databases/postgresql/PostgreSqlDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains PostgreSQL specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "POSTGRESQL", typeDescription = "PostgreSQL")
+@DatabaseMetaPlugin(type = "POSTGRESQL", typeDescription = "PostgreSQL", documentationUrl = "/database/databases/postgresql.html")
 @GuiPlugin(id = "GUI-PostgreSQLDatabaseMeta")
 public class PostgreSqlDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   private static final int GB_LIMIT = 1_073_741_824;
diff --git a/plugins/databases/redshift/src/main/java/org/apache/hop/databases/redshift/RedshiftDatabaseMeta.java b/plugins/databases/redshift/src/main/java/org/apache/hop/databases/redshift/RedshiftDatabaseMeta.java
index 928fc65..4152451 100644
--- a/plugins/databases/redshift/src/main/java/org/apache/hop/databases/redshift/RedshiftDatabaseMeta.java
+++ b/plugins/databases/redshift/src/main/java/org/apache/hop/databases/redshift/RedshiftDatabaseMeta.java
@@ -21,8 +21,7 @@ import org.apache.hop.core.database.DatabaseMetaPlugin;
 import org.apache.hop.core.gui.plugin.GuiPlugin;
 import org.apache.hop.databases.postgresql.PostgreSqlDatabaseMeta;
 
-/** @author mbatchelor */
-@DatabaseMetaPlugin(type = "REDSHIFT", typeDescription = "Redshift")
+@DatabaseMetaPlugin(type = "REDSHIFT", typeDescription = "Redshift", documentationUrl = "/database/databases/redshift.html")
 @GuiPlugin(id = "GUI-RedshiftDatabaseMeta")
 public class RedshiftDatabaseMeta extends PostgreSqlDatabaseMeta {
 
diff --git a/plugins/databases/sapdb/src/main/java/org/apache/hop/databases/sapdb/SAPDBDatabaseMeta.java b/plugins/databases/sapdb/src/main/java/org/apache/hop/databases/sapdb/SAPDBDatabaseMeta.java
index ad33ffe..6d9eb4a 100644
--- a/plugins/databases/sapdb/src/main/java/org/apache/hop/databases/sapdb/SAPDBDatabaseMeta.java
+++ b/plugins/databases/sapdb/src/main/java/org/apache/hop/databases/sapdb/SAPDBDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains SAP DB specific information through static final members
- *
- * @author Matt
- * @since 30-06-2005
  */
-@DatabaseMetaPlugin(type = "SAPDB", typeDescription = "MaxDB (SAP DB)")
+@DatabaseMetaPlugin(type = "SAPDB", typeDescription = "MaxDB (SAP DB)", documentationUrl = "/database/databases/sapdb.html")
 @GuiPlugin(id = "GUI-SAPDBDatabaseMeta")
 public class SAPDBDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/snowflake/src/main/java/org/apache/hop/databases/snowflake/SnowflakeDatabaseMeta.java b/plugins/databases/snowflake/src/main/java/org/apache/hop/databases/snowflake/SnowflakeDatabaseMeta.java
index 9247b02..f50b20b 100644
--- a/plugins/databases/snowflake/src/main/java/org/apache/hop/databases/snowflake/SnowflakeDatabaseMeta.java
+++ b/plugins/databases/snowflake/src/main/java/org/apache/hop/databases/snowflake/SnowflakeDatabaseMeta.java
@@ -39,7 +39,7 @@ import java.util.Map;
  *
  * <p>https://docs.snowflake.net/manuals/sql-reference/info-schema.html
  */
-@DatabaseMetaPlugin(type = "SNOWFLAKE", typeDescription = "Snowflake")
+@DatabaseMetaPlugin(type = "SNOWFLAKE", typeDescription = "Snowflake", documentationUrl = "/database/databases/snowflake.html")
 @GuiPlugin(id = "GUI-SnowflakeDatabaseMeta")
 public class SnowflakeDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/sqlbase/src/main/java/org/apache/hop/databases/sqlbase/GuptaDatabaseMeta.java b/plugins/databases/sqlbase/src/main/java/org/apache/hop/databases/sqlbase/GuptaDatabaseMeta.java
index 7925a13..0a67ce8 100644
--- a/plugins/databases/sqlbase/src/main/java/org/apache/hop/databases/sqlbase/GuptaDatabaseMeta.java
+++ b/plugins/databases/sqlbase/src/main/java/org/apache/hop/databases/sqlbase/GuptaDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Gupta SQLBase specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "SQLBASE", typeDescription = "Gupta SQL Base")
+@DatabaseMetaPlugin(type = "SQLBASE", typeDescription = "Gupta SQL Base", documentationUrl = "/database/databases/sqlbase.html")
 @GuiPlugin(id = "GUI-SQLBaseDatabaseMeta")
 public class GuptaDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/sqlite/src/main/java/org/apache/hop/databases/sqlite/SqliteDatabaseMeta.java b/plugins/databases/sqlite/src/main/java/org/apache/hop/databases/sqlite/SqliteDatabaseMeta.java
index 14bb680..5688ca7 100644
--- a/plugins/databases/sqlite/src/main/java/org/apache/hop/databases/sqlite/SqliteDatabaseMeta.java
+++ b/plugins/databases/sqlite/src/main/java/org/apache/hop/databases/sqlite/SqliteDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains SQLite specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "SQLITE", typeDescription = "SQLite")
+@DatabaseMetaPlugin(type = "SQLITE", typeDescription = "SQLite", documentationUrl = "/database/databases/sqlite.html")
 @GuiPlugin(id = "GUI-SQLiteDatabaseMeta")
 public class SqliteDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/sybase/src/main/java/org/apache/hop/databases/sybase/SybaseDatabaseMeta.java b/plugins/databases/sybase/src/main/java/org/apache/hop/databases/sybase/SybaseDatabaseMeta.java
index 4001c16..7933681 100644
--- a/plugins/databases/sybase/src/main/java/org/apache/hop/databases/sybase/SybaseDatabaseMeta.java
+++ b/plugins/databases/sybase/src/main/java/org/apache/hop/databases/sybase/SybaseDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Sybase specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "SYBASE", typeDescription = "Sybase")
+@DatabaseMetaPlugin(type = "SYBASE", typeDescription = "Sybase", documentationUrl = "/database/databases/sybase.html")
 @GuiPlugin(id = "GUI-SybaseDatabaseMeta")
 public class SybaseDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/sybaseiq/src/main/java/org/apache/hop/databases/sybaseiq/SybaseIQDatabaseMeta.java b/plugins/databases/sybaseiq/src/main/java/org/apache/hop/databases/sybaseiq/SybaseIQDatabaseMeta.java
index 4e1bd98..acf1b6a 100644
--- a/plugins/databases/sybaseiq/src/main/java/org/apache/hop/databases/sybaseiq/SybaseIQDatabaseMeta.java
+++ b/plugins/databases/sybaseiq/src/main/java/org/apache/hop/databases/sybaseiq/SybaseIQDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Sybase IQ specific information through static final members
- *
- * @author fumigateAnt, liuhuaiyong <li...@gmail.com>
- * @since 18-09-2007
  */
-@DatabaseMetaPlugin(type = "SYBASEIQ", typeDescription = "Sybase IQ")
+@DatabaseMetaPlugin(type = "SYBASEIQ", typeDescription = "Sybase IQ", documentationUrl = "/database/databases/sybaseiq.html")
 @GuiPlugin(id = "GUI-SybaseIQDatabaseMeta")
 public class SybaseIQDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/teradata/src/main/java/org/apache/hop/databases/teradata/TeradataDatabaseMeta.java b/plugins/databases/teradata/src/main/java/org/apache/hop/databases/teradata/TeradataDatabaseMeta.java
index f6737cd..5941272 100644
--- a/plugins/databases/teradata/src/main/java/org/apache/hop/databases/teradata/TeradataDatabaseMeta.java
+++ b/plugins/databases/teradata/src/main/java/org/apache/hop/databases/teradata/TeradataDatabaseMeta.java
@@ -31,11 +31,8 @@ import java.util.Map;
 
 /**
  * Contains NCR Teradata specific information through static final members
- *
- * @author Matt
- * @since 26-jul-2006
  */
-@DatabaseMetaPlugin(type = "TERADATA", typeDescription = "Teradata")
+@DatabaseMetaPlugin(type = "TERADATA", typeDescription = "Teradata", documentationUrl = "/database/databases/teradata.html")
 @GuiPlugin(id = "GUI-TeradataDatabaseMeta")
 public class TeradataDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   @Override
diff --git a/plugins/databases/universe/src/main/java/org/apache/hop/databases/universe/UniVerseDatabaseMeta.java b/plugins/databases/universe/src/main/java/org/apache/hop/databases/universe/UniVerseDatabaseMeta.java
index 0a10eae..00e9ab9 100644
--- a/plugins/databases/universe/src/main/java/org/apache/hop/databases/universe/UniVerseDatabaseMeta.java
+++ b/plugins/databases/universe/src/main/java/org/apache/hop/databases/universe/UniVerseDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains IBM UniVerse database specific information through static final members
- *
- * @author Matt
- * @since 16-nov-2006
  */
-@DatabaseMetaPlugin(type = "UNIVERSE", typeDescription = "UniVerse database")
+@DatabaseMetaPlugin(type = "UNIVERSE", typeDescription = "IBM UniVerse database", documentationUrl = "/database/databases/universe.html")
 @GuiPlugin(id = "GUI-UniVerseDatabaseMeta")
 public class UniVerseDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
   private static final int MAX_VARCHAR_LENGTH = 65535;
diff --git a/plugins/databases/vectorwise/src/main/java/org/apache/hop/databases/vectorwise/VectorWiseDatabaseMeta.java b/plugins/databases/vectorwise/src/main/java/org/apache/hop/databases/vectorwise/VectorWiseDatabaseMeta.java
index 20f0d05..a8ec5de 100644
--- a/plugins/databases/vectorwise/src/main/java/org/apache/hop/databases/vectorwise/VectorWiseDatabaseMeta.java
+++ b/plugins/databases/vectorwise/src/main/java/org/apache/hop/databases/vectorwise/VectorWiseDatabaseMeta.java
@@ -27,11 +27,8 @@ import org.apache.hop.databases.ingres.IngresDatabaseMeta;
 
 /**
  * Contains Computer Associates Ingres specific information through static final members
- *
- * @author Matt
- * @since 11-mrt-2005
  */
-@DatabaseMetaPlugin(type = "VECTORWISE", typeDescription = "Ingres VectorWise")
+@DatabaseMetaPlugin(type = "VECTORWISE", typeDescription = "Ingres VectorWise", documentationUrl = "/database/databases/vectorwise.html")
 @GuiPlugin(id = "GUI-VectorWiseDatabaseMeta")
 public class VectorWiseDatabaseMeta extends IngresDatabaseMeta implements IDatabase {
 
diff --git a/plugins/databases/vertica/src/main/java/org/apache/hop/databases/vertica/Vertica5DatabaseMeta.java b/plugins/databases/vertica/src/main/java/org/apache/hop/databases/vertica/Vertica5DatabaseMeta.java
index a4892e1..4b3ae4f 100644
--- a/plugins/databases/vertica/src/main/java/org/apache/hop/databases/vertica/Vertica5DatabaseMeta.java
+++ b/plugins/databases/vertica/src/main/java/org/apache/hop/databases/vertica/Vertica5DatabaseMeta.java
@@ -27,15 +27,8 @@ import java.sql.SQLException;
 
 /**
  * Vertica Analytic Database version 5 and later (changed driver class name)
- *
- * @author DEinspanjer
- * @author Matt
- * @author Jens
- * @since 2009-03-16
- * @since May-2008
- * @since Aug-2012
  */
-@DatabaseMetaPlugin(type = "VERTICA5", typeDescription = "Vertica 5")
+@DatabaseMetaPlugin(type = "VERTICA5", typeDescription = "Vertica 5", documentationUrl = "/database/databases/vertica.html")
 @GuiPlugin(id = "GUI-Vertica5DatabaseMeta")
 public class Vertica5DatabaseMeta extends VerticaDatabaseMeta {
   @Override
diff --git a/plugins/databases/vertica/src/main/java/org/apache/hop/databases/vertica/VerticaDatabaseMeta.java b/plugins/databases/vertica/src/main/java/org/apache/hop/databases/vertica/VerticaDatabaseMeta.java
index 340f184..f264d38 100644
--- a/plugins/databases/vertica/src/main/java/org/apache/hop/databases/vertica/VerticaDatabaseMeta.java
+++ b/plugins/databases/vertica/src/main/java/org/apache/hop/databases/vertica/VerticaDatabaseMeta.java
@@ -27,13 +27,8 @@ import org.apache.hop.core.row.IValueMeta;
 
 /**
  * Contains Vertica Analytic Database information through static final members
- *
- * @author DEinspanjer
- * @author Matt
- * @since 2009-03-16
- * @since May-2008
  */
-@DatabaseMetaPlugin(type = "VERTICA", typeDescription = "Vertica")
+@DatabaseMetaPlugin(type = "VERTICA", typeDescription = "Vertica", documentationUrl = "/database/databases/vertica.html")
 @GuiPlugin(id = "GUI-VerticaDatabaseMeta")
 public class VerticaDatabaseMeta extends BaseDatabaseMeta implements IDatabase {
 
diff --git a/ui/src/main/java/org/apache/hop/ui/core/database/DatabaseMetaEditor.java b/ui/src/main/java/org/apache/hop/ui/core/database/DatabaseMetaEditor.java
index 530a574..24f72b0 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/database/DatabaseMetaEditor.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/database/DatabaseMetaEditor.java
@@ -26,12 +26,14 @@ import org.apache.hop.core.plugins.IPlugin;
 import org.apache.hop.core.plugins.PluginRegistry;
 import org.apache.hop.core.variables.IVariables;
 import org.apache.hop.i18n.BaseMessages;
+import org.apache.hop.metadata.plugin.MetadataPluginType;
 import org.apache.hop.ui.core.PropsUi;
 import org.apache.hop.ui.core.database.dialog.DatabaseExplorerDialog;
 import org.apache.hop.ui.core.dialog.ErrorDialog;
 import org.apache.hop.ui.core.dialog.ShowMessageDialog;
 import org.apache.hop.ui.core.gui.GuiCompositeWidgets;
 import org.apache.hop.ui.core.gui.GuiCompositeWidgetsAdapter;
+import org.apache.hop.ui.core.gui.GuiResource;
 import org.apache.hop.ui.core.metadata.MetadataEditor;
 import org.apache.hop.ui.core.metadata.MetadataManager;
 import org.apache.hop.ui.core.widget.ColumnInfo;
@@ -39,6 +41,7 @@ import org.apache.hop.ui.core.widget.TableView;
 import org.apache.hop.ui.core.widget.TextVar;
 import org.apache.hop.ui.hopgui.HopGui;
 import org.apache.hop.ui.hopgui.perspective.metadata.MetadataPerspective;
+import org.apache.hop.ui.util.HelpUtils;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CCombo;
 import org.eclipse.swt.custom.CTabFolder;
@@ -64,7 +67,7 @@ public class DatabaseMetaEditor extends MetadataEditor<DatabaseMeta> {
 
   private Composite wGeneralComp;
   private Text wName;
-  private CCombo wConnectionType;
+  private Combo wConnectionType;
   private Label wlManualUrl;
   private TextVar wManualUrl;
   private Label wlUsername;
@@ -236,15 +239,26 @@ public class DatabaseMetaEditor extends MetadataEditor<DatabaseMeta> {
     fdlConnectionType.left = new FormAttachment(0, 0); // First one in the left top corner
     fdlConnectionType.right = new FormAttachment(middle, 0);
     wlConnectionType.setLayoutData(fdlConnectionType);
-    wConnectionType = new CCombo(wGeneralComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
-    props.setLook(wConnectionType);
-    wConnectionType.setEditable(true);
+    
+    ToolBar wToolBar = new ToolBar(wGeneralComp, SWT.FLAT | SWT.HORIZONTAL);
+    FormData fdToolBar = new FormData();
+    fdToolBar.right = new FormAttachment(100, 0);
+    fdToolBar.top = new FormAttachment(0, 0);
+    wToolBar.setLayoutData(fdToolBar);
+    props.setLook(wToolBar);
+
+    ToolItem item = new ToolItem(wToolBar, SWT.PUSH);
+    item.setImage(GuiResource.getInstance().getImageHelpWeb());
+    item.setToolTipText(BaseMessages.getString(PKG, "System.Tooltip.Help"));
+    item.addListener(SWT.Selection, e -> onHelpDatabaseType());
+    
+    wConnectionType = new Combo(wGeneralComp, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
     wConnectionType.setItems(getConnectionTypes());
-
+    props.setLook(wConnectionType);
     FormData fdConnectionType = new FormData();
     fdConnectionType.top = new FormAttachment(wlConnectionType, 0, SWT.CENTER);
     fdConnectionType.left = new FormAttachment(middle, margin); // To the right of the label
-    fdConnectionType.right = new FormAttachment(100, 0);
+    fdConnectionType.right = new FormAttachment(wToolBar, -margin);
     wConnectionType.setLayoutData(fdConnectionType);
     Control lastControl = wConnectionType;
 
@@ -722,6 +736,17 @@ public class DatabaseMetaEditor extends MetadataEditor<DatabaseMeta> {
     }
   }
 
+  private void onHelpDatabaseType() {
+    PluginRegistry registry = PluginRegistry.getInstance();
+    String name = wConnectionType.getText();
+    for (IPlugin plugin : registry.getPlugins(DatabasePluginType.class)) {
+      if (plugin.getName().equals(name)) {
+        HelpUtils.openHelp(getShell(), plugin);
+        break;
+      }
+    }
+  }
+  
   @Override
   public void setWidgetsContent() {
 
diff --git a/ui/src/main/java/org/apache/hop/ui/util/HelpUtils.java b/ui/src/main/java/org/apache/hop/ui/util/HelpUtils.java
index 1c659df..5099656 100644
--- a/ui/src/main/java/org/apache/hop/ui/util/HelpUtils.java
+++ b/ui/src/main/java/org/apache/hop/ui/util/HelpUtils.java
@@ -17,6 +17,8 @@
 
 package org.apache.hop.ui.util;
 
+import static org.apache.hop.core.Const.getDocUrl;
+import org.apache.hop.core.database.DatabasePluginType;
 import org.apache.hop.core.plugins.ActionPluginType;
 import org.apache.hop.core.plugins.IPlugin;
 import org.apache.hop.core.plugins.TransformPluginType;
@@ -32,8 +34,6 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.MessageBox;
 import org.eclipse.swt.widgets.Shell;
 
-import static org.apache.hop.core.Const.getDocUrl;
-
 public class HelpUtils {
   private static final Class<?> PKG = HelpUtils.class; // For Translator
 
@@ -77,11 +77,13 @@ public class HelpUtils {
     } else {
       MessageBox mb = new MessageBox(shell, SWT.OK | SWT.ICON_ERROR);
       String msg = "";
-      // only supports Transform, Action and Metadata - extend if required.
+      // only supports Transform, Action, Database and Metadata - extend if required.
       if (plugin.getPluginType().equals(TransformPluginType.class)) {
         msg = BaseMessages.getString(PKG, "System.Help.Transform.IsNotAvailable", plugin.getName());
       } else if (plugin.getPluginType().equals(ActionPluginType.class)) {
         msg = BaseMessages.getString(PKG, "System.Help.Action.IsNotAvailable", plugin.getName());
+      } else if (plugin.getPluginType().equals(DatabasePluginType.class)) {
+        msg = BaseMessages.getString(PKG, "System.Help.Database.IsNotAvailable", plugin.getName());
       } else {
         msg = BaseMessages.getString(PKG, "System.Help.Metadata.IsNotAvailable", plugin.getName());
       }