Author: markt
Date: Thu Feb  2 10:29:44 2012
New Revision: 1239518

URL: http://svn.apache.org/viewvc?rev=1239518&view=rev
Log:
Start to pull out the various custom methods to obtain CATALINA_BASE
and replace them with a call to the 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/core/StandardContext.java
    tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java
    tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java
    tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.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=1239518&r1=1239517&r2=1239518&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Container.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Container.java Thu Feb  2 10:29:44 
2012
@@ -16,7 +16,6 @@
  */
 package org.apache.catalina;
 
-
 import java.beans.PropertyChangeListener;
 import java.io.File;
 

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=1239518&r1=1239517&r2=1239518&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:29:44 2012
@@ -20,7 +20,6 @@ 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;
@@ -1337,6 +1336,11 @@ public abstract class ContainerBase exte
     }
 
 
+    public void setCatalinaBase(File catalinaBase) {
+        this.catalinaBase = catalinaBase;
+    }
+
+
     @Override
     public File getCatalinaBase() {
 
@@ -1351,16 +1355,15 @@ public abstract class ContainerBase exte
         String base = System.getProperty(Globals.CATALINA_BASE_PROP);
 
         if (base == null) {
+            base = System.getProperty(Globals.CATALINA_HOME_PROP);
+        }
+
+        if (base == null) {
             return null;
-        } else {
-            File f;
-            try {
-                f = new File(base).getCanonicalFile();
-            } catch (IOException e) {
-                return null;
-            }
-            return f;
         }
+
+        catalinaBase =new File(base).getAbsoluteFile();
+        return catalinaBase;
     }
 
 

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1239518&r1=1239517&r2=1239518&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Thu Feb  2 
10:29:44 2012
@@ -2503,11 +2503,8 @@ public class StandardContext extends Con
         }
         File workDir = new File(getWorkDir());
         if (!workDir.isAbsolute()) {
-            File catalinaHome = engineBase();
-            String catalinaHomePath = null;
             try {
-                catalinaHomePath = catalinaHome.getCanonicalPath();
-                workDir = new File(catalinaHomePath,
+                workDir = new File(getCatalinaBase().getCanonicalFile(),
                         getWorkDir());
             } catch (IOException e) {
                 log.warn(sm.getString("standardContext.workPath", getName()),
@@ -5650,20 +5647,6 @@ public class StandardContext extends Con
 
 
     /**
-     * Return a File object representing the base directory for the
-     * entire servlet container (i.e. the Engine container if present).
-     */
-    protected File engineBase() {
-        String base=System.getProperty(Globals.CATALINA_BASE_PROP);
-        if( base == null ) {
-            StandardEngine eng=(StandardEngine)this.getParent().getParent();
-            base=eng.getBaseDir();
-        }
-        return (new File(base));
-    }
-
-
-    /**
      * Bind current thread, both for CL purposes and for JNDI ENC support
      * during : startup, shutdown and realoading of the context.
      *
@@ -5728,7 +5711,7 @@ public class StandardContext extends Con
         File file = new File(getDocBase());
         if (!file.isAbsolute()) {
             if (container == null) {
-                docBase = (new File(engineBase(), getDocBase())).getPath();
+                docBase = (new File(getCatalinaBase(), 
getDocBase())).getPath();
             } else {
                 // Use the "appBase" property of this container
                 file = ((Host) container).getAppBaseFile();
@@ -5921,10 +5904,9 @@ public class StandardContext extends Con
         // Create this directory if necessary
         File dir = new File(workDir);
         if (!dir.isAbsolute()) {
-            File catalinaHome = engineBase();
             String catalinaHomePath = null;
             try {
-                catalinaHomePath = catalinaHome.getCanonicalPath();
+                catalinaHomePath = getCatalinaBase().getCanonicalPath();
                 dir = new File(catalinaHomePath, workDir);
             } catch (IOException e) {
                 log.warn(sm.getString("standardContext.workCreateException",

Modified: tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java?rev=1239518&r1=1239517&r2=1239518&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java (original)
+++ tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java Thu Feb  2 
10:29:44 2012
@@ -27,7 +27,6 @@ import org.apache.catalina.ContainerEven
 import org.apache.catalina.ContainerListener;
 import org.apache.catalina.Context;
 import org.apache.catalina.Engine;
-import org.apache.catalina.Globals;
 import org.apache.catalina.Host;
 import org.apache.catalina.Lifecycle;
 import org.apache.catalina.LifecycleEvent;
@@ -207,20 +206,6 @@ public class StandardEngine extends Cont
         this.service = service;
     }
 
-    public String getBaseDir() {
-        if( baseDir==null ) {
-            baseDir=System.getProperty(Globals.CATALINA_BASE_PROP);
-        }
-        if( baseDir==null ) {
-            baseDir=System.getProperty(Globals.CATALINA_HOME_PROP);
-        }
-        return baseDir;
-    }
-
-    public void setBaseDir(String baseDir) {
-        this.baseDir = baseDir;
-    }
-
     // --------------------------------------------------------- Public Methods
 
 

Modified: tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java?rev=1239518&r1=1239517&r2=1239518&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java (original)
+++ tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java Thu Feb  2 
10:29:44 2012
@@ -683,7 +683,7 @@ public class MBeanFactory {
         engine.setDomain(domain);
         engine.setName(domain);
         engine.setDefaultHost(defaultHost);
-        engine.setBaseDir(baseDir);
+        engine.setCatalinaBase(new File(baseDir));
 
         Service service = new StandardService();
         service.setContainer(engine);

Modified: tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java?rev=1239518&r1=1239517&r2=1239518&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ContextConfig.java Thu Feb  2 
10:29:44 2012
@@ -67,7 +67,6 @@ import org.apache.catalina.Valve;
 import org.apache.catalina.Wrapper;
 import org.apache.catalina.core.ContainerBase;
 import org.apache.catalina.core.StandardContext;
-import org.apache.catalina.core.StandardEngine;
 import org.apache.catalina.core.StandardHost;
 import org.apache.catalina.deploy.ErrorPage;
 import org.apache.catalina.deploy.FilterDef;
@@ -485,15 +484,6 @@ public class ContextConfig implements Li
     }
 
 
-    protected String getBaseDir() {
-        Container engineC=context.getParent().getParent();
-        if( engineC instanceof StandardEngine ) {
-            return ((StandardEngine)engineC).getBaseDir();
-        }
-        return System.getProperty(Globals.CATALINA_BASE_PROP);
-    }
-
-
     /**
      * Process the default configuration file, if it exists.
      */
@@ -513,7 +503,8 @@ public class ContextConfig implements Li
         if (!context.getOverride()) {
             File defaultContextFile = new File(defaultContextXml);
             if (!defaultContextFile.isAbsolute()) {
-                defaultContextFile =new File(getBaseDir(), defaultContextXml);
+                defaultContextFile =
+                        new File(context.getCatalinaBase(), defaultContextXml);
             }
             if (defaultContextFile.exists()) {
                 try {
@@ -1627,7 +1618,8 @@ public class ContextConfig implements Li
         if (Constants.NoDefaultWebXml.equals(defaultWebXml)) {
             return null;
         }
-        return getWebXmlSource(defaultWebXml, getBaseDir());
+        return getWebXmlSource(defaultWebXml,
+                context.getCatalinaBase().getPath());
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to