1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.openehealth.ipf.commons.core.config;
17
18 import java.util.Properties;
19
20 import groovy.lang.MetaMethod;
21 import org.codehaus.groovy.runtime.m12n.ExtensionModule;
22 import org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule;
23 import org.codehaus.groovy.runtime.m12n.PropertiesModuleFactory;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27
28
29
30
31
32
33
34
35
36
37 public class ExtensionModuleFactory extends PropertiesModuleFactory {
38
39 private static final Logger LOG = LoggerFactory.getLogger(ExtensionModuleFactory.class);
40
41 public ExtensionModuleFactory() {
42 }
43
44 @Override
45 public ExtensionModule newModule(Properties properties, ClassLoader classLoader) {
46 LOG.info("Registering new extension module {} defined in class {}",
47 properties.getProperty(MODULE_NAME_KEY),
48 properties.getProperty(MetaInfExtensionModule.MODULE_INSTANCE_CLASSES_KEY));
49 ExtensionModule module = createExtensionModule(properties, classLoader);
50 if (LOG.isDebugEnabled()) {
51 for(MetaMethod method : module.getMetaMethods()) {
52 LOG.debug("registered method: {}", method);
53 }
54 }
55 return module;
56 }
57
58
59
60
61
62
63
64
65
66 protected ExtensionModule createExtensionModule(Properties properties, ClassLoader classLoader) {
67 return MetaInfExtensionModule.newModule(properties, classLoader);
68 }
69 }