This is an automated email from the ASF dual-hosted git repository.
leonbao pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 8e62dd8 [Fix-7291][datasource] Compatible with different versions of
MySQL data source loading (#7291) (#7305)
8e62dd8 is described below
commit 8e62dd8246997c5519176098cbc3f9075bb60265
Author: mask <[email protected]>
AuthorDate: Mon Dec 13 22:49:46 2021 +0800
[Fix-7291][datasource] Compatible with different versions of MySQL data
source loading (#7291) (#7305)
---
.../api/client/CommonDataSourceClient.java | 9 +++---
.../api/plugin/DataSourceClientProvider.java | 2 +-
.../api/provider/JdbcDataSourceProvider.java | 32 +++++++++++++++++++++-
.../api/client/CommonDataSourceClientTest.java | 7 +++--
.../api/provider/JdbcDataSourceProviderTest.java | 5 ++--
.../clickhouse/ClickhouseDataSourceChannel.java | 5 ++--
.../clickhouse/ClickhouseDataSourceClient.java | 5 ++--
.../ClickhouseDataSourceChannelTest.java | 5 ++--
.../datasource/db2/DB2DataSourceChannel.java | 5 ++--
.../plugin/datasource/db2/DB2DataSourceClient.java | 5 ++--
.../datasource/db2/DB2DataSourceChannelTest.java | 5 ++--
.../datasource/hive/HiveDataSourceChannel.java | 5 ++--
.../datasource/hive/HiveDataSourceClient.java | 9 +++---
.../datasource/hive/HiveDataSourceChannelTest.java | 5 ++--
.../datasource/mysql/MysqlDataSourceChannel.java | 5 ++--
.../datasource/mysql/MysqlDataSourceClient.java | 5 ++--
.../mysql/MysqlDataSourceChannelTest.java | 5 ++--
.../datasource/oracle/OracleDataSourceChannel.java | 5 ++--
.../datasource/oracle/OracleDataSourceClient.java | 5 ++--
.../oracle/OracleDataSourceChannelTest.java | 5 ++--
.../postgresql/PostgresqlDataSourceChannel.java | 5 ++--
.../postgresql/PostgresqlDataSourceClient.java | 5 ++--
.../PostgresqlDataSourceChannelTest.java | 5 ++--
.../sqlserver/SqlServerDataSourceChannel.java | 5 ++--
.../sqlserver/SqlserverDataSourceClient.java | 5 ++--
.../sqlserver/SqlserverDataSourceChannelTest.java | 5 ++--
.../spi/datasource/DataSourceChannel.java | 4 ++-
.../dolphinscheduler/spi/utils/Constants.java | 1 +
28 files changed, 113 insertions(+), 56 deletions(-)
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/client/CommonDataSourceClient.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/client/CommonDataSourceClient.java
index e1a5149..bec5c45 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/client/CommonDataSourceClient.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/client/CommonDataSourceClient.java
@@ -20,6 +20,7 @@ package
org.apache.dolphinscheduler.plugin.datasource.api.client;
import
org.apache.dolphinscheduler.plugin.datasource.api.provider.JdbcDataSourceProvider;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
import org.apache.dolphinscheduler.spi.datasource.DataSourceClient;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.apache.dolphinscheduler.spi.utils.StringUtils;
import java.sql.Connection;
@@ -46,11 +47,11 @@ public class CommonDataSourceClient implements
DataSourceClient {
protected DataSource dataSource;
protected JdbcTemplate jdbcTemplate;
- public CommonDataSourceClient(BaseConnectionParam baseConnectionParam) {
+ public CommonDataSourceClient(BaseConnectionParam baseConnectionParam,
DbType dbType) {
this.baseConnectionParam = baseConnectionParam;
preInit();
checkEnv(baseConnectionParam);
- initClient(baseConnectionParam);
+ initClient(baseConnectionParam, dbType);
checkClient();
}
@@ -63,8 +64,8 @@ public class CommonDataSourceClient implements
DataSourceClient {
checkUser(baseConnectionParam);
}
- protected void initClient(BaseConnectionParam baseConnectionParam) {
- this.dataSource =
JdbcDataSourceProvider.createJdbcDataSource(baseConnectionParam);
+ protected void initClient(BaseConnectionParam baseConnectionParam, DbType
dbType) {
+ this.dataSource =
JdbcDataSourceProvider.createJdbcDataSource(baseConnectionParam, dbType);
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/plugin/DataSourceClientProvider.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/plugin/DataSourceClientProvider.java
index 6002b78..fb17a0d 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/plugin/DataSourceClientProvider.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/plugin/DataSourceClientProvider.java
@@ -61,7 +61,7 @@ public class DataSourceClientProvider {
if (null == dataSourceChannel) {
throw new RuntimeException(String.format("datasource plugin
'%s' is not found", dbType.getDescp()));
}
- return
dataSourceChannel.createDataSourceClient(baseConnectionParam);
+ return
dataSourceChannel.createDataSourceClient(baseConnectionParam, dbType);
});
return dataSourceClient.getConnection();
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/provider/JdbcDataSourceProvider.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/provider/JdbcDataSourceProvider.java
index b4a37fe..672ac53 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/provider/JdbcDataSourceProvider.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/main/java/org/apache/dolphinscheduler/plugin/datasource/api/provider/JdbcDataSourceProvider.java
@@ -17,10 +17,15 @@
package org.apache.dolphinscheduler.plugin.datasource.api.provider;
+import org.apache.dolphinscheduler.plugin.datasource.api.utils.DataSourceUtils;
import org.apache.dolphinscheduler.plugin.datasource.api.utils.PasswordUtils;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.apache.dolphinscheduler.spi.utils.Constants;
import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
+import org.apache.dolphinscheduler.spi.utils.StringUtils;
+
+import java.sql.Driver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,10 +39,14 @@ public class JdbcDataSourceProvider {
private static final Logger logger =
LoggerFactory.getLogger(JdbcDataSourceProvider.class);
- public static HikariDataSource createJdbcDataSource(BaseConnectionParam
properties) {
+ public static HikariDataSource createJdbcDataSource(BaseConnectionParam
properties, DbType dbType) {
logger.info("Creating HikariDataSource pool for maxActive:{}",
PropertyUtils.getInt(Constants.SPRING_DATASOURCE_MAX_ACTIVE, 50));
HikariDataSource dataSource = new HikariDataSource();
+ //TODO Support multiple versions of data sources
+ ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
+ loaderJdbcDriver(classLoader, properties, dbType);
+
dataSource.setDriverClassName(properties.getDriverClassName());
dataSource.setJdbcUrl(properties.getJdbcUrl());
dataSource.setUsername(properties.getUser());
@@ -80,4 +89,25 @@ public class JdbcDataSourceProvider {
return dataSource;
}
+ protected static void loaderJdbcDriver(ClassLoader classLoader,
BaseConnectionParam properties, DbType dbType) {
+ String drv = StringUtils.isBlank(properties.getDriverClassName()) ?
DataSourceUtils.getDatasourceProcessor(dbType).getDatasourceDriver() :
properties.getDriverClassName();
+ try {
+ final Class<?> clazz = Class.forName(drv, true, classLoader);
+ final Driver driver = (Driver) clazz.newInstance();
+ if (!driver.acceptsURL(properties.getJdbcUrl())) {
+ logger.warn("Jdbc driver loading error. Driver {} cannot
accept url.", drv);
+ throw new RuntimeException("Jdbc driver loading error.");
+ }
+ if (dbType.equals(DbType.MYSQL)) {
+ if (driver.getMajorVersion() >= 8) {
+ properties.setDriverClassName(drv);
+ } else {
+
properties.setDriverClassName(Constants.COM_MYSQL_JDBC_DRIVER);
+ }
+ }
+ } catch (final Exception e) {
+ logger.warn("The specified driver not suitable.");
+ }
+ }
+
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/test/java/org/apache/dolphinscheduler/plugin/datasource/api/client/CommonDataSourceClientTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/test/java/org/apache/dolphinscheduler/plugin/datasource/api/client/CommonDataSourceClientTest.java
index 56c4327..60a7e59 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/test/java/org/apache/dolphinscheduler/plugin/datasource/api/client/CommonDataSourceClientTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/test/java/org/apache/dolphinscheduler/plugin/datasource/api/client/CommonDataSourceClientTest.java
@@ -20,6 +20,7 @@ package
org.apache.dolphinscheduler.plugin.datasource.api.client;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MysqlConnectionParam;
import
org.apache.dolphinscheduler.plugin.datasource.api.provider.JdbcDataSourceProvider;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import java.sql.Connection;
@@ -79,9 +80,9 @@ public class CommonDataSourceClientTest {
@Test
public void testInitClient() {
BaseConnectionParam baseConnectionParam = new MysqlConnectionParam();
-
PowerMockito.doNothing().when(commonDataSourceClient).initClient(Mockito.any(BaseConnectionParam.class));
- commonDataSourceClient.initClient(baseConnectionParam);
-
Mockito.verify(commonDataSourceClient).initClient(Mockito.any(BaseConnectionParam.class));
+
PowerMockito.doNothing().when(commonDataSourceClient).initClient(Mockito.any(BaseConnectionParam.class),
Mockito.any());
+ commonDataSourceClient.initClient(baseConnectionParam, DbType.MYSQL);
+
Mockito.verify(commonDataSourceClient).initClient(Mockito.any(BaseConnectionParam.class),
Mockito.any());
}
@Test
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/test/java/org/apache/dolphinscheduler/plugin/datasource/api/provider/JdbcDataSourceProviderTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/test/java/org/apache/dolphinscheduler/plugin/datasource/api/provider/JdbcDataSourceProviderTest.java
index 82bc257..75a7dc0 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/test/java/org/apache/dolphinscheduler/plugin/datasource/api/provider/JdbcDataSourceProviderTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-api/src/test/java/org/apache/dolphinscheduler/plugin/datasource/api/provider/JdbcDataSourceProviderTest.java
@@ -18,6 +18,7 @@
package org.apache.dolphinscheduler.plugin.datasource.api.provider;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MysqlConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.junit.Assert;
import org.junit.Test;
@@ -37,8 +38,8 @@ public class JdbcDataSourceProviderTest {
public void testCreateJdbcDataSource() {
PowerMockito.mockStatic(JdbcDataSourceProvider.class);
HikariDataSource dataSource =
PowerMockito.mock(HikariDataSource.class);
-
PowerMockito.when(JdbcDataSourceProvider.createJdbcDataSource(Mockito.any())).thenReturn(dataSource);
- Assert.assertNotNull(JdbcDataSourceProvider.createJdbcDataSource(new
MysqlConnectionParam()));
+
PowerMockito.when(JdbcDataSourceProvider.createJdbcDataSource(Mockito.any(),
Mockito.any())).thenReturn(dataSource);
+ Assert.assertNotNull(JdbcDataSourceProvider.createJdbcDataSource(new
MysqlConnectionParam(), DbType.MYSQL));
}
@Test
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/main/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceChannel.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/main/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceChannel.java
index 7557feb..ee2d231 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/main/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceChannel.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/main/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceChannel.java
@@ -20,11 +20,12 @@ package
org.apache.dolphinscheduler.plugin.datasource.clickhouse;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannel;
import org.apache.dolphinscheduler.spi.datasource.DataSourceClient;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class ClickhouseDataSourceChannel implements DataSourceChannel {
@Override
- public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam) {
- return new ClickhouseDataSourceClient(baseConnectionParam);
+ public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam, DbType dbType) {
+ return new ClickhouseDataSourceClient(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/main/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceClient.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/main/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceClient.java
index f16599c..dc6b1e0 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/main/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceClient.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/main/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceClient.java
@@ -19,11 +19,12 @@ package
org.apache.dolphinscheduler.plugin.datasource.clickhouse;
import
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class ClickhouseDataSourceClient extends CommonDataSourceClient {
- public ClickhouseDataSourceClient(BaseConnectionParam baseConnectionParam)
{
- super(baseConnectionParam);
+ public ClickhouseDataSourceClient(BaseConnectionParam baseConnectionParam,
DbType dbType) {
+ super(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/test/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceChannelTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/test/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceChannelTest.java
index e7a77b6..699c86f 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/test/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceChannelTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-clickhouse/src/test/java/org/apache/dolphinscheduler/plugin/datasource/clickhouse/ClickhouseDataSourceChannelTest.java
@@ -18,6 +18,7 @@
package org.apache.dolphinscheduler.plugin.datasource.clickhouse;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.clickhouse.ClickhouseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.junit.Assert;
import org.junit.Test;
@@ -37,7 +38,7 @@ public class ClickhouseDataSourceChannelTest {
public void testCreateDataSourceClient() {
ClickhouseDataSourceChannel sourceChannel =
PowerMockito.mock(ClickhouseDataSourceChannel.class);
ClickhouseDataSourceClient dataSourceClient =
PowerMockito.mock(ClickhouseDataSourceClient.class);
-
PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any())).thenReturn(dataSourceClient);
- Assert.assertNotNull(sourceChannel.createDataSourceClient(new
ClickhouseConnectionParam()));
+ PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any(),
Mockito.any())).thenReturn(dataSourceClient);
+ Assert.assertNotNull(sourceChannel.createDataSourceClient(new
ClickhouseConnectionParam(), DbType.CLICKHOUSE));
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/main/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceChannel.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/main/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceChannel.java
index 92da758..fac46b0 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/main/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceChannel.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/main/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceChannel.java
@@ -20,11 +20,12 @@ package org.apache.dolphinscheduler.plugin.datasource.db2;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannel;
import org.apache.dolphinscheduler.spi.datasource.DataSourceClient;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class DB2DataSourceChannel implements DataSourceChannel {
@Override
- public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam) {
- return new DB2DataSourceClient(baseConnectionParam);
+ public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam, DbType dbType) {
+ return new DB2DataSourceClient(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/main/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceClient.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/main/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceClient.java
index ab59b3f..5db789f 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/main/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceClient.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/main/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceClient.java
@@ -19,11 +19,12 @@ package org.apache.dolphinscheduler.plugin.datasource.db2;
import
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class DB2DataSourceClient extends CommonDataSourceClient {
- public DB2DataSourceClient(BaseConnectionParam baseConnectionParam) {
- super(baseConnectionParam);
+ public DB2DataSourceClient(BaseConnectionParam baseConnectionParam, DbType
dbType) {
+ super(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/test/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceChannelTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/test/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceChannelTest.java
index ea25bb9..b398b89 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/test/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceChannelTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-db2/src/test/java/org/apache/dolphinscheduler/plugin/datasource/db2/DB2DataSourceChannelTest.java
@@ -18,6 +18,7 @@
package org.apache.dolphinscheduler.plugin.datasource.db2;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.db2.Db2ConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.junit.Assert;
import org.junit.Test;
@@ -37,7 +38,7 @@ public class DB2DataSourceChannelTest {
public void testCreateDataSourceClient() {
DB2DataSourceChannel sourceChannel =
PowerMockito.mock(DB2DataSourceChannel.class);
DB2DataSourceClient dataSourceClient =
PowerMockito.mock(DB2DataSourceClient.class);
-
PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any())).thenReturn(dataSourceClient);
- Assert.assertNotNull(sourceChannel.createDataSourceClient(new
Db2ConnectionParam()));
+ PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any(),
Mockito.any())).thenReturn(dataSourceClient);
+ Assert.assertNotNull(sourceChannel.createDataSourceClient(new
Db2ConnectionParam(), DbType.DB2));
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceChannel.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceChannel.java
index 106fe99..fbacbfb 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceChannel.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceChannel.java
@@ -20,11 +20,12 @@ package org.apache.dolphinscheduler.plugin.datasource.hive;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannel;
import org.apache.dolphinscheduler.spi.datasource.DataSourceClient;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class HiveDataSourceChannel implements DataSourceChannel {
@Override
- public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam) {
- return new HiveDataSourceClient(baseConnectionParam);
+ public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam, DbType dbType) {
+ return new HiveDataSourceClient(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceClient.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceClient.java
index 0d78c79..0b00980 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceClient.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/main/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceClient.java
@@ -24,6 +24,7 @@ import
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSource
import
org.apache.dolphinscheduler.plugin.datasource.api.provider.JdbcDataSourceProvider;
import org.apache.dolphinscheduler.plugin.datasource.utils.CommonUtil;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.apache.dolphinscheduler.spi.utils.Constants;
import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
import org.apache.dolphinscheduler.spi.utils.StringUtils;
@@ -56,8 +57,8 @@ public class HiveDataSourceClient extends
CommonDataSourceClient {
protected HikariDataSource oneSessionDataSource;
private UserGroupInformation ugi;
- public HiveDataSourceClient(BaseConnectionParam baseConnectionParam) {
- super(baseConnectionParam);
+ public HiveDataSourceClient(BaseConnectionParam baseConnectionParam,
DbType dbType) {
+ super(baseConnectionParam, dbType);
}
@Override
@@ -67,7 +68,7 @@ public class HiveDataSourceClient extends
CommonDataSourceClient {
}
@Override
- protected void initClient(BaseConnectionParam baseConnectionParam) {
+ protected void initClient(BaseConnectionParam baseConnectionParam, DbType
dbType) {
logger.info("Create Configuration for hive configuration.");
this.hadoopConf = createHadoopConf();
logger.info("Create Configuration success.");
@@ -76,7 +77,7 @@ public class HiveDataSourceClient extends
CommonDataSourceClient {
this.ugi = createUserGroupInformation(baseConnectionParam.getUser());
logger.info("Create ugi success.");
- super.initClient(baseConnectionParam);
+ super.initClient(baseConnectionParam, dbType);
this.oneSessionDataSource =
JdbcDataSourceProvider.createOneSessionJdbcDataSource(baseConnectionParam);
logger.info("Init {} success.", getClass().getName());
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/test/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceChannelTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/test/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceChannelTest.java
index b19d44e..847042a 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/test/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceChannelTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-hive/src/test/java/org/apache/dolphinscheduler/plugin/datasource/hive/HiveDataSourceChannelTest.java
@@ -18,6 +18,7 @@
package org.apache.dolphinscheduler.plugin.datasource.hive;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.hive.HiveConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.junit.Assert;
import org.junit.Test;
@@ -37,7 +38,7 @@ public class HiveDataSourceChannelTest {
public void testCreateDataSourceClient() {
HiveDataSourceChannel sourceChannel =
PowerMockito.mock(HiveDataSourceChannel.class);
HiveDataSourceClient dataSourceClient =
PowerMockito.mock(HiveDataSourceClient.class);
-
PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any())).thenReturn(dataSourceClient);
- Assert.assertNotNull(sourceChannel.createDataSourceClient(new
HiveConnectionParam()));
+ PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any(),
Mockito.any())).thenReturn(dataSourceClient);
+ Assert.assertNotNull(sourceChannel.createDataSourceClient(new
HiveConnectionParam(), DbType.HIVE));
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceChannel.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceChannel.java
index 6764403..f14c970 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceChannel.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceChannel.java
@@ -20,11 +20,12 @@ package org.apache.dolphinscheduler.plugin.datasource.mysql;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannel;
import org.apache.dolphinscheduler.spi.datasource.DataSourceClient;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class MysqlDataSourceChannel implements DataSourceChannel {
@Override
- public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam) {
- return new MysqlDataSourceClient(baseConnectionParam);
+ public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam, DbType dbType) {
+ return new MysqlDataSourceClient(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceClient.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceClient.java
index 2e2a7dd..7fa7775 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceClient.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceClient.java
@@ -19,11 +19,12 @@ package org.apache.dolphinscheduler.plugin.datasource.mysql;
import
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class MysqlDataSourceClient extends CommonDataSourceClient {
- public MysqlDataSourceClient(BaseConnectionParam baseConnectionParam) {
- super(baseConnectionParam);
+ public MysqlDataSourceClient(BaseConnectionParam baseConnectionParam,
DbType dbType) {
+ super(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/test/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceChannelTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/test/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceChannelTest.java
index 216485c..1564594 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/test/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceChannelTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-mysql/src/test/java/org/apache/dolphinscheduler/plugin/datasource/mysql/MysqlDataSourceChannelTest.java
@@ -18,6 +18,7 @@
package org.apache.dolphinscheduler.plugin.datasource.mysql;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MysqlConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.junit.Assert;
import org.junit.Test;
@@ -37,7 +38,7 @@ public class MysqlDataSourceChannelTest {
public void testCreateDataSourceClient() {
MysqlDataSourceChannel sourceChannel =
PowerMockito.mock(MysqlDataSourceChannel.class);
MysqlDataSourceClient dataSourceClient =
PowerMockito.mock(MysqlDataSourceClient.class);
-
PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any())).thenReturn(dataSourceClient);
- Assert.assertNotNull(sourceChannel.createDataSourceClient(new
MysqlConnectionParam()));
+ PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any(),
Mockito.any())).thenReturn(dataSourceClient);
+ Assert.assertNotNull(sourceChannel.createDataSourceClient(new
MysqlConnectionParam(), DbType.MYSQL));
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/main/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceChannel.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/main/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceChannel.java
index 7dd06b8..65584b0 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/main/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceChannel.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/main/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceChannel.java
@@ -20,11 +20,12 @@ package
org.apache.dolphinscheduler.plugin.datasource.oracle;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannel;
import org.apache.dolphinscheduler.spi.datasource.DataSourceClient;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class OracleDataSourceChannel implements DataSourceChannel {
@Override
- public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam) {
- return new OracleDataSourceClient(baseConnectionParam);
+ public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam, DbType dbType) {
+ return new OracleDataSourceClient(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/main/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceClient.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/main/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceClient.java
index 8706022..6131dad 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/main/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceClient.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/main/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceClient.java
@@ -19,11 +19,12 @@ package
org.apache.dolphinscheduler.plugin.datasource.oracle;
import
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class OracleDataSourceClient extends CommonDataSourceClient {
- public OracleDataSourceClient(BaseConnectionParam baseConnectionParam) {
- super(baseConnectionParam);
+ public OracleDataSourceClient(BaseConnectionParam baseConnectionParam,
DbType dbType) {
+ super(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/test/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceChannelTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/test/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceChannelTest.java
index 82d836b..751a6cf 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/test/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceChannelTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-oracle/src/test/java/org/apache/dolphinscheduler/plugin/datasource/oracle/OracleDataSourceChannelTest.java
@@ -18,6 +18,7 @@
package org.apache.dolphinscheduler.plugin.datasource.oracle;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.oracle.OracleConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.junit.Assert;
import org.junit.Test;
@@ -37,7 +38,7 @@ public class OracleDataSourceChannelTest {
public void testCreateDataSourceClient() {
OracleDataSourceChannel sourceChannel =
PowerMockito.mock(OracleDataSourceChannel.class);
OracleDataSourceClient dataSourceClient =
PowerMockito.mock(OracleDataSourceClient.class);
-
PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any())).thenReturn(dataSourceClient);
- Assert.assertNotNull(sourceChannel.createDataSourceClient(new
OracleConnectionParam()));
+ PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any(),
Mockito.any())).thenReturn(dataSourceClient);
+ Assert.assertNotNull(sourceChannel.createDataSourceClient(new
OracleConnectionParam(), DbType.ORACLE));
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceChannel.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceChannel.java
index ce2ab22..014911f 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceChannel.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceChannel.java
@@ -20,11 +20,12 @@ package
org.apache.dolphinscheduler.plugin.datasource.postgresql;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannel;
import org.apache.dolphinscheduler.spi.datasource.DataSourceClient;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class PostgresqlDataSourceChannel implements DataSourceChannel {
@Override
- public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam) {
- return new PostgresqlDataSourceClient(baseConnectionParam);
+ public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam, DbType dbType) {
+ return new PostgresqlDataSourceClient(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceClient.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceClient.java
index 19e8b53..944ab23 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceClient.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/main/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceClient.java
@@ -19,11 +19,12 @@ package
org.apache.dolphinscheduler.plugin.datasource.postgresql;
import
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class PostgresqlDataSourceClient extends CommonDataSourceClient {
- public PostgresqlDataSourceClient(BaseConnectionParam baseConnectionParam)
{
- super(baseConnectionParam);
+ public PostgresqlDataSourceClient(BaseConnectionParam baseConnectionParam,
DbType dbType) {
+ super(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/test/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceChannelTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/test/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceChannelTest.java
index 1251540..7824fb6 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/test/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceChannelTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-postgresql/src/test/java/org/apache/dolphinscheduler/plugin/datasource/postgresql/PostgresqlDataSourceChannelTest.java
@@ -18,6 +18,7 @@
package org.apache.dolphinscheduler.plugin.datasource.postgresql;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.postgresql.PostgreSqlConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.junit.Assert;
import org.junit.Test;
@@ -37,7 +38,7 @@ public class PostgresqlDataSourceChannelTest {
public void testCreateDataSourceClient() {
PostgresqlDataSourceChannel sourceChannel =
PowerMockito.mock(PostgresqlDataSourceChannel.class);
PostgresqlDataSourceClient dataSourceClient =
PowerMockito.mock(PostgresqlDataSourceClient.class);
-
PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any())).thenReturn(dataSourceClient);
- Assert.assertNotNull(sourceChannel.createDataSourceClient(new
PostgreSqlConnectionParam()));
+ PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any(),
Mockito.any())).thenReturn(dataSourceClient);
+ Assert.assertNotNull(sourceChannel.createDataSourceClient(new
PostgreSqlConnectionParam(), DbType.POSTGRESQL));
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlServerDataSourceChannel.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlServerDataSourceChannel.java
index ce9cce7..03d5bc3 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlServerDataSourceChannel.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlServerDataSourceChannel.java
@@ -20,11 +20,12 @@ package
org.apache.dolphinscheduler.plugin.datasource.sqlserver;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannel;
import org.apache.dolphinscheduler.spi.datasource.DataSourceClient;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class SqlServerDataSourceChannel implements DataSourceChannel {
@Override
- public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam) {
- return new SqlserverDataSourceClient(baseConnectionParam);
+ public DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam, DbType dbType) {
+ return new SqlserverDataSourceClient(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlserverDataSourceClient.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlserverDataSourceClient.java
index 2a90684..bd97ca4 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlserverDataSourceClient.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/main/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlserverDataSourceClient.java
@@ -19,11 +19,12 @@ package
org.apache.dolphinscheduler.plugin.datasource.sqlserver;
import
org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient;
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
public class SqlserverDataSourceClient extends CommonDataSourceClient {
- public SqlserverDataSourceClient(BaseConnectionParam baseConnectionParam) {
- super(baseConnectionParam);
+ public SqlserverDataSourceClient(BaseConnectionParam baseConnectionParam,
DbType dbType) {
+ super(baseConnectionParam, dbType);
}
}
diff --git
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/test/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlserverDataSourceChannelTest.java
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/test/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlserverDataSourceChannelTest.java
index e9c1811..4fa2d26 100644
---
a/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/test/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlserverDataSourceChannelTest.java
+++
b/dolphinscheduler-datasource-plugin/dolphinscheduler-datasource-sqlserver/src/test/java/org/apache/dolphinscheduler/plugin/datasource/sqlserver/SqlserverDataSourceChannelTest.java
@@ -18,6 +18,7 @@
package org.apache.dolphinscheduler.plugin.datasource.sqlserver;
import
org.apache.dolphinscheduler.plugin.datasource.api.datasource.sqlserver.SqlServerConnectionParam;
+import org.apache.dolphinscheduler.spi.enums.DbType;
import org.junit.Assert;
import org.junit.Test;
@@ -37,7 +38,7 @@ public class SqlserverDataSourceChannelTest {
public void testCreateDataSourceClient() {
SqlServerDataSourceChannel sourceChannel =
PowerMockito.mock(SqlServerDataSourceChannel.class);
SqlserverDataSourceClient dataSourceClient =
PowerMockito.mock(SqlserverDataSourceClient.class);
-
PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any())).thenReturn(dataSourceClient);
- Assert.assertNotNull(sourceChannel.createDataSourceClient(new
SqlServerConnectionParam()));
+ PowerMockito.when(sourceChannel.createDataSourceClient(Mockito.any(),
Mockito.any())).thenReturn(dataSourceClient);
+ Assert.assertNotNull(sourceChannel.createDataSourceClient(new
SqlServerConnectionParam(), DbType.SQLSERVER));
}
}
diff --git
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/datasource/DataSourceChannel.java
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/datasource/DataSourceChannel.java
index 5328f95..98b6735 100644
---
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/datasource/DataSourceChannel.java
+++
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/datasource/DataSourceChannel.java
@@ -17,7 +17,9 @@
package org.apache.dolphinscheduler.spi.datasource;
+import org.apache.dolphinscheduler.spi.enums.DbType;
+
public interface DataSourceChannel {
- DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam);
+ DataSourceClient createDataSourceClient(BaseConnectionParam
baseConnectionParam, DbType dbType);
}
diff --git
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/utils/Constants.java
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/utils/Constants.java
index de01948..4c37e90 100644
---
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/utils/Constants.java
+++
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/utils/Constants.java
@@ -123,6 +123,7 @@ public class Constants {
*/
public static final String ORG_POSTGRESQL_DRIVER = "org.postgresql.Driver";
public static final String COM_MYSQL_CJ_JDBC_DRIVER =
"com.mysql.cj.jdbc.Driver";
+ public static final String COM_MYSQL_JDBC_DRIVER = "com.mysql.jdbc.Driver";
public static final String ORG_APACHE_HIVE_JDBC_HIVE_DRIVER =
"org.apache.hive.jdbc.HiveDriver";
public static final String COM_CLICKHOUSE_JDBC_DRIVER =
"ru.yandex.clickhouse.ClickHouseDriver";
public static final String COM_ORACLE_JDBC_DRIVER =
"oracle.jdbc.OracleDriver";