[jboss-cvs] JBossAS SVN: r79176 - trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Oct 7 03:49:58 EDT 2008
Author: emuckenhuber
Date: 2008-10-07 03:49:58 -0400 (Tue, 07 Oct 2008)
New Revision: 79176
Modified:
trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
Log:
[JBAS-6041] override default context-params
Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java 2008-10-07 06:02:18 UTC (rev 79175)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java 2008-10-07 07:49:58 UTC (rev 79176)
@@ -109,6 +109,7 @@
protected void applicationWebConfig()
{
processWebMetaData(metaDataLocal.get());
+ processContextParameters();
}
@Override
@@ -144,15 +145,7 @@
else
context.setPublicId(org.apache.catalina.startup.Constants.WebDtdPublicId_22);
- // Context params
- List<ParamValueMetaData> params = metaData.getContextParams();
- if (params != null)
- {
- for (ParamValueMetaData param : params)
- {
- context.addParameter(param.getParamName(), param.getParamValue());
- }
- }
+ // processContextParameters() provides a merged view of the context params
// Display name
DescriptionGroupMetaData dg = metaData.getDescriptionGroup();
@@ -343,7 +336,7 @@
{
wrapper.setRunAs(value.getRunAs().getRoleName());
}
- params = value.getInitParam();
+ List<ParamValueMetaData> params = value.getInitParam();
if (params != null)
{
for (ParamValueMetaData param : params)
@@ -473,6 +466,44 @@
{
return (Properties) new InitialContext().lookup("TomcatAuthenticators");
}
+
+ /**
+ * Process the context parameters. Let a user application
+ * override the sharedMetaData values.
+ */
+ protected void processContextParameters()
+ {
+ JBossWebMetaData local = metaDataLocal.get();
+ JBossWebMetaData shared = metaDataShared.get();
+
+ Map<String, String> overrideParams = new HashMap<String, String>();
+
+ List<ParamValueMetaData> params = local.getContextParams();
+ if (params != null)
+ {
+ for (ParamValueMetaData param : params)
+ {
+ overrideParams.put(param.getParamName(), param.getParamValue());
+ }
+ }
+ params = shared.getContextParams();
+ if (params != null)
+ {
+ for (ParamValueMetaData param : params)
+ {
+ if(overrideParams.get(param.getParamName()) == null)
+ {
+ overrideParams.put(param.getParamName(), param.getParamValue());
+ }
+ }
+ }
+
+ for(String key : overrideParams.keySet())
+ {
+ context.addParameter(key, overrideParams.get(key));
+ }
+
+ }
protected void destroy() {
if (runDestroy) {
More information about the jboss-cvs-commits
mailing list