You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by en...@apache.org on 2022/01/05 13:36:10 UTC
[incubator-linkis] branch dev-1.1.0-DataSource updated: Dev 1.1.0 data source (#1271)
This is an automated email from the ASF dual-hosted git repository.
enjoyyin pushed a commit to branch dev-1.1.0-DataSource
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.1.0-DataSource by this push:
new 0dc6df7 Dev 1.1.0 data source (#1271)
0dc6df7 is described below
commit 0dc6df7e477a9f60d8869e4f134715e7d8313f3c
Author: David hua <da...@hotmail.com>
AuthorDate: Wed Jan 5 21:36:02 2022 +0800
Dev 1.1.0 data source (#1271)
* Repair the problem in rest controllers; Add JsonErrorException; Enhance the strategy in DataSourceParameterValidator
* Enhance the loading method in MetaClassLoaderManager; Add MetaMethodInvokeException
* Change the assembly files in linkis-metadata-manager/service
* Adjust the directory name and the startup/stop script content
* Complete the linkis-datasource-client module
* Add the require annotation @RequestBody
---
...sourcemanager => linkis-ps-data-source-manager} | 2 +-
.../sbin/ext/linkis-ps-metadatamanager | 61 ++-
.../sbin/ext/linkis-ps-metadatamanager-es | 33 --
.../sbin/ext/linkis-ps-metadatamanager-hive | 33 --
.../sbin/ext/linkis-ps-metadatamanager-kafka | 33 --
.../sbin/ext/linkis-ps-metadatamanager-mysql | 33 --
.../src/main/assembly/assembly.xml | 59 +--
.../core/restful/DataSourceCoreRestfulApi.java | 368 ------------------
.../validate/DataSourceParameterValidator.java | 82 ----
.../pom.xml | 6 +-
.../datasource/client/AbstractRemoteClient.scala | 0
.../datasource/client/DataSourceRemoteClient.scala | 27 +-
.../datasource/client/MetaDataRemoteClient.scala | 10 +-
.../linkis/datasource/client/RemoteClient.scala | 0
.../client/config/DatasourceClientConfig.scala | 5 +-
.../DataSourceClientBuilderException.scala | 7 +-
.../client/impl/LinkisDataSourceRemoteClient.scala | 8 +-
.../client/impl/LinkisMetaDataRemoteClient.scala | 0
.../client/request/CreateDataSourceAction.scala | 6 +-
.../client/request/DataSourceAction.scala | 0
.../request/DataSourceTestConnectAction.scala | 18 +-
.../client/request/DeleteDataSourceAction.scala | 12 +-
.../client/request/ExpireDataSourceAction.scala | 14 +-
.../request/GetAllDataSourceTypesAction.scala | 2 +-
.../GetConnectParamsByDataSourceIdAction.scala | 6 +-
.../GetConnectParamsByDataSourceNameAction.scala} | 56 +--
.../request/GetDataSourceVersionsAction.scala | 8 +-
.../request/GetInfoByDataSourceIdAction.scala | 6 +-
.../request/GetKeyTypeDatasourceAction.scala | 6 +-
.../client/request/MetadataGetColumnsAction.scala | 6 +-
.../request/MetadataGetDatabasesAction.scala | 6 +-
.../request/MetadataGetPartitionsAction.scala | 6 +-
.../request/MetadataGetTablePropsAction.scala | 6 +-
.../client/request/MetadataGetTablesAction.scala | 6 +-
.../request/PublishDataSourceVersionAction.scala | 18 +-
.../client/request/QueryDataSourceAction.scala | 28 +-
.../client/request/QueryDataSourceEnvAction.scala | 20 +-
.../client/request/UpdateDataSourceAction.scala | 18 +-
.../request/UpdateDataSourceParameterAction.scala | 18 +-
.../client/response/CreateDataSourceResult.scala | 3 +-
.../response/DataSourceTestConnectResult.scala | 3 +-
.../client/response/DeleteDataSourceResult.scala | 3 +-
.../client/response/ExpireDataSourceResult.scala | 3 +-
.../response/GetAllDataSourceTypesResult.scala | 8 +-
.../GetConnectParamsByDataSourceIdResult.scala | 2 +-
.../GetConnectParamsByDataSourceNameResult.scala} | 5 +-
.../response/GetDataSourceVersionsResult.scala | 11 +-
.../response/GetInfoByDataSourceIdResult.scala | 4 +-
.../response/GetKeyTypeDatasourceResult.scala | 10 +-
.../client/response/MetadataGetColumnsResult.scala | 6 +-
.../response/MetadataGetDatabasesResult.scala | 2 +-
.../response/MetadataGetPartitionsResult.scala | 2 +-
.../response/MetadataGetTablePropsResult.scala | 2 +-
.../client/response/MetadataGetTablesResult.scala | 2 +-
.../response/PublishDataSourceVersionResult.scala | 3 +-
.../client/response/QueryDataSourceEnvResult.scala | 6 +-
.../client/response/QueryDataSourceResult.scala | 7 +-
.../response/UpdateDataSourceParameterResult.scala | 3 +-
.../client/response/UpdateDataSourceResult.scala | 3 +-
.../datasource/client/TestDataSourceClient.scala | 6 +-
.../common/pom.xml | 2 +-
.../datasourcemanager/common/ServiceErrorCode.java | 0
.../datasourcemanager/common/auth/AuthContext.java | 81 ++++
.../common/domain/DataSource.java | 9 +-
.../common/domain/DataSourceEnv.java | 7 +-
.../domain/DataSourceParamKeyDefinition.java | 30 +-
.../common/domain/DataSourceParameter.java | 0
.../common/domain/DataSourceType.java | 0
.../common/domain/DatasourceVersion.java | 7 +-
.../common/exception/JsonErrorException.java} | 23 +-
.../datasourcemanager/common/util/CryptoUtils.java | 0
.../common/util/PatternInjectUtils.java | 9 +-
.../datasourcemanager/common/util/json/Json.java | 24 +-
.../common/protocol/DsmQueryProtocol.scala | 2 +-
.../server/pom.xml | 31 +-
.../server/src/main/assembly/distribution.xml | 2 +-
.../core/LinkisDataSourceManagerApplication.java | 0
.../datasourcemanager/core/dao/DataSourceDao.java | 21 +-
.../core/dao/DataSourceEnvDao.java | 0
.../core/dao/DataSourceParamKeyDao.java | 4 +-
.../core/dao/DataSourceTypeDao.java | 0
.../core/dao/DataSourceTypeEnvDao.java | 0
.../core/dao/DataSourceVersionDao.java | 2 +-
.../core/dao/mapper/DataSouceMapper.xml | 26 +-
.../core/dao/mapper/DataSourceEnvMapper.xml | 0
.../core/dao/mapper/DataSourceParamKeyMapper.xml | 0
.../core/dao/mapper/DataSourceTypeEnvMapper.xml | 0
.../core/dao/mapper/DataSourceTypeMapper.xml | 0
.../core/dao/mapper/DataSourceVersionMapper.xml | 2 +-
.../CustomMultiPartFormDataTransformer.java | 0
.../core/formdata/FormDataTransformerFactory.java | 0
.../core/formdata/FormStreamContent.java | 0
.../formdata/MultiPartFormDataTransformer.java | 0
.../core/restful/DataSourceAdminRestfulApi.java | 120 +++---
.../core/restful/DataSourceCoreRestfulApi.java | 432 +++++++++++++++++++++
.../core/restful/DataSourceOperateRestfulApi.java | 28 +-
.../core/restful/RestfulApiHelper.java | 4 +-
.../exception/BeanValidationExceptionMapper.java | 0
.../core/service/BmlAppService.java | 0
.../core/service/DataSourceInfoService.java | 20 +-
.../core/service/DataSourceOpService.java | 0
.../core/service/DataSourceRelateService.java | 0
.../core/service/MetadataOperateService.java | 3 +-
.../core/service/impl/BmlAppServiceImpl.java | 1 +
.../service/impl/DataSourceInfoServiceImpl.java | 91 ++++-
.../service/impl/DataSourceRelateServiceImpl.java | 0
.../service/impl/MetadataOperateServiceImpl.java | 10 +-
.../validate/DataSourceParameterValidator.java | 106 +++++
.../core/validate/ParameterValidateException.java | 0
.../core/validate/ParameterValidateStrategy.java | 2 +-
.../core/validate/ParameterValidator.java | 0
.../strategy/RegExpParameterValidateStrategy.java | 5 +-
.../strategy/TypeParameterValidateStrategy.java | 2 +-
.../datasourcemanager/core/vo/DataSourceEnvVo.java | 0
.../datasourcemanager/core/vo/DataSourceVo.java | 10 +
.../datasourcemanager/core/vo/PageViewVo.java | 0
.../core/receivers/DsmReceiver.scala | 30 +-
.../common/pom.xml | 9 +-
.../metadatamanager/common/MdmConfiguration.java | 2 +-
.../common/cache/CacheConfiguration.java | 8 +-
.../metadatamanager/common/cache/CacheManager.java | 0
.../common/cache/ConnCacheManager.java | 30 +-
.../common/domain/MetaColumnInfo.java | 0
.../common/domain/MetaPartitionInfo.java | 0
.../exception/MetaMethodInvokeException.java} | 36 +-
.../common/exception/MetaRuntimeException.java | 3 +-
.../common/service/AbstractMetaService.java | 86 +++-
.../common/service/BaseMetadataService.java | 0
.../common/service/MetadataConnection.java | 0
.../common/service/MetadataDbService.java | 0
.../common/service/MetadataService.java | 0
.../common/protocol/MetadataOperateProtocol.scala | 6 +-
.../common/protocol/MetadataProtocol.scala | 0
.../common/protocol/MetadataQueryProtocol.scala | 32 +-
.../server/pom.xml | 18 +-
.../server}/src/main/assembly/distribution.xml | 60 ++-
.../server/LinkisMetadataManagerApplication.java | 0
.../server/loader/MetaClassLoaderManager.java | 201 ++++++++++
.../server/restful/MetadataCoreRestful.java | 159 ++++++++
.../server/service/MetadataAppService.java | 20 +-
.../service/impl/MetadataAppServiceImpl.java | 189 +++++++++
.../server/utils/MetadataUtils.java | 157 ++++++++
.../service/elasticsearch/pom.xml | 6 +-
.../src/main/assembly/distribution.xml | 4 +-
.../metadatamanager/service/ElasticConnection.java | 8 +-
.../service/ElasticParamsMapper.java | 0
.../metadatamanager/service/EsMetaService.java} | 4 +-
.../service/hive/pom.xml | 103 ++++-
.../hive/src/main/assembly/distribution.xml | 238 ++++++++++++
.../metadatamanager/service/HiveConnection.java | 7 +-
.../metadatamanager/service/HiveMetaService.java | 28 +-
.../metadatamanager/service/HiveParamsMapper.java | 2 +
.../service/kafka/pom.xml | 12 +-
.../kafka/src/main/assembly/distribution.xml | 4 +-
.../metadatamanager/service/KafkaConnection.java | 0
.../metadatamanager/service/KafkaMetaService.java | 4 +-
.../metadatamanager/service/KafkaParamsMapper.java | 0
.../service/mysql/pom.xml | 6 +-
.../mysql}/src/main/assembly/distribution.xml | 4 +-
.../metadatamanager/service/MysqlMetaService.java} | 4 +-
.../metadatamanager/service/SqlConnection.java | 8 +
.../metadatamanager/service/SqlParamsMapper.java | 0
.../apache/linkis/metadatamanager/common/Json.java | 114 ------
.../server/loader/MetaClassLoaderManager.java | 123 ------
.../server/restful/MetadataCoreRestful.java | 134 -------
.../service/impl/MetadataAppServiceImpl.java | 140 -------
.../mysql/src/main/assembly/distribution.xml | 56 ---
.../linkis-datasource/pom.xml | 42 ++
linkis-public-enhancements/pom.xml | 10 +-
169 files changed, 2654 insertions(+), 1696 deletions(-)
diff --git a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-datasourcemanager b/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-data-source-manager
similarity index 93%
rename from assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-datasourcemanager
rename to assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-data-source-manager
index a8ad83e..e31bde6 100644
--- a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-datasourcemanager
+++ b/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-data-source-manager
@@ -17,8 +17,8 @@
#
# Modified for Linkis 1.0.0
+export SERVER_SUFFIX="linkis-public-enhancements/linkis-ps-data-source-manager"
-export SERVER_SUFFIX="linkis-public-enhancements/linkis-ps-datasourcemanager"
#export DEBUG_PORT=
diff --git a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager b/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager
index c767432..85ee7cc 100644
--- a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager
+++ b/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager
@@ -18,16 +18,65 @@
# Modified for Linkis 1.0.0
-export SERVER_SUFFIX="linkis-public-enhancements/linkis-ps-metadatamanager"
+source $LINKIS_CONF_DIR/linkis-env.sh
+
+SERVER_SUFFIX="linkis-public-enhancements/linkis-ps-metadatamanager"
-#export DEBUG_PORT=
export SERVER_CLASS=org.apache.linkis.metadatamanager.server.LinkisMetadataManagerApplication
-export COMMON_START_BIN=$LINKIS_HOME/sbin/ext/linkis-common-start
-if [[ ! -f "${COMMON_START_BIN}" ]]; then
- echo "The $COMMON_START_BIN does not exist!"
+if [ "$LINKIS_LOG_DIR" = "" ]; then
+ export LINKIS_LOG_DIR="$LINKIS_HOME/logs"
+fi
+if [ ! -w "$LINKIS_LOG_DIR" ] ; then
+ sudo mkdir -p $LINKIS_LOG_DIR; sudo chown -R hadoop:hadoop $LINKIS_LOG_DIR
+fi
+
+if test -z "$SERVER_HEAP_SIZE"
+then
+ export SERVER_HEAP_SIZE="512M"
+fi
+
+if [ "$DEBUG_PORT" ];
+then
+ export DEBUG_CMD="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$DEBUG_PORT"
+fi
+
+if test -z "$SERVER_JAVA_OPTS"
+then
+ export SERVER_JAVA_OPTS=" -DserviceName=$SERVER_NAME -Xmx$SERVER_HEAP_SIZE -XX:+UseG1GC -Xloggc:$LINKIS_LOG_DIR/${SERVER_NAME}-gc.log $DEBUG_CMD "
+fi
+
+## conf dir
+export SERVER_CONF_PATH=$LINKIS_CONF_DIR
+
+## commons lib
+export LINKIS_COMMONS_LIB=$LINKIS_HOME/$LINKIS_PUBLIC_MODULE
+if [ ! -r "$LINKIS_COMMONS_LIB" ] ; then
+ echo "linkis commons lib not exists $LINKIS_COMMONS_LIB"
+ exit 1
+fi
+
+## server lib
+export SERVER_LIB=$LINKIS_HOME/lib/$SERVER_SUFFIX
+if [ ! -r "$SERVER_LIB" ] ; then
+ echo "server lib not exists $SERVER_LIB"
+ exit 1
+fi
+# set the wds.linkis.server.mdm.service.lib.dir to ${SERVER_LIB}/service
+SERVER_JAVA_OPTS=" -Dwds.linkis.server.mdm.service.lib.dir=${SERVER_LIB}/service"${SERVER_JAVA_OPTS}
+
+## set class path
+export SERVER_CLASS_PATH=$SERVER_CONF_PATH:$LINKIS_COMMONS_LIB/*:$SERVER_LIB/*
+
+nohup java $SERVER_JAVA_OPTS -cp $SERVER_CLASS_PATH $SERVER_CLASS $SPRING_ARGS 2>&1 > $LINKIS_LOG_DIR/${SERVER_NAME}.out &
+
+pid=$!
+sleep 2
+if [[ -z "${pid}" ]]; then
+ echo "server $SERVER_NAME start failed!"
exit 1
else
- sh $COMMON_START_BIN
+ echo "server $SERVER_NAME start succeeded!"
+ echo $pid > $SERVER_PID
fi
\ No newline at end of file
diff --git a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-es b/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-es
deleted file mode 100644
index a57d3df..0000000
--- a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-es
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-#
-# 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.
-#
-# description: metadatamanager-es start cmd
-#
-# Modified for Linkis 1.0.0
-
-
-export SERVER_SUFFIX="linkis-public-enhancements/linkis-ps-metadatamanager-es"
-
-#export DEBUG_PORT=
-
-export SERVER_CLASS=org.apache.linkis.metadatamanager.LinkisMetadataManagerEsApplication
-
-export COMMON_START_BIN=$LINKIS_HOME/sbin/ext/linkis-common-start
-if [[ ! -f "${COMMON_START_BIN}" ]]; then
- echo "The $COMMON_START_BIN does not exist!"
- exit 1
-else
- sh $COMMON_START_BIN
-fi
diff --git a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-hive b/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-hive
deleted file mode 100644
index d263465..0000000
--- a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-hive
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-#
-# 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.
-#
-# description: metadatamanager-hive start cmd
-#
-# Modified for Linkis 1.0.0
-
-
-export SERVER_SUFFIX="linkis-public-enhancements/linkis-ps-metadatamanager-hive"
-
-#export DEBUG_PORT=
-
-export SERVER_CLASS=org.apache.linkis.metadatamanager.LinkisMetadataManagerHiveApplication
-
-export COMMON_START_BIN=$LINKIS_HOME/sbin/ext/linkis-common-start
-if [[ ! -f "${COMMON_START_BIN}" ]]; then
- echo "The $COMMON_START_BIN does not exist!"
- exit 1
-else
- sh $COMMON_START_BIN
-fi
\ No newline at end of file
diff --git a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-kafka b/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-kafka
deleted file mode 100644
index 88af4d8..0000000
--- a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-kafka
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-#
-# 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.
-#
-# description: metadatamanager-kafka start cmd
-#
-# Modified for Linkis 1.0.0
-
-
-export SERVER_SUFFIX="linkis-public-enhancements/linkis-ps-metadatamanager-kafka"
-
-#export DEBUG_PORT=
-
-export SERVER_CLASS=org.apache.linkis.metadatamanager.LinkisMetadataManagerKafkaApplication
-
-export COMMON_START_BIN=$LINKIS_HOME/sbin/ext/linkis-common-start
-if [[ ! -f "${COMMON_START_BIN}" ]]; then
- echo "The $COMMON_START_BIN does not exist!"
- exit 1
-else
- sh $COMMON_START_BIN
-fi
\ No newline at end of file
diff --git a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-mysql b/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-mysql
deleted file mode 100644
index 6af428c..0000000
--- a/assembly-combined-package/assembly-combined/sbin/ext/linkis-ps-metadatamanager-mysql
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-#
-# 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.
-#
-# description: metadatamanager-mysql start cmd
-#
-# Modified for Linkis 1.0.0
-
-
-export SERVER_SUFFIX="linkis-public-enhancements/linkis-ps-metadatamanager-mysql"
-
-#export DEBUG_PORT=
-
-export SERVER_CLASS=org.apache.linkis.metadatamanager.LinkisMetadataManagerMysqlApplication
-
-export COMMON_START_BIN=$LINKIS_HOME/sbin/ext/linkis-common-start
-if [[ ! -f "${COMMON_START_BIN}" ]]; then
- echo "The $COMMON_START_BIN does not exist!"
- exit 1
-else
- sh $COMMON_START_BIN
-fi
\ No newline at end of file
diff --git a/assembly-combined-package/assembly-combined/src/main/assembly/assembly.xml b/assembly-combined-package/assembly-combined/src/main/assembly/assembly.xml
index 0009d71..1846300 100644
--- a/assembly-combined-package/assembly-combined/src/main/assembly/assembly.xml
+++ b/assembly-combined-package/assembly-combined/src/main/assembly/assembly.xml
@@ -349,75 +349,28 @@
</fileSet>
+ <!-- data source manager-->
<fileSet>
<directory>
- ${project.parent.basedir}/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/target/out/lib
+ ../../linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/target/out/lib/
</directory>
<outputDirectory>
- lib/linkis-public-enhancements/linkis-ps-datasourcemanager
+ lib/linkis-public-enhancements/linkis-ps-data-source-manager
</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
-
+ <!-- metadata manager -->
<fileSet>
<directory>
- ${project.parent.basedir}/linkis-public-enhancements/linkis-datasource/metadatamanager/server/target/out/lib
+ ../../linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/target/out/lib/
</directory>
<outputDirectory>
lib/linkis-public-enhancements/linkis-ps-metadatamanager
</outputDirectory>
<includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
-
- <fileSet>
- <directory>
- ${project.parent.basedir}/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/target/out/lib
- </directory>
- <outputDirectory>
- lib/linkis-public-enhancements/linkis-ps-metadatamanager-mysql
- </outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
-
- <fileSet>
- <directory>
- ${project.parent.basedir}/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/target/out/lib
- </directory>
- <outputDirectory>
- lib/linkis-public-enhancements/linkis-ps-metadatamanager-kafka
- </outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
-
- <fileSet>
- <directory>
- ${project.parent.basedir}/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/target/out/lib
- </directory>
- <outputDirectory>
- lib/linkis-public-enhancements/linkis-ps-metadatamanager-hive
- </outputDirectory>
- <includes>
- <include>*.jar</include>
- </includes>
- </fileSet>
-
- <fileSet>
- <directory>
- ${project.parent.basedir}/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/target/out/lib
- </directory>
- <outputDirectory>
- lib/linkis-public-enhancements/linkis-ps-metadatamanager-es
- </outputDirectory>
- <includes>
- <include>*.jar</include>
+ <include>**/*</include>
</includes>
</fileSet>
</fileSets>
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java b/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
deleted file mode 100644
index ea30387..0000000
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
+++ /dev/null
@@ -1,368 +0,0 @@
-/*
- * 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.linkis.datasourcemanager.core.restful;
-
-import com.github.pagehelper.PageInfo;
-import org.apache.linkis.common.exception.ErrorException;
-import org.apache.linkis.datasourcemanager.common.ServiceErrorCode;
-import org.apache.linkis.datasourcemanager.common.domain.*;
-import org.apache.linkis.datasourcemanager.core.formdata.FormDataTransformerFactory;
-import org.apache.linkis.datasourcemanager.core.formdata.MultiPartFormDataTransformer;
-import org.apache.linkis.datasourcemanager.core.service.DataSourceInfoService;
-import org.apache.linkis.datasourcemanager.core.service.DataSourceRelateService;
-import org.apache.linkis.datasourcemanager.core.service.MetadataOperateService;
-import org.apache.linkis.datasourcemanager.core.vo.DataSourceVo;
-import org.apache.linkis.datasourcemanager.core.validate.ParameterValidateException;
-import org.apache.linkis.datasourcemanager.core.validate.ParameterValidator;
-import org.apache.linkis.metadatamanager.common.MdmConfiguration;
-import org.apache.linkis.server.Message;
-import org.apache.linkis.server.security.SecurityFilter;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import javax.annotation.PostConstruct;
-import javax.servlet.http.HttpServletRequest;
-import javax.validation.ConstraintViolation;
-import javax.validation.ConstraintViolationException;
-import javax.validation.Validator;
-import javax.validation.groups.Default;
-import javax.ws.rs.*;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.util.*;
-
-@Path("/data_source")
-@Consumes(MediaType.APPLICATION_JSON)
-@Produces(MediaType.APPLICATION_JSON)
-@Component
-public class DataSourceCoreRestfulApi {
-
- private static final Logger LOG = LoggerFactory.getLogger(DataSourceCoreRestfulApi.class);
- @Autowired
- private DataSourceInfoService dataSourceInfoService;
-
- @Autowired
- private DataSourceRelateService dataSourceRelateService;
-
- @Autowired
- private ParameterValidator parameterValidator;
-
- @Autowired
- private Validator beanValidator;
-
- @Autowired
- private MetadataOperateService metadataOperateService;
-
- private MultiPartFormDataTransformer formDataTransformer;
-
-
- @PostConstruct
- public void initRestful() {
- this.formDataTransformer = FormDataTransformerFactory.buildCustom();
- }
-
-
- @GET
- @Path("/type/all")
- public Response getAllDataSourceTypes() {
- return RestfulApiHelper.doAndResponse(() -> {
- List<DataSourceType> dataSourceTypes = dataSourceRelateService.getAllDataSourceTypes();
- return Message.ok().data("type_list", dataSourceTypes);
- }, "/data_source/type/all", "Fail to get all types of data source[获取数据源类型列表失败]");
- }
-
-
- @GET
- @Path("/key_define/type/{type_id}")
- public Response getKeyDefinitionsByType(@PathParam("type_id") Long dataSourceTypeId) {
- return RestfulApiHelper.doAndResponse(() -> {
- List<DataSourceParamKeyDefinition> keyDefinitions = dataSourceRelateService.getKeyDefinitionsByType(dataSourceTypeId);
- return Message.ok().data("key_define", keyDefinitions);
- }, "/data_source/key_define/type/" + dataSourceTypeId,
- "Fail to get key definitions of data source type[查询数据源参数键值对失败]");
- }
-
-
- @POST
- @Path("/info/json")
- public Response insertJsonInfo(DataSource dataSource, @Context HttpServletRequest req) {
- return RestfulApiHelper.doAndResponse(() -> {
- String userName = SecurityFilter.getLoginUsername(req);
- //Bean validation
- Set<ConstraintViolation<DataSource>> result = beanValidator.validate(dataSource, Default.class);
- if (result.size() > 0) {
- throw new ConstraintViolationException(result);
- }
- dataSource.setCreateUser(userName);
- insertDataSource(dataSource);
- return Message.ok().data("insert_id", dataSource.getId());
- }, "/data_source/info/json", "Fail to insert data source[新增数据源失败]");
- }
-
- @PUT
- @Path("/info/{data_source_id}/json")
- public Response updateDataSourceInJson(DataSource dataSource,
- @PathParam("data_source_id") Long dataSourceId,
- @Context HttpServletRequest req) {
- return RestfulApiHelper.doAndResponse(() -> {
- String userName = SecurityFilter.getLoginUsername(req);
- //Bean validation
- Set<ConstraintViolation<DataSource>> result = beanValidator.validate(dataSource, Default.class);
- if (result.size() > 0) {
- throw new ConstraintViolationException(result);
- }
- dataSource.setId(dataSourceId);
- dataSource.setModifyUser(userName);
- dataSource.setModifyTime(Calendar.getInstance().getTime());
- DataSource storedDataSource = dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
- if (null == storedDataSource) {
- return Message.error("This data source was not found [更新数据源失败]");
- }
- dataSourceInfoService.updateDataSourceInfo(dataSource);
- return Message.ok().data("update_id", dataSourceId);
- }, "/data_source/info/" + dataSourceId + "/json", "Fail to update data source[更新数据源失败]");
- }
-
- /**
- * create or update parameter, save a version of parameter,return version id.
- *
- * @param params
- * @param req
- * @return
- */
- @POST
- @Path("/parameter/{datasource_id}/json")
- public Response insertJsonParameter(
- @PathParam("datasource_id") Long datasourceId,
- @RequestParam("params") Map<String, Object> params,
- @Context HttpServletRequest req) {
- return RestfulApiHelper.doAndResponse(() -> {
- Map<String, Object> connectParams = (Map) params.get("connectParams");
- String comment = params.get("comment").toString();
- String userName = SecurityFilter.getLoginUsername(req);
-
- DataSource dataSource = dataSourceInfoService.getDataSourceInfoBrief(datasourceId);
- if (null == dataSource) {
- throw new ErrorException(ServiceErrorCode.DATASOURCE_NOTFOUND_ERROR.getValue(), "datasource not found ");
- }
- List<DataSourceParamKeyDefinition> keyDefinitionList = dataSourceRelateService
- .getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
- parameterValidator.validate(keyDefinitionList, connectParams);
- //Encrypt password value type
- RestfulApiHelper.encryptPasswordKey(keyDefinitionList, connectParams);
-
- long versionId = dataSourceInfoService.insertDataSourceParameter(keyDefinitionList, datasourceId, connectParams, userName, comment);
-
- return Message.ok().data("version", versionId);
- }, "/data_source/parameter/" + datasourceId + "/json", "Fail to insert data source parameter [保存数据源参数失败]");
- }
-
-
- /**
- * get datasource detail, for current version
- *
- * @param dataSourceId
- * @param request
- * @return
- */
- @GET
- @Path("/info/{data_source_id}")
- public Response getInfoByDataSourceId(@PathParam("data_source_id") Long dataSourceId,
- @Context HttpServletRequest request) {
- return RestfulApiHelper.doAndResponse(() -> {
- DataSource dataSource = dataSourceInfoService.getDataSourceInfo(dataSourceId);
- // Decrypt
- if (null != dataSource) {
- RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
- , dataSource.getConnectParams());
- }
- return Message.ok().data("info", dataSource);
- }, "/data_source/info/" + dataSourceId, "Fail to access data source[获取数据源信息失败]");
- }
-
- /**
- * get datasource detail
- *
- * @param dataSourceId
- * @param version
- * @return
- */
- @GET
- @Path("/info/{data_source_id}/{version}")
- public Response getInfoByDataSourceIdAndVersion(@PathParam("data_source_id") Long dataSourceId,
- @PathParam("version") Long version) {
- return RestfulApiHelper.doAndResponse(() -> {
- DataSource dataSource = dataSourceInfoService.getDataSourceInfo(dataSourceId, version);
- // Decrypt
- if (null != dataSource) {
- RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
- , dataSource.getConnectParams());
- }
- return Message.ok().data("info", dataSource);
- }, "/data_source/info/" + dataSourceId + "/" + version, "Fail to access data source[获取数据源信息失败]");
- }
-
- /**
- * get verion list for datasource
- *
- * @param dataSourceId
- * @param request
- * @return
- */
- @GET
- @Path("/{data_source_id}/versions")
- public Response getVersionList(@PathParam("data_source_id") Long dataSourceId,
- @Context HttpServletRequest request) {
- return RestfulApiHelper.doAndResponse(() -> {
- DataSource dataSource = dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
- List<DatasourceVersion> versions = dataSourceInfoService.getVersionList(dataSourceId);
- // Decrypt
- if (null != versions) {
- versions.forEach(version -> {
- RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
- , version.getConnectParams());
- });
- }
- return Message.ok().data("versions", versions);
- }, "/data_source/" + dataSourceId + "/versions", "Fail to access data source[获取数据源信息失败]");
- }
-
-
- @POST
- @Path("/publish/{datasource_id}/{version_id}")
- public Response publishByDataSourceId(@PathParam("datasource_id") Long dataSourceId,
- @PathParam("version_id") Long versionId,
- @Context HttpServletRequest request) {
- return RestfulApiHelper.doAndResponse(() -> {
- int updateResult = dataSourceInfoService.publishByDataSourceId(dataSourceId, versionId);
- if (0 == updateResult) {
- return Message.error("publish error");
- }
- return Message.ok();
- }, "/data_source/publish/" + dataSourceId + "/" + versionId, "Fail to publish datasource[数据源版本发布失败]");
- }
-
-
- /**
- * Dangerous operation!
- *
- * @param dataSourceId
- * @return
- */
- @DELETE
- @Path("/info/{data_source_id}")
- public Response removeDataSource(@PathParam("data_source_id") Long dataSourceId) {
- return RestfulApiHelper.doAndResponse(() -> {
- Long removeId = dataSourceInfoService.removeDataSourceInfo(dataSourceId, "");
- if (removeId < 0) {
- return Message.error("Fail to remove data source[删除数据源信息失败], [id:" + dataSourceId + "]");
- }
- return Message.ok().data("remove_id", removeId);
- }, "/data_source/info/" + dataSourceId, "Fail to remove data source[删除数据源信息失败]");
- }
-
- @PUT
- @Path("/info/{data_source_id}/expire")
- public Response expireDataSource(@PathParam("data_source_id") Long dataSourceId) {
- return RestfulApiHelper.doAndResponse(() -> {
- Long expireId = dataSourceInfoService.expireDataSource(dataSourceId);
- if (expireId < 0) {
- return Message.error("Fail to expire data source[数据源过期失败], [id:" + dataSourceId + "]");
- }
- return Message.ok().data("expire_id", expireId);
- }, "/data_source/info/" + dataSourceId + "/expire", "Fail to expire data source[数据源过期失败]");
- }
-
- /**
- * get datasource connect params for current version
- * @param dataSourceId
- * @param req
- * @return
- */
- @GET
- @Path("/{data_source_id}/connect_params")
- public Response getConnectParams(@PathParam("data_source_id") Long dataSourceId,
- @Context HttpServletRequest req) {
- return RestfulApiHelper.doAndResponse(() -> {
- String operator = SecurityFilter.getLoginUsername(req);
- DataSource dataSource = dataSourceInfoService.getDataSourceInfoForConnect(dataSourceId);
- Map<String, Object> connectParams = dataSource.getConnectParams();
- RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
- , connectParams);
- return Message.ok().data("connectParams", connectParams);
-
- }, "/data_source/" + dataSourceId + "/connect_params", "Fail to connect data source[连接数据源失败]");
- }
-
- @PUT
- @Path("/{data_source_id}/{version}/op/connect")
- public Response connectDataSource(@PathParam("data_source_id") Long dataSourceId,
- @PathParam("version") Long version,
- @Context HttpServletRequest req) {
- return RestfulApiHelper.doAndResponse(() -> {
- String operator = SecurityFilter.getLoginUsername(req);
- DataSource dataSource = dataSourceInfoService.getDataSourceInfoForConnect(dataSourceId, version);
-
-
- String dataSourceTypeName = dataSource.getDataSourceType().getName();
- String mdRemoteServiceName = MdmConfiguration.METADATA_SERVICE_APPLICATION.getValue()
- + (StringUtils.isNotBlank(dataSourceTypeName) ? ("-" + dataSourceTypeName.toLowerCase()) : "");
-
- metadataOperateService.doRemoteConnect(mdRemoteServiceName, operator, dataSource.getConnectParams());
- ;
- return Message.ok().data("ok", true);
- }, "/data_source/" + dataSourceId + "/" + version + "/op/connect", "Fail to connect data source[连接数据源失败]");
- }
-
- @GET
- @Path("/info")
- public Response queryDataSource(@QueryParam("system") String createSystem,
- @QueryParam("name") String dataSourceName,
- @QueryParam("typeId") Long dataSourceTypeId,
- @QueryParam("identifies") String identifies,
- @QueryParam("currentPage") Integer currentPage,
- @QueryParam("pageSize") Integer pageSize) {
- return RestfulApiHelper.doAndResponse(() -> {
- DataSourceVo dataSourceVo = new DataSourceVo(dataSourceName, dataSourceTypeId,
- identifies, createSystem);
- dataSourceVo.setCurrentPage(null != currentPage ? currentPage : 1);
- dataSourceVo.setPageSize(null != pageSize ? pageSize : 10);
- PageInfo<DataSource> pageInfo = dataSourceInfoService.queryDataSourceInfoPage(dataSourceVo);
- List<DataSource> queryList = pageInfo.getList();
- return Message.ok().data("query_list", queryList).data("totalPage", pageInfo.getTotal());
- }, "/data_source/info", "Fail to query page of data source[查询数据源失败]");
- }
-
- /**
- * Inner method to insert data source
- *
- * @param dataSource data source entity
- * @throws ParameterValidateException
- */
- private void insertDataSource(DataSource dataSource) throws ErrorException {
- List<DataSourceParamKeyDefinition> keyDefinitionList = dataSourceRelateService
- .getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
- dataSource.setKeyDefinitions(keyDefinitionList);
- dataSourceInfoService.saveDataSourceInfo(dataSource);
- }
-}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/DataSourceParameterValidator.java b/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/DataSourceParameterValidator.java
deleted file mode 100644
index ffb725f..0000000
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/DataSourceParameterValidator.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.linkis.datasourcemanager.core.validate;
-
-import org.apache.linkis.datasourcemanager.common.domain.DataSourceParamKeyDefinition;
-import org.apache.linkis.datasourcemanager.core.validate.strategy.RegExpParameterValidateStrategy;
-import org.apache.linkis.datasourcemanager.core.validate.strategy.TypeParameterValidateStrategy;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-@Component
-public class DataSourceParameterValidator implements ParameterValidator {
- @PostConstruct
- public void initToRegister(){
- registerStrategy(new TypeParameterValidateStrategy());
- registerStrategy(new RegExpParameterValidateStrategy());
- }
- /**
- * strategies list
- */
- private List<ParameterValidateStrategy> strategies = new ArrayList<>();
-
- @Override
- public void registerStrategy(ParameterValidateStrategy strategy) {
- strategies.add(strategy);
- }
-
- @Override
- public void validate(List<DataSourceParamKeyDefinition> paramKeyDefinitions,
- Map<String, Object> parameters) throws ParameterValidateException{
- for(DataSourceParamKeyDefinition paramKeyDefinition : paramKeyDefinitions){
- String keyName = paramKeyDefinition.getKey();
- Object keyValue = parameters.get(keyName);
- DataSourceParamKeyDefinition.ValueType valueType = paramKeyDefinition.getValueType();
- if(null == keyValue){
- String defaultValue = paramKeyDefinition.getDefaultValue();
- if(StringUtils.isNotBlank(defaultValue) &&
- valueType == DataSourceParamKeyDefinition.ValueType.SELECT){
- defaultValue = defaultValue.split(",")[0].trim();
- }
- keyValue = defaultValue;
- }
- if(null == keyValue || StringUtils.isBlank(String.valueOf(keyValue))){
- if(paramKeyDefinition.isRequire()) {
- throw new ParameterValidateException("Param Validate Failed[参数校验出错], [the value of key: '"
- + keyName + " cannot be blank']");
- }
- continue;
- }
- for(ParameterValidateStrategy validateStrategy : strategies){
- if(validateStrategy.accept(valueType)) {
- validateStrategy.validate(paramKeyDefinition, keyValue);
- }
- }
- }
- }
-
- @Override
- public List<ParameterValidateStrategy> getStrategies() {
- return strategies;
- }
-}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/pom.xml
similarity index 93%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/pom.xml
index be680ef..8b08396 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/pom.xml
@@ -22,7 +22,7 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <artifactId>linkis-public-enhancements</artifactId>
+ <artifactId>linkis</artifactId>
<groupId>org.apache.linkis</groupId>
<version>1.0.3</version>
<relativePath>../../pom.xml</relativePath>
@@ -39,13 +39,13 @@
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-datasourcemanager-common</artifactId>
+ <artifactId>linkis-datasource-manager-common</artifactId>
<version>${linkis.version}</version>
</dependency>
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-metadatamanager-common</artifactId>
+ <artifactId>linkis-metadata-manager-common</artifactId>
<version>${linkis.version}</version>
</dependency>
</dependencies>
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/AbstractRemoteClient.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/AbstractRemoteClient.scala
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/AbstractRemoteClient.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/AbstractRemoteClient.scala
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/DataSourceRemoteClient.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/DataSourceRemoteClient.scala
similarity index 64%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/DataSourceRemoteClient.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/DataSourceRemoteClient.scala
index 84e4257..65d5fda 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/DataSourceRemoteClient.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/DataSourceRemoteClient.scala
@@ -21,19 +21,18 @@ import org.apache.linkis.datasource.client.request.{CreateDataSourceAction, Data
import org.apache.linkis.datasource.client.response.{CreateDataSourceResult, DataSourceTestConnectResult, DeleteDataSourceResult, ExpireDataSourceResult, GetAllDataSourceTypesResult, GetConnectParamsByDataSourceIdResult, GetDataSourceVersionsResult, GetInfoByDataSourceIdResult, GetKeyTypeDatasourceResult, PublishDataSourceVersionResult, QueryDataSourceEnvResult, QueryDataSourceResult, UpdateDataSourceParameterResult, UpdateDataSourceResult}
trait DataSourceRemoteClient extends RemoteClient {
- def getAllDataSourceTypes(action:GetAllDataSourceTypesAction): GetAllDataSourceTypesResult
- def queryDataSourceEnv(action:QueryDataSourceEnvAction): QueryDataSourceEnvResult
- def getInfoByDataSourceId(action:GetInfoByDataSourceIdAction): GetInfoByDataSourceIdResult
- def queryDataSource(action:QueryDataSourceAction): QueryDataSourceResult
+ def getAllDataSourceTypes(action: GetAllDataSourceTypesAction): GetAllDataSourceTypesResult
+ def queryDataSourceEnv(action: QueryDataSourceEnvAction): QueryDataSourceEnvResult
+ def getInfoByDataSourceId(action: GetInfoByDataSourceIdAction): GetInfoByDataSourceIdResult
+ def queryDataSource(action: QueryDataSourceAction): QueryDataSourceResult
def getConnectParams(action: GetConnectParamsByDataSourceIdAction): GetConnectParamsByDataSourceIdResult
- def createDataSource(action:CreateDataSourceAction):CreateDataSourceResult
- def getDataSourceTestConnect(action:DataSourceTestConnectAction):DataSourceTestConnectResult
- def deleteDataSource(action:DeleteDataSourceAction):DeleteDataSourceResult
- def expireDataSource(action:ExpireDataSourceAction):ExpireDataSourceResult
- def getDataSourceVersions(action:GetDataSourceVersionsAction):GetDataSourceVersionsResult
- def publishDataSourceVersion(action:PublishDataSourceVersionAction):PublishDataSourceVersionResult
- def updateDataSource(action: UpdateDataSourceAction):UpdateDataSourceResult
- def updateDataSourceParameter(action: UpdateDataSourceParameterAction):UpdateDataSourceParameterResult
- def getKeyDefinitionsByType(action:GetKeyTypeDatasourceAction):GetKeyTypeDatasourceResult
-
+ def createDataSource(action: CreateDataSourceAction): CreateDataSourceResult
+ def getDataSourceTestConnect(action: DataSourceTestConnectAction): DataSourceTestConnectResult
+ def deleteDataSource(action: DeleteDataSourceAction): DeleteDataSourceResult
+ def expireDataSource(action: ExpireDataSourceAction): ExpireDataSourceResult
+ def getDataSourceVersions(action: GetDataSourceVersionsAction): GetDataSourceVersionsResult
+ def publishDataSourceVersion(action: PublishDataSourceVersionAction): PublishDataSourceVersionResult
+ def updateDataSource(action: UpdateDataSourceAction): UpdateDataSourceResult
+ def updateDataSourceParameter(action: UpdateDataSourceParameterAction): UpdateDataSourceParameterResult
+ def getKeyDefinitionsByType(action: GetKeyTypeDatasourceAction): GetKeyTypeDatasourceResult
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/MetaDataRemoteClient.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/MetaDataRemoteClient.scala
similarity index 75%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/MetaDataRemoteClient.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/MetaDataRemoteClient.scala
index 3859efa..6cd6f76 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/MetaDataRemoteClient.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/MetaDataRemoteClient.scala
@@ -21,9 +21,9 @@ import org.apache.linkis.datasource.client.request.{MetadataGetColumnsAction, Me
import org.apache.linkis.datasource.client.response.{MetadataGetColumnsResult, MetadataGetDatabasesResult, MetadataGetPartitionsResult, MetadataGetTablePropsResult, MetadataGetTablesResult}
trait MetaDataRemoteClient extends RemoteClient {
- def getDatabases(action:MetadataGetDatabasesAction): MetadataGetDatabasesResult
- def getTables(action:MetadataGetTablesAction): MetadataGetTablesResult
- def getTableProps(action:MetadataGetTablePropsAction): MetadataGetTablePropsResult
- def getPartitions(action:MetadataGetPartitionsAction): MetadataGetPartitionsResult
- def getColumns(action:MetadataGetColumnsAction): MetadataGetColumnsResult
+ def getDatabases(action: MetadataGetDatabasesAction): MetadataGetDatabasesResult
+ def getTables(action: MetadataGetTablesAction): MetadataGetTablesResult
+ def getTableProps(action: MetadataGetTablePropsAction): MetadataGetTablePropsResult
+ def getPartitions(action: MetadataGetPartitionsAction): MetadataGetPartitionsResult
+ def getColumns(action: MetadataGetColumnsAction): MetadataGetColumnsResult
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/RemoteClient.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/RemoteClient.scala
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/RemoteClient.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/RemoteClient.scala
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/config/DatasourceClientConfig.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/config/DatasourceClientConfig.scala
similarity index 89%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/config/DatasourceClientConfig.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/config/DatasourceClientConfig.scala
index c98771b..c347edb 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/config/DatasourceClientConfig.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/config/DatasourceClientConfig.scala
@@ -20,7 +20,8 @@ package org.apache.linkis.datasource.client.config
import org.apache.linkis.common.conf.CommonVars
object DatasourceClientConfig {
- var METADATA_SERVICE_MODULE: CommonVars[String] = CommonVars.apply("wds.linkis.server.mdm.module.name", "metadata")
+ var METADATA_SERVICE_MODULE: CommonVars[String] = CommonVars.apply("wds.linkis.server.mdm.module.name", "metadatamanager")
+
+ var DATA_SOURCE_SERVICE_MODULE: CommonVars[String] = CommonVars.apply("wds.linkis.server.dsm.module.name", "data-source-manager")
- var DATA_SOURCE_SERVICE_MODULE: CommonVars[String] = CommonVars.apply("wds.linkis.server.dsm.module.name", "datasource")
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/exception/DataSourceClientBuilderException.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/exception/DataSourceClientBuilderException.scala
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/exception/DataSourceClientBuilderException.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/exception/DataSourceClientBuilderException.scala
index 9a80949..89d32f9 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/exception/DataSourceClientBuilderException.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/exception/DataSourceClientBuilderException.scala
@@ -19,4 +19,9 @@ package org.apache.linkis.datasource.client.exception
import org.apache.linkis.common.exception.ErrorException
-class DataSourceClientBuilderException(errorDesc: String) extends ErrorException(31000, errorDesc)
+class DataSourceClientBuilderException(errorDesc: String) extends ErrorException(31000, errorDesc) {
+ def this(errorDesc: String, t: Throwable) = {
+ this(errorDesc)
+ super.initCause(t)
+ }
+}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisDataSourceRemoteClient.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisDataSourceRemoteClient.scala
similarity index 73%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisDataSourceRemoteClient.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisDataSourceRemoteClient.scala
index 0928cbb..f9d259f 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisDataSourceRemoteClient.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisDataSourceRemoteClient.scala
@@ -17,8 +17,8 @@
package org.apache.linkis.datasource.client.impl
-import org.apache.linkis.datasource.client.request.{GetAllDataSourceTypesAction, GetConnectParamsByDataSourceIdAction, GetInfoByDataSourceIdAction, QueryDataSourceAction, QueryDataSourceEnvAction}
-import org.apache.linkis.datasource.client.response.{GetAllDataSourceTypesResult, GetConnectParamsByDataSourceIdResult, GetInfoByDataSourceIdResult, QueryDataSourceEnvResult, QueryDataSourceResult}
+import org.apache.linkis.datasource.client.request.{CreateDataSourceAction, DataSourceTestConnectAction, DeleteDataSourceAction, ExpireDataSourceAction, GetAllDataSourceTypesAction, GetConnectParamsByDataSourceIdAction, GetDataSourceVersionsAction, GetInfoByDataSourceIdAction, GetKeyTypeDatasourceAction, PublishDataSourceVersionAction, QueryDataSourceAction, QueryDataSourceEnvAction, UpdateDataSourceAction, UpdateDataSourceParameterAction}
+import org.apache.linkis.datasource.client.response.{CreateDataSourceResult, DataSourceTestConnectResult, DeleteDataSourceResult, ExpireDataSourceResult, GetAllDataSourceTypesResult, GetConnectParamsByDataSourceIdResult, GetDataSourceVersionsResult, GetInfoByDataSourceIdResult, GetKeyTypeDatasourceResult, PublishDataSourceVersionResult, QueryDataSourceEnvResult, QueryDataSourceResult, UpdateDataSourceParameterResult, UpdateDataSourceResult}
import org.apache.linkis.datasource.client.{AbstractRemoteClient, DataSourceRemoteClient}
import org.apache.linkis.httpclient.dws.DWSHttpClient
import org.apache.linkis.httpclient.dws.config.DWSClientConfig
@@ -27,9 +27,9 @@ import org.apache.linkis.httpclient.dws.config.DWSClientConfig
class LinkisDataSourceRemoteClient(clientConfig: DWSClientConfig) extends AbstractRemoteClient with DataSourceRemoteClient {
protected override val dwsHttpClient = new DWSHttpClient(clientConfig, "DataSource-Client")
- override def getAllDataSourceTypes(action:GetAllDataSourceTypesAction): GetAllDataSourceTypesResult = execute(action).asInstanceOf[GetAllDataSourceTypesResult]
+ override def getAllDataSourceTypes(action: GetAllDataSourceTypesAction): GetAllDataSourceTypesResult = execute(action).asInstanceOf[GetAllDataSourceTypesResult]
- override def queryDataSourceEnv(action:QueryDataSourceEnvAction): QueryDataSourceEnvResult = execute(action).asInstanceOf[QueryDataSourceEnvResult]
+ override def queryDataSourceEnv(action: QueryDataSourceEnvAction): QueryDataSourceEnvResult = execute(action).asInstanceOf[QueryDataSourceEnvResult]
override def getInfoByDataSourceId(action: GetInfoByDataSourceIdAction): GetInfoByDataSourceIdResult = execute(action).asInstanceOf[GetInfoByDataSourceIdResult]
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisMetaDataRemoteClient.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisMetaDataRemoteClient.scala
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisMetaDataRemoteClient.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/impl/LinkisMetaDataRemoteClient.scala
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/CreateDataSourceAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/CreateDataSourceAction.scala
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/CreateDataSourceAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/CreateDataSourceAction.scala
index 278359d..4f3e6d3 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/CreateDataSourceAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/CreateDataSourceAction.scala
@@ -23,7 +23,7 @@ import org.apache.linkis.httpclient.dws.DWSHttpClient
import org.apache.linkis.httpclient.request.POSTAction
import java.util
-import scala.collection.JavaConversions._
+import scala.collection.JavaConverters._
class CreateDataSourceAction extends POSTAction with DataSourceAction{
override def getRequestPayload: String = DWSHttpClient.jacksonJson.writeValueAsString(getRequestPayloads)
@@ -49,7 +49,7 @@ object CreateDataSourceAction {
}
def addRequestPayload(key: String, value: Any): Builder = {
- if(value != null) this.payload.put(key, value)
+ if (value != null) this.payload.put(key, value)
this
}
@@ -61,7 +61,7 @@ object CreateDataSourceAction {
def build(): CreateDataSourceAction = {
val action = new CreateDataSourceAction
action.setUser(user)
- this.payload.foreach(k=>{
+ this.payload.asScala.foreach(k => {
action.addRequestPayload(k._1, k._2)
})
action
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceAction.scala
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceAction.scala
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceTestConnectAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceTestConnectAction.scala
similarity index 83%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceTestConnectAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceTestConnectAction.scala
index 5531bfd..49d45cf 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceTestConnectAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DataSourceTestConnectAction.scala
@@ -26,9 +26,9 @@ import org.apache.linkis.httpclient.request.PutAction
class DataSourceTestConnectAction private() extends PutAction with DataSourceAction {
private var user: String = _
- private var dataSourceId:String= _
+ private var dataSourceId: String = _
- private var version:String = _
+ private var version: String = _
override def setUser(user: String): Unit = this.user = user
@@ -43,31 +43,31 @@ object DataSourceTestConnectAction {
class Builder private[DataSourceTestConnectAction]() {
private var user: String = _
- private var dataSourceId:String=_
- private var version:String=_
+ private var dataSourceId: String = _
+ private var version: String = _
- def setUser(user:String):Builder={
+ def setUser(user: String): Builder = {
this.user = user
this
}
- def setDataSourceId(dataSourceId:String): Builder ={
+ def setDataSourceId(dataSourceId: String): Builder = {
this.dataSourceId = dataSourceId
this
}
- def setVersion(version:String): Builder ={
+ def setVersion(version: String): Builder = {
this.version = version
this
}
def build(): DataSourceTestConnectAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(version == null) throw new DataSourceClientBuilderException("version is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
val action = new DataSourceTestConnectAction()
- action.dataSourceId =dataSourceId
+ action.dataSourceId = dataSourceId
action.version = version
action.user = user
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DeleteDataSourceAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DeleteDataSourceAction.scala
similarity index 86%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DeleteDataSourceAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DeleteDataSourceAction.scala
index 5e9c9b7..e373742 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DeleteDataSourceAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/DeleteDataSourceAction.scala
@@ -25,7 +25,7 @@ import org.apache.linkis.httpclient.request.DeleteAction
class DeleteDataSourceAction extends DeleteAction with DataSourceAction {
private var user: String = _
- private var resourceId:String=_
+ private var resourceId: String = _
override def setUser(user: String): Unit = this.user = user
@@ -37,20 +37,20 @@ object DeleteDataSourceAction{
def builder(): Builder = new Builder
class Builder private[DeleteDataSourceAction]() {
private var user: String = _
- private var resourceId:String=_
+ private var resourceId: String = _
- def setUser(user: String): Builder ={
+ def setUser(user: String): Builder = {
this.user = user
this
}
- def setResourceId(resourceId:String): Builder ={
+ def setResourceId(resourceId: String): Builder = {
this.resourceId = resourceId
this
}
- def builder():DeleteDataSourceAction={
- if(user == null) throw new DataSourceClientBuilderException("user is needed!")
+ def builder(): DeleteDataSourceAction = {
+ if (user == null) throw new DataSourceClientBuilderException("user is needed!")
if(resourceId == null) throw new DataSourceClientBuilderException("resourceId is needed!")
val action = new DeleteDataSourceAction
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/ExpireDataSourceAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/ExpireDataSourceAction.scala
similarity index 83%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/ExpireDataSourceAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/ExpireDataSourceAction.scala
index e30dc34..ef20f16 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/ExpireDataSourceAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/ExpireDataSourceAction.scala
@@ -27,35 +27,35 @@ class ExpireDataSourceAction extends PutAction with DataSourceAction {
private var user: String = _
- private var dataSourceId:String = _
+ private var dataSourceId: String = _
override def setUser(user: String): Unit = this.user = user
override def getUser: String = this.user
- override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "info",dataSourceId, "expire")
+ override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "info", dataSourceId, "expire")
}
object ExpireDataSourceAction{
def builder(): Builder = new Builder
class Builder private[ExpireDataSourceAction]() {
private var user: String = _
- private var dataSourceId:String = _
+ private var dataSourceId: String = _
- def setUser(user:String):Builder={
+ def setUser(user: String): Builder = {
this.user = user
this
}
- def setDataSourceId(dataSourceId:String): Builder ={
+ def setDataSourceId(dataSourceId: String): Builder = {
this.dataSourceId = dataSourceId
this
}
def build(): ExpireDataSourceAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
val action = new ExpireDataSourceAction()
- action.dataSourceId =dataSourceId
+ action.dataSourceId = dataSourceId
action.user = user
action
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetAllDataSourceTypesAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetAllDataSourceTypesAction.scala
similarity index 98%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetAllDataSourceTypesAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetAllDataSourceTypesAction.scala
index 0c56d2e..d4582c2 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetAllDataSourceTypesAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetAllDataSourceTypesAction.scala
@@ -24,7 +24,7 @@ import org.apache.linkis.httpclient.request.GetAction
class GetAllDataSourceTypesAction extends GetAction with DataSourceAction {
override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "type", "all")
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceIdAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceIdAction.scala
similarity index 93%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceIdAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceIdAction.scala
index 67b5e1f..0c78ec6 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceIdAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceIdAction.scala
@@ -27,7 +27,7 @@ class GetConnectParamsByDataSourceIdAction extends GetAction with DataSourceActi
override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, dataSourceId.toString, "connect_params")
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -40,7 +40,7 @@ object GetConnectParamsByDataSourceIdAction {
class Builder private[GetConnectParamsByDataSourceIdAction]() {
private var dataSourceId: Long = _
- private var system:String = _
+ private var system: String = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -59,7 +59,7 @@ object GetConnectParamsByDataSourceIdAction {
}
def build(): GetConnectParamsByDataSourceIdAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(system == null) throw new DataSourceClientBuilderException("system is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceNameAction.scala
similarity index 51%
copy from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala
copy to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceNameAction.scala
index 24bb3a0..19d6de0 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetConnectParamsByDataSourceNameAction.scala
@@ -17,29 +17,33 @@
package org.apache.linkis.datasource.client.request
-import org.apache.linkis.datasource.client.config.DatasourceClientConfig.DATA_SOURCE_SERVICE_MODULE
+import java.net.URLEncoder
+import java.nio.charset.StandardCharsets
+
import org.apache.linkis.datasource.client.exception.DataSourceClientBuilderException
+import org.apache.linkis.datasource.client.config.DatasourceClientConfig.DATA_SOURCE_SERVICE_MODULE
import org.apache.linkis.httpclient.request.GetAction
+/**
+ * Get version parameters from data source
+ */
+class GetConnectParamsByDataSourceNameAction extends GetAction with DataSourceAction{
+ private var dataSourceName: String = _
+ private var user: String = _
-class GetInfoByDataSourceIdAction extends GetAction with DataSourceAction {
- private var dataSourceId: Long = _
-
- override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "info", dataSourceId.toString)
-
- private var user:String = _
+ override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "name", dataSourceName, "connect_params")
override def setUser(user: String): Unit = this.user = user
- override def getUser: String = this.user
+ override def getUser: String = user
}
-object GetInfoByDataSourceIdAction {
+object GetConnectParamsByDataSourceNameAction{
def builder(): Builder = new Builder
- class Builder private[GetInfoByDataSourceIdAction]() {
- private var dataSourceId: Long = _
- private var system:String = _
+ class Builder private[GetConnectParamsByDataSourceNameAction]() {
+ private var dataSourceName: String = _
+ private var system: String = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -47,8 +51,8 @@ object GetInfoByDataSourceIdAction {
this
}
- def setDataSourceId(dataSourceId: Long): Builder = {
- this.dataSourceId = dataSourceId
+ def setDataSourceName(dataSourceName: String): Builder = {
+ this.dataSourceName = dataSourceName
this
}
@@ -57,17 +61,23 @@ object GetInfoByDataSourceIdAction {
this
}
- def build(): GetInfoByDataSourceIdAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ def build(): GetConnectParamsByDataSourceNameAction = {
+ if (dataSourceName == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(system == null) throw new DataSourceClientBuilderException("system is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
-
- val getInfoByDataSourceIdAction = new GetInfoByDataSourceIdAction
- getInfoByDataSourceIdAction.dataSourceId = this.dataSourceId
- getInfoByDataSourceIdAction.setParameter("system", system)
- getInfoByDataSourceIdAction.setUser(user)
- getInfoByDataSourceIdAction
+ // Use URIEncoder to encode the datSourceName
+ var requestDataSourceName = this.dataSourceName
+ try {
+ requestDataSourceName = URLEncoder.encode(dataSourceName, StandardCharsets.UTF_8.name())
+ } catch {
+ case e: Exception =>
+ throw new DataSourceClientBuilderException(s"Cannot encode the name of data source:[$dataSourceName] for request", e)
+ }
+ val getConnectParamsByDataSourceNameAction = new GetConnectParamsByDataSourceNameAction
+ getConnectParamsByDataSourceNameAction.dataSourceName = requestDataSourceName
+ getConnectParamsByDataSourceNameAction.setParameter("system", system)
+ getConnectParamsByDataSourceNameAction.setUser(user)
+ getConnectParamsByDataSourceNameAction
}
}
-
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetDataSourceVersionsAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetDataSourceVersionsAction.scala
similarity index 89%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetDataSourceVersionsAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetDataSourceVersionsAction.scala
index f4cf6e4..e07c5fa 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetDataSourceVersionsAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetDataSourceVersionsAction.scala
@@ -23,7 +23,7 @@ import org.apache.linkis.httpclient.request.GetAction
class GetDataSourceVersionsAction extends GetAction with DataSourceAction {
private var user: String = _
- private var resourceId:String=_
+ private var resourceId: String = _
override def setUser(user: String): Unit = this.user = user
@@ -36,20 +36,20 @@ object GetDataSourceVersionsAction {
class Builder private[GetDataSourceVersionsAction]() {
private var user: String = _
- private var resourceId:String = _
+ private var resourceId: String = _
def setUser(user: String): Builder = {
this.user = user
this
}
- def setResourceId(resourceId:String): Builder ={
+ def setResourceId(resourceId: String): Builder = {
this.resourceId = resourceId
this
}
def build(): GetDataSourceVersionsAction = {
- if(resourceId == null) throw new DataSourceClientBuilderException("resourceId is needed!")
+ if (resourceId == null) throw new DataSourceClientBuilderException("resourceId is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
val action = new GetDataSourceVersionsAction
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala
similarity index 93%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala
index 24bb3a0..b5c5e9b 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetInfoByDataSourceIdAction.scala
@@ -27,7 +27,7 @@ class GetInfoByDataSourceIdAction extends GetAction with DataSourceAction {
override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "info", dataSourceId.toString)
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -39,7 +39,7 @@ object GetInfoByDataSourceIdAction {
class Builder private[GetInfoByDataSourceIdAction]() {
private var dataSourceId: Long = _
- private var system:String = _
+ private var system: String = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -58,7 +58,7 @@ object GetInfoByDataSourceIdAction {
}
def build(): GetInfoByDataSourceIdAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(system == null) throw new DataSourceClientBuilderException("system is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetKeyTypeDatasourceAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetKeyTypeDatasourceAction.scala
similarity index 91%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetKeyTypeDatasourceAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetKeyTypeDatasourceAction.scala
index 2a3789b..fcb27e6 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetKeyTypeDatasourceAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/GetKeyTypeDatasourceAction.scala
@@ -25,9 +25,9 @@ import org.apache.linkis.httpclient.request.GetAction
class GetKeyTypeDatasourceAction extends GetAction with DataSourceAction{
private var dataSourceTypeId: Long = _
- override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "key_define","type", dataSourceTypeId.toString)
+ override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "key_define", "type", dataSourceTypeId.toString)
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -51,7 +51,7 @@ object GetKeyTypeDatasourceAction{
}
def build(): GetKeyTypeDatasourceAction = {
- if(user == null) throw new DataSourceClientBuilderException("user is needed!")
+ if (user == null) throw new DataSourceClientBuilderException("user is needed!")
val getKeyTypeDatasourceAction = new GetKeyTypeDatasourceAction
getKeyTypeDatasourceAction.dataSourceTypeId = this.dataSourceTypeId
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetColumnsAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetColumnsAction.scala
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetColumnsAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetColumnsAction.scala
index a665b58..39955ba 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetColumnsAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetColumnsAction.scala
@@ -29,7 +29,7 @@ class MetadataGetColumnsAction extends GetAction with DataSourceAction {
override def suffixURLs: Array[String] = Array(METADATA_SERVICE_MODULE.getValue, "columns", dataSourceId.toString, "db", database, "table", table)
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -44,7 +44,7 @@ object MetadataGetColumnsAction {
private var dataSourceId: Long = _
private var database: String = _
private var table: String = _
- private var system:String = _
+ private var system: String = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -73,7 +73,7 @@ object MetadataGetColumnsAction {
}
def build(): MetadataGetColumnsAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(database == null) throw new DataSourceClientBuilderException("database is needed!")
if(table == null) throw new DataSourceClientBuilderException("table is needed!")
if(system == null) throw new DataSourceClientBuilderException("system is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetDatabasesAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetDatabasesAction.scala
similarity index 93%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetDatabasesAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetDatabasesAction.scala
index ebb539f..bff6435 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetDatabasesAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetDatabasesAction.scala
@@ -27,7 +27,7 @@ class MetadataGetDatabasesAction extends GetAction with DataSourceAction {
override def suffixURLs: Array[String] = Array(METADATA_SERVICE_MODULE.getValue, "dbs", dataSourceId.toString)
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -39,7 +39,7 @@ object MetadataGetDatabasesAction {
class Builder private[MetadataGetDatabasesAction]() {
private var dataSourceId: Long = _
- private var system:String = _
+ private var system: String = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -58,7 +58,7 @@ object MetadataGetDatabasesAction {
}
def build(): MetadataGetDatabasesAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(system == null) throw new DataSourceClientBuilderException("system is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetPartitionsAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetPartitionsAction.scala
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetPartitionsAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetPartitionsAction.scala
index 45c225b..9bbde2e 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetPartitionsAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetPartitionsAction.scala
@@ -29,7 +29,7 @@ class MetadataGetPartitionsAction extends GetAction with DataSourceAction {
override def suffixURLs: Array[String] = Array(METADATA_SERVICE_MODULE.getValue, "partitions", dataSourceId, "db", database, "table", table)
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -44,7 +44,7 @@ object MetadataGetPartitionsAction {
private var dataSourceId: String = _
private var database: String = _
private var table: String = _
- private var system:String = _
+ private var system: String = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -73,7 +73,7 @@ object MetadataGetPartitionsAction {
}
def build(): MetadataGetPartitionsAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(database == null) throw new DataSourceClientBuilderException("database is needed!")
if(table == null) throw new DataSourceClientBuilderException("table is needed!")
if(system == null) throw new DataSourceClientBuilderException("system is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablePropsAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablePropsAction.scala
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablePropsAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablePropsAction.scala
index c3439f1..1f67f22 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablePropsAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablePropsAction.scala
@@ -29,7 +29,7 @@ class MetadataGetTablePropsAction extends GetAction with DataSourceAction {
override def suffixURLs: Array[String] = Array(METADATA_SERVICE_MODULE.getValue, "props", dataSourceId.toString, "db", database, "table", table)
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -43,7 +43,7 @@ object MetadataGetTablePropsAction {
private var dataSourceId: Long = _
private var database: String = _
private var table: String = _
- private var system:String = _
+ private var system: String = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -72,7 +72,7 @@ object MetadataGetTablePropsAction {
}
def build(): MetadataGetTablePropsAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(database == null) throw new DataSourceClientBuilderException("database is needed!")
if(table == null) throw new DataSourceClientBuilderException("table is needed!")
if(system == null) throw new DataSourceClientBuilderException("system is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablesAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablesAction.scala
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablesAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablesAction.scala
index 03eb811..be9494f 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablesAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/MetadataGetTablesAction.scala
@@ -28,7 +28,7 @@ class MetadataGetTablesAction extends GetAction with DataSourceAction {
override def suffixURLs: Array[String] = Array(METADATA_SERVICE_MODULE.getValue, "tables", dataSourceId.toString, "db", database)
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -41,7 +41,7 @@ object MetadataGetTablesAction {
class Builder private[MetadataGetTablesAction]() {
private var dataSourceId: Long = _
private var database: String = _
- private var system:String = _
+ private var system: String = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -64,7 +64,7 @@ object MetadataGetTablesAction {
}
def build(): MetadataGetTablesAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(database == null) throw new DataSourceClientBuilderException("database is needed!")
if(system == null) throw new DataSourceClientBuilderException("system is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/PublishDataSourceVersionAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/PublishDataSourceVersionAction.scala
similarity index 83%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/PublishDataSourceVersionAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/PublishDataSourceVersionAction.scala
index 7e57863..e6a7b8e 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/PublishDataSourceVersionAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/PublishDataSourceVersionAction.scala
@@ -26,8 +26,8 @@ import org.apache.linkis.httpclient.request.POSTAction
class PublishDataSourceVersionAction extends POSTAction with DataSourceAction{
override def getRequestPayload: String = DWSHttpClient.jacksonJson.writeValueAsString(getRequestPayloads)
private var user: String = _
- private var dataSourceId:String=_
- private var versionId:String=_
+ private var dataSourceId: String = _
+ private var versionId: String = _
override def setUser(user: String): Unit = this.user = user
@@ -40,31 +40,31 @@ object PublishDataSourceVersionAction {
class Builder private[PublishDataSourceVersionAction]() {
private var user: String = _
- private var dataSourceId:String=_
- private var versionId:String=_
+ private var dataSourceId: String = _
+ private var versionId: String = _
- def setUser(user:String):Builder={
+ def setUser(user: String): Builder = {
this.user = user
this
}
- def setDataSourceId(dataSourceId:String): Builder ={
+ def setDataSourceId(dataSourceId: String): Builder = {
this.dataSourceId = dataSourceId
this
}
- def setVersion(versionId:String): Builder ={
+ def setVersion(versionId: String): Builder = {
this.versionId = versionId
this
}
def build(): PublishDataSourceVersionAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(versionId == null) throw new DataSourceClientBuilderException("versionId is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
val action = new PublishDataSourceVersionAction()
- action.dataSourceId =dataSourceId
+ action.dataSourceId = dataSourceId
action.versionId = versionId
action.user = user
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceAction.scala
similarity index 82%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceAction.scala
index e4b6a95..af780f5 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceAction.scala
@@ -25,7 +25,7 @@ import org.apache.linkis.httpclient.request.GetAction
class QueryDataSourceAction extends GetAction with DataSourceAction{
override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "info")
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -36,12 +36,12 @@ object QueryDataSourceAction {
def builder(): Builder = new Builder
class Builder private[QueryDataSourceAction]() {
- private var system:String = _
- private var name:String = _
- private var typeId:Long = _
- private var identifies:String = _
- private var currentPage:Integer = _
- private var pageSize:Integer = _
+ private var system: String = _
+ private var name: String = _
+ private var typeId: Long = _
+ private var identifies: String = _
+ private var currentPage: Integer = _
+ private var pageSize: Integer = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -49,38 +49,38 @@ object QueryDataSourceAction {
this
}
- def setSystem(system:String):Builder={
+ def setSystem(system: String): Builder = {
this.system = system
this
}
- def setName(name:String):Builder={
+ def setName(name: String): Builder = {
this.name = name
this
}
- def setTypeId(typeId:Long):Builder={
+ def setTypeId(typeId: Long): Builder = {
this.typeId = typeId
this
}
- def setIdentifies(identifies:String):Builder={
+ def setIdentifies(identifies: String): Builder = {
this.identifies = identifies
this
}
- def setCurrentPage(currentPage:Integer):Builder={
+ def setCurrentPage(currentPage: Integer): Builder = {
this.currentPage = currentPage
this
}
- def setPageSize(pageSize:Integer):Builder={
+ def setPageSize(pageSize: Integer): Builder = {
this.pageSize = pageSize
this
}
def build(): QueryDataSourceAction = {
- if(system == null) throw new DataSourceClientBuilderException("system is needed!")
+ if (system == null) throw new DataSourceClientBuilderException("system is needed!")
if(name == null) throw new DataSourceClientBuilderException("name is needed!")
if(typeId == null) throw new DataSourceClientBuilderException("typeId is needed!")
if(identifies == null) throw new DataSourceClientBuilderException("identifies is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceEnvAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceEnvAction.scala
similarity index 85%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceEnvAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceEnvAction.scala
index 267b4d3..97a3504 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceEnvAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/QueryDataSourceEnvAction.scala
@@ -25,7 +25,7 @@ import org.apache.linkis.httpclient.request.GetAction
class QueryDataSourceEnvAction extends GetAction with DataSourceAction{
override def suffixURLs: Array[String] = Array(DATA_SOURCE_SERVICE_MODULE.getValue, "env")
- private var user:String = _
+ private var user: String = _
override def setUser(user: String): Unit = this.user = user
@@ -37,10 +37,10 @@ object QueryDataSourceEnvAction {
def builder(): Builder = new Builder
class Builder private[QueryDataSourceEnvAction]() {
- private var name:String = _
- private var typeId:Long = _
- private var currentPage:Integer = _
- private var pageSize:Integer = _
+ private var name: String = _
+ private var typeId: Long = _
+ private var currentPage: Integer = _
+ private var pageSize: Integer = _
private var user: String = _
def setUser(user: String): Builder = {
@@ -48,28 +48,28 @@ object QueryDataSourceEnvAction {
this
}
- def setName(name:String):Builder={
+ def setName(name: String): Builder = {
this.name = name
this
}
- def setTypeId(typeId:Long):Builder={
+ def setTypeId(typeId: Long): Builder = {
this.typeId = typeId
this
}
- def setCurrentPage(currentPage:Integer):Builder={
+ def setCurrentPage(currentPage: Integer): Builder = {
this.currentPage = currentPage
this
}
- def setPageSize(pageSize:Integer):Builder={
+ def setPageSize(pageSize: Integer): Builder = {
this.pageSize = pageSize
this
}
def build(): QueryDataSourceEnvAction = {
- if(name == null) throw new DataSourceClientBuilderException("name is needed!")
+ if (name == null) throw new DataSourceClientBuilderException("name is needed!")
if(typeId == null) throw new DataSourceClientBuilderException("typeId is needed!")
if(currentPage == null) throw new DataSourceClientBuilderException("currentPage is needed!")
if(pageSize == null) throw new DataSourceClientBuilderException("pageSize is needed!")
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceAction.scala
similarity index 84%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceAction.scala
index 6547695..051d80f 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceAction.scala
@@ -24,13 +24,13 @@ import org.apache.linkis.httpclient.dws.DWSHttpClient
import org.apache.linkis.httpclient.request.PutAction
import java.util
-import scala.collection.JavaConversions._
+import scala.collection.JavaConverters._
class UpdateDataSourceAction extends PutAction with DataSourceAction{
override def getRequestPayload: String = DWSHttpClient.jacksonJson.writeValueAsString(getRequestPayloads)
private var user: String = _
- private var dataSourceId:String = _
+ private var dataSourceId: String = _
override def setUser(user: String): Unit = this.user = user
@@ -43,21 +43,21 @@ object UpdateDataSourceAction {
class Builder private[UpdateDataSourceAction]() {
private var user: String = _
- private var dataSourceId:String=_
+ private var dataSourceId: String = _
private var payload: util.Map[String, Any] = new util.HashMap[String, Any]
- def setUser(user:String):Builder={
+ def setUser(user: String): Builder = {
this.user = user
this
}
- def setDataSourceId(dataSourceId:String): Builder ={
+ def setDataSourceId(dataSourceId: String): Builder = {
this.dataSourceId = dataSourceId
this
}
def addRequestPayload(key: String, value: Any): Builder = {
- if(value != null) this.payload.put(key, value)
+ if (value != null) this.payload.put(key, value)
this
}
@@ -67,14 +67,14 @@ object UpdateDataSourceAction {
}
def build(): UpdateDataSourceAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
val action = new UpdateDataSourceAction()
- action.dataSourceId =dataSourceId
+ action.dataSourceId = dataSourceId
action.user = user
- this.payload.foreach(k=>{
+ this.payload.asScala.foreach(k => {
action.addRequestPayload(k._1, k._2)
})
action
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceParameterAction.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceParameterAction.scala
similarity index 84%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceParameterAction.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceParameterAction.scala
index 340e73f..ee38dea 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceParameterAction.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/request/UpdateDataSourceParameterAction.scala
@@ -22,14 +22,14 @@ import org.apache.linkis.datasource.client.exception.DataSourceClientBuilderExce
import org.apache.linkis.httpclient.dws.DWSHttpClient
import org.apache.linkis.httpclient.request.POSTAction
-import scala.collection.JavaConversions._
+import scala.collection.JavaConverters._
import java.util
class UpdateDataSourceParameterAction extends POSTAction with DataSourceAction {
override def getRequestPayload: String = DWSHttpClient.jacksonJson.writeValueAsString(getRequestPayloads)
private var user: String = _
- private var dataSourceId:String = _
+ private var dataSourceId: String = _
override def setUser(user: String): Unit = this.user = user
@@ -42,21 +42,21 @@ object UpdateDataSourceParameterAction {
class Builder private[UpdateDataSourceParameterAction]() {
private var user: String = _
- private var dataSourceId:String=_
+ private var dataSourceId: String = _
private var payload: util.Map[String, Any] = new util.HashMap[String, Any]
- def setUser(user:String):Builder={
+ def setUser(user: String): Builder = {
this.user = user
this
}
- def setDataSourceId(dataSourceId:String): Builder ={
+ def setDataSourceId(dataSourceId: String): Builder = {
this.dataSourceId = dataSourceId
this
}
def addRequestPayload(key: String, value: Any): Builder = {
- if(value != null) this.payload.put(key, value)
+ if (value != null) this.payload.put(key, value)
this
}
@@ -66,13 +66,13 @@ object UpdateDataSourceParameterAction {
}
def build(): UpdateDataSourceParameterAction = {
- if(dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
+ if (dataSourceId == null) throw new DataSourceClientBuilderException("dataSourceId is needed!")
if(user == null) throw new DataSourceClientBuilderException("user is needed!")
val action = new UpdateDataSourceParameterAction()
- action.dataSourceId =dataSourceId
+ action.dataSourceId = dataSourceId
action.user = user
- this.payload.foreach(k=>{
+ this.payload.asScala.foreach(k => {
action.addRequestPayload(k._1, k._2)
})
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/CreateDataSourceResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/CreateDataSourceResult.scala
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/CreateDataSourceResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/CreateDataSourceResult.scala
index 3f38176..5388f68 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/CreateDataSourceResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/CreateDataSourceResult.scala
@@ -17,11 +17,12 @@
package org.apache.linkis.datasource.client.response
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/info/json")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/info/json")
class CreateDataSourceResult extends DWSResult{
@BeanProperty var insert_id: Long = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DataSourceTestConnectResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DataSourceTestConnectResult.scala
similarity index 86%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DataSourceTestConnectResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DataSourceTestConnectResult.scala
index ab6ea7e..f07283e 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DataSourceTestConnectResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DataSourceTestConnectResult.scala
@@ -17,11 +17,12 @@
package org.apache.linkis.datasource.client.response
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/(\\S+)/(\\S+)/op/connect")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/(\\S+)/(\\S+)/op/connect")
class DataSourceTestConnectResult extends DWSResult{
@BeanProperty var ok: Boolean = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DeleteDataSourceResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DeleteDataSourceResult.scala
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DeleteDataSourceResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DeleteDataSourceResult.scala
index a28be99..f8d1f72 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DeleteDataSourceResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/DeleteDataSourceResult.scala
@@ -17,11 +17,12 @@
package org.apache.linkis.datasource.client.response
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/info/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/info/(\\S+)")
class DeleteDataSourceResult extends DWSResult{
@BeanProperty var remove_id: Long = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/ExpireDataSourceResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/ExpireDataSourceResult.scala
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/ExpireDataSourceResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/ExpireDataSourceResult.scala
index 5d42b2d..ef7dbe7 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/ExpireDataSourceResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/ExpireDataSourceResult.scala
@@ -17,11 +17,12 @@
package org.apache.linkis.datasource.client.response
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/info/(\\S+)/expire")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/info/(\\S+)/expire")
class ExpireDataSourceResult extends DWSResult{
@BeanProperty var expire_id: Long = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetAllDataSourceTypesResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetAllDataSourceTypesResult.scala
similarity index 86%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetAllDataSourceTypesResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetAllDataSourceTypesResult.scala
index 89345a0..7c39539 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetAllDataSourceTypesResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetAllDataSourceTypesResult.scala
@@ -25,14 +25,14 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import java.util
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/type/all")
-class GetAllDataSourceTypesResult extends DWSResult{
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/type/all")
+class GetAllDataSourceTypesResult extends DWSResult {
@BeanProperty var type_list: java.util.List[java.util.Map[String, Any]] = _
- def getAllDataSourceType: util.List[DataSourceType]={
+ def getAllDataSourceType: util.List[DataSourceType] = {
import scala.collection.JavaConverters._
- type_list.asScala.map(x=>{
+ type_list.asScala.map(x => {
val str = DWSHttpClient.jacksonJson.writeValueAsString(x)
DWSHttpClient.jacksonJson.readValue(str, classOf[DataSourceType])
}).asJava
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala
similarity index 93%
copy from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala
copy to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala
index 776944f..e42ec28 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala
@@ -22,7 +22,7 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/(\\S+)/connect_params")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/(\\S+)/connect_params")
class GetConnectParamsByDataSourceIdResult extends DWSResult{
@BeanProperty var connectParams: java.util.Map[String, Any] = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceNameResult.scala
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceNameResult.scala
index 776944f..0cd2ea2 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceIdResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetConnectParamsByDataSourceNameResult.scala
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.linkis.datasource.client.response
import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
@@ -22,7 +21,7 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/(\\S+)/connect_params")
-class GetConnectParamsByDataSourceIdResult extends DWSResult{
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/name/(\\S+)/connect_params")
+class GetConnectParamsByDataSourceNameResult extends DWSResult{
@BeanProperty var connectParams: java.util.Map[String, Any] = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetDataSourceVersionsResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetDataSourceVersionsResult.scala
similarity index 80%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetDataSourceVersionsResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetDataSourceVersionsResult.scala
index 2ddf6f1..90fbb45 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetDataSourceVersionsResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetDataSourceVersionsResult.scala
@@ -19,17 +19,20 @@ package org.apache.linkis.datasource.client.response
import org.apache.linkis.httpclient.dws.DWSHttpClient
import org.apache.linkis.httpclient.dws.response.DWSResult
-
import java.util
+
+import org.apache.linkis.datasourcemanager.common.domain.DatasourceVersion
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
+
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/(\\S+)/versions")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/(\\S+)/versions")
class GetDataSourceVersionsResult extends DWSResult{
@BeanProperty var versions: util.List[java.util.Map[String, Any]] = _
- def getDatasourceVersion: util.List[DatasourceVersion]={
+ def getDatasourceVersion: util.List[DatasourceVersion] = {
import scala.collection.JavaConverters._
- versions.asScala.map(x=>{
+ versions.asScala.map(x => {
val str = DWSHttpClient.jacksonJson.writeValueAsString(x)
DWSHttpClient.jacksonJson.readValue(str, classOf[DatasourceVersion])
}).asJava
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetInfoByDataSourceIdResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetInfoByDataSourceIdResult.scala
similarity index 92%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetInfoByDataSourceIdResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetInfoByDataSourceIdResult.scala
index 5adae88..ca7394b 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetInfoByDataSourceIdResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetInfoByDataSourceIdResult.scala
@@ -24,11 +24,11 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/info/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/info/(\\S+)")
class GetInfoByDataSourceIdResult extends DWSResult{
@BeanProperty var info: java.util.Map[String, Any] = _
- def getDataSource: DataSource={
+ def getDataSource: DataSource = {
val str = DWSHttpClient.jacksonJson.writeValueAsString(info)
DWSHttpClient.jacksonJson.readValue(str, classOf[DataSource])
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetKeyTypeDatasourceResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetKeyTypeDatasourceResult.scala
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetKeyTypeDatasourceResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetKeyTypeDatasourceResult.scala
index 7e731ac..434a62e 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetKeyTypeDatasourceResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/GetKeyTypeDatasourceResult.scala
@@ -20,17 +20,19 @@ package org.apache.linkis.datasource.client.response
import org.apache.linkis.datasourcemanager.common.domain.DataSourceParamKeyDefinition
import org.apache.linkis.httpclient.dws.DWSHttpClient
import org.apache.linkis.httpclient.dws.response.DWSResult
-
import java.util
+
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
+
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/key_define/type/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/key_define/type/(\\S+)")
class GetKeyTypeDatasourceResult extends DWSResult{
@BeanProperty var key_define: util.List[java.util.Map[String, Any]] = _
- def getDataSourceParamKeyDefinitions: util.List[DataSourceParamKeyDefinition] ={
+ def getDataSourceParamKeyDefinitions: util.List[DataSourceParamKeyDefinition] = {
import scala.collection.JavaConverters._
- key_define.asScala.map(x=>{
+ key_define.asScala.map(x => {
val str = DWSHttpClient.jacksonJson.writeValueAsString(x)
DWSHttpClient.jacksonJson.readValue(str, classOf[DataSourceParamKeyDefinition])
}).asJava
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetColumnsResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetColumnsResult.scala
similarity index 89%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetColumnsResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetColumnsResult.scala
index 636e3bb..e5f5e34 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetColumnsResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetColumnsResult.scala
@@ -25,13 +25,13 @@ import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo
import java.util
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/metadata/columns/(\\S+)/db/(\\S+)/table/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/metadatamanager/columns/(\\S+)/db/(\\S+)/table/(\\S+)")
class MetadataGetColumnsResult extends DWSResult{
@BeanProperty var columns: util.List[java.util.Map[String, Any]] = _
- def getAllColumns: util.List[MetaColumnInfo]={
+ def getAllColumns: util.List[MetaColumnInfo] = {
import scala.collection.JavaConverters._
- columns.asScala.map(x=>{
+ columns.asScala.map(x => {
val str = DWSHttpClient.jacksonJson.writeValueAsString(x)
DWSHttpClient.jacksonJson.readValue(str, classOf[MetaColumnInfo])
}).asJava
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetDatabasesResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetDatabasesResult.scala
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetDatabasesResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetDatabasesResult.scala
index b6d4291..2259567 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetDatabasesResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetDatabasesResult.scala
@@ -23,7 +23,7 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import java.util
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/metadata/dbs/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/metadatamanager/dbs/(\\S+)")
class MetadataGetDatabasesResult extends DWSResult{
@BeanProperty var dbs: util.List[String] = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetPartitionsResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetPartitionsResult.scala
similarity index 92%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetPartitionsResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetPartitionsResult.scala
index 96425e3..b11b7a4 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetPartitionsResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetPartitionsResult.scala
@@ -23,7 +23,7 @@ import org.apache.linkis.metadatamanager.common.domain.MetaPartitionInfo
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/metadata/partitions/(\\S+)/db/(\\S+)/table/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/metadatamanager/partitions/(\\S+)/db/(\\S+)/table/(\\S+)")
class MetadataGetPartitionsResult extends DWSResult{
@BeanProperty var props: MetaPartitionInfo = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablePropsResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablePropsResult.scala
similarity index 92%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablePropsResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablePropsResult.scala
index 25d43a1..ee4548d 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablePropsResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablePropsResult.scala
@@ -23,7 +23,7 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import java.util
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/metadata/props/(\\S+)/db/(\\S+)/table/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/metadatamanager/props/(\\S+)/db/(\\S+)/table/(\\S+)")
class MetadataGetTablePropsResult extends DWSResult{
@BeanProperty var props: util.Map[String, String] = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablesResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablesResult.scala
similarity index 93%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablesResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablesResult.scala
index c2ce15e..8f636ea 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablesResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/MetadataGetTablesResult.scala
@@ -23,7 +23,7 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import java.util
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/metadata/tables/(\\S+)/db/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/metadatamanager/tables/(\\S+)/db/(\\S+)")
class MetadataGetTablesResult extends DWSResult{
@BeanProperty var tables: util.List[String] = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/PublishDataSourceVersionResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/PublishDataSourceVersionResult.scala
similarity index 86%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/PublishDataSourceVersionResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/PublishDataSourceVersionResult.scala
index a2d671e..33229cf 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/PublishDataSourceVersionResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/PublishDataSourceVersionResult.scala
@@ -17,9 +17,10 @@
package org.apache.linkis.datasource.client.response
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
import org.apache.linkis.httpclient.dws.response.DWSResult
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/publish/(\\S+)/(\\S+)")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/publish/(\\S+)/(\\S+)")
class PublishDataSourceVersionResult extends DWSResult{
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceEnvResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceEnvResult.scala
similarity index 90%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceEnvResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceEnvResult.scala
index 8224bc2..2caa157 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceEnvResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceEnvResult.scala
@@ -25,14 +25,14 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import java.util
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/env")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/env")
class QueryDataSourceEnvResult extends DWSResult{
@BeanProperty var query_list: java.util.List[java.util.Map[String, Any]] = _
- def getDataSourceEnv: util.List[DataSourceEnv]={
+ def getDataSourceEnv: util.List[DataSourceEnv] = {
import scala.collection.JavaConverters._
- query_list.asScala.map(x=>{
+ query_list.asScala.map(x => {
val str = DWSHttpClient.jacksonJson.writeValueAsString(x)
DWSHttpClient.jacksonJson.readValue(str, classOf[DataSourceEnv])
}).asJava
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceResult.scala
similarity index 88%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceResult.scala
index 8767828..5ad1217 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/QueryDataSourceResult.scala
@@ -25,13 +25,14 @@ import org.apache.linkis.httpclient.dws.response.DWSResult
import java.util
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/info")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/info")
class QueryDataSourceResult extends DWSResult{
@BeanProperty var query_list: util.List[java.util.Map[String, Any]] = _
+ @BeanProperty var totalPage: Int = _
- def getAllDataSource: util.List[DataSource]={
+ def getAllDataSource: util.List[DataSource] = {
import scala.collection.JavaConverters._
- query_list.asScala.map(x=>{
+ query_list.asScala.map(x => {
val str = DWSHttpClient.jacksonJson.writeValueAsString(x)
DWSHttpClient.jacksonJson.readValue(str, classOf[DataSource])
}).asJava
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceParameterResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceParameterResult.scala
similarity index 86%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceParameterResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceParameterResult.scala
index c6e014e..5e70e35 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceParameterResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceParameterResult.scala
@@ -17,11 +17,12 @@
package org.apache.linkis.datasource.client.response
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/parameter/(\\S+)/json")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/parameter/(\\S+)/json")
class UpdateDataSourceParameterResult extends DWSResult{
@BeanProperty var version: Long = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceResult.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceResult.scala
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceResult.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceResult.scala
index 91bab5a..7d3d04d 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceResult.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/main/scala/org/apache/linkis/datasource/client/response/UpdateDataSourceResult.scala
@@ -17,11 +17,12 @@
package org.apache.linkis.datasource.client.response
+import org.apache.linkis.httpclient.dws.annotation.DWSHttpMessageResult
import org.apache.linkis.httpclient.dws.response.DWSResult
import scala.beans.BeanProperty
-@DWSHttpMessageResult("/api/rest_j/v\\d+/datasource/info/(\\S+)/json")
+@DWSHttpMessageResult("/api/rest_j/v\\d+/data-source-manager/info/(\\S+)/json")
class UpdateDataSourceResult extends DWSResult{
@BeanProperty var insert_id: Long = _
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasource-client/src/test/scala/org/apache/linkis/datasource/client/TestDataSourceClient.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/test/scala/org/apache/linkis/datasource/client/TestDataSourceClient.scala
similarity index 96%
rename from linkis-public-enhancements/linkis-datasource/datasource-client/src/test/scala/org/apache/linkis/datasource/client/TestDataSourceClient.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/test/scala/org/apache/linkis/datasource/client/TestDataSourceClient.scala
index f81b991..574c42c 100644
--- a/linkis-public-enhancements/linkis-datasource/datasource-client/src/test/scala/org/apache/linkis/datasource/client/TestDataSourceClient.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-client/src/test/scala/org/apache/linkis/datasource/client/TestDataSourceClient.scala
@@ -30,7 +30,7 @@ object TestDataSourceClient {
.addServerUrl("http://127.0.0.1:9001")
.connectionTimeout(30000)
.discoveryEnabled(false)
- .discoveryFrequency(1,TimeUnit.MINUTES)
+ .discoveryFrequency(1, TimeUnit.MINUTES)
.loadbalancerEnabled(true)
.maxConnectionSize(5)
.retryEnabled(false)
@@ -52,7 +52,7 @@ object TestDataSourceClient {
.setCurrentPage(1)
.setPageSize(1)
.setUser("hadoop")
- .build() ).getDataSourceEnv
+ .build()).getDataSourceEnv
val getInfoByDataSourceIdResult = dataSourceClient.getInfoByDataSourceId(
GetInfoByDataSourceIdAction.builder().setDataSourceId(1).setSystem("xx").setUser("hadoop").build()
@@ -73,8 +73,6 @@ object TestDataSourceClient {
GetConnectParamsByDataSourceIdAction.builder().setDataSourceId(1).setSystem("xx").setUser("hadoop").build()
)
- println("ss")
-
}
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/pom.xml
similarity index 97%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/pom.xml
index cdcbfe1..fd3d64a 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/pom.xml
@@ -25,7 +25,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>linkis-datasourcemanager-common</artifactId>
+ <artifactId>linkis-datasource-manager-common</artifactId>
<properties>
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/ServiceErrorCode.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/ServiceErrorCode.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/ServiceErrorCode.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/ServiceErrorCode.java
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/auth/AuthContext.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/auth/AuthContext.java
new file mode 100644
index 0000000..cae7e68
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/auth/AuthContext.java
@@ -0,0 +1,81 @@
+/*
+ * 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.linkis.datasourcemanager.common.auth;
+
+import org.apache.linkis.common.conf.CommonVars;
+import org.apache.linkis.datasourcemanager.common.domain.DataSource;
+import org.apache.linkis.server.security.SecurityFilter;
+import org.apache.commons.lang.StringUtils;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Auth context
+ */
+public class AuthContext {
+
+ public static CommonVars<String> AUTH_ADMINISTRATOR =
+ CommonVars.apply("wds.linkis.server.dsm.auth.admin", "hadoop");
+
+ public static final String AUTH_SEPARATOR = ",";
+
+ private static List<String> administrators = new ArrayList<>();
+
+ static{
+ String adminStr = AUTH_ADMINISTRATOR.getValue();
+ if(StringUtils.isNotBlank(adminStr)){
+ for(String admin : adminStr.split(AUTH_SEPARATOR)){
+ if(StringUtils.isNotBlank(admin)){
+ administrators.add(admin);
+ }
+ }
+ }
+ }
+
+ /**
+ * If has permission of data source
+ * @param dataSource data source
+ * @param request request
+ * @return boolean
+ */
+ public static boolean hasPermission(DataSource dataSource, HttpServletRequest request){
+ String username = SecurityFilter.getLoginUsername(request);
+ return hasPermission(dataSource, username);
+ }
+
+ public static boolean hasPermission(DataSource dataSource, String username){
+ if (Objects.nonNull(dataSource)) {
+ String creator = dataSource.getCreateUser();
+ return (administrators.contains(username) ||
+ (StringUtils.isNotBlank(creator) && username.equals(creator)));
+ }
+ return false;
+ }
+
+ /**
+ * If is admin
+ * @param username username
+ * @return boolean
+ */
+ public static boolean isAdministrator(String username){
+ return administrators.contains(username);
+ }
+}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSource.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSource.java
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSource.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSource.java
index 2ce9799..38c03ca 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSource.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSource.java
@@ -17,6 +17,7 @@
package org.apache.linkis.datasourcemanager.common.domain;
+import org.apache.linkis.datasourcemanager.common.exception.JsonErrorException;
import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.annotate.JsonIgnore;
@@ -24,6 +25,7 @@ import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.*;
@@ -40,6 +42,7 @@ public class DataSource {
* Data source name
*/
@NotNull
+ @Pattern(regexp = "^[\\w\\u4e00-\\u9fa5_-]+$")
private String dataSourceName;
/**
@@ -253,7 +256,11 @@ public class DataSource {
public Map<String, Object> getConnectParams() {
if(connectParams.isEmpty() && StringUtils.isNotBlank(parameter)){
- connectParams.putAll(Objects.requireNonNull(Json.fromJson(parameter, Map.class)));
+ try {
+ connectParams.putAll(Objects.requireNonNull(Json.fromJson(parameter, Map.class)));
+ } catch (JsonErrorException e) {
+ //Ignore
+ }
}
return connectParams;
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceEnv.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceEnv.java
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceEnv.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceEnv.java
index 3e3aa03..7448313 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceEnv.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceEnv.java
@@ -17,6 +17,7 @@
package org.apache.linkis.datasourcemanager.common.domain;
+import org.apache.linkis.datasourcemanager.common.exception.JsonErrorException;
import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.annotate.JsonIgnore;
@@ -114,7 +115,11 @@ public class DataSourceEnv {
public Map<String, Object> getConnectParams() {
if(connectParams.isEmpty() && StringUtils.isNotBlank(parameter)){
- connectParams.putAll(Objects.requireNonNull(Json.fromJson(parameter, Map.class)));
+ try {
+ connectParams.putAll(Objects.requireNonNull(Json.fromJson(parameter, Map.class)));
+ } catch (JsonErrorException e) {
+ //Ignore
+ }
}
return connectParams;
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParamKeyDefinition.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParamKeyDefinition.java
similarity index 90%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParamKeyDefinition.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParamKeyDefinition.java
index 2cb3d51..7d96a94 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParamKeyDefinition.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParamKeyDefinition.java
@@ -24,6 +24,7 @@ import java.io.InputStream;
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
/**
* Parameter key definition for data source type
@@ -44,6 +45,10 @@ public class DataSourceParamKeyDefinition {
*/
TEXT(String.class),
/**
+ * String
+ */
+ TEXTAREA(String.class),
+ /**
* Long
*/
NUMBER(Long.class),
@@ -219,6 +224,14 @@ public class DataSourceParamKeyDefinition {
this.require = require;
}
+ public Scope getScope() {
+ return scope;
+ }
+
+ public void setScope(Scope scope) {
+ this.scope = scope;
+ }
+
public Long getRefId() {
return refId;
}
@@ -235,11 +248,20 @@ public class DataSourceParamKeyDefinition {
this.refValue = refValue;
}
- public Scope getScope() {
- return scope;
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ DataSourceParamKeyDefinition that = (DataSourceParamKeyDefinition) o;
+ return Objects.equals(id, that.id);
}
- public void setScope(Scope scope) {
- this.scope = scope;
+ @Override
+ public int hashCode() {
+ return Objects.hash(id);
}
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParameter.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParameter.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParameter.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceParameter.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceType.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceType.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceType.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DataSourceType.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DatasourceVersion.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DatasourceVersion.java
similarity index 92%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DatasourceVersion.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DatasourceVersion.java
index 971d245..bb9030e 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DatasourceVersion.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/domain/DatasourceVersion.java
@@ -17,6 +17,7 @@
package org.apache.linkis.datasourcemanager.common.domain;
+import org.apache.linkis.datasourcemanager.common.exception.JsonErrorException;
import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
@@ -91,7 +92,11 @@ public class DatasourceVersion {
public Map<String, Object> getConnectParams() {
if(connectParams.isEmpty() && StringUtils.isNotBlank(parameter)){
- connectParams.putAll(Objects.requireNonNull(Json.fromJson(parameter, Map.class)));
+ try {
+ connectParams.putAll(Objects.requireNonNull(Json.fromJson(parameter, Map.class)));
+ } catch (JsonErrorException e) {
+ //Ignore
+ }
}
return connectParams;
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/DsmConfiguration.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/exception/JsonErrorException.java
similarity index 68%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/DsmConfiguration.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/exception/JsonErrorException.java
index 547cc6b..81a059b 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/DsmConfiguration.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/exception/JsonErrorException.java
@@ -5,27 +5,26 @@
* 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.linkis.datasourcemanager.common;
-import org.apache.linkis.common.conf.CommonVars;
+package org.apache.linkis.datasourcemanager.common.exception;
+
+import org.apache.linkis.common.exception.ErrorException;
/**
- * Configuration
+ * Deal the exception of json processing
*/
-public class DsmConfiguration {
-
- public static CommonVars<String> DSM_ADMIN_USER_LIST =
- CommonVars.apply("wds.linkis.server.dsm.admin.users", "");
-
-
+public class JsonErrorException extends ErrorException {
+ public JsonErrorException(int errCode, String desc, Throwable cause) {
+ super(errCode, desc);
+ super.initCause(cause);
+ }
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/CryptoUtils.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/CryptoUtils.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/CryptoUtils.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/CryptoUtils.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/PatternInjectUtils.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/PatternInjectUtils.java
similarity index 96%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/PatternInjectUtils.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/PatternInjectUtils.java
index e295827..60753b0 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/PatternInjectUtils.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/PatternInjectUtils.java
@@ -17,6 +17,7 @@
package org.apache.linkis.datasourcemanager.common.util;
+import org.apache.linkis.datasourcemanager.common.exception.JsonErrorException;
import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
@@ -48,7 +49,7 @@ public class PatternInjectUtils {
* @param useDefault use default Value
* @return
*/
- public static String inject(String template, Object[] params, boolean useDefault, boolean escape, boolean placeholder){
+ public static String inject(String template, Object[] params, boolean useDefault, boolean escape, boolean placeholder) throws JsonErrorException {
Matcher matcher = REGEX.matcher(template);
StringBuffer sb = new StringBuffer();
int offset = 0;
@@ -87,7 +88,7 @@ public class PatternInjectUtils {
matcher.appendTail(sb);
return sb.toString().replace("\\$","$");
}
- public static String inject(String pattern, Object[] params){
+ public static String inject(String pattern, Object[] params) throws JsonErrorException {
return inject(pattern, params, true, true, true);
}
@@ -98,7 +99,7 @@ public class PatternInjectUtils {
* @param useDefault
* @return
*/
- public static String inject(String template, Map<String, Object> params, boolean useDefault, boolean escape, boolean placeholder){
+ public static String inject(String template, Map<String, Object> params, boolean useDefault, boolean escape, boolean placeholder) throws JsonErrorException {
Matcher matcher = REGEX.matcher(template);
StringBuffer sb = new StringBuffer();
//will be more faster?
@@ -161,7 +162,7 @@ public class PatternInjectUtils {
return sb.toString().replace("\\$", "$");
}
- public static String inject(String template, Map<String, Object> params){
+ public static String inject(String template, Map<String, Object> params) throws JsonErrorException {
return inject(template, params, true, true, true);
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/json/Json.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/json/Json.java
similarity index 78%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/json/Json.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/json/Json.java
index ca0ca87..ca1d6b5 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/json/Json.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/java/org/apache/linkis/datasourcemanager/common/util/json/Json.java
@@ -21,6 +21,7 @@ import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.*;
+import org.apache.linkis.datasourcemanager.common.exception.JsonErrorException;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -28,6 +29,7 @@ import org.slf4j.LoggerFactory;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
/**
@@ -58,7 +60,7 @@ public class Json {
private Json(){}
@SuppressWarnings("unchecked")
- public static <T> T fromJson(String json, Class<?> clazz, Class<?>... parameters){
+ public static <T> T fromJson(String json, Class<?> clazz, Class<?>... parameters) throws JsonErrorException {
if(StringUtils.isNotBlank(json)){
try{
if(parameters.length > 0){
@@ -72,30 +74,32 @@ public class Json {
}
return (T)mapper.readValue(json, clazz);
} catch (Exception e) {
- logger.info(e.getLocalizedMessage());
- throw new RuntimeException(e);
+ String message = "Unable to deserialize to object from string(json) in type: [" +
+ (null != clazz ? clazz.getSimpleName() : "UNKNOWN") + "], parameters size: " + parameters.length;
+ throw new JsonErrorException( -1, message, e);
}
}
return null;
}
- public static <T> T fromJson(InputStream stream, Class<?> clazz, Class<?>... parameters){
+ public static <T> T fromJson(InputStream stream, Class<?> clazz, Class<?>... parameters) throws JsonErrorException{
StringBuilder builder = new StringBuilder();
String jsonStr = null;
try{
- BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
+ BufferedReader reader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8));
while((jsonStr = reader.readLine()) != null){
builder.append(jsonStr);
}
reader.close();
}catch(Exception e){
- logger.info(e.getLocalizedMessage());
- throw new RuntimeException(e);
+ String message = "Unable to deserialize to object from stream(json) in type: [" +
+ (null != clazz ? clazz.getSimpleName() : "UNKNOWN") + "], parameters size: " + parameters.length;
+ throw new JsonErrorException( -1, message, e);
}
return fromJson(builder.toString(), clazz, parameters);
}
- public static String toJson(Object obj, Class<?> model){
+ public static String toJson(Object obj, Class<?> model) throws JsonErrorException {
ObjectWriter writer = mapper.writer();
if(null != obj){
try{
@@ -104,8 +108,8 @@ public class Json {
}
return writer.writeValueAsString(obj);
} catch (JsonProcessingException e) {
- logger.info(e.getLocalizedMessage());
- throw new RuntimeException(e);
+ String message = "Unable to serialize the object in type: ["+ (null != model ? model.getSimpleName() : "UNKNOWN") + "]";
+ throw new JsonErrorException( -1, message, e);
}
}
return null;
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/scala/org/apache/linkis/datasourcemanager/common/protocol/DsmQueryProtocol.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/scala/org/apache/linkis/datasourcemanager/common/protocol/DsmQueryProtocol.scala
similarity index 92%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/scala/org/apache/linkis/datasourcemanager/common/protocol/DsmQueryProtocol.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/scala/org/apache/linkis/datasourcemanager/common/protocol/DsmQueryProtocol.scala
index 14366db..4ae9627 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/common/src/main/scala/org/apache/linkis/datasourcemanager/common/protocol/DsmQueryProtocol.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/common/src/main/scala/org/apache/linkis/datasourcemanager/common/protocol/DsmQueryProtocol.scala
@@ -30,7 +30,7 @@ trait DsmQueryProtocol {
* Query request of Data Source Information
* @param id
*/
-case class DsInfoQueryRequest(id: String, system: String) extends DsmQueryProtocol
+case class DsInfoQueryRequest(id: String, name: String, system: String) extends DsmQueryProtocol
/**
* Response of parameter map
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/pom.xml
similarity index 83%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/pom.xml
index 0789091..65b9c25 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/pom.xml
@@ -25,7 +25,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>linkis-datasourcemanager-server</artifactId>
+ <artifactId>linkis-datasource-manager-server</artifactId>
<properties>
@@ -47,7 +47,7 @@
<!-- data source manager common dependency-->
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-datasourcemanager-common</artifactId>
+ <artifactId>linkis-datasource-manager-common</artifactId>
<version>${linkis.version}</version>
<exclusions>
<exclusion>
@@ -74,6 +74,14 @@
<artifactId>hk2-api</artifactId>
<groupId>org.glassfish.hk2</groupId>
</exclusion>
+ <exclusion>
+ <artifactId>jersey-server</artifactId>
+ <groupId>org.glassfish.jersey.core</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jersey-common</artifactId>
+ <groupId>org.glassfish.jersey.core</groupId>
+ </exclusion>
</exclusions>
</dependency>
<!--bml client-->
@@ -81,23 +89,40 @@
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-bml-client</artifactId>
<version>${linkis.version}</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>guava</artifactId>
+ <groupId>com.google.guava</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-mybatis</artifactId>
<version>${linkis.version}</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>spring-core</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>spring-beans</artifactId>
+ <groupId>org.springframework</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<!--rpc-->
<dependency>
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-rpc</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
<!--Metadata common-->
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-metadatamanager-common</artifactId>
+ <artifactId>linkis-metadata-manager-common</artifactId>
<version>${linkis.version}</version>
</dependency>
</dependencies>
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/assembly/distribution.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/assembly/distribution.xml
similarity index 98%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/assembly/distribution.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/assembly/distribution.xml
index be92b44..b50fe12 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/assembly/distribution.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/assembly/distribution.xml
@@ -19,7 +19,7 @@
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>linkis-dsm-server</id>
+ <id>linkis-datasource-manager-server</id>
<formats>
<format>zip</format>
<format>dir</format>
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/LinkisDataSourceManagerApplication.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/LinkisDataSourceManagerApplication.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/LinkisDataSourceManagerApplication.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/LinkisDataSourceManagerApplication.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
similarity index 75%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
index 6967a3c..40f6002 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceDao.java
@@ -43,24 +43,37 @@ public interface DataSourceDao {
DataSource selectOneDetail(@Param("dataSourceId") Long dataSourceId);
/**
+ * View detail by name
+ * @param dataSourceName data source name
+ * @return data source entity
+ */
+ DataSource selectOneDetailByName(@Param("dataSourceName") String dataSourceName);
+ /**
* View normal
* @param dataSourceId data source id
* @return data source entity
*/
DataSource selectOne(@Param("dataSourceId") Long dataSourceId);
+
+ /**
+ * Select one by username
+ * @param dataSourceName data source name
+ * @return data source entity
+ */
+ DataSource selectOneByName(@Param("dataSourceName") String dataSourceName);
/**
* Delete One
* @param dataSourceId data source id
* @return affect row
*/
- int removeOne(@Param("dataSourceId")Long dataSourceId);
+ int removeOne(@Param("dataSourceId") Long dataSourceId);
/**
* Expire One
* @param dataSourceId data source id
* @return affect row
*/
- int expireOne(@Param("dataSourceId")Long dataSourceId);
+ int expireOne(@Param("dataSourceId") Long dataSourceId);
/**
@@ -81,12 +94,12 @@ public interface DataSourceDao {
* @param dataSourceId
* @param versionId
*/
- int setPublishedVersionId(@Param("dataSourceId")Long dataSourceId, @Param("versionId")Long versionId);
+ int setPublishedVersionId(@Param("dataSourceId") Long dataSourceId, @Param("versionId") Long versionId);
/**
* update version id
* @param datasourceId
* @param versionId
*/
- void updateVersionId(@Param("dataSourceId")Long datasourceId, @Param("versionId")long versionId);
+ void updateVersionId(@Param("dataSourceId") Long datasourceId, @Param("versionId") long versionId);
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceEnvDao.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceEnvDao.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceEnvDao.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceEnvDao.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceParamKeyDao.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceParamKeyDao.java
similarity index 92%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceParamKeyDao.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceParamKeyDao.java
index 48a901a..be9fc84 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceParamKeyDao.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceParamKeyDao.java
@@ -37,6 +37,6 @@ public interface DataSourceParamKeyDao {
* @param scope scope
* @return
*/
- List<DataSourceParamKeyDefinition> listByDataSourceTypeAndScope(@Param("dataSourceTypeId")Long dataSourceTypeId,
- @Param("scope")DataSourceParamKeyDefinition.Scope scope);
+ List<DataSourceParamKeyDefinition> listByDataSourceTypeAndScope(@Param("dataSourceTypeId") Long dataSourceTypeId,
+ @Param("scope") DataSourceParamKeyDefinition.Scope scope);
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceTypeDao.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceTypeDao.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceTypeDao.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceTypeDao.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceTypeEnvDao.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceTypeEnvDao.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceTypeEnvDao.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceTypeEnvDao.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceVersionDao.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceVersionDao.java
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceVersionDao.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceVersionDao.java
index 285eda6..cdf4310 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceVersionDao.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/DataSourceVersionDao.java
@@ -44,7 +44,7 @@ public interface DataSourceVersionDao {
* @param version
* @return
*/
- String selectOneVersion(@Param("dataSourceId")Long dataSourceId, @Param("version")Long version);
+ String selectOneVersion(@Param("dataSourceId") Long dataSourceId, @Param("version") Long version);
/**
* get version list from datasource id
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
similarity index 90%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
index 8345644..746d15e 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSouceMapper.xml
@@ -102,7 +102,7 @@
<include refid="data_source_insert_columns"/>
) VALUES(#{dataSourceName}, #{dataSourceTypeId},
#{dataSourceDesc,jdbcType=VARCHAR}, #{createIdentify}, #{createSystem}, #{createUser},
- #{parameter}, #{createTime}, #{modifyUser,jdbcType=VARCHAR}, #{modifyTime,jdbcType=DATE},
+ #{parameter}, #{createTime}, #{modifyUser,jdbcType=VARCHAR}, #{modifyTime,jdbcType=TIMESTAMP},
#{labels})
</insert>
@@ -116,6 +116,15 @@
</where>
</select>
+ <select id="selectOneDetailByName" resultMap="dataSourceDetailMap">
+ <![CDATA[SELECT ]]>
+ <include refid="data_source_join_type"/>
+ <![CDATA[ FROM `linkis_datasource_type` t
+ INNER JOIN `linkis_datasource` d ON t.`id` = d.`datasource_type_id`]]>
+ <where>
+ d.`datasource_name` = #{dataSourceName} LIMIT 1
+ </where>
+ </select>
<select id="selectOne" resultMap="dataSourceMap">
<![CDATA[SELECT ]]>
<include refid="data_source_query_columns"/>
@@ -125,6 +134,15 @@
</where>
</select>
+ <select id="selectOneByName" resultMap="dataSourceMap">
+ <![CDATA[SELECT ]]>
+ <include refid="data_source_query_columns"/>
+ <![CDATA[ FROM `linkis_datasource` ]]>
+ <where>
+ `datasource_name` = #{dataSourceName}
+ </where>
+ <![CDATA[ LIMIT 1; ]]>
+ </select>
<select id="selectEnvById" resultType="DataSourceEnv">
<![CDATA[
SELECT `env_name`, `parameter` AS `env_parameter`
@@ -150,7 +168,7 @@
</if>
<![CDATA[`create_identify` = #{createIdentify,jdbcType=VARCHAR},]]>
<![CDATA[`create_system` = #{createSystem,jdbcType=VARCHAR},]]>
- <![CDATA[`modify_time` = #{modifyTime,jdbcType=DATE},]]>
+ <![CDATA[`modify_time` = #{modifyTime,jdbcType=TIMESTAMP},]]>
<![CDATA[`modify_user` = #{modifyUser,jdbcType=VARCHAR},]]>
<![CDATA[`labels` = #{labels,jdbcType=VARCHAR}]]>
</set>
@@ -181,6 +199,9 @@
<if test="dataSourceTypeId != null and dataSourceTypeId > 0">
<![CDATA[AND `datasource_type_id` = #{dataSourceTypeId}]]>
</if>
+ <if test="permissionUser != null and permissionUser != ''">
+ <![CDATA[AND `create_user` = #{permissionUser}]]>
+ </if>
<!-- <if test="createIdentifyList.size() > 0">-->
<!-- <choose>-->
<!-- <when test="createIdentifyList.size() == 1">-->
@@ -197,6 +218,7 @@
<!-- </choose>-->
<!-- </if>-->
</where>
+ <![CDATA[ ORDER BY create_time DESC ]]>
</select>
<update id="setPublishedVersionId">
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceEnvMapper.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceEnvMapper.xml
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceEnvMapper.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceEnvMapper.xml
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceParamKeyMapper.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceParamKeyMapper.xml
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceParamKeyMapper.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceParamKeyMapper.xml
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceTypeEnvMapper.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceTypeEnvMapper.xml
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceTypeEnvMapper.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceTypeEnvMapper.xml
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceTypeMapper.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceTypeMapper.xml
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceTypeMapper.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceTypeMapper.xml
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceVersionMapper.xml b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceVersionMapper.xml
similarity index 97%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceVersionMapper.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceVersionMapper.xml
index 6bbcba7..6b435a9 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceVersionMapper.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/dao/mapper/DataSourceVersionMapper.xml
@@ -43,7 +43,7 @@
<select id="selectOneVersion" resultType="string">
SELECT `parameter`
- FROM `linkis_datasource_version` WHERE datasource_id = #{dataSourceId} and `version_id` = #{version};
+ FROM `linkis_datasource_version` WHERE datasource_id = #{dataSourceId} and `version_id` = #{version, jdbcType=INTEGER};
</select>
<select id="getVersionsFromDatasourceId" resultMap="dataSourceVersionMap">
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/CustomMultiPartFormDataTransformer.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/CustomMultiPartFormDataTransformer.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/CustomMultiPartFormDataTransformer.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/CustomMultiPartFormDataTransformer.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/FormDataTransformerFactory.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/FormDataTransformerFactory.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/FormDataTransformerFactory.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/FormDataTransformerFactory.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/FormStreamContent.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/FormStreamContent.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/FormStreamContent.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/FormStreamContent.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/MultiPartFormDataTransformer.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/MultiPartFormDataTransformer.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/MultiPartFormDataTransformer.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/formdata/MultiPartFormDataTransformer.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
similarity index 64%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
index 5f91a93..05b779f 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceAdminRestfulApi.java
@@ -45,7 +45,7 @@ import java.util.Map;
import java.util.Set;
@RestController
-@RequestMapping(value = "/data_source",produces = {"application/json"})
+@RequestMapping(value = "/data-source-manager",produces = {"application/json"})
public class DataSourceAdminRestfulApi {
@Autowired
@@ -68,19 +68,21 @@ public class DataSourceAdminRestfulApi {
}
@RequestMapping(value = "/env/json",method = RequestMethod.POST)
- public Message insertJsonEnv(DataSourceEnv dataSourceEnv, HttpServletRequest req) throws ErrorException {
- String userName = SecurityFilter.getLoginUsername(req);
- if(!RestfulApiHelper.isAdminUser(userName)){
- return Message.error("User '" + userName + "' is not admin user[非管理员用户]");
- }
- //Bean validation
- Set<ConstraintViolation<DataSourceEnv>> result = beanValidator.validate(dataSourceEnv, Default.class);
- if(result.size() > 0){
- throw new ConstraintViolationException(result);
- }
- dataSourceEnv.setCreateUser(userName);
- insertDataSourceEnv(dataSourceEnv);
- return Message.ok().data("insert_id", dataSourceEnv.getId());
+ public Message insertJsonEnv(@RequestBody DataSourceEnv dataSourceEnv, HttpServletRequest req) throws ErrorException {
+ return RestfulApiHelper.doAndResponse(()-> {
+ String userName = SecurityFilter.getLoginUsername(req);
+ if (!RestfulApiHelper.isAdminUser(userName)) {
+ return Message.error("User '" + userName + "' is not admin user[非管理员用户]");
+ }
+ //Bean validation
+ Set<ConstraintViolation<DataSourceEnv>> result = beanValidator.validate(dataSourceEnv, Default.class);
+ if (result.size() > 0) {
+ throw new ConstraintViolationException(result);
+ }
+ dataSourceEnv.setCreateUser(userName);
+ insertDataSourceEnv(dataSourceEnv);
+ return Message.ok().data("insert_id", dataSourceEnv.getId());
+ },"/data-source-manager/env/json", "Fail to insert data source environment[新增数据源环境失败]");
}
// @RequestMapping(value = "/env/form",method = RequestMethod.POST)
@@ -97,55 +99,63 @@ public class DataSourceAdminRestfulApi {
@RequestMapping(value = "/env_list/all/type/{type_id}",method = RequestMethod.GET)
public Message getAllEnvListByDataSourceType(@PathVariable("type_id")Long typeId){
- List<DataSourceEnv> envList = dataSourceInfoService.listDataSourceEnvByType(typeId);
- return Message.ok().data("env_list", envList);
+ return RestfulApiHelper.doAndResponse(()-> {
+ List<DataSourceEnv> envList = dataSourceInfoService.listDataSourceEnvByType(typeId);
+ return Message.ok().data("env_list", envList);
+ }, "/data-source-manager/env_list/all/type/" + typeId, "Fail to get data source environment list[获取数据源环境清单失败]");
}
@RequestMapping (value = "/env/{env_id}",method = RequestMethod.GET)
public Message getEnvEntityById(@PathVariable("env_id")Long envId){
- DataSourceEnv dataSourceEnv = dataSourceInfoService.getDataSourceEnv(envId);
- return Message.ok().data("env", dataSourceEnv);
+ return RestfulApiHelper.doAndResponse(()-> {
+ DataSourceEnv dataSourceEnv = dataSourceInfoService.getDataSourceEnv(envId);
+ return Message.ok().data("env", dataSourceEnv);
+ }, "/data-source-manager/env/" + envId, "Fail to get data source environment[获取数据源环境信息失败]");
}
@RequestMapping(value = "/env/{env_id}",method = RequestMethod.DELETE)
public Message removeEnvEntity(@PathVariable("env_id")Long envId,
HttpServletRequest request){
- String userName = SecurityFilter.getLoginUsername(request);
- if(!RestfulApiHelper.isAdminUser(userName)){
- return Message.error("User '" + userName + "' is not admin user[非管理员用户]");
- }
- Long removeId = dataSourceInfoService.removeDataSourceEnv(envId);
- if(removeId < 0){
- return Message.error("Fail to remove data source environment[删除数据源环境信息失败], [id:" +
- envId + "]");
- }
- return Message.ok().data("remove_id", removeId);
+ return RestfulApiHelper.doAndResponse(() -> {
+ String userName = SecurityFilter.getLoginUsername(request);
+ if (!RestfulApiHelper.isAdminUser(userName)) {
+ return Message.error("User '" + userName + "' is not admin user[非管理员用户]");
+ }
+ Long removeId = dataSourceInfoService.removeDataSourceEnv(envId);
+ if (removeId < 0) {
+ return Message.error("Fail to remove data source environment[删除数据源环境信息失败], [id:" +
+ envId + "]");
+ }
+ return Message.ok().data("remove_id", removeId);
+ }, "/data-source-manager/env/" + envId, "Fail to remove data source environment[删除数据源环境信息失败]");
}
@RequestMapping(value = "/env/{env_id}/json",method = RequestMethod.PUT)
- public Message updateJsonEnv(DataSourceEnv dataSourceEnv,
+ public Message updateJsonEnv(@RequestBody DataSourceEnv dataSourceEnv,
@PathVariable("env_id")Long envId,
HttpServletRequest request) throws ErrorException {
- String userName = SecurityFilter.getLoginUsername(request);
- if(!RestfulApiHelper.isAdminUser(userName)){
- return Message.error("User '" + userName + "' is not admin user[非管理员用户]");
- }
- //Bean validation
- Set<ConstraintViolation<DataSourceEnv>> result = beanValidator.validate(dataSourceEnv, Default.class);
- if(result.size() > 0){
- throw new ConstraintViolationException(result);
- }
- dataSourceEnv.setId(envId);
- dataSourceEnv.setModifyUser(userName);
- dataSourceEnv.setModifyTime(Calendar.getInstance().getTime());
- DataSourceEnv storedDataSourceEnv = dataSourceInfoService.getDataSourceEnv(envId);
- if(null == storedDataSourceEnv){
- return Message.error("Fail to update data source environment[更新数据源环境失败], " + "[Please check the id:'"
- + envId + " is correct ']");
- }
- dataSourceEnv.setCreateUser(storedDataSourceEnv.getCreateUser());
- updateDataSourceEnv(dataSourceEnv, storedDataSourceEnv);
- return Message.ok().data("update_id", envId);
+ return RestfulApiHelper.doAndResponse(() -> {
+ String userName = SecurityFilter.getLoginUsername(request);
+ if (!RestfulApiHelper.isAdminUser(userName)) {
+ return Message.error("User '" + userName + "' is not admin user[非管理员用户]");
+ }
+ //Bean validation
+ Set<ConstraintViolation<DataSourceEnv>> result = beanValidator.validate(dataSourceEnv, Default.class);
+ if (result.size() > 0) {
+ throw new ConstraintViolationException(result);
+ }
+ dataSourceEnv.setId(envId);
+ dataSourceEnv.setModifyUser(userName);
+ dataSourceEnv.setModifyTime(Calendar.getInstance().getTime());
+ DataSourceEnv storedDataSourceEnv = dataSourceInfoService.getDataSourceEnv(envId);
+ if (null == storedDataSourceEnv) {
+ return Message.error("Fail to update data source environment[更新数据源环境失败], " + "[Please check the id:'"
+ + envId + " is correct ']");
+ }
+ dataSourceEnv.setCreateUser(storedDataSourceEnv.getCreateUser());
+ updateDataSourceEnv(dataSourceEnv, storedDataSourceEnv);
+ return Message.ok().data("update_id", envId);
+ }, "/data-source-manager/env/" + envId + "/json", "Fail to update data source environment[更新数据源环境失败]");
}
// @RequestMapping(value = "/env/{env_id}/form",method = RequestMethod.PUT,consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@@ -178,11 +188,13 @@ public class DataSourceAdminRestfulApi {
@RequestParam(value = "typeId",required = false)Long dataSourceTypeId,
@RequestParam(value = "currentPage",required = false)Integer currentPage,
@RequestParam(value = "pageSize",required = false)Integer pageSize){
- DataSourceEnvVo dataSourceEnvVo = new DataSourceEnvVo(envName, dataSourceTypeId);
- dataSourceEnvVo.setCurrentPage(null != currentPage ? currentPage : 1);
- dataSourceEnvVo.setPageSize(null != pageSize? pageSize : 10);
- List<DataSourceEnv> queryList = dataSourceInfoService.queryDataSourceEnvPage(dataSourceEnvVo);
- return Message.ok().data("query_list", queryList);
+ return RestfulApiHelper.doAndResponse(() -> {
+ DataSourceEnvVo dataSourceEnvVo = new DataSourceEnvVo(envName, dataSourceTypeId);
+ dataSourceEnvVo.setCurrentPage(null != currentPage ? currentPage : 1);
+ dataSourceEnvVo.setPageSize(null != pageSize ? pageSize : 10);
+ List<DataSourceEnv> queryList = dataSourceInfoService.queryDataSourceEnvPage(dataSourceEnvVo);
+ return Message.ok().data("query_list", queryList);
+ }, "/data-source-manager/env", "Fail to query page of data source environment[查询数据源环境失败]");
}
/**
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
new file mode 100644
index 0000000..137c712
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceCoreRestfulApi.java
@@ -0,0 +1,432 @@
+/*
+ * 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.linkis.datasourcemanager.core.restful;
+
+import com.github.pagehelper.PageInfo;
+import org.apache.linkis.common.exception.ErrorException;
+import org.apache.linkis.datasourcemanager.common.ServiceErrorCode;
+import org.apache.linkis.datasourcemanager.common.auth.AuthContext;
+import org.apache.linkis.datasourcemanager.core.formdata.FormDataTransformerFactory;
+import org.apache.linkis.datasourcemanager.core.formdata.MultiPartFormDataTransformer;
+import org.apache.linkis.datasourcemanager.core.service.DataSourceInfoService;
+import org.apache.linkis.datasourcemanager.core.service.DataSourceRelateService;
+import org.apache.linkis.datasourcemanager.core.service.MetadataOperateService;
+import org.apache.linkis.datasourcemanager.core.vo.DataSourceVo;
+import org.apache.linkis.datasourcemanager.core.validate.ParameterValidateException;
+import org.apache.linkis.datasourcemanager.core.validate.ParameterValidator;
+import org.apache.linkis.metadatamanager.common.MdmConfiguration;
+import org.apache.linkis.datasourcemanager.common.domain.DataSource;
+import org.apache.linkis.datasourcemanager.common.domain.DataSourceParamKeyDefinition;
+import org.apache.linkis.datasourcemanager.common.domain.DataSourceType;
+import org.apache.linkis.datasourcemanager.common.domain.DatasourceVersion;
+import org.apache.linkis.server.Message;
+import org.apache.linkis.server.security.SecurityFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.ConstraintViolation;
+import javax.validation.ConstraintViolationException;
+import javax.validation.Validator;
+import javax.validation.groups.Default;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.*;
+
+@RestController
+@RequestMapping(value = "/data-source-manager-manager",produces = {"application/json"})
+public class DataSourceCoreRestfulApi {
+
+ private static final Logger LOG = LoggerFactory.getLogger(DataSourceCoreRestfulApi.class);
+ @Autowired
+ private DataSourceInfoService dataSourceInfoService;
+
+ @Autowired
+ private DataSourceRelateService dataSourceRelateService;
+
+ @Autowired
+ private ParameterValidator parameterValidator;
+
+ @Autowired
+ private Validator beanValidator;
+
+ @Autowired
+ private MetadataOperateService metadataOperateService;
+
+ private MultiPartFormDataTransformer formDataTransformer;
+
+
+ @PostConstruct
+ public void initRestful() {
+ this.formDataTransformer = FormDataTransformerFactory.buildCustom();
+ }
+
+
+ @RequestMapping(value = "/type/all",method = RequestMethod.GET)
+ public Message getAllDataSourceTypes() {
+ return RestfulApiHelper.doAndResponse(() -> {
+ List<DataSourceType> dataSourceTypes = dataSourceRelateService.getAllDataSourceTypes();
+ return Message.ok().data("type_list", dataSourceTypes);
+ }, "/data-source-manager/type/all", "Fail to get all types of data source[获取数据源类型列表失败]");
+ }
+
+
+ @RequestMapping(value = "/key_define/type/{type_id}",method = RequestMethod.GET)
+ public Message getKeyDefinitionsByType(@PathVariable("type_id") Long dataSourceTypeId) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ List<DataSourceParamKeyDefinition> keyDefinitions = dataSourceRelateService.getKeyDefinitionsByType(dataSourceTypeId);
+ return Message.ok().data("key_define", keyDefinitions);
+ }, "/data-source-manager/key_define/type/" + dataSourceTypeId,
+ "Fail to get key definitions of data source type[查询数据源参数键值对失败]");
+ }
+
+
+ @RequestMapping(value = "/info/json" ,method = RequestMethod.POST)
+ public Message insertJsonInfo(@RequestBody DataSource dataSource, HttpServletRequest req) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ String userName = SecurityFilter.getLoginUsername(req);
+ //Bean validation
+ Set<ConstraintViolation<DataSource>> result = beanValidator.validate(dataSource, Default.class);
+ if (result.size() > 0) {
+ throw new ConstraintViolationException(result);
+ }
+ //Escape the data source name
+ dataSource.setCreateUser(userName);
+ if (dataSourceInfoService.existDataSource(dataSource.getDataSourceName())){
+ return Message.error("The data source named: " + dataSource.getDataSourceName() + " has been existed [数据源: " +dataSource.getDataSourceName() + " 已经存在]");
+ }
+ insertDataSource(dataSource);
+ return Message.ok().data("insert_id", dataSource.getId());
+ }, "/data-source-manager/info/json", "Fail to insert data source[新增数据源失败]");
+ }
+
+ @RequestMapping(value = "/info/{data_source_id}/json",method = RequestMethod.PUT)
+ public Message updateDataSourceInJson(@RequestBody DataSource dataSource,
+ @PathVariable("data_source_id") Long dataSourceId,
+ HttpServletRequest req) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ String userName = SecurityFilter.getLoginUsername(req);
+ //Bean validation
+ Set<ConstraintViolation<DataSource>> result = beanValidator.validate(dataSource, Default.class);
+ if (result.size() > 0) {
+ throw new ConstraintViolationException(result);
+ }
+ dataSource.setId(dataSourceId);
+ dataSource.setModifyUser(userName);
+ dataSource.setModifyTime(Calendar.getInstance().getTime());
+ DataSource storedDataSource = dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
+ if (null == storedDataSource) {
+ return Message.error("This data source was not found [更新数据源失败]");
+ }
+ if (!AuthContext.hasPermission(storedDataSource, userName)){
+ return Message.error("Don't have update permission for data source [没有数据源的更新权限]");
+ }
+ String dataSourceName = dataSource.getDataSourceName();
+ if (!Objects.equals(dataSourceName, storedDataSource.getDataSourceName())
+ && dataSourceInfoService.existDataSource(dataSourceName)){
+ return Message.error("The data source named: " + dataSourceName + " has been existed [数据源: " +dataSourceName + " 已经存在]");
+ }
+ dataSourceInfoService.updateDataSourceInfo(dataSource);
+ return Message.ok().data("update_id", dataSourceId);
+ }, "/data-source-manager/info/" + dataSourceId + "/json", "Fail to update data source[更新数据源失败]");
+ }
+
+ /**
+ * create or update parameter, save a version of parameter,return version id.
+ *
+ * @param params
+ * @param req
+ * @return
+ */
+ @RequestMapping(value = "/parameter/{datasource_id}/json", method = RequestMethod.POST)
+ public Message insertJsonParameter(
+ @PathVariable("datasource_id") Long datasourceId,
+ @RequestBody Map<String, Object> params,
+ HttpServletRequest req) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ Map<String, Object> connectParams = (Map) params.get("connectParams");
+ String comment = params.get("comment").toString();
+ String userName = SecurityFilter.getLoginUsername(req);
+
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfoBrief(datasourceId);
+ if (null == dataSource) {
+ throw new ErrorException(ServiceErrorCode.DATASOURCE_NOTFOUND_ERROR.getValue(), "datasource not found ");
+ }
+ if (!AuthContext.hasPermission(dataSource, userName)){
+ return Message.error("Don't have update permission for data source [没有数据源的更新权限]");
+ }
+ List<DataSourceParamKeyDefinition> keyDefinitionList = dataSourceRelateService
+ .getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
+ parameterValidator.validate(keyDefinitionList, connectParams);
+ //Encrypt password value type
+ RestfulApiHelper.encryptPasswordKey(keyDefinitionList, connectParams);
+
+ long versionId = dataSourceInfoService.insertDataSourceParameter(keyDefinitionList, datasourceId, connectParams, userName, comment);
+
+ return Message.ok().data("version", versionId);
+ }, "/data-source-manager/parameter/" + datasourceId + "/json", "Fail to insert data source parameter [保存数据源参数失败]");
+ }
+
+
+ /**
+ * get datasource detail, for current version
+ *
+ * @param dataSourceId
+ * @param request
+ * @return
+ */
+ @RequestMapping(value = "/info/{data_source_id}", method = RequestMethod.GET)
+ public Message getInfoByDataSourceId(@PathVariable("data_source_id") Long dataSourceId,
+ HttpServletRequest request) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfo(dataSourceId);
+ if (!AuthContext.hasPermission(dataSource, request)){
+ return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
+ }
+ // Decrypt
+ if (null != dataSource) {
+ RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
+ , dataSource.getConnectParams());
+ }
+ return Message.ok().data("info", dataSource);
+ }, "/data-source-manager/info/" + dataSourceId, "Fail to access data source[获取数据源信息失败]");
+ }
+
+ @RequestMapping(value = "/info/name/{data_source_name}", method = RequestMethod.GET)
+ public Message getInfoByDataSourceName(@PathVariable("data_source_name")String dataSourceName,
+ HttpServletRequest request) throws UnsupportedEncodingException {
+ return RestfulApiHelper.doAndResponse(() -> {
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfo(dataSourceName);
+ if (!AuthContext.hasPermission(dataSource, request)){
+ return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
+ }
+ // Decrypt
+ if (null != dataSource) {
+ RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
+ , dataSource.getConnectParams());
+ }
+ return Message.ok().data("info", dataSource);
+ }, "/data-source-manager/info/name/" + URLEncoder.encode(dataSourceName, "UTF-8") , "Fail to access data source[获取数据源信息失败]");
+ }
+
+ /**
+ * get datasource detail
+ *
+ * @param dataSourceId
+ * @param version
+ * @return
+ */
+ @RequestMapping( value = "/info/{data_source_id}/{version}", method = RequestMethod.GET)
+ public Message getInfoByDataSourceIdAndVersion(@PathVariable("data_source_id") Long dataSourceId,
+ @PathVariable("version") Long version, HttpServletRequest request) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfo(dataSourceId, version);
+ if (!AuthContext.hasPermission(dataSource, request)){
+ return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
+ }
+ // Decrypt
+ if (null != dataSource) {
+ RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
+ , dataSource.getConnectParams());
+ }
+ return Message.ok().data("info", dataSource);
+ }, "/data-source-manager/info/" + dataSourceId + "/" + version, "Fail to access data source[获取数据源信息失败]");
+ }
+
+ /**
+ * get verion list for datasource
+ *
+ * @param dataSourceId
+ * @param request
+ * @return
+ */
+ @RequestMapping( value = "/{data_source_id}/versions", method = RequestMethod.GET)
+ public Message getVersionList(@PathVariable("data_source_id") Long dataSourceId,
+ HttpServletRequest request) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
+ if (!AuthContext.hasPermission(dataSource, request)){
+ return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
+ }
+ List<DatasourceVersion> versions = dataSourceInfoService.getVersionList(dataSourceId);
+ // Decrypt
+ if (null != versions) {
+ versions.forEach(version -> {
+ RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
+ , version.getConnectParams());
+ });
+ }
+ return Message.ok().data("versions", versions);
+ }, "/data-source-manager/" + dataSourceId + "/versions", "Fail to access data source[获取数据源信息失败]");
+ }
+
+
+ @RequestMapping(value = "/publish/{datasource_id}/{version_id}", method = RequestMethod.POST)
+ public Message publishByDataSourceId(@PathVariable("datasource_id") Long dataSourceId,
+ @PathVariable("version_id") Long versionId,
+ HttpServletRequest request) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ //Get brief info
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
+ if (!AuthContext.hasPermission(dataSource, request)){
+ return Message.error("Don't have publish permission for data source [没有数据源的发布权限]");
+ }
+ int updateResult = dataSourceInfoService.publishByDataSourceId(dataSourceId, versionId);
+ if (0 == updateResult) {
+ return Message.error("publish error");
+ }
+ return Message.ok();
+ }, "/data-source-manager/publish/" + dataSourceId + "/" + versionId, "Fail to publish datasource[数据源版本发布失败]");
+ }
+
+
+ /**
+ * Dangerous operation!
+ *
+ * @param dataSourceId
+ * @return
+ */
+ @RequestMapping( value = "/info/{data_source_id}", method = RequestMethod.DELETE)
+ public Message removeDataSource(@PathVariable("data_source_id") Long dataSourceId, HttpServletRequest request) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ //Get brief info
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
+ if (!AuthContext.hasPermission(dataSource, request)){
+ return Message.error("Don't have delete permission for data source [没有数据源的删除权限]");
+ }
+ Long removeId = dataSourceInfoService.removeDataSourceInfo(dataSourceId, "");
+ if (removeId < 0) {
+ return Message.error("Fail to remove data source[删除数据源信息失败], [id:" + dataSourceId + "]");
+ }
+ return Message.ok().data("remove_id", removeId);
+ }, "/data-source-manager/info/" + dataSourceId, "Fail to remove data source[删除数据源信息失败]");
+ }
+
+ @RequestMapping( value = "/info/{data_source_id}/expire", method = RequestMethod.PUT)
+ public Message expireDataSource(@PathVariable("data_source_id") Long dataSourceId, HttpServletRequest request) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ //Get brief info
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfoBrief(dataSourceId);
+ if (!AuthContext.hasPermission(dataSource, request)){
+ return Message.error("Don't have operation permission for data source [没有数据源的操作权限]");
+ }
+ Long expireId = dataSourceInfoService.expireDataSource(dataSourceId);
+ if (expireId < 0) {
+ return Message.error("Fail to expire data source[数据源过期失败], [id:" + dataSourceId + "]");
+ }
+ return Message.ok().data("expire_id", expireId);
+ }, "/data-source-manager/info/" + dataSourceId + "/expire", "Fail to expire data source[数据源过期失败]");
+ }
+
+ /**
+ * get datasource connect params for publish version
+ * @param dataSourceId
+ * @param req
+ * @return
+ */
+ @RequestMapping( value = "/{data_source_id}/connect_params", method = RequestMethod.GET)
+ public Message getConnectParams(@PathVariable("data_source_id") Long dataSourceId,
+ HttpServletRequest req) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfoForConnect(dataSourceId);
+ if (!AuthContext.hasPermission(dataSource, req)){
+ return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
+ }
+ Map<String, Object> connectParams = dataSource.getConnectParams();
+ RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
+ , connectParams);
+ return Message.ok().data("connectParams", connectParams);
+
+ }, "/data-source-manager/" + dataSourceId + "/connect_params", "Fail to connect data source[连接数据源失败]");
+ }
+
+ @RequestMapping( value = "/name/{data_source_name}/connect_params", method = RequestMethod.GET)
+ public Message getConnectParams(@PathVariable("data_source_name") String dataSourceName,
+ HttpServletRequest req) throws UnsupportedEncodingException {
+ return RestfulApiHelper.doAndResponse(() -> {
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfoForConnect(dataSourceName);
+ if (!AuthContext.hasPermission(dataSource, req)){
+ return Message.error("Don't have query permission for data source [没有数据源的查询权限]");
+ }
+ Map<String, Object> connectParams = dataSource.getConnectParams();
+ RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
+ , connectParams);
+ return Message.ok().data("connectParams", connectParams);
+
+ }, "/data-source-manager/name/" + URLEncoder.encode(dataSourceName, "UTF-8") + "/connect_params", "Fail to connect data source[连接数据源失败]");
+ }
+
+ @RequestMapping( value = "/{data_source_id}/{version}/op/connect", method = RequestMethod.PUT)
+ public Message connectDataSource(@PathVariable("data_source_id") Long dataSourceId,
+ @PathVariable("version") Long version,
+ HttpServletRequest req) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ String operator = SecurityFilter.getLoginUsername(req);
+ DataSource dataSource = dataSourceInfoService.getDataSourceInfoForConnect(dataSourceId, version);
+ if (!AuthContext.hasPermission(dataSource, req)){
+ return Message.error("Don't have operation permission for data source [没有数据源的操作权限]");
+ }
+ String dataSourceTypeName = dataSource.getDataSourceType().getName();
+ String mdRemoteServiceName = MdmConfiguration.METADATA_SERVICE_APPLICATION.getValue();
+ Map<String, Object> connectParams = dataSource.getConnectParams();
+ RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId())
+ , connectParams);
+ metadataOperateService.doRemoteConnect(mdRemoteServiceName, dataSourceTypeName.toLowerCase(), operator, dataSource.getConnectParams());
+ return Message.ok().data("ok", true);
+ }, "/data_source/" + dataSourceId + "/" + version + "/op/connect", "Fail to connect data source[连接数据源失败]");
+ }
+
+ @RequestMapping(value = "/info", method = RequestMethod.GET)
+ public Message queryDataSource(@RequestParam("system") String createSystem,
+ @RequestParam("name") String dataSourceName,
+ @RequestParam("typeId") Long dataSourceTypeId,
+ @RequestParam("identifies") String identifies,
+ @RequestParam("currentPage") Integer currentPage,
+ @RequestParam("pageSize") Integer pageSize, HttpServletRequest req) {
+ return RestfulApiHelper.doAndResponse(() -> {
+ DataSourceVo dataSourceVo = new DataSourceVo(dataSourceName, dataSourceTypeId,
+ identifies, createSystem);
+ dataSourceVo.setCurrentPage(null != currentPage ? currentPage : 1);
+ dataSourceVo.setPageSize(null != pageSize ? pageSize : 10);
+ String permissionUser = SecurityFilter.getLoginUsername(req);
+ if (AuthContext.isAdministrator(permissionUser)){
+ permissionUser = null;
+ }
+ dataSourceVo.setPermissionUser(permissionUser);
+ PageInfo<DataSource> pageInfo = dataSourceInfoService.queryDataSourceInfoPage(dataSourceVo);
+ List<DataSource> queryList = pageInfo.getList();
+ return Message.ok().data("query_list", queryList).data("totalPage", pageInfo.getTotal());
+ }, "/data-source-manager/info", "Fail to query page of data source[查询数据源失败]");
+ }
+
+ /**
+ * Inner method to insert data source
+ *
+ * @param dataSource data source entity
+ * @throws ParameterValidateException
+ */
+ private void insertDataSource(DataSource dataSource) throws ErrorException {
+ List<DataSourceParamKeyDefinition> keyDefinitionList = dataSourceRelateService
+ .getKeyDefinitionsByType(dataSource.getDataSourceTypeId());
+ dataSource.setKeyDefinitions(keyDefinitionList);
+ dataSourceInfoService.saveDataSourceInfo(dataSource);
+ }
+}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
index 452bb93..17dd062 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/DataSourceOperateRestfulApi.java
@@ -34,6 +34,10 @@ import org.apache.commons.lang.StringUtils;
//import org.glassfish.jersey.media.multipart.FormDataMultiPart;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
@@ -41,18 +45,12 @@ import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.validation.Validator;
import javax.validation.groups.Default;
-import javax.ws.rs.*;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
import java.util.List;
import java.util.Map;
import java.util.Set;
-@Path("/data_source/op/")
-@Consumes(MediaType.APPLICATION_JSON)
-@Produces(MediaType.APPLICATION_JSON)
-@Component
+@RestController
+@RequestMapping(value = "/data-source-manager/op/", produces = {"application/json"})
public class DataSourceOperateRestfulApi {
@Autowired
@@ -77,10 +75,9 @@ public class DataSourceOperateRestfulApi {
this.formDataTransformer = FormDataTransformerFactory.buildCustom();
}
- @POST
- @Path("/connect/json")
- public Message connect(DataSource dataSource,
- @Context HttpServletRequest request){
+ @RequestMapping( value = "/connect/json", method = RequestMethod.POST)
+ public Message connect(@RequestBody DataSource dataSource,
+ HttpServletRequest request){
return RestfulApiHelper.doAndResponse(() -> {
String operator = SecurityFilter.getLoginUsername(request);
//Bean validation
@@ -90,7 +87,7 @@ public class DataSourceOperateRestfulApi {
}
doConnect(operator, dataSource);
return Message.ok().data("ok", true);
- }, "/data_source/op/connect/json","");
+ }, "/data-source-manager/op/connect/json","");
}
// @POST
@@ -102,7 +99,7 @@ public class DataSourceOperateRestfulApi {
// DataSource dataSource = formDataTransformer.transformToObject(multiPartForm, DataSource.class, beanValidator);
// doConnect(operator, dataSource);
// return Message.ok().data("ok", true);
-// }, "/data_source/op/connect/form","");
+// }, "/data-source-manager/op/connect/form","");
// }
/**
@@ -123,8 +120,7 @@ public class DataSourceOperateRestfulApi {
Map<String,Object> connectParams = dataSource.getConnectParams();
parameterValidator.validate(keyDefinitionList, connectParams);
DataSourceType dataSourceType = dataSourceRelateService.getDataSourceType(dataSource.getDataSourceTypeId());
- metadataOperateService.doRemoteConnect(MdmConfiguration.METADATA_SERVICE_APPLICATION.getValue()
- + (StringUtils.isNotBlank(dataSourceType.getName())?("-" +dataSourceType.getName().toLowerCase()) : ""),
+ metadataOperateService.doRemoteConnect(MdmConfiguration.METADATA_SERVICE_APPLICATION.getValue(),dataSourceType.getName().toLowerCase(),
operator, dataSource.getConnectParams());
}
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/RestfulApiHelper.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/RestfulApiHelper.java
similarity index 96%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/RestfulApiHelper.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/RestfulApiHelper.java
index 2a0dd28..5272a63 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/RestfulApiHelper.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/RestfulApiHelper.java
@@ -18,7 +18,7 @@
package org.apache.linkis.datasourcemanager.core.restful;
import org.apache.linkis.common.exception.WarnException;
-import org.apache.linkis.datasourcemanager.common.DsmConfiguration;
+import org.apache.linkis.datasourcemanager.common.auth.AuthContext;
import org.apache.linkis.datasourcemanager.common.domain.DataSourceParamKeyDefinition;
import org.apache.linkis.datasourcemanager.common.util.CryptoUtils;
import org.apache.linkis.datasourcemanager.core.restful.exception.BeanValidationExceptionMapper;
@@ -41,7 +41,7 @@ public class RestfulApiHelper {
* @return
*/
public static boolean isAdminUser(String userName){
- List<String> userList = Arrays.asList(DsmConfiguration.DSM_ADMIN_USER_LIST.getValue().split(","));
+ List<String> userList = Arrays.asList(AuthContext.AUTH_ADMINISTRATOR.getValue().split(","));
return userList.contains(userName);
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/exception/BeanValidationExceptionMapper.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/exception/BeanValidationExceptionMapper.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/exception/BeanValidationExceptionMapper.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/restful/exception/BeanValidationExceptionMapper.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/BmlAppService.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/BmlAppService.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/BmlAppService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/BmlAppService.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
similarity index 88%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
index 1836466..14c69c0 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceInfoService.java
@@ -52,6 +52,12 @@ public interface DataSourceInfoService {
DataSource getDataSourceInfo(Long dataSourceId);
/**
+ * Get data source for current version by data source name
+ * @param dataSourceName data source name
+ * @return data source entity
+ */
+ DataSource getDataSourceInfo(String dataSourceName);
+ /**
* Get data source
* @param dataSourceId id
* @return data source entity
@@ -170,6 +176,13 @@ public interface DataSourceInfoService {
DataSource getDataSourceInfoForConnect(Long dataSourceId);
/**
+ * get datasource info for connect for published version by name, if there is a dependency environment,
+ * merge datasource parameter and environment parameter.
+ * @param dataSourceName
+ * @return
+ */
+ DataSource getDataSourceInfoForConnect(String dataSourceName);
+ /**
* get datasource info for connect, if there is a dependency environment,
* merge datasource parameter and environment parameter.
*
@@ -179,5 +192,10 @@ public interface DataSourceInfoService {
*/
DataSource getDataSourceInfoForConnect(Long dataSourceId, Long version);
-
+ /**
+ * Check if exist data source
+ * @param dataSourceName data source name
+ * @return boolean
+ */
+ boolean existDataSource(String dataSourceName);
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceOpService.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceOpService.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceOpService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceOpService.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceRelateService.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceRelateService.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceRelateService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/DataSourceRelateService.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/MetadataOperateService.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/MetadataOperateService.java
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/MetadataOperateService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/MetadataOperateService.java
index d29842b..93bb73f 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/MetadataOperateService.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/MetadataOperateService.java
@@ -30,9 +30,10 @@ public interface MetadataOperateService {
/**
* Build connection with parameters in request
* @param mdRemoteServiceName metadata remote service
+ * @param dataSourceType dataSource type
* @param operator operate user
* @param connectParams parameters
* @throws ErrorException
*/
- void doRemoteConnect(String mdRemoteServiceName, String operator, Map<String, Object> connectParams) throws WarnException;
+ void doRemoteConnect(String mdRemoteServiceName, String dataSourceType, String operator, Map<String, Object> connectParams) throws WarnException;
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/BmlAppServiceImpl.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/BmlAppServiceImpl.java
similarity index 99%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/BmlAppServiceImpl.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/BmlAppServiceImpl.java
index fc18028..0f2fd14 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/BmlAppServiceImpl.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/BmlAppServiceImpl.java
@@ -35,6 +35,7 @@ import java.io.InputStream;
/**
* Wrap the communication between Bml service
+ * // TODO RPCException defined
*/
@Service
@RefreshScope
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
similarity index 85%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
index d1e9b41..83b1551 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceInfoServiceImpl.java
@@ -21,6 +21,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.linkis.common.exception.ErrorException;
import org.apache.linkis.datasourcemanager.common.domain.DatasourceVersion;
+import org.apache.linkis.datasourcemanager.common.exception.JsonErrorException;
import org.apache.linkis.datasourcemanager.core.dao.*;
import org.apache.linkis.datasourcemanager.core.formdata.FormStreamContent;
import org.apache.linkis.datasourcemanager.common.util.json.Json;
@@ -39,10 +40,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
import java.util.function.Consumer;
import java.util.stream.Collectors;
@@ -92,15 +90,29 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
@Override
public DataSource getDataSourceInfo(Long dataSourceId) {
DataSource dataSource = dataSourceDao.selectOneDetail(dataSourceId);
- String parameter = dataSourceVersionDao.selectOneVersion(dataSourceId, dataSource.getVersionId());
- dataSource.setParameter(parameter);
+ if (Objects.nonNull(dataSource)){
+ String parameter = dataSourceVersionDao.selectOneVersion(dataSourceId, dataSource.getVersionId());
+ dataSource.setParameter(parameter);
+ }
+ return dataSource;
+ }
+
+ @Override
+ public DataSource getDataSourceInfo(String dataSourceName) {
+ DataSource dataSource = dataSourceDao.selectOneDetailByName(dataSourceName);
+ if (Objects.nonNull(dataSource)){
+ String parameter = dataSourceVersionDao.selectOneVersion(dataSource.getId(), dataSource.getVersionId());
+ dataSource.setParameter(parameter);
+ }
return dataSource;
}
@Override
public DataSource getDataSourceInfo(Long dataSourceId, Long version) {
DataSource dataSource = dataSourceDao.selectOneDetail(dataSourceId);
- String parameter = dataSourceVersionDao.selectOneVersion(dataSourceId, version);
- dataSource.setParameter(parameter);
+ if (Objects.nonNull(dataSource)) {
+ String parameter = dataSourceVersionDao.selectOneVersion(dataSourceId, version);
+ dataSource.setParameter(parameter);
+ }
return dataSource;
}
@@ -114,18 +126,40 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
@Override
public DataSource getDataSourceInfoForConnect(Long dataSourceId) {
DataSource dataSource = dataSourceDao.selectOneDetail(dataSourceId);
- String parameter = dataSourceVersionDao.selectOneVersion(dataSourceId, dataSource.getPublishedVersionId());
- return mergeParams(dataSource, parameter);
+ if (Objects.nonNull(dataSource)) {
+ // TODO dataSource.getPublishedVersionId() NullPoint Exception
+ String parameter = dataSourceVersionDao.selectOneVersion(dataSourceId, dataSource.getPublishedVersionId());
+ return mergeParams(dataSource, parameter);
+ }
+ return null;
+ }
+
+ @Override
+ public DataSource getDataSourceInfoForConnect(String dataSourceName) {
+ DataSource dataSource = dataSourceDao.selectOneDetailByName(dataSourceName);
+ if (Objects.nonNull(dataSource)) {
+ String parameter = dataSourceVersionDao.selectOneVersion(dataSource.getId(), dataSource.getPublishedVersionId());
+ return mergeParams(dataSource, parameter);
+ }
+ return null;
}
private DataSource mergeParams(DataSource dataSource, String parameter) {
dataSource.setParameter(parameter);
- Map<String, String> connectParams = Objects.requireNonNull(Json.fromJson(parameter, Map.class));
- if(connectParams.containsKey("envId")) {
- Long envId = Long.valueOf(connectParams.get("envId"));
- // remove envId for connect
- dataSource.getConnectParams().remove("envId");
- addEnvParamsToDataSource(envId, dataSource);
+ if (StringUtils.isNotBlank(parameter)) {
+ Map<String, String> connectParams = new HashMap<>();
+ try {
+ connectParams = Objects.requireNonNull(Json.fromJson(parameter, Map.class));
+ } catch (JsonErrorException e) {
+ LOG.warn("Unrecognized the parameter: " + parameter +" in data source, id: [" + dataSource.getId() + "]", e);
+ // TODO throws Exception defined Exception
+ }
+ if (connectParams.containsKey("envId")) {
+ Long envId = Long.valueOf(connectParams.get("envId"));
+ // remove envId for connect
+ dataSource.getConnectParams().remove("envId");
+ addEnvParamsToDataSource(envId, dataSource);
+ }
}
return dataSource;
}
@@ -141,8 +175,20 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
@Override
public DataSource getDataSourceInfoForConnect(Long dataSourceId, Long version) {
DataSource dataSource = dataSourceDao.selectOneDetail(dataSourceId);
- String parameter = dataSourceVersionDao.selectOneVersion(dataSourceId, version);
- return mergeParams(dataSource, parameter);
+ if (Objects.nonNull(dataSource)) {
+ String parameter = dataSourceVersionDao.selectOneVersion(dataSourceId, version);
+ return mergeParams(dataSource, parameter);
+ }
+ return null;
+ }
+
+ @Override
+ public boolean existDataSource(String dataSourceName) {
+ if (StringUtils.isNotBlank(dataSourceName)){
+ DataSource dataSource = dataSourceDao.selectOneByName(dataSourceName);
+ return Objects.nonNull(dataSource);
+ }
+ return false;
}
@Override
@@ -160,6 +206,7 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
if (affect > 0) {
// delete parameter version
int versionNum = dataSourceVersionDao.removeFromDataSourceId(dataSourceId);
+ // TODO throws Exception
return dataSourceId;
}
}
@@ -218,6 +265,7 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
Map<String, Object> connectParams = dataSourceEnv.getConnectParams();
List<DataSourceParamKeyDefinition> keyDefinitions = dataSourceParamKeyDao
.listByDataSourceTypeAndScope(dataSourceEnv.getDataSourceTypeId(), DataSourceParamKeyDefinition.Scope.ENV);
+ // TODO throws ERROR Exception
keyDefinitions.forEach(keyDefinition -> {
if (keyDefinition.getValueType() == DataSourceParamKeyDefinition.ValueType.FILE
&& connectParams.containsKey(keyDefinition.getKey())) {
@@ -227,6 +275,7 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
.valueOf(connectParams.get(keyDefinition.getKey())));
} catch (Exception e) {
//Ignore remove error
+ // TODO LOG and throws LinkisRuntimeException
}
}
});
@@ -322,6 +371,7 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
// 1. set version + 1
Long latestVersion = dataSourceVersionDao.getLatestVersion(datasourceId);
+ // TODO NullPoint latestVersion
long newVersionId = latestVersion + 1;
datasourceVersion.setVersionId(newVersionId);
@@ -446,6 +496,7 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
if (e.getCause() instanceof ErrorException) {
throw (ErrorException) e.getCause();
}
+ // TODO wrapped Exception
throw e;
}
}
@@ -468,7 +519,8 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
: bmlAppService.clientUpdateResource(userName, resourceId, inputStream);
} catch (Exception e) {
//Wrap with runtime exception
- throw new RuntimeException(e);
+// throw new RuntimeException(e);
+ // TODO defined Exception
}
}
return null;
@@ -489,6 +541,7 @@ public class DataSourceInfoServiceImpl implements DataSourceInfoService {
bmlAppService.clientRemoveResource(userName, resourceId);
} catch (Exception ie) {
//ignore
+ // TODO throws RPC Exception
}
}
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceRelateServiceImpl.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceRelateServiceImpl.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceRelateServiceImpl.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/DataSourceRelateServiceImpl.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/MetadataOperateServiceImpl.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/MetadataOperateServiceImpl.java
similarity index 91%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/MetadataOperateServiceImpl.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/MetadataOperateServiceImpl.java
index e2263b7..2077229 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/MetadataOperateServiceImpl.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/service/impl/MetadataOperateServiceImpl.java
@@ -45,7 +45,7 @@ public class MetadataOperateServiceImpl implements MetadataOperateService {
@Autowired
private BmlAppService bmlAppService;
@Override
- public void doRemoteConnect(String mdRemoteServiceName ,
+ public void doRemoteConnect(String mdRemoteServiceName , String dataSourceType,
String operator, Map<String, Object> connectParams) throws WarnException {
List<String> uploadedResources = new ArrayList<>();
try{
@@ -66,6 +66,7 @@ public class MetadataOperateServiceImpl implements MetadataOperateService {
uploadedResources.add(resourceId);
entry.setValue(resourceId);
} catch (ErrorException e) {
+ // TODO redefined a exception extends warnException
throw new WarnException(BML_SERVICE_ERROR.getValue(), "Fail to operate file in request[上传文件处理失败]");
}
}
@@ -76,7 +77,7 @@ public class MetadataOperateServiceImpl implements MetadataOperateService {
//Get a sender
Sender sender = Sender.getSender(mdRemoteServiceName);
try {
- Object object = sender.ask(new MetadataConnect(operator, connectParams, ""));
+ Object object = sender.ask(new MetadataConnect(dataSourceType, operator, connectParams, ""));
if (object instanceof MetadataResponse) {
MetadataResponse response = (MetadataResponse) object;
if (!response.status()) {
@@ -87,10 +88,10 @@ public class MetadataOperateServiceImpl implements MetadataOperateService {
throw new WarnException(REMOTE_METADATA_SERVICE_ERROR.getValue(),
"Remote Service Error[远端服务出错, 联系运维处理]");
}
- }catch(Throwable t){
+ }catch(Exception t){
if(!(t instanceof WarnException)) {
throw new WarnException(REMOTE_METADATA_SERVICE_ERROR.getValue(),
- "Remote Service Error[远端服务出错, 联系运维处理]");
+ "Remote Service Error[远端服务出错, 联系运维处理], message:[" + t.getMessage() + "]");
}
throw t;
}
@@ -102,6 +103,7 @@ public class MetadataOperateServiceImpl implements MetadataOperateService {
bmlAppService.clientRemoveResource(operator, resourceId);
}catch(Exception e){
//ignore
+ //TODO add strategy to fix the failure of deleting
}
});
}
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/DataSourceParameterValidator.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/DataSourceParameterValidator.java
new file mode 100644
index 0000000..2f9704c
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/DataSourceParameterValidator.java
@@ -0,0 +1,106 @@
+/*
+ * 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.linkis.datasourcemanager.core.validate;
+
+import org.apache.linkis.datasourcemanager.common.domain.DataSourceParamKeyDefinition;
+import org.apache.linkis.datasourcemanager.core.validate.strategy.RegExpParameterValidateStrategy;
+import org.apache.linkis.datasourcemanager.core.validate.strategy.TypeParameterValidateStrategy;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+@Component
+public class DataSourceParameterValidator implements ParameterValidator {
+ @PostConstruct
+ public void initToRegister(){
+ registerStrategy(new TypeParameterValidateStrategy());
+ registerStrategy(new RegExpParameterValidateStrategy());
+ }
+ /**
+ * strategies list
+ */
+ private List<ParameterValidateStrategy> strategies = new ArrayList<>();
+
+ @Override
+ public void registerStrategy(ParameterValidateStrategy strategy) {
+ strategies.add(strategy);
+ }
+
+ @Override
+ public void validate(List<DataSourceParamKeyDefinition> paramKeyDefinitions,
+ Map<String, Object> parameters) throws ParameterValidateException{
+ //Covert parameters map to <DataSourceParamKeyDefinition.getId(), Object>
+ Map<DataSourceParamKeyDefinition, Object> defToValue = paramKeyDefinitions.stream().filter(def ->
+ Objects.nonNull(parameters.get(def.getKey())))
+ .collect(Collectors.toMap(def -> def, def ->{
+ Object keyValue = parameters.get(def.getKey());
+ parameters.put(def.getKey(), keyValue);
+ return keyValue;
+ }));
+ for(DataSourceParamKeyDefinition def : paramKeyDefinitions){
+ //Deal with cascade relation
+ boolean needValidate = false;
+ if(Objects.nonNull(def.getRefId())){
+ DataSourceParamKeyDefinition refDef = new DataSourceParamKeyDefinition();
+ refDef.setId(def.getRefId());
+ Object refValue = defToValue.get(refDef);
+ if(Objects.nonNull(refValue) && Objects.equals(refValue, def.getRefValue())){
+ needValidate = true;
+ }
+ }else{
+ needValidate = true;
+ }
+ if (needValidate){
+ String keyName = def.getKey();
+ Object keyValue = parameters.get(def.getKey());
+ DataSourceParamKeyDefinition.ValueType valueType = def.getValueType();
+ if(null == keyValue ){
+ String defaultValue = def.getDefaultValue();
+ if(StringUtils.isNotBlank(defaultValue) &&
+ valueType == DataSourceParamKeyDefinition.ValueType.SELECT){
+ defaultValue = defaultValue.split(",")[0].trim();
+ }
+ keyValue = defaultValue;
+ }
+ if( null == keyValue || StringUtils.isBlank(String.valueOf(keyValue))){
+ if(def.isRequire()) {
+ throw new ParameterValidateException("Param Validate Failed[参数校验出错], [the value of key: '"
+ + keyName + " cannot be blank']");
+ }
+ continue;
+ }
+ for(ParameterValidateStrategy validateStrategy : strategies){
+ if(validateStrategy.accept(def.getValueType())) {
+ validateStrategy.validate(def, keyValue);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public List<ParameterValidateStrategy> getStrategies() {
+ return strategies;
+ }
+}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateException.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateException.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateException.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateException.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateStrategy.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateStrategy.java
similarity index 95%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateStrategy.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateStrategy.java
index cd33dcb..1f2cfb9 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateStrategy.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidateStrategy.java
@@ -37,5 +37,5 @@ public interface ParameterValidateStrategy {
* @return new value
*/
Object validate(DataSourceParamKeyDefinition keyDefinition,
- Object actualValue) throws ParameterValidateException;
+ Object actualValue) throws ParameterValidateException;
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidator.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidator.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidator.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/ParameterValidator.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/RegExpParameterValidateStrategy.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/RegExpParameterValidateStrategy.java
similarity index 91%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/RegExpParameterValidateStrategy.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/RegExpParameterValidateStrategy.java
index 5e42ce5..8bae5ac 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/RegExpParameterValidateStrategy.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/RegExpParameterValidateStrategy.java
@@ -33,7 +33,10 @@ public class RegExpParameterValidateStrategy implements ParameterValidateStrateg
@Override
public boolean accept(DataSourceParamKeyDefinition.ValueType valueType) {
- return valueType == DataSourceParamKeyDefinition.ValueType.EMAIL || valueType == DataSourceParamKeyDefinition.ValueType.TEXT || valueType == DataSourceParamKeyDefinition.ValueType.LIST;
+ return valueType == DataSourceParamKeyDefinition.ValueType.EMAIL ||
+ valueType == DataSourceParamKeyDefinition.ValueType.TEXT ||
+ valueType == DataSourceParamKeyDefinition.ValueType.LIST ||
+ valueType == DataSourceParamKeyDefinition.ValueType.TEXTAREA;
}
@Override
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/TypeParameterValidateStrategy.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/TypeParameterValidateStrategy.java
similarity index 98%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/TypeParameterValidateStrategy.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/TypeParameterValidateStrategy.java
index 27cda7e..704af74 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/TypeParameterValidateStrategy.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/validate/strategy/TypeParameterValidateStrategy.java
@@ -18,10 +18,10 @@
package org.apache.linkis.datasourcemanager.core.validate.strategy;
import org.apache.linkis.datasourcemanager.common.domain.DataSourceParamKeyDefinition;
+import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.linkis.datasourcemanager.core.formdata.FormStreamContent;
import org.apache.linkis.datasourcemanager.core.validate.ParameterValidateException;
import org.apache.linkis.datasourcemanager.core.validate.ParameterValidateStrategy;
-import org.apache.linkis.metadatamanager.common.Json;
import java.util.List;
import java.util.Map;
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceEnvVo.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceEnvVo.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceEnvVo.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceEnvVo.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceVo.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceVo.java
similarity index 91%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceVo.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceVo.java
index 6f72681..c80b284 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceVo.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/DataSourceVo.java
@@ -34,6 +34,8 @@ public class DataSourceVo extends PageViewVo{
private String createSystem;
+ private String permissionUser;
+
public DataSourceVo(){
}
@@ -79,4 +81,12 @@ public class DataSourceVo extends PageViewVo{
public void setCreateIdentifyList(List<String> createIdentifyList) {
this.createIdentifyList = createIdentifyList;
}
+
+ public String getPermissionUser() {
+ return permissionUser;
+ }
+
+ public void setPermissionUser(String permissionUser) {
+ this.permissionUser = permissionUser;
+ }
}
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/PageViewVo.java b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/PageViewVo.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/PageViewVo.java
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/java/org/apache/linkis/datasourcemanager/core/vo/PageViewVo.java
diff --git a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/scala/org/apache/linkis/datasourcemanager/core/receivers/DsmReceiver.scala b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/scala/org/apache/linkis/datasourcemanager/core/receivers/DsmReceiver.scala
similarity index 78%
rename from linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/scala/org/apache/linkis/datasourcemanager/core/receivers/DsmReceiver.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/scala/org/apache/linkis/datasourcemanager/core/receivers/DsmReceiver.scala
index 1fd4741..b64bc04 100644
--- a/linkis-public-enhancements/linkis-datasource/datasourcemanager/server/src/main/scala/org/apache/linkis/datasourcemanager/core/receivers/DsmReceiver.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-datasource-manager/server/src/main/scala/org/apache/linkis/datasourcemanager/core/receivers/DsmReceiver.scala
@@ -42,19 +42,24 @@ class DsmReceiver extends Receiver with Logging{
@Autowired
private var dataSourceRelateService: DataSourceRelateService = _
- override def receive(message: Any, sender: Sender): Unit = ???
+ override def receive(message: Any, sender: Sender): Unit = {}
override def receiveAndReply(message: Any, sender: Sender): Any = message match {
- case DsInfoQueryRequest(id, system) =>
- if ( id.toLong > 0 && Some(system).isDefined ) {
+ case DsInfoQueryRequest(id, name, system) =>
+ if ((Option(id).isDefined || Option(name).isDefined) && Some(system).isDefined) {
Utils.tryCatch {
- val dataSource: DataSource = dataSourceInfoService.getDataSourceInfo(id.toLong)
- if ( null != dataSource ) {
+ var dataSource: DataSource = null
+ if (Option(name).isDefined) {
+ dataSource = dataSourceInfoService.getDataSourceInfoForConnect(name)
+ } else if (id.toLong > 0) {
+ dataSource = dataSourceInfoService.getDataSourceInfoForConnect(id.toLong)
+ }
+ if (null != dataSource) {
RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId),
dataSource.getConnectParams)
DsInfoResponse(status = true, dataSource.getDataSourceType.getName,
dataSource.getConnectParams, dataSource.getCreateUser)
- }else DsInfoResponse(status = true, "", new util.HashMap[String, Object](), "")
+ } else DsInfoResponse(status = true, "", new util.HashMap[String, Object](), "")
}{
case e: Exception => logger.error(s"Fail to get data source information, id:$id system:$system", e)
DsInfoResponse(status = false, "", new util.HashMap[String, Object](), "")
@@ -68,11 +73,16 @@ class DsmReceiver extends Receiver with Logging{
}
override def receiveAndReply(message: Any, duration: Duration, sender: Sender): Any = message match {
- case DsInfoQueryRequest(id, system) =>
- if ( id.toLong > 0 && Some(system).isDefined ) {
+ case DsInfoQueryRequest(id, name, system) =>
+ if ((Option(id).isDefined || Option(name).isDefined) && Some(system).isDefined) {
Utils.tryCatch {
- val dataSource: DataSource = dataSourceInfoService.getDataSourceInfo(id.toLong)
- if ( null != dataSource ) {
+ var dataSource: DataSource = null
+ if (Option(name).isDefined) {
+ dataSource = dataSourceInfoService.getDataSourceInfoForConnect(name)
+ } else if (id.toLong > 0) {
+ dataSource = dataSourceInfoService.getDataSourceInfoForConnect(id.toLong)
+ }
+ if (null != dataSource) {
RestfulApiHelper.decryptPasswordKey(dataSourceRelateService.getKeyDefinitionsByType(dataSource.getDataSourceTypeId),
dataSource.getConnectParams)
DsInfoResponse(status = true, dataSource.getDataSourceType.getName,
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/pom.xml
similarity index 89%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/pom.xml
index 6a07f00..ae4aac5 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/pom.xml
@@ -25,7 +25,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>linkis-metadatamanager-common</artifactId>
+ <artifactId>linkis-metadata-manager-common</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -35,6 +35,7 @@
<dependency>
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-common</artifactId>
+ <scope>provided</scope>
<version>${linkis.version}</version>
<exclusions>
<exclusion>
@@ -48,6 +49,12 @@
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-rpc</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.linkis</groupId>
+ <artifactId>linkis-datasource-manager-common</artifactId>
+ <version>${linkis.version}</version>
</dependency>
</dependencies>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/MdmConfiguration.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/MdmConfiguration.java
similarity index 97%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/MdmConfiguration.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/MdmConfiguration.java
index 50f29be..da7c900 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/MdmConfiguration.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/MdmConfiguration.java
@@ -25,5 +25,5 @@ public class MdmConfiguration {
CommonVars.apply("wds.linkis.server.mdm.service.app.name", "linkis-ps-metadatamanager");
public static CommonVars<String> DATA_SOURCE_SERVICE_APPLICATION =
- CommonVars.apply("wds.linkis.server.dsm.app.name", "linkis-ps-datasourcemanager");
+ CommonVars.apply("wds.linkis.server.dsm.app.name", "linkis-ps-data-source-manager");
}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheConfiguration.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheConfiguration.java
similarity index 83%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheConfiguration.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheConfiguration.java
index 59ab207..3234f59 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheConfiguration.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheConfiguration.java
@@ -22,8 +22,14 @@ import org.apache.linkis.common.conf.CommonVars;
public class CacheConfiguration {
public static CommonVars<Long> CACHE_MAX_SIZE =
- CommonVars.apply("wds.linkis.server.mdm.service.cache.size", 1000L);
+ CommonVars.apply("wds.linkis.server.mdm.service.cache.max-size", 1000L);
public static CommonVars<Long> CACHE_EXPIRE_TIME =
CommonVars.apply("wds.linkis.server.mdm.service.cache.expire", 600L);
+
+ /**
+ * Make a pool for each cache element
+ */
+ public static final CommonVars<Integer> CACHE_IN_POOL_SIZE = CommonVars
+ .apply("wds.linkis.server.mdm.service.cache.in-pool.size", 5);
}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheManager.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheManager.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheManager.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/CacheManager.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/ConnCacheManager.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/ConnCacheManager.java
similarity index 68%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/ConnCacheManager.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/ConnCacheManager.java
index 7628588..023b1b3 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/ConnCacheManager.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/cache/ConnCacheManager.java
@@ -24,34 +24,40 @@ import java.util.concurrent.TimeUnit;
public class ConnCacheManager implements CacheManager {
private ConcurrentHashMap<String, Cache> cacheStore = new ConcurrentHashMap<>();
+ private static CacheManager manager;
private ConnCacheManager(){
}
public static CacheManager custom(){
- return new ConnCacheManager();
+ if (null == manager){
+ synchronized (ConnCacheManager.class){
+ if (null == manager){
+ manager = new ConnCacheManager();
+ }
+ }
+ }
+ return manager;
}
@Override
+ @SuppressWarnings("unchecked")
public <V> Cache<String, V> buildCache(String cacheId, RemovalListener<String, V> removalListener) {
- Cache<String, V> vCache = CacheBuilder.newBuilder()
- .maximumSize(CacheConfiguration.CACHE_MAX_SIZE.getValue())
- .expireAfterWrite(CacheConfiguration.CACHE_EXPIRE_TIME.getValue(), TimeUnit.SECONDS)
- .removalListener(removalListener)
- .build();
- cacheStore.putIfAbsent(cacheId, vCache);
- return vCache;
+ return cacheStore.computeIfAbsent(cacheId, id -> CacheBuilder.newBuilder()
+ .maximumSize(CacheConfiguration.CACHE_MAX_SIZE.getValue())
+ .expireAfterWrite(CacheConfiguration.CACHE_EXPIRE_TIME.getValue(), TimeUnit.SECONDS)
+ .removalListener(removalListener)
+ .build());
}
@Override
+ @SuppressWarnings("unchecked")
public <V> LoadingCache<String, V> buildCache(String cacheId, CacheLoader<String, V> loader,
RemovalListener<String, V> removalListener) {
- LoadingCache<String, V> vCache = CacheBuilder.newBuilder()
+ return (LoadingCache<String, V>)cacheStore.computeIfAbsent(cacheId, id -> CacheBuilder.newBuilder()
.maximumSize(CacheConfiguration.CACHE_MAX_SIZE.getValue())
.expireAfterWrite(CacheConfiguration.CACHE_EXPIRE_TIME.getValue(), TimeUnit.SECONDS)
.removalListener(removalListener)
- .build(loader);
- cacheStore.putIfAbsent(cacheId, vCache);
- return vCache;
+ .build(loader));
}
}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/domain/MetaColumnInfo.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/domain/MetaColumnInfo.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/domain/MetaColumnInfo.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/domain/MetaColumnInfo.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/domain/MetaPartitionInfo.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/domain/MetaPartitionInfo.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/domain/MetaPartitionInfo.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/domain/MetaPartitionInfo.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaMethodInvokeException.java
similarity index 55%
copy from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java
copy to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaMethodInvokeException.java
index c723455..a3c795a 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaMethodInvokeException.java
@@ -5,28 +5,44 @@
* 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.linkis.metadatamanager.common.exception;
-import org.apache.linkis.common.exception.WarnException;
+import org.apache.linkis.common.exception.ErrorException;
-public class MetaRuntimeException extends WarnException {
- private static final int ERROR_CODE = 99900;
- public MetaRuntimeException(String desc) {
- super(ERROR_CODE, desc);
+/**
+ * Exception in invoking metadata service
+ */
+public class MetaMethodInvokeException extends ErrorException {
+ public MetaMethodInvokeException(int errCode, String desc, Throwable t) {
+ super(errCode, desc);
+ super.initCause(t);
}
- public MetaRuntimeException(String desc, String ip, int port, String serviceKind) {
- super(ERROR_CODE, desc, ip, port, serviceKind);
+ public MetaMethodInvokeException(String method, Object[] args, int errCode, String desc, Throwable t) {
+ this(errCode, desc, t);
+ this.method = method;
+ this.args = args;
}
+ private String method;
+
+ private Object[] args;
+
+ public String getMethod() {
+ return method;
+ }
+
+ public Object[] getArgs() {
+ return args;
+ }
}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java
similarity index 93%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java
index c723455..9686462 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/exception/MetaRuntimeException.java
@@ -21,8 +21,9 @@ import org.apache.linkis.common.exception.WarnException;
public class MetaRuntimeException extends WarnException {
private static final int ERROR_CODE = 99900;
- public MetaRuntimeException(String desc) {
+ public MetaRuntimeException(String desc, Throwable t) {
super(ERROR_CODE, desc);
+ super.initCause(t);
}
public MetaRuntimeException(String desc, String ip, int port, String serviceKind) {
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/AbstractMetaService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/AbstractMetaService.java
similarity index 71%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/AbstractMetaService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/AbstractMetaService.java
index 8b0a03f..a48c464 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/AbstractMetaService.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/AbstractMetaService.java
@@ -19,7 +19,8 @@ package org.apache.linkis.metadatamanager.common.service;
import com.google.common.cache.Cache;
import org.apache.linkis.common.exception.WarnException;
-import org.apache.linkis.metadatamanager.common.Json;
+import org.apache.linkis.datasourcemanager.common.util.json.Json;
+import org.apache.linkis.metadatamanager.common.cache.CacheConfiguration;
import org.apache.linkis.metadatamanager.common.cache.CacheManager;
import org.apache.linkis.metadatamanager.common.cache.ConnCacheManager;
import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo;
@@ -36,13 +37,15 @@ import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
import java.util.function.Function;
public abstract class AbstractMetaService<C extends Closeable> implements MetadataService {
private static final Logger LOG = LoggerFactory.getLogger(AbstractMetaService.class);
private static final String CONN_CACHE_REQ = "_STORED";
-
private CacheManager connCacheManager;
/**
@@ -147,46 +150,85 @@ public abstract class AbstractMetaService<C extends Closeable> implements Metada
throw new WarnException(-1, "This method is no supported");
}
- protected void close(C connection){
+ public void close(C connection){
try {
connection.close();
} catch (IOException e) {
- throw new MetaRuntimeException("Fail to close connection[关闭连接失败], [" + e.getMessage() + "]");
+ throw new MetaRuntimeException("Fail to close connection[关闭连接失败], [" + e.getMessage() + "]", e);
}
}
protected <R>R getConnAndRun(String operator, Map<String, Object> params, Function<C, R> action) {
String cacheKey = "";
+ MetadataConnection<C> connection = null;
try{
cacheKey = md5String(Json.toJson(params, null), "", 2);
- MetadataConnection<C> connection;
if(null != reqCache) {
- connection = reqCache.get(cacheKey, () -> getConnection(operator, params));
+ ConnectionCache<C> connectionCache = getConnectionInCache(reqCache, cacheKey, () -> getConnection(operator, params));
+ connection = connectionCache.connection;
+ // Update the actually cache key
+ cacheKey = connectionCache.cacheKey;
}else{
connection = getConnection(operator, params);
}
return run(connection, action);
}catch(Exception e){
LOG.error("Error to invoke meta service", e);
- if(StringUtils.isNotBlank(cacheKey)){
+ if(StringUtils.isNotBlank(cacheKey) && Objects.nonNull(reqCache)){
reqCache.invalidate(cacheKey);
}
- throw new MetaRuntimeException(e.getMessage());
+ throw new MetaRuntimeException(e.getMessage(), e);
+ }finally{
+ if (Objects.nonNull(connection) && connection.isLock() &&
+ connection.getLock().isHeldByCurrentThread()){
+ connection.getLock().unlock();
+ }
}
}
private <R>R run(MetadataConnection<C> connection, Function<C, R> action){
if(connection.isLock()){
- connection.getLock().lock();
- try{
+ if (!connection.getLock().isHeldByCurrentThread()){
+ connection.getLock().lock();
+ try{
+ return action.apply(connection.getConnection());
+ }finally{
+ connection.getLock().unlock();
+ }
+ } else {
return action.apply(connection.getConnection());
- }finally{
- connection.getLock().unlock();
}
}else{
return action.apply(connection.getConnection());
}
}
+ /**
+ * Get connection cache element
+ * @param cache cache entity
+ * @param cacheKey cache key
+ * @param callable callable function
+ * @return connection cache
+ * @throws ExecutionException exception in caching
+ */
+ private ConnectionCache<C> getConnectionInCache(Cache<String, MetadataConnection<C>> cache,
+ String cacheKey, Callable<? extends MetadataConnection<C>> callable) throws ExecutionException {
+ int poolSize = CacheConfiguration.CACHE_IN_POOL_SIZE.getValue();
+ if (poolSize <= 0){
+ poolSize = 1;
+ }
+ MetadataConnection<C> connection = null;
+ String cacheKeyInPool = cacheKey + "_0";
+ for (int i = 0; i < poolSize; i ++) {
+ connection = cache.get(cacheKeyInPool, callable);
+ if (!connection.isLock() || connection.getLock().tryLock()){
+ break;
+ }
+ cacheKeyInPool = cacheKey + "_" + i;
+ LOG.info("The connection cache: [" + cacheKeyInPool + "] has been occupied, now to find the other in pool");
+ }
+ return new ConnectionCache<>(cacheKeyInPool, connection);
+ }
+
private String md5String(String source, String salt, int iterator){
StringBuilder token = new StringBuilder();
try{
@@ -211,4 +253,24 @@ public abstract class AbstractMetaService<C extends Closeable> implements Metada
}
return token.toString();
}
+
+ /**
+ * Cache element
+ */
+ private static class ConnectionCache<C>{
+
+ public ConnectionCache(String cacheKey, MetadataConnection<C> connection){
+ this.cacheKey = cacheKey;
+ this.connection = connection;
+ }
+ /**
+ * Connection
+ */
+ MetadataConnection<C> connection;
+
+ /**
+ * Actual cacheKey
+ */
+ String cacheKey;
+ }
}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/BaseMetadataService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/BaseMetadataService.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/BaseMetadataService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/BaseMetadataService.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataConnection.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataConnection.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataConnection.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataConnection.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataDbService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataDbService.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataDbService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataDbService.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataService.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/java/org/apache/linkis/metadatamanager/common/service/MetadataService.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataOperateProtocol.scala b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataOperateProtocol.scala
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataOperateProtocol.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataOperateProtocol.scala
index 6dd937c..67c688d 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataOperateProtocol.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataOperateProtocol.scala
@@ -24,8 +24,8 @@ trait MetadataOperateProtocol {
}
/**
- * Request to do connect
- * @param version
- * @param params
+ * Request to do connect
+ * @param version
+ * @param params
*/
case class MetadataConnect(dataSourceType: String, operator: String, params: util.Map[String, Object], version: String) extends MetadataOperateProtocol
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataProtocol.scala b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataProtocol.scala
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataProtocol.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataProtocol.scala
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataQueryProtocol.scala b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataQueryProtocol.scala
similarity index 80%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataQueryProtocol.scala
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataQueryProtocol.scala
index f9a3d5a..9487e00 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataQueryProtocol.scala
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/common/src/main/scala/org/apache/linkis/metadatamanager/common/protocol/MetadataQueryProtocol.scala
@@ -24,38 +24,38 @@ trait MetadataQueryProtocol {
}
/**
- * Request to get database list
- * @param params
+ * Request to get database list
+ * @param params
*/
case class MetaGetDatabases(params: util.Map[String, Object], operator: String) extends MetadataQueryProtocol
/**
- * Request to get table list
- * @param params
+ * Request to get table list
+ * @param params
*/
case class MetaGetTables(params: util.Map[String, Object], database: String, operator: String) extends MetadataQueryProtocol
/**
- * Request to get table properties
- * @param params
- * @param database
- * @param table
+ * Request to get table properties
+ * @param params
+ * @param database
+ * @param table
*/
case class MetaGetTableProps(params: util.Map[String, Object], database: String, table: String, operator: String) extends MetadataQueryProtocol
/**
- * Request to get partition list
- * @param params
- * @param database
- * @param table
+ * Request to get partition list
+ * @param params
+ * @param database
+ * @param table
*/
case class MetaGetPartitions(params: util.Map[String, Object], database: String, table: String, operator: String) extends MetadataQueryProtocol
/**
- * Request to get column list
- * @param params
- * @param database
- * @param table
+ * Request to get column list
+ * @param params
+ * @param database
+ * @param table
*/
case class MetaGetColumns(params: util.Map[String, Object], database: String, table: String, operator: String) extends MetadataQueryProtocol
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/pom.xml
similarity index 87%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/server/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/pom.xml
index 046ef64..80f1687 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/pom.xml
@@ -24,34 +24,23 @@
<version>1.0.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>linkis-metadatamanager-server</artifactId>
+ <artifactId>linkis-metadata-manager-server</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
- <dependency>
- <groupId>org.apache.linkis</groupId>
- <artifactId>linkis-module</artifactId>
- <version>${linkis.version}</version>
- <exclusions>
- <exclusion>
- <artifactId>asm</artifactId>
- <groupId>org.ow2.asm</groupId>
- </exclusion>
- </exclusions>
- </dependency>
<!--Metadata common-->
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-metadatamanager-common</artifactId>
+ <artifactId>linkis-metadata-manager-common</artifactId>
<version>${linkis.version}</version>
</dependency>
<!-- data source manager common dependency-->
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-datasourcemanager-common</artifactId>
+ <artifactId>linkis-datasource-manager-common</artifactId>
<version>${linkis.version}</version>
<exclusions>
<exclusion>
@@ -65,6 +54,7 @@
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-rpc</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
</dependencies>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/assembly/distribution.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/assembly/distribution.xml
similarity index 50%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/assembly/distribution.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/assembly/distribution.xml
index 8afbe20..4d49a03 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/assembly/distribution.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/assembly/distribution.xml
@@ -19,13 +19,13 @@
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>linkis-mdm-service-hive</id>
+ <id>linkis-metadata-manager-server</id>
<formats>
<format>zip</format>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
- <baseDirectory>linkis-mdm-service-hive</baseDirectory>
+ <baseDirectory>linkis-mdm-server</baseDirectory>
<dependencySets>
<dependencySet>
@@ -42,13 +42,59 @@
<fileSets>
<fileSet>
- <directory>${basedir}/src/main/resources</directory>
+ <directory>${basedir}/../service/elasticsearch/target/out/lib</directory>
+ <fileMode>0755</fileMode>
+ <outputDirectory>lib/service/elasticsearch</outputDirectory>
<includes>
- <include>*</include>
+ <include>*.jar</include>
</includes>
- <fileMode>0777</fileMode>
- <outputDirectory>conf</outputDirectory>
- <lineEnding>unix</lineEnding>
+ <excludes>
+ <exclude>*-javadoc.jar</exclude>
+ </excludes>
+ </fileSet>
+ <fileSet>
+ <directory>${basedir}/../service/hive/target/out/lib</directory>
+ <fileMode>0755</fileMode>
+ <outputDirectory>lib/service/hive</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ <excludes>
+ <exclude>*-javadoc.jar</exclude>
+ </excludes>
+ </fileSet>
+ <fileSet>
+ <directory>${basedir}/../service/kafka/target/out/lib</directory>
+ <fileMode>0755</fileMode>
+ <outputDirectory>lib/service/kafka</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ <excludes>
+ <exclude>*-javadoc.jar</exclude>
+ </excludes>
+ </fileSet>
+ <fileSet>
+ <directory>${basedir}/../service/mysql/target/out/lib</directory>
+ <fileMode>0755</fileMode>
+ <outputDirectory>lib/service/mysql</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ <excludes>
+ <exclude>*-javadoc.jar</exclude>
+ </excludes>
+ </fileSet>
+ <fileSet>
+ <directory>${basedir}/../service/tdsql/target/out/lib</directory>
+ <fileMode>0755</fileMode>
+ <outputDirectory>lib/service/tdsql</outputDirectory>
+ <includes>
+ <include>*.jar</include>
+ </includes>
+ <excludes>
+ <exclude>*-javadoc.jar</exclude>
+ </excludes>
</fileSet>
</fileSets>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/LinkisMetadataManagerApplication.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/LinkisMetadataManagerApplication.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/LinkisMetadataManagerApplication.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/LinkisMetadataManagerApplication.java
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/loader/MetaClassLoaderManager.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/loader/MetaClassLoaderManager.java
new file mode 100644
index 0000000..046c4a5
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/loader/MetaClassLoaderManager.java
@@ -0,0 +1,201 @@
+/*
+ * 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.linkis.metadatamanager.server.loader;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.linkis.common.conf.CommonVars;
+import org.apache.linkis.common.exception.ErrorException;
+import org.apache.linkis.metadatamanager.common.exception.MetaRuntimeException;
+import org.apache.linkis.metadatamanager.common.service.AbstractMetaService;
+import org.apache.linkis.metadatamanager.common.service.MetadataService;
+import org.apache.linkis.metadatamanager.server.utils.MetadataUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+import java.util.function.BiFunction;
+import java.util.stream.Collectors;
+
+/**
+ * Class Loader for metaClass
+ * // TODO used interface class
+ */
+public class MetaClassLoaderManager {
+
+ private final Map<String, ClassLoader> classLoaders = new ConcurrentHashMap<>();
+
+ private final Map<String, MetaServiceInstance> metaServiceInstances = new ConcurrentHashMap<>();
+
+ public static CommonVars<String> LIB_DIR = CommonVars.apply("wds.linkis.server.mdm.service.lib.dir", "/lib/linkis-pulicxxxx-/linkis-metdata-manager/service");
+
+ public static CommonVars<Integer> INSTANCE_EXPIRE_TIME = CommonVars.apply("wds.linkis.server.mdm.service.instance.expire-in-seconds", 60);
+
+ private static final String META_CLASS_NAME = "com.webank.wedatasphere.linkis.metadatamanager.service.%sMetaService";
+
+ private static final Logger LOG = LoggerFactory.getLogger(MetaClassLoaderManager.class);
+
+ public BiFunction<String, Object[], Object> getInvoker(String dsType) throws ErrorException {
+ boolean needToLoad = true;
+ MetaServiceInstance serviceInstance = metaServiceInstances.get(dsType);
+ if (Objects.nonNull(serviceInstance)){
+ Integer expireTimeInSec = INSTANCE_EXPIRE_TIME.getValue();
+ //Lazy load
+ needToLoad = Objects.nonNull(expireTimeInSec) && expireTimeInSec > 0 &&
+ (serviceInstance.initTimeStamp +
+ TimeUnit.MILLISECONDS.convert(expireTimeInSec, TimeUnit.SECONDS)) < System.currentTimeMillis();
+ }
+ if(needToLoad) {
+ MetaServiceInstance finalServiceInstance1 = serviceInstance;
+ serviceInstance = metaServiceInstances.compute(dsType, (key, instance) -> {
+ if(null != instance && !Objects.equals(finalServiceInstance1, instance)){
+ return instance;
+ }
+ LOG.info("Start to load/reload meta instance of data source type: [" + dsType + "]");
+ ClassLoader parentClassLoader = MetaClassLoaderManager.class.getClassLoader();
+ ClassLoader metaClassLoader = classLoaders.compute(dsType, (type, classLoader) -> {
+ String lib = LIB_DIR.getValue();
+ String stdLib = lib.endsWith("/") ? lib.replaceAll(".$", "") : lib;
+ String componentLib = stdLib + "/" + dsType;
+ try {
+ return new URLClassLoader(getJarsUrlsOfPath(componentLib).toArray(new URL[0]), parentClassLoader);
+ } catch (Exception e) {
+ LOG.error("Cannot init the classloader of type: [" + dsType + "] in library path: [" + componentLib + "]", e);
+ return null;
+ }
+ });
+ if (Objects.isNull(metaClassLoader)) {
+ throw new MetaRuntimeException("Error in creating classloader of type: [" + dsType + "]", null);
+ }
+ String expectClassName = null;
+ if (dsType.length() > 0) {
+ String prefix = dsType.substring(0, 1).toUpperCase() + dsType.substring(1);
+ expectClassName = String.format(META_CLASS_NAME, prefix);
+ }
+ Class<? extends MetadataService> metaServiceClass = searchForLoadMetaServiceClass(metaClassLoader, expectClassName, true);
+ if (Objects.isNull(metaServiceClass)) {
+ throw new MetaRuntimeException("Fail to init and load meta service class for type: [" + dsType + "]", null);
+ }
+ MetadataService metadataService = MetadataUtils.loadMetaService(metaServiceClass, metaClassLoader);
+ if (metadataService instanceof AbstractMetaService){
+ LOG.info("Invoke the init() method in meta service for type: [" + dsType +"]");
+ ((AbstractMetaService<?>)metadataService).init();
+ }
+ return new MetaServiceInstance(metadataService, metaClassLoader);
+ });
+ }
+ Method[] childMethods = serviceInstance.methods;
+ MetaServiceInstance finalServiceInstance = serviceInstance;
+ return (String m, Object...args)-> {
+ ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(finalServiceInstance.metaClassLoader);
+ Method method = Arrays.stream(childMethods)
+ .filter(eachMethod -> eachMethod.getName().equals(m)).collect(Collectors.toList()).get(0);
+ return method.invoke(finalServiceInstance.serviceInstance, args);
+ } catch (Exception e) {
+ Throwable t = e;
+ // UnWrap the Invocation target exception
+ while (t instanceof InvocationTargetException){
+ t = t.getCause();
+ }
+ String message = "Fail to invoke method: [" + m + "] in meta service instance: [" + finalServiceInstance.serviceInstance.toString() + "]";
+ LOG.warn(message, t);
+ throw new MetaRuntimeException(message, t);
+ }finally {
+ Thread.currentThread().setContextClassLoader(currentClassLoader);
+ }
+ };
+ }
+
+
+
+
+ private Class<? extends MetadataService> searchForLoadMetaServiceClass(ClassLoader classLoader,
+ String expectClassName, boolean initialize){
+ ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(classLoader);
+ try{
+ Class<? extends MetadataService> metaClass = null;
+ if(StringUtils.isNotBlank(expectClassName)){
+ metaClass = MetadataUtils.loadMetaServiceClass(classLoader, expectClassName,
+ initialize, "Cannot find class in using expect class name: [" + expectClassName + "]");
+ }
+ if (Objects.isNull(metaClass)){
+ if (classLoader instanceof URLClassLoader){
+ String[] metaServiceClassNames = MetadataUtils.searchMetaServiceClassInLoader((URLClassLoader)classLoader);
+ if (metaServiceClassNames.length > 0){
+ String metaServiceClassName = metaServiceClassNames[0];
+ metaClass = MetadataUtils.loadMetaServiceClass(classLoader, metaServiceClassName,
+ initialize, "Cannot load class in canonical name: [" + metaServiceClassName + "], please check the compiled jar/file");
+ }
+ }
+ }
+ return metaClass;
+ } finally{
+ Thread.currentThread().setContextClassLoader(currentClassLoader);
+ }
+ }
+
+
+ private List<URL> getJarsUrlsOfPath(String path) throws MalformedURLException {
+ File file = new File(path);
+ List<URL> jars = new ArrayList<>();
+ if (file.listFiles() != null){
+ for(File f : Objects.requireNonNull(file.listFiles())){
+ if (!f.isDirectory() && f.getName().endsWith(".jar")){
+ jars.add(f.toURI().toURL());
+ }else if(f.isDirectory()){
+ jars.addAll(getJarsUrlsOfPath(f.getPath()));
+ }
+ }
+ }
+ return jars;
+ }
+
+ /**
+ * ServiceInstance Holder
+ */
+ public static class MetaServiceInstance{
+ private MetadataService serviceInstance;
+
+ private Method[] methods;
+
+ private ClassLoader metaClassLoader;
+
+ private long initTimeStamp = 0L;
+
+ public MetaServiceInstance(MetadataService serviceInstance, ClassLoader metaClassLoader){
+ this.serviceInstance = serviceInstance;
+ this.metaClassLoader = metaClassLoader;
+ this.methods = serviceInstance.getClass().getMethods();
+ this.initTimeStamp = System.currentTimeMillis();
+ }
+
+ public MetadataService getServiceInstance() {
+ return serviceInstance;
+ }
+ }
+}
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/restful/MetadataCoreRestful.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/restful/MetadataCoreRestful.java
new file mode 100644
index 0000000..35d51be
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/restful/MetadataCoreRestful.java
@@ -0,0 +1,159 @@
+/*
+ * 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.linkis.metadatamanager.server.restful;
+
+import org.apache.linkis.common.exception.ErrorException;
+import org.apache.linkis.datasourcemanager.common.util.json.Json;
+import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo;
+import org.apache.linkis.metadatamanager.common.domain.MetaPartitionInfo;
+import org.apache.linkis.metadatamanager.common.exception.MetaMethodInvokeException;
+import org.apache.linkis.metadatamanager.server.service.MetadataAppService;
+import org.apache.linkis.server.Message;
+import org.apache.commons.lang.StringUtils;
+import org.apache.linkis.server.security.SecurityFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping(value = "/metadatamanager", produces = {"application/json"})
+public class MetadataCoreRestful {
+
+ private static final Logger LOG = LoggerFactory.getLogger(MetadataCoreRestful.class);
+
+ @Autowired
+ private MetadataAppService metadataAppService;
+
+ @RequestMapping(value = "/dbs/{data_source_id}", method = RequestMethod.GET)
+ public Message getDatabases(@PathVariable("data_source_id")String dataSourceId,
+ @RequestParam("system")String system,
+ HttpServletRequest request){
+ try{
+ if(StringUtils.isBlank(system)){
+ return Message.error("'system' is missing[缺少系统名]");
+ }
+ List<String> databases = metadataAppService.getDatabasesByDsId(dataSourceId, system,
+ SecurityFilter.getLoginUsername(request));
+ return Message.ok().data("dbs", databases);
+ }catch(Exception e){
+ return errorToResponseMessage("Fail to get database list[获取库信息失败], id:[" + dataSourceId +"], system:[" + system + "]", e);
+ }
+ }
+
+ @RequestMapping( value = "/tables/{data_source_id}/db/{database}", method = RequestMethod.GET)
+ public Message getTables(@PathVariable("data_source_id")String dataSourceId,
+ @PathVariable("database")String database,
+ @RequestParam("system")String system,
+ HttpServletRequest request){
+ try{
+ if(StringUtils.isBlank(system)){
+ return Message.error("'system' is missing[缺少系统名]");
+ }
+ List<String> tables = metadataAppService.getTablesByDsId(dataSourceId, database, system,
+ SecurityFilter.getLoginUsername(request));
+ return Message.ok().data("tables", tables);
+ }catch(Exception e){
+ return errorToResponseMessage("Fail to get table list[获取表信息失败], id:[" + dataSourceId +"]" +
+ ", system:[" + system + "], database:[" +database +"]", e);
+ }
+ }
+
+ @RequestMapping( value = "/props/{data_source_id}/db/{database}/table/{table}", method = RequestMethod.GET)
+ public Message getTableProps(@PathVariable("data_source_id")String dataSourceId,
+ @PathVariable("database")String database,
+ @PathVariable("table") String table,
+ @RequestParam("system")String system,
+ HttpServletRequest request){
+ try{
+ if(StringUtils.isBlank(system)){
+ return Message.error("'system' is missing[缺少系统名]");
+ }
+ Map<String, String> tableProps = metadataAppService.getTablePropsByDsId(dataSourceId, database, table, system,
+ SecurityFilter.getLoginUsername(request));
+ return Message.ok().data("props", tableProps);
+ }catch(Exception e){
+ return errorToResponseMessage("Fail to get table properties[获取表参数信息失败], id:[" + dataSourceId +"]" +
+ ", system:[" + system + "], database:[" +database +"], table:[" + table +"]", e);
+ }
+ }
+
+ @RequestMapping( value = "/partitions/{data_source_id}/db/{database}/table/{table}", method = RequestMethod.GET)
+ public Message getPartitions(@PathVariable("data_source_id")String dataSourceId,
+ @PathVariable("database")String database,
+ @PathVariable("table") String table,
+ @RequestParam("system")String system,
+ HttpServletRequest request){
+ try{
+ if(StringUtils.isBlank(system)){
+ return Message.error("'system' is missing[缺少系统名]");
+ }
+ MetaPartitionInfo partitionInfo = metadataAppService.getPartitionsByDsId(dataSourceId, database, table, system,
+ SecurityFilter.getLoginUsername(request));
+ return Message.ok().data("props", partitionInfo);
+ }catch(Exception e){
+ return errorToResponseMessage("Fail to get partitions[获取表分区信息失败], id:[" + dataSourceId +"]" +
+ ", system:[" + system + "], database:[" +database +"], table:[" + table +"]", e);
+ }
+ }
+
+ @RequestMapping( value = "/columns/{data_source_id}/db/{database}/table/{table}", method = RequestMethod.GET)
+ public Message getColumns(@PathVariable("data_source_id")String dataSourceId,
+ @PathVariable("database")String database,
+ @PathVariable("table") String table,
+ @RequestParam("system")String system,
+ HttpServletRequest request){
+ try{
+ if(StringUtils.isBlank(system)){
+ return Message.error("'system' is missing[缺少系统名]");
+ }
+ List<MetaColumnInfo> columns = metadataAppService.getColumns(dataSourceId, database, table, system,
+ SecurityFilter.getLoginUsername(request));
+ return Message.ok().data("columns", columns);
+ }catch(Exception e){
+ return errorToResponseMessage("Fail to get column list[获取表字段信息失败], id:[" + dataSourceId +"]" +
+ ", system:[" + system + "], database:[" +database +"], table:[" + table +"]", e);
+ }
+ }
+
+ private Message errorToResponseMessage(String uiMessage, Exception e){
+ if (e instanceof MetaMethodInvokeException){
+ MetaMethodInvokeException invokeException = (MetaMethodInvokeException)e;
+ if (LOG.isDebugEnabled()) {
+ String argumentJson = null;
+ try {
+ argumentJson = Json.toJson(invokeException.getArgs(), null);
+ } catch (Exception je) {
+ // Ignore
+ }
+ LOG.trace(uiMessage + " => Method: " + invokeException.getMethod() + ", Arguments:" + argumentJson, e);
+ }
+ uiMessage += " possible reason[可能原因]: (" + invokeException.getCause().getMessage() + ")";
+ }else {
+ if (e instanceof ErrorException){
+ uiMessage += " possible reason[可能原因]: (" + e.getMessage() + ")";
+ }
+ LOG.error(uiMessage, e);
+ }
+ return Message.error(uiMessage);
+ }
+}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/MetadataAppService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/MetadataAppService.java
similarity index 76%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/MetadataAppService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/MetadataAppService.java
index df259bc..80d90b3 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/MetadataAppService.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/MetadataAppService.java
@@ -27,11 +27,18 @@ import java.util.Map;
public interface MetadataAppService {
/**
+ * Get connection
+ * @param params connect params
+ * @return
+ */
+ void getConnection(String dataSourceType, String operator, Map<String, Object> params) throws Exception;
+
+ /**
* @param dataSourceId data source id
* @param system system
* @return
*/
- List<String> getDatabasesByDsId(String dataSourceId, String system) throws ErrorException;
+ List<String> getDatabasesByDsId(String dataSourceId, String system, String userName) throws ErrorException;
/**
* @param dataSourceId data source id
@@ -39,7 +46,7 @@ public interface MetadataAppService {
* @param database database
* @return
*/
- List<String> getTablesByDsId(String dataSourceId, String database, String system) throws ErrorException;
+ List<String> getTablesByDsId(String dataSourceId, String database, String system, String userName) throws ErrorException;
/**
* @param dataSourceId data source id
@@ -48,7 +55,8 @@ public interface MetadataAppService {
* @param system system
* @return
*/
- Map<String, String> getTablePropsByDsId(String dataSourceId, String database, String table, String system) throws ErrorException;
+ Map<String, String> getTablePropsByDsId(String dataSourceId, String database, String table,
+ String system, String userName) throws ErrorException;
/**
* @param dataSourceId data source i
* @param database database
@@ -56,7 +64,8 @@ public interface MetadataAppService {
* @param system system
* @return
*/
- MetaPartitionInfo getPartitionsByDsId(String dataSourceId, String database, String table, String system) throws ErrorException;
+ MetaPartitionInfo getPartitionsByDsId(String dataSourceId, String database, String table,
+ String system, String userName) throws ErrorException;
/**
* @param dataSourceId data source id
@@ -65,5 +74,6 @@ public interface MetadataAppService {
* @param system system
* @return
*/
- List<MetaColumnInfo> getColumns(String dataSourceId, String database, String table, String system) throws ErrorException;
+ List<MetaColumnInfo> getColumns(String dataSourceId, String database, String table,
+ String system, String userName) throws ErrorException;
}
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/impl/MetadataAppServiceImpl.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/impl/MetadataAppServiceImpl.java
new file mode 100644
index 0000000..e04cfa2
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/impl/MetadataAppServiceImpl.java
@@ -0,0 +1,189 @@
+/*
+ * 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.linkis.metadatamanager.server.service.impl;
+
+import org.apache.linkis.common.exception.ErrorException;
+import org.apache.linkis.datasourcemanager.common.auth.AuthContext;
+import org.apache.linkis.datasourcemanager.common.protocol.DsInfoQueryRequest;
+import org.apache.linkis.datasourcemanager.common.protocol.DsInfoResponse;
+import org.apache.linkis.metadatamanager.common.MdmConfiguration;
+import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo;
+import org.apache.linkis.metadatamanager.common.domain.MetaPartitionInfo;
+import org.apache.linkis.metadatamanager.common.exception.MetaMethodInvokeException;
+import org.apache.linkis.metadatamanager.common.exception.MetaRuntimeException;
+import org.apache.linkis.metadatamanager.common.service.MetadataConnection;
+import org.apache.linkis.metadatamanager.server.loader.MetaClassLoaderManager;
+import org.apache.linkis.metadatamanager.server.service.MetadataAppService;
+import org.apache.linkis.rpc.Sender;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import java.io.Closeable;
+import java.io.IOException;
+import java.util.*;
+import java.util.function.BiFunction;
+
+@Service
+public class MetadataAppServiceImpl implements MetadataAppService {
+ private Sender dataSourceRpcSender;
+ private MetaClassLoaderManager metaClassLoaderManager;
+ private static final Logger LOG = LoggerFactory.getLogger(MetadataAppServiceImpl.class);
+ @PostConstruct
+ public void init(){
+ dataSourceRpcSender = Sender.getSender(MdmConfiguration.DATA_SOURCE_SERVICE_APPLICATION.getValue());
+ metaClassLoaderManager = new MetaClassLoaderManager();
+ }
+
+
+ @Override
+ public void getConnection(String dataSourceType, String operator, Map<String, Object> params) throws Exception {
+ MetadataConnection<Closeable> metadataConnection = invokeMetaMethod(dataSourceType, "getConnection", new Object[]{operator, params}, Map.class);
+ if (Objects.nonNull(metadataConnection)){
+ Closeable connection = metadataConnection.getConnection();
+ try {
+ connection.close();
+ }catch(IOException e){
+ LOG.warn("Fail to close connection[关闭连接失败], [" + e.getMessage() + "]", e);
+ }
+ }
+ }
+
+ @Override
+ public List<String> getDatabasesByDsId(String dataSourceId, String system, String userName) throws ErrorException {
+ DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system, userName);
+ if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
+ return invokeMetaMethod(dsInfoResponse.dsType(), "getDatabases", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params()}, List.class);
+ }
+ return new ArrayList<>();
+ }
+
+ @Override
+ public List<String> getTablesByDsId(String dataSourceId, String database, String system,
+ String userName) throws ErrorException {
+ DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system, userName);
+ if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
+ return invokeMetaMethod(dsInfoResponse.dsType(), "getTables", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params(), database}, List.class);
+ }
+ return new ArrayList<>();
+ }
+
+ @Override
+ public Map<String, String> getTablePropsByDsId(String dataSourceId, String database, String table,
+ String system, String userName) throws ErrorException {
+ DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system, userName);
+ if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
+ return invokeMetaMethod(dsInfoResponse.dsType(), "getTableProps", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params(), database, table},
+ Map.class);
+ }
+ return new HashMap<>();
+ }
+
+ @Override
+ public MetaPartitionInfo getPartitionsByDsId(String dataSourceId, String database, String table,
+ String system, String userName) throws ErrorException {
+ DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system, userName);
+ if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
+ return invokeMetaMethod(dsInfoResponse.dsType(), "getPartitions", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params(), database, table},
+ MetaPartitionInfo.class);
+ }
+ return new MetaPartitionInfo();
+ }
+
+ @Override
+ public List<MetaColumnInfo> getColumns(String dataSourceId, String database, String table,
+ String system, String userName) throws ErrorException {
+ DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system, userName);
+ if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
+ return invokeMetaMethod(dsInfoResponse.dsType(), "getColumns", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params(), database, table},
+ List.class);
+ }
+ return new ArrayList<>();
+ }
+
+ /**
+ * Request to get data source information
+ * (type and connection parameters)
+ * @param dataSourceId data source id
+ * @param system system
+ * @return
+ * @throws ErrorException
+ */
+ public DsInfoResponse reqToGetDataSourceInfo(String dataSourceId, String system,
+ String userName) throws ErrorException{
+ Object rpcResult = null;
+ try {
+ rpcResult = dataSourceRpcSender.ask(new DsInfoQueryRequest(dataSourceId, null, system));
+ }catch(Exception e){
+ throw new ErrorException(-1, "Remote Service Error[远端服务出错, 联系运维处理]");
+ }
+ if(rpcResult instanceof DsInfoResponse){
+ DsInfoResponse response = (DsInfoResponse)rpcResult;
+ if(!response.status()){
+ throw new ErrorException(-1, "Error in Data Source Manager Server[数据源服务出错]");
+ }
+ boolean hasPermission = (AuthContext.isAdministrator(userName) ||
+ (StringUtils.isNotBlank(response.creator()) && userName.equals(response.creator())));
+ if(!hasPermission){
+ throw new ErrorException(-1, "Don't have query permission for data source [没有数据源的查询权限]");
+ } else if (response.params().isEmpty()){
+ throw new ErrorException(-1, "Have you published the data source? [数据源未发布或者参数为空]");
+ }
+ return response;
+ }else{
+ throw new ErrorException(-1, "Remote Service Error[远端服务出错, 联系运维处理]");
+ }
+ }
+
+ /**
+ * Invoke method in meta service
+ * @param method method name
+ * @param methodArgs arguments
+ */
+ @SuppressWarnings("unchecked")
+ private <T>T invokeMetaMethod(String dsType,
+ String method, Object[] methodArgs,
+ Class<?> returnType) throws MetaMethodInvokeException {
+ BiFunction<String, Object[], Object> invoker;
+ try {
+ invoker = metaClassLoaderManager.getInvoker(dsType);
+ }catch (Exception e){
+ // TODO ERROR CODE
+ throw new MetaMethodInvokeException(-1, "Load meta service for " + dsType +
+ " fail 加载 [" + dsType + "] 元数据服务失败", e);
+ }
+ if (Objects.nonNull(invoker)){
+ try {
+ Object returnObj = invoker.apply(method, methodArgs);
+ if (Objects.nonNull(returnType)) {
+ return (T) returnObj;
+ }
+ }catch (Exception e){
+ if (e instanceof MetaRuntimeException){
+ throw new MetaMethodInvokeException(method, methodArgs, -1, e.getMessage(), e.getCause());
+ }
+ // TODO ERROR CODE
+ throw new MetaMethodInvokeException(method, methodArgs, -1,
+ "Invoke method [" + method +"] fail, message:[" + e.getMessage() + "]", e);
+ }
+ }
+ return null;
+ }
+}
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/utils/MetadataUtils.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/utils/MetadataUtils.java
new file mode 100644
index 0000000..59821fd
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/server/src/main/java/org/apache/linkis/metadatamanager/server/utils/MetadataUtils.java
@@ -0,0 +1,157 @@
+/*
+ * 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.linkis.metadatamanager.server.utils;
+
+import org.apache.linkis.metadatamanager.common.exception.MetaRuntimeException;
+import org.apache.linkis.metadatamanager.common.service.MetadataService;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Modifier;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.*;
+import java.util.function.Function;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.stream.Collectors;
+
+/**
+ * Metadata Utils
+ */
+public class MetadataUtils {
+
+ private static final String JAR_SUF_NAME = ".jar";
+
+ private static final String CLASS_SUF_NAME = ".class";
+
+ private static final Logger LOG = LoggerFactory.getLogger(MetadataUtils.class);
+
+ public static MetadataService loadMetaService(Class<? extends MetadataService> metaServiceClass,
+ ClassLoader metaServiceClassLoader){
+ ClassLoader storeClassLoader = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(metaServiceClassLoader);
+ try{
+ final Constructor<?>[] constructors = metaServiceClass.getConstructors();
+ if (constructors.length <= 0){
+ throw new MetaRuntimeException("No public constructor in meta service class: [" + metaServiceClass.getName() + "]", null);
+ }
+ List<Constructor<?>> acceptConstructor = Arrays.stream(constructors)
+ .filter( constructor -> constructor.getParameterCount() == 0).collect(Collectors.toList());
+ if (acceptConstructor.size() > 0){
+ //Choose the first one
+ Constructor<?> constructor = acceptConstructor.get(0);
+ try {
+ return (MetadataService)constructor.newInstance();
+ } catch (Exception e) {
+ throw new MetaRuntimeException("Unable to construct meta service class: [" + metaServiceClass.getName() + "]", e);
+ }
+ }else{
+ throw new MetaRuntimeException("Illegal arguments in constructor of meta service class: [" + metaServiceClass.getName() + "]", null);
+ }
+ }finally{
+ Thread.currentThread().setContextClassLoader(storeClassLoader);
+ }
+ }
+ /**
+ * Search meta service class from classloader
+ * @param serviceClassLoader service class loader
+ * @return collect
+ */
+ public static String[] searchMetaServiceClassInLoader(URLClassLoader serviceClassLoader){
+ URL[] urlsOfClassLoader = serviceClassLoader.getURLs();
+ List<String> classNameList = new ArrayList<>();
+ for( URL url : urlsOfClassLoader ){
+ String pathForUrl = url.getPath();
+ List<String> searchResult = searchMetaServiceClassFormURI(pathForUrl, className -> isSubMetaServiceClass(className, serviceClassLoader));
+ if (Objects.nonNull(searchResult)){
+ classNameList.addAll(searchResult);
+ }
+ }
+ return classNameList.toArray(new String[]{});
+ }
+
+ public static Class<? extends MetadataService> loadMetaServiceClass(ClassLoader classLoader, String className,
+ boolean initialize, String notFoundMessage){
+ //Try to load use expectClassName
+ try {
+ return Class.forName(className, initialize, classLoader).asSubclass(MetadataService.class);
+ }catch(ClassNotFoundException ne){
+ LOG.warn(notFoundMessage, ne);
+ }
+ return null;
+ }
+
+ private static List<String> searchMetaServiceClassFormURI(String url, Function<String, Boolean> acceptedFunction){
+ List<String> classNameList = new ArrayList<>();
+ if(url.endsWith(CLASS_SUF_NAME)){
+ String className = url.substring(0, url.lastIndexOf(CLASS_SUF_NAME));
+ int splitIndex = className.lastIndexOf(IOUtils.DIR_SEPARATOR);
+ if(splitIndex >= 0){
+ className = className.substring(splitIndex);
+ }
+ if (acceptedFunction.apply(className)){
+ classNameList.add(className);
+ }
+ }else if(url.endsWith(JAR_SUF_NAME)){
+ try {
+ JarFile jarFile = new JarFile(new File(url));
+ Enumeration<JarEntry> en = jarFile.entries();
+ while(en.hasMoreElements()){
+ String name = en.nextElement().getName();
+ if(name.endsWith(CLASS_SUF_NAME)){
+ String className = name.substring(0, name.lastIndexOf(CLASS_SUF_NAME));
+ //If the splicer is different in WINDOWS system?
+ className = className.replaceAll(String.valueOf(IOUtils.DIR_SEPARATOR_UNIX), ".");
+ if(acceptedFunction.apply(className)){
+ classNameList.add(className);
+ }
+ }
+ }
+ } catch (IOException e) {
+ //Trace
+ LOG.trace("Fail to parse jar file:[" + url + "] in service classpath", e);
+ return classNameList;
+ }
+ }
+ return classNameList;
+ }
+
+ private static boolean isSubMetaServiceClass(String className, ClassLoader serviceClassLoader){
+ if(StringUtils.isEmpty(className)){
+ return false;
+ }
+ Class<?> clazz;
+ try{
+ clazz = Class.forName(className, false, serviceClassLoader);
+ //Skip interface and abstract class
+ if (Modifier.isAbstract(clazz.getModifiers()) || Modifier.isInterface(clazz.getModifiers())) {
+ return false;
+ }
+ } catch (Throwable t){
+ LOG.trace("Class: {} can not be found", className, t);
+ return false;
+ }
+ return MetadataService.class.isAssignableFrom(clazz);
+ }
+}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/pom.xml
similarity index 95%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/pom.xml
index fd5a022..da00b33 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/pom.xml
@@ -25,7 +25,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>linkis-metadatamanager-service-es</artifactId>
+ <artifactId>linkis-metadata-manager-service-es</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<es.version>6.7.1</es.version>
@@ -34,8 +34,9 @@
<dependencies>
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-metadatamanager-common</artifactId>
+ <artifactId>linkis-metadata-manager-common</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.linkis</groupId>
@@ -47,6 +48,7 @@
<groupId>org.ow2.asm</groupId>
</exclusion>
</exclusions>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/assembly/distribution.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/assembly/distribution.xml
similarity index 95%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/assembly/distribution.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/assembly/distribution.xml
index f99342b..6cadbde 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/assembly/distribution.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/assembly/distribution.xml
@@ -19,13 +19,13 @@
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>linkis-mdm-service-es</id>
+ <id>linkis-metadata-manager-service-es</id>
<formats>
<format>zip</format>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
- <baseDirectory>linkis-mdm-service-es</baseDirectory>
+ <baseDirectory>linkis-metadata-manager-service-es</baseDirectory>
<dependencySets>
<dependencySet>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticConnection.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticConnection.java
similarity index 96%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticConnection.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticConnection.java
index ca65d68..c02cd4c 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticConnection.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticConnection.java
@@ -17,7 +17,7 @@
package org.apache.linkis.metadatamanager.service;
-import org.apache.linkis.metadatamanager.common.Json;
+import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
@@ -73,7 +73,7 @@ public class ElasticConnection implements Closeable {
ping();
}
- public List<String> getAllIndices() throws IOException {
+ public List<String> getAllIndices() throws Exception {
List<String> indices = new ArrayList<>();
Request request = new Request("GET", "_cat/indices");
request.addParameter("format", "JSON");
@@ -88,7 +88,7 @@ public class ElasticConnection implements Closeable {
return indices;
}
- public List<String> getTypes(String index) throws IOException{
+ public List<String> getTypes(String index) throws Exception{
List<String> types = new ArrayList<>();
Request request = new Request("GET", index +"/_mappings");
Response response = restClient.performRequest(request);
@@ -105,7 +105,7 @@ public class ElasticConnection implements Closeable {
return types;
}
- public Map<Object, Object> getProps(String index, String type) throws IOException{
+ public Map<Object, Object> getProps(String index, String type) throws Exception{
Request request = new Request("GET", index + "/_mappings/" + type);
Response response = restClient.performRequest(request);
Map<String, Map<String, Object>> result =
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticParamsMapper.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticParamsMapper.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticParamsMapper.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticParamsMapper.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticMetaService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/EsMetaService.java
similarity index 96%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticMetaService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/EsMetaService.java
index 92cbea2..80d8d3a 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/ElasticMetaService.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/elasticsearch/src/main/java/org/apache/linkis/metadatamanager/service/EsMetaService.java
@@ -17,7 +17,7 @@
package org.apache.linkis.metadatamanager.service;
-import org.apache.linkis.metadatamanager.common.Json;
+import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo;
import org.apache.linkis.metadatamanager.common.service.AbstractMetaService;
import org.apache.linkis.metadatamanager.common.service.MetadataConnection;
@@ -28,7 +28,7 @@ import java.util.Map;
import java.util.stream.Collectors;
@Component
-public class ElasticMetaService extends AbstractMetaService<ElasticConnection> {
+public class EsMetaService extends AbstractMetaService<ElasticConnection> {
@Override
public MetadataConnection<ElasticConnection> getConnection(String operator, Map<String, Object> params)
throws Exception{
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/pom.xml
similarity index 59%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/pom.xml
index a6e93bc..83d9a42 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/pom.xml
@@ -24,29 +24,40 @@
<version>1.0.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>linkis-metadatamanager-service-hive</artifactId>
+ <artifactId>linkis-metadata-manager-service-hive</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <hive.version>1.2.1</hive.version>
+ <hive.version>2.3.3</hive.version>
+<!-- <hive.version>1.2.1</hive.version>-->
<hadoop.version>2.7.2</hadoop.version>
+ <datanucleus-api-jdo.version>4.2.4</datanucleus-api-jdo.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-metadatamanager-common</artifactId>
+ <artifactId>linkis-metadata-manager-common</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-module</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
<!--Hive dependencies-->
<dependency>
+ <groupId>org.datanucleus</groupId>
+ <artifactId>datanucleus-api-jdo</artifactId>
+ <version>${datanucleus-api-jdo.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
+ <!-- use local version of hadoop -->
+ <scope>provided</scope>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
@@ -64,6 +75,60 @@
</exclusions>
</dependency>
<dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-mapreduce-client-core</artifactId>
+ <version>${hadoop.version}</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>hadoop-yarn-common</artifactId>
+ <groupId>org.apache.hadoop</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hive</groupId>
+ <artifactId>hive-common</artifactId>
+ <version>${hive.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-yarn-server-resourcemanager</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.curator</groupId>
+ <artifactId>curator-framework</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-yarn-server-applicationhistoryservice</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.hive</groupId>
+ <artifactId>hive-shims</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-log4j12</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <artifactId>jsr311-api</artifactId>
+ <groupId>javax.ws.rs</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>hadoop-common</artifactId>
+ <groupId>org.apache.hadoop</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>dropwizard-metrics-hadoop-metrics2-reporter</artifactId>
+ <groupId>com.github.joshelser</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>${hive.version}</version>
@@ -84,6 +149,30 @@
<artifactId>commons-lang3</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
+ <exclusion>
+ <artifactId>hadoop-yarn-api</artifactId>
+ <groupId>org.apache.hadoop</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>hadoop-yarn-common</artifactId>
+ <groupId>org.apache.hadoop</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>hadoop-yarn-server-applicationhistoryservice</artifactId>
+ <groupId>org.apache.hadoop</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>hadoop-yarn-server-common</artifactId>
+ <groupId>org.apache.hadoop</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>hadoop-yarn-server-resourcemanager</artifactId>
+ <groupId>org.apache.hadoop</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>hadoop-yarn-server-web-proxy</artifactId>
+ <groupId>org.apache.hadoop</groupId>
+ </exclusion>
</exclusions>
</dependency>
<!--bml client-->
@@ -91,6 +180,12 @@
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-bml-client</artifactId>
<version>${linkis.version}</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>linkis-httpclient</artifactId>
+ <groupId>com.webank.wedatasphere.linkis</groupId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
@@ -136,7 +231,7 @@
</executions>
<configuration>
<skipAssembly>false</skipAssembly>
- <finalName>linkis-mdm-service-hive</finalName>
+ <finalName>out</finalName>
<appendAssemblyId>false</appendAssemblyId>
<attach>false</attach>
<descriptors>
diff --git a/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/assembly/distribution.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/assembly/distribution.xml
new file mode 100644
index 0000000..17d3efc
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/assembly/distribution.xml
@@ -0,0 +1,238 @@
+ <!--
+ ~ 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.
+ -->
+
+<assembly
+ xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
+ <id>linkis-metadata-manager-service-hive</id>
+ <formats>
+ <format>zip</format>
+ <format>dir</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <baseDirectory>linkis-metadata-manager-service-hive</baseDirectory>
+
+ <dependencySets>
+ <dependencySet>
+ <!-- Enable access to all projects in the current multimodule build! <useAllReactorProjects>true</useAllReactorProjects> -->
+ <!-- Now, select which projects to include in this module-set. -->
+ <outputDirectory>lib</outputDirectory>
+ <useProjectArtifact>true</useProjectArtifact>
+ <useTransitiveDependencies>true</useTransitiveDependencies>
+ <unpack>false</unpack>
+ <useStrictFiltering>false</useStrictFiltering>
+ <useTransitiveFiltering>true</useTransitiveFiltering>
+ <excludes>
+ <exclude>antlr:antlr:jar</exclude>
+ <exclude>asm:asm:jar</exclude>
+ <exclude>cglib:cglib:jar</exclude>
+ <exclude>com.amazonaws:aws-java-sdk-autoscaling:jar</exclude>
+ <exclude>com.amazonaws:aws-java-sdk-core:jar</exclude>
+ <exclude>com.amazonaws:aws-java-sdk-ec2:jar</exclude>
+ <exclude>com.amazonaws:aws-java-sdk-route53:jar</exclude>
+ <exclude>com.amazonaws:aws-java-sdk-sts:jar</exclude>
+ <exclude>com.amazonaws:jmespath-java:jar</exclude>
+ <exclude>com.fasterxml.jackson.core:jackson-annotations:jar</exclude>
+ <exclude>com.fasterxml.jackson.core:jackson-core:jar</exclude>
+ <exclude>com.fasterxml.jackson.core:jackson-databind:jar</exclude>
+ <exclude>com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar</exclude>
+ <exclude>com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar</exclude>
+ <exclude>com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar</exclude>
+ <exclude>com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar</exclude>
+ <exclude>com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar</exclude>
+ <exclude>com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar</exclude>
+ <exclude>com.fasterxml.jackson.module:jackson-module-parameter-names:jar</exclude>
+ <exclude>com.fasterxml.jackson.module:jackson-module-paranamer:jar</exclude>
+ <exclude>com.fasterxml.jackson.module:jackson-module-scala_2.11:jar</exclude>
+ <exclude>com.github.andrewoma.dexx:dexx-collections:jar</exclude>
+ <exclude>com.github.vlsi.compactmap:compactmap:jar</exclude>
+ <exclude>com.google.code.findbugs:annotations:jar</exclude>
+ <exclude>com.google.code.gson:gson:jar</exclude>
+ <exclude>com.google.guava:guava:jar</exclude>
+ <exclude>com.google.protobuf:protobuf-java:jar</exclude>
+ <exclude>com.ning:async-http-client:jar</exclude>
+ <exclude>com.sun.jersey.contribs:jersey-apache-client4:jar</exclude>
+ <exclude>com.sun.jersey:jersey-client:jar</exclude>
+ <exclude>com.sun.jersey:jersey-core:jar</exclude>
+ <exclude>com.sun.jersey:jersey-json:jar</exclude>
+ <exclude>com.sun.jersey:jersey-server:jar</exclude>
+ <exclude>com.sun.jersey:jersey-servlet:jar</exclude>
+ <exclude>com.sun.xml.bind:jaxb-impl:jar</exclude>
+ <exclude>commons-beanutils:commons-beanutils:jar</exclude>
+ <exclude>commons-beanutils:commons-beanutils-core:jar</exclude>
+ <exclude>commons-cli:commons-cli:jar</exclude>
+ <exclude>commons-collections:commons-collections:jar</exclude>
+ <exclude>commons-configuration:commons-configuration:jar</exclude>
+ <exclude>commons-dbcp:commons-dbcp:jar</exclude>
+ <exclude>commons-digester:commons-digester:jar</exclude>
+ <exclude>commons-io:commons-io:jar</exclude>
+ <exclude>commons-logging:commons-logging:jar</exclude>
+ <exclude>commons-jxpath:commons-jxpath:jar</exclude>
+ <exclude>commons-lang:commons-lang:jar</exclude>
+ <exclude>commons-net:commons-net:jar</exclude>
+ <exclude>commons-pool:commons-pool:jar</exclude>
+ <exclude>io.micrometer:micrometer-core:jar</exclude>
+ <exclude>io.netty:netty-all:jar</exclude>
+ <exclude>io.netty:netty-buffer:jar</exclude>
+ <exclude>io.netty:netty-codec:jar</exclude>
+ <exclude>io.netty:netty-codec-http:jar</exclude>
+ <exclude>io.netty:netty-common:jar</exclude>
+ <exclude>io.netty:netty-handler:jar</exclude>
+ <exclude>io.netty:netty-transport:jar</exclude>
+ <exclude>io.netty:netty-transport-native-epoll:jar</exclude>
+ <exclude>io.reactivex:rxjava:jar</exclude>
+ <exclude>io.reactivex:rxnetty:jar</exclude>
+ <exclude>io.reactivex:rxnetty-contexts:jar</exclude>
+ <exclude>io.reactivex:rxnetty-servo:jar</exclude>
+ <exclude>javax.activation:activation:jar</exclude>
+ <exclude>javax.annotation:javax.annotation-api:jar</exclude>
+ <exclude>javax.inject:javax.inject:jar</exclude>
+ <exclude>javax.servlet:javax.servlet-api:jar</exclude>
+ <exclude>javax.servlet.jsp:jsp-api:jar</exclude>
+ <exclude>javax.validation:validation-api:jar</exclude>
+ <exclude>javax.websocket:javax.websocket-api:jar</exclude>
+ <exclude>javax.ws.rs:javax.ws.rs-api:jar</exclude>
+ <exclude>javax.xml.bind:jaxb-api:jar</exclude>
+ <exclude>javax.xml.stream:stax-api:jar</exclude>
+ <exclude>mysql:mysql-connector-java:jar</exclude>
+ <exclude>org.antlr:antlr-runtime:jar</exclude>
+ <exclude>org.antlr:stringtemplate:jar</exclude>
+ <exclude>org.apache.commons:commons-compress:jar</exclude>
+ <exclude>org.apache.commons:commons-math:jar</exclude>
+ <exclude>org.apache.commons:commons-math3:jar</exclude>
+ <exclude>org.apache.curator:curator-framework:jar</exclude>
+ <exclude>org.apache.curator:curator-recipes:jar</exclude>
+ <exclude>org.apache.directory.api:api-asn1-api:jar</exclude>
+ <exclude>org.apache.directory.api:api-util:jar</exclude>
+ <exclude>org.apache.directory.server:apacheds-i18n:jar</exclude>
+ <exclude>org.apache.directory.server:apacheds-kerberos-codec:jar</exclude>
+ <exclude>org.apache.hadoop:hadoop-annotations:jar</exclude>
+ <exclude>org.apache.hadoop:hadoop-auth:jar</exclude>
+ <exclude>org.apache.hadoop:hadoop-common:jar</exclude>
+ <exclude>org.apache.hadoop:hadoop-hdfs:jar</exclude>
+ <exclude>org.apache.htrace:htrace-core:jar</exclude>
+ <exclude>org.apache.logging.log4j:log4j-api:jar</exclude>
+ <exclude>org.apache.logging.log4j:log4j-core:jar</exclude>
+ <exclude>org.apache.logging.log4j:log4j-jul:jar</exclude>
+ <exclude>org.apache.logging.log4j:log4j-slf4j-impl:jar</exclude>
+ <exclude>log4j:log4j:jar</exclude>
+ <exclude>org.apache.zookeeper:zookeeper:jar</exclude>
+ <exclude>org.aspectj:aspectjweaver:jar</exclude>
+ <exclude>org.bouncycastle:bcpkix-jdk15on:jar</exclude>
+ <exclude>org.bouncycastle:bcprov-jdk15on:jar</exclude>
+ <exclude>org.codehaus.jackson:jackson-jaxrs:jar</exclude>
+ <exclude>org.codehaus.jackson:jackson-xc:jar</exclude>
+ <exclude>org.codehaus.jettison:jettison:jar</exclude>
+ <exclude>org.codehaus.woodstox:stax2-api:jar</exclude>
+ <exclude>org.codehaus.woodstox:woodstox-core-asl:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-annotations:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-client:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-continuation:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-http:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-io:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-jndi:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-plus:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-security:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-server:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-servlet:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-servlets:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-util:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-webapp:jar</exclude>
+ <exclude>org.eclipse.jetty:jetty-xml:jar</exclude>
+ <exclude>org.eclipse.jetty.websocket:javax-websocket-client-impl:jar</exclude>
+ <exclude>org.eclipse.jetty.websocket:javax-websocket-server-impl:jar</exclude>
+ <exclude>org.eclipse.jetty.websocket:websocket-api:jar</exclude>
+ <exclude>org.eclipse.jetty.websocket:websocket-client:jar</exclude>
+ <exclude>org.eclipse.jetty.websocket:websocket-common:jar</exclude>
+ <exclude>org.eclipse.jetty.websocket:websocket-server:jar</exclude>
+ <exclude>org.eclipse.jetty.websocket:websocket-servlet:jar</exclude>
+ <exclude>org.eclipse.jetty.orbit:javax.servlet:jar</exclude>
+ <exclude>org.eclipse.jetty.aggregate:jetty-all:jar</exclude>
+ <exclude>org.fusesource.leveldbjni:leveldbjni-all:jar</exclude>
+ <exclude>org.glassfish.hk2:class-model:jar</exclude>
+ <exclude>org.glassfish.hk2:config-types:jar</exclude>
+ <exclude>org.glassfish.hk2.external:aopalliance-repackaged:jar</exclude>
+ <exclude>org.glassfish.hk2.external:asm-all-repackaged:jar</exclude>
+ <exclude>org.glassfish.hk2.external:bean-validator:jar</exclude>
+ <exclude>org.glassfish.hk2.external:javax.inject:jar</exclude>
+ <exclude>org.glassfish.hk2:hk2:jar</exclude>
+ <exclude>org.glassfish.hk2:hk2-api:jar</exclude>
+ <exclude>org.glassfish.hk2:hk2-config:jar</exclude>
+ <exclude>org.glassfish.hk2:hk2-core:jar</exclude>
+ <exclude>org.glassfish.hk2:hk2-locator:jar</exclude>
+ <exclude>org.glassfish.hk2:hk2-runlevel:jar</exclude>
+ <exclude>org.glassfish.hk2:hk2-utils:jar</exclude>
+ <exclude>org.glassfish.hk2:osgi-resource-locator:jar</exclude>
+ <exclude>org.glassfish.hk2:spring-bridge:jar</exclude>
+ <exclude>org.glassfish.jersey.bundles:jaxrs-ri:jar</exclude>
+ <exclude>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar</exclude>
+ <exclude>org.glassfish.jersey.containers:jersey-container-servlet:jar</exclude>
+ <exclude>org.glassfish.jersey.containers:jersey-container-servlet-core:jar</exclude>
+ <exclude>org.glassfish.jersey.core:jersey-client:jar</exclude>
+ <exclude>org.glassfish.jersey.core:jersey-common:jar</exclude>
+ <exclude>org.glassfish.jersey.core:jersey-server:jar</exclude>
+ <exclude>org.glassfish.jersey.ext:jersey-entity-filtering:jar</exclude>
+ <exclude>org.glassfish.jersey.ext:jersey-spring3:jar</exclude>
+ <exclude>org.glassfish.jersey.media:jersey-media-jaxb:jar</exclude>
+ <exclude>org.glassfish.jersey.media:jersey-media-json-jackson:jar</exclude>
+ <exclude>org.glassfish.jersey.media:jersey-media-multipart:jar</exclude>
+ <exclude>org.hdrhistogram:HdrHistogram:jar</exclude>
+ <exclude>org.javassist:javassist:jar</exclude>
+ <exclude>org.json4s:json4s-ast_2.11:jar</exclude>
+ <exclude>org.json4s:json4s-core_2.11:jar</exclude>
+ <exclude>org.json4s:json4s-jackson_2.11:jar</exclude>
+ <exclude>org.jsoup:jsoup:jar</exclude>
+ <exclude>org.jvnet.mimepull:mimepull:jar</exclude>
+ <exclude>org.jvnet:tiger-types:jar</exclude>
+ <exclude>org.latencyutils:LatencyUtils:jar</exclude>
+ <exclude>org.mortbay.jasper:apache-el:jar</exclude>
+ <exclude>org.mortbay.jetty:jetty-util:jar</exclude>
+ <exclude>org.mortbay.jetty:jetty:jar</exclude>
+ <exclude>tomcat:jasper-compiler:jar</exclude>
+ <exclude>tomcat:jasper-runtime:jar</exclude>
+ <exclude>org.ow2.asm:asm-analysis:jar</exclude>
+ <exclude>org.ow2.asm:asm-commons:jar</exclude>
+ <exclude>org.ow2.asm:asm-tree:jar</exclude>
+ <exclude>org.reflections:reflections:jar</exclude>
+ <exclude>org.slf4j:jul-to-slf4j:jar</exclude>
+ <exclude>org.slf4j:slf4j-api:jar</exclude>
+ <exclude>org.tukaani:xz:jar</exclude>
+ <exclude>org.yaml:snakeyaml:jar</exclude>
+ <exclude>software.amazon.ion:ion-java:jar</exclude>
+ <exclude>xerces:xercesImpl:jar</exclude>
+ <exclude>xmlenc:xmlenc:jar</exclude>
+ <exclude>xmlpull:xmlpull:jar</exclude>
+ <exclude>xpp3:xpp3_min:jar</exclude>
+ </excludes>
+ </dependencySet>
+ </dependencySets>
+
+ <fileSets>
+ <fileSet>
+ <directory>${basedir}/src/main/resources</directory>
+ <includes>
+ <include>*</include>
+ </includes>
+ <fileMode>0777</fileMode>
+ <outputDirectory>conf</outputDirectory>
+ <lineEnding>unix</lineEnding>
+ </fileSet>
+ </fileSets>
+
+</assembly>
+
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveConnection.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveConnection.java
similarity index 95%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveConnection.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveConnection.java
index 6ba9ced..89321a9 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveConnection.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveConnection.java
@@ -29,6 +29,7 @@ import java.io.Closeable;
import java.io.IOException;
import java.net.URI;
import java.security.PrivilegedExceptionAction;
+import java.util.Map;
import java.util.concurrent.locks.ReentrantLock;
import static org.apache.hadoop.fs.FileSystem.FS_DEFAULT_NAME_KEY;
@@ -54,7 +55,7 @@ public class HiveConnection implements Closeable {
}
}
- public HiveConnection(String uris, String principle, String keytabFilePath) throws Exception {
+ public HiveConnection(String uris, String principle, String keytabFilePath, Map<String, String> hadoopConf) throws Exception {
final HiveConf conf = new HiveConf();
conf.setVar(HiveConf.ConfVars.METASTOREURIS, uris);
conf.setVar(HiveConf.ConfVars.METASTORE_USE_THRIFT_SASL, "true");
@@ -62,15 +63,17 @@ public class HiveConnection implements Closeable {
//Disable the cache in FileSystem
conf.setBoolean(String.format("fs.%s.impl.disable.cache", URI.create(conf.get(FS_DEFAULT_NAME_KEY, "")).getScheme()), true);
conf.set("hadoop.security.authentication", "kerberos");
+ hadoopConf.forEach(conf::set);
principle = principle.substring(0, principle.indexOf("@"));
UserGroupInformation ugi = UserGroupInformationWrapper.loginUserFromKeytab(conf,
principle, keytabFilePath);
hiveClient = getHive(ugi, conf);
}
- public HiveConnection(String uris) throws Exception{
+ public HiveConnection(String uris, Map<String, String> hadoopConf) throws Exception{
final HiveConf conf = new HiveConf();
conf.setVar(HiveConf.ConfVars.METASTOREURIS, uris);
+ hadoopConf.forEach(conf::set);
//Disable the cache in FileSystem
conf.setBoolean(String.format("fs.%s.impl.disable.cache", URI.create(conf.get(FS_DEFAULT_NAME_KEY, "")).getScheme()), true);
//TODO choose an authentication strategy for hive, and then use createProxyUser
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveMetaService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveMetaService.java
similarity index 88%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveMetaService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveMetaService.java
index 1d22f0d..197f3c4 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveMetaService.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveMetaService.java
@@ -21,6 +21,7 @@ import org.apache.linkis.bml.client.BmlClient;
import org.apache.linkis.bml.client.BmlClientFactory;
import org.apache.linkis.bml.protocol.BmlDownloadResponse;
import org.apache.linkis.common.conf.CommonVars;
+import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo;
import org.apache.linkis.metadatamanager.common.domain.MetaPartitionInfo;
import org.apache.linkis.metadatamanager.common.exception.MetaRuntimeException;
@@ -69,14 +70,14 @@ public class HiveMetaService extends AbstractMetaService<HiveConnection> {
LOG.info("Start to download resource id:[" + keytabResourceId +"]");
String keytabFilePath = resource.getFile().getAbsolutePath() + "/" + UUID.randomUUID().toString().replace("-", "");
if(!downloadResource(keytabResourceId, operator, keytabFilePath)){
- throw new MetaRuntimeException("Fail to download resource i:[" + keytabResourceId +"]");
+ throw new MetaRuntimeException("Fail to download resource i:[" + keytabResourceId +"]", null);
}
- conn = new HiveConnection(uris, principle, keytabFilePath);
+ conn = new HiveConnection(uris, principle, keytabFilePath, getExtraHadoopConf(params));
}else{
- throw new MetaRuntimeException("Cannot find the keytab file in connect parameters");
+ throw new MetaRuntimeException("Cannot find the keytab file in connect parameters", null);
}
}else{
- conn = new HiveConnection(uris);
+ conn = new HiveConnection(uris, getExtraHadoopConf(params));
}
return new MetadataConnection<>(conn, true);
}
@@ -194,4 +195,23 @@ public class HiveMetaService extends AbstractMetaService<HiveConnection> {
throw new RuntimeException("Fail to get Hive table properties(获取表参数信息失败)", e);
}
}
+
+ @SuppressWarnings("unchecked")
+ private Map<String, String> getExtraHadoopConf(Map<String, Object> connectParams){
+ Map<String, String> extraHadoopConf = new HashMap<>();
+ Object extraHadoopConfObj = connectParams.get(HiveParamsMapper.PARAM_HADOOP_CONF.getValue());
+ if (Objects.nonNull(extraHadoopConfObj)){
+ try {
+ if (!(extraHadoopConfObj instanceof Map)) {
+ extraHadoopConf = Json.fromJson(String.valueOf(extraHadoopConfObj), Map.class, String.class, String.class);
+ }else{
+ extraHadoopConf = (Map<String, String>)extraHadoopConfObj;
+ }
+ }catch(Exception e){
+ throw new MetaRuntimeException("Cannot parse the param:[" +HiveParamsMapper.PARAM_HADOOP_CONF.getValue() + "]", e);
+ }
+ }
+ return extraHadoopConf;
+ }
+
}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveParamsMapper.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveParamsMapper.java
similarity index 90%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveParamsMapper.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveParamsMapper.java
index 4a04fe2..c556dfb 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveParamsMapper.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/hive/src/main/java/org/apache/linkis/metadatamanager/service/HiveParamsMapper.java
@@ -30,4 +30,6 @@ public class HiveParamsMapper {
public static final CommonVars<String> PARAM_HIVE_KEYTAB =
CommonVars.apply("wds.linkis.server.mdm.service.hive.keytab", "keytab");
+ public static final CommonVars<String> PARAM_HADOOP_CONF =
+ CommonVars.apply("wds.linkis.server.mdm.service.hadoop.conf", "hadoopConf");
}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/pom.xml
similarity index 93%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/pom.xml
index 63bcd8e..32fbcf5 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/pom.xml
@@ -25,7 +25,7 @@
<version>1.0.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>linkis-metadatamanager-service-kafka</artifactId>
+ <artifactId>linkis-metadata-manager-service-kafka</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -34,19 +34,22 @@
<dependencies>
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-metadatamanager-common</artifactId>
+ <artifactId>linkis-metadata-manager-common</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-module</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
<!--bml client-->
<dependency>
<groupId>org.apache.linkis</groupId>
<artifactId>linkis-bml-client</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
@@ -54,11 +57,6 @@
<artifactId>kafka-clients</artifactId>
<version>2.7.0</version>
</dependency>
- <dependency>
- <groupId>org.apache.linkis</groupId>
- <artifactId>linkis-module</artifactId>
- <version>${linkis.version}</version>
- </dependency>
</dependencies>
<build>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/assembly/distribution.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/assembly/distribution.xml
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/assembly/distribution.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/assembly/distribution.xml
index df243bf..80b6140 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/assembly/distribution.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/assembly/distribution.xml
@@ -19,13 +19,13 @@
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>linkis-mdm-service-kafka</id>
+ <id>linkis-metadata-manager-service-kafka</id>
<formats>
<format>zip</format>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
- <baseDirectory>linkis-mdm-service-kafka</baseDirectory>
+ <baseDirectory>linkis-metadata-manager-service-kafka</baseDirectory>
<dependencySets>
<dependencySet>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaConnection.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaConnection.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaConnection.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaConnection.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaMetaService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaMetaService.java
similarity index 98%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaMetaService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaMetaService.java
index cb753ed..4223953 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaMetaService.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaMetaService.java
@@ -68,11 +68,11 @@ public class KafkaMetaService extends AbstractMetaService<KafkaConnection> {
LOG.info("Start to download resource id:[" + keytabResourceId +"]");
String keytabFilePath = resource.getFile().getAbsolutePath() + "/" + UUID.randomUUID().toString().replace("-", "");
if(!downloadResource(keytabResourceId, operator, keytabFilePath)){
- throw new MetaRuntimeException("Fail to download resource i:[" + keytabResourceId +"]");
+ throw new MetaRuntimeException("Fail to download resource i:[" + keytabResourceId +"]", null);
}
conn = new KafkaConnection(brokers, principle, keytabFilePath);
}else{
- throw new MetaRuntimeException("Cannot find the keytab file in connect parameters");
+ throw new MetaRuntimeException("Cannot find the keytab file in connect parameters", null);
}
}else{
conn = new KafkaConnection(brokers);
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaParamsMapper.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaParamsMapper.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaParamsMapper.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/kafka/src/main/java/org/apache/linkis/metadatamanager/service/KafkaParamsMapper.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/pom.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/pom.xml
similarity index 95%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/pom.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/pom.xml
index 59515fb..93fe9a9 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/pom.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/pom.xml
@@ -25,7 +25,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>linkis-metadatamanager-service-mysql</artifactId>
+ <artifactId>linkis-metadata-manager-service-mysql</artifactId>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -35,8 +35,9 @@
<dependencies>
<dependency>
<groupId>org.apache.linkis</groupId>
- <artifactId>linkis-metadatamanager-common</artifactId>
+ <artifactId>linkis-metadata-manager-common</artifactId>
<version>${linkis.version}</version>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.linkis</groupId>
@@ -52,6 +53,7 @@
<artifactId>mysql-connector-java</artifactId>
</exclusion>
</exclusions>
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/assembly/distribution.xml b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/assembly/distribution.xml
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/assembly/distribution.xml
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/assembly/distribution.xml
index b28b3ea..8d48794 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/assembly/distribution.xml
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/assembly/distribution.xml
@@ -19,13 +19,13 @@
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>linkis-mdm-server</id>
+ <id>linkis-metadata-manager-service-mysql</id>
<formats>
<format>zip</format>
<format>dir</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
- <baseDirectory>linkis-mdm-server</baseDirectory>
+ <baseDirectory>linkis-metadata-manager-service-mysql</baseDirectory>
<dependencySets>
<dependencySet>
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlMetaService.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/MysqlMetaService.java
similarity index 96%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlMetaService.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/MysqlMetaService.java
index 3b1ba0a..8f7a5cc 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlMetaService.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/MysqlMetaService.java
@@ -17,7 +17,7 @@
package org.apache.linkis.metadatamanager.service;
-import org.apache.linkis.metadatamanager.common.Json;
+import org.apache.linkis.datasourcemanager.common.util.json.Json;
import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo;
import org.apache.linkis.metadatamanager.common.service.AbstractMetaService;
import org.apache.linkis.metadatamanager.common.service.MetadataConnection;
@@ -29,7 +29,7 @@ import java.util.List;
import java.util.Map;
@Component
-public class SqlMetaService extends AbstractMetaService<SqlConnection> {
+public class MysqlMetaService extends AbstractMetaService<SqlConnection> {
@Override
public MetadataConnection<SqlConnection> getConnection(String operator, Map<String, Object> params) throws Exception {
String host = String.valueOf(params.getOrDefault(SqlParamsMapper.PARAM_SQL_HOST.getValue(), ""));
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlConnection.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlConnection.java
similarity index 94%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlConnection.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlConnection.java
index 21a5d84..80de35c 100644
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlConnection.java
+++ b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlConnection.java
@@ -40,6 +40,12 @@ public class SqlConnection implements Closeable {
private static final CommonVars<String> SQL_CONNECT_URL =
CommonVars.apply("wds.linkis.server.mdm.service.sql.url", "jdbc:mysql://%s:%s/%s");
+ private static final CommonVars<Integer> SQL_CONNECT_TIMEOUT =
+ CommonVars.apply("wds.linkis.server.mdm.service.sql.connect.timeout", 3000);
+
+ private static final CommonVars<Integer> SQL_SOCKET_TIMEOUT =
+ CommonVars.apply("wds.linkis.server.mdm.service.sql.socket.timeout", 6000);
+
private Connection conn;
private ConnectMessage connectMessage;
@@ -205,6 +211,8 @@ public class SqlConnection implements Closeable {
this.username = username;
this.password = password;
this.extraParams = extraParams;
+ this.extraParams.put("connectTimeout", SQL_CONNECT_TIMEOUT.getValue());
+ this.extraParams.put("socketTimeout", SQL_SOCKET_TIMEOUT.getValue());
}
}
}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlParamsMapper.java b/linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlParamsMapper.java
similarity index 100%
rename from linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlParamsMapper.java
rename to linkis-public-enhancements/linkis-datasource/linkis-metadata-manager/service/mysql/src/main/java/org/apache/linkis/metadatamanager/service/SqlParamsMapper.java
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/Json.java b/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/Json.java
deleted file mode 100644
index 3840444..0000000
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/common/src/main/java/org/apache/linkis/metadatamanager/common/Json.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * 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.linkis.metadatamanager.common;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.*;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-
-/**
- * Json utils
- */
-public class Json {
- private static final String PREFIX = "[";
- private static final String SUFFIX = "]";
- private static final Logger logger = LoggerFactory.getLogger(Json.class);
-
- private static ObjectMapper mapper;
-
- static{
- mapper = new ObjectMapper();
- mapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);
- mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
- mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
- mapper.configure(DeserializationFeature.READ_ENUMS_USING_TO_STRING, true);
- mapper.configure(SerializationFeature.WRITE_ENUMS_USING_TO_STRING, true);
- mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
- //empty beans allowed
- mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
- //ignore unknown properties
- mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
- //cancel to scape non ascii
- mapper.configure(JsonGenerator.Feature.ESCAPE_NON_ASCII, false);
- }
- private Json(){}
-
- @SuppressWarnings("unchecked")
- public static <T> T fromJson(String json, Class<?> clazz, Class<?>... parameters){
- if(StringUtils.isNotBlank(json)){
- try{
- if(parameters.length > 0){
- return (T)mapper.readValue(json, mapper.getTypeFactory().constructParametricType(clazz, parameters));
- }
- if(json.startsWith(PREFIX)
- && json.endsWith(SUFFIX)){
- JavaType javaType = mapper.getTypeFactory()
- .constructParametricType(ArrayList.class, clazz);
- return mapper.readValue(json, javaType);
- }
- return (T)mapper.readValue(json, clazz);
- } catch (Exception e) {
- logger.info(e.getLocalizedMessage());
- throw new RuntimeException(e);
- }
- }
- return null;
- }
-
- public static <T> T fromJson(InputStream stream, Class<?> clazz, Class<?>... parameters){
- StringBuilder builder = new StringBuilder();
- String jsonStr = null;
- try{
- BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
- while((jsonStr = reader.readLine()) != null){
- builder.append(jsonStr);
- }
- reader.close();
- }catch(Exception e){
- logger.info(e.getLocalizedMessage());
- throw new RuntimeException(e);
- }
- return fromJson(builder.toString(), clazz, parameters);
- }
-
- public static String toJson(Object obj, Class<?> model){
- ObjectWriter writer = mapper.writer();
- if(null != obj){
- try{
- if(null != model){
- writer = writer.withView(model);
- }
- return writer.writeValueAsString(obj);
- } catch (JsonProcessingException e) {
- logger.info(e.getLocalizedMessage());
- throw new RuntimeException(e);
- }
- }
- return null;
- }
-
-}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/loader/MetaClassLoaderManager.java b/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/loader/MetaClassLoaderManager.java
deleted file mode 100644
index b9ac443..0000000
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/loader/MetaClassLoaderManager.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * 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.linkis.metadatamanager.server.loader;
-
-import org.apache.linkis.common.conf.CommonVars;
-import org.apache.linkis.common.exception.ErrorException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.BiFunction;
-import java.util.stream.Collectors;
-
-public class MetaClassLoaderManager {
- private final Map<String, ClassLoader> classLoaders = new ConcurrentHashMap<>();
- private final Map<String, Class<?>> clazzes = new ConcurrentHashMap<>();
- private final Map<String, Object> instances = new ConcurrentHashMap<>();
- public static CommonVars<String> LIB_DIR = CommonVars.apply("wds.linkis.server.mdm.service.lib.dir", "/tmp/mdm/lib");
- private static final Logger LOGGER = LoggerFactory.getLogger(MetaClassLoaderManager.class);
-
- public BiFunction<String, Object[], Object> getInvoker(String dsType) throws ErrorException {
- ClassLoader extClassLoader = MetaClassLoaderManager.class.getClassLoader().getParent();
- classLoaders.computeIfAbsent(dsType,(x)->{
- String lib = LIB_DIR.getValue();
- String stdLib = lib.endsWith("/") ? lib.replaceAll(".$", "") : lib;
- String componentLib = stdLib + "/" + dsType;
-
- try {
- return new URLClassLoader(getJarsUrlsOfPath(componentLib).toArray(new URL[0]), extClassLoader);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- });
- if(classLoaders.get(dsType) == null){
- throw new ErrorException(-1, "Error in creating classloader");
- }
- ClassLoader childClassLoader = classLoaders.get(dsType);
- String prefix = dsType.substring(0, 1).toUpperCase() + dsType.substring(1);
- String className = "org.apache.linkis.metadatamanager.service." + prefix + "MetaService";
- Thread.currentThread().setContextClassLoader(childClassLoader);
-
- clazzes.computeIfAbsent(dsType, (x)->{
- try {
- ClassLoader classLoader = classLoaders.get(dsType);
- return classLoader.loadClass(className);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- });
-
- if(clazzes.get(dsType) == null){
- throw new ErrorException(-1, "Error in loading class " + className);
- }
-
- instances.computeIfAbsent(dsType, (x)->{
- try {
- return clazzes.get(dsType).newInstance();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- });
- if(instances.get(dsType) == null){
- throw new ErrorException(-1, "Error in instantiate org.apache.linkis.metadatamanager.service.MetaService");
- }
-
-
- Method[] childMethods = clazzes.get(dsType).getMethods();
- return (String m, Object...args)-> {
- ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
- try {
- Method method = Arrays.stream(childMethods)
- .filter(eachMethod -> eachMethod.getName().equals(m)).collect(Collectors.toList()).get(0);
- return method.invoke(instances.get(dsType), args);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }finally {
- Thread.currentThread().setContextClassLoader(currentClassLoader);
- }
- };
- }
-
-
- public List<URL> getJarsUrlsOfPath(String path) throws MalformedURLException {
- File file = new File(path);
- List<URL> jars = new ArrayList<>();
- if (file.listFiles() != null){
- for(File f : file.listFiles()){
- if (!f.isDirectory() && f.getName().endsWith(".jar")){
- jars.add(f.toURI().toURL());
- }
- }
- }
- return jars;
- }
-}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/restful/MetadataCoreRestful.java b/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/restful/MetadataCoreRestful.java
deleted file mode 100644
index ddbb12c..0000000
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/restful/MetadataCoreRestful.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * 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.linkis.metadatamanager.server.restful;
-
-import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo;
-import org.apache.linkis.metadatamanager.common.domain.MetaPartitionInfo;
-import org.apache.linkis.metadatamanager.server.service.MetadataAppService;
-import org.apache.linkis.server.Message;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import javax.ws.rs.*;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import java.util.List;
-import java.util.Map;
-
-@Path("/metadata")
-@Consumes(MediaType.APPLICATION_JSON)
-@Produces(MediaType.APPLICATION_JSON)
-@Component
-public class MetadataCoreRestful {
-
- @Autowired
- private MetadataAppService metadataAppService;
-
- @GET
- @Path("/dbs/{data_source_id}")
- public Response getDatabases(@PathParam("data_source_id")String dataSourceId,
- @QueryParam("system")String system){
- try{
- if(StringUtils.isBlank(system)){
- return Message.messageToResponse(Message.error("'system' is missing[缺少系统名]"));
- }
- List<String> databases = metadataAppService.getDatabasesByDsId(dataSourceId, system);
- return Message.messageToResponse(Message.ok().data("dbs", databases));
- }catch(Exception e){
- return Message.messageToResponse(
- Message.error("Fail to get database list[获取库信息失败], id:[" + dataSourceId +"], system:[" + system + "]", e));
- }
- }
-
- @GET
- @Path("/tables/{data_source_id}/db/{database}")
- public Response getTables(@PathParam("data_source_id")String dataSourceId,
- @PathParam("database")String database,
- @QueryParam("system")String system){
- try{
- if(StringUtils.isBlank(system)){
- return Message.messageToResponse(Message.error("'system' is missing[缺少系统名]"));
- }
- List<String> tables = metadataAppService.getTablesByDsId(dataSourceId, database, system);
- return Message.messageToResponse(Message.ok().data("tables", tables));
- }catch(Exception e){
- return Message.messageToResponse(
- Message.error("Fail to get table list[获取表信息失败], id:[" + dataSourceId +"]" +
- ", system:[" + system + "], database:[" +database +"]", e));
- }
- }
-
- @GET
- @Path("/props/{data_source_id}/db/{database}/table/{table}")
- public Response getTableProps(@PathParam("data_source_id")String dataSourceId,
- @PathParam("database")String database,
- @PathParam("table") String table,
- @QueryParam("system")String system){
- try{
- if(StringUtils.isBlank(system)){
- return Message.messageToResponse(Message.error("'system' is missing[缺少系统名]"));
- }
- Map<String, String> tableProps = metadataAppService.getTablePropsByDsId(dataSourceId, database, table, system);
- return Message.messageToResponse(Message.ok().data("props", tableProps));
- }catch(Exception e){
- return Message.messageToResponse(
- Message.error("Fail to get table properties[获取表参数信息失败], id:[" + dataSourceId +"]" +
- ", system:[" + system + "], database:[" +database +"], table:[" + table +"]", e));
- }
- }
-
- @GET
- @Path("/partitions/{data_source_id}/db/{database}/table/{table}")
- public Response getPartitions(@PathParam("data_source_id")String dataSourceId,
- @PathParam("database")String database,
- @PathParam("table") String table,
- @QueryParam("system")String system){
- try{
- if(StringUtils.isBlank(system)){
- return Message.messageToResponse(Message.error("'system' is missing[缺少系统名]"));
- }
- MetaPartitionInfo partitionInfo = metadataAppService.getPartitionsByDsId(dataSourceId, database, table, system);
- return Message.messageToResponse(Message.ok().data("props", partitionInfo));
- }catch(Exception e){
- return Message.messageToResponse(
- Message.error("Fail to get partitions[获取表分区信息失败], id:[" + dataSourceId +"]" +
- ", system:[" + system + "], database:[" +database +"], table:[" + table +"]"));
- }
- }
-
- @GET
- @Path("/columns/{data_source_id}/db/{database}/table/{table}")
- public Response getColumns(@PathParam("data_source_id")String dataSourceId,
- @PathParam("database")String database,
- @PathParam("table") String table,
- @QueryParam("system")String system){
- try{
- if(StringUtils.isBlank(system)){
- return Message.messageToResponse(Message.error("'system' is missing[缺少系统名]"));
- }
- List<MetaColumnInfo> columns = metadataAppService.getColumns(dataSourceId, database, table, system);
- return Message.messageToResponse(Message.ok().data("columns", columns));
- }catch(Exception e){
- return Message.messageToResponse(
- Message.error("Fail to get column list[获取表字段信息失败], id:[" + dataSourceId +"]" +
- ", system:[" + system + "], database:[" +database +"], table:[" + table +"]", e));
- }
- }
-
-}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/impl/MetadataAppServiceImpl.java b/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/impl/MetadataAppServiceImpl.java
deleted file mode 100644
index e906c54..0000000
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/server/src/main/java/org/apache/linkis/metadatamanager/server/service/impl/MetadataAppServiceImpl.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * 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.linkis.metadatamanager.server.service.impl;
-
-import org.apache.linkis.common.exception.ErrorException;
-import org.apache.linkis.datasourcemanager.common.util.json.Json;
-import org.apache.linkis.datasourcemanager.common.protocol.DsInfoQueryRequest;
-import org.apache.linkis.datasourcemanager.common.protocol.DsInfoResponse;
-import org.apache.linkis.metadatamanager.common.MdmConfiguration;
-import org.apache.linkis.metadatamanager.common.domain.MetaColumnInfo;
-import org.apache.linkis.metadatamanager.common.domain.MetaPartitionInfo;
-import org.apache.linkis.metadatamanager.server.service.MetadataAppService;
-import org.apache.linkis.metadatamanager.common.protocol.*;
-import org.apache.linkis.rpc.Sender;
-import org.apache.commons.lang.StringUtils;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.PostConstruct;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.BiFunction;
-
-@Service
-public class MetadataAppServiceImpl implements MetadataAppService {
- private Sender dataSourceRpcSender;
- private MetaClassLoaderManager metaClassLoaderManager;
-
- @PostConstruct
- public void init(){
- dataSourceRpcSender = Sender.getSender(MdmConfiguration.DATA_SOURCE_SERVICE_APPLICATION.getValue());
- metaClassLoaderManager = new MetaClassLoaderManager();
- }
-
-
- @Override
- public void getConnection(String dataSourceType, String operator, Map<String, Object> params) throws Exception {
- BiFunction<String, Object[], Object> invoker = metaClassLoaderManager.getInvoker(dataSourceType);
- invoker.apply("getConnection", new Object[]{operator, params});
- }
-
- @Override
- public List<String> getDatabasesByDsId(String dataSourceId, String system) throws ErrorException {
- DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system);
- if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
- BiFunction<String, Object[], Object> invoker = metaClassLoaderManager.getInvoker(dsInfoResponse.dsType());
- return (List<String>)invoker.apply("getDatabases", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params()});
- }
- return new ArrayList<>();
- }
-
- @Override
- public List<String> getTablesByDsId(String dataSourceId, String database, String system) throws ErrorException {
- DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system);
- if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
- BiFunction<String, Object[], Object> invoker = metaClassLoaderManager.getInvoker(dsInfoResponse.dsType());
- return (List<String>)invoker.apply("getTables", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params(), database});
- }
- return new ArrayList<>();
- }
-
- @Override
- public Map<String, String> getTablePropsByDsId(String dataSourceId, String database, String table, String system) throws ErrorException {
- DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system);
- if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
- BiFunction<String, Object[], Object> invoker = metaClassLoaderManager.getInvoker(dsInfoResponse.dsType());
- return (Map<String, String>)invoker.apply("getTableProps", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params(), database, table});
- }
- return new HashMap<>();
- }
-
- @Override
- public MetaPartitionInfo getPartitionsByDsId(String dataSourceId, String database, String table, String system) throws ErrorException {
- DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system);
- if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
- BiFunction<String, Object[], Object> invoker = metaClassLoaderManager.getInvoker(dsInfoResponse.dsType());
- Object partitions = invoker.apply("getPartitions", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params(), database, table});
- try {
- String partitionsJson = BDPJettyServerHelper.jacksonJson().writeValueAsString(partitions);
- return BDPJettyServerHelper.jacksonJson().readValue(partitionsJson,MetaPartitionInfo.class);
- }catch (Exception e){
- throw new ErrorException(-1, "Partitions Error msg:"+e.getMessage());
- }
- }
- return new MetaPartitionInfo();
- }
-
- @Override
- public List<MetaColumnInfo> getColumns(String dataSourceId, String database, String table, String system) throws ErrorException {
- DsInfoResponse dsInfoResponse = reqToGetDataSourceInfo(dataSourceId, system);
- if(StringUtils.isNotBlank(dsInfoResponse.dsType())){
- BiFunction<String, Object[], Object> invoker = metaClassLoaderManager.getInvoker(dsInfoResponse.dsType());
- return (List<MetaColumnInfo>)invoker.apply("getColumns", new Object[]{dsInfoResponse.creator(), dsInfoResponse.params(), database, table});
- }
- return new ArrayList<>();
- }
-
- /**
- * Request to get data source information
- * (type and connection parameters)
- * @param dataSourceId data source id
- * @param system system
- * @return
- * @throws ErrorException
- */
- public DsInfoResponse reqToGetDataSourceInfo(String dataSourceId, String system) throws ErrorException{
- Object rpcResult = null;
- try {
- rpcResult = dataSourceRpcSender.ask(new DsInfoQueryRequest(dataSourceId, system));
- }catch(Exception e){
- throw new ErrorException(-1, "Remote Service Error[远端服务出错, 联系运维处理]");
- }
- if(rpcResult instanceof DsInfoResponse){
- DsInfoResponse response = (DsInfoResponse)rpcResult;
- if(!response.status()){
- throw new ErrorException(-1, "Error in Data Source Manager Server[数据源服务出错]");
- }
- return response;
- }else{
- throw new ErrorException(-1, "Remote Service Error[远端服务出错, 联系运维处理]");
- }
- }
-
-}
diff --git a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/assembly/distribution.xml b/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/assembly/distribution.xml
deleted file mode 100644
index ccdc3c0..0000000
--- a/linkis-public-enhancements/linkis-datasource/metadatamanager/service/mysql/src/main/assembly/distribution.xml
+++ /dev/null
@@ -1,56 +0,0 @@
- <!--
- ~ 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.
- -->
-
-<assembly
- xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/2.3 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>linkis-mdm-service-mysql</id>
- <formats>
- <format>zip</format>
- <format>dir</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <baseDirectory>linkis-mdm-service-mysql</baseDirectory>
-
- <dependencySets>
- <dependencySet>
- <!-- Enable access to all projects in the current multimodule build! <useAllReactorProjects>true</useAllReactorProjects> -->
- <!-- Now, select which projects to include in this module-set. -->
- <outputDirectory>lib</outputDirectory>
- <useProjectArtifact>true</useProjectArtifact>
- <useTransitiveDependencies>true</useTransitiveDependencies>
- <unpack>false</unpack>
- <useStrictFiltering>true</useStrictFiltering>
- <useTransitiveFiltering>true</useTransitiveFiltering>
- </dependencySet>
- </dependencySets>
-
- <fileSets>
- <fileSet>
- <directory>${basedir}/src/main/resources</directory>
- <includes>
- <include>*</include>
- </includes>
- <fileMode>0777</fileMode>
- <outputDirectory>conf</outputDirectory>
- <lineEnding>unix</lineEnding>
- </fileSet>
- </fileSets>
-
-</assembly>
-
diff --git a/linkis-public-enhancements/linkis-datasource/pom.xml b/linkis-public-enhancements/linkis-datasource/pom.xml
new file mode 100644
index 0000000..2eec0a4
--- /dev/null
+++ b/linkis-public-enhancements/linkis-datasource/pom.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>linkis</artifactId>
+ <groupId>org.apache.linkis</groupId>
+ <version>1.0.3</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>linkis-datasource</artifactId>
+ <packaging>pom</packaging>
+ <modules>
+ <module>linkis-datasource-manager/common</module>
+ <module>linkis-metadata-manager/common</module>
+ <module>linkis-datasource-manager/server</module>
+ <module>linkis-metadata-manager/service/elasticsearch</module>
+ <module>linkis-metadata-manager/service/hive</module>
+ <module>linkis-metadata-manager/service/kafka</module>
+ <module>linkis-metadata-manager/service/mysql</module>
+ <module>linkis-metadata-manager/server</module>
+ <module>linkis-datasource-client</module>
+ </modules>
+</project>
\ No newline at end of file
diff --git a/linkis-public-enhancements/pom.xml b/linkis-public-enhancements/pom.xml
index ecf10c0..6de5d0d 100644
--- a/linkis-public-enhancements/pom.xml
+++ b/linkis-public-enhancements/pom.xml
@@ -33,16 +33,8 @@
<modules>
<module>linkis-bml</module>
<module>linkis-context-service</module>
+ <module>linkis-datasource</module>
<module>linkis-datasource/linkis-metadata</module>
- <module>linkis-datasource/datasourcemanager/common</module>
- <module>linkis-datasource/datasource-client</module>
- <module>linkis-datasource/datasourcemanager/server</module>
- <module>linkis-datasource/metadatamanager/common</module>
- <module>linkis-datasource/metadatamanager/server</module>
- <module>linkis-datasource/metadatamanager/service/elasticsearch</module>
- <module>linkis-datasource/metadatamanager/service/mysql</module>
- <module>linkis-datasource/metadatamanager/service/hive</module>
- <module>linkis-datasource/metadatamanager/service/kafka</module>
<module>linkis-publicservice</module>
</modules>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org