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  

Reply via email to