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_REPOSITORIES_CLUSTER_CONFIG = "magnolia.repositories.jackrabbit.cluster.config";
60
61 public static final String MAGNOLIA_REPOSITORIES_CLUSTER_MASTER = "magnolia.repositories.jackrabbit.cluster.master";
62
63 public static final String MAGNOLIA_EXCHANGE_HISTORY = "magnolia.exchange.history";
64
65 public static final String MAGNOLIA_UPLOAD_TMPDIR = "magnolia.upload.tmpdir";
66
67 public static final String MAGNOLIA_CACHE_STARTDIR = "magnolia.cache.startdir";
68
69 public static final String MAGNOLIA_APP_ROOTDIR = "magnolia.app.rootdir";
70
71 public static final String MAGNOLIA_BOOTSTRAP_ROOTDIR = "magnolia.bootstrap.dir";
72
73 public static final String MAGNOLIA_BOOTSTRAP_SAMPLES = "magnolia.bootstrap.samples";
74
75 public static final String MAGNOLIA_UTF8_ENABLED = "magnolia.utf8.enabled";
76
77 public static final String MAGNOLIA_WEBAPP = "magnolia.webapp";
78
79 public static final String MAGNOLIA_SERVERNAME = "magnolia.servername";
80
81 public static final String MAGNOLIA_CONTEXTPATH = "magnolia.contextpath";
82
83 private static Properties properties = new Properties();
84 private static MagnoliaConfigurationProperties magnoliaConfigurationProperties = newMagnoliaConfigurationProperties();
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
120 public static boolean getBooleanProperty(String name) {
121 return "true".equals(getProperty(name));
122 }
123
124
125
126
127 public static String getProperty(String name, String defaultValue) {
128 String value = getProperty(name);
129 if (StringUtils.isEmpty(value)) {
130 return defaultValue;
131 }
132 return value;
133 }
134
135
136
137
138 public static boolean hasProperty(String name) {
139 final boolean legacy = properties.containsKey(name);
140 if (legacy) {
141 DeprecationUtil.isDeprecated("Property [" + name + "] was found in the legacy Properties field of SystemProperty. Please consider using MagnoliaConfigurationProperties instead.");
142 return legacy;
143 }
144 return getMagnoliaConfigurationProperties().hasProperty(name);
145 }
146
147
148
149
150
151 public static Properties getProperties() {
152
153
154 final Properties p = new Properties();
155 p.putAll(properties);
156 for (String k : magnoliaConfigurationProperties.getKeys()) {
157 p.put(k, magnoliaConfigurationProperties.getProperty(k));
158 }
159 return p;
160 }
161
162 private static MagnoliaConfigurationProperties getMagnoliaConfigurationProperties() {
163
164 return magnoliaConfigurationProperties;
165 }
166
167
168
169
170 public static void setMagnoliaConfigurationProperties(MagnoliaConfigurationProperties magnoliaConfigurationProperties) {
171 SystemProperty.magnoliaConfigurationProperties = magnoliaConfigurationProperties;
172 }
173
174
175
176
177 public static void clear() {
178 properties.clear();
179 magnoliaConfigurationProperties = newMagnoliaConfigurationProperties();
180 }
181
182 private static AbstractMagnoliaConfigurationProperties newMagnoliaConfigurationProperties() {
183 return new AbstractMagnoliaConfigurationProperties(new ArrayList<PropertySource>()) {
184 };
185 }
186
187 }