提交 b8655cf0 编写于 作者: S Serge Rider

Connection internal (provider-specific) properties usage refactoring

上级 f6715e65
......@@ -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:
......
......@@ -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,
......
......@@ -77,7 +77,7 @@ public class DB2DataSourceProvider extends JDBCDataSourceProvider {
if (!CommonUtils.isEmpty(connectionInfo.getDatabaseName())) {
url.append(connectionInfo.getDatabaseName());
}
Map<Object, Object> properties = connectionInfo.getProperties();
Map<Object, Object> 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)));
......
......@@ -146,30 +146,30 @@ public class DB2ConnectionTracePage extends ConnectionPageAbstract
{
// Load values from new connection info
DBPConnectionConfiguration connectionInfo = site.getActiveDataSource().getConnectionConfiguration();
Map<Object,Object> connectionProperties = connectionInfo.getProperties();
Map<Object,Object> 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<Object, Object> connectionProperties = dataSource.getConnectionConfiguration().getProperties();
Map<Object, Object> 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());
}
......
......@@ -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);
......
......@@ -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);
}
......
......@@ -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());
......
......@@ -39,6 +39,7 @@ public class ImportConnectionInfo {
private String user;
private String password;
private Map<Object, Object> properties = new HashMap<>();
private Map<Object, Object> 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<Object, Object> getProviderProperties() {
return providerProperties;
}
public void setProviderProperty(String name, String value)
{
properties.put(name, value);
}
public void setHost(String host)
{
this.host = host;
......
......@@ -54,7 +54,7 @@ public abstract class MySQLWizardPageSettings<WIZARD extends AbstractToolWizard>
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 extends AbstractToolWizard>
wizard.setToolUserPassword(authDialog.getUserPassword());
if (authDialog.isSavePassword()) {
try {
connectionInfo.setProperty(
connectionInfo.setProviderProperty(
authProperty,
encrypter.encrypt(wizard.getToolUserName() + ':' + wizard.getToolUserPassword()));
} catch (EncryptionException e1) {
......
......@@ -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$
}
......
......@@ -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) {
......
......@@ -87,11 +87,11 @@ class OracleScriptExecuteWizard extends AbstractScriptExecuteWizard<OracleDataSo
fillProcessParameters(cmd, arg);
DBPConnectionConfiguration conInfo = getConnectionInfo();
String url;
if ("TNS".equals(conInfo.getProperty(OracleConstants.PROP_CONNECTION_TYPE))) { //$NON-NLS-1$
if ("TNS".equals(conInfo.getProviderProperty(OracleConstants.PROP_CONNECTION_TYPE))) { //$NON-NLS-1$
url = conInfo.getServerName();
}
else {
boolean isSID = OracleConnectionType.SID.name().equals(conInfo.getProperty(OracleConstants.PROP_SID_SERVICE));
boolean isSID = OracleConnectionType.SID.name().equals(conInfo.getProviderProperty(OracleConstants.PROP_SID_SERVICE));
String port = conInfo.getHostPort();
if (isSID) {
url = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=" + conInfo.getHostName() + ")(Port=" + port + "))(CONNECT_DATA=(SID=" + conInfo.getDatabaseName() + ")))";
......@@ -99,7 +99,7 @@ class OracleScriptExecuteWizard extends AbstractScriptExecuteWizard<OracleDataSo
url = "//" + conInfo.getHostName() + (port != null ? ":" + port : "") + "/" + conInfo.getDatabaseName(); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
}
}
final Object role = conInfo.getProperty(OracleConstants.PROP_INTERNAL_LOGON);
final Object role = conInfo.getProviderProperty(OracleConstants.PROP_INTERNAL_LOGON);
if (role != null) {
url += (" AS " + role);
}
......
......@@ -136,15 +136,15 @@ public class ConfigImportWizardPageSqlDeveloper extends ConfigImportWizardPage {
String dbName = CommonUtils.isEmpty(sid) ? serviceName : sid;
ImportConnectionInfo connectionInfo = new ImportConnectionInfo(oraDriver, null, conName, url, host, port, dbName, user, null);
if (!CommonUtils.isEmpty(sid)) {
connectionInfo.setProperty(OracleConstants.PROP_SID_SERVICE, OracleConnectionType.SID.name());
connectionInfo.setProviderProperty(OracleConstants.PROP_SID_SERVICE, OracleConnectionType.SID.name());
} else if (!CommonUtils.isEmpty(serviceName)) {
connectionInfo.setProperty(OracleConstants.PROP_SID_SERVICE, OracleConnectionType.SERVICE.name());
connectionInfo.setProviderProperty(OracleConstants.PROP_SID_SERVICE, OracleConnectionType.SERVICE.name());
}
if (CommonUtils.toBoolean(osAuth)) {
connectionInfo.setUser(OracleConstants.OS_AUTH_USER_NAME);
}
if (!CommonUtils.isEmpty(role)) {
connectionInfo.setProperty(OracleConstants.PROP_INTERNAL_LOGON, role);
connectionInfo.setProviderProperty(OracleConstants.PROP_INTERNAL_LOGON, role);
}
importData.addConnection(connectionInfo);
}
......
......@@ -130,66 +130,66 @@ public class OracleConnectionExtraPage extends ConnectionPageAbstract
// Load values from new connection info
DBPConnectionConfiguration connectionInfo = site.getActiveDataSource().getConnectionConfiguration();
Map<Object,Object> connectionProperties = connectionInfo.getProperties();
Map<Object,Object> 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<Object, Object> connectionProperties = dataSource.getConnectionConfiguration().getProperties();
Map<Object, Object> 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()));
}
......
......@@ -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<Object,Object> 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<Object, Object> 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);
......
......@@ -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");
......
......@@ -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);
}
......
......@@ -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 = {
......
......@@ -136,11 +136,6 @@ public abstract class JDBCDataSource
if (!CommonUtils.isEmpty(connectionInfo.getUserPassword())) {
connectProps.put(DBConstants.DATA_SOURCE_PROPERTY_PASSWORD, getConnectionUserPassword(connectionInfo));
}
for (Iterator<Object> 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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册