1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.ksb.messaging.quartz;
17
18 import org.kuali.rice.core.api.config.property.ConfigContext;
19 import org.kuali.rice.ksb.util.KSBConstants;
20 import org.springframework.beans.factory.config.AbstractFactoryBean;
21
22 import java.util.Properties;
23
24
25
26
27
28
29
30
31 public class QuartzConfigPropertiesFactoryBean extends AbstractFactoryBean {
32
33 private static final String QUARTZ_PREFIX = "ksb.org.quartz";
34 private static final String QUARTZ_IS_CLUSTERED = QUARTZ_PREFIX + ".jobStore.isClustered";
35 private static final String QUARTZ_TABLE_PREFIX = QUARTZ_PREFIX + ".jobStore.tablePrefix";
36
37 @Override
38 protected Object createInstance() throws Exception {
39 Properties properties = new Properties();
40 Properties configProps = ConfigContext.getCurrentContextConfig().getProperties();
41 boolean useQuartzDatabase = Boolean.valueOf(ConfigContext.getCurrentContextConfig().getProperty(KSBConstants.Config.USE_QUARTZ_DATABASE));
42 for (Object keyObj : configProps.keySet()) {
43 if (keyObj instanceof String) {
44 String key = (String)keyObj;
45 if (key.startsWith(QUARTZ_PREFIX) && !propertyShouldBeFiltered(useQuartzDatabase, key)) {
46 properties.put(key.substring(4), configProps.get(key));
47 }
48 }
49 }
50 return properties;
51 }
52
53
54
55
56
57
58
59 protected boolean propertyShouldBeFiltered(boolean useQuartzDatabase, String propertyName) {
60 if (!useQuartzDatabase) {
61 if (propertyName.startsWith(QUARTZ_TABLE_PREFIX) || propertyName.startsWith(QUARTZ_IS_CLUSTERED)) {
62 return true;
63 }
64 }
65 return false;
66 }
67
68
69 @Override
70 public Class getObjectType() {
71 return Properties.class;
72 }
73
74 }