feat:规则引擎客户端新增规则引擎服务类

dev
gtl 2024-05-15 21:43:20 +08:00
parent 7462c6b251
commit 8408d8f9a6
35 changed files with 227 additions and 119 deletions

View File

@ -19,13 +19,6 @@ public class ConnectionPoolContextHolder {
*/ */
private final Map<Long, DruidDataSource> druidDataSourceMap=new ConcurrentHashMap<>(16); private final Map<Long, DruidDataSource> druidDataSourceMap=new ConcurrentHashMap<>(16);
/**
*
*/
public Map<Long,DruidDataSource> getMap(){
return this.druidDataSourceMap;
}
/** /**
* *
*/ */
@ -46,4 +39,11 @@ public class ConnectionPoolContextHolder {
public boolean hasKey(Long id){ public boolean hasKey(Long id){
return this.druidDataSourceMap.containsKey(id); return this.druidDataSourceMap.containsKey(id);
} }
/**
*
*/
public void remove(Long id){
this.druidDataSourceMap.remove(id);
}
} }

View File

@ -32,7 +32,7 @@ public class ConnectionPoolService {
public void init(List<DataSource> dataSourceList){ public void init(List<DataSource> dataSourceList){
for (DataSource dataSource : dataSourceList) { for (DataSource dataSource : dataSourceList) {
try { try {
connectionPoolContextHolder.put(dataSource.getId(), createDataSource(dataSource)); this.put(dataSource);
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e.getMessage()); throw new RuntimeException(e.getMessage());
} }

View File

@ -1,6 +1,6 @@
package com.ruoyi.dataTransform.domain.req; package com.ruoyi.dataTransform.domain.req;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -1,6 +1,6 @@
package com.ruoyi.dataTransform.util; package com.ruoyi.dataTransform.util;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import java.sql.*; import java.sql.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -2,8 +2,7 @@ package com.ruoyi.dataTransform.consumer;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.rabbitmq.client.Channel; import com.rabbitmq.client.Channel;
import com.ruoyi.ruleEngine.client.config.RuleEngineVersionFactory; import com.ruoyi.ruleEngine.client.service.RuleEngineService;
import com.ruoyi.ruleEngine.client.util.RuleEngineUtil;
import com.ruoyi.ruleEngine.constant.QueueNameConstants; import com.ruoyi.ruleEngine.constant.QueueNameConstants;
import com.ruoyi.ruleEngine.domain.EngineVersion; import com.ruoyi.ruleEngine.domain.EngineVersion;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@ -15,7 +14,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.IOException; import java.io.IOException;
import java.util.Map;
/** /**
* *
@ -31,7 +29,7 @@ public class EngineVersionConsumer {
private RedisTemplate<String, String> redisTemplate; private RedisTemplate<String, String> redisTemplate;
@Autowired @Autowired
private RuleEngineVersionFactory ruleEngineVersionFactory; private RuleEngineService ruleEngineService;
@Autowired @Autowired
private MessageConverter messageConverter; private MessageConverter messageConverter;
@ -47,12 +45,10 @@ public class EngineVersionConsumer {
String messageId = message.getMessageProperties().getMessageId(); String messageId = message.getMessageProperties().getMessageId();
try { try {
Long count = redisTemplate.opsForSet().add(QueueNameConstants.VERSION_MESSAGE, messageId); Long count = redisTemplate.opsForSet().add(QueueNameConstants.VERSION_MESSAGE, messageId);
if (count > 0) { if (count != null&&count > 0) {
// 正常消费消息 // 正常消费消息
// 编译
Map<String, byte[]> bytecode = RuleEngineUtil.compileVersion(engineVersion);
// 新增或替换规则内容 // 新增或替换规则内容
ruleEngineVersionFactory.put(engineVersion.getId(),bytecode); ruleEngineService.put(engineVersion);
// 消费成功 手动确认 // 消费成功 手动确认
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
log.info("引擎版本消费者接收到消息,消息内容:{},消费消息成功!", JSON.toJSONString(engineVersion)); log.info("引擎版本消费者接收到消息,消息内容:{},消费消息成功!", JSON.toJSONString(engineVersion));

View File

@ -4,7 +4,7 @@ import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.dataTransform.domain.req.RandomDataReq; import com.ruoyi.dataTransform.domain.req.RandomDataReq;
import com.ruoyi.dataTransform.service.DataExtractService; import com.ruoyi.dataTransform.service.DataExtractService;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -1,7 +1,7 @@
package com.ruoyi.dataTransform.service; package com.ruoyi.dataTransform.service;
import com.ruoyi.dataTransform.domain.req.RandomDataReq; import com.ruoyi.dataTransform.domain.req.RandomDataReq;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import java.util.List; import java.util.List;
/** /**

View File

@ -5,7 +5,7 @@ import com.ruoyi.dataAsset.service.ConnectionPoolService;
import com.ruoyi.dataTransform.domain.req.RandomDataReq; import com.ruoyi.dataTransform.domain.req.RandomDataReq;
import com.ruoyi.dataTransform.service.DataExtractService; import com.ruoyi.dataTransform.service.DataExtractService;
import com.ruoyi.dataTransform.util.DataExtractUtil; import com.ruoyi.dataTransform.util.DataExtractUtil;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -4,20 +4,20 @@ import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.dataTransform.domain.req.TestDataReq; import com.ruoyi.dataTransform.domain.req.TestDataReq;
import com.ruoyi.dataTransform.service.EngineOperationService; import com.ruoyi.dataTransform.service.EngineOperationService;
import com.ruoyi.ruleEngine.client.config.RuleEngineVersionFactory; import com.ruoyi.ruleEngine.client.engine.context.DataModelContextHolder;
import com.ruoyi.ruleEngine.client.context.DataModelContextHolder; import com.ruoyi.ruleEngine.client.engine.context.DataSetContextHolder;
import com.ruoyi.ruleEngine.client.context.DataSetContextHolder; import com.ruoyi.ruleEngine.client.engine.context.RecordContextHolder;
import com.ruoyi.ruleEngine.client.context.RecordContextHolder;
import com.ruoyi.ruleEngine.client.dynamicLoad.DynamicLoader; import com.ruoyi.ruleEngine.client.dynamicLoad.DynamicLoader;
import com.ruoyi.ruleEngine.client.engine.action.ActionRecords; import com.ruoyi.ruleEngine.client.engine.action.ActionRecords;
import com.ruoyi.ruleEngine.client.engine.action.ActionRemove; import com.ruoyi.ruleEngine.client.engine.action.ActionRemove;
import com.ruoyi.ruleEngine.client.engine.action.ActionReplace; import com.ruoyi.ruleEngine.client.engine.action.ActionReplace;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import com.ruoyi.ruleEngine.client.model.DataSetModel; import com.ruoyi.ruleEngine.client.engine.model.DataSetModel;
import com.ruoyi.ruleEngine.client.model.RecordModel; import com.ruoyi.ruleEngine.client.engine.model.RecordModel;
import com.ruoyi.ruleEngine.client.model.process.DataModelProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataModelProcessModel;
import com.ruoyi.ruleEngine.client.model.process.DataSetProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataSetProcessModel;
import com.ruoyi.ruleEngine.client.model.process.RecordProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.RecordProcessModel;
import com.ruoyi.ruleEngine.client.service.RuleEngineService;
import com.ruoyi.ruleEngine.remote.RemoteRuleEngineService; import com.ruoyi.ruleEngine.remote.RemoteRuleEngineService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -40,7 +40,7 @@ import java.util.Objects;
public class EngineOperationServiceImpl implements EngineOperationService { public class EngineOperationServiceImpl implements EngineOperationService {
@Autowired @Autowired
private RuleEngineVersionFactory ruleEngineVersionFactory; private RuleEngineService ruleEngineService;
@Autowired @Autowired
private RemoteRuleEngineService remoteRuleEngineService; private RemoteRuleEngineService remoteRuleEngineService;
@ -75,7 +75,7 @@ public class EngineOperationServiceImpl implements EngineOperationService {
} }
StringBuffer actionRecords=null; StringBuffer actionRecords=null;
// 获取版本对应class文件的字节数组 // 获取版本对应class文件的字节数组
Map<String, byte[]> bytecode = ruleEngineVersionFactory.get(testDataReq.getVersionId()); Map<String, byte[]> bytecode = ruleEngineService.get(testDataReq.getVersionId());
try { try {
//执行引擎 //执行引擎
actionRecords=this.engineExecute(bytecode,testDataReq.getVersionClass(), testDataReq.getVersionId()); actionRecords=this.engineExecute(bytecode,testDataReq.getVersionClass(), testDataReq.getVersionId());

View File

@ -1,18 +1,15 @@
package com.ruoyi.ruleEngine.client.config; package com.ruoyi.ruleEngine.client.config;
import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.core.domain.Result;
import com.ruoyi.ruleEngine.client.util.RuleEngineUtil; import com.ruoyi.ruleEngine.client.service.RuleEngineService;
import com.ruoyi.ruleEngine.constant.RuleOperationConstants;
import com.ruoyi.ruleEngine.domain.EngineVersion; import com.ruoyi.ruleEngine.domain.EngineVersion;
import com.ruoyi.ruleEngine.domain.req.EngineVersionQueryReq; import com.ruoyi.ruleEngine.domain.req.EngineVersionQueryReq;
import com.ruoyi.ruleEngine.client.dynamicLoad.DynamicLoader;
import com.ruoyi.ruleEngine.remote.RemoteRuleEngineService; import com.ruoyi.ruleEngine.remote.RemoteRuleEngineService;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner; import org.springframework.boot.ApplicationRunner;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* *
@ -27,18 +24,13 @@ public class RuleEngineApplicationRunner implements ApplicationRunner {
private RemoteRuleEngineService remoteRuleEngineService; private RemoteRuleEngineService remoteRuleEngineService;
@Autowired @Autowired
private RuleEngineVersionFactory ruleEngineVersionFactory; private RuleEngineService ruleEngineService;
@Override @Override
public void run(ApplicationArguments args) throws Exception { public void run(ApplicationArguments args) {
Result<List<EngineVersion>> result = remoteRuleEngineService.list(new EngineVersionQueryReq()); Result<List<EngineVersion>> result = remoteRuleEngineService.list(new EngineVersionQueryReq());
if(Result.isSuccess(result)){ if(Result.isSuccess(result)){
result.getData().forEach(engineVersion -> { ruleEngineService.init(result.getData());
// 编译规则内容
Map<String, byte[]> bytecode = RuleEngineUtil.compileVersion(engineVersion);
// 存入工厂
ruleEngineVersionFactory.put(engineVersion.getId(), bytecode);
});
} }
} }
} }

View File

@ -0,0 +1,16 @@
package com.ruoyi.ruleEngine.client.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
/**
*
* @ClassName RuleEngineVersionFactory
* @Author
* @Date 2024/5/8 19:31
*/
@ComponentScan
@Import(RuleEngineApplicationRunner.class)
public class RuleEngineVersionClientConfig {
}

View File

@ -1,30 +0,0 @@
package com.ruoyi.ruleEngine.client.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Import;
import java.util.HashMap;
import java.util.Map;
/**
*
* @ClassName RuleEngineVersionFactory
* @Author
* @Date 2024/5/8 19:31
*/
@ComponentScan
@Import(RuleEngineApplicationRunner.class)
public class RuleEngineVersionFactory {
private final Map<Long,Map<String, byte[]>> versionContentMap=new HashMap<>();
public Map<Long, Map<String, byte[]>> getMap() {
return this.versionContentMap;
}
public void put(Long id,Map<String, byte[]> map) {
this.versionContentMap.put(id,map);
}
public Map<String, byte[]> get(Long id) {
return this.versionContentMap.get(id);
}
}

View File

@ -0,0 +1,48 @@
package com.ruoyi.ruleEngine.client.context;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
*
* @ClassName RuleEngineContextHolder
* @Author GuanTieLin
* @Date 2024/5/15 20:37
*/
@Component
public class RuleEngineContextHolder {
/**
*
*/
private final Map<Long, Map<String, byte[]>> versionContentMap=new ConcurrentHashMap<>(16);
/**
* key
*/
public boolean hasKey(Long id){
return versionContentMap.containsKey(id);
}
/**
*
*/
public void put(Long id,Map<String, byte[]> map) {
this.versionContentMap.put(id,map);
}
/**
*
*/
public Map<String, byte[]> get(Long id) {
return this.versionContentMap.get(id);
}
/**
*
*/
public void remove(Long id) {
this.versionContentMap.remove(id);
}
}

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.engine.action; package com.ruoyi.ruleEngine.client.engine.action;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.engine.action; package com.ruoyi.ruleEngine.client.engine.action;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import lombok.*; import lombok.*;
/** /**

View File

@ -1,10 +1,9 @@
package com.ruoyi.ruleEngine.client.context; package com.ruoyi.ruleEngine.client.engine.context;
import com.ruoyi.ruleEngine.client.model.process.DataModelProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataModelProcessModel;
import com.ruoyi.ruleEngine.client.util.RuleEngineUtil; import com.ruoyi.ruleEngine.client.util.RuleEngineUtil;
import lombok.Data; import lombok.Data;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.sql.Connection; import java.sql.Connection;
/** /**

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.context; package com.ruoyi.ruleEngine.client.engine.context;
import com.ruoyi.ruleEngine.client.model.process.DataSetProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataSetProcessModel;
import lombok.Data; import lombok.Data;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.context; package com.ruoyi.ruleEngine.client.engine.context;
import com.ruoyi.ruleEngine.client.model.process.RecordProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.RecordProcessModel;
import lombok.Data; import lombok.Data;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;

View File

@ -1,4 +1,4 @@
package com.ruoyi.ruleEngine.client.model; package com.ruoyi.ruleEngine.client.engine.model;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.ruoyi.ruleEngine.client.model; package com.ruoyi.ruleEngine.client.engine.model;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.ruoyi.ruleEngine.client.model; package com.ruoyi.ruleEngine.client.engine.model;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.model.process; package com.ruoyi.ruleEngine.client.engine.model.process;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.model.process; package com.ruoyi.ruleEngine.client.engine.model.process;
import com.ruoyi.ruleEngine.client.model.DataSetModel; import com.ruoyi.ruleEngine.client.engine.model.DataSetModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.model.process; package com.ruoyi.ruleEngine.client.engine.model.process;
import com.ruoyi.ruleEngine.client.model.RecordModel; import com.ruoyi.ruleEngine.client.engine.model.RecordModel;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;

View File

@ -1,9 +1,9 @@
package com.ruoyi.ruleEngine.client.engine.scope; package com.ruoyi.ruleEngine.client.engine.scope;
import com.ruoyi.ruleEngine.client.context.DataModelContextHolder; import com.ruoyi.ruleEngine.client.engine.context.DataModelContextHolder;
import com.ruoyi.ruleEngine.client.engine.Engine; import com.ruoyi.ruleEngine.client.engine.Engine;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import com.ruoyi.ruleEngine.client.model.process.DataModelProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataModelProcessModel;
/** /**
* *

View File

@ -1,10 +1,10 @@
package com.ruoyi.ruleEngine.client.engine.scope; package com.ruoyi.ruleEngine.client.engine.scope;
import com.ruoyi.ruleEngine.client.context.DataSetContextHolder; import com.ruoyi.ruleEngine.client.engine.context.DataSetContextHolder;
import com.ruoyi.ruleEngine.client.engine.Engine; import com.ruoyi.ruleEngine.client.engine.Engine;
import com.ruoyi.ruleEngine.client.model.DataSetModel; import com.ruoyi.ruleEngine.client.engine.model.DataSetModel;
import com.ruoyi.ruleEngine.client.model.RecordModel; import com.ruoyi.ruleEngine.client.engine.model.RecordModel;
import com.ruoyi.ruleEngine.client.model.process.DataSetProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataSetProcessModel;
import java.util.List; import java.util.List;

View File

@ -1,10 +1,10 @@
package com.ruoyi.ruleEngine.client.engine.scope; package com.ruoyi.ruleEngine.client.engine.scope;
import com.ruoyi.ruleEngine.client.context.RecordContextHolder; import com.ruoyi.ruleEngine.client.engine.context.RecordContextHolder;
import com.ruoyi.ruleEngine.client.engine.Engine; import com.ruoyi.ruleEngine.client.engine.Engine;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import com.ruoyi.ruleEngine.client.model.RecordModel; import com.ruoyi.ruleEngine.client.engine.model.RecordModel;
import com.ruoyi.ruleEngine.client.model.process.RecordProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.RecordProcessModel;
import java.util.List; import java.util.List;

View File

@ -0,0 +1,81 @@
package com.ruoyi.ruleEngine.client.service;
import com.ruoyi.ruleEngine.client.context.RuleEngineContextHolder;
import com.ruoyi.ruleEngine.client.util.RuleEngineUtil;
import com.ruoyi.ruleEngine.domain.EngineVersion;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
*
* @ClassName RuleEngineService
* @Author GuanTieLin
* @Date 2024/5/15 20:36
*/
@Log4j2
@Component
public class RuleEngineService {
@Autowired
private RuleEngineContextHolder ruleEngineContextHolder;
/**
*
* @param engineVersionList
*/
public void init(List<EngineVersion> engineVersionList){
engineVersionList.forEach(this::put);
}
/**
*
* @param engineVersion
*/
public void put(EngineVersion engineVersion){
// 编译规则内容
Map<String, byte[]> bytecode = RuleEngineUtil.compileVersion(engineVersion);
// 存入上下文
ruleEngineContextHolder.put(engineVersion.getId(), bytecode);
}
/**
*
* @param id
*/
public void remove(Long id){
if(hasKey(id)){
ruleEngineContextHolder.remove(id);
}else {
log.error("引擎上下文中不存在key:[{}]",id);
}
}
/**
*
* @param id
* @return
*/
public Map<String,byte[]> get(Long id){
Map<String,byte[]> map=new HashMap<>();
if(hasKey(id)){
map=ruleEngineContextHolder.get(id);
}else {
log.error("引擎上下文中不存在key:[{}]",id);
}
return map;
}
/**
* key
* @param id
* @return
*/
public boolean hasKey(Long id){
return ruleEngineContextHolder.hasKey(id);
}
}

View File

@ -1,11 +1,11 @@
package com.ruoyi.ruleEngine.client.util; package com.ruoyi.ruleEngine.client.util;
import com.ruoyi.ruleEngine.client.context.DataSetContextHolder; import com.ruoyi.ruleEngine.client.engine.context.DataSetContextHolder;
import com.ruoyi.ruleEngine.client.dynamicLoad.DynamicLoader; import com.ruoyi.ruleEngine.client.dynamicLoad.DynamicLoader;
import com.ruoyi.ruleEngine.client.model.DataModel; import com.ruoyi.ruleEngine.client.engine.model.DataModel;
import com.ruoyi.ruleEngine.client.model.DataSetModel; import com.ruoyi.ruleEngine.client.engine.model.DataSetModel;
import com.ruoyi.ruleEngine.client.model.RecordModel; import com.ruoyi.ruleEngine.client.engine.model.RecordModel;
import com.ruoyi.ruleEngine.client.model.process.DataSetProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataSetProcessModel;
import com.ruoyi.ruleEngine.constant.RuleOperationConstants; import com.ruoyi.ruleEngine.constant.RuleOperationConstants;
import com.ruoyi.ruleEngine.domain.EngineVersion; import com.ruoyi.ruleEngine.domain.EngineVersion;
import java.sql.*; import java.sql.*;
@ -56,6 +56,11 @@ public class RuleEngineUtil {
DataSetContextHolder.set(dataSetProcessModel); DataSetContextHolder.set(dataSetProcessModel);
} }
/**
*
* @param engineVersion
* @return class
*/
public static Map<String, byte[]> compileVersion(EngineVersion engineVersion){ public static Map<String, byte[]> compileVersion(EngineVersion engineVersion){
// 获取版本内容 // 获取版本内容
String content = engineVersion.getRuleContent().replaceAll("\r\n", ""); String content = engineVersion.getRuleContent().replaceAll("\r\n", "");

View File

@ -1 +1,3 @@
com.ruoyi.ruleEngine.client.config.RuleEngineVersionFactory com.ruoyi.ruleEngine.client.config.RuleEngineVersionClientConfig
com.ruoyi.ruleEngine.client.context.RuleEngineContextHolder
com.ruoyi.ruleEngine.client.service.RuleEngineService

View File

@ -1,10 +1,9 @@
package com.ruoyi.ruleEngine.client.context; package com.ruoyi.ruleEngine.client.engine.context;
import com.ruoyi.ruleEngine.client.model.process.DataModelProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataModelProcessModel;
import com.ruoyi.ruleEngine.client.util.RuleEngineUtil; import com.ruoyi.ruleEngine.client.util.RuleEngineUtil;
import lombok.Data; import lombok.Data;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.sql.Connection; import java.sql.Connection;
/** /**

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.context; package com.ruoyi.ruleEngine.client.engine.context;
import com.ruoyi.ruleEngine.client.model.process.DataSetProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.DataSetProcessModel;
import lombok.Data; import lombok.Data;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;

View File

@ -1,6 +1,6 @@
package com.ruoyi.ruleEngine.client.context; package com.ruoyi.ruleEngine.client.engine.context;
import com.ruoyi.ruleEngine.client.model.process.RecordProcessModel; import com.ruoyi.ruleEngine.client.engine.model.process.RecordProcessModel;
import lombok.Data; import lombok.Data;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;

View File

@ -1,4 +1,4 @@
package com.ruoyi.ruleEngine.client.context; package com.ruoyi.ruleEngine.client.engine.context;
/** /**
* 任务上下文 * 任务上下文