|
@@ -1,60 +0,0 @@
|
|
|
-package org.jeecg.config;
|
|
|
-
|
|
|
-import org.kie.api.KieBase;
|
|
|
-import org.kie.api.KieServices;
|
|
|
-import org.kie.api.builder.KieBuilder;
|
|
|
-import org.kie.api.builder.KieFileSystem;
|
|
|
-import org.kie.api.builder.KieRepository;
|
|
|
-import org.kie.api.runtime.KieContainer;
|
|
|
-import org.kie.api.runtime.KieSession;
|
|
|
-import org.kie.internal.io.ResourceFactory;
|
|
|
-import org.kie.spring.KModuleBeanFactoryPostProcessor;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.context.annotation.Bean;
|
|
|
-import org.springframework.context.annotation.Configuration;
|
|
|
-import org.springframework.core.io.Resource;
|
|
|
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
|
|
-import org.springframework.core.io.support.ResourcePatternResolver;
|
|
|
-
|
|
|
-import java.io.IOException;
|
|
|
-
|
|
|
-@Configuration
|
|
|
-public class RuleEngineConfig {
|
|
|
- private static final Logger LOGGER = LoggerFactory.getLogger(RuleEngineConfig.class) ;
|
|
|
- private static final String RULES_PATH = "drools/";
|
|
|
- private final KieServices kieServices = KieServices.Factory.get();
|
|
|
- @Bean
|
|
|
- public KieFileSystem kieFileSystem() throws IOException {
|
|
|
- KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
|
|
|
- ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
|
|
|
- Resource[] files = resourcePatternResolver.getResources("classpath*:" + RULES_PATH + "*.*");
|
|
|
- String path = null;
|
|
|
- for (Resource file : files) {
|
|
|
- path = RULES_PATH + file.getFilename();
|
|
|
- LOGGER.info("path="+path);
|
|
|
- kieFileSystem.write(ResourceFactory.newClassPathResource(path, "UTF-8"));
|
|
|
- }
|
|
|
- return kieFileSystem;
|
|
|
- }
|
|
|
- @Bean
|
|
|
- public KieContainer kieContainer() throws IOException {
|
|
|
- KieRepository kieRepository = kieServices.getRepository();
|
|
|
- kieRepository.addKieModule(kieRepository::getDefaultReleaseId);
|
|
|
- KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem());
|
|
|
- kieBuilder.buildAll();
|
|
|
- return kieServices.newKieContainer(kieRepository.getDefaultReleaseId());
|
|
|
- }
|
|
|
- @Bean
|
|
|
- public KieBase kieBase() throws IOException {
|
|
|
- return kieContainer().getKieBase();
|
|
|
- }
|
|
|
- @Bean
|
|
|
- public KieSession kieSession() throws IOException {
|
|
|
- return kieContainer().newKieSession();
|
|
|
- }
|
|
|
- @Bean
|
|
|
- public KModuleBeanFactoryPostProcessor kiePostProcessor() {
|
|
|
- return new KModuleBeanFactoryPostProcessor();
|
|
|
- }
|
|
|
-}
|