1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.core;
35
36 import java.util.ArrayList;
37 import java.util.Map;
38 import java.util.Properties;
39
40 import info.magnolia.cms.util.DeprecationUtil;
41 import info.magnolia.init.AbstractMagnoliaConfigurationProperties;
42 import info.magnolia.init.MagnoliaConfigurationProperties;
43 import info.magnolia.init.PropertySource;
44
45 import org.apache.commons.lang.StringUtils;
46
47
48
49
50
51
52
53
54
55
56
57
58 public final class SystemProperty {
59
60 public static final String MAGNOLIA_REPOSITORIES_HOME = "magnolia.repositories.home";
61
62 public static final String MAGNOLIA_REPOSITORIES_CONFIG = "magnolia.repositories.config";
63
64 public static final String MAGNOLIA_EXCHANGE_HISTORY = "magnolia.exchange.history";
65
66 public static final String MAGNOLIA_UPLOAD_TMPDIR = "magnolia.upload.tmpdir";
67
68 public static final String MAGNOLIA_CACHE_STARTDIR = "magnolia.cache.startdir";
69
70 public static final String MAGNOLIA_APP_ROOTDIR = "magnolia.app.rootdir";
71
72 public static final String MAGNOLIA_BOOTSTRAP_ROOTDIR = "magnolia.bootstrap.dir";
73
74 public static final String MAGNOLIA_BOOTSTRAP_SAMPLES = "magnolia.bootstrap.samples";
75
76 public static final String MAGNOLIA_UTF8_ENABLED = "magnolia.utf8.enabled";
77
78 public static final String MAGNOLIA_WEBAPP = "magnolia.webapp";
79
80 public static final String MAGNOLIA_SERVERNAME = "magnolia.servername";
81
82 public static final String MAGNOLIA_CONTEXTPATH = "magnolia.contextpath";
83
84 private static Properties properties = new Properties();
85
86
87
88
89 private SystemProperty() {
90
91 }
92
93
94
95
96 public static void setProperty(String name, String value) {
97
98 properties.put(name, value);
99 }
100
101
102
103
104 public static String getProperty(String name) {
105 final String legacy = (String) properties.get(name);
106 if (legacy != null) {
107
108 return legacy;
109 }
110 return getMagnoliaConfigurationProperties().getProperty(name);
111 }
112
113
114
115
116
117
118
119 public static boolean getBooleanProperty(String name) {
120 return "true".equals(getProperty(name));
121 }
122
123
124
125
126 public static String getProperty(String name, String defaultValue) {
127 String value = getProperty(name);
128 if (StringUtils.isEmpty(value)) {
129 return defaultValue;
130 }
131 return value;
132 }
133
134
135
136
137 public static boolean hasProperty(String name) {
138 final boolean legacy = properties.containsKey(name);
139 if (legacy) {
140 DeprecationUtil.isDeprecated("Property [" + name + "] was found in the legacy Properties field of SystemProperty. Please consider using MagnoliaConfigurationProperties instead.");
141 return legacy;
142 }
143 return getMagnoliaConfigurationProperties().hasProperty(name);
144 }
145
146
147
148
149 public static Map getPropertyList() {
150 return properties;
151 }
152
153
154
155
156
157 public static Properties getProperties() {
158
159
160 final Properties p = new Properties();
161 p.putAll(properties);
162 for (String k : magnoliaConfigurationProperties.getKeys()) {
163 p.put(k, magnoliaConfigurationProperties.getProperty(k));
164 }
165 return p;
166 }
167
168 static MagnoliaConfigurationProperties magnoliaConfigurationProperties = new AbstractMagnoliaConfigurationProperties(new ArrayList<PropertySource>()) {};
169 private static MagnoliaConfigurationProperties getMagnoliaConfigurationProperties() {
170
171 return magnoliaConfigurationProperties;
172 }
173
174
175
176
177 public static void setMagnoliaConfigurationProperties(MagnoliaConfigurationProperties magnoliaConfigurationProperties) {
178 SystemProperty.magnoliaConfigurationProperties = magnoliaConfigurationProperties;
179 }
180
181
182
183
184 public static void clear() {
185 properties.clear();
186
187 }
188 }