Author: markt Date: Thu Feb 2 10:28:48 2012 New Revision: 1239516 URL: http://svn.apache.org/viewvc?rev=1239516&view=rev Log: Add the plumbing to make a canonical CATALINA_BASE File available via every Container.
Modified: tomcat/trunk/java/org/apache/catalina/Container.java tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java Modified: tomcat/trunk/java/org/apache/catalina/Container.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Container.java?rev=1239516&r1=1239515&r2=1239516&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Container.java (original) +++ tomcat/trunk/java/org/apache/catalina/Container.java Thu Feb 2 10:28:48 2012 @@ -18,6 +18,7 @@ package org.apache.catalina; import java.beans.PropertyChangeListener; +import java.io.File; import javax.management.ObjectName; import javax.naming.directory.DirContext; @@ -443,4 +444,10 @@ public interface Container extends Lifec * @param startStopThreads The new number of threads to be used */ public void setStartStopThreads(int startStopThreads); + + + /** + * + */ + public File getCatalinaBase(); } Modified: tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java?rev=1239516&r1=1239515&r2=1239516&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java Thu Feb 2 10:28:48 2012 @@ -19,6 +19,8 @@ package org.apache.catalina.core; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; +import java.io.File; +import java.io.IOException; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; @@ -292,6 +294,9 @@ public abstract class ContainerBase exte private int startStopThreads = 1; protected ThreadPoolExecutor startStopExecutor; + + private File catalinaBase = null; + // ------------------------------------------------------------- Properties @Override @@ -1332,8 +1337,34 @@ public abstract class ContainerBase exte } - // ------------------------------------------------------ Protected Methods + @Override + public File getCatalinaBase() { + + if (catalinaBase != null) { + return catalinaBase; + } + + if (parent != null) { + return parent.getCatalinaBase(); + } + + String base = System.getProperty(Globals.CATALINA_BASE_PROP); + if (base == null) { + return null; + } else { + File f; + try { + f = new File(base).getCanonicalFile(); + } catch (IOException e) { + return null; + } + return f; + } + } + + + // ------------------------------------------------------ Protected Methods /** * Notify all container event listeners that a particular event has Modified: tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java?rev=1239516&r1=1239515&r2=1239516&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java Thu Feb 2 10:28:48 2012 @@ -17,6 +17,7 @@ package org.apache.catalina.startup; import java.beans.PropertyChangeListener; +import java.io.File; import java.net.URL; import java.util.Set; @@ -634,4 +635,7 @@ public class FailedContext extends Lifec @SuppressWarnings("unused") public synchronized void addValve(Valve valve) { /* NO-OP */ } + + @Override + public File getCatalinaBase() { return null; } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org