1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.efaps.bpm.compiler;
23
24 import java.util.Properties;
25
26 import org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl;
27 import org.drools.compiler.builder.impl.KnowledgeBuilderImpl;
28 import org.efaps.admin.program.esjp.EFapsClassLoader;
29 import org.kie.api.KieBaseConfiguration;
30 import org.kie.internal.KnowledgeBase;
31 import org.kie.internal.KnowledgeBaseFactory;
32 import org.kie.internal.builder.KnowledgeBuilderError;
33 import org.kie.internal.builder.KnowledgeBuilderErrors;
34 import org.slf4j.Logger;
35 import org.slf4j.LoggerFactory;
36
37
38
39
40
41
42
43
44 public class KnowledgeBuilder
45 extends KnowledgeBuilderImpl
46 {
47
48
49
50 private static final Logger LOG = LoggerFactory.getLogger(KnowledgeBuilder.class);
51
52
53
54
55 public KnowledgeBuilder(final KnowledgeBuilderConfigurationImpl _pkgBuilder)
56 {
57 super(_pkgBuilder);
58 }
59
60 @Override
61 public KnowledgeBase newKnowledgeBase()
62 {
63 final KnowledgeBuilderErrors errors = getErrors();
64 if (errors.size() > 0) {
65 for (final KnowledgeBuilderError error : errors) {
66 KnowledgeBuilder.LOG.error(error.toString());
67 }
68 throw new IllegalArgumentException("Could not parse knowledge.");
69 }
70 final KieBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(new Properties(),
71 EFapsClassLoader.getInstance());
72 final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(conf);
73 kbase.addKnowledgePackages(getKnowledgePackages());
74 return kbase;
75 }
76 }