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 439c23d19e Show if a JDBC driver is install and eventually which
version #2488.
new 1d870bc5a6 Merge pull request #2497 from nadment/2488
439c23d19e is described below
commit 439c23d19e2a4efb1c4632331f8b0e329084775b
Author: Nicolas Adment <[email protected]>
AuthorDate: Wed Mar 1 23:31:09 2023 +0100
Show if a JDBC driver is install and eventually which version #2488.
Don't work for Derby, but seems to be a problem with the Derby driver
---
.../hop/ui/core/database/DatabaseMetaEditor.java | 55 +++++++++++++++++++++-
.../database/messages/messages_en_US.properties | 3 +-
2 files changed, 55 insertions(+), 3 deletions(-)
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 6a05f63db3..8fde20ddb6 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
@@ -31,6 +31,7 @@ import
org.apache.hop.core.gui.plugin.toolbar.GuiToolbarElement;
import org.apache.hop.core.gui.plugin.toolbar.GuiToolbarElementFilter;
import org.apache.hop.core.plugins.IPlugin;
import org.apache.hop.core.plugins.PluginRegistry;
+import org.apache.hop.core.util.Utils;
import org.apache.hop.core.variables.IVariables;
import org.apache.hop.i18n.BaseMessages;
import org.apache.hop.ui.core.PropsUi;
@@ -89,6 +90,7 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
private Composite wGeneralComp;
private Text wName;
private Combo wConnectionType;
+ private Label wDriverInfo;
private TextVar wManualUrl;
private Label wlUsername;
private TextVar wUsername;
@@ -283,6 +285,27 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
fdConnectionType.right = new FormAttachment(wToolBar, -margin);
wConnectionType.setLayoutData(fdConnectionType);
Control lastControl = wConnectionType;
+
+ // JDBC Driver information
+ //
+ Label wlDriverInfo = new Label(wGeneralComp, SWT.RIGHT);
+ PropsUi.setLook(wlDriverInfo);
+ wlDriverInfo.setText(BaseMessages.getString(PKG,
"DatabaseDialog.label.InstalledDriver"));
+ FormData fdlDriverInfo = new FormData();
+ fdlDriverInfo.top = new FormAttachment(lastControl, margin * 2);
+ fdlDriverInfo.left = new FormAttachment(0, 0);
+ fdlDriverInfo.right = new FormAttachment(middle, -margin);
+ wlDriverInfo.setLayoutData(fdlDriverInfo);
+
+ wDriverInfo = new Label(wGeneralComp, SWT.LEFT);
+ wDriverInfo.setEnabled(false);
+ PropsUi.setLook(wDriverInfo);
+ FormData fdDriverInfo = new FormData();
+ fdDriverInfo.top = new FormAttachment(wlDriverInfo, 0, SWT.CENTER);
+ fdDriverInfo.left = new FormAttachment(middle, 0);
+ fdDriverInfo.right = new FormAttachment(100, 0);
+ wDriverInfo.setLayoutData(fdDriverInfo);
+ lastControl = wDriverInfo;
// Username field
//
@@ -354,6 +377,7 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
public void widgetModified(
GuiCompositeWidgets compositeWidgets, Control changedWidget,
String widgetId) {
setChanged();
+ updateDriverInfo();
}
});
@@ -455,6 +479,7 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
public void widgetModified(
GuiCompositeWidgets compositeWidgets, Control changedWidget,
String widgetId) {
setChanged();
+ updateDriverInfo();
}
});
addCompositeWidgetsUsernamePassword();
@@ -467,7 +492,7 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
busyChangingConnectionType.set(false);
}
-
+
private void addAdvancedTab() {
CTabItem wAdvancedTab = new CTabItem(wTabFolder, SWT.NONE);
@@ -779,7 +804,7 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
wName.setText(Const.NVL(databaseMeta.getName(), ""));
wConnectionType.setText(Const.NVL(databaseMeta.getPluginName(), ""));
-
+
wUsername.setText(Const.NVL(databaseMeta.getUsername(), ""));
wPassword.setText(Const.NVL(databaseMeta.getPassword(), ""));
@@ -812,6 +837,7 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
wOptions.setRowNums();
wOptions.optWidth(true);
+ updateDriverInfo();
enableFields();
}
@@ -848,6 +874,31 @@ public class DatabaseMetaEditor extends
MetadataEditor<DatabaseMeta> {
}
}
+ /**
+ * Update JDBC driver information and version
+ */
+ protected void updateDriverInfo() {
+ try {
+ DatabaseMeta databaseMeta = new DatabaseMeta();
+ this.getWidgetsContent(databaseMeta);
+
+ wDriverInfo.setText("");
+ String driverName = databaseMeta.getDriverClass(getVariables());
+ if ( !Utils.isEmpty(driverName) ) {
+ ClassLoader classLoader =
databaseMeta.getIDatabase().getClass().getClassLoader();
+ Class<?> driver = classLoader.loadClass(driverName);
+
+ if ( driver.getPackage().getImplementationVersion()!=null ) {
+ driverName = driverName+"
("+driver.getPackage().getImplementationVersion()+")";
+ }
+
+ wDriverInfo.setText(driverName);
+ }
+ } catch (Exception e) {
+ wDriverInfo.setText("No driver installed");
+ }
+ }
+
/** Test the database connection */
public static final void testConnection(
Shell shell, IVariables variables, DatabaseMeta databaseMeta) {
diff --git
a/ui/src/main/resources/org/apache/hop/ui/core/database/messages/messages_en_US.properties
b/ui/src/main/resources/org/apache/hop/ui/core/database/messages/messages_en_US.properties
index 5f473d0142..2a82f5170b 100644
---
a/ui/src/main/resources/org/apache/hop/ui/core/database/messages/messages_en_US.properties
+++
b/ui/src/main/resources/org/apache/hop/ui/core/database/messages/messages_en_US.properties
@@ -33,7 +33,8 @@ DatabaseDialog.label.ConnectionPreserveCase=Preserve case of
reserved words
DatabaseDialog.label.ConnectionSQLStatements=The SQL statements to run after
connecting (; separated)
DatabaseDialog.label.ConnectionSupportsBoolean=Supports the Boolean data type
DatabaseDialog.label.ConnectionSupportsTimestamp=Supports the Timestamp data
type
-DatabaseDialog.label.ConnectionType=Connection type
+DatabaseDialog.label.ConnectionType=Connection type
+DatabaseDialog.label.InstalledDriver=Installed driver
DatabaseDialog.label.DatabaseName=Database name
DatabaseDialog.label.DriverClass=Driver class
DatabaseDialog.label.InformixServername=Informix Servername