This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev by this push:
new 2eb6320e3 [Refactor] Refactor Setting and fix code style (#2969)
2eb6320e3 is described below
commit 2eb6320e347f5cabf485ec84d1ddd9c6915c4483
Author: gongzhongqiang <[email protected]>
AuthorDate: Thu Aug 24 17:49:12 2023 +0800
[Refactor] Refactor Setting and fix code style (#2969)
* [Refactor] Refactor Setting and fix code style
* Address comment
---
.../apache/streampark/common/fs/FsOperator.scala | 6 ++
.../streampark/console/base/util/FileUtils.java | 2 +
.../console/base/util/FreemarkerUtils.java | 2 +
.../streampark/console/base/util/GitUtils.java | 2 +
.../streampark/console/core/bean/EmailConfig.java | 75 ++++++++++++++++
.../streampark/console/core/bean/MavenConfig.java | 99 ++++++++++++++++++++++
.../streampark/console/core/bean/SenderEmail.java | 31 -------
.../console/core/runner/EnvInitializer.java | 69 ++-------------
.../console/core/service/SettingService.java | 24 +-----
.../alert/impl/EmailAlertNotifyServiceImpl.java | 21 +++--
.../core/service/impl/CommonServiceImpl.java | 7 +-
.../core/service/impl/SettingServiceImpl.java | 69 ++-------------
.../core/service/alert/AlertServiceTest.java | 30 +++----
13 files changed, 233 insertions(+), 204 deletions(-)
diff --git
a/streampark-common/src/main/scala/org/apache/streampark/common/fs/FsOperator.scala
b/streampark-common/src/main/scala/org/apache/streampark/common/fs/FsOperator.scala
index 131397df4..b7565371c 100644
---
a/streampark-common/src/main/scala/org/apache/streampark/common/fs/FsOperator.scala
+++
b/streampark-common/src/main/scala/org/apache/streampark/common/fs/FsOperator.scala
@@ -41,6 +41,12 @@ abstract class FsOperator {
def mkdirs(path: String): Unit
+ def mkdirsIfNotExists(path: String): Unit = {
+ if (!exists(path)) {
+ mkdirs(path)
+ }
+ }
+
def delete(path: String): Unit
def mkCleanDirs(path: String): Unit
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/FileUtils.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/FileUtils.java
index 544e603ea..7bca56d27 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/FileUtils.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/FileUtils.java
@@ -24,6 +24,8 @@ import java.io.RandomAccessFile;
/** The file utils. */
public class FileUtils {
+ private FileUtils() {}
+
/**
* Read the end of the file.
*
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/FreemarkerUtils.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/FreemarkerUtils.java
index 518a056b4..73fe3744d 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/FreemarkerUtils.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/FreemarkerUtils.java
@@ -40,6 +40,8 @@ public class FreemarkerUtils {
CONFIGURATION.setDefaultEncoding("UTF-8");
}
+ private FreemarkerUtils() {}
+
public static Template loadTemplateFile(String fileName) throws
ExceptionInInitializerError {
try {
return CONFIGURATION.getTemplate(fileName);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/GitUtils.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/GitUtils.java
index d2eec554c..7ef1a14da 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/GitUtils.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/util/GitUtils.java
@@ -46,6 +46,8 @@ import java.util.List;
/** */
public class GitUtils {
+ private GitUtils() {}
+
public static Git clone(Project project) throws GitAPIException {
CloneCommand cloneCommand =
Git.cloneRepository().setURI(project.getUrl()).setDirectory(project.getAppSource());
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/EmailConfig.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/EmailConfig.java
new file mode 100644
index 000000000..71425d896
--- /dev/null
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/EmailConfig.java
@@ -0,0 +1,75 @@
+/*
+ * 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.streampark.console.core.bean;
+
+import org.apache.streampark.console.core.entity.Setting;
+
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Map;
+
+/**
+ * The EmailConfig class represents the configuration for an email system. It
holds the SMTP host,
+ * port, from address, username, password, and whether SSL is enabled.
+ *
+ * <p>This class also provides a static factory method to create an
EmailConfig object from a map of
+ * settings.
+ */
+@Data
+@Slf4j
+public class EmailConfig {
+
+ public static final String KEY_ALERT_EMAIL_HOST = "alert.email.host";
+ public static final String KEY_ALERT_EMAIL_PORT = "alert.email.port";
+ public static final String KEY_ALERT_EMAIL_FROM = "alert.email.from";
+ public static final String KEY_ALERT_EMAIL_USERNAME = "alert.email.userName";
+ public static final String KEY_ALERT_EMAIL_PASSWORD = "alert.email.password";
+ public static final String KEY_ALERT_EMAIL_SSL = "alert.email.ssl";
+
+ private String smtpHost;
+ private Integer smtpPort;
+ private String from;
+ private String userName;
+ private String password;
+ private boolean ssl;
+
+ /**
+ * Constructs the EmailConfig object from the given settings map.
+ *
+ * @param settingMap a map of settings
+ * @return a new EmailConfig object that has its fields set according to the
provided settings
+ */
+ public static EmailConfig fromSetting(Map<String, Setting> settingMap) {
+ try {
+ EmailConfig emailConfig = new EmailConfig();
+
emailConfig.setSmtpHost(settingMap.get(KEY_ALERT_EMAIL_HOST).getSettingValue());
+ emailConfig.setSmtpPort(
+
Integer.valueOf(settingMap.get(KEY_ALERT_EMAIL_PORT).getSettingValue()));
+
emailConfig.setFrom(settingMap.get(KEY_ALERT_EMAIL_FROM).getSettingValue());
+
emailConfig.setUserName(settingMap.get(KEY_ALERT_EMAIL_USERNAME).getSettingValue());
+
emailConfig.setPassword(settingMap.get(KEY_ALERT_EMAIL_PASSWORD).getSettingValue());
+ emailConfig.setSsl(
+
Boolean.parseBoolean(settingMap.get(KEY_ALERT_EMAIL_SSL).getSettingValue()));
+ return emailConfig;
+ } catch (Exception e) {
+ log.warn("Failed to create EmailConfig from settings", e);
+ }
+ return null;
+ }
+}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/MavenConfig.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/MavenConfig.java
new file mode 100644
index 000000000..fc619d562
--- /dev/null
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/MavenConfig.java
@@ -0,0 +1,99 @@
+/*
+ * 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.streampark.console.core.bean;
+
+import org.apache.streampark.common.conf.CommonConfig;
+import org.apache.streampark.common.conf.InternalConfigHolder;
+import org.apache.streampark.console.core.entity.Setting;
+
+import org.apache.commons.lang3.StringUtils;
+
+import lombok.Data;
+
+import java.util.Map;
+
+/**
+ * This class represents the Maven configuration for the application. It
provides methods to
+ * retrieve the various Maven configuration options.
+ */
+@Data
+public class MavenConfig {
+
+ /** File path for Maven settings. */
+ private String mvnSettings;
+
+ /** Repository URL for Maven. */
+ private String mvnRepository;
+
+ /** User for Maven authentication. */
+ private String mvnAuthUser;
+
+ /** Password for Maven authentication. */
+ private String mvnAuthPassword;
+
+ /** */
+ public static MavenConfig fromSetting(Map<String, Setting> settings) {
+ MavenConfig mavenConfig = new MavenConfig();
+
+ if (settings.containsKey(CommonConfig.MAVEN_SETTINGS_PATH().key())) {
+ mavenConfig.setMvnSettings(
+
settings.get(CommonConfig.MAVEN_SETTINGS_PATH().key()).getSettingValue());
+ }
+
+ if (settings.containsKey(CommonConfig.MAVEN_REMOTE_URL().key())) {
+ mavenConfig.setMvnRepository(
+
settings.get(CommonConfig.MAVEN_REMOTE_URL().key()).getSettingValue());
+ }
+
+ if (settings.containsKey(CommonConfig.MAVEN_AUTH_USER().key())) {
+ mavenConfig.setMvnAuthUser(
+
settings.get(CommonConfig.MAVEN_AUTH_USER().key()).getSettingValue());
+ }
+
+ if (settings.containsKey(CommonConfig.MAVEN_AUTH_PASSWORD().key())) {
+ mavenConfig.setMvnAuthPassword(
+
settings.get(CommonConfig.MAVEN_AUTH_PASSWORD().key()).getSettingValue());
+ }
+
+ return mavenConfig;
+ }
+
+ /**
+ * Updates the internal configuration of Maven based on the assigned
instance variables. If the
+ * instance variables mvnSettings, mvnRepository, mvnAuthUser, or
mvnAuthPassword have non-empty
+ * values, they will be updated in the internal configuration.
+ */
+ public void updateConfig() {
+
+ if (StringUtils.isNotEmpty(mvnSettings)) {
+ InternalConfigHolder.set(CommonConfig.MAVEN_SETTINGS_PATH(),
mvnSettings);
+ }
+
+ if (StringUtils.isNotEmpty(mvnRepository)) {
+ InternalConfigHolder.set(CommonConfig.MAVEN_REMOTE_URL(), mvnRepository);
+ }
+
+ if (StringUtils.isNotEmpty(mvnAuthUser)) {
+ InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_USER(), mvnAuthUser);
+ }
+
+ if (StringUtils.isNotEmpty(mvnAuthPassword)) {
+ InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_PASSWORD(),
mvnAuthPassword);
+ }
+ }
+}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SenderEmail.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SenderEmail.java
deleted file mode 100644
index f2d16ebf9..000000000
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/bean/SenderEmail.java
+++ /dev/null
@@ -1,31 +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.streampark.console.core.bean;
-
-import lombok.Data;
-
-@Data
-public class SenderEmail {
-
- private String smtpHost;
- private Integer smtpPort;
- private String from;
- private String userName;
- private String password;
- private boolean ssl;
-}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
index c6cc24ed8..db8ce02ea 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/runner/EnvInitializer.java
@@ -32,8 +32,6 @@ import org.apache.streampark.console.core.entity.FlinkEnv;
import org.apache.streampark.console.core.service.SettingService;
import org.apache.streampark.flink.kubernetes.v2.fs.EmbeddedFileServer;
-import org.apache.commons.lang3.StringUtils;
-
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
@@ -115,25 +113,7 @@ public class EnvInitializer implements ApplicationRunner {
InternalConfigHolder.set(config, springEnv.getProperty(key,
config.classType()));
});
- String mvnSettings = settingService.getMavenSettings();
- if (StringUtils.isNotEmpty(mvnSettings)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_SETTINGS_PATH(),
mvnSettings);
- }
-
- String mvnRepository = settingService.getMavenRepository();
- if (StringUtils.isNotEmpty(mvnRepository)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_REMOTE_URL(), mvnRepository);
- }
-
- String mvnAuthUser = settingService.getMavenAuthUser();
- if (StringUtils.isNotEmpty(mvnAuthUser)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_USER(), mvnAuthUser);
- }
-
- String mvnAuthPassword = settingService.getMavenAuthPassword();
- if (StringUtils.isNotEmpty(mvnAuthPassword)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_PASSWORD(),
mvnAuthPassword);
- }
+ settingService.getMavenConfig().updateConfig();
InternalConfigHolder.log();
}
@@ -150,49 +130,20 @@ public class EnvInitializer implements ApplicationRunner {
return;
}
- final String mkdirLog = "storage initialize, now mkdir [{}] starting ...";
-
FsOperator fsOperator = FsOperator.of(storageType);
Workspace workspace = Workspace.of(storageType);
// 1. prepare workspace dir
if (storageType.equals(LFS)) {
- String localDist = Workspace.APP_LOCAL_DIST();
- if (!fsOperator.exists(localDist)) {
- log.info(mkdirLog, localDist);
- fsOperator.mkdirs(localDist);
- }
- }
-
- String appUploads = workspace.APP_UPLOADS();
- if (!fsOperator.exists(appUploads)) {
- log.info(mkdirLog, appUploads);
- fsOperator.mkdirs(appUploads);
- }
-
- String appWorkspace = workspace.APP_WORKSPACE();
- if (!fsOperator.exists(appWorkspace)) {
- log.info(mkdirLog, appWorkspace);
- fsOperator.mkdirs(appWorkspace);
- }
-
- String appBackups = workspace.APP_BACKUPS();
- if (!fsOperator.exists(appBackups)) {
- log.info(mkdirLog, appBackups);
- fsOperator.mkdirs(appBackups);
- }
-
- String appSavePoints = workspace.APP_SAVEPOINTS();
- if (!fsOperator.exists(appSavePoints)) {
- log.info(mkdirLog, appSavePoints);
- fsOperator.mkdirs(appSavePoints);
- }
-
- String appJars = workspace.APP_JARS();
- if (!fsOperator.exists(appJars)) {
- log.info(mkdirLog, appJars);
- fsOperator.mkdirs(appJars);
+ fsOperator.mkdirsIfNotExists(Workspace.APP_LOCAL_DIST());
}
+ Arrays.asList(
+ workspace.APP_UPLOADS(),
+ workspace.APP_WORKSPACE(),
+ workspace.APP_BACKUPS(),
+ workspace.APP_SAVEPOINTS(),
+ workspace.APP_JARS())
+ .forEach(fsOperator::mkdirsIfNotExists);
// 2. upload jar.
// 2.1) upload client jar
@@ -223,7 +174,6 @@ public class EnvInitializer implements ApplicationRunner {
File[] shims =
WebUtils.getAppLibDir()
.listFiles(pathname ->
pathname.getName().matches(PATTERN_FLINK_SHIMS_JAR.pattern()));
-
Utils.required(shims != null && shims.length > 0, "streampark-flink-shims
jar not exist");
String appShims = workspace.APP_SHIMS();
@@ -241,7 +191,6 @@ public class EnvInitializer implements ApplicationRunner {
}
// 2.4) create maven local repository dir
-
String localMavenRepo = Workspace.MAVEN_LOCAL_PATH();
if (FsOperator.lfs().exists(localMavenRepo)) {
FsOperator.lfs().mkdirs(localMavenRepo);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
index 9c624a2cf..3bb807b7f 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/SettingService.java
@@ -17,7 +17,8 @@
package org.apache.streampark.console.core.service;
-import org.apache.streampark.console.core.bean.SenderEmail;
+import org.apache.streampark.console.core.bean.EmailConfig;
+import org.apache.streampark.console.core.bean.MavenConfig;
import org.apache.streampark.console.core.entity.Setting;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -29,19 +30,8 @@ public interface SettingService extends IService<Setting> {
Map<String, Setting> SETTINGS = new ConcurrentHashMap<>();
- String KEY_MAVEN_SETTINGS = "streampark.maven.settings";
- String KEY_MAVEN_REPOSITORY = "streampark.maven.central.repository";
- String KEY_MAVEN_AUTH_USER = "streampark.maven.auth.user";
- String KEY_MAVEN_AUTH_PASSWORD = "streampark.maven.auth.password";
String KEY_STREAMPARK_ADDRESS = "streampark.console.webapp.address";
- String KEY_ALERT_EMAIL_HOST = "alert.email.host";
- String KEY_ALERT_EMAIL_PORT = "alert.email.port";
- String KEY_ALERT_EMAIL_FROM = "alert.email.from";
- String KEY_ALERT_EMAIL_USERNAME = "alert.email.userName";
- String KEY_ALERT_EMAIL_PASSWORD = "alert.email.password";
- String KEY_ALERT_EMAIL_SSL = "alert.email.ssl";
-
String KEY_DOCKER_REGISTER_ADDRESS = "docker.register.address";
String KEY_DOCKER_REGISTER_USER = "docker.register.user";
String KEY_DOCKER_REGISTER_PASSWORD = "docker.register.password";
@@ -56,15 +46,9 @@ public interface SettingService extends IService<Setting> {
String getStreamParkAddress();
- String getMavenSettings();
-
- String getMavenRepository();
-
- String getMavenAuthUser();
-
- String getMavenAuthPassword();
+ MavenConfig getMavenConfig();
- SenderEmail getSenderEmail();
+ EmailConfig getSenderEmail();
String getDockerRegisterAddress();
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/alert/impl/EmailAlertNotifyServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/alert/impl/EmailAlertNotifyServiceImpl.java
index 38ff6d71a..39b310717 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/alert/impl/EmailAlertNotifyServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/alert/impl/EmailAlertNotifyServiceImpl.java
@@ -21,7 +21,7 @@ import
org.apache.streampark.console.base.exception.AlertException;
import org.apache.streampark.console.base.util.FreemarkerUtils;
import org.apache.streampark.console.core.bean.AlertConfigWithParams;
import org.apache.streampark.console.core.bean.AlertTemplate;
-import org.apache.streampark.console.core.bean.SenderEmail;
+import org.apache.streampark.console.core.bean.EmailConfig;
import org.apache.streampark.console.core.service.SettingService;
import org.apache.streampark.console.core.service.alert.AlertNotifyService;
@@ -58,7 +58,7 @@ public class EmailAlertNotifyServiceImpl implements
AlertNotifyService {
@Override
public boolean doAlert(AlertConfigWithParams alertConfig, AlertTemplate
template)
throws AlertException {
- SenderEmail senderEmail =
+ EmailConfig emailConfig =
Optional.ofNullable(settingService.getSenderEmail())
.orElseThrow(() -> new AlertException("Please configure first mail
sender"));
String contacts =
@@ -67,12 +67,11 @@ public class EmailAlertNotifyServiceImpl implements
AlertNotifyService {
throw new AlertException("Please configure a valid contacts");
}
String[] emails = contacts.split(",");
- return sendEmail(senderEmail, template, emails);
+ return sendEmail(emailConfig, template, emails);
}
- private boolean sendEmail(SenderEmail senderEmail, AlertTemplate mail,
String... mails)
+ private boolean sendEmail(EmailConfig emailConfig, AlertTemplate mail,
String... mails)
throws AlertException {
- log.info(mail.getSubject());
try {
Map<String, AlertTemplate> out = new HashMap<>(16);
out.put("mail", mail);
@@ -80,15 +79,15 @@ public class EmailAlertNotifyServiceImpl implements
AlertNotifyService {
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setCharset("UTF-8");
- htmlEmail.setHostName(senderEmail.getSmtpHost());
- htmlEmail.setAuthentication(senderEmail.getUserName(),
senderEmail.getPassword());
- htmlEmail.setFrom(senderEmail.getFrom());
- if (senderEmail.isSsl()) {
+ htmlEmail.setHostName(emailConfig.getSmtpHost());
+ htmlEmail.setAuthentication(emailConfig.getUserName(),
emailConfig.getPassword());
+ htmlEmail.setFrom(emailConfig.getFrom());
+ if (emailConfig.isSsl()) {
htmlEmail.setSSLCheckServerIdentity(true);
htmlEmail.setSSLOnConnect(true);
- htmlEmail.setSslSmtpPort(senderEmail.getSmtpPort().toString());
+ htmlEmail.setSslSmtpPort(emailConfig.getSmtpPort().toString());
} else {
- htmlEmail.setSmtpPort(senderEmail.getSmtpPort());
+ htmlEmail.setSmtpPort(emailConfig.getSmtpPort());
}
htmlEmail.setSubject(mail.getSubject());
htmlEmail.setHtmlMsg(html);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/CommonServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/CommonServiceImpl.java
index 2a6f9abe6..005688cd2 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/CommonServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/CommonServiceImpl.java
@@ -34,6 +34,7 @@ import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
+import java.util.Optional;
import java.util.stream.Collectors;
@Service
@@ -52,11 +53,7 @@ public class CommonServiceImpl implements CommonService {
@Override
public Long getUserId() {
- User user = getCurrentUser();
- if (user != null) {
- return user.getUserId();
- }
- return null;
+ return
Optional.ofNullable(getCurrentUser()).map(User::getUserId).orElse(null);
}
@Override
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
index d175a3bc7..c96d298e4 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
@@ -17,9 +17,8 @@
package org.apache.streampark.console.core.service.impl;
-import org.apache.streampark.common.conf.CommonConfig;
-import org.apache.streampark.common.conf.InternalConfigHolder;
-import org.apache.streampark.console.core.bean.SenderEmail;
+import org.apache.streampark.console.core.bean.EmailConfig;
+import org.apache.streampark.console.core.bean.MavenConfig;
import org.apache.streampark.console.core.entity.Setting;
import org.apache.streampark.console.core.mapper.SettingMapper;
import org.apache.streampark.console.core.service.SettingService;
@@ -71,21 +70,7 @@ public class SettingServiceImpl extends
ServiceImpl<SettingMapper, Setting>
new LambdaQueryWrapper<Setting>().eq(Setting::getSettingKey,
setting.getSettingKey());
this.update(entity, queryWrapper);
- String settingKey = setting.getSettingKey();
- if (CommonConfig.MAVEN_SETTINGS_PATH().key().equals(settingKey)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_SETTINGS_PATH(), value);
- }
-
- if (CommonConfig.MAVEN_REMOTE_URL().key().equals(settingKey)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_REMOTE_URL(), value);
- }
-
- if (CommonConfig.MAVEN_AUTH_USER().key().equals(settingKey)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_USER(), value);
- }
- if (CommonConfig.MAVEN_AUTH_PASSWORD().key().equals(settingKey)) {
- InternalConfigHolder.set(CommonConfig.MAVEN_AUTH_PASSWORD(), value);
- }
+ getMavenConfig().updateConfig();
Optional<Setting> optional =
Optional.ofNullable(SETTINGS.get(setting.getSettingKey()));
optional.ifPresent(x -> x.setSettingValue(value));
@@ -96,27 +81,8 @@ public class SettingServiceImpl extends
ServiceImpl<SettingMapper, Setting>
}
@Override
- public SenderEmail getSenderEmail() {
- try {
- String host =
SETTINGS.get(SettingService.KEY_ALERT_EMAIL_HOST).getSettingValue();
- String port =
SETTINGS.get(SettingService.KEY_ALERT_EMAIL_PORT).getSettingValue();
- String from =
SETTINGS.get(SettingService.KEY_ALERT_EMAIL_FROM).getSettingValue();
- String userName =
SETTINGS.get(SettingService.KEY_ALERT_EMAIL_USERNAME).getSettingValue();
- String password =
SETTINGS.get(SettingService.KEY_ALERT_EMAIL_PASSWORD).getSettingValue();
- String ssl =
SETTINGS.get(SettingService.KEY_ALERT_EMAIL_SSL).getSettingValue();
-
- SenderEmail senderEmail = new SenderEmail();
- senderEmail.setSmtpHost(host);
- senderEmail.setSmtpPort(Integer.parseInt(port));
- senderEmail.setFrom(from);
- senderEmail.setUserName(userName);
- senderEmail.setPassword(password);
- senderEmail.setSsl(Boolean.parseBoolean(ssl));
- return senderEmail;
- } catch (Exception e) {
- log.warn("Fault Alert Email is not set.");
- }
- return null;
+ public EmailConfig getSenderEmail() {
+ return EmailConfig.fromSetting(SETTINGS);
}
@Override
@@ -155,29 +121,8 @@ public class SettingServiceImpl extends
ServiceImpl<SettingMapper, Setting>
}
@Override
- public String getMavenSettings() {
- return SETTINGS.getOrDefault(SettingService.KEY_MAVEN_SETTINGS,
emptySetting).getSettingValue();
- }
-
- @Override
- public String getMavenRepository() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_MAVEN_REPOSITORY, emptySetting)
- .getSettingValue();
- }
-
- @Override
- public String getMavenAuthUser() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_MAVEN_AUTH_USER, emptySetting)
- .getSettingValue();
- }
-
- @Override
- public String getMavenAuthPassword() {
- return SETTINGS
- .getOrDefault(SettingService.KEY_MAVEN_AUTH_PASSWORD, emptySetting)
- .getSettingValue();
+ public MavenConfig getMavenConfig() {
+ return MavenConfig.fromSetting(SETTINGS);
}
@Override
diff --git
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/alert/AlertServiceTest.java
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/alert/AlertServiceTest.java
index 233bdb242..2bbf19c56 100644
---
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/alert/AlertServiceTest.java
+++
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/alert/AlertServiceTest.java
@@ -25,7 +25,7 @@ import
org.apache.streampark.console.core.bean.AlertDingTalkParams;
import org.apache.streampark.console.core.bean.AlertLarkParams;
import org.apache.streampark.console.core.bean.AlertTemplate;
import org.apache.streampark.console.core.bean.AlertWeComParams;
-import org.apache.streampark.console.core.bean.SenderEmail;
+import org.apache.streampark.console.core.bean.EmailConfig;
import org.apache.streampark.console.core.entity.Application;
import org.apache.streampark.console.core.enums.FlinkAppState;
import
org.apache.streampark.console.core.service.alert.impl.DingTalkAlertNotifyServiceImpl;
@@ -58,7 +58,7 @@ class AlertServiceTest {
RestTemplate restTemplate = new RestTemplate();
private Template template;
- private SenderEmail senderEmail;
+ private EmailConfig emailConfig;
@BeforeEach
void before1() {
@@ -87,13 +87,13 @@ class AlertServiceTest {
void initConfigForSendEmail() {
this.template = FreemarkerUtils.loadTemplateFile("alert-email.ftl");
- senderEmail = new SenderEmail();
- senderEmail.setFrom("****@domain.com");
- senderEmail.setUserName("******");
- senderEmail.setPassword("******");
- senderEmail.setSmtpPort(465);
- senderEmail.setSsl(true);
- senderEmail.setSmtpHost("smtp.exmail.qq.com");
+ emailConfig = new EmailConfig();
+ emailConfig.setFrom("****@domain.com");
+ emailConfig.setUserName("******");
+ emailConfig.setPassword("******");
+ emailConfig.setSmtpPort(465);
+ emailConfig.setSsl(true);
+ emailConfig.setSmtpHost("smtp.exmail.qq.com");
}
void before2() {
@@ -232,15 +232,15 @@ class AlertServiceTest {
private void sendEmail(String subject, String html, String... mails) throws
EmailException {
HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setCharset("UTF-8");
- htmlEmail.setHostName(this.senderEmail.getSmtpHost());
- htmlEmail.setAuthentication(this.senderEmail.getUserName(),
this.senderEmail.getPassword());
- htmlEmail.setFrom(this.senderEmail.getFrom());
+ htmlEmail.setHostName(this.emailConfig.getSmtpHost());
+ htmlEmail.setAuthentication(this.emailConfig.getUserName(),
this.emailConfig.getPassword());
+ htmlEmail.setFrom(this.emailConfig.getFrom());
- if (this.senderEmail.isSsl()) {
+ if (this.emailConfig.isSsl()) {
htmlEmail.setSSLOnConnect(true);
- htmlEmail.setSslSmtpPort(this.senderEmail.getSmtpPort().toString());
+ htmlEmail.setSslSmtpPort(this.emailConfig.getSmtpPort().toString());
} else {
- htmlEmail.setSmtpPort(this.senderEmail.getSmtpPort());
+ htmlEmail.setSmtpPort(this.emailConfig.getSmtpPort());
}
htmlEmail.setSubject(subject);
htmlEmail.setHtmlMsg(html);