|
|
|
@ -1,13 +1,12 @@
|
|
|
|
|
package com.fr.design.data.datapane.connect; |
|
|
|
|
|
|
|
|
|
import com.fr.base.TemplateUtils; |
|
|
|
|
import com.fr.config.RemoteConfigEvent; |
|
|
|
|
import com.fr.data.core.db.JDBCSecurityChecker; |
|
|
|
|
import com.fr.data.impl.Connection; |
|
|
|
|
import com.fr.data.impl.ConnectionBean; |
|
|
|
|
import com.fr.data.impl.JDBCDatabaseConnection; |
|
|
|
|
import com.fr.data.impl.JNDIDatabaseConnection; |
|
|
|
|
import com.fr.data.metric.utils.DatabaseConnectionMetricHandler; |
|
|
|
|
import com.fr.data.operator.DataOperator; |
|
|
|
|
import com.fr.design.ExtraDesignClassManager; |
|
|
|
|
import com.fr.design.data.MapCompareUtils; |
|
|
|
|
import com.fr.design.dialog.BasicDialog; |
|
|
|
@ -187,7 +186,7 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh
|
|
|
|
|
case ADDED: |
|
|
|
|
case UPDATED: |
|
|
|
|
addedOrUpdatedConnections.add(new ConnectionBean(s, StringUtils.EMPTY, connection)); |
|
|
|
|
if (connection instanceof JDBCDatabaseConnection){ |
|
|
|
|
if (connection instanceof JDBCDatabaseConnection) { |
|
|
|
|
DatabaseConnectionMetricHandler.handleSaveConnection((JDBCDatabaseConnection) connection, null); |
|
|
|
|
} |
|
|
|
|
default: |
|
|
|
@ -195,22 +194,19 @@ public class ConnectionListPane extends JListControlPane implements ConnectionSh
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
this.checkSecurity(addedOrUpdatedConnections); |
|
|
|
|
this.validateConnections(addedOrUpdatedConnections); |
|
|
|
|
this.alterConnections(removedConnNames, addedOrUpdatedConnections); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void checkSecurity(List<ConnectionBean> addedOrUpdatedConnections) throws Exception { |
|
|
|
|
private void validateConnections(List<ConnectionBean> addedOrUpdatedConnections) throws Exception { |
|
|
|
|
|
|
|
|
|
for (ConnectionBean connectionBean : addedOrUpdatedConnections) { |
|
|
|
|
Connection connection = connectionBean.getConnection(); |
|
|
|
|
if (connection instanceof JDBCDatabaseConnection) { |
|
|
|
|
try { |
|
|
|
|
JDBCSecurityChecker.checkURL(TemplateUtils.render(((JDBCDatabaseConnection) connection).getURL())); |
|
|
|
|
JDBCSecurityChecker.checkValidationQuery(((JDBCDatabaseConnection) connection).getDbcpAttr().getValidationQuery()); |
|
|
|
|
} catch (SQLException e) { |
|
|
|
|
throw new SQLException(Toolkit.i18nText("Fine-Design_Basic_Database_Connection_Invalid_Config", connectionBean.getName()) + ", " + e.getMessage(), e.getCause()); |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
DataOperator.getInstance().validateConnectionSettings(connection); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw new SQLException(Toolkit.i18nText("Fine-Design_Basic_Database_Connection_Invalid_Config", connectionBean.getName()) + ", " + e.getMessage(), e.getCause()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|