Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
cce594db
提交
cce594db
编写于
1月 29, 2021
作者:
zhouweidong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
保留container,避免脏logic导致启动报错
上级
cdf87e8f
变更
1
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
16 行增加
和
99 行删除
+16
-99
DroolsAutoConfiguration.java.ftl
...KGPATH%/core/util/config/DroolsAutoConfiguration.java.ftl
+16
-99
未找到文件。
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/util/config/DroolsAutoConfiguration.java.ftl
浏览文件 @
cce594db
...
...
@@ -3,105 +3,22 @@ TARGET=PSSYSTEM
</#
ibiztemplate
>
package
${
pub
.
getPKGCodeName
()}.
core
.
util
.
config
;
<#--
import
org
.
kie
.
api
.
KieBase
;-->
<#--
import
org
.
kie
.
api
.
KieServices
;-->
<#--
import
org
.
kie
.
api
.
builder
.*;-->
<#--
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
.
springframework
.
boot
.
autoconfigure
.
condition
.
ConditionalOnMissingBean
;-->
<#--
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
org
.
apache
.
commons
.
logging
.
Log
;-->
<#--
import
org
.
apache
.
commons
.
logging
.
LogFactory
;-->
<#--
import
java
.
io
.
IOException
;-->
<#--
import
java
.
util
.
List
;-->
<#--@
Configuration
-->
import
org
.
kie
.
api
.
KieServices
;
import
org
.
kie
.
api
.
builder
.
KieFileSystem
;
import
org
.
kie
.
api
.
runtime
.
KieContainer
;
import
org
.
springframework
.
boot
.
autoconfigure
.
condition
.
ConditionalOnMissingBean
;
import
org
.
springframework
.
context
.
annotation
.
Bean
;
import
org
.
springframework
.
context
.
annotation
.
Configuration
;
@
Configuration
public
class
DroolsAutoConfiguration
{
<#--
private
Log
logger
=
LogFactory
.
getLog
(
DroolsAutoConfiguration
.
class
);-->
<#---->
<#--
private
static
final
String
RULES_PATH
=
"rules/"
;-->
<#--@
Bean
-->
<#--@
ConditionalOnMissingBean
(
KieFileSystem
.
class
)-->
<#--
public
KieFileSystem
kieFileSystem
()
throws
IOException
{-->
<#--
KieFileSystem
kieFileSystem
=
getKieServices
().
newKieFileSystem
();-->
<#--
for
(
Resource
file
:
getRuleFiles
())
{-->
<#--
kieFileSystem
.
write
(
ResourceFactory
.
newUrlResource
(
file
.
getURL
()));-->
<#--}-->
<#--
return
kieFileSystem
;-->
<#--}-->
<#--
private
Resource
[]
getRuleFiles
()
throws
IOException
{-->
<#--
ResourcePatternResolver
resourcePatternResolver
=
new
PathMatchingResourcePatternResolver
();-->
<#--
return
resourcePatternResolver
.
getResources
(
"classpath*:"
+
RULES_PATH
+
"**/*.*"
);-->
<#--}-->
<#--@
Bean
-->
<#--@
ConditionalOnMissingBean
(
KieContainer
.
class
)-->
<#--
public
KieContainer
kieContainer
()
throws
IOException
{-->
<#--
final
KieRepository
kieRepository
=
getKieServices
().
getRepository
();-->
<#--
kieRepository
.
addKieModule
(
new
KieModule
()
{-->
<#--
public
ReleaseId
getReleaseId
()
{-->
<#--
return
kieRepository
.
getDefaultReleaseId
();-->
<#--}-->
<#--});-->
<#--
KieBuilder
kieBuilder
=
getKieServices
().
newKieBuilder
(
kieFileSystem
());-->
<#--
kieBuilder
.
buildAll
();-->
<#--
if
(
kieBuilder
.
getResults
().
hasMessages
(
new
Message
.
Level
[]
{
Message
.
Level
.
ERROR
})){-->
<#--
List
<
Message
>
errors
=
kieBuilder
.
getResults
().
getMessages
(
new
Message
.
Level
[]
{
Message
.
Level
.
ERROR
});-->
<#--
StringBuilder
stringBuilder
=
new
StringBuilder
(
"Errors:"
);-->
<#--
for
(
Message
msg
:
errors
)-->
<#--{-->
<#--
stringBuilder
.
append
(
new
StringBuilder
().
append
(
"
\n
"
).
append
(
prettyBuildMessage
(
msg
)).
toString
());-->
<#--}-->
<#--
logger
.
error
(
String
.
format
(
"初始化处理逻辑发生异常,异常原因为[%s]"
,
stringBuilder
.
toString
()));-->
<#--//
忽略处理逻辑
-->
<#--
getKieServices
().
newKieBuilder
(
getKieServices
().
newKieFileSystem
()).
buildAll
();-->
<#--}-->
<#--
return
getKieServices
().
newKieContainer
(
kieRepository
.
getDefaultReleaseId
());-->
<#--}-->
<#--
private
KieServices
getKieServices
()
{-->
<#--
return
KieServices
.
Factory
.
get
();-->
<#--}-->
<#--@
Bean
-->
<#--@
ConditionalOnMissingBean
(
KieBase
.
class
)-->
<#--
public
KieBase
kieBase
()
throws
IOException
{-->
<#--
return
kieContainer
().
getKieBase
();-->
<#--}-->
<#--@
Bean
-->
<#--@
ConditionalOnMissingBean
(
KieSession
.
class
)-->
<#--
public
KieSession
kieSession
()
throws
IOException
{-->
<#--
return
kieContainer
().
newKieSession
();-->
<#--}-->
<#--@
Bean
-->
<#--@
ConditionalOnMissingBean
(
KModuleBeanFactoryPostProcessor
.
class
)-->
<#--
public
KModuleBeanFactoryPostProcessor
kiePostProcessor
()
{-->
<#--
return
new
KModuleBeanFactoryPostProcessor
();-->
<#--}-->
<#--/**-->
<#--*
输出异常信息
-->
<#--*
@
param
msg
-->
<#--*
@
return
-->
<#--*/-->
<#--
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
())-->
<#--.
append
(
", column="
).
append
(
msg
.
getColumn
()).
append
(
", text=
\"
"
).
append
(
msg
.
getText
()).
append
(
"
\"
}"
).
toString
();-->
<#--}-->
@
Bean
@
ConditionalOnMissingBean
(
KieContainer
.
class
)
public
KieContainer
kieContainer
()
{
KieServices
kieServices
=
KieServices
.
get
();
KieFileSystem
kieFileSystem
=
kieServices
.
newKieFileSystem
();
kieServices
.
newKieBuilder
(
kieFileSystem
).
buildAll
();
return
kieServices
.
newKieContainer
(
kieServices
.
getRepository
().
getDefaultReleaseId
());
}
}
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录