提交 3a6fff3c 编写于 作者: zhouweidong's avatar zhouweidong

启用新模式附加逻辑

上级 a0478b5a
...@@ -3,105 +3,105 @@ TARGET=PSSYSTEM ...@@ -3,105 +3,105 @@ TARGET=PSSYSTEM
</#ibiztemplate> </#ibiztemplate>
package ${pub.getPKGCodeName()}.core.util.config; package ${pub.getPKGCodeName()}.core.util.config;
import org.kie.api.KieBase; <#--import org.kie.api.KieBase;-->
import org.kie.api.KieServices; <#--import org.kie.api.KieServices;-->
import org.kie.api.builder.*; <#--import org.kie.api.builder.*;-->
import org.kie.api.runtime.KieContainer; <#--import org.kie.api.runtime.KieContainer;-->
import org.kie.api.runtime.KieSession; <#--import org.kie.api.runtime.KieSession;-->
import org.kie.internal.io.ResourceFactory; <#--import org.kie.internal.io.ResourceFactory;-->
import org.kie.spring.KModuleBeanFactoryPostProcessor; <#--import org.kie.spring.KModuleBeanFactoryPostProcessor;-->
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; <#--import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;-->
import org.springframework.context.annotation.Bean; <#--import org.springframework.context.annotation.Bean;-->
import org.springframework.context.annotation.Configuration; <#--import org.springframework.context.annotation.Configuration;-->
import org.springframework.core.io.Resource; <#--import org.springframework.core.io.Resource;-->
import org.springframework.core.io.support.PathMatchingResourcePatternResolver; <#--import org.springframework.core.io.support.PathMatchingResourcePatternResolver;-->
import org.springframework.core.io.support.ResourcePatternResolver; <#--import org.springframework.core.io.support.ResourcePatternResolver;-->
import org.apache.commons.logging.Log; <#--import org.apache.commons.logging.Log;-->
import org.apache.commons.logging.LogFactory; <#--import org.apache.commons.logging.LogFactory;-->
import java.io.IOException; <#--import java.io.IOException;-->
import java.util.List; <#--import java.util.List;-->
@Configuration <#--@Configuration-->
public class DroolsAutoConfiguration { public class DroolsAutoConfiguration {
private Log logger= LogFactory.getLog(DroolsAutoConfiguration.class); <#--private Log logger= LogFactory.getLog(DroolsAutoConfiguration.class);-->
<#---->
private static final String RULES_PATH = "rules/"; <#--private static final String RULES_PATH = "rules/";-->
@Bean <#--@Bean-->
@ConditionalOnMissingBean(KieFileSystem.class) <#--@ConditionalOnMissingBean(KieFileSystem.class)-->
public KieFileSystem kieFileSystem() throws IOException { <#--public KieFileSystem kieFileSystem() throws IOException {-->
KieFileSystem kieFileSystem = getKieServices().newKieFileSystem(); <#--KieFileSystem kieFileSystem = getKieServices().newKieFileSystem();-->
for (Resource file : getRuleFiles()) { <#--for (Resource file : getRuleFiles()) {-->
kieFileSystem.write(ResourceFactory.newUrlResource(file.getURL())); <#--kieFileSystem.write(ResourceFactory.newUrlResource(file.getURL()));-->
} <#--}-->
return kieFileSystem; <#--return kieFileSystem;-->
} <#--}-->
private Resource[] getRuleFiles() throws IOException { <#--private Resource[] getRuleFiles() throws IOException {-->
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver(); <#--ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();-->
return resourcePatternResolver.getResources("classpath*:" + RULES_PATH + "**/*.*"); <#--return resourcePatternResolver.getResources("classpath*:" + RULES_PATH + "**/*.*");-->
} <#--}-->
@Bean <#--@Bean-->
@ConditionalOnMissingBean(KieContainer.class) <#--@ConditionalOnMissingBean(KieContainer.class)-->
public KieContainer kieContainer() throws IOException { <#--public KieContainer kieContainer() throws IOException {-->
final KieRepository kieRepository = getKieServices().getRepository(); <#--final KieRepository kieRepository = getKieServices().getRepository();-->
kieRepository.addKieModule(new KieModule() { <#--kieRepository.addKieModule(new KieModule() {-->
public ReleaseId getReleaseId() { <#--public ReleaseId getReleaseId() {-->
return kieRepository.getDefaultReleaseId(); <#--return kieRepository.getDefaultReleaseId();-->
} <#--}-->
}); <#--});-->
KieBuilder kieBuilder = getKieServices().newKieBuilder(kieFileSystem()); <#--KieBuilder kieBuilder = getKieServices().newKieBuilder(kieFileSystem());-->
kieBuilder.buildAll(); <#--kieBuilder.buildAll();-->
if(kieBuilder.getResults().hasMessages(new Message.Level[] { Message.Level.ERROR })){ <#--if(kieBuilder.getResults().hasMessages(new Message.Level[] { Message.Level.ERROR })){-->
List<Message> errors = kieBuilder.getResults().getMessages(new Message.Level[] { Message.Level.ERROR }); <#--List<Message> errors = kieBuilder.getResults().getMessages(new Message.Level[] { Message.Level.ERROR });-->
StringBuilder stringBuilder = new StringBuilder("Errors:"); <#--StringBuilder stringBuilder = new StringBuilder("Errors:");-->
for (Message msg : errors) <#--for (Message msg : errors)-->
{ <#--{-->
stringBuilder.append(new StringBuilder().append("\n ").append(prettyBuildMessage(msg)).toString()); <#--stringBuilder.append(new StringBuilder().append("\n ").append(prettyBuildMessage(msg)).toString());-->
} <#--}-->
logger.error(String.format("初始化处理逻辑发生异常,异常原因为[%s]",stringBuilder.toString())); <#--logger.error(String.format("初始化处理逻辑发生异常,异常原因为[%s]",stringBuilder.toString()));-->
//忽略处理逻辑 <#--//忽略处理逻辑-->
getKieServices().newKieBuilder(getKieServices().newKieFileSystem()).buildAll(); <#--getKieServices().newKieBuilder(getKieServices().newKieFileSystem()).buildAll();-->
} <#--}-->
return getKieServices().newKieContainer(kieRepository.getDefaultReleaseId()); <#--return getKieServices().newKieContainer(kieRepository.getDefaultReleaseId());-->
} <#--}-->
private KieServices getKieServices() { <#--private KieServices getKieServices() {-->
return KieServices.Factory.get(); <#--return KieServices.Factory.get();-->
} <#--}-->
@Bean <#--@Bean-->
@ConditionalOnMissingBean(KieBase.class) <#--@ConditionalOnMissingBean(KieBase.class)-->
public KieBase kieBase() throws IOException { <#--public KieBase kieBase() throws IOException {-->
return kieContainer().getKieBase(); <#--return kieContainer().getKieBase();-->
} <#--}-->
@Bean <#--@Bean-->
@ConditionalOnMissingBean(KieSession.class) <#--@ConditionalOnMissingBean(KieSession.class)-->
public KieSession kieSession() throws IOException { <#--public KieSession kieSession() throws IOException {-->
return kieContainer().newKieSession(); <#--return kieContainer().newKieSession();-->
} <#--}-->
@Bean <#--@Bean-->
@ConditionalOnMissingBean(KModuleBeanFactoryPostProcessor.class) <#--@ConditionalOnMissingBean(KModuleBeanFactoryPostProcessor.class)-->
public KModuleBeanFactoryPostProcessor kiePostProcessor() { <#--public KModuleBeanFactoryPostProcessor kiePostProcessor() {-->
return new KModuleBeanFactoryPostProcessor(); <#--return new KModuleBeanFactoryPostProcessor();-->
} <#--}-->
/** <#--/**-->
* 输出异常信息 <#--* 输出异常信息-->
* @param msg <#--* @param msg-->
* @return <#--* @return-->
*/ <#--*/-->
public static String prettyBuildMessage(Message msg) <#--public static String prettyBuildMessage(Message msg)-->
{ <#--{-->
return new StringBuilder().append("Message: {id=").append(msg.getId()).append(", level=").append(msg.getLevel()).append(", path=").append(msg.getPath()).append(", line=").append(msg.getLine()) <#--return new StringBuilder().append("Message: {id=").append(msg.getId()).append(", level=").append(msg.getLevel()).append(", path=").append(msg.getPath()).append(", line=").append(msg.getLine())-->
.append(", column=").append(msg.getColumn()).append(", text=\"").append(msg.getText()).append("\"}").toString(); <#--.append(", column=").append(msg.getColumn()).append(", text=\"").append(msg.getText()).append("\"}").toString();-->
} <#--}-->
} }
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册