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);

Reply via email to