1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.efaps.bpm.compiler;
22
23 import java.util.Properties;
24
25 import org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl;
26 import org.drools.compiler.rule.builder.dialect.java.JavaDialectConfiguration;
27 import org.efaps.admin.EFapsSystemConfiguration;
28 import org.efaps.admin.KernelSettings;
29 import org.efaps.admin.program.esjp.EFapsClassLoader;
30 import org.efaps.util.EFapsException;
31 import org.kie.internal.builder.conf.ClassLoaderCacheOption;
32 import org.slf4j.Logger;
33 import org.slf4j.LoggerFactory;
34
35
36
37
38
39
40
41
42 public class KnowledgeBuilderFactoryServiceImpl
43 extends org.drools.compiler.builder.impl.KnowledgeBuilderFactoryServiceImpl
44 {
45
46
47
48
49 private static final Logger LOG = LoggerFactory.getLogger(KnowledgeBuilderFactoryServiceImpl.class);
50
51 @Override
52 public KnowledgeBuilder newKnowledgeBuilder()
53 {
54 String level = null;
55 try {
56 level = EFapsSystemConfiguration.get().getAttributeValue(KernelSettings.BPM_COMPILERLEVEL);
57 } catch (final EFapsException e) {
58 KnowledgeBuilderFactoryServiceImpl.LOG.error("Catched error on retireving SystemConfiguration", e);
59 }
60
61 final Properties knowledgeBldrProps = new Properties();
62 knowledgeBldrProps.setProperty(JavaDialectConfiguration.JAVA_COMPILER_PROPERTY, "ECLIPSE");
63 knowledgeBldrProps.setProperty("drools.dialect.java.compiler.lnglevel", level == null ? "1.7" : level);
64 knowledgeBldrProps.setProperty(ClassLoaderCacheOption.PROPERTY_NAME, "false");
65
66 final KnowledgeBuilderConfigurationImpl conf = new KnowledgeBuilderConfigurationImpl(knowledgeBldrProps,
67 EFapsClassLoader.getInstance());
68
69 return new KnowledgeBuilder(conf);
70 }
71 }