Author: mgrigorov
Date: Wed Mar 16 20:00:25 2011
New Revision: 1082283
URL: http://svn.apache.org/viewvc?rev=1082283&view=rev
Log:
WICKET-3536 Cache the value from Application.getConfigurationType()
Cache the parsed value of 'wicket.configuration' setting.
A system property or servlet init/context parameter will not ever change at
runtime.
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
Modified:
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java?rev=1082283&r1=1082282&r2=1082283&view=diff
==============================================================================
---
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
(original)
+++
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
Wed Mar 16 20:00:25 2011
@@ -123,6 +123,13 @@ public abstract class WebApplication ext
private FilterFactoryManager filterFactoryManager;
/**
+ * Cached value of the parsed (from system properties or Servlet
init/context parameter)
+ * <code>wicket.configuration</code> setting. No need to re-read it
because it wont change at
+ * runtime.
+ */
+ private RuntimeConfigurationType configurationType;
+
+ /**
* Covariant override for easy getting the current {@link
WebApplication} without having to cast
* it.
*/
@@ -525,58 +532,66 @@ public abstract class WebApplication ext
@Override
public RuntimeConfigurationType getConfigurationType()
{
- String result = null;
- try
- {
- result = System.getProperty("wicket." +
Application.CONFIGURATION);
- }
- catch (SecurityException e)
- {
- // Ignore - we're not allowed to read system properties.
- }
-
- // If no system parameter check filter/servlet <init-param> and
<context-param>
- if (result == null)
+ if (configurationType == null)
{
- result = getInitParameter("wicket." +
Application.CONFIGURATION);
- }
- if (result == null)
- {
- result = getServletContext().getInitParameter("wicket."
+ Application.CONFIGURATION);
- }
+ String result = null;
+ try
+ {
+ result = System.getProperty("wicket." +
Application.CONFIGURATION);
+ }
+ catch (SecurityException e)
+ {
+ // Ignore - we're not allowed to read system
properties.
+ }
- // If no system parameter check filter/servlet specific
<init-param>
- if (result == null)
- {
- result = getInitParameter(Application.CONFIGURATION);
- }
+ // If no system parameter check filter/servlet
<init-param> and <context-param>
+ if (result == null)
+ {
+ result = getInitParameter("wicket." +
Application.CONFIGURATION);
+ }
+ if (result == null)
+ {
+ result =
getServletContext().getInitParameter("wicket." + Application.CONFIGURATION);
+ }
- // If no system parameter and no <init-param>, then check
- // <context-param>
- if (result == null)
- {
- result =
getServletContext().getInitParameter(Application.CONFIGURATION);
- }
+ // If no system parameter check filter/servlet specific
<init-param>
+ if (result == null)
+ {
+ result =
getInitParameter(Application.CONFIGURATION);
+ }
- // Return result if we have found it, else fall back to
DEVELOPMENT mode
- // as the default.
- if (result != null)
- {
- try
+ // If no system parameter and no <init-param>, then
check
+ // <context-param>
+ if (result == null)
{
- return
RuntimeConfigurationType.valueOf(result.toUpperCase());
+ result =
getServletContext().getInitParameter(Application.CONFIGURATION);
}
- catch (IllegalArgumentException e)
+
+ // Return result if we have found it, else fall back to
DEVELOPMENT mode
+ // as the default.
+ if (result != null)
{
- // Ignore : fall back to DEVELOPMENT mode
- // log.warn("Unknown runtime configuration type
'" + result +
- // "', falling back to DEVELOPMENT mode.");
- throw new IllegalArgumentException("Invalid
configuration type: '" + result +
- "'. Must be \"development\" or
\"deployment\".");
+ try
+ {
+ configurationType =
RuntimeConfigurationType.valueOf(result.toUpperCase());
+ }
+ catch (IllegalArgumentException e)
+ {
+ // Ignore : fall back to DEVELOPMENT
mode
+ // log.warn("Unknown runtime
configuration type '" + result +
+ // "', falling back to DEVELOPMENT
mode.");
+ throw new
IllegalArgumentException("Invalid configuration type: '" + result +
+ "'. Must be \"development\" or
\"deployment\".");
+ }
}
}
- return RuntimeConfigurationType.DEVELOPMENT;
+ if (configurationType == null)
+ {
+ configurationType =
RuntimeConfigurationType.DEVELOPMENT;
+ }
+
+ return configurationType;
}
/**