Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz4j Spring R7
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7后台标准模板
iBiz4j Spring R7
提交
3a6fff3c
提交
3a6fff3c
编写于
1月 29, 2021
作者:
zhouweidong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
启用新模式附加逻辑
上级
a0478b5a
变更
1
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
86 行增加
和
86 行删除
+86
-86
DroolsAutoConfiguration.java.ftl
...KGPATH%/core/util/config/DroolsAutoConfiguration.java.ftl
+86
-86
未找到文件。
SLN/%PUBPRJ%-core/src/main/java/%SYS_PKGPATH%/core/util/config/DroolsAutoConfiguration.java.ftl
浏览文件 @
3a6fff3c
...
...
@@ -3,105 +3,105 @@ 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
.
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
-->
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
();
}
<#--
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
();-->
<#--}-->
}
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录