##### Coverage Report - com.ctrip.apollo.biz.service.ClusterService

Classes in this File | Line Coverage | Branch Coverage | Complexity
ClusterService |
45% | 17/37
37% | 3/8
| 2.142857142857143;2.143

1 |  |
     package com.ctrip.apollo.biz.service;
2 |  |
3 |  |
     import java.util.Collections;
4 |  |
     import java.util.List;
5 |  |
     import java.util.Objects;
6 |  |
7 |  |
     import org.springframework.beans.factory.annotation.Autowired;
8 |  |
     import org.springframework.stereotype.Service;
9 |  |
     import org.springframework.transaction.annotation.Transactional;
10 |  |
11 |  |
     import com.ctrip.apollo.biz.entity.Audit;
12 |  |
     import com.ctrip.apollo.biz.entity.Cluster;
13 |  |
     import com.ctrip.apollo.biz.repository.ClusterRepository;
14 |  |
     import com.ctrip.apollo.common.utils.BeanUtils;
15 |  |
     import com.ctrip.apollo.core.ConfigConsts;
16 |  |
     import com.ctrip.apollo.core.exception.ServiceException;
17 |  |
     import com.google.common.base.Strings;
18 |  |
19 |  |
     @Service
20 | 1 |
     public class ClusterService {
21 |  |
22 |  |
       @Autowired
23 |  |
       private ClusterRepository clusterRepository;
24 |  |
25 |  |
       @Autowired
26 |  |
       private AuditService auditService;
27 |  |
28 |  |
       public boolean isClusterNameUnique(String appId, String clusterName) {
29 | 4 |
         Objects.requireNonNull(appId, "AppId must not be null");
30 | 4 |
         Objects.requireNonNull(clusterName, "ClusterName must not be null");
31 | 4 |
         return Objects.isNull(clusterRepository.findByAppIdAndName(appId, clusterName));
32 |  |
       }
33 |  |
34 |  |
       public Cluster findOne(String appId, String name) {
35 | 0 |
         return clusterRepository.findByAppIdAndName(appId, name);
36 |  |
       }
37 |  |
38 |  |
       public List<Cluster> findClusters(String appId) {
39 | 3 |
         if (Strings.isNullOrEmpty(appId)) {
40 | 0 |
           return Collections.emptyList();
41 |  |
         }
42 |  |
43 | 3 |
         List<Cluster> clusters = clusterRepository.findByAppId(appId);
44 | 3 |
         if (clusters == null) {
45 | 0 |
           return Collections.emptyList();
46 |  |
         }
47 | 3 |
         return clusters;
48 |  |
       }
49 |  |
50 |  |
       @Transactional
51 |  |
       public Cluster save(Cluster entity) {
52 | 0 |
         if (!isClusterNameUnique(entity.getAppId(), entity.getName())) {
53 | 0 |
           throw new ServiceException("cluster not unique");
54 |  |
         }
55 | 0 |
         Cluster cluster = clusterRepository.save(entity);
56 |  |
57 | 0 |
         auditService.audit(Cluster.class.getSimpleName(), cluster.getId(), Audit.OP.INSERT,
58 | 0 |
             cluster.getDataChangeCreatedBy());
59 |  |
60 | 0 |
         return cluster;
61 |  |
       }
62 |  |
63 |  |
       @Transactional
64 |  |
       public void delete(long id, String owner) {
65 | 0 |
         clusterRepository.delete(id);
66 |  |
67 | 0 |
         auditService.audit(Cluster.class.getSimpleName(), id, Audit.OP.DELETE, owner);
68 | 0 |
       }
69 |  |
70 |  |
       @Transactional
71 |  |
       public Cluster update(Cluster cluster) {
72 | 0 |
         Cluster managedCluster =
73 | 0 |
             clusterRepository.findByAppIdAndName(cluster.getAppId(), cluster.getName());
74 | 0 |
         BeanUtils.copyEntityProperties(cluster, managedCluster);
75 | 0 |
         managedCluster = clusterRepository.save(managedCluster);
76 |  |
77 | 0 |
         auditService.audit(Cluster.class.getSimpleName(), managedCluster.getId(), Audit.OP.UPDATE,
78 | 0 |
             managedCluster.getDataChangeLastModifiedBy());
79 |  |
80 | 0 |
         return managedCluster;
81 |  |
       }
82 |  |
83 |  |
       @Transactional
84 |  |
       public void createDefaultCluster(String appId, String createBy) {
85 | 4 |
         if (!isClusterNameUnique(appId, ConfigConsts.CLUSTER_NAME_DEFAULT)) {
86 | 0 |
           throw new ServiceException("cluster not unique");
87 |  |
         }
88 | 4 |
         Cluster cluster = new Cluster();
89 | 4 |
         cluster.setName(ConfigConsts.CLUSTER_NAME_DEFAULT);
90 | 4 |
         cluster.setAppId(appId);
91 | 4 |
         cluster.setDataChangeCreatedBy(createBy);
92 | 4 |
         cluster.setDataChangeLastModifiedBy(createBy);
93 | 4 |
         clusterRepository.save(cluster);
94 |  |
95 | 4 |
         auditService.audit(Cluster.class.getSimpleName(), cluster.getId(), Audit.OP.INSERT, createBy);
96 | 4 |
       }
97 |  |
     }