mirror of
https://gitee.com/freshday/radar.git
synced 2025-12-26 07:16:26 +08:00
修改插件管理类PluginManager,解决bean不能注入问题
This commit is contained in:
parent
b6d2a28773
commit
eefa7eedc1
@ -18,7 +18,7 @@ import com.pgmmers.radar.service.common.CommonResult;
|
|||||||
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
||||||
import com.pgmmers.radar.service.engine.vo.DataColumnInfo;
|
import com.pgmmers.radar.service.engine.vo.DataColumnInfo;
|
||||||
import com.pgmmers.radar.service.enums.DataType;
|
import com.pgmmers.radar.service.enums.DataType;
|
||||||
import com.pgmmers.radar.service.impl.engine.plugin.PluginManagerV2;
|
import com.pgmmers.radar.service.impl.engine.plugin.PluginManager;
|
||||||
import com.pgmmers.radar.service.model.AbstractionService;
|
import com.pgmmers.radar.service.model.AbstractionService;
|
||||||
import com.pgmmers.radar.service.model.FieldService;
|
import com.pgmmers.radar.service.model.FieldService;
|
||||||
import com.pgmmers.radar.service.model.PreItemService;
|
import com.pgmmers.radar.service.model.PreItemService;
|
||||||
@ -46,7 +46,7 @@ public class AbstractionApiController {
|
|||||||
private PreItemService preItemService;
|
private PreItemService preItemService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PluginManagerV2 pluginManagerV2;
|
private PluginManager pluginManager;
|
||||||
|
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public CommonResult get(@PathVariable Long id) {
|
public CommonResult get(@PathVariable Long id) {
|
||||||
@ -87,7 +87,7 @@ public class AbstractionApiController {
|
|||||||
List<PreItemVO> listPreItem = preItemService.listPreItem(modelId);
|
List<PreItemVO> listPreItem = preItemService.listPreItem(modelId);
|
||||||
if(listPreItem != null && listPreItem.size()!= 0){
|
if(listPreItem != null && listPreItem.size()!= 0){
|
||||||
for (PreItemVO preItem : listPreItem) {
|
for (PreItemVO preItem : listPreItem) {
|
||||||
PluginServiceV2 pt= pluginManagerV2.pluginServiceMap(preItem.getPlugin());
|
PluginServiceV2 pt = pluginManager.pluginServiceMap(preItem.getPlugin());
|
||||||
if (StringUtils.isNotEmpty(pt.getType()) && pt.getType().equals("JSON")) {
|
if (StringUtils.isNotEmpty(pt.getType()) && pt.getType().equals("JSON")) {
|
||||||
//load http request data
|
//load http request data
|
||||||
JsonNode json = preItem.getConfigJson();
|
JsonNode json = preItem.getConfigJson();
|
||||||
|
|||||||
@ -19,7 +19,7 @@ import com.pgmmers.radar.service.common.CommonResult;
|
|||||||
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
||||||
import com.pgmmers.radar.service.engine.vo.DataColumnInfo;
|
import com.pgmmers.radar.service.engine.vo.DataColumnInfo;
|
||||||
import com.pgmmers.radar.service.enums.DataType;
|
import com.pgmmers.radar.service.enums.DataType;
|
||||||
import com.pgmmers.radar.service.impl.engine.plugin.PluginManagerV2;
|
import com.pgmmers.radar.service.impl.engine.plugin.PluginManager;
|
||||||
import com.pgmmers.radar.service.model.*;
|
import com.pgmmers.radar.service.model.*;
|
||||||
import com.pgmmers.radar.vo.model.*;
|
import com.pgmmers.radar.vo.model.*;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@ -46,7 +46,7 @@ public class ActivationApiController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RuleService ruleService;
|
private RuleService ruleService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PluginManagerV2 pluginManagerV2;
|
private PluginManager pluginManager;
|
||||||
|
|
||||||
@GetMapping("/{id}")
|
@GetMapping("/{id}")
|
||||||
public CommonResult get(@PathVariable Long id) {
|
public CommonResult get(@PathVariable Long id) {
|
||||||
@ -79,7 +79,7 @@ public class ActivationApiController {
|
|||||||
ds = new DataColumnInfo(DataType.PREITEMS.getDesc(), DataType.PREITEMS.getName());
|
ds = new DataColumnInfo(DataType.PREITEMS.getDesc(), DataType.PREITEMS.getName());
|
||||||
List<PreItemVO> listPreItem = preItemService.listPreItem(modelId);
|
List<PreItemVO> listPreItem = preItemService.listPreItem(modelId);
|
||||||
for (PreItemVO preItem : listPreItem) {
|
for (PreItemVO preItem : listPreItem) {
|
||||||
PluginServiceV2 pt = pluginManagerV2.pluginServiceMap(preItem.getPlugin());
|
PluginServiceV2 pt = pluginManager.pluginServiceMap(preItem.getPlugin());
|
||||||
if (StringUtils.isNotEmpty(pt.getType()) && pt.getType().equals("JSON")) {
|
if (StringUtils.isNotEmpty(pt.getType()) && pt.getType().equals("JSON")) {
|
||||||
//load http request data
|
//load http request data
|
||||||
JsonNode json = preItem.getConfigJson();
|
JsonNode json = preItem.getConfigJson();
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import com.alibaba.excel.util.IoUtils;
|
|||||||
import com.pgmmers.radar.enums.FieldType;
|
import com.pgmmers.radar.enums.FieldType;
|
||||||
import com.pgmmers.radar.service.cache.CacheService;
|
import com.pgmmers.radar.service.cache.CacheService;
|
||||||
import com.pgmmers.radar.service.common.CommonResult;
|
import com.pgmmers.radar.service.common.CommonResult;
|
||||||
import com.pgmmers.radar.service.impl.engine.plugin.PluginManagerV2;
|
import com.pgmmers.radar.service.impl.engine.plugin.PluginManager;
|
||||||
import com.pgmmers.radar.util.CaptchaUtil;
|
import com.pgmmers.radar.util.CaptchaUtil;
|
||||||
import com.pgmmers.radar.util.ZipUtils;
|
import com.pgmmers.radar.util.ZipUtils;
|
||||||
import com.pgmmers.radar.vo.common.PluginVO;
|
import com.pgmmers.radar.vo.common.PluginVO;
|
||||||
@ -53,13 +53,13 @@ public class CommonApiController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CacheService cacheService;
|
private CacheService cacheService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PluginManagerV2 pluginManagerV2;
|
private PluginManager pluginManager;
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/plugins")
|
@GetMapping("/plugins")
|
||||||
public CommonResult plugins() {
|
public CommonResult plugins() {
|
||||||
CommonResult result = new CommonResult();
|
CommonResult result = new CommonResult();
|
||||||
List<PluginVO> plugins = pluginManagerV2.getPluginServiceMap()
|
List<PluginVO> plugins = pluginManager.getPluginServiceMap()
|
||||||
.values()
|
.values()
|
||||||
.stream()
|
.stream()
|
||||||
.map(t-> new PluginVO(t.key(),t.pluginName(),t.desc()))
|
.map(t-> new PluginVO(t.key(),t.pluginName(),t.desc()))
|
||||||
|
|||||||
@ -20,7 +20,7 @@ import com.pgmmers.radar.service.common.CommonResult;
|
|||||||
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
||||||
import com.pgmmers.radar.service.engine.vo.DataColumnInfo;
|
import com.pgmmers.radar.service.engine.vo.DataColumnInfo;
|
||||||
import com.pgmmers.radar.service.enums.DataType;
|
import com.pgmmers.radar.service.enums.DataType;
|
||||||
import com.pgmmers.radar.service.impl.engine.plugin.PluginManagerV2;
|
import com.pgmmers.radar.service.impl.engine.plugin.PluginManager;
|
||||||
import com.pgmmers.radar.service.logs.EventService;
|
import com.pgmmers.radar.service.logs.EventService;
|
||||||
import com.pgmmers.radar.service.model.ActivationService;
|
import com.pgmmers.radar.service.model.ActivationService;
|
||||||
import com.pgmmers.radar.service.model.FieldService;
|
import com.pgmmers.radar.service.model.FieldService;
|
||||||
@ -69,7 +69,7 @@ public class EventApiController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RuleService ruleService;
|
private RuleService ruleService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PluginManagerV2 pluginManagerV2;
|
private PluginManager pluginManager;
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/query")
|
@PostMapping("/query")
|
||||||
@ -190,7 +190,7 @@ public class EventApiController {
|
|||||||
if (!itemsIdMap.containsKey(item.getDestField())) {
|
if (!itemsIdMap.containsKey(item.getDestField())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
PluginServiceV2 plugin = pluginManagerV2.pluginServiceMap(item.getPlugin());
|
PluginServiceV2 plugin = pluginManager.pluginServiceMap(item.getPlugin());
|
||||||
String type = plugin.getType();
|
String type = plugin.getType();
|
||||||
String meta = plugin.getMeta();
|
String meta = plugin.getMeta();
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import com.pgmmers.radar.EngineApplication;
|
|||||||
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
||||||
import com.pgmmers.radar.service.engine.vo.Location;
|
import com.pgmmers.radar.service.engine.vo.Location;
|
||||||
import com.pgmmers.radar.service.impl.engine.plugin.PluginManager;
|
import com.pgmmers.radar.service.impl.engine.plugin.PluginManager;
|
||||||
import com.pgmmers.radar.service.impl.engine.plugin.PluginManagerV2;
|
|
||||||
import com.pgmmers.radar.vo.model.PreItemVO;
|
import com.pgmmers.radar.vo.model.PreItemVO;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@ -31,20 +30,17 @@ public class PluginTest {
|
|||||||
private static final Logger logger = LoggerFactory.getLogger(PluginTest.class);
|
private static final Logger logger = LoggerFactory.getLogger(PluginTest.class);
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PluginManagerV2 pluginManagerV2;
|
private PluginManager pluginManager;
|
||||||
|
|
||||||
@Test
|
|
||||||
public void pluginListV2() {
|
|
||||||
pluginManagerV2.getPluginServiceMap().values()
|
|
||||||
.stream()
|
|
||||||
.sorted(Comparator.comparing(PluginServiceV2::key))
|
|
||||||
.forEach(t -> logger.info(t.info()));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public void pluginList() {
|
public void pluginList() {
|
||||||
PluginManager.pluginServiceMap().values()
|
// PluginManager.pluginServiceMap().values()
|
||||||
|
// .stream()
|
||||||
|
// .sorted(Comparator.comparing(PluginServiceV2::key))
|
||||||
|
// .forEach(t -> logger.info(t.info()));
|
||||||
|
pluginManager.getPluginServiceMap().values()
|
||||||
.stream()
|
.stream()
|
||||||
.sorted(Comparator.comparing(PluginServiceV2::key))
|
.sorted(Comparator.comparing(PluginServiceV2::key))
|
||||||
.forEach(t -> logger.info(t.info()));
|
.forEach(t -> logger.info(t.info()));
|
||||||
@ -68,7 +64,8 @@ public class PluginTest {
|
|||||||
jsonInfo.put("firsName", "aaa");
|
jsonInfo.put("firsName", "aaa");
|
||||||
jsonInfo.put("lastName", "ccc");
|
jsonInfo.put("lastName", "ccc");
|
||||||
String[] sourceField = item.getSourceField().split(",");
|
String[] sourceField = item.getSourceField().split(",");
|
||||||
PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("ALLINONE");
|
// PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("ALLINONE");
|
||||||
|
PluginServiceV2 pluginServiceV2 = pluginManager.getPluginServiceMap().get("ALLINONE");
|
||||||
String result = (String) pluginServiceV2
|
String result = (String) pluginServiceV2
|
||||||
.handle(item, jsonInfo, sourceField);
|
.handle(item, jsonInfo, sourceField);
|
||||||
Assert.assertNotNull(result);
|
Assert.assertNotNull(result);
|
||||||
@ -82,7 +79,8 @@ public class PluginTest {
|
|||||||
item.setSourceField("time");
|
item.setSourceField("time");
|
||||||
jsonInfo.put("time", System.currentTimeMillis());
|
jsonInfo.put("time", System.currentTimeMillis());
|
||||||
String[] sourceField = item.getSourceField().split(",");
|
String[] sourceField = item.getSourceField().split(",");
|
||||||
PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("DATEFORMAT");
|
// PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("DATEFORMAT");
|
||||||
|
PluginServiceV2 pluginServiceV2 = pluginManager.getPluginServiceMap().get("DATEFORMAT");
|
||||||
String result = (String) pluginServiceV2
|
String result = (String) pluginServiceV2
|
||||||
.handle(item, jsonInfo, sourceField);
|
.handle(item, jsonInfo, sourceField);
|
||||||
Assert.assertNotNull(result);
|
Assert.assertNotNull(result);
|
||||||
@ -102,7 +100,8 @@ public class PluginTest {
|
|||||||
item.setSourceField("json");
|
item.setSourceField("json");
|
||||||
jsonInfo.put("json","");
|
jsonInfo.put("json","");
|
||||||
String[] sourceField = item.getSourceField().split(",");
|
String[] sourceField = item.getSourceField().split(",");
|
||||||
PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("HTTP_UTIL");
|
// PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("HTTP_UTIL");
|
||||||
|
PluginServiceV2 pluginServiceV2 = pluginManager.getPluginServiceMap().get("HTTP_UTIL");
|
||||||
JSONObject result = (JSONObject) pluginServiceV2
|
JSONObject result = (JSONObject) pluginServiceV2
|
||||||
.handle(item, jsonInfo, sourceField);
|
.handle(item, jsonInfo, sourceField);
|
||||||
Assert.assertNotNull(result);
|
Assert.assertNotNull(result);
|
||||||
@ -115,7 +114,8 @@ public class PluginTest {
|
|||||||
item.setSourceField("ip");
|
item.setSourceField("ip");
|
||||||
jsonInfo.put("ip", "1.1.1.1");
|
jsonInfo.put("ip", "1.1.1.1");
|
||||||
String[] sourceField = item.getSourceField().split(",");
|
String[] sourceField = item.getSourceField().split(",");
|
||||||
PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("IP2LOCATION");
|
// PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("IP2LOCATION");
|
||||||
|
PluginServiceV2 pluginServiceV2 = pluginManager.getPluginServiceMap().get("IP2LOCATION");
|
||||||
Location location = (Location) pluginServiceV2
|
Location location = (Location) pluginServiceV2
|
||||||
.handle(item, jsonInfo, sourceField);
|
.handle(item, jsonInfo, sourceField);
|
||||||
Assert.assertNotNull(location);
|
Assert.assertNotNull(location);
|
||||||
@ -128,7 +128,8 @@ public class PluginTest {
|
|||||||
item.setSourceField("phone");
|
item.setSourceField("phone");
|
||||||
jsonInfo.put("phone", "18657150000");
|
jsonInfo.put("phone", "18657150000");
|
||||||
String[] sourceField = item.getSourceField().split(",");
|
String[] sourceField = item.getSourceField().split(",");
|
||||||
PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("MOBILE2LOCATION");
|
// PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("MOBILE2LOCATION");
|
||||||
|
PluginServiceV2 pluginServiceV2 = pluginManager.getPluginServiceMap().get("MOBILE2LOCATION");
|
||||||
Location location = (Location) pluginServiceV2
|
Location location = (Location) pluginServiceV2
|
||||||
.handle(item, jsonInfo, sourceField);
|
.handle(item, jsonInfo, sourceField);
|
||||||
Assert.assertNotNull(location);
|
Assert.assertNotNull(location);
|
||||||
@ -141,7 +142,8 @@ public class PluginTest {
|
|||||||
item.setSourceField("time");
|
item.setSourceField("time");
|
||||||
jsonInfo.put("time",System.currentTimeMillis());
|
jsonInfo.put("time",System.currentTimeMillis());
|
||||||
String[] sourceField = item.getSourceField().split(",");
|
String[] sourceField = item.getSourceField().split(",");
|
||||||
PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("SENSITIVE_TIME");
|
// PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("SENSITIVE_TIME");
|
||||||
|
PluginServiceV2 pluginServiceV2 = pluginManager.getPluginServiceMap().get("SENSITIVE_TIME");
|
||||||
String location = (String) pluginServiceV2
|
String location = (String) pluginServiceV2
|
||||||
.handle(item, jsonInfo, sourceField);
|
.handle(item, jsonInfo, sourceField);
|
||||||
Assert.assertNotNull(location);
|
Assert.assertNotNull(location);
|
||||||
@ -156,7 +158,8 @@ public class PluginTest {
|
|||||||
item.setSourceField("phone");
|
item.setSourceField("phone");
|
||||||
jsonInfo.put("phone", "18657150000");
|
jsonInfo.put("phone", "18657150000");
|
||||||
String[] sourceField = item.getSourceField().split(",");
|
String[] sourceField = item.getSourceField().split(",");
|
||||||
PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("SUBSTRING");
|
// PluginServiceV2 pluginServiceV2 = PluginManager.pluginServiceMap().get("SUBSTRING");
|
||||||
|
PluginServiceV2 pluginServiceV2 = pluginManager.getPluginServiceMap().get("SUBSTRING");
|
||||||
String location = (String) pluginServiceV2
|
String location = (String) pluginServiceV2
|
||||||
.handle(item, jsonInfo, sourceField);
|
.handle(item, jsonInfo, sourceField);
|
||||||
Assert.assertNotNull(location);
|
Assert.assertNotNull(location);
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import com.pgmmers.radar.service.engine.vo.AbstractionResult;
|
|||||||
import com.pgmmers.radar.service.engine.vo.ActivationResult;
|
import com.pgmmers.radar.service.engine.vo.ActivationResult;
|
||||||
import com.pgmmers.radar.service.engine.vo.AdaptationResult;
|
import com.pgmmers.radar.service.engine.vo.AdaptationResult;
|
||||||
import com.pgmmers.radar.service.engine.vo.AntiFraudProcessResult;
|
import com.pgmmers.radar.service.engine.vo.AntiFraudProcessResult;
|
||||||
import com.pgmmers.radar.service.impl.engine.plugin.PluginManagerV2;
|
import com.pgmmers.radar.service.impl.engine.plugin.PluginManager;
|
||||||
import com.pgmmers.radar.service.model.ModelService;
|
import com.pgmmers.radar.service.model.ModelService;
|
||||||
import com.pgmmers.radar.service.model.PreItemService;
|
import com.pgmmers.radar.service.model.PreItemService;
|
||||||
import com.pgmmers.radar.vo.model.PreItemVO;
|
import com.pgmmers.radar.vo.model.PreItemVO;
|
||||||
@ -47,7 +47,7 @@ public class AntiFraudServiceImpl implements AntiFraudService {
|
|||||||
private ModelService modelService;
|
private ModelService modelService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PluginManagerV2 pluginManagerV2;
|
private PluginManager pluginManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CommonResult process(Long modelId, Map<String, Map<String, ?>> context) {
|
public CommonResult process(Long modelId, Map<String, Map<String, ?>> context) {
|
||||||
@ -113,7 +113,7 @@ public class AntiFraudServiceImpl implements AntiFraudService {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String[] sourceField = item.getSourceField().split(",");
|
String[] sourceField = item.getSourceField().split(",");
|
||||||
Object transfer = pluginManagerV2.pluginServiceMap(item.getPlugin()).handle(item,jsonInfo,sourceField);
|
Object transfer = pluginManager.pluginServiceMap(item.getPlugin()).handle(item,jsonInfo,sourceField);
|
||||||
result.put(item.getDestField(), transfer);
|
result.put(item.getDestField(), transfer);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@ -1,28 +1,49 @@
|
|||||||
package com.pgmmers.radar.service.impl.engine.plugin;
|
package com.pgmmers.radar.service.impl.engine.plugin;
|
||||||
|
|
||||||
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
||||||
import org.springframework.core.io.support.SpringFactoriesLoader;
|
import org.springframework.beans.BeansException;
|
||||||
|
import org.springframework.context.ApplicationContext;
|
||||||
|
import org.springframework.context.ApplicationContextAware;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
|
||||||
@Deprecated
|
@Service
|
||||||
public class PluginManager {
|
public class PluginManager implements ApplicationContextAware {
|
||||||
|
|
||||||
private PluginManager() {
|
// private PluginManager() {
|
||||||
|
// }
|
||||||
|
|
||||||
|
// public static Map<String, PluginServiceV2> pluginServiceMap() {
|
||||||
|
// return SingletonHolder.pluginServiceMap;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
private final Map<String, PluginServiceV2> pluginServiceMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
public PluginServiceV2 pluginServiceMap(String key){
|
||||||
|
return pluginServiceMap.get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Map<String, PluginServiceV2> pluginServiceMap() {
|
public Map<String, PluginServiceV2> getPluginServiceMap(){
|
||||||
return SingletonHolder.pluginServiceMap;
|
return pluginServiceMap;
|
||||||
}
|
}
|
||||||
private static class SingletonHolder {
|
|
||||||
|
@Override
|
||||||
|
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
||||||
|
Map<String, PluginServiceV2> beansOfType = applicationContext.getBeansOfType(PluginServiceV2.class);
|
||||||
|
pluginServiceMap.putAll(beansOfType);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 工厂模式实现单例存在不能注入bean问题
|
||||||
|
/* private static class SingletonHolder {
|
||||||
private static final Map<String, PluginServiceV2> pluginServiceMap = SpringFactoriesLoader
|
private static final Map<String, PluginServiceV2> pluginServiceMap = SpringFactoriesLoader
|
||||||
.loadFactories(PluginServiceV2.class, null).stream()
|
.loadFactories(PluginServiceV2.class, null).stream()
|
||||||
.sorted(Comparator.comparing(PluginServiceV2::key))
|
.sorted(Comparator.comparing(PluginServiceV2::key))
|
||||||
.collect(Collectors.toMap(PluginServiceV2::pluginName, e -> e,
|
.collect(Collectors.toMap(PluginServiceV2::pluginName, e -> e,
|
||||||
(oldValue, newValue) -> newValue));
|
(oldValue, newValue) -> newValue));
|
||||||
;
|
;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,35 +0,0 @@
|
|||||||
package com.pgmmers.radar.service.impl.engine.plugin;
|
|
||||||
|
|
||||||
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
|
||||||
import org.springframework.beans.BeansException;
|
|
||||||
import org.springframework.context.ApplicationContext;
|
|
||||||
import org.springframework.context.ApplicationContextAware;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Model
|
|
||||||
* @since 2022/1/27 11:29
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class PluginManagerV2 implements ApplicationContextAware {
|
|
||||||
|
|
||||||
private final Map<String, PluginServiceV2> pluginServiceMap = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
public PluginServiceV2 pluginServiceMap(String key){
|
|
||||||
return pluginServiceMap.get(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, PluginServiceV2> getPluginServiceMap(){
|
|
||||||
return pluginServiceMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
|
|
||||||
Map<String, PluginServiceV2> beansOfType = applicationContext.getBeansOfType(PluginServiceV2.class);
|
|
||||||
pluginServiceMap.putAll(beansOfType);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -14,7 +14,7 @@ import com.pgmmers.radar.service.cache.SubscribeHandle;
|
|||||||
import com.pgmmers.radar.service.common.CommonResult;
|
import com.pgmmers.radar.service.common.CommonResult;
|
||||||
import com.pgmmers.radar.service.data.MongoService;
|
import com.pgmmers.radar.service.data.MongoService;
|
||||||
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
import com.pgmmers.radar.service.engine.PluginServiceV2;
|
||||||
import com.pgmmers.radar.service.impl.engine.plugin.PluginManagerV2;
|
import com.pgmmers.radar.service.impl.engine.plugin.PluginManager;
|
||||||
import com.pgmmers.radar.service.model.ModelService;
|
import com.pgmmers.radar.service.model.ModelService;
|
||||||
import com.pgmmers.radar.service.search.SearchEngineService;
|
import com.pgmmers.radar.service.search.SearchEngineService;
|
||||||
import com.pgmmers.radar.util.JsonUtils;
|
import com.pgmmers.radar.util.JsonUtils;
|
||||||
@ -60,7 +60,7 @@ public class ModelServiceImpl extends BaseLocalCacheService implements ModelServ
|
|||||||
private MongoService mongoService;
|
private MongoService mongoService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PluginManagerV2 pluginManagerV2;
|
private PluginManager pluginManager;
|
||||||
|
|
||||||
// 维护GUID到modelId的映射
|
// 维护GUID到modelId的映射
|
||||||
private Map<String, Long> guidMap;
|
private Map<String, Long> guidMap;
|
||||||
@ -252,7 +252,7 @@ public class ModelServiceImpl extends BaseLocalCacheService implements ModelServ
|
|||||||
// pre item mapping
|
// pre item mapping
|
||||||
JSONObject preItemJson = new JSONObject();
|
JSONObject preItemJson = new JSONObject();
|
||||||
for (PreItemVO item : items) {
|
for (PreItemVO item : items) {
|
||||||
PluginServiceV2 plugin = pluginManagerV2.pluginServiceMap(item.getPlugin());
|
PluginServiceV2 plugin = pluginManager.pluginServiceMap(item.getPlugin());
|
||||||
String columns = plugin.getMeta();
|
String columns = plugin.getMeta();
|
||||||
if (columns == null) {
|
if (columns == null) {
|
||||||
String fieldType = plugin.getType();
|
String fieldType = plugin.getType();
|
||||||
|
|||||||
@ -1,4 +1,13 @@
|
|||||||
|
# PluginManager reset
|
||||||
|
#com.pgmmers.radar.service.engine.PluginServiceV2=\
|
||||||
|
# com.pgmmers.radar.service.impl.engine.plugin.DATEFORMAT,\
|
||||||
|
# com.pgmmers.radar.service.impl.engine.plugin.ALLINONE,\
|
||||||
|
# com.pgmmers.radar.service.impl.engine.plugin.GPS2LOCATION,\
|
||||||
|
# com.pgmmers.radar.service.impl.engine.plugin.HTTP_UTIL,\
|
||||||
|
# com.pgmmers.radar.service.impl.engine.plugin.IP2LOCATION,\
|
||||||
|
# com.pgmmers.radar.service.impl.engine.plugin.MOBILE2LOCATION,\
|
||||||
|
# com.pgmmers.radar.service.impl.engine.plugin.SENSITIVE_TIME,\
|
||||||
|
# com.pgmmers.radar.service.impl.engine.plugin.SUBSTRING
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user