1
0
AE86 5 жил өмнө
parent
commit
acba712ed7

+ 1 - 1
dbsyncer-biz/src/main/java/org/dbsyncer/biz/MappingService.java

@@ -32,7 +32,7 @@ public interface MappingService {
      *
      * @param id
      */
-    boolean remove(String id);
+    String remove(String id);
 
     /**
      * 获取驱动

+ 1 - 1
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/tablegroup/TableGroupChecker.java

@@ -113,7 +113,7 @@ public class TableGroupChecker extends AbstractChecker {
 
     private Table getTable(String connectorId, String tableName) {
         MetaInfo metaInfo = manager.getMetaInfo(connectorId, tableName);
-        Assert.notNull(metaInfo, "无法获取连接信息.");
+        Assert.notNull(metaInfo, "无法获取连接器表信息.");
         return new Table().setName(tableName).setColumn(metaInfo.getColumn());
     }
 

+ 45 - 18
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/MappingServiceImpl.java

@@ -19,6 +19,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
+import org.springframework.util.StringUtils;
 
 import java.util.Comparator;
 import java.util.HashMap;
@@ -59,26 +60,37 @@ public class MappingServiceImpl implements MappingService {
 
     @Override
     public String edit(Map<String, String> params) {
-        logger.info("检查驱动是否停止运行");
-        ConfigModel model = mappingChecker.checkEditConfigModel(params);
-        return manager.editMapping(model);
+        String mappingId = params.get(ConfigConstant.CONFIG_MODEL_ID);
+        synchronized (LOCK){
+            checkRunning(mappingId);
+
+            ConfigModel model = mappingChecker.checkEditConfigModel(params);
+            return manager.editMapping(model);
+        }
     }
 
     @Override
-    public boolean remove(String mappingId) {
-        logger.info("检查驱动是否停止运行");
-        Mapping mapping = manager.getMapping(mappingId);
-        Assert.notNull(mapping, "驱动不存在.");
-        // 删除meta
-        manager.removeMeta(mapping.getMetaId());
+    public String remove(String id) {
+        Assert.hasText(id, "驱动ID不能为空");
+
+        synchronized (LOCK){
+            checkRunning(id);
+
+            // 删除meta
+            Mapping mapping = manager.getMapping(id);
+            String metaId = mapping.getMetaId();
+            if(!StringUtils.isEmpty(metaId)){
+                manager.removeMeta(metaId);
+            }
 
-        // 删除tableGroup
-        List<TableGroup> groupList = manager.getTableGroupAll(mappingId);
-        if (!CollectionUtils.isEmpty(groupList)) {
-            groupList.forEach(t -> manager.removeTableGroup(t.getId()));
+            // 删除tableGroup
+            List<TableGroup> groupList = manager.getTableGroupAll(id);
+            if (!CollectionUtils.isEmpty(groupList)) {
+                groupList.forEach(t -> manager.removeTableGroup(t.getId()));
+            }
+            manager.removeMapping(id);
         }
-        manager.removeMapping(mappingId);
-        return true;
+        return "驱动删除成功";
     }
 
     @Override
@@ -99,10 +111,13 @@ public class MappingServiceImpl implements MappingService {
 
     @Override
     public String start(String id) {
+        Assert.hasText(id, "驱动ID不能为空");
         Map<String, String> params = new HashMap<>();
         params.put(ConfigConstant.CONFIG_MODEL_ID, id);
 
         synchronized (LOCK){
+            checkRunning(id);
+
             ConfigModel model = metaChecker.checkAddConfigModel(params);
             manager.addMeta(model);
         }
@@ -111,16 +126,16 @@ public class MappingServiceImpl implements MappingService {
 
     @Override
     public String stop(String id) {
+        Assert.hasText(id, "驱动ID不能为空");
         Mapping mapping = manager.getMapping(id);
         Assert.notNull(mapping, "驱动不存在.");
 
         synchronized (LOCK){
             String metaId = mapping.getMetaId();
-            if (null != manager.getMeta(metaId)) {
-                manager.removeMeta(metaId);
-            } else {
+            if (null == manager.getMeta(metaId)) {
                 throw new BizException("驱动已停止.");
             }
+            manager.removeMeta(metaId);
         }
         return "驱动停止成功";
     }
@@ -160,4 +175,16 @@ public class MappingServiceImpl implements MappingService {
         return metaVo;
     }
 
+    /**
+     * 检查是否运行中
+     *
+     * @param mappingId
+     */
+    private void checkRunning(String mappingId) {
+        Mapping mapping = manager.getMapping(mappingId);
+        Assert.notNull(mapping, "驱动不存在.");
+
+        Meta meta = manager.getMeta(mapping.getMetaId());
+        Assert.isNull(meta, "驱动正在运行, 请先停止.");
+    }
 }

+ 2 - 2
dbsyncer-manager/src/main/java/org/dbsyncer/manager/ManagerFactory.java

@@ -99,7 +99,7 @@ public class ManagerFactory implements Manager, ApplicationListener<ContextRefre
 
     @Override
     public String editMapping(ConfigModel model) {
-        return operationTemplate.execute(new OperationConfig(model, HandlerEnum.OPR_ADD.getHandler()));
+        return operationTemplate.execute(new OperationConfig(model, HandlerEnum.OPR_EDIT.getHandler()));
     }
 
     @Override
@@ -146,7 +146,7 @@ public class ManagerFactory implements Manager, ApplicationListener<ContextRefre
         TableGroup tableGroup = new TableGroup();
         tableGroup.setType(ConfigConstant.TABLE_GROUP);
         tableGroup.setMappingId(mappingId);
-        QueryConfig<TableGroup> queryConfig = new QueryConfig<>(tableGroup);
+        QueryConfig<TableGroup> queryConfig = new QueryConfig<>(tableGroup, GroupStrategyEnum.TABLE);
         List<TableGroup> tableGroups = operationTemplate.queryAll(queryConfig);
         return tableGroups;
     }

+ 1 - 1
dbsyncer-manager/src/main/java/org/dbsyncer/manager/template/AbstractTemplate.java

@@ -19,7 +19,7 @@ public abstract class AbstractTemplate {
         return getDefaultStrategy(query.getGroupStrategyEnum());
     }
 
-    protected GroupStrategyEnum getDefaultStrategy(GroupStrategyEnum strategy){
+    private GroupStrategyEnum getDefaultStrategy(GroupStrategyEnum strategy){
         return null != strategy ? strategy : GroupStrategyEnum.DEFAULT;
     }
 

+ 2 - 2
dbsyncer-manager/src/main/java/org/dbsyncer/manager/template/impl/OperationTemplate.java

@@ -62,7 +62,7 @@ public final class OperationTemplate extends AbstractTemplate {
     }
 
     public <T> T queryObject(Class<T> clazz, String id) {
-        if(StringUtils.isBlank(id)){
+        if (StringUtils.isBlank(id)) {
             return null;
         }
         Object o = cacheService.get(id, clazz);
@@ -166,7 +166,7 @@ public final class OperationTemplate extends AbstractTemplate {
             return index.subList(fromIndex, toIndex);
         }
 
-        public int size(){
+        public int size() {
             return index.size();
         }
 

+ 0 - 1
dbsyncer-storage/src/main/java/org/dbsyncer/storage/support/DiskStorageServiceImpl.java

@@ -86,7 +86,6 @@ public class DiskStorageServiceImpl extends AbstractStorageService {
         createShardIfNotExist(collectionId);
         Document doc = ParamsUtil.convertParamsToDocument(params);
         map.get(collectionId).insert(doc);
-        logger.info("insert success.");
     }
 
     @Override