This is an automated email from the ASF dual-hosted git repository.

wuzhiguo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bigtop-manager.git


The following commit(s) were added to refs/heads/main by this push:
     new 538b969  BIGTOP-4172: Rename mapstruct class name (#28)
538b969 is described below

commit 538b96923fdb8cca67734469935171d72fc76a2e
Author: Zhiguo Wu <[email protected]>
AuthorDate: Tue Jul 30 14:56:26 2024 +0800

    BIGTOP-4172: Rename mapstruct class name (#28)
---
 .../apache/bigtop/manager/common/utils/DateUtils.java  | 12 ++++++++++--
 .../job/runner/cluster/ClusterCreateJobRunner.java     |  4 ++--
 .../job/runner/service/ServiceInstallJobRunner.java    |  8 ++++----
 .../runner/config/CacheDistributeStageRunner.java      |  6 +++---
 .../MapStructSharedConfig.java}                        | 18 +++++-------------
 .../manager/server/controller/ClusterController.java   |  4 ++--
 .../manager/server/controller/CommandController.java   |  4 ++--
 .../manager/server/controller/HostController.java      |  4 ++--
 .../manager/server/controller/LoginController.java     |  4 ++--
 .../manager/server/controller/UserController.java      |  4 ++--
 .../ClusterConverter.java}                             |  9 +++++----
 .../CommandConverter.java}                             |  9 +++++----
 .../ComponentConverter.java}                           | 11 +++++++----
 .../TypeConvert.java => converter/ConverterTool.java}  |  4 ++--
 .../HostComponentConverter.java}                       |  9 +++++----
 .../HostMapper.java => converter/HostConverter.java}   |  9 +++++----
 .../JobMapper.java => converter/JobConverter.java}     | 15 +++++++++------
 .../LoginMapper.java => converter/LoginConverter.java} |  9 +++++----
 .../PropertyConverter.java}                            |  9 +++++----
 .../RepoMapper.java => converter/RepoConverter.java}   |  9 +++++----
 .../ServiceConfigConverter.java}                       | 11 +++++++----
 .../ServiceConverter.java}                             | 11 +++++++----
 .../StackMapper.java => converter/StackConverter.java} |  9 +++++----
 .../StageMapper.java => converter/StageConverter.java} | 15 +++++++++------
 .../TaskMapper.java => converter/TaskConverter.java}   | 13 +++++++------
 .../TypeConfigConverter.java}                          | 11 +++++++----
 .../UserMapper.java => converter/UserConverter.java}   | 13 +++++++------
 .../server/service/impl/ClusterServiceImpl.java        | 18 +++++++++---------
 .../server/service/impl/CommandServiceImpl.java        |  4 ++--
 .../server/service/impl/ComponentServiceImpl.java      |  6 +++---
 .../manager/server/service/impl/ConfigServiceImpl.java | 10 +++++-----
 .../server/service/impl/HostComponentServiceImpl.java  |  8 ++++----
 .../manager/server/service/impl/HostServiceImpl.java   | 12 ++++++------
 .../manager/server/service/impl/JobServiceImpl.java    |  6 +++---
 .../server/service/impl/ServiceServiceImpl.java        | 10 +++++-----
 .../manager/server/service/impl/StackServiceImpl.java  | 16 ++++++++--------
 .../manager/server/service/impl/UserServiceImpl.java   |  6 +++---
 .../apache/bigtop/manager/server/utils/StackUtils.java |  8 ++++----
 38 files changed, 188 insertions(+), 160 deletions(-)

diff --git 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/DateUtils.java
 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/DateUtils.java
index 6dda41d..e372a34 100644
--- 
a/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/DateUtils.java
+++ 
b/bigtop-manager-common/src/main/java/org/apache/bigtop/manager/common/utils/DateUtils.java
@@ -31,14 +31,18 @@ import java.util.Objects;
 public final class DateUtils {
 
     /**
-     * date format of yyyy-MM-dd HH:mm:ss
+     * date format pattern of yyyy-MM-dd HH:mm:ss
      */
-    public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
+    private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
 
     private DateUtils() {
         throw new UnsupportedOperationException("Construct DateUtils");
     }
 
+    public static String format(Timestamp timestamp) {
+        return format(timestamp, DEFAULT_PATTERN);
+    }
+
     public static String format(Timestamp timestamp, String pattern) {
         if (Objects.isNull(timestamp)) {
             return StringUtils.EMPTY;
@@ -47,6 +51,10 @@ public final class DateUtils {
         return format(new Date(timestamp.getTime()), pattern);
     }
 
+    public static String format(Date date) {
+        return format(date, DEFAULT_PATTERN);
+    }
+
     public static String format(Date date, String pattern) {
         if (Objects.isNull(date)) {
             return StringUtils.EMPTY;
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/runner/cluster/ClusterCreateJobRunner.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/runner/cluster/ClusterCreateJobRunner.java
index 230f158..afa9dde 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/runner/cluster/ClusterCreateJobRunner.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/runner/cluster/ClusterCreateJobRunner.java
@@ -30,9 +30,9 @@ import 
org.apache.bigtop.manager.dao.repository.TaskRepository;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.runner.AbstractJobRunner;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
+import org.apache.bigtop.manager.server.model.converter.ClusterConverter;
 import org.apache.bigtop.manager.server.model.dto.ClusterDTO;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
-import org.apache.bigtop.manager.server.model.mapper.ClusterMapper;
 import org.apache.bigtop.manager.server.service.ClusterService;
 
 import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@@ -73,7 +73,7 @@ public class ClusterCreateJobRunner extends AbstractJobRunner 
{
 
         // Save cluster
         CommandDTO commandDTO = getCommandDTO();
-        ClusterDTO clusterDTO = 
ClusterMapper.INSTANCE.fromCommand2DTO(commandDTO.getClusterCommand());
+        ClusterDTO clusterDTO = 
ClusterConverter.INSTANCE.fromCommand2DTO(commandDTO.getClusterCommand());
         clusterService.save(clusterDTO);
     }
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/runner/service/ServiceInstallJobRunner.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/runner/service/ServiceInstallJobRunner.java
index cce244a..5916db4 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/runner/service/ServiceInstallJobRunner.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/job/runner/service/ServiceInstallJobRunner.java
@@ -33,13 +33,13 @@ import 
org.apache.bigtop.manager.dao.repository.ServiceRepository;
 import org.apache.bigtop.manager.server.command.CommandIdentifier;
 import org.apache.bigtop.manager.server.command.job.runner.AbstractJobRunner;
 import org.apache.bigtop.manager.server.enums.CommandLevel;
+import org.apache.bigtop.manager.server.model.converter.ComponentConverter;
+import org.apache.bigtop.manager.server.model.converter.ServiceConverter;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
 import org.apache.bigtop.manager.server.model.dto.ComponentDTO;
 import org.apache.bigtop.manager.server.model.dto.ComponentHostDTO;
 import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
 import org.apache.bigtop.manager.server.model.dto.command.ServiceCommandDTO;
-import org.apache.bigtop.manager.server.model.mapper.ComponentMapper;
-import org.apache.bigtop.manager.server.model.mapper.ServiceMapper;
 import org.apache.bigtop.manager.server.service.ConfigService;
 import org.apache.bigtop.manager.server.utils.StackUtils;
 
@@ -107,7 +107,7 @@ public class ServiceInstallJobRunner extends 
AbstractJobRunner {
         // 1. Persist service
         if (service == null) {
             ServiceDTO serviceDTO = StackUtils.getServiceDTO(stackName, 
stackVersion, serviceName);
-            service = ServiceMapper.INSTANCE.fromDTO2Entity(serviceDTO, 
cluster);
+            service = ServiceConverter.INSTANCE.fromDTO2Entity(serviceDTO, 
cluster);
             service = serviceRepository.save(service);
         }
 
@@ -121,7 +121,7 @@ public class ServiceInstallJobRunner extends 
AbstractJobRunner {
             Component component = 
componentRepository.findByClusterIdAndComponentName(clusterId, componentName);
             if (component == null) {
                 ComponentDTO componentDTO = 
StackUtils.getComponentDTO(stackName, stackVersion, componentName);
-                component = 
ComponentMapper.INSTANCE.fromDTO2Entity(componentDTO, service, cluster);
+                component = 
ComponentConverter.INSTANCE.fromDTO2Entity(componentDTO, service, cluster);
                 component = componentRepository.save(component);
             }
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/runner/config/CacheDistributeStageRunner.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/runner/config/CacheDistributeStageRunner.java
index 50cfeb8..9ea0708 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/runner/config/CacheDistributeStageRunner.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/command/stage/runner/config/CacheDistributeStageRunner.java
@@ -47,10 +47,10 @@ import org.apache.bigtop.manager.grpc.generated.CommandType;
 import org.apache.bigtop.manager.grpc.utils.ProtobufUtil;
 import org.apache.bigtop.manager.server.command.stage.factory.StageType;
 import 
org.apache.bigtop.manager.server.command.stage.runner.AbstractStageRunner;
+import org.apache.bigtop.manager.server.model.converter.RepoConverter;
 import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
 import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
 import org.apache.bigtop.manager.server.model.dto.StackDTO;
-import org.apache.bigtop.manager.server.model.mapper.RepoMapper;
 import org.apache.bigtop.manager.server.utils.StackConfigUtils;
 import org.apache.bigtop.manager.server.utils.StackUtils;
 
@@ -202,7 +202,7 @@ public class CacheDistributeStageRunner extends 
AbstractStageRunner {
 
         repoList = new ArrayList<>();
         repos.forEach(repo -> {
-            RepoInfo repoInfo = RepoMapper.INSTANCE.fromEntity2Message(repo);
+            RepoInfo repoInfo = 
RepoConverter.INSTANCE.fromEntity2Message(repo);
             repoList.add(repoInfo);
         });
 
@@ -239,7 +239,7 @@ public class CacheDistributeStageRunner extends 
AbstractStageRunner {
         StackDTO stackDTO = immutablePair.getLeft();
         List<ServiceDTO> serviceDTOList = immutablePair.getRight();
 
-        repoList = 
RepoMapper.INSTANCE.fromDTO2Message(stageContext.getRepoInfoList());
+        repoList = 
RepoConverter.INSTANCE.fromDTO2Message(stageContext.getRepoInfoList());
         clusterInfo = new ClusterInfo();
         clusterInfo.setClusterName(stageContext.getClusterName());
         clusterInfo.setStackName(stageContext.getStackName());
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/LoginMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/MapStructSharedConfig.java
similarity index 67%
copy from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/LoginMapper.java
copy to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/MapStructSharedConfig.java
index 8395b9e..cdbbe0d 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/LoginMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/config/MapStructSharedConfig.java
@@ -16,18 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.config;
 
-import org.apache.bigtop.manager.server.model.dto.LoginDTO;
-import org.apache.bigtop.manager.server.model.req.LoginReq;
+import org.mapstruct.MapperConfig;
+import org.mapstruct.ReportingPolicy;
 
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-@Mapper
-public interface LoginMapper {
-
-    LoginMapper INSTANCE = Mappers.getMapper(LoginMapper.class);
-
-    LoginDTO fromReq2DTO(LoginReq loginReq);
-}
+@MapperConfig(unmappedTargetPolicy = ReportingPolicy.IGNORE)
+public class MapStructSharedConfig {}
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ClusterController.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ClusterController.java
index 4ce7385..2b22b21 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ClusterController.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/ClusterController.java
@@ -18,8 +18,8 @@
  */
 package org.apache.bigtop.manager.server.controller;
 
+import org.apache.bigtop.manager.server.model.converter.ClusterConverter;
 import org.apache.bigtop.manager.server.model.dto.ClusterDTO;
-import org.apache.bigtop.manager.server.model.mapper.ClusterMapper;
 import org.apache.bigtop.manager.server.model.req.ClusterReq;
 import org.apache.bigtop.manager.server.model.vo.ClusterVO;
 import org.apache.bigtop.manager.server.service.ClusterService;
@@ -62,7 +62,7 @@ public class ClusterController {
     @Operation(summary = "update", description = "Update a cluster")
     @PutMapping("/{id}")
     public ResponseEntity<ClusterVO> update(@PathVariable Long id, 
@RequestBody @Validated ClusterReq clusterReq) {
-        ClusterDTO clusterDTO = ClusterMapper.INSTANCE.fromReq2DTO(clusterReq);
+        ClusterDTO clusterDTO = 
ClusterConverter.INSTANCE.fromReq2DTO(clusterReq);
         return ResponseEntity.success(clusterService.update(id, clusterDTO));
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/CommandController.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/CommandController.java
index 541aaf6..985cafd 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/CommandController.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/CommandController.java
@@ -19,8 +19,8 @@
 package org.apache.bigtop.manager.server.controller;
 
 import org.apache.bigtop.manager.server.annotations.Audit;
+import org.apache.bigtop.manager.server.model.converter.CommandConverter;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
-import org.apache.bigtop.manager.server.model.mapper.CommandMapper;
 import org.apache.bigtop.manager.server.model.req.CommandReq;
 import org.apache.bigtop.manager.server.model.vo.CommandVO;
 import org.apache.bigtop.manager.server.service.CommandService;
@@ -49,7 +49,7 @@ public class CommandController {
     @Operation(summary = "command", description = "Command for component by 
[host,component,service,cluster]")
     @PostMapping
     public ResponseEntity<CommandVO> command(@RequestBody @Validated 
CommandReq commandReq) {
-        CommandDTO commandDTO = CommandMapper.INSTANCE.fromReq2DTO(commandReq);
+        CommandDTO commandDTO = 
CommandConverter.INSTANCE.fromReq2DTO(commandReq);
         CommandVO commandVO = commandService.command(commandDTO);
         return ResponseEntity.success(commandVO);
     }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/HostController.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/HostController.java
index 4babe18..b617f4a 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/HostController.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/HostController.java
@@ -18,8 +18,8 @@
  */
 package org.apache.bigtop.manager.server.controller;
 
+import org.apache.bigtop.manager.server.model.converter.HostConverter;
 import org.apache.bigtop.manager.server.model.dto.HostDTO;
-import org.apache.bigtop.manager.server.model.mapper.HostMapper;
 import org.apache.bigtop.manager.server.model.req.HostReq;
 import org.apache.bigtop.manager.server.model.req.HostnamesReq;
 import org.apache.bigtop.manager.server.model.vo.HostVO;
@@ -63,7 +63,7 @@ public class HostController {
     @Operation(summary = "update", description = "Update a host")
     // @PutMapping("/{id}")
     public ResponseEntity<HostVO> update(@PathVariable Long id, @RequestBody 
@Validated HostReq hostReq) {
-        HostDTO hostDTO = HostMapper.INSTANCE.fromReq2DTO(hostReq);
+        HostDTO hostDTO = HostConverter.INSTANCE.fromReq2DTO(hostReq);
         return ResponseEntity.success(hostService.update(id, hostDTO));
     }
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LoginController.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LoginController.java
index 98f0877..895afca 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LoginController.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/LoginController.java
@@ -22,8 +22,8 @@ import org.apache.bigtop.manager.server.annotations.Audit;
 import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
 import org.apache.bigtop.manager.server.exception.ApiException;
 import org.apache.bigtop.manager.server.holder.SessionUserHolder;
+import org.apache.bigtop.manager.server.model.converter.LoginConverter;
 import org.apache.bigtop.manager.server.model.dto.LoginDTO;
-import org.apache.bigtop.manager.server.model.mapper.LoginMapper;
 import org.apache.bigtop.manager.server.model.req.LoginReq;
 import org.apache.bigtop.manager.server.model.vo.LoginVO;
 import org.apache.bigtop.manager.server.service.LoginService;
@@ -55,7 +55,7 @@ public class LoginController {
             throw new 
ApiException(ApiExceptionEnum.USERNAME_OR_PASSWORD_REQUIRED);
         }
 
-        LoginDTO loginDTO = LoginMapper.INSTANCE.fromReq2DTO(loginReq);
+        LoginDTO loginDTO = LoginConverter.INSTANCE.fromReq2DTO(loginReq);
         return ResponseEntity.success(loginService.login(loginDTO));
     }
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/UserController.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/UserController.java
index b2f9d92..23e7075 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/UserController.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/controller/UserController.java
@@ -19,8 +19,8 @@
 package org.apache.bigtop.manager.server.controller;
 
 import org.apache.bigtop.manager.server.annotations.Audit;
+import org.apache.bigtop.manager.server.model.converter.UserConverter;
 import org.apache.bigtop.manager.server.model.dto.UserDTO;
-import org.apache.bigtop.manager.server.model.mapper.UserMapper;
 import org.apache.bigtop.manager.server.model.req.UserReq;
 import org.apache.bigtop.manager.server.model.vo.UserVO;
 import org.apache.bigtop.manager.server.service.UserService;
@@ -56,7 +56,7 @@ public class UserController {
     @Operation(summary = "update", description = "Update a user")
     @PutMapping
     public ResponseEntity<UserVO> update(@RequestBody @Validated UserReq 
userReq) {
-        UserDTO userDTO = UserMapper.INSTANCE.fromReq2DTO(userReq);
+        UserDTO userDTO = UserConverter.INSTANCE.fromReq2DTO(userReq);
         return ResponseEntity.success(userService.update(userDTO));
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ClusterMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ClusterConverter.java
similarity index 86%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ClusterMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ClusterConverter.java
index bab4a83..3482a19 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ClusterMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ClusterConverter.java
@@ -16,10 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.Cluster;
 import org.apache.bigtop.manager.dao.entity.Stack;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.ClusterDTO;
 import org.apache.bigtop.manager.server.model.dto.StackDTO;
 import org.apache.bigtop.manager.server.model.dto.command.ClusterCommandDTO;
@@ -31,10 +32,10 @@ import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.factory.Mappers;
 
-@Mapper
-public interface ClusterMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface ClusterConverter {
 
-    ClusterMapper INSTANCE = Mappers.getMapper(ClusterMapper.class);
+    ClusterConverter INSTANCE = Mappers.getMapper(ClusterConverter.class);
 
     ClusterDTO fromReq2DTO(ClusterReq clusterReq);
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/CommandMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/CommandConverter.java
similarity index 82%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/CommandMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/CommandConverter.java
index 8ce164d..fb33472 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/CommandMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/CommandConverter.java
@@ -16,8 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
 import org.apache.bigtop.manager.server.model.dto.command.ServiceCommandDTO;
 import org.apache.bigtop.manager.server.model.req.CommandReq;
@@ -28,10 +29,10 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper
-public interface CommandMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface CommandConverter {
 
-    CommandMapper INSTANCE = Mappers.getMapper(CommandMapper.class);
+    CommandConverter INSTANCE = Mappers.getMapper(CommandConverter.class);
 
     CommandDTO fromReq2DTO(CommandReq commandReq);
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ComponentMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
similarity index 87%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ComponentMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
index 66a93e1..cf40825 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ComponentMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ComponentConverter.java
@@ -16,11 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.Cluster;
 import org.apache.bigtop.manager.dao.entity.Component;
 import org.apache.bigtop.manager.dao.entity.Service;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.ComponentDTO;
 import org.apache.bigtop.manager.server.model.vo.ComponentVO;
 import org.apache.bigtop.manager.server.stack.model.ComponentModel;
@@ -32,10 +33,12 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper(uses = {TypeConvert.class})
-public interface ComponentMapper {
+@Mapper(
+        uses = {ConverterTool.class},
+        config = MapStructSharedConfig.class)
+public interface ComponentConverter {
 
-    ComponentMapper INSTANCE = Mappers.getMapper(ComponentMapper.class);
+    ComponentConverter INSTANCE = Mappers.getMapper(ComponentConverter.class);
 
     @Mapping(target = "commandScript", source = "commandScript", 
qualifiedByName = "obj2Json")
     @Mapping(target = "customCommands", source = "customCommands", 
qualifiedByName = "obj2Json")
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TypeConvert.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ConverterTool.java
similarity index 95%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TypeConvert.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ConverterTool.java
index 89af126..087fd50 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TypeConvert.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ConverterTool.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.common.utils.JsonUtils;
 import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
@@ -28,7 +28,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
 
 import java.util.List;
 
-public class TypeConvert {
+public class ConverterTool {
 
     @Named("obj2Json")
     public <T> String obj2Json(T obj) {
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/HostComponentMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostComponentConverter.java
similarity index 84%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/HostComponentMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostComponentConverter.java
index 607e868..c8050f1 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/HostComponentMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostComponentConverter.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.HostComponent;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.vo.HostComponentVO;
 
 import org.mapstruct.Mapper;
@@ -27,10 +28,10 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper
-public interface HostComponentMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface HostComponentConverter {
 
-    HostComponentMapper INSTANCE = 
Mappers.getMapper(HostComponentMapper.class);
+    HostComponentConverter INSTANCE = 
Mappers.getMapper(HostComponentConverter.class);
 
     @Mapping(target = "componentName", source = "component.componentName")
     @Mapping(target = "displayName", source = "component.displayName")
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/HostMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostConverter.java
similarity index 83%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/HostMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostConverter.java
index 71bbe16..0b12cf3 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/HostMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/HostConverter.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.Host;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.HostDTO;
 import org.apache.bigtop.manager.server.model.req.HostReq;
 import org.apache.bigtop.manager.server.model.vo.HostVO;
@@ -29,10 +30,10 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper
-public interface HostMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface HostConverter {
 
-    HostMapper INSTANCE = Mappers.getMapper(HostMapper.class);
+    HostConverter INSTANCE = Mappers.getMapper(HostConverter.class);
 
     HostDTO fromReq2DTO(HostReq hostReq);
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/JobMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/JobConverter.java
similarity index 69%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/JobMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/JobConverter.java
index faec160..6fbb221 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/JobMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/JobConverter.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.Job;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.vo.CommandVO;
 import org.apache.bigtop.manager.server.model.vo.JobVO;
 
@@ -28,13 +29,15 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper(uses = {StageMapper.class, TaskMapper.class})
-public interface JobMapper {
+@Mapper(
+        uses = {StageConverter.class, TaskConverter.class},
+        config = MapStructSharedConfig.class)
+public interface JobConverter {
 
-    JobMapper INSTANCE = Mappers.getMapper(JobMapper.class);
+    JobConverter INSTANCE = Mappers.getMapper(JobConverter.class);
 
-    @Mapping(target = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
-    @Mapping(target = "updateTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @Mapping(target = "createTime", source = "createTime", dateFormat = 
"yyyy-MM-dd HH:mm:ss")
+    @Mapping(target = "updateTime", source = "updateTime", dateFormat = 
"yyyy-MM-dd HH:mm:ss")
     JobVO fromEntity2VO(Job job);
 
     List<JobVO> fromEntity2VO(List<Job> job);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/LoginMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/LoginConverter.java
similarity index 78%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/LoginMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/LoginConverter.java
index 8395b9e..a8fc791 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/LoginMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/LoginConverter.java
@@ -16,18 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.LoginDTO;
 import org.apache.bigtop.manager.server.model.req.LoginReq;
 
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
-@Mapper
-public interface LoginMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface LoginConverter {
 
-    LoginMapper INSTANCE = Mappers.getMapper(LoginMapper.class);
+    LoginConverter INSTANCE = Mappers.getMapper(LoginConverter.class);
 
     LoginDTO fromReq2DTO(LoginReq loginReq);
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/PropertyMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/PropertyConverter.java
similarity index 80%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/PropertyMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/PropertyConverter.java
index abf8a8b..cbd0e03 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/PropertyMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/PropertyConverter.java
@@ -16,8 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
 import org.apache.bigtop.manager.server.model.vo.PropertyVO;
 
@@ -26,10 +27,10 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper
-public interface PropertyMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface PropertyConverter {
 
-    PropertyMapper INSTANCE = Mappers.getMapper(PropertyMapper.class);
+    PropertyConverter INSTANCE = Mappers.getMapper(PropertyConverter.class);
 
     PropertyVO fromDTO2VO(PropertyDTO propertyDTO);
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/RepoMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/RepoConverter.java
similarity index 85%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/RepoMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/RepoConverter.java
index 1ac1608..a7a5e34 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/RepoMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/RepoConverter.java
@@ -16,11 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.common.message.entity.pojo.RepoInfo;
 import org.apache.bigtop.manager.dao.entity.Cluster;
 import org.apache.bigtop.manager.dao.entity.Repo;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.RepoDTO;
 
 import org.mapstruct.Context;
@@ -30,10 +31,10 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper
-public interface RepoMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface RepoConverter {
 
-    RepoMapper INSTANCE = Mappers.getMapper(RepoMapper.class);
+    RepoConverter INSTANCE = Mappers.getMapper(RepoConverter.class);
 
     @Mapping(target = "cluster", expression = "java(cluster)")
     Repo fromDTO2Entity(RepoDTO repoDTO, @Context Cluster cluster);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ServiceConfigMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConfigConverter.java
similarity index 79%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ServiceConfigMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConfigConverter.java
index b72e5f7..5825676 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ServiceConfigMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConfigConverter.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.ServiceConfig;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.vo.ServiceConfigVO;
 
 import org.mapstruct.Mapper;
@@ -27,10 +28,12 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper(uses = {TypeConfigMapper.class})
-public interface ServiceConfigMapper {
+@Mapper(
+        uses = {TypeConfigConverter.class},
+        config = MapStructSharedConfig.class)
+public interface ServiceConfigConverter {
 
-    ServiceConfigMapper INSTANCE = 
Mappers.getMapper(ServiceConfigMapper.class);
+    ServiceConfigConverter INSTANCE = 
Mappers.getMapper(ServiceConfigConverter.class);
 
     @Mapping(target = "serviceName", source = "service.serviceName")
     @Mapping(target = "configs", source = "configs", qualifiedByName = 
"fromEntity2VO")
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ServiceMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConverter.java
similarity index 86%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ServiceMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConverter.java
index 1ebfab9..ca9b69c 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/ServiceMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/ServiceConverter.java
@@ -16,10 +16,11 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.Cluster;
 import org.apache.bigtop.manager.dao.entity.Service;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
 import org.apache.bigtop.manager.server.model.vo.ServiceVO;
 import org.apache.bigtop.manager.server.stack.model.ServiceModel;
@@ -31,10 +32,12 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper(uses = {ComponentMapper.class, TypeConvert.class})
-public interface ServiceMapper {
+@Mapper(
+        uses = {ComponentConverter.class, ConverterTool.class},
+        config = MapStructSharedConfig.class)
+public interface ServiceConverter {
 
-    ServiceMapper INSTANCE = Mappers.getMapper(ServiceMapper.class);
+    ServiceConverter INSTANCE = Mappers.getMapper(ServiceConverter.class);
 
     @Mapping(target = "osSpecifics", source = "osSpecifics", qualifiedByName = 
"obj2Json")
     @Mapping(target = "requiredServices", source = "requiredServices", 
qualifiedByName = "obj2Json")
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/StackMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StackConverter.java
similarity index 81%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/StackMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StackConverter.java
index 76066c5..b28985a 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/StackMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StackConverter.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.Stack;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.StackDTO;
 import org.apache.bigtop.manager.server.model.vo.StackVO;
 import org.apache.bigtop.manager.server.stack.model.StackModel;
@@ -26,10 +27,10 @@ import 
org.apache.bigtop.manager.server.stack.model.StackModel;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
-@Mapper
-public interface StackMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface StackConverter {
 
-    StackMapper INSTANCE = Mappers.getMapper(StackMapper.class);
+    StackConverter INSTANCE = Mappers.getMapper(StackConverter.class);
 
     StackVO fromEntity2VO(Stack stack);
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/StageMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StageConverter.java
similarity index 67%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/StageMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StageConverter.java
index 58a54c6..0ceaa1e 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/StageMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/StageConverter.java
@@ -16,21 +16,24 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.Stage;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.vo.StageVO;
 
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.factory.Mappers;
 
-@Mapper(uses = {TaskMapper.class})
-public interface StageMapper {
+@Mapper(
+        uses = {TaskConverter.class},
+        config = MapStructSharedConfig.class)
+public interface StageConverter {
 
-    StageMapper INSTANCE = Mappers.getMapper(StageMapper.class);
+    StageConverter INSTANCE = Mappers.getMapper(StageConverter.class);
 
-    @Mapping(target = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
-    @Mapping(target = "updateTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @Mapping(target = "createTime", source = "createTime", dateFormat = 
"yyyy-MM-dd HH:mm:ss")
+    @Mapping(target = "updateTime", source = "updateTime", dateFormat = 
"yyyy-MM-dd HH:mm:ss")
     StageVO fromEntity2VO(Stage stage);
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TaskMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/TaskConverter.java
similarity index 69%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TaskMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/TaskConverter.java
index 7d64ad0..dbd9631 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TaskMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/TaskConverter.java
@@ -16,21 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.Task;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.vo.TaskVO;
 
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.factory.Mappers;
 
-@Mapper
-public interface TaskMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface TaskConverter {
 
-    TaskMapper INSTANCE = Mappers.getMapper(TaskMapper.class);
+    TaskConverter INSTANCE = Mappers.getMapper(TaskConverter.class);
 
-    @Mapping(target = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
-    @Mapping(target = "updateTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @Mapping(target = "createTime", source = "createTime", dateFormat = 
"yyyy-MM-dd HH:mm:ss")
+    @Mapping(target = "updateTime", source = "updateTime", dateFormat = 
"yyyy-MM-dd HH:mm:ss")
     TaskVO fromEntity2VO(Task task);
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TypeConfigMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/TypeConfigConverter.java
similarity index 83%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TypeConfigMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/TypeConfigConverter.java
index b2ee7a1..e993852 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/TypeConfigMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/TypeConfigConverter.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.TypeConfig;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.TypeConfigDTO;
 import org.apache.bigtop.manager.server.model.vo.TypeConfigVO;
 
@@ -29,10 +30,12 @@ import org.mapstruct.factory.Mappers;
 
 import java.util.List;
 
-@Mapper(uses = {TypeConvert.class})
-public interface TypeConfigMapper {
+@Mapper(
+        uses = {ConverterTool.class},
+        config = MapStructSharedConfig.class)
+public interface TypeConfigConverter {
 
-    TypeConfigMapper INSTANCE = Mappers.getMapper(TypeConfigMapper.class);
+    TypeConfigConverter INSTANCE = 
Mappers.getMapper(TypeConfigConverter.class);
 
     @Mapping(target = "properties", source = "propertiesJson", qualifiedByName 
= "json2PropertyDTOList")
     TypeConfigDTO fromEntity2DTO(TypeConfig typeConfig);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/UserMapper.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/UserConverter.java
similarity index 72%
rename from 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/UserMapper.java
rename to 
bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/UserConverter.java
index 8d65e84..828ef21 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/mapper/UserMapper.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/model/converter/UserConverter.java
@@ -16,9 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.bigtop.manager.server.model.mapper;
+package org.apache.bigtop.manager.server.model.converter;
 
 import org.apache.bigtop.manager.dao.entity.User;
+import org.apache.bigtop.manager.server.config.MapStructSharedConfig;
 import org.apache.bigtop.manager.server.model.dto.UserDTO;
 import org.apache.bigtop.manager.server.model.req.UserReq;
 import org.apache.bigtop.manager.server.model.vo.UserVO;
@@ -27,13 +28,13 @@ import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.factory.Mappers;
 
-@Mapper
-public interface UserMapper {
+@Mapper(config = MapStructSharedConfig.class)
+public interface UserConverter {
 
-    UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);
+    UserConverter INSTANCE = Mappers.getMapper(UserConverter.class);
 
-    @Mapping(target = "createTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
-    @Mapping(target = "updateTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
+    @Mapping(target = "createTime", source = "createTime", dateFormat = 
"yyyy-MM-dd HH:mm:ss")
+    @Mapping(target = "updateTime", source = "updateTime", dateFormat = 
"yyyy-MM-dd HH:mm:ss")
     UserVO fromEntity2VO(User user);
 
     UserDTO fromReq2DTO(UserReq userReq);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ClusterServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ClusterServiceImpl.java
index 5df9a6e..6254ed3 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ClusterServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ClusterServiceImpl.java
@@ -27,10 +27,10 @@ import 
org.apache.bigtop.manager.dao.repository.RepoRepository;
 import org.apache.bigtop.manager.dao.repository.StackRepository;
 import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
 import org.apache.bigtop.manager.server.exception.ApiException;
+import org.apache.bigtop.manager.server.model.converter.ClusterConverter;
+import org.apache.bigtop.manager.server.model.converter.RepoConverter;
 import org.apache.bigtop.manager.server.model.dto.ClusterDTO;
 import org.apache.bigtop.manager.server.model.dto.StackDTO;
-import org.apache.bigtop.manager.server.model.mapper.ClusterMapper;
-import org.apache.bigtop.manager.server.model.mapper.RepoMapper;
 import org.apache.bigtop.manager.server.model.vo.ClusterVO;
 import org.apache.bigtop.manager.server.service.ClusterService;
 import org.apache.bigtop.manager.server.service.HostService;
@@ -62,7 +62,7 @@ public class ClusterServiceImpl implements ClusterService {
     public List<ClusterVO> list() {
         List<ClusterVO> clusterVOList = new ArrayList<>();
         clusterRepository.findAll().forEach(cluster -> {
-            ClusterVO clusterVO = 
ClusterMapper.INSTANCE.fromEntity2VO(cluster);
+            ClusterVO clusterVO = 
ClusterConverter.INSTANCE.fromEntity2VO(cluster);
             clusterVOList.add(clusterVO);
         });
 
@@ -77,7 +77,7 @@ public class ClusterServiceImpl implements ClusterService {
         StackDTO stackDTO = StackUtils.getStackKeyMap()
                 .get(StackUtils.fullStackName(clusterDTO.getStackName(), 
clusterDTO.getStackVersion()))
                 .getLeft();
-        Cluster cluster = ClusterMapper.INSTANCE.fromDTO2Entity(clusterDTO, 
stackDTO, stack);
+        Cluster cluster = ClusterConverter.INSTANCE.fromDTO2Entity(clusterDTO, 
stackDTO, stack);
         cluster.setSelected(clusterRepository.count() == 0);
         cluster.setState(MaintainState.UNINSTALLED);
 
@@ -91,7 +91,7 @@ public class ClusterServiceImpl implements ClusterService {
         hostService.batchSave(cluster.getId(), clusterDTO.getHostnames());
 
         // Save repo
-        List<Repo> repos = 
RepoMapper.INSTANCE.fromDTO2Entity(clusterDTO.getRepoInfoList(), cluster);
+        List<Repo> repos = 
RepoConverter.INSTANCE.fromDTO2Entity(clusterDTO.getRepoInfoList(), cluster);
         List<Repo> oldRepos = repoRepository.findAllByCluster(cluster);
 
         for (Repo repo : repos) {
@@ -103,7 +103,7 @@ public class ClusterServiceImpl implements ClusterService {
         }
 
         repoRepository.saveAll(repos);
-        return ClusterMapper.INSTANCE.fromEntity2VO(cluster);
+        return ClusterConverter.INSTANCE.fromEntity2VO(cluster);
     }
 
     @Override
@@ -111,15 +111,15 @@ public class ClusterServiceImpl implements ClusterService 
{
         Cluster cluster =
                 clusterRepository.findById(id).orElseThrow(() -> new 
ApiException(ApiExceptionEnum.CLUSTER_NOT_FOUND));
 
-        return ClusterMapper.INSTANCE.fromEntity2VO(cluster);
+        return ClusterConverter.INSTANCE.fromEntity2VO(cluster);
     }
 
     @Override
     public ClusterVO update(Long id, ClusterDTO clusterDTO) {
-        Cluster cluster = ClusterMapper.INSTANCE.fromDTO2Entity(clusterDTO);
+        Cluster cluster = ClusterConverter.INSTANCE.fromDTO2Entity(clusterDTO);
         cluster.setId(id);
         clusterRepository.save(cluster);
 
-        return ClusterMapper.INSTANCE.fromEntity2VO(cluster);
+        return ClusterConverter.INSTANCE.fromEntity2VO(cluster);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
index aeb3ca3..1160609 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/CommandServiceImpl.java
@@ -26,8 +26,8 @@ import 
org.apache.bigtop.manager.server.command.job.factory.JobFactory;
 import org.apache.bigtop.manager.server.command.job.validator.ValidatorContext;
 import 
org.apache.bigtop.manager.server.command.job.validator.ValidatorExecutionChain;
 import org.apache.bigtop.manager.server.command.scheduler.JobScheduler;
+import org.apache.bigtop.manager.server.model.converter.JobConverter;
 import org.apache.bigtop.manager.server.model.dto.CommandDTO;
-import org.apache.bigtop.manager.server.model.mapper.JobMapper;
 import org.apache.bigtop.manager.server.model.vo.CommandVO;
 import org.apache.bigtop.manager.server.service.CommandService;
 
@@ -61,6 +61,6 @@ public class CommandServiceImpl implements CommandService {
         // Submit job
         jobScheduler.submit(job);
 
-        return JobMapper.INSTANCE.fromEntity2CommandVO(job);
+        return JobConverter.INSTANCE.fromEntity2CommandVO(job);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ComponentServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ComponentServiceImpl.java
index 31cf66d..2a4ad27 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ComponentServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ComponentServiceImpl.java
@@ -22,7 +22,7 @@ import org.apache.bigtop.manager.dao.entity.Component;
 import org.apache.bigtop.manager.dao.repository.ComponentRepository;
 import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
 import org.apache.bigtop.manager.server.exception.ApiException;
-import org.apache.bigtop.manager.server.model.mapper.ComponentMapper;
+import org.apache.bigtop.manager.server.model.converter.ComponentConverter;
 import org.apache.bigtop.manager.server.model.vo.ComponentVO;
 import org.apache.bigtop.manager.server.service.ComponentService;
 
@@ -45,7 +45,7 @@ public class ComponentServiceImpl implements ComponentService 
{
     public List<ComponentVO> list(Long clusterId) {
         List<ComponentVO> componentVOList = new ArrayList<>();
         componentRepository.findAllByClusterId(clusterId).forEach(component -> 
{
-            ComponentVO componentVO = 
ComponentMapper.INSTANCE.fromEntity2VO(component);
+            ComponentVO componentVO = 
ComponentConverter.INSTANCE.fromEntity2VO(component);
             componentVOList.add(componentVO);
         });
 
@@ -57,6 +57,6 @@ public class ComponentServiceImpl implements ComponentService 
{
         Component component = componentRepository
                 .findById(id)
                 .orElseThrow(() -> new 
ApiException(ApiExceptionEnum.COMPONENT_NOT_FOUND));
-        return ComponentMapper.INSTANCE.fromEntity2VO(component);
+        return ComponentConverter.INSTANCE.fromEntity2VO(component);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
index a2a9eaf..d80bf95 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ConfigServiceImpl.java
@@ -27,10 +27,10 @@ import 
org.apache.bigtop.manager.dao.repository.ClusterRepository;
 import org.apache.bigtop.manager.dao.repository.ServiceConfigRepository;
 import org.apache.bigtop.manager.dao.repository.ServiceRepository;
 import org.apache.bigtop.manager.dao.repository.TypeConfigRepository;
+import org.apache.bigtop.manager.server.model.converter.ServiceConfigConverter;
+import org.apache.bigtop.manager.server.model.converter.TypeConfigConverter;
 import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
 import org.apache.bigtop.manager.server.model.dto.TypeConfigDTO;
-import org.apache.bigtop.manager.server.model.mapper.ServiceConfigMapper;
-import org.apache.bigtop.manager.server.model.mapper.TypeConfigMapper;
 import org.apache.bigtop.manager.server.model.vo.ServiceConfigVO;
 import org.apache.bigtop.manager.server.service.ConfigService;
 
@@ -62,14 +62,14 @@ public class ConfigServiceImpl implements ConfigService {
         Cluster cluster = clusterRepository.getReferenceById(clusterId);
         Sort sort = Sort.by(Sort.Direction.DESC, "version");
         List<ServiceConfig> list = 
serviceConfigRepository.findAllByCluster(cluster, sort);
-        return ServiceConfigMapper.INSTANCE.fromEntity2VO(list);
+        return ServiceConfigConverter.INSTANCE.fromEntity2VO(list);
     }
 
     @Override
     public List<ServiceConfigVO> latest(Long clusterId) {
         Cluster cluster = clusterRepository.getReferenceById(clusterId);
         List<ServiceConfig> list = 
serviceConfigRepository.findAllByClusterAndSelectedIsTrue(cluster);
-        return ServiceConfigMapper.INSTANCE.fromEntity2VO(list);
+        return ServiceConfigConverter.INSTANCE.fromEntity2VO(list);
     }
 
     @Override
@@ -93,7 +93,7 @@ public class ConfigServiceImpl implements ConfigService {
 
     private void upsertServiceConfig(
             Cluster cluster, Service service, ServiceConfig currentConfig, 
List<TypeConfigDTO> configs) {
-        List<TypeConfigDTO> existConfigs = 
TypeConfigMapper.INSTANCE.fromEntity2DTO(currentConfig.getConfigs());
+        List<TypeConfigDTO> existConfigs = 
TypeConfigConverter.INSTANCE.fromEntity2DTO(currentConfig.getConfigs());
         if (shouldUpdateConfig(existConfigs, configs)) {
             // Unselect current config
             currentConfig.setSelected(false);
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostComponentServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostComponentServiceImpl.java
index 368f478..9c7c7d2 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostComponentServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostComponentServiceImpl.java
@@ -22,7 +22,7 @@ import org.apache.bigtop.manager.dao.entity.HostComponent;
 import org.apache.bigtop.manager.dao.repository.ComponentRepository;
 import org.apache.bigtop.manager.dao.repository.HostComponentRepository;
 import org.apache.bigtop.manager.dao.repository.HostRepository;
-import org.apache.bigtop.manager.server.model.mapper.HostComponentMapper;
+import org.apache.bigtop.manager.server.model.converter.HostComponentConverter;
 import org.apache.bigtop.manager.server.model.vo.HostComponentVO;
 import org.apache.bigtop.manager.server.service.HostComponentService;
 
@@ -49,20 +49,20 @@ public class HostComponentServiceImpl implements 
HostComponentService {
     @Override
     public List<HostComponentVO> list(Long clusterId) {
         List<HostComponent> hostComponentList = 
hostComponentRepository.findAllByComponentClusterId(clusterId);
-        return HostComponentMapper.INSTANCE.fromEntity2VO(hostComponentList);
+        return 
HostComponentConverter.INSTANCE.fromEntity2VO(hostComponentList);
     }
 
     @Override
     public List<HostComponentVO> listByHost(Long clusterId, Long hostId) {
         List<HostComponent> hostComponentList =
                 
hostComponentRepository.findAllByComponentClusterIdAndHostId(clusterId, 
clusterId);
-        return HostComponentMapper.INSTANCE.fromEntity2VO(hostComponentList);
+        return 
HostComponentConverter.INSTANCE.fromEntity2VO(hostComponentList);
     }
 
     @Override
     public List<HostComponentVO> listByService(Long clusterId, Long serviceId) 
{
         List<HostComponent> hostComponentList =
                 
hostComponentRepository.findAllByComponentClusterIdAndComponentServiceId(clusterId,
 serviceId);
-        return HostComponentMapper.INSTANCE.fromEntity2VO(hostComponentList);
+        return 
HostComponentConverter.INSTANCE.fromEntity2VO(hostComponentList);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
index b24edd0..c219af6 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/HostServiceImpl.java
@@ -26,8 +26,8 @@ import 
org.apache.bigtop.manager.dao.repository.HostRepository;
 import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
 import org.apache.bigtop.manager.server.exception.ApiException;
 import org.apache.bigtop.manager.server.grpc.GrpcClient;
+import org.apache.bigtop.manager.server.model.converter.HostConverter;
 import org.apache.bigtop.manager.server.model.dto.HostDTO;
-import org.apache.bigtop.manager.server.model.mapper.HostMapper;
 import org.apache.bigtop.manager.server.model.vo.HostVO;
 import org.apache.bigtop.manager.server.service.HostService;
 
@@ -60,7 +60,7 @@ public class HostServiceImpl implements HostService {
             throw new ApiException(ApiExceptionEnum.HOST_NOT_FOUND);
         }
 
-        return HostMapper.INSTANCE.fromEntity2VO(hosts);
+        return HostConverter.INSTANCE.fromEntity2VO(hosts);
     }
 
     @Override
@@ -87,23 +87,23 @@ public class HostServiceImpl implements HostService {
 
         hostRepository.saveAll(hosts);
 
-        return HostMapper.INSTANCE.fromEntity2VO(hosts);
+        return HostConverter.INSTANCE.fromEntity2VO(hosts);
     }
 
     @Override
     public HostVO get(Long id) {
         Host host = hostRepository.findById(id).orElseThrow(() -> new 
ApiException(ApiExceptionEnum.HOST_NOT_FOUND));
 
-        return HostMapper.INSTANCE.fromEntity2VO(host);
+        return HostConverter.INSTANCE.fromEntity2VO(host);
     }
 
     @Override
     public HostVO update(Long id, HostDTO hostDTO) {
-        Host host = HostMapper.INSTANCE.fromDTO2Entity(hostDTO);
+        Host host = HostConverter.INSTANCE.fromDTO2Entity(hostDTO);
         host.setId(id);
         hostRepository.save(host);
 
-        return HostMapper.INSTANCE.fromEntity2VO(host);
+        return HostConverter.INSTANCE.fromEntity2VO(host);
     }
 
     @Override
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
index 77e191a..28ef3ad 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/JobServiceImpl.java
@@ -28,7 +28,7 @@ import 
org.apache.bigtop.manager.dao.repository.TaskRepository;
 import org.apache.bigtop.manager.server.command.scheduler.JobScheduler;
 import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
 import org.apache.bigtop.manager.server.exception.ApiException;
-import org.apache.bigtop.manager.server.model.mapper.JobMapper;
+import org.apache.bigtop.manager.server.model.converter.JobConverter;
 import org.apache.bigtop.manager.server.model.query.PageQuery;
 import org.apache.bigtop.manager.server.model.vo.JobVO;
 import org.apache.bigtop.manager.server.model.vo.PageVO;
@@ -75,7 +75,7 @@ public class JobServiceImpl implements JobService {
     @Override
     public JobVO get(Long id) {
         Job job = jobRepository.getReferenceById(id);
-        return JobMapper.INSTANCE.fromEntity2VO(job);
+        return JobConverter.INSTANCE.fromEntity2VO(job);
     }
 
     @Override
@@ -99,6 +99,6 @@ public class JobServiceImpl implements JobService {
         jobRepository.save(job);
         jobScheduler.submit(job);
 
-        return JobMapper.INSTANCE.fromEntity2VO(job);
+        return JobConverter.INSTANCE.fromEntity2VO(job);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
index 8a13917..724a1ea 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/ServiceServiceImpl.java
@@ -31,11 +31,11 @@ import org.apache.bigtop.manager.dao.entity.TypeConfig;
 import org.apache.bigtop.manager.dao.repository.HostComponentRepository;
 import org.apache.bigtop.manager.dao.repository.ServiceConfigRepository;
 import org.apache.bigtop.manager.dao.repository.ServiceRepository;
+import org.apache.bigtop.manager.server.model.converter.ServiceConverter;
+import org.apache.bigtop.manager.server.model.converter.TypeConfigConverter;
 import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
 import org.apache.bigtop.manager.server.model.dto.QuickLinkDTO;
 import org.apache.bigtop.manager.server.model.dto.TypeConfigDTO;
-import org.apache.bigtop.manager.server.model.mapper.ServiceMapper;
-import org.apache.bigtop.manager.server.model.mapper.TypeConfigMapper;
 import org.apache.bigtop.manager.server.model.vo.QuickLinkVO;
 import org.apache.bigtop.manager.server.model.vo.ServiceVO;
 import org.apache.bigtop.manager.server.service.ServiceService;
@@ -74,7 +74,7 @@ public class ServiceServiceImpl implements ServiceService {
         for (Map.Entry<Long, List<HostComponent>> entry : 
serviceIdToHostComponent.entrySet()) {
             List<HostComponent> hostComponents = entry.getValue();
             Service service = 
hostComponents.get(0).getComponent().getService();
-            ServiceVO serviceVO = 
ServiceMapper.INSTANCE.fromEntity2VO(service);
+            ServiceVO serviceVO = 
ServiceConverter.INSTANCE.fromEntity2VO(service);
             serviceVO.setQuickLinks(new ArrayList<>());
 
             boolean isHealthy = true;
@@ -112,7 +112,7 @@ public class ServiceServiceImpl implements ServiceService {
     @Override
     public ServiceVO get(Long id) {
         Service service = serviceRepository.findById(id).orElse(new Service());
-        return ServiceMapper.INSTANCE.fromEntity2VO(service);
+        return ServiceConverter.INSTANCE.fromEntity2VO(service);
     }
 
     private QuickLinkVO resolveQuickLink(HostComponent hostComponent, String 
quickLinkJson) {
@@ -131,7 +131,7 @@ public class ServiceServiceImpl implements ServiceService {
 
         // Use HTTP for now, need to handle https in the future
         for (TypeConfig typeConfig : typeConfigs) {
-            TypeConfigDTO typeConfigDTO = 
TypeConfigMapper.INSTANCE.fromEntity2DTO(typeConfig);
+            TypeConfigDTO typeConfigDTO = 
TypeConfigConverter.INSTANCE.fromEntity2DTO(typeConfig);
             for (PropertyDTO propertyDTO : typeConfigDTO.getProperties()) {
                 if 
(propertyDTO.getName().equals(quickLinkDTO.getHttpPortProperty())) {
                     String port = propertyDTO.getValue().contains(":")
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/StackServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/StackServiceImpl.java
index ca49509..36bbef0 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/StackServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/StackServiceImpl.java
@@ -20,13 +20,13 @@ package org.apache.bigtop.manager.server.service.impl;
 
 import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
 import org.apache.bigtop.manager.server.exception.ApiException;
+import org.apache.bigtop.manager.server.model.converter.ComponentConverter;
+import org.apache.bigtop.manager.server.model.converter.ServiceConverter;
+import org.apache.bigtop.manager.server.model.converter.StackConverter;
+import org.apache.bigtop.manager.server.model.converter.TypeConfigConverter;
 import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
 import org.apache.bigtop.manager.server.model.dto.StackDTO;
 import org.apache.bigtop.manager.server.model.dto.TypeConfigDTO;
-import org.apache.bigtop.manager.server.model.mapper.ComponentMapper;
-import org.apache.bigtop.manager.server.model.mapper.ServiceMapper;
-import org.apache.bigtop.manager.server.model.mapper.StackMapper;
-import org.apache.bigtop.manager.server.model.mapper.TypeConfigMapper;
 import org.apache.bigtop.manager.server.model.vo.ServiceComponentVO;
 import org.apache.bigtop.manager.server.model.vo.ServiceConfigVO;
 import org.apache.bigtop.manager.server.model.vo.StackVO;
@@ -56,8 +56,8 @@ public class StackServiceImpl implements StackService {
             StackDTO stackDTO = pair.left;
             List<ServiceDTO> serviceDTOList = pair.right;
 
-            StackVO stackVO = StackMapper.INSTANCE.fromDTO2VO(stackDTO);
-            
stackVO.setServices(ServiceMapper.INSTANCE.fromDTO2VO(serviceDTOList));
+            StackVO stackVO = StackConverter.INSTANCE.fromDTO2VO(stackDTO);
+            
stackVO.setServices(ServiceConverter.INSTANCE.fromDTO2VO(serviceDTOList));
             stackVOList.add(stackVO);
         }
 
@@ -78,7 +78,7 @@ public class StackServiceImpl implements StackService {
         for (ServiceDTO serviceDTO : serviceDTOList) {
             ServiceComponentVO element = new ServiceComponentVO();
             element.setServiceName(serviceDTO.getServiceName());
-            
element.setComponents(ComponentMapper.INSTANCE.fromDTO2VO(serviceDTO.getComponents()));
+            
element.setComponents(ComponentConverter.INSTANCE.fromDTO2VO(serviceDTO.getComponents()));
             list.add(element);
         }
 
@@ -95,7 +95,7 @@ public class StackServiceImpl implements StackService {
         for (Map.Entry<String, List<TypeConfigDTO>> entry : 
serviceConfigMap.entrySet()) {
             ServiceConfigVO element = new ServiceConfigVO();
             element.setServiceName(entry.getKey());
-            
element.setConfigs(TypeConfigMapper.INSTANCE.fromDTO2VO(entry.getValue()));
+            
element.setConfigs(TypeConfigConverter.INSTANCE.fromDTO2VO(entry.getValue()));
             list.add(element);
         }
 
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
index a0b1adb..b1f0abd 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/service/impl/UserServiceImpl.java
@@ -23,8 +23,8 @@ import 
org.apache.bigtop.manager.dao.repository.UserRepository;
 import org.apache.bigtop.manager.server.enums.ApiExceptionEnum;
 import org.apache.bigtop.manager.server.exception.ApiException;
 import org.apache.bigtop.manager.server.holder.SessionUserHolder;
+import org.apache.bigtop.manager.server.model.converter.UserConverter;
 import org.apache.bigtop.manager.server.model.dto.UserDTO;
-import org.apache.bigtop.manager.server.model.mapper.UserMapper;
 import org.apache.bigtop.manager.server.model.vo.UserVO;
 import org.apache.bigtop.manager.server.service.UserService;
 
@@ -42,7 +42,7 @@ public class UserServiceImpl implements UserService {
     public UserVO current() {
         Long id = SessionUserHolder.getUserId();
         User user = userRepository.findById(id).orElseThrow(() -> new 
ApiException(ApiExceptionEnum.NEED_LOGIN));
-        return UserMapper.INSTANCE.fromEntity2VO(user);
+        return UserConverter.INSTANCE.fromEntity2VO(user);
     }
 
     @Override
@@ -51,6 +51,6 @@ public class UserServiceImpl implements UserService {
         User user = userRepository.findById(id).orElseThrow(() -> new 
ApiException(ApiExceptionEnum.NEED_LOGIN));
         user.setNickname(userDTO.getNickname());
         userRepository.save(user);
-        return UserMapper.INSTANCE.fromEntity2VO(user);
+        return UserConverter.INSTANCE.fromEntity2VO(user);
     }
 }
diff --git 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
index 043b3a6..b178b33 100644
--- 
a/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
+++ 
b/bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/utils/StackUtils.java
@@ -23,13 +23,13 @@ import org.apache.bigtop.manager.common.utils.Environments;
 import org.apache.bigtop.manager.common.utils.JsonUtils;
 import org.apache.bigtop.manager.server.exception.ApiException;
 import org.apache.bigtop.manager.server.exception.ServerException;
+import org.apache.bigtop.manager.server.model.converter.ServiceConverter;
+import org.apache.bigtop.manager.server.model.converter.StackConverter;
 import org.apache.bigtop.manager.server.model.dto.ComponentDTO;
 import org.apache.bigtop.manager.server.model.dto.PropertyDTO;
 import org.apache.bigtop.manager.server.model.dto.ServiceDTO;
 import org.apache.bigtop.manager.server.model.dto.StackDTO;
 import org.apache.bigtop.manager.server.model.dto.TypeConfigDTO;
-import org.apache.bigtop.manager.server.model.mapper.ServiceMapper;
-import org.apache.bigtop.manager.server.model.mapper.StackMapper;
 import org.apache.bigtop.manager.server.stack.dag.ComponentCommandWrapper;
 import org.apache.bigtop.manager.server.stack.dag.DAG;
 import org.apache.bigtop.manager.server.stack.dag.DagGraphEdge;
@@ -112,7 +112,7 @@ public class StackUtils {
     public static StackDTO parseStack(File versionFolder) {
         StackMetainfoXml stackMetainfoXml = JaxbUtils.readFromPath(
                 versionFolder.getAbsolutePath() + File.separator + META_FILE, 
StackMetainfoXml.class);
-        return StackMapper.INSTANCE.fromModel2DTO(stackMetainfoXml.getStack());
+        return 
StackConverter.INSTANCE.fromModel2DTO(stackMetainfoXml.getStack());
     }
 
     /**
@@ -134,7 +134,7 @@ public class StackUtils {
                 ServiceMetainfoXml serviceMetainfoXml =
                         JaxbUtils.readFromPath(file.getAbsolutePath() + "/" + 
META_FILE, ServiceMetainfoXml.class);
                 ServiceModel serviceModel = serviceMetainfoXml.getService();
-                ServiceDTO serviceDTO = 
ServiceMapper.INSTANCE.fromModel2DTO(serviceModel);
+                ServiceDTO serviceDTO = 
ServiceConverter.INSTANCE.fromModel2DTO(serviceModel);
                 services.add(serviceDTO);
 
                 // configurations

Reply via email to