1 package org.apache.turbine;
2
3 /*
4 * Licensed to the Apache Software Foundation (ASF) under one
5 * or more contributor license agreements. See the NOTICE file
6 * distributed with this work for additional information
7 * regarding copyright ownership. The ASF licenses this file
8 * to you under the Apache License, Version 2.0 (the
9 * "License"); you may not use this file except in compliance
10 * with the License. You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing,
15 * software distributed under the License is distributed on an
16 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17 * KIND, either express or implied. See the License for the
18 * specific language governing permissions and limitations
19 * under the License.
20 */
21
22 import java.nio.charset.StandardCharsets;
23 import java.util.Locale;
24
25 import org.apache.turbine.pipeline.TurbinePipeline;
26
27 /**
28 * This interface contains all the constants used throughout
29 * the Turbine code base.
30 *
31 * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
32 * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
33 * @author <a href="mailto:seade@backstagetech.com.au">Scott Eade</a>
34 * @version $Id$
35 */
36 public interface TurbineConstants
37 {
38 /**
39 * <p>The prefix used to denote the namespace reserved for and
40 * used by Turbine-specific configuration parameters (such as
41 * those passed in via servlet container's config file
42 * (<code>server.xml</code>), or the web app deployment descriptor
43 * (<code>web.xml</code>).</p>
44 *
45 * <p>For example, a parameter in the Turbine namespace would be
46 * <code>org.apache.turbine.loggingRoot</code>.</p>
47 */
48 String CONFIG_NAMESPACE = "org.apache.turbine";
49
50 /** The key for the Log4J File */
51 String LOG4J2_CONFIG_FILE = "log4j2.file";
52 /** old key as a reminder */
53 String LOG4J_CONFIG_FILE = "log4j.file";
54
55 /** The default value for the Log4J File */
56 String LOG4J2_CONFIG_FILE_DEFAULT = "/WEB-INF/conf/log4j2.xml";
57
58 /** This is the default log file to be used for logging */
59 String DEFAULT_LOGGER = "turbine";
60
61 /** The logging facility which captures output from the SchedulerService. */
62 String SCHEDULER_LOG_FACILITY = "scheduler";
63
64 /** The SMTP server Turbine uses to send mail. */
65 String MAIL_SERVER_KEY = "mail.server";
66
67 /** Default Value for he SMTP server that Turbine uses to send mail. */
68 String MAIL_SERVER_DEFAULT = "localhost";
69
70 /** The Smtp sender address property */
71 String MAIL_SMTP_FROM = "mail.smtp.from";
72
73 /** Property that controls whether Turbine modules are cached or not. */
74 String MODULE_CACHE_KEY = "module.cache";
75
76 /** Default value of the Turbine Module Caching */
77 boolean MODULE_CACHE_DEFAULT = true;
78
79 /** Property that controls the module cache size. */
80 String MODULE_CACHE_SIZE_KEY = "module.cache.size";
81
82 /** Default value of the Turbine Module Cache Size */
83 int MODULE_CACHE_SIZE_DEFAULT = 128;
84
85 /** The packages where Turbine will look for modules. */
86 String MODULE_PACKAGES = "module.packages";
87
88 /** Home page template. */
89 String TEMPLATE_HOMEPAGE = "template.homepage";
90
91 /** Login template. */
92 String TEMPLATE_LOGIN = "template.login";
93
94 /** Template error template Property. */
95 String TEMPLATE_ERROR_KEY = "template.error";
96
97 /** Template error default for JSP */
98 String TEMPLATE_ERROR_JSP = "error.jsp";
99
100 /** Template error default for Velocity */
101 String TEMPLATE_ERROR_VM = "error.vm";
102
103 /** Home page screen. */
104 String SCREEN_HOMEPAGE = "screen.homepage";
105
106 /** Login screen. */
107 String SCREEN_LOGIN = "screen.login";
108
109 /** Login error screen. */
110 String SCREEN_ERROR_KEY = "screen.error";
111
112 /** Default value for Login Screen */
113 String SCREEN_ERROR_DEFAULT = "VelocityErrorScreen";
114
115 /** Report Screen for invalid state in the application*/
116 String SCREEN_INVALID_STATE = "screen.invalidstate";
117
118 /** Report Template for invalid state in the application */
119 String TEMPLATE_INVALID_STATE = "template.invalidstate";
120
121 /** Action to perform when a user logs in. */
122 String ACTION_LOGIN_KEY = "action.login";
123
124 /** Default Value for login Action */
125 String ACTION_LOGIN_DEFAULT = "LoginUser";
126
127 /** Action to perform when a user logs out. */
128 String ACTION_LOGOUT_KEY = "action.logout";
129
130 /** Default Value for ACTION_LOGOUT */
131 String ACTION_LOGOUT_DEFAULT = "LogoutUser";
132
133 /** Actions that performs session validation. */
134 String ACTION_SESSION_VALIDATOR_KEY = "action.sessionvalidator";
135
136 /** Default value for the session validator. (org.apache.modules.actions.sessionvalidator.TemplateSessionValidator) */
137 String ACTION_SESSION_VALIDATOR_DEFAULT = "sessionvalidator.TemplateSessionValidator";
138
139 /** Action that performs Access control */
140 String ACTION_ACCESS_CONTROLLER_KEY = "action.accesscontroller";
141
142 /** Default value for the access controller. (org.apache.modules.actions.AccessController) */
143 String ACTION_ACCESS_CONTROLLER_DEFAULT = "AccessController";
144
145 /** Select whether an Action Event must have a non-zero value */
146 String ACTION_EVENTSUBMIT_NEEDSVALUE_KEY = "action.eventsubmit.needsvalue";
147
148 /** Default value for action.eventsubmit.needsvalue */
149 boolean ACTION_EVENTSUBMIT_NEEDSVALUE_DEFAULT = false;
150
151 /** Select whether an exception in an Action method is bubbled up to Turbine.handleException() */
152 String ACTION_EVENT_BUBBLE_EXCEPTION_UP = "action.event.bubbleexception";
153
154 /** Default value for action.event.bubbleexception */
155 boolean ACTION_EVENT_BUBBLE_EXCEPTION_UP_DEFAULT = true;
156
157 /** Default layout. */
158 String LAYOUT_DEFAULT = "layout.default";
159
160 /** Default page. */
161 String PAGE_DEFAULT_KEY = "page.default";
162
163 /** Default value for the Default Page */
164 String PAGE_DEFAULT_DEFAULT = "DefaultPage";
165
166 /** Default value for the Default Screen */
167 String SCREEN_DEFAULT_DEFAULT = "DefaultScreen";
168
169 /** Message to display upon successful login. */
170 String LOGIN_MESSAGE = "login.message";
171
172 /** Message to display when a user fails to login. */
173 String LOGIN_ERROR = "login.error";
174
175 /** Message to display when screens variable invalid. */
176 String LOGIN_MESSAGE_NOSCREEN = "login.message.noscreen";
177
178 /** Message to display when a user logs out. */
179 String LOGOUT_MESSAGE = "logout.message";
180
181 /** Session Timeout */
182 String SESSION_TIMEOUT_KEY = "session.timeout";
183
184 /** Session Timeout Default Value */
185 int SESSION_TIMEOUT_DEFAULT = -1;
186
187 /**
188 * Filter for classes that can be de-serialized from the persistent session storage
189 * See {@link java.io.ObjectInputFilter.Config#createFilter(String)}
190 */
191 String SESSION_OBJECTINPUTFILTER = "session.objectinputfilter";
192
193 /** Indicate whether this Turbine application is using SSL. */
194 String USE_SSL_KEY = "use.ssl";
195
196 /** Default value for the SSL key */
197 boolean USE_SSL_DEFAULT = true;
198
199 /**
200 * Should the PP fold the case of everything. Possible values are
201 * "upper", "lower" and "none".
202 */
203 String PP_URL_CASE_FOLDING = "url.case.folding";
204
205 /** Default document type. */
206 String DEFAULT_DOCUMENT_TYPE_KEY = "default.doctype";
207
208 /** Default doctype root element. */
209 String DEFAULT_HTML_DOCTYPE_ROOT_ELEMENT_KEY = "default.html.doctype.root.element";
210
211 /** Default value for the doctype root element */
212 String DEFAULT_HTML_DOCTYPE_ROOT_ELEMENT_DEFAULT = "HTML";
213
214 /** Default doctype dtd. */
215 String DEFAULT_HTML_DOCTYPE_IDENTIFIER_KEY = "default.html.doctype.identifier";
216
217 /** Default Doctype dtd value (empty for HTML5) */
218 String DEFAULT_HTML_DOCTYPE_IDENTIFIER_DEFAULT = "";
219
220 /** Default doctype url. */
221 String DEFAULT_HTML_DOCTYPE_URI_KEY = "default.html.doctype.url";
222
223 /** Default doctype url value. (empty for HTML5) */
224 String DEFAULT_HTML_DOCTYPE_URI_DEFAULT = "";
225
226 /** Define content types **/
227 String DEFAULT_HTML_CONTENT_TYPE = "text/html";
228 String DEFAULT_TEXT_CONTENT_TYPE = "text/plain";
229 String DEFAULT_CSS_CONTENT_TYPE = "text/css";
230
231 /** Default Language property */
232 String LOCALE_DEFAULT_LANGUAGE_KEY = "locale.default.language";
233
234 /** Default value for Language property */
235 String LOCALE_DEFAULT_LANGUAGE_DEFAULT = Locale.US.getLanguage();
236
237 /** Default Country property */
238 String LOCALE_DEFAULT_COUNTRY_KEY = "locale.default.country";
239
240 /** Default value for Country property */
241 String LOCALE_DEFAULT_COUNTRY_DEFAULT = Locale.US.getCountry();
242
243 /** Default Charset property */
244 String LOCALE_DEFAULT_CHARSET_KEY = "locale.default.charset";
245
246 /** Default value for Charset property */
247 String LOCALE_DEFAULT_CHARSET_DEFAULT = StandardCharsets.ISO_8859_1.name();
248
249 /** Override Charset property */
250 String LOCALE_OVERRIDE_CHARSET_KEY = "locale.override.charset";
251
252 /** If this value is set as applicationRoot, then the webContext is used
253 * as application root
254 */
255 String WEB_CONTEXT = "webContext";
256
257 /** Key for the Path to the TurbineResources.properties File */
258 String APPLICATION_ROOT_KEY = "applicationRoot";
259
260 /** Default Value for the Path to the TurbineResources.properties File */
261 String APPLICATION_ROOT_DEFAULT = WEB_CONTEXT;
262
263 /** This is the key used in the Turbine.properties to access resources
264 * relative to the Web Application root. It might differ from the
265 * Application root, but the normal case is, that the webapp root
266 * and the application root point to the same path.
267 */
268 String WEBAPP_ROOT_KEY = "webappRoot";
269
270 /** The Key in the deployment descriptor for the Logging Directory */
271 String LOGGING_ROOT_KEY = "loggingRoot";
272
273 /** Default Value for the Logging Directory, relative to the webroot */
274 String LOGGING_ROOT_DEFAULT = "/logs";
275
276 /** Key for loading the UUID Generator with a constant value */
277 String UUID_ADDRESS_KEY = "uuid.address";
278
279 /** Context Key for the screen placeholder in the various velocity layouts */
280 String SCREEN_PLACEHOLDER = "screen_placeholder";
281
282 /** Context Key for the navigation object placeholder in the various velocity layouts */
283 String NAVIGATION_PLACEHOLDER = "navigation";
284
285 /** Context Key for the Processing Exception */
286 String PROCESSING_EXCEPTION_PLACEHOLDER = "processingException";
287
288 /** Context Key for the Stack Trace */
289 String STACK_TRACE_PLACEHOLDER = "stackTrace";
290
291 /** Encoding for Parameter Parser */
292 String PARAMETER_ENCODING_KEY = "input.encoding";
293
294 /** Default Encoding for Parameter Parser */
295 String PARAMETER_ENCODING_DEFAULT = StandardCharsets.ISO_8859_1.name();
296
297 /** Default serverName for ServerData */
298 String DEFAULT_SERVER_NAME_KEY
299 = "serverdata.default.serverName";
300
301 /** Default serverPort for ServerData */
302 String DEFAULT_SERVER_PORT_KEY
303 = "serverdata.default.serverPort";
304
305 /** Default serverScheme for ServerData */
306 String DEFAULT_SERVER_SCHEME_KEY
307 = "serverdata.default.serverScheme";
308
309 /** Default scriptName for ServerData */
310 String DEFAULT_SCRIPT_NAME_KEY
311 = "serverdata.default.scriptName";
312
313 /** Default contextPath for ServerData */
314 String DEFAULT_CONTEXT_PATH_KEY
315 = "serverdata.default.contextPath";
316
317 /** The default Session key for the Access Control List */
318 String ACL_SESSION_KEY = "turbine.AccessControlList";
319
320 /**
321 * The fully qualified class name of the default {@link
322 * org.apache.turbine.pipeline.Pipeline} implementation to use in the
323 * {@link org.apache.turbine.Turbine} servlet.
324 */
325 String STANDARD_PIPELINE = TurbinePipeline.class.getName();
326 }