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 info.magnolia.cms.util.DeprecationUtil;
37 import info.magnolia.init.AbstractMagnoliaConfigurationProperties;
38 import info.magnolia.init.MagnoliaConfigurationProperties;
39 import info.magnolia.init.PropertySource;
40
41 import java.util.ArrayList;
42 import java.util.Properties;
43
44 import org.apache.commons.lang3.StringUtils;
45
46
47
48
49
50
51
52
53 public final class SystemProperty {
54
55 public static final String MAGNOLIA_REPOSITORIES_HOME = "magnolia.repositories.home";
56
57 public static final String MAGNOLIA_REPOSITORIES_CONFIG = "magnolia.repositories.config";
58
59 public static final String MAGNOLIA_EXCHANGE_HISTORY = "magnolia.exchange.history";
60
61 public static final String MAGNOLIA_UPLOAD_TMPDIR = "magnolia.upload.tmpdir";
62
63 public static final String MAGNOLIA_CACHE_STARTDIR = "magnolia.cache.startdir";
64
65 public static final String MAGNOLIA_APP_ROOTDIR = "magnolia.app.rootdir";
66
67 public static final String MAGNOLIA_BOOTSTRAP_ROOTDIR = "magnolia.bootstrap.dir";
68
69 public static final String MAGNOLIA_BOOTSTRAP_SAMPLES = "magnolia.bootstrap.samples";
70
71 public static final String MAGNOLIA_UTF8_ENABLED = "magnolia.utf8.enabled";
72
73 public static final String MAGNOLIA_WEBAPP = "magnolia.webapp";
74
75 public static final String MAGNOLIA_SERVERNAME = "magnolia.servername";
76
77 public static final String MAGNOLIA_CONTEXTPATH = "magnolia.contextpath";
78
79 private static Properties properties = new Properties();
80 private static MagnoliaConfigurationProperties magnoliaConfigurationProperties = newMagnoliaConfigurationProperties();
81
82
83
84
85 private SystemProperty() {
86
87 }
88
89
90
91
92 public static void setProperty(String name, String value) {
93
94 properties.put(name, value);
95 }
96
97
98
99
100 public static String getProperty(String name) {
101 final String legacy = (String) properties.get(name);
102 if (legacy != null) {
103
104 return legacy;
105 }
106 return getMagnoliaConfigurationProperties().getProperty(name);
107 }
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
183 }