diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java index 4a5e2cf9d167cb09832153b2806555e2162bb868..3f4ab9dd969f54472187b4a5817616a5d3834e93 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/registry/DataSourceRegistry.java @@ -940,9 +940,16 @@ public class DataSourceRegistry implements DBPDataSourceRegistry atts.getValue(RegistryConstants.ATTR_NAME), atts.getValue(RegistryConstants.ATTR_VALUE)); } else if (curDataSource != null) { - curDataSource.getConnectionConfiguration().setProperty( - atts.getValue(RegistryConstants.ATTR_NAME), - atts.getValue(RegistryConstants.ATTR_VALUE)); + final String propName = atts.getValue(RegistryConstants.ATTR_NAME); + final String propValue = atts.getValue(RegistryConstants.ATTR_VALUE); + if (propName != null) { + if (propName.startsWith(DBConstants.INTERNAL_PROP_PREFIX)) { + // Backward compatibility - internal properties are provider properties + curDataSource.getConnectionConfiguration().setProviderProperty(propName, propValue); + } else { + curDataSource.getConnectionConfiguration().setProperty(propName, propValue); + } + } } break; case RegistryConstants.TAG_PROVIDER_PROPERTY: diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPropertiesControl.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPropertiesControl.java index bef338242fbf08256d88737bf6f17f8c16086f58..1cb2922fbfeaae5b5034f5e64468c355d634d771 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPropertiesControl.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/dialogs/connection/ConnectionPropertiesControl.java @@ -24,11 +24,10 @@ import org.eclipse.swt.widgets.Composite; import org.jkiss.dbeaver.DBException; import org.jkiss.dbeaver.Log; import org.jkiss.dbeaver.core.CoreMessages; -import org.jkiss.dbeaver.model.DBConstants; -import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor; import org.jkiss.dbeaver.model.connection.DBPConnectionConfiguration; import org.jkiss.dbeaver.model.connection.DBPDriver; import org.jkiss.dbeaver.model.impl.PropertyDescriptor; +import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor; import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor; import org.jkiss.dbeaver.runtime.properties.PropertySourceCustom; import org.jkiss.dbeaver.ui.dialogs.EnterNameDialog; @@ -160,9 +159,6 @@ public class ConnectionPropertiesControl extends PropertyTreeViewer { // Find prop values which are not from driver for (Object propId : properties.keySet()) { final String propName = propId.toString(); - if (propName.startsWith(DBConstants.INTERNAL_PROP_PREFIX)) { - continue; - } if (!propNames.contains(propName)) { customProperties.add(new PropertyDescriptor( USER_PROPERTIES_CATEGORY, diff --git a/plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/DB2DataSourceProvider.java b/plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/DB2DataSourceProvider.java index 5b8e042f33ce1c3a2a0a5717d3a4452e26993c29..ac52ce0a3c022553eeacbdfcd8c68f694d610bc6 100644 --- a/plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/DB2DataSourceProvider.java +++ b/plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/DB2DataSourceProvider.java @@ -77,7 +77,7 @@ public class DB2DataSourceProvider extends JDBCDataSourceProvider { if (!CommonUtils.isEmpty(connectionInfo.getDatabaseName())) { url.append(connectionInfo.getDatabaseName()); } - Map properties = connectionInfo.getProperties(); + Map properties = connectionInfo.getProviderProperties(); boolean traceEnabled = CommonUtils.getBoolean(properties.get(DB2Constants.PROP_TRACE_ENABLED), false); if (traceEnabled) { url.append(":traceDirectory=").append(CommonUtils.toString(properties.get(DB2Constants.PROP_TRACE_FOLDER))); diff --git a/plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/views/DB2ConnectionTracePage.java b/plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/views/DB2ConnectionTracePage.java index 185bcdde2623e8a215ff28e1beba9d0972a90107..aecbc2d386311f5d53f2f41260358bd9887639aa 100644 --- a/plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/views/DB2ConnectionTracePage.java +++ b/plugins/org.jkiss.dbeaver.ext.db2/src/org/jkiss/dbeaver/ext/db2/views/DB2ConnectionTracePage.java @@ -146,30 +146,30 @@ public class DB2ConnectionTracePage extends ConnectionPageAbstract { // Load values from new connection info DBPConnectionConfiguration connectionInfo = site.getActiveDataSource().getConnectionConfiguration(); - Map connectionProperties = connectionInfo.getProperties(); + Map providerProperties = connectionInfo.getProviderProperties(); // Settings enableTraceCheck.setSelection( CommonUtils.getBoolean( - connectionProperties.get(DB2Constants.PROP_TRACE_ENABLED), false)); + providerProperties.get(DB2Constants.PROP_TRACE_ENABLED), false)); if (!enableTraceCheck.getSelection()) { traceEnableState = ControlEnableState.disable(traceGroup); } - if (connectionProperties.containsKey(DB2Constants.PROP_TRACE_FOLDER)) { + if (providerProperties.containsKey(DB2Constants.PROP_TRACE_FOLDER)) { folderText.setText( CommonUtils.toString( - connectionProperties.get(DB2Constants.PROP_TRACE_FOLDER))); + providerProperties.get(DB2Constants.PROP_TRACE_FOLDER))); } - if (connectionProperties.containsKey(DB2Constants.PROP_TRACE_FILE)) { + if (providerProperties.containsKey(DB2Constants.PROP_TRACE_FILE)) { fileNameText.setText( CommonUtils.toString( - connectionProperties.get(DB2Constants.PROP_TRACE_FILE))); + providerProperties.get(DB2Constants.PROP_TRACE_FILE))); } traceAppendCheck.setSelection( CommonUtils.getBoolean( - connectionProperties.get(DB2Constants.PROP_TRACE_APPEND), false)); + providerProperties.get(DB2Constants.PROP_TRACE_APPEND), false)); int traceLevel = CommonUtils.toInt( - connectionProperties.get(DB2Constants.PROP_TRACE_LEVEL)); + providerProperties.get(DB2Constants.PROP_TRACE_LEVEL)); for (LevelConfig level : levels) { level.checkbox.setSelection((traceLevel & level.level) != 0); } @@ -179,20 +179,20 @@ public class DB2ConnectionTracePage extends ConnectionPageAbstract public void saveSettings(DBPDataSourceContainer dataSource) { super.saveSettings(dataSource); - Map connectionProperties = dataSource.getConnectionConfiguration().getProperties(); + Map providerProperties = dataSource.getConnectionConfiguration().getProviderProperties(); { - connectionProperties.put(DB2Constants.PROP_TRACE_ENABLED, enableTraceCheck.getSelection()); - connectionProperties.put(DB2Constants.PROP_TRACE_FOLDER, folderText.getText()); - connectionProperties.put(DB2Constants.PROP_TRACE_FILE, fileNameText.getText()); - connectionProperties.put(DB2Constants.PROP_TRACE_APPEND, traceAppendCheck.getSelection()); + providerProperties.put(DB2Constants.PROP_TRACE_ENABLED, enableTraceCheck.getSelection()); + providerProperties.put(DB2Constants.PROP_TRACE_FOLDER, folderText.getText()); + providerProperties.put(DB2Constants.PROP_TRACE_FILE, fileNameText.getText()); + providerProperties.put(DB2Constants.PROP_TRACE_APPEND, traceAppendCheck.getSelection()); int traceLevel = 0; for (LevelConfig level : levels) { if (level.checkbox.getSelection()) { traceLevel |= level.level; } } - connectionProperties.put(DB2Constants.PROP_TRACE_LEVEL, traceLevel); + providerProperties.put(DB2Constants.PROP_TRACE_LEVEL, traceLevel); } saveConnectionURL(dataSource.getConnectionConfiguration()); } diff --git a/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/ExasolDataSourceProvider.java b/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/ExasolDataSourceProvider.java index ba2f21d7b7d15fe945e3c842822f97b05c60b99d..15aee0b3a7f4edbf95c07aa002dc519105f57154 100644 --- a/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/ExasolDataSourceProvider.java +++ b/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/ExasolDataSourceProvider.java @@ -74,7 +74,7 @@ public class ExasolDataSourceProvider extends JDBCDataSourceProvider { url.append("jdbc:exa:").append(connectionInfo.getHostName()).append(port); //check if we got an backup host list - Object backupHostList = properties.get(ExasolConstants.DRV_BACKUP_HOST_LIST); + Object backupHostList = connectionInfo.getProviderProperty(ExasolConstants.DRV_BACKUP_HOST_LIST); if (backupHostList != null) url.append(",").append(backupHostList).append(port); diff --git a/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/views/ExasolConnectionPage.java b/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/views/ExasolConnectionPage.java index 0e358c746c8b0523656a2aebd876136a111a6e7c..ae8d933082e7b58f46a59d30849835a29701b21d 100644 --- a/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/views/ExasolConnectionPage.java +++ b/plugins/org.jkiss.dbeaver.ext.exasol/src/org/jkiss/dbeaver/ext/exasol/views/ExasolConnectionPage.java @@ -203,7 +203,7 @@ public class ExasolConnectionPage extends ConnectionPageAbstract implements ICom passwordText.setText(CommonUtils.notEmpty(connectionInfo.getUserPassword())); } - Object backupHostText = connectionInfo.getProperties().get(ExasolConstants.DRV_BACKUP_HOST_LIST); + Object backupHostText = connectionInfo.getProviderProperty(ExasolConstants.DRV_BACKUP_HOST_LIST); if (backupHostText != null) { this.backupHostText.setText(backupHostText.toString()); @@ -212,7 +212,7 @@ public class ExasolConnectionPage extends ConnectionPageAbstract implements ICom this.useBackupHostList.setSelection(true); } - Object encryptComm = connectionInfo.getProperties().get(ExasolConstants.DRV_ENCRYPT); + Object encryptComm = connectionInfo.getProviderProperty(ExasolConstants.DRV_ENCRYPT); if (encryptComm != null) { if (encryptComm.toString().equals("1")) @@ -241,10 +241,10 @@ public class ExasolConnectionPage extends ConnectionPageAbstract implements ICom } if (backupHostText.getText() != null) { - connectionInfo.setProperty(ExasolConstants.DRV_BACKUP_HOST_LIST, backupHostText.getText()); + connectionInfo.setProviderProperty(ExasolConstants.DRV_BACKUP_HOST_LIST, backupHostText.getText()); } if (this.encryptCommunication.getSelection()) - connectionInfo.setProperty(ExasolConstants.DRV_ENCRYPT, "1"); + connectionInfo.setProviderProperty(ExasolConstants.DRV_ENCRYPT, "1"); super.saveSettings(dataSource); } diff --git a/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ConfigImportWizard.java b/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ConfigImportWizard.java index 574b0345dd0adfffa669d79268d5a5370b90edd9..6ffd4b25cd83813a75c0acaf822d1635ec2f5d79 100644 --- a/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ConfigImportWizard.java +++ b/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ConfigImportWizard.java @@ -181,6 +181,7 @@ public abstract class ConfigImportWizard extends Wizard implements IImportWizard DBPConnectionConfiguration config = new DBPConnectionConfiguration(); config.setProperties(connectionInfo.getProperties()); + config.setProviderProperties(connectionInfo.getProviderProperties()); config.setUrl(connectionInfo.getUrl()); config.setUserName(connectionInfo.getUser()); config.setUserPassword(connectionInfo.getPassword()); diff --git a/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ImportConnectionInfo.java b/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ImportConnectionInfo.java index 3b1904841f57bc9cd1df0b11008bdc5f14b6fe21..c0769ad1c19b562fd64873d310e65474e62726b7 100644 --- a/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ImportConnectionInfo.java +++ b/plugins/org.jkiss.dbeaver.ext.import-config/src/org/jkiss/dbeaver/ext/import_config/wizards/ImportConnectionInfo.java @@ -39,6 +39,7 @@ public class ImportConnectionInfo { private String user; private String password; private Map properties = new HashMap<>(); + private Map providerProperties = new HashMap<>(); private boolean checked = false; public ImportConnectionInfo(ImportDriverInfo driverInfo, String id, String alias, String url, String host, String port, String database, String user, String password) @@ -137,6 +138,15 @@ public class ImportConnectionInfo { properties.put(name, value); } + public Map getProviderProperties() { + return providerProperties; + } + + public void setProviderProperty(String name, String value) + { + properties.put(name, value); + } + public void setHost(String host) { this.host = host; diff --git a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLWizardPageSettings.java b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLWizardPageSettings.java index e504d1230aaa357a1ac245399cec7ccab3f3c062..aca8702f4c028d8597b082032b2e86cc9b02bf70 100644 --- a/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLWizardPageSettings.java +++ b/plugins/org.jkiss.dbeaver.ext.mysql/src/org/jkiss/dbeaver/ext/mysql/tools/MySQLWizardPageSettings.java @@ -54,7 +54,7 @@ public abstract class MySQLWizardPageSettings String authUser = null; String authPassword = null; { - Object authValue = connectionInfo.getProperty(authProperty); + Object authValue = connectionInfo.getProviderProperty(authProperty); if (authValue != null) { String authCredentials = encrypter.decrypt(authValue.toString()); int divPos = authCredentials.indexOf(':'); @@ -91,7 +91,7 @@ public abstract class MySQLWizardPageSettings wizard.setToolUserPassword(authDialog.getUserPassword()); if (authDialog.isSavePassword()) { try { - connectionInfo.setProperty( + connectionInfo.setProviderProperty( authProperty, encrypter.encrypt(wizard.getToolUserName() + ':' + wizard.getToolUserPassword())); } catch (EncryptionException e1) { diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/OracleDataSourceProvider.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/OracleDataSourceProvider.java index 52687864f6038f119d880637f6dc8903402aeb80..d280c6240eab6c396e58758106a24e58fd3762bd 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/OracleDataSourceProvider.java +++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/OracleDataSourceProvider.java @@ -74,7 +74,7 @@ public class OracleDataSourceProvider extends JDBCDataSourceProvider implements { //boolean isOCI = OCIUtils.isOciDriver(driver); OracleConstants.ConnectionType connectionType; - Object conTypeProperty = connectionInfo.getProperty(OracleConstants.PROP_CONNECTION_TYPE); + Object conTypeProperty = connectionInfo.getProviderProperty(OracleConstants.PROP_CONNECTION_TYPE); if (conTypeProperty != null) { connectionType = OracleConstants.ConnectionType.valueOf(CommonUtils.toString(conTypeProperty)); } else { @@ -90,7 +90,7 @@ public class OracleDataSourceProvider extends JDBCDataSourceProvider implements // Try to get description from TNSNAMES File oraHomePath; boolean checkTnsAdmin; - String tnsPathProp = CommonUtils.toString(connectionInfo.getProperty(OracleConstants.PROP_TNS_PATH)); + String tnsPathProp = CommonUtils.toString(connectionInfo.getProviderProperty(OracleConstants.PROP_TNS_PATH)); if (!CommonUtils.isEmpty(tnsPathProp)) { oraHomePath = new File(tnsPathProp); checkTnsAdmin = false; @@ -116,7 +116,7 @@ public class OracleDataSourceProvider extends JDBCDataSourceProvider implements } } else { // Basic connection info specified - boolean isSID = OracleConnectionType.SID.name().equals(connectionInfo.getProperty(OracleConstants.PROP_SID_SERVICE)); + boolean isSID = OracleConnectionType.SID.name().equals(connectionInfo.getProviderProperty(OracleConstants.PROP_SID_SERVICE)); if (!isSID) { url.append("//"); //$NON-NLS-1$ } diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java index 7c3ecabd3518fe37bd0ccb7c33fb3fae05eddaa0..8e8c73eea618fbaacb9707210ccbb78e8c60a386 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java +++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/model/OracleDataSource.java @@ -112,7 +112,7 @@ public class OracleDataSource extends JDBCDataSource /* // Set tns admin directory DBPConnectionConfiguration connectionInfo = getContainer().getActualConnectionConfiguration(); - String tnsPathProp = CommonUtils.toString(connectionInfo.getProperty(OracleConstants.PROP_TNS_PATH)); + String tnsPathProp = CommonUtils.toString(connectionInfo.getProviderProperty(OracleConstants.PROP_TNS_PATH)); if (!CommonUtils.isEmpty(tnsPathProp)) { System.setProperty(OracleConstants.VAR_ORACLE_NET_TNS_ADMIN, tnsPathProp); } else { @@ -153,7 +153,7 @@ public class OracleDataSource extends JDBCDataSource try (JDBCSession session = context.openSession(monitor, DBCExecutionPurpose.META, "Set connection parameters")) { // Set session settings - Object sessionLanguage = connectionInfo.getProperty(OracleConstants.PROP_SESSION_LANGUAGE); + Object sessionLanguage = connectionInfo.getProviderProperty(OracleConstants.PROP_SESSION_LANGUAGE); if (sessionLanguage != null) { try { JDBCUtils.executeSQL( @@ -163,7 +163,7 @@ public class OracleDataSource extends JDBCDataSource log.warn("Can't set session language", e); } } - Object sessionTerritory = connectionInfo.getProperty(OracleConstants.PROP_SESSION_TERRITORY); + Object sessionTerritory = connectionInfo.getProviderProperty(OracleConstants.PROP_SESSION_TERRITORY); if (sessionTerritory != null) { try { JDBCUtils.executeSQL( @@ -173,7 +173,7 @@ public class OracleDataSource extends JDBCDataSource log.warn("Can't set session territory", e); } } - Object nlsDateFormat = connectionInfo.getProperty(OracleConstants.PROP_SESSION_NLS_DATE_FORMAT); + Object nlsDateFormat = connectionInfo.getProviderProperty(OracleConstants.PROP_SESSION_NLS_DATE_FORMAT); if (nlsDateFormat != null) { try { JDBCUtils.executeSQL( @@ -189,7 +189,7 @@ public class OracleDataSource extends JDBCDataSource @Override protected String getConnectionUserName(@NotNull DBPConnectionConfiguration connectionInfo) { - final Object role = connectionInfo.getProperty(OracleConstants.PROP_INTERNAL_LOGON); + final Object role = connectionInfo.getProviderProperty(OracleConstants.PROP_INTERNAL_LOGON); return role == null ? connectionInfo.getUserName() : connectionInfo.getUserName() + " AS " + role; } @@ -287,7 +287,7 @@ public class OracleDataSource extends JDBCDataSource DBPConnectionConfiguration connectionInfo = getContainer().getConnectionConfiguration(); { - Object useRuleHintProp = connectionInfo.getProperty(OracleConstants.PROP_USE_RULE_HINT); + Object useRuleHintProp = connectionInfo.getProviderProperty(OracleConstants.PROP_USE_RULE_HINT); if (useRuleHintProp != null) { useRuleHint = CommonUtils.getBoolean(useRuleHintProp, false); } @@ -304,7 +304,7 @@ public class OracleDataSource extends JDBCDataSource "SELECT 'YES' FROM USER_ROLE_PRIVS WHERE GRANTED_ROLE='DBA'")); this.isAdminVisible = isAdmin; if (!isAdminVisible) { - Object showAdmin = connectionInfo.getProperty(OracleConstants.PROP_ALWAYS_SHOW_DBA); + Object showAdmin = connectionInfo.getProviderProperty(OracleConstants.PROP_ALWAYS_SHOW_DBA); if (showAdmin != null) { isAdminVisible = CommonUtils.getBoolean(showAdmin, false); } @@ -651,7 +651,7 @@ public class OracleDataSource extends JDBCDataSource @Override protected JDBCStatement prepareObjectsStatement(@NotNull JDBCSession session, @NotNull OracleDataSource owner) throws SQLException { StringBuilder schemasQuery = new StringBuilder(); - boolean manyObjects = "false".equals(owner.getContainer().getConnectionConfiguration().getProperty(OracleConstants.PROP_CHECK_SCHEMA_CONTENT)); + boolean manyObjects = "false".equals(owner.getContainer().getConnectionConfiguration().getProviderProperty(OracleConstants.PROP_CHECK_SCHEMA_CONTENT)); schemasQuery.append("SELECT U.* FROM SYS.ALL_USERS U\n"); // if (owner.isAdmin() && false) { diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/tools/OracleScriptExecuteWizard.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/tools/OracleScriptExecuteWizard.java index a2bb89c6d59b9f29b85a2ce4966d971be07899b8..1374327efcaa9a76ba520167d49c119f332c307f 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/tools/OracleScriptExecuteWizard.java +++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/tools/OracleScriptExecuteWizard.java @@ -87,11 +87,11 @@ class OracleScriptExecuteWizard extends AbstractScriptExecuteWizard connectionProperties = connectionInfo.getProperties(); + Map providerProperties = connectionInfo.getProviderProperties(); // Settings - final Object nlsLanguage = connectionProperties.get(OracleConstants.PROP_SESSION_LANGUAGE); + final Object nlsLanguage = providerProperties.get(OracleConstants.PROP_SESSION_LANGUAGE); if (nlsLanguage != null) { languageCombo.setText(nlsLanguage.toString()); } - final Object nlsTerritory = connectionProperties.get(OracleConstants.PROP_SESSION_TERRITORY); + final Object nlsTerritory = providerProperties.get(OracleConstants.PROP_SESSION_TERRITORY); if (nlsTerritory != null) { territoryCombo.setText(nlsTerritory.toString()); } - final Object dateFormat = connectionProperties.get(OracleConstants.PROP_SESSION_NLS_DATE_FORMAT); + final Object dateFormat = providerProperties.get(OracleConstants.PROP_SESSION_NLS_DATE_FORMAT); if (dateFormat != null) { nlsDateFormat.setText(dateFormat.toString()); } - final Object checkSchemaContent = connectionProperties.get(OracleConstants.PROP_CHECK_SCHEMA_CONTENT); + final Object checkSchemaContent = providerProperties.get(OracleConstants.PROP_CHECK_SCHEMA_CONTENT); if (checkSchemaContent != null) { hideEmptySchemasCheckbox.setSelection(CommonUtils.getBoolean(checkSchemaContent, false)); } - showDBAAlwaysCheckbox.setSelection(CommonUtils.getBoolean(connectionProperties.get(OracleConstants.PROP_ALWAYS_SHOW_DBA), false)); - useRuleHint.setSelection(CommonUtils.getBoolean(connectionProperties.get(OracleConstants.PROP_USE_RULE_HINT), false)); + showDBAAlwaysCheckbox.setSelection(CommonUtils.getBoolean(providerProperties.get(OracleConstants.PROP_ALWAYS_SHOW_DBA), false)); + useRuleHint.setSelection(CommonUtils.getBoolean(providerProperties.get(OracleConstants.PROP_USE_RULE_HINT), false)); } @Override public void saveSettings(DBPDataSourceContainer dataSource) { - Map connectionProperties = dataSource.getConnectionConfiguration().getProperties(); + Map providerProperties = dataSource.getConnectionConfiguration().getProviderProperties(); { // Settings if (!OracleConstants.NLS_DEFAULT_VALUE.equals(languageCombo.getText())) { - connectionProperties.put(OracleConstants.PROP_SESSION_LANGUAGE, languageCombo.getText()); + providerProperties.put(OracleConstants.PROP_SESSION_LANGUAGE, languageCombo.getText()); } else { - connectionProperties.remove(OracleConstants.PROP_SESSION_LANGUAGE); + providerProperties.remove(OracleConstants.PROP_SESSION_LANGUAGE); } if (!OracleConstants.NLS_DEFAULT_VALUE.equals(territoryCombo.getText())) { - connectionProperties.put(OracleConstants.PROP_SESSION_TERRITORY, territoryCombo.getText()); + providerProperties.put(OracleConstants.PROP_SESSION_TERRITORY, territoryCombo.getText()); } else { - connectionProperties.remove(OracleConstants.PROP_SESSION_TERRITORY); + providerProperties.remove(OracleConstants.PROP_SESSION_TERRITORY); } String dateFormat = nlsDateFormat.getText(); if (!dateFormat.isEmpty()) { - connectionProperties.put(OracleConstants.PROP_SESSION_NLS_DATE_FORMAT, dateFormat); + providerProperties.put(OracleConstants.PROP_SESSION_NLS_DATE_FORMAT, dateFormat); } else { - connectionProperties.remove(OracleConstants.PROP_SESSION_NLS_DATE_FORMAT); + providerProperties.remove(OracleConstants.PROP_SESSION_NLS_DATE_FORMAT); } - connectionProperties.put( + providerProperties.put( OracleConstants.PROP_CHECK_SCHEMA_CONTENT, String.valueOf(hideEmptySchemasCheckbox.getSelection())); - connectionProperties.put( + providerProperties.put( OracleConstants.PROP_ALWAYS_SHOW_DBA, String.valueOf(showDBAAlwaysCheckbox.getSelection())); - connectionProperties.put( + providerProperties.put( OracleConstants.PROP_USE_RULE_HINT, String.valueOf(useRuleHint.getSelection())); } diff --git a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/views/OracleConnectionPage.java b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/views/OracleConnectionPage.java index 8ad16ac2d99d45ef68e1dad37453e885d899dc12..a952b86aebd3ab76a08e9c4074e47041042ea92f 100644 --- a/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/views/OracleConnectionPage.java +++ b/plugins/org.jkiss.dbeaver.ext.oracle/src/org/jkiss/dbeaver/ext/oracle/views/OracleConnectionPage.java @@ -46,7 +46,6 @@ import java.io.File; import java.util.Collection; import java.util.Collections; import java.util.Locale; -import java.util.Map; /** * OracleConnectionPage @@ -106,7 +105,7 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom public void widgetSelected(SelectionEvent e) { connectionType = (OracleConstants.ConnectionType) connectionTypeFolder.getSelection()[0].getData(); - site.getActiveDataSource().getConnectionConfiguration().setProperty(OracleConstants.PROP_CONNECTION_TYPE, connectionType.name()); + site.getActiveDataSource().getConnectionConfiguration().setProviderProperty(OracleConstants.PROP_CONNECTION_TYPE, connectionType.name()); updateUI(); } }); @@ -356,9 +355,8 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom // Load values from new connection info DBPConnectionConfiguration connectionInfo = site.getActiveDataSource().getConnectionConfiguration(); - Map connectionProperties = connectionInfo.getProperties(); - final Object sidService = connectionProperties.get(OracleConstants.PROP_SID_SERVICE); + final Object sidService = connectionInfo.getProviderProperty(OracleConstants.PROP_SID_SERVICE); if (sidService != null) { sidServiceCombo.setText(OracleConnectionType.valueOf(sidService.toString()).getTitle()); } @@ -377,7 +375,7 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom } } - Object conTypeProperty = connectionProperties.get(OracleConstants.PROP_CONNECTION_TYPE); + Object conTypeProperty = connectionInfo.getProviderProperty(OracleConstants.PROP_CONNECTION_TYPE); if (conTypeProperty != null) { connectionType = OracleConstants.ConnectionType.valueOf(CommonUtils.toString(conTypeProperty)); } else { @@ -400,7 +398,7 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom break; case TNS: { tnsNameCombo.setText(CommonUtils.notEmpty(connectionInfo.getDatabaseName())); - Object tnsPathProperty = connectionProperties.get(OracleConstants.PROP_TNS_PATH); + Object tnsPathProperty = connectionInfo.getProviderProperty(OracleConstants.PROP_TNS_PATH); // if (tnsPathProperty == null) { // tnsPathProperty = System.getenv(OracleConstants.VAR_TNS_ADMIN); // } @@ -424,7 +422,7 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom osAuthCheck.setSelection(false); } - final Object roleName = connectionProperties.get(OracleConstants.PROP_INTERNAL_LOGON); + final Object roleName = connectionInfo.getProviderProperty(OracleConstants.PROP_INTERNAL_LOGON); if (roleName != null) { userRoleCombo.setText(roleName.toString().toUpperCase(Locale.ENGLISH)); } @@ -434,17 +432,9 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom public void saveSettings(DBPDataSourceContainer dataSource) { DBPConnectionConfiguration connectionInfo = dataSource.getConnectionConfiguration(); - //super.saveSettings(dataSource); - Map connectionProperties = connectionInfo.getProperties(); - //if (isOCI) { - connectionInfo.setClientHomeId(oraHomeSelector.getSelectedHome()); - //} + connectionInfo.setClientHomeId(oraHomeSelector.getSelectedHome()); - connectionProperties.put(OracleConstants.PROP_CONNECTION_TYPE, connectionType.name()); -// connectionProperties.put( -// OracleConstants.PROP_DRIVER_TYPE, isOCI ? OracleConstants.DRIVER_TYPE_OCI : OracleConstants.DRIVER_TYPE_THIN); -// connectionInfo.getProperties().put(OracleConstants.PROP_DRIVER_TYPE, -// ociDriverCheck.getSelection() ? OracleConstants.DRIVER_TYPE_OCI : OracleConstants.DRIVER_TYPE_THIN); + connectionInfo.setProviderProperty(OracleConstants.PROP_CONNECTION_TYPE, connectionType.name()); switch (connectionType) { case BASIC: connectionInfo.setHostName(hostText.getText().trim()); @@ -453,7 +443,7 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom break; case TNS: connectionInfo.setDatabaseName(tnsNameCombo.getText().trim()); - connectionProperties.put(OracleConstants.PROP_TNS_PATH, tnsPathText.getText()); + connectionInfo.setProviderProperty(OracleConstants.PROP_TNS_PATH, tnsPathText.getText()); break; case CUSTOM: connectionInfo.setUrl(connectionUrlText.getText()); @@ -467,12 +457,12 @@ public class OracleConnectionPage extends ConnectionPageAbstract implements ICom connectionInfo.setUserPassword(passwordText.getText()); } - connectionProperties.put(OracleConstants.PROP_SID_SERVICE, OracleConnectionType.getTypeForTitle(sidServiceCombo.getText()).name()); + connectionInfo.setProviderProperty(OracleConstants.PROP_SID_SERVICE, OracleConnectionType.getTypeForTitle(sidServiceCombo.getText()).name()); if (userRoleCombo.getSelectionIndex() > 0) { - connectionProperties.put(OracleConstants.PROP_INTERNAL_LOGON, userRoleCombo.getText().toLowerCase(Locale.ENGLISH)); + connectionInfo.setProviderProperty(OracleConstants.PROP_INTERNAL_LOGON, userRoleCombo.getText().toLowerCase(Locale.ENGLISH)); } else { - connectionProperties.remove(OracleConstants.PROP_INTERNAL_LOGON); + connectionInfo.getProviderProperties().remove(OracleConstants.PROP_INTERNAL_LOGON); } saveConnectionURL(connectionInfo); diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDataSource.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDataSource.java index ec67ee0e685eeafe80626f44f78ba88b73ddbaa3..6b18c0b0c992569245467fc0164eb4328da80900 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDataSource.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/model/PostgreDataSource.java @@ -446,7 +446,7 @@ public class PostgreDataSource extends JDBCDataSource implements DBSObjectSelect @Override protected JDBCStatement prepareObjectsStatement(@NotNull JDBCSession session, @NotNull PostgreDataSource owner) throws SQLException { - final boolean showNDD = CommonUtils.toBoolean(getContainer().getActualConnectionConfiguration().getProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB)); + final boolean showNDD = CommonUtils.toBoolean(getContainer().getActualConnectionConfiguration().getProviderProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB)); StringBuilder catalogQuery = new StringBuilder( "SELECT db.oid,db.*" + "\nFROM pg_catalog.pg_database db WHERE NOT datistemplate AND datallowconn"); diff --git a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/PostgreConnectionPage.java b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/PostgreConnectionPage.java index a3ab91357c254a6d3c54336fed3a770cb0a204fd..f0cc890cf5d5e2c5d1426ef51a5b5787a98351ee 100644 --- a/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/PostgreConnectionPage.java +++ b/plugins/org.jkiss.dbeaver.ext.postgresql/src/org/jkiss/dbeaver/ext/postgresql/ui/PostgreConnectionPage.java @@ -208,7 +208,7 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo } homesSelector.populateHomes(site.getDriver(), connectionInfo.getClientHomeId()); - final boolean showNDD = CommonUtils.toBoolean(connectionInfo.getProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB)); + final boolean showNDD = CommonUtils.toBoolean(connectionInfo.getProviderProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB)); hideNonDefault.setSelection(showNDD); activated = true; @@ -237,7 +237,7 @@ public class PostgreConnectionPage extends ConnectionPageAbstract implements ICo connectionInfo.setClientHomeId(homesSelector.getSelectedHome()); } - connectionInfo.setProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB, hideNonDefault.getSelection()); + connectionInfo.setProviderProperty(PostgreConstants.PROP_SHOW_NON_DEFAULT_DB, hideNonDefault.getSelection()); super.saveSettings(dataSource); } diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBConstants.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBConstants.java index ce4b73aa4f5f415db61f3890d5fab185b26511f5..af9184d022f5c849f781bcfef6a286932eedc16f 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBConstants.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/DBConstants.java @@ -42,7 +42,11 @@ public class DBConstants { public static final String PROP_ID_NOT_NULL = "notNull"; //NON-NLS-1 public static final String PARAM_INIT_ON_TEST = "initOnTest"; //NON-NLS-1 + // Internal properties prefix. This is a legacy properties marker (used to divide driver properties from provider properties) + // Left for backward compatibility. Do not use it for new provider property names public static final String INTERNAL_PROP_PREFIX = "@dbeaver-"; //NON-NLS-1 + + // Used for default driver property values redefine public static final String DEFAULT_DRIVER_PROP_PREFIX = INTERNAL_PROP_PREFIX + "default-"; //NON-NLS-1 public static final String[] DEFAULT_DATATYPE_NAMES = { diff --git a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCDataSource.java b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCDataSource.java index 7cdde66df508de84f98569bc98233e9b33d4d140..7e0043b505590bfe4949fe9aa455eb0bd3976d4b 100644 --- a/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCDataSource.java +++ b/plugins/org.jkiss.dbeaver.model/src/org/jkiss/dbeaver/model/impl/jdbc/JDBCDataSource.java @@ -136,11 +136,6 @@ public abstract class JDBCDataSource if (!CommonUtils.isEmpty(connectionInfo.getUserPassword())) { connectProps.put(DBConstants.DATA_SOURCE_PROPERTY_PASSWORD, getConnectionUserPassword(connectionInfo)); } - for (Iterator iter = connectProps.keySet().iterator(); iter.hasNext(); ) { - if (CommonUtils.toString(iter.next()).startsWith(DBConstants.INTERNAL_PROP_PREFIX)) { - iter.remove(); - } - } // Obtain connection try { final String url = getConnectionURL(connectionInfo);