-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathConfig.java
More file actions
148 lines (108 loc) · 4.46 KB
/
Config.java
File metadata and controls
148 lines (108 loc) · 4.46 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
package com.papercut.silken;
import com.google.common.collect.ImmutableList;
import java.util.List;
/**
* This config class holds various global configuration. Multiple layers have a reference to this configuration
* store/POJO.
*
* Developers: Take care to ensure data changes are visible across threds (thread-safe).
*
* @author chris
*/
public class Config {
private List<String> sharedNameSpaces;
private boolean disableCaching;
private CompileTimeGlobalsProvider compileTimeGlobalsProvider;
private RuntimeGlobalsResolver runtimeGlobalsResolver;
private LocaleResolver localeResolver;
private ModelResolver modelResolver;
private FileSetResolver fileSetResolver;
private long javaScriptCacheMaxAge = 2592000L; // 30-days in seconds
private String searchPath;
private long lastChange;
private boolean showStackTracesInErrors;
private ModuleProvider moduleProvider;
public Config() {
sharedNameSpaces = ImmutableList.of("shared");
disableCaching = false;
compileTimeGlobalsProvider = null;
runtimeGlobalsResolver = new RequestAttributeRuntimeGlobalsResolver();
localeResolver = new AcceptHeaderLocaleResolver();
modelResolver = new RequestAttributeModelResolver();
searchPath = "$CLASSPATH:$WEBROOT/templates:$WEBROOT/WEB-INF/templates";
showStackTracesInErrors = true;
}
public synchronized List<String> getSharedNameSpaces() {
return sharedNameSpaces;
}
public synchronized void setSharedNameSpaces(List<String> sharedNameSpaces) {
// To ensure we're threadsafe we'll copy to an immutable list
this.sharedNameSpaces = ImmutableList.copyOf(sharedNameSpaces);
}
public synchronized boolean isDisableCaching() {
return disableCaching;
}
public synchronized void setDisableCaching(boolean disableCaching) {
this.disableCaching = disableCaching;
}
public synchronized CompileTimeGlobalsProvider getCompileTimeGlobalsProvider() {
return compileTimeGlobalsProvider;
}
public synchronized void setCompileTimeGlobalsProvider(CompileTimeGlobalsProvider compileTimeGlobalsProvider) {
this.compileTimeGlobalsProvider = compileTimeGlobalsProvider;
}
public synchronized RuntimeGlobalsResolver getRuntimeGlobalsResolver() {
return runtimeGlobalsResolver;
}
public synchronized void setRuntimeGlobalsResolver(RuntimeGlobalsResolver runtimeGlobalsResolver) {
this.runtimeGlobalsResolver = runtimeGlobalsResolver;
}
public synchronized LocaleResolver getLocaleResolver() {
return localeResolver;
}
public synchronized void setLocaleResolver(LocaleResolver localeResolver) {
this.localeResolver = localeResolver;
}
public synchronized ModelResolver getModelResolver() {
return modelResolver;
}
public synchronized void setModelResolver(ModelResolver modelResolver) {
this.modelResolver = modelResolver;
}
public synchronized long getJavaScriptCacheMaxAge() {
return javaScriptCacheMaxAge;
}
public synchronized void setJavaScriptCacheMaxAge(long javaScriptCacheMaxAge) {
this.javaScriptCacheMaxAge = javaScriptCacheMaxAge;
}
public synchronized FileSetResolver getFileSetResolver() {
return fileSetResolver;
}
public synchronized void setFileSetResolver(FileSetResolver fileSetResolver) {
this.fileSetResolver = fileSetResolver;
}
public synchronized String getSearchPath() {
return searchPath;
}
public synchronized void setSearchPath(String searchPath) {
this.searchPath = searchPath;
}
public synchronized long getLastChange() {
return lastChange;
}
public synchronized void setLastChange(long lastChange) {
this.lastChange = lastChange;
}
public synchronized boolean isShowStackTracesInErrors() {
return showStackTracesInErrors;
}
public synchronized void setShowStackTracesInErrors(boolean showStackTracesInErrors) {
this.showStackTracesInErrors = showStackTracesInErrors;
}
public synchronized ModuleProvider getModuleProvider() {
return moduleProvider;
}
public synchronized void setModuleProvider(final ModuleProvider moduleProvider) {
this.moduleProvider = moduleProvider;
}
}