Move datasource params to datasouce plugin module (#10353)
* Move datasource params to datasouce plugin module
This commit is contained in:
parent
12fdd9bbd9
commit
0bf4043d5f
|
|
@ -25,7 +25,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
||||||
import org.apache.dolphinscheduler.api.enums.Status;
|
import org.apache.dolphinscheduler.api.enums.Status;
|
||||||
import org.apache.dolphinscheduler.api.utils.Result;
|
import org.apache.dolphinscheduler.api.utils.Result;
|
||||||
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
import org.apache.dolphinscheduler.common.utils.JSONUtils;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MySQLDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.mysql.param.MySQLDataSourceParamDTO;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,9 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.api.service;
|
package org.apache.dolphinscheduler.api.service;
|
||||||
|
|
||||||
|
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.DATASOURCE_DELETE;
|
||||||
|
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.DATASOURCE_LIST;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.api.enums.Status;
|
import org.apache.dolphinscheduler.api.enums.Status;
|
||||||
import org.apache.dolphinscheduler.api.service.impl.BaseServiceImpl;
|
import org.apache.dolphinscheduler.api.service.impl.BaseServiceImpl;
|
||||||
import org.apache.dolphinscheduler.api.service.impl.DataSourceServiceImpl;
|
import org.apache.dolphinscheduler.api.service.impl.DataSourceServiceImpl;
|
||||||
|
|
@ -29,14 +32,14 @@ import org.apache.dolphinscheduler.dao.entity.DataSource;
|
||||||
import org.apache.dolphinscheduler.dao.entity.User;
|
import org.apache.dolphinscheduler.dao.entity.User;
|
||||||
import org.apache.dolphinscheduler.dao.mapper.DataSourceMapper;
|
import org.apache.dolphinscheduler.dao.mapper.DataSourceMapper;
|
||||||
import org.apache.dolphinscheduler.dao.mapper.DataSourceUserMapper;
|
import org.apache.dolphinscheduler.dao.mapper.DataSourceUserMapper;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.hive.HiveDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MySQLDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.oracle.OracleDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.postgresql.PostgreSQLDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.DataSourceUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.DataSourceUtils;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.PasswordUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.PasswordUtils;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.hive.param.HiveDataSourceParamDTO;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.mysql.param.MySQLDataSourceParamDTO;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.oracle.param.OracleDataSourceParamDTO;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.postgresql.param.PostgreSQLDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.service.permission.ResourcePermissionCheckService;
|
import org.apache.dolphinscheduler.service.permission.ResourcePermissionCheckService;
|
||||||
import org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbConnectType;
|
import org.apache.dolphinscheduler.spi.enums.DbConnectType;
|
||||||
|
|
@ -67,9 +70,6 @@ import org.powermock.modules.junit4.PowerMockRunner;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.DATASOURCE_DELETE;
|
|
||||||
import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.DATASOURCE_LIST;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* data source service test
|
* data source service test
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,6 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-io</groupId>
|
<groupId>commons-io</groupId>
|
||||||
<artifactId>commons-io</artifactId>
|
<artifactId>commons-io</artifactId>
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -66,7 +65,6 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
<artifactId>commons-collections4</artifactId>
|
<artifactId>commons-collections4</artifactId>
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
@ -130,7 +128,6 @@
|
||||||
<groupId>log4j</groupId>
|
<groupId>log4j</groupId>
|
||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
<scope>provided</scope>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
|
|
@ -139,8 +136,6 @@
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.zaxxer</groupId>
|
<groupId>com.zaxxer</groupId>
|
||||||
<artifactId>HikariCP</artifactId>
|
<artifactId>HikariCP</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -17,34 +17,13 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource;
|
package org.apache.dolphinscheduler.plugin.datasource.api.datasource;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.clickhouse.ClickHouseDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.db2.Db2DataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.hive.HiveDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MySQLDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.oracle.OracleDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.postgresql.PostgreSQLDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.presto.PrestoDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.redshift.RedshiftDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.spark.SparkDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.sqlserver.SQLServerDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Basic datasource params submitted to api.
|
* Basic datasource params submitted to api, each datasource plugin should have implementation.
|
||||||
* <p>
|
|
||||||
* see {@link MySQLDataSourceParamDTO}
|
|
||||||
* see {@link PostgreSQLDataSourceParamDTO}
|
|
||||||
* see {@link HiveDataSourceParamDTO}
|
|
||||||
* see {@link SparkDataSourceParamDTO}
|
|
||||||
* see {@link ClickHouseDataSourceParamDTO}
|
|
||||||
* see {@link OracleDataSourceParamDTO}
|
|
||||||
* see {@link SQLServerDataSourceParamDTO}
|
|
||||||
* see {@link Db2DataSourceParamDTO}
|
|
||||||
* see {@link PrestoDataSourceParamDTO}
|
|
||||||
* see {@link RedshiftDataSourceParamDTO}
|
|
||||||
*/
|
*/
|
||||||
public abstract class BaseDataSourceParamDTO implements Serializable {
|
public abstract class BaseDataSourceParamDTO implements Serializable {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,8 @@ import org.apache.dolphinscheduler.spi.datasource.DataSourceChannel;
|
||||||
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannelFactory;
|
import org.apache.dolphinscheduler.spi.datasource.DataSourceChannelFactory;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.ServiceLoader;
|
import java.util.ServiceLoader;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
@ -42,14 +40,13 @@ public class DataSourcePluginManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void installPlugin() {
|
public void installPlugin() {
|
||||||
final Set<String> names = new HashSet<>();
|
|
||||||
|
|
||||||
ServiceLoader.load(DataSourceChannelFactory.class).forEach(factory -> {
|
ServiceLoader.load(DataSourceChannelFactory.class).forEach(factory -> {
|
||||||
final String name = factory.getName();
|
final String name = factory.getName();
|
||||||
|
|
||||||
logger.info("Registering datasource plugin: {}", name);
|
logger.info("Registering datasource plugin: {}", name);
|
||||||
|
|
||||||
if (!names.add(name)) {
|
if (datasourceClientMap.containsKey(name)) {
|
||||||
throw new IllegalStateException(format("Duplicate datasource plugins named '%s'", name));
|
throw new IllegalStateException(format("Duplicate datasource plugins named '%s'", name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,18 +17,17 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.plugin;
|
package org.apache.dolphinscheduler.plugin.datasource.api.plugin;
|
||||||
|
|
||||||
|
import static java.lang.String.format;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.ServiceLoader;
|
import java.util.ServiceLoader;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import static java.lang.String.format;
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
public class DataSourceProcessorManager {
|
public class DataSourceProcessorManager {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(DataSourceProcessorManager.class);
|
private static final Logger logger = LoggerFactory.getLogger(DataSourceProcessorManager.class);
|
||||||
|
|
@ -40,13 +39,12 @@ public class DataSourceProcessorManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void installProcessor() {
|
public void installProcessor() {
|
||||||
final Set<String> names = new HashSet<>();
|
|
||||||
|
|
||||||
ServiceLoader.load(DataSourceProcessor.class).forEach(factory -> {
|
ServiceLoader.load(DataSourceProcessor.class).forEach(factory -> {
|
||||||
final String name = factory.getDbType().name();
|
final String name = factory.getDbType().name();
|
||||||
|
|
||||||
logger.info("start register processor: {}", name);
|
logger.info("start register processor: {}", name);
|
||||||
if (!names.add(name)) {
|
if (dataSourceProcessorMap.containsKey(name)) {
|
||||||
throw new IllegalStateException(format("Duplicate datasource plugins named '%s'", name));
|
throw new IllegalStateException(format("Duplicate datasource plugins named '%s'", name));
|
||||||
}
|
}
|
||||||
loadDatasourceClient(factory);
|
loadDatasourceClient(factory);
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.client;
|
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.datasource.MySQLConnectionParam;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.provider.JDBCDataSourceProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.provider.JDBCDataSourceProvider;
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,13 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql;
|
package org.apache.dolphinscheduler.plugin.datasource.api.datasource;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for test.
|
||||||
|
*/
|
||||||
public class MySQLConnectionParam extends BaseConnectionParam {
|
public class MySQLConnectionParam extends BaseConnectionParam {
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.clickhouse;
|
package org.apache.dolphinscheduler.plugin.datasource.clickhouse.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.clickhouse;
|
package org.apache.dolphinscheduler.plugin.datasource.clickhouse.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,10 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.clickhouse;
|
package org.apache.dolphinscheduler.plugin.datasource.clickhouse.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -29,12 +27,16 @@ import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class ClickHouseDataSourceProcessor extends AbstractDataSourceProcessor {
|
public class ClickHouseDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -43,12 +45,12 @@ public class ClickHouseDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
return JSONUtils.parseObject(paramJson, ClickHouseDataSourceParamDTO.class);
|
return JSONUtils.parseObject(paramJson, ClickHouseDataSourceParamDTO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
||||||
ClickHouseConnectionParam connectionParams = (ClickHouseConnectionParam) createConnectionParams(connectionJson);
|
ClickHouseConnectionParam connectionParams = (ClickHouseConnectionParam) createConnectionParams(connectionJson);
|
||||||
|
|
||||||
ClickHouseDataSourceParamDTO clickHouseDatasourceParamDTO = new ClickHouseDataSourceParamDTO();
|
ClickHouseDataSourceParamDTO
|
||||||
|
clickHouseDatasourceParamDTO = new ClickHouseDataSourceParamDTO();
|
||||||
clickHouseDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
clickHouseDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
||||||
clickHouseDatasourceParamDTO.setUserName(connectionParams.getUser());
|
clickHouseDatasourceParamDTO.setUserName(connectionParams.getUser());
|
||||||
clickHouseDatasourceParamDTO.setOther(parseOther(connectionParams.getOther()));
|
clickHouseDatasourceParamDTO.setOther(parseOther(connectionParams.getOther()));
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.clickhouse;
|
package org.apache.dolphinscheduler.plugin.datasource.clickhouse;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.clickhouse.ClickHouseConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.clickhouse.param.ClickHouseConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.db2;
|
package org.apache.dolphinscheduler.plugin.datasource.db2.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.db2;
|
package org.apache.dolphinscheduler.plugin.datasource.db2.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,10 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.db2;
|
package org.apache.dolphinscheduler.plugin.datasource.db2.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -30,12 +28,16 @@ import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class Db2DataSourceProcessor extends AbstractDataSourceProcessor {
|
public class Db2DataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -48,7 +50,8 @@ public class Db2DataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
||||||
Db2ConnectionParam connectionParams = (Db2ConnectionParam) createConnectionParams(connectionJson);
|
Db2ConnectionParam connectionParams = (Db2ConnectionParam) createConnectionParams(connectionJson);
|
||||||
|
|
||||||
Db2DataSourceParamDTO db2DatasourceParamDTO = new Db2DataSourceParamDTO();
|
Db2DataSourceParamDTO
|
||||||
|
db2DatasourceParamDTO = new Db2DataSourceParamDTO();
|
||||||
db2DatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
db2DatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
||||||
db2DatasourceParamDTO.setOther(parseOther(connectionParams.getOther()));
|
db2DatasourceParamDTO.setOther(parseOther(connectionParams.getOther()));
|
||||||
db2DatasourceParamDTO.setUserName(db2DatasourceParamDTO.getUserName());
|
db2DatasourceParamDTO.setUserName(db2DatasourceParamDTO.getUserName());
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.db2;
|
package org.apache.dolphinscheduler.plugin.datasource.db2;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.db2.Db2ConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.db2.param.Db2ConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.db2;
|
package org.apache.dolphinscheduler.plugin.datasource.db2.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -20,7 +20,7 @@ package org.apache.dolphinscheduler.plugin.datasource.hive;
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient;
|
import org.apache.dolphinscheduler.plugin.datasource.api.client.CommonDataSourceClient;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.provider.JDBCDataSourceProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.provider.JDBCDataSourceProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.utils.CommonUtil;
|
import org.apache.dolphinscheduler.plugin.datasource.hive.utils.CommonUtil;
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.hive;
|
package org.apache.dolphinscheduler.plugin.datasource.hive.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseHDFSConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseHDFSConnectionParam;
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.hive;
|
package org.apache.dolphinscheduler.plugin.datasource.hive.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseHDFSDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseHDFSDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,10 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.hive;
|
package org.apache.dolphinscheduler.plugin.datasource.hive.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -31,6 +29,8 @@ import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
|
@ -38,6 +38,8 @@ import java.sql.SQLException;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class HiveDataSourceProcessor extends AbstractDataSourceProcessor {
|
public class HiveDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -48,7 +50,8 @@ public class HiveDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
||||||
HiveDataSourceParamDTO hiveDataSourceParamDTO = new HiveDataSourceParamDTO();
|
HiveDataSourceParamDTO
|
||||||
|
hiveDataSourceParamDTO = new HiveDataSourceParamDTO();
|
||||||
HiveConnectionParam hiveConnectionParam = (HiveConnectionParam) createConnectionParams(connectionJson);
|
HiveConnectionParam hiveConnectionParam = (HiveConnectionParam) createConnectionParams(connectionJson);
|
||||||
|
|
||||||
hiveDataSourceParamDTO.setDatabase(hiveConnectionParam.getDatabase());
|
hiveDataSourceParamDTO.setDatabase(hiveConnectionParam.getDatabase());
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.utils;
|
package org.apache.dolphinscheduler.plugin.datasource.hive.utils;
|
||||||
|
|
||||||
import static org.apache.dolphinscheduler.spi.utils.Constants.JAVA_SECURITY_KRB5_CONF;
|
import static org.apache.dolphinscheduler.spi.utils.Constants.JAVA_SECURITY_KRB5_CONF;
|
||||||
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.hive;
|
package org.apache.dolphinscheduler.plugin.datasource.hive;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.hive.HiveConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.hive.param.HiveConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.hive;
|
package org.apache.dolphinscheduler.plugin.datasource.hive.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
/*
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
* (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.apache.dolphinscheduler.plugin.datasource.mysql.param;
|
||||||
|
|
||||||
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
|
|
||||||
|
public class MySQLConnectionParam extends BaseConnectionParam {
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "MySQLConnectionParam{"
|
||||||
|
+ "user='" + user + '\''
|
||||||
|
+ ", password='" + password + '\''
|
||||||
|
+ ", address='" + address + '\''
|
||||||
|
+ ", database='" + database + '\''
|
||||||
|
+ ", jdbcUrl='" + jdbcUrl + '\''
|
||||||
|
+ ", driverLocation='" + driverLocation + '\''
|
||||||
|
+ ", driverClassName='" + driverClassName + '\''
|
||||||
|
+ ", validationQuery='" + validationQuery + '\''
|
||||||
|
+ ", other='" + other + '\''
|
||||||
|
+ '}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql;
|
package org.apache.dolphinscheduler.plugin.datasource.mysql.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,10 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql;
|
package org.apache.dolphinscheduler.plugin.datasource.mysql.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -29,8 +27,8 @@ import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
|
@ -39,6 +37,11 @@ import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class MySQLDataSourceProcessor extends AbstractDataSourceProcessor {
|
public class MySQLDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -61,8 +64,10 @@ public class MySQLDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
||||||
MySQLConnectionParam connectionParams = (MySQLConnectionParam) createConnectionParams(connectionJson);
|
MySQLConnectionParam
|
||||||
MySQLDataSourceParamDTO mysqlDatasourceParamDTO = new MySQLDataSourceParamDTO();
|
connectionParams = (MySQLConnectionParam) createConnectionParams(connectionJson);
|
||||||
|
MySQLDataSourceParamDTO
|
||||||
|
mysqlDatasourceParamDTO = new MySQLDataSourceParamDTO();
|
||||||
|
|
||||||
mysqlDatasourceParamDTO.setUserName(connectionParams.getUser());
|
mysqlDatasourceParamDTO.setUserName(connectionParams.getUser());
|
||||||
mysqlDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
mysqlDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
||||||
|
|
@ -83,7 +88,8 @@ public class MySQLDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
String address = String.format("%s%s:%s", Constants.JDBC_MYSQL, mysqlDatasourceParam.getHost(), mysqlDatasourceParam.getPort());
|
String address = String.format("%s%s:%s", Constants.JDBC_MYSQL, mysqlDatasourceParam.getHost(), mysqlDatasourceParam.getPort());
|
||||||
String jdbcUrl = String.format("%s/%s", address, mysqlDatasourceParam.getDatabase());
|
String jdbcUrl = String.format("%s/%s", address, mysqlDatasourceParam.getDatabase());
|
||||||
|
|
||||||
MySQLConnectionParam mysqlConnectionParam = new MySQLConnectionParam();
|
MySQLConnectionParam
|
||||||
|
mysqlConnectionParam = new MySQLConnectionParam();
|
||||||
mysqlConnectionParam.setJdbcUrl(jdbcUrl);
|
mysqlConnectionParam.setJdbcUrl(jdbcUrl);
|
||||||
mysqlConnectionParam.setDatabase(mysqlDatasourceParam.getDatabase());
|
mysqlConnectionParam.setDatabase(mysqlDatasourceParam.getDatabase());
|
||||||
mysqlConnectionParam.setAddress(address);
|
mysqlConnectionParam.setAddress(address);
|
||||||
|
|
@ -114,7 +120,8 @@ public class MySQLDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getJdbcUrl(ConnectionParam connectionParam) {
|
public String getJdbcUrl(ConnectionParam connectionParam) {
|
||||||
MySQLConnectionParam mysqlConnectionParam = (MySQLConnectionParam) connectionParam;
|
MySQLConnectionParam
|
||||||
|
mysqlConnectionParam = (MySQLConnectionParam) connectionParam;
|
||||||
String jdbcUrl = mysqlConnectionParam.getJdbcUrl();
|
String jdbcUrl = mysqlConnectionParam.getJdbcUrl();
|
||||||
if (!StringUtils.isEmpty(mysqlConnectionParam.getOther())) {
|
if (!StringUtils.isEmpty(mysqlConnectionParam.getOther())) {
|
||||||
return String.format("%s?%s&%s", jdbcUrl, mysqlConnectionParam.getOther(), APPEND_PARAMS);
|
return String.format("%s?%s&%s", jdbcUrl, mysqlConnectionParam.getOther(), APPEND_PARAMS);
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.mysql;
|
package org.apache.dolphinscheduler.plugin.datasource.mysql;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MySQLConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.mysql.param.MySQLConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql;
|
package org.apache.dolphinscheduler.plugin.datasource.mysql.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -15,9 +15,10 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.provider;
|
package org.apache.dolphinscheduler.plugin.datasource.mysql.provider;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MySQLConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.api.provider.JDBCDataSourceProvider;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.mysql.param.MySQLConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
@ -15,17 +15,19 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.utils;
|
package org.apache.dolphinscheduler.plugin.datasource.mysql.utils;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MySQLConnectionParam;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MySQLDataSourceParamDTO;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.mysql.MySQLDataSourceProcessor;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.task.api.TaskConstants;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.DataSourceUtils;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.PasswordUtils;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.mysql.param.MySQLConnectionParam;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.mysql.param.MySQLDataSourceParamDTO;
|
||||||
|
import org.apache.dolphinscheduler.plugin.datasource.mysql.param.MySQLDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
|
import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
|
@ -33,7 +35,6 @@ import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.utils.PropertyUtils;
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
@ -93,7 +94,7 @@ public class DataSourceUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
public void testGetConnection() throws ExecutionException {
|
public void testGetConnection() throws ExecutionException {
|
||||||
PowerMockito.mockStatic(PropertyUtils.class);
|
PowerMockito.mockStatic(PropertyUtils.class);
|
||||||
PowerMockito.when(PropertyUtils.getLong(TaskConstants.KERBEROS_EXPIRE_TIME, 24L)).thenReturn(24L);
|
PowerMockito.when(PropertyUtils.getLong("kerberos.expire.time", 24L)).thenReturn(24L);
|
||||||
PowerMockito.mockStatic(DataSourceClientProvider.class);
|
PowerMockito.mockStatic(DataSourceClientProvider.class);
|
||||||
DataSourceClientProvider clientProvider = PowerMockito.mock(DataSourceClientProvider.class);
|
DataSourceClientProvider clientProvider = PowerMockito.mock(DataSourceClientProvider.class);
|
||||||
PowerMockito.when(DataSourceClientProvider.getInstance()).thenReturn(clientProvider);
|
PowerMockito.when(DataSourceClientProvider.getInstance()).thenReturn(clientProvider);
|
||||||
|
|
@ -134,14 +135,6 @@ public class DataSourceUtilsTest {
|
||||||
@Test
|
@Test
|
||||||
public void testGetDatasourceProcessor() {
|
public void testGetDatasourceProcessor() {
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.MYSQL));
|
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.MYSQL));
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.POSTGRESQL));
|
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.HIVE));
|
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.SPARK));
|
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.CLICKHOUSE));
|
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.ORACLE));
|
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.SQLSERVER));
|
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.DB2));
|
|
||||||
Assert.assertNotNull(DataSourceUtils.getDatasourceProcessor(DbType.PRESTO));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = Exception.class)
|
@Test(expected = Exception.class)
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.oracle;
|
package org.apache.dolphinscheduler.plugin.datasource.oracle.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbConnectType;
|
import org.apache.dolphinscheduler.spi.enums.DbConnectType;
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.oracle;
|
package org.apache.dolphinscheduler.plugin.datasource.oracle.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbConnectType;
|
import org.apache.dolphinscheduler.spi.enums.DbConnectType;
|
||||||
|
|
@ -15,11 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.oracle;
|
package org.apache.dolphinscheduler.plugin.datasource.oracle.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -30,6 +27,9 @@ import org.apache.dolphinscheduler.spi.enums.DbConnectType;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
|
@ -39,6 +39,8 @@ import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class OracleDataSourceProcessor extends AbstractDataSourceProcessor {
|
public class OracleDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.oracle;
|
package org.apache.dolphinscheduler.plugin.datasource.oracle;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.oracle.OracleConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.oracle.param.OracleConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.oracle;
|
package org.apache.dolphinscheduler.plugin.datasource.oracle.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.postgresql;
|
package org.apache.dolphinscheduler.plugin.datasource.postgresql.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.postgresql;
|
package org.apache.dolphinscheduler.plugin.datasource.postgresql.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,11 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.postgresql;
|
package org.apache.dolphinscheduler.plugin.datasource.postgresql.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -30,11 +27,15 @@ import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
import com.google.common.base.Strings;
|
import com.google.common.base.Strings;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
|
|
@ -48,7 +49,8 @@ public class PostgreSQLDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
@Override
|
@Override
|
||||||
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
||||||
PostgreSQLConnectionParam connectionParams = (PostgreSQLConnectionParam) createConnectionParams(connectionJson);
|
PostgreSQLConnectionParam connectionParams = (PostgreSQLConnectionParam) createConnectionParams(connectionJson);
|
||||||
PostgreSQLDataSourceParamDTO postgreSqlDatasourceParamDTO = new PostgreSQLDataSourceParamDTO();
|
PostgreSQLDataSourceParamDTO
|
||||||
|
postgreSqlDatasourceParamDTO = new PostgreSQLDataSourceParamDTO();
|
||||||
postgreSqlDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
postgreSqlDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
||||||
postgreSqlDatasourceParamDTO.setUserName(connectionParams.getUser());
|
postgreSqlDatasourceParamDTO.setUserName(connectionParams.getUser());
|
||||||
postgreSqlDatasourceParamDTO.setOther(parseOther(connectionParams.getOther()));
|
postgreSqlDatasourceParamDTO.setOther(parseOther(connectionParams.getOther()));
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.postgresql;
|
package org.apache.dolphinscheduler.plugin.datasource.postgresql;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.postgresql.PostgreSQLConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.postgresql.param.PostgreSQLConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.postgresql;
|
package org.apache.dolphinscheduler.plugin.datasource.postgresql.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.presto;
|
package org.apache.dolphinscheduler.plugin.datasource.presto.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.presto;
|
package org.apache.dolphinscheduler.plugin.datasource.presto.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,11 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.presto;
|
package org.apache.dolphinscheduler.plugin.datasource.presto.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -29,6 +26,9 @@ import org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
|
@ -38,6 +38,8 @@ import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class PrestoDataSourceProcessor extends AbstractDataSourceProcessor {
|
public class PrestoDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -53,7 +55,8 @@ public class PrestoDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
String[] hostSeperator = connectionParams.getAddress().split(Constants.DOUBLE_SLASH);
|
String[] hostSeperator = connectionParams.getAddress().split(Constants.DOUBLE_SLASH);
|
||||||
String[] hostPortArray = hostSeperator[hostSeperator.length - 1].split(Constants.COMMA);
|
String[] hostPortArray = hostSeperator[hostSeperator.length - 1].split(Constants.COMMA);
|
||||||
|
|
||||||
PrestoDataSourceParamDTO prestoDatasourceParamDTO = new PrestoDataSourceParamDTO();
|
PrestoDataSourceParamDTO
|
||||||
|
prestoDatasourceParamDTO = new PrestoDataSourceParamDTO();
|
||||||
prestoDatasourceParamDTO.setPort(Integer.parseInt(hostPortArray[0].split(Constants.COLON)[1]));
|
prestoDatasourceParamDTO.setPort(Integer.parseInt(hostPortArray[0].split(Constants.COLON)[1]));
|
||||||
prestoDatasourceParamDTO.setHost(hostPortArray[0].split(Constants.COLON)[0]);
|
prestoDatasourceParamDTO.setHost(hostPortArray[0].split(Constants.COLON)[0]);
|
||||||
prestoDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
prestoDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.presto;
|
package org.apache.dolphinscheduler.plugin.datasource.presto;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.presto.PrestoConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.presto.param.PrestoConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.presto;
|
package org.apache.dolphinscheduler.plugin.datasource.presto.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.redshift;
|
package org.apache.dolphinscheduler.plugin.datasource.redshift.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.redshift;
|
package org.apache.dolphinscheduler.plugin.datasource.redshift.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,11 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.redshift;
|
package org.apache.dolphinscheduler.plugin.datasource.redshift.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -29,6 +26,9 @@ import org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
|
@ -38,6 +38,8 @@ import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class RedshiftDataSourceProcessor extends AbstractDataSourceProcessor {
|
public class RedshiftDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.redshift;
|
package org.apache.dolphinscheduler.plugin.datasource.redshift.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -56,7 +56,7 @@ public class RedshiftDataSourceProcessorTest {
|
||||||
PowerMockito.mockStatic(PasswordUtils.class);
|
PowerMockito.mockStatic(PasswordUtils.class);
|
||||||
PowerMockito.when(PasswordUtils.encodePassword(Mockito.anyString())).thenReturn("test");
|
PowerMockito.when(PasswordUtils.encodePassword(Mockito.anyString())).thenReturn("test");
|
||||||
RedshiftConnectionParam connectionParams = (RedshiftConnectionParam) redshiftDatasourceProcessor
|
RedshiftConnectionParam connectionParams = (RedshiftConnectionParam) redshiftDatasourceProcessor
|
||||||
.createConnectionParams(redshiftDatasourceParamDTO);
|
.createConnectionParams(redshiftDatasourceParamDTO);
|
||||||
Assert.assertEquals("jdbc:redshift://localhost:5439", connectionParams.getAddress());
|
Assert.assertEquals("jdbc:redshift://localhost:5439", connectionParams.getAddress());
|
||||||
Assert.assertEquals("jdbc:redshift://localhost:5439/dev", connectionParams.getJdbcUrl());
|
Assert.assertEquals("jdbc:redshift://localhost:5439/dev", connectionParams.getJdbcUrl());
|
||||||
}
|
}
|
||||||
|
|
@ -64,9 +64,9 @@ public class RedshiftDataSourceProcessorTest {
|
||||||
@Test
|
@Test
|
||||||
public void testCreateConnectionParams2() {
|
public void testCreateConnectionParams2() {
|
||||||
String connectionJson = "{\"user\":\"awsuser\",\"password\":\"123456\",\"address\":\"jdbc:redshift://localhost:5439\""
|
String connectionJson = "{\"user\":\"awsuser\",\"password\":\"123456\",\"address\":\"jdbc:redshift://localhost:5439\""
|
||||||
+ ",\"database\":\"dev\",\"jdbcUrl\":\"jdbc:redshift://localhost:5439/dev\"}";
|
+ ",\"database\":\"dev\",\"jdbcUrl\":\"jdbc:redshift://localhost:5439/dev\"}";
|
||||||
RedshiftConnectionParam connectionParams = (RedshiftConnectionParam) redshiftDatasourceProcessor
|
RedshiftConnectionParam connectionParams = (RedshiftConnectionParam) redshiftDatasourceProcessor
|
||||||
.createConnectionParams(connectionJson);
|
.createConnectionParams(connectionJson);
|
||||||
Assert.assertNotNull(connectionParams);
|
Assert.assertNotNull(connectionParams);
|
||||||
Assert.assertEquals("awsuser", connectionParams.getUser());
|
Assert.assertEquals("awsuser", connectionParams.getUser());
|
||||||
}
|
}
|
||||||
|
|
@ -82,7 +82,7 @@ public class RedshiftDataSourceProcessorTest {
|
||||||
redshiftConnectionParam.setJdbcUrl("jdbc:redshift://localhost:5439/default");
|
redshiftConnectionParam.setJdbcUrl("jdbc:redshift://localhost:5439/default");
|
||||||
redshiftConnectionParam.setOther("DSILogLevel=6;defaultRowFetchSize=100");
|
redshiftConnectionParam.setOther("DSILogLevel=6;defaultRowFetchSize=100");
|
||||||
Assert.assertEquals("jdbc:redshift://localhost:5439/default?DSILogLevel=6;defaultRowFetchSize=100",
|
Assert.assertEquals("jdbc:redshift://localhost:5439/default?DSILogLevel=6;defaultRowFetchSize=100",
|
||||||
redshiftDatasourceProcessor.getJdbcUrl(redshiftConnectionParam));
|
redshiftDatasourceProcessor.getJdbcUrl(redshiftConnectionParam));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.spark;
|
package org.apache.dolphinscheduler.plugin.datasource.spark.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseHDFSConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseHDFSConnectionParam;
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.spark;
|
package org.apache.dolphinscheduler.plugin.datasource.spark.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseHDFSDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseHDFSDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,10 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.spark;
|
package org.apache.dolphinscheduler.plugin.datasource.spark.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -31,6 +29,8 @@ import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
|
@ -41,6 +41,8 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class SparkDataSourceProcessor extends AbstractDataSourceProcessor {
|
public class SparkDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -51,9 +53,11 @@ public class SparkDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
public BaseDataSourceParamDTO createDatasourceParamDTO(String connectionJson) {
|
||||||
SparkConnectionParam connectionParams = (SparkConnectionParam) createConnectionParams(connectionJson);
|
SparkConnectionParam
|
||||||
|
connectionParams = (SparkConnectionParam) createConnectionParams(connectionJson);
|
||||||
|
|
||||||
SparkDataSourceParamDTO sparkDatasourceParamDTO = new SparkDataSourceParamDTO();
|
SparkDataSourceParamDTO
|
||||||
|
sparkDatasourceParamDTO = new SparkDataSourceParamDTO();
|
||||||
sparkDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
sparkDatasourceParamDTO.setDatabase(connectionParams.getDatabase());
|
||||||
sparkDatasourceParamDTO.setUserName(connectionParams.getUser());
|
sparkDatasourceParamDTO.setUserName(connectionParams.getUser());
|
||||||
sparkDatasourceParamDTO.setOther(parseOther(connectionParams.getOther()));
|
sparkDatasourceParamDTO.setOther(parseOther(connectionParams.getOther()));
|
||||||
|
|
@ -85,7 +89,8 @@ public class SparkDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
String jdbcUrl = address + "/" + sparkDatasourceParam.getDatabase();
|
String jdbcUrl = address + "/" + sparkDatasourceParam.getDatabase();
|
||||||
|
|
||||||
SparkConnectionParam sparkConnectionParam = new SparkConnectionParam();
|
SparkConnectionParam
|
||||||
|
sparkConnectionParam = new SparkConnectionParam();
|
||||||
sparkConnectionParam.setPassword(PasswordUtils.encodePassword(sparkDatasourceParam.getPassword()));
|
sparkConnectionParam.setPassword(PasswordUtils.encodePassword(sparkDatasourceParam.getPassword()));
|
||||||
sparkConnectionParam.setUser(sparkDatasourceParam.getUserName());
|
sparkConnectionParam.setUser(sparkDatasourceParam.getUserName());
|
||||||
sparkConnectionParam.setOther(transformOther(sparkDatasourceParam.getOther()));
|
sparkConnectionParam.setOther(transformOther(sparkDatasourceParam.getOther()));
|
||||||
|
|
@ -123,7 +128,8 @@ public class SparkDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getJdbcUrl(ConnectionParam connectionParam) {
|
public String getJdbcUrl(ConnectionParam connectionParam) {
|
||||||
SparkConnectionParam sparkConnectionParam = (SparkConnectionParam) connectionParam;
|
SparkConnectionParam
|
||||||
|
sparkConnectionParam = (SparkConnectionParam) connectionParam;
|
||||||
if (!StringUtils.isEmpty(sparkConnectionParam.getOther())) {
|
if (!StringUtils.isEmpty(sparkConnectionParam.getOther())) {
|
||||||
return String.format("%s;%s", sparkConnectionParam.getJdbcUrl(), sparkConnectionParam.getOther());
|
return String.format("%s;%s", sparkConnectionParam.getJdbcUrl(), sparkConnectionParam.getOther());
|
||||||
}
|
}
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.spark;
|
package org.apache.dolphinscheduler.plugin.datasource.spark;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.spark.SparkConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.spark.param.SparkConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.spark;
|
package org.apache.dolphinscheduler.plugin.datasource.spark.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.sqlserver;
|
package org.apache.dolphinscheduler.plugin.datasource.sqlserver.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
import org.apache.dolphinscheduler.spi.datasource.BaseConnectionParam;
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.sqlserver;
|
package org.apache.dolphinscheduler.plugin.datasource.sqlserver.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
@ -15,11 +15,8 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.sqlserver;
|
package org.apache.dolphinscheduler.plugin.datasource.sqlserver.param;
|
||||||
|
|
||||||
import com.google.auto.service.AutoService;
|
|
||||||
import org.apache.commons.collections4.MapUtils;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.AbstractDataSourceProcessor;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.BaseDataSourceParamDTO;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.DataSourceProcessor;
|
||||||
|
|
@ -29,6 +26,9 @@ import org.apache.dolphinscheduler.spi.datasource.ConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
import org.apache.dolphinscheduler.spi.utils.Constants;
|
import org.apache.dolphinscheduler.spi.utils.Constants;
|
||||||
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
import org.apache.dolphinscheduler.spi.utils.JSONUtils;
|
||||||
|
import org.apache.dolphinscheduler.spi.utils.StringUtils;
|
||||||
|
|
||||||
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
|
|
@ -36,6 +36,8 @@ import java.sql.SQLException;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.google.auto.service.AutoService;
|
||||||
|
|
||||||
@AutoService(DataSourceProcessor.class)
|
@AutoService(DataSourceProcessor.class)
|
||||||
public class SQLServerDataSourceProcessor extends AbstractDataSourceProcessor {
|
public class SQLServerDataSourceProcessor extends AbstractDataSourceProcessor {
|
||||||
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.sqlserver;
|
package org.apache.dolphinscheduler.plugin.datasource.sqlserver;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.datasource.sqlserver.SQLServerConnectionParam;
|
import org.apache.dolphinscheduler.plugin.datasource.sqlserver.param.SQLServerConnectionParam;
|
||||||
import org.apache.dolphinscheduler.spi.enums.DbType;
|
import org.apache.dolphinscheduler.spi.enums.DbType;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.plugin.datasource.api.datasource.sqlserver;
|
package org.apache.dolphinscheduler.plugin.datasource.sqlserver.param;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
import org.apache.dolphinscheduler.plugin.datasource.api.plugin.DataSourceClientProvider;
|
||||||
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
import org.apache.dolphinscheduler.plugin.datasource.api.utils.CommonUtils;
|
||||||
|
|
@ -41,7 +41,7 @@ public interface ResourcePermissionCheckService<T>{
|
||||||
* @param <T>
|
* @param <T>
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> Set<T> userOwnedResourceIdsAcquisition(AuthorizationType authorizationType, Integer userId, Logger logger);
|
Set<T> userOwnedResourceIdsAcquisition(AuthorizationType authorizationType, Integer userId, Logger logger);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* operationpermissionCheck
|
* operationpermissionCheck
|
||||||
|
|
|
||||||
|
|
@ -33,12 +33,42 @@
|
||||||
|
|
||||||
package org.apache.dolphinscheduler.service.permission;
|
package org.apache.dolphinscheduler.service.permission;
|
||||||
|
|
||||||
|
import static java.util.stream.Collectors.toSet;
|
||||||
|
|
||||||
import org.apache.dolphinscheduler.common.enums.AuthorizationType;
|
import org.apache.dolphinscheduler.common.enums.AuthorizationType;
|
||||||
import org.apache.dolphinscheduler.common.enums.UserType;
|
import org.apache.dolphinscheduler.common.enums.UserType;
|
||||||
import org.apache.dolphinscheduler.dao.entity.*;
|
import org.apache.dolphinscheduler.dao.entity.AccessToken;
|
||||||
import org.apache.dolphinscheduler.dao.entity.Queue;
|
import org.apache.dolphinscheduler.dao.entity.AlertGroup;
|
||||||
import org.apache.dolphinscheduler.dao.mapper.*;
|
import org.apache.dolphinscheduler.dao.entity.DataSource;
|
||||||
|
import org.apache.dolphinscheduler.dao.entity.Project;
|
||||||
|
import org.apache.dolphinscheduler.dao.entity.Resource;
|
||||||
|
import org.apache.dolphinscheduler.dao.entity.UdfFunc;
|
||||||
|
import org.apache.dolphinscheduler.dao.entity.User;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.AccessTokenMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.AlertPluginInstanceMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.CommandMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.DataSourceMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.DqRuleMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.EnvironmentMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.K8sNamespaceMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.ProjectMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.QueueMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.ResourceMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.TenantMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.UdfFuncMapper;
|
||||||
|
import org.apache.dolphinscheduler.dao.mapper.WorkerGroupMapper;
|
||||||
import org.apache.dolphinscheduler.service.process.ProcessService;
|
import org.apache.dolphinscheduler.service.process.ProcessService;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
@ -46,11 +76,6 @@ import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.ApplicationContextAware;
|
import org.springframework.context.ApplicationContextAware;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
import static java.util.stream.Collectors.toSet;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class ResourcePermissionCheckServiceImpl implements ResourcePermissionCheckService<Object>, ApplicationContextAware {
|
public class ResourcePermissionCheckServiceImpl implements ResourcePermissionCheckService<Object>, ApplicationContextAware {
|
||||||
|
|
||||||
|
|
@ -69,9 +94,9 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean resourcePermissionCheck(AuthorizationType authorizationType, Object[] needChecks, Integer userId, Logger logger) {
|
public boolean resourcePermissionCheck(AuthorizationType authorizationType, Object[] needChecks, Integer userId, Logger logger) {
|
||||||
if (Objects.nonNull(needChecks) && needChecks.length > 0){
|
if (Objects.nonNull(needChecks) && needChecks.length > 0) {
|
||||||
Set<Object> originResSet = new HashSet<>(Arrays.asList(needChecks));
|
Set<?> originResSet = new HashSet<>(Arrays.asList(needChecks));
|
||||||
Set<Object> ownResSets = RESOURCE_LIST_MAP.get(authorizationType).listAuthorizedResource(userId, logger);
|
Set<?> ownResSets = RESOURCE_LIST_MAP.get(authorizationType).listAuthorizedResource(userId, logger);
|
||||||
originResSet.removeAll(ownResSets);
|
originResSet.removeAll(ownResSets);
|
||||||
return originResSet.isEmpty();
|
return originResSet.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
@ -94,13 +119,14 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> Set<T> userOwnedResourceIdsAcquisition(AuthorizationType authorizationType, Integer userId, Logger logger) {
|
public Set<Object> userOwnedResourceIdsAcquisition(AuthorizationType authorizationType, Integer userId, Logger logger) {
|
||||||
User user = processService.getUserById(userId);
|
User user = processService.getUserById(userId);
|
||||||
if (user == null){
|
if (user == null) {
|
||||||
logger.error("user id {} doesn't exist", userId);
|
logger.error("user id {} doesn't exist", userId);
|
||||||
return Collections.emptySet();
|
return Collections.emptySet();
|
||||||
}
|
}
|
||||||
return RESOURCE_LIST_MAP.get(authorizationType).listAuthorizedResource(user.getUserType().equals(UserType.ADMIN_USER) ? 0 : userId, logger);
|
return (Set<Object>) RESOURCE_LIST_MAP.get(authorizationType).listAuthorizedResource(
|
||||||
|
user.getUserType().equals(UserType.ADMIN_USER) ? 0 : userId, logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|
@ -138,7 +164,7 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> Set<T> listAuthorizedResource(int userId, Logger logger) {
|
public Set<Integer> listAuthorizedResource(int userId, Logger logger) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -550,11 +576,11 @@ public class ResourcePermissionCheckServiceImpl implements ResourcePermissionChe
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get all resources under the user (no admin)
|
* get all resources under the user (no admin)
|
||||||
|
*
|
||||||
* @param userId
|
* @param userId
|
||||||
* @param <T>
|
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> Set<T> listAuthorizedResource(int userId, Logger logger);
|
Set<T> listAuthorizedResource(int userId, Logger logger);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* permission check
|
* permission check
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.dolphinscheduler</groupId>
|
<groupId>org.apache.dolphinscheduler</groupId>
|
||||||
<artifactId>dolphinscheduler-datasource-api</artifactId>
|
<artifactId>dolphinscheduler-datasource-all</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.dolphinscheduler</groupId>
|
<groupId>org.apache.dolphinscheduler</groupId>
|
||||||
<artifactId>dolphinscheduler-datasource-api</artifactId>
|
<artifactId>dolphinscheduler-datasource-all</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue