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