private void loadWatcherPlugin() { Arrays.stream(PluginEnum.values()).forEach(pluginEnum -> { String pluginPath = ZkPathConstants.buildPluginPath(pluginEnum.getName()); if (!zkClient.exists(pluginPath)) { zkClient.createPersistent(pluginPath, true); } PluginZkDTO data = zkClient.readData(pluginPath); Optional.ofNullable(data).ifPresent(d -> PLUGIN_MAP.put(pluginEnum.getName(), data)); zkClient.subscribeDataChanges(pluginPath, new IZkDataListener() { @Override public void handleDataChange(final String dataPath, final Object data) { Optional.ofNullable(data) .ifPresent(o -> { PluginZkDTO dto = (PluginZkDTO) o; PLUGIN_MAP.put(dto.getName(), dto); }); } @Override public void handleDataDeleted(final String dataPath) { PLUGIN_MAP.remove(pluginEnum.getName()); } }); }); }
zkClient.delete(ZkPathConstants.buildPluginPath(pluginZK)); String selectorParentPath = ZkPathConstants.buildSelectorParentPath(pluginZK); if (zkClient.exists(selectorParentPath)) {
/** * create or update plugin. * * @param pluginDTO {@linkplain PluginDTO} * @return rows */ @Override @Transactional(rollbackFor = Exception.class) public int createOrUpdate(final PluginDTO pluginDTO) { int pluginCount; PluginDO pluginDO = PluginDO.buildPluginDO(pluginDTO); if (StringUtils.isEmpty(pluginDTO.getId())) { pluginCount = pluginMapper.insertSelective(pluginDO); } else { pluginCount = pluginMapper.updateSelective(pluginDO); } String pluginPath = ZkPathConstants.buildPluginPath(pluginDO.getName()); if (!zkClient.exists(pluginPath)) { zkClient.createPersistent(pluginPath, true); } zkClient.writeData(pluginPath, new PluginZkDTO(pluginDO.getId(), pluginDO.getName(), pluginDO.getEnabled())); return pluginCount; }
/** * delete plugins. * * @param ids primary key. * @return rows */ @Override @Transactional(rollbackFor = Exception.class) public int delete(final List<String> ids) { int pluginCount = 0; for (String id : ids) { PluginDO pluginDO = pluginMapper.selectById(id); pluginCount += pluginMapper.delete(id); String pluginPath = ZkPathConstants.buildPluginPath(pluginDO.getName()); if (zkClient.exists(pluginPath)) { zkClient.delete(pluginPath); } String selectorParentPath = ZkPathConstants.buildSelectorParentPath(pluginDO.getName()); if (zkClient.exists(selectorParentPath)) { zkClient.delete(selectorParentPath); } String ruleParentPath = ZkPathConstants.buildRuleParentPath(pluginDO.getName()); if (zkClient.exists(ruleParentPath)) { zkClient.delete(ruleParentPath); } } return pluginCount; }
String pluginPath = ZkPathConstants.buildPluginPath(pluginDO.getName()); if (!zkClient.exists(pluginPath)) { zkClient.createPersistent(pluginPath, true);