Author: markt
Date: Sat Feb 9 10:45:05 2008
New Revision: 620173
URL: http://svn.apache.org/viewvc?rev=620173&view=rev
Log:
Add support for system property replacement.
Modified:
tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/Catalina.java
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/HostConfig.java
tomcat/current/tc4.1.x/STATUS.txt
Modified: tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt
URL:
http://svn.apache.org/viewvc/tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt?rev=620173&r1=620172&r2=620173&view=diff
==============================================================================
--- tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt (original)
+++ tomcat/container/branches/tc4.1.x/RELEASE-NOTES-4.1.txt Sat Feb 9 10:45:05
2008
@@ -302,6 +302,9 @@
Startup scripts
Provide greater control over redirection of stdout and stderr
+[4.1.37] Configuration files
+ Add support for system property replacement in configuration files
+
-------------------
Jasper New Features:
Modified:
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java
URL:
http://svn.apache.org/viewvc/tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java?rev=620173&r1=620172&r2=620173&view=diff
==============================================================================
---
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java
(original)
+++
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/core/StandardHostDeployer.java
Sat Feb 9 10:45:05 2008
@@ -23,6 +23,7 @@
import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
+import java.util.Map;
import org.apache.catalina.Container;
import org.apache.catalina.Context;
import org.apache.catalina.Deployer;
@@ -36,6 +37,9 @@
import org.apache.catalina.startup.NamingRuleSet;
import org.apache.catalina.util.StringManager;
import org.apache.commons.digester.Digester;
+import org.apache.commons.digester.Substitutor;
+import org.apache.commons.digester.substitution.VariableSubstitutor;
+import org.apache.commons.digester.substitution.MultiVariableExpander;
/**
@@ -680,6 +684,23 @@
/**
+ * Adds a substitutor to interpolate system properties
+ *
+ * @param digester The digester to which we add the substitutor
+ */
+ protected void enableDigesterSubstitutor(Digester digester)
+ {
+ Map systemProperties = System.getProperties();
+ MultiVariableExpander expander = new MultiVariableExpander();
+ expander.addSource("$", systemProperties);
+
+ // allow expansion in both xml attributes and element text
+ Substitutor substitutor = new VariableSubstitutor(expander);
+ digester.setSubstitutor(substitutor);
+ }
+
+
+ /**
* Create (if necessary) and return a Digester configured to process the
* context configuration descriptor for an application.
*/
@@ -690,6 +711,8 @@
if (host.getDebug() > 0)
digester.setDebug(3);
digester.setValidating(false);
+ // Add a substitutor to resolve system properties
+ enableDigesterSubstitutor(digester);
contextRuleSet = new ContextRuleSet("");
digester.addRuleSet(contextRuleSet);
namingRuleSet = new NamingRuleSet("Context/");
Modified:
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/Catalina.java
URL:
http://svn.apache.org/viewvc/tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/Catalina.java?rev=620173&r1=620172&r2=620173&view=diff
==============================================================================
---
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/Catalina.java
(original)
+++
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/Catalina.java
Sat Feb 9 10:45:05 2008
@@ -25,6 +25,7 @@
import java.io.OutputStream;
import java.net.Socket;
import java.security.Security;
+import java.util.Map;
import org.apache.catalina.Container;
import org.apache.catalina.Lifecycle;
import org.apache.catalina.LifecycleException;
@@ -32,6 +33,9 @@
import org.apache.catalina.core.StandardServer;
import org.apache.commons.digester.Digester;
import org.apache.commons.digester.Rule;
+import org.apache.commons.digester.Substitutor;
+import org.apache.commons.digester.substitution.VariableSubstitutor;
+import org.apache.commons.digester.substitution.MultiVariableExpander;
import org.apache.tomcat.util.log.SystemLogHandler;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
@@ -222,6 +226,23 @@
/**
+ * Adds a substitutor to interpolate system properties
+ *
+ * @param digester The digester to which we add the substitutor
+ */
+ protected void enableDigesterSubstitutor(Digester digester)
+ {
+ Map systemProperties = System.getProperties();
+ MultiVariableExpander expander = new MultiVariableExpander();
+ expander.addSource("$", systemProperties);
+
+ // allow expansion in both xml attributes and element text
+ Substitutor substitutor = new VariableSubstitutor(expander);
+ digester.setSubstitutor(substitutor);
+ }
+
+
+ /**
* Create and configure the Digester we will be using for startup.
*/
protected Digester createStartDigester() {
@@ -230,6 +251,8 @@
Digester digester = new Digester();
digester.setClassLoader(StandardServer.class.getClassLoader());
digester.setValidating(false);
+ // Add a substitutor to resolve system properties
+ enableDigesterSubstitutor(digester);
// Configure the actions we will be using
digester.addObjectCreate("Server",
@@ -322,6 +345,8 @@
// Initialize the digester
Digester digester = new Digester();
+ // Add a substitutor to resolve system properties
+ enableDigesterSubstitutor(digester);
// Configure the rules we need for shutting down
digester.addObjectCreate("Server",
Modified:
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/HostConfig.java
URL:
http://svn.apache.org/viewvc/tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/HostConfig.java?rev=620173&r1=620172&r2=620173&view=diff
==============================================================================
---
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/HostConfig.java
(original)
+++
tomcat/container/branches/tc4.1.x/catalina/src/share/org/apache/catalina/startup/HostConfig.java
Sat Feb 9 10:45:05 2008
@@ -26,6 +26,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.Map;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
@@ -42,6 +43,9 @@
import org.apache.catalina.core.StandardHost;
import org.apache.catalina.util.StringManager;
import org.apache.commons.digester.Digester;
+import org.apache.commons.digester.Substitutor;
+import org.apache.commons.digester.substitution.VariableSubstitutor;
+import org.apache.commons.digester.substitution.MultiVariableExpander;
/**
@@ -486,6 +490,23 @@
/**
+ * Adds a substitutor to interpolate system properties
+ *
+ * @param digester The digester to which we add the substitutor
+ */
+ protected void enableDigesterSubstitutor(Digester digester)
+ {
+ Map systemProperties = System.getProperties();
+ MultiVariableExpander expander = new MultiVariableExpander();
+ expander.addSource("$", systemProperties);
+
+ // allow expansion in both xml attributes and element text
+ Substitutor substitutor = new VariableSubstitutor(expander);
+ digester.setSubstitutor(substitutor);
+ }
+
+
+ /**
* Create (if necessary) and return a Digester configured to process the
* context configuration descriptor for an application.
*/
@@ -494,6 +515,8 @@
if (digester == null) {
digester = new Digester();
digester.setValidating(false);
+ // Add a substitutor to resolve system properties
+ enableDigesterSubstitutor(digester);
digester.addRuleSet(new ContextRuleSet(""));
digester.addRuleSet(new NamingRuleSet("Context/"));
}
Modified: tomcat/current/tc4.1.x/STATUS.txt
URL:
http://svn.apache.org/viewvc/tomcat/current/tc4.1.x/STATUS.txt?rev=620173&r1=620172&r2=620173&view=diff
==============================================================================
--- tomcat/current/tc4.1.x/STATUS.txt (original)
+++ tomcat/current/tc4.1.x/STATUS.txt Sat Feb 9 10:45:05 2008
@@ -25,10 +25,3 @@
PATCHES PROPOSED TO BACKPORT:
[ New proposals should be added at the end of the list ]
-* Add feature to use system properties in server.xml.
- TC 5.0/5.5/6.0 already can do this, and since commons-digester
- in TC 4.1 is recent enough, it's easy for TC 4.1 to.
-
http://people.apache.org/~rjung/patches/replace_system_properties_20071018a.patch
- +1: rjung, yoavs, markt, jim
- -1:
- 0: I'd stick with serious bugs and security fixes for a release like this,
not sure we should support new features, and the bugs they could generate
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]