Author: markt Date: Thu Feb 2 10:32:34 2012 New Revision: 1239522 URL: http://svn.apache.org/viewvc?rev=1239522&view=rev Log: Extend clean-up to Server
Modified: tomcat/trunk/java/org/apache/catalina/Server.java tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java tomcat/trunk/java/org/apache/catalina/core/StandardEngine.java tomcat/trunk/java/org/apache/catalina/core/StandardServer.java tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Modified: tomcat/trunk/java/org/apache/catalina/Server.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Server.java?rev=1239522&r1=1239521&r2=1239522&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Server.java (original) +++ tomcat/trunk/java/org/apache/catalina/Server.java Thu Feb 2 10:32:34 2012 @@ -18,6 +18,8 @@ package org.apache.catalina; +import java.io.File; + import org.apache.catalina.deploy.NamingResources; import org.apache.catalina.startup.Catalina; @@ -139,6 +141,34 @@ public interface Server extends Lifecycl */ public void setCatalina(Catalina catalina); + + /** + * Obtain the configured base (instance) directory. Note that home and base + * may be the same (and are by default). If this is not set the value + * returned by {@link #getCatalinaHome()} will be used. + */ + public File getCatalinaBase(); + + /** + * Set the configured base (instance) directory. Note that home and base + * may be the same (and are by default). + */ + public void setCatalinaBase(File catalinaBase); + + + /** + * Obtain the configured home (binary) directory. Note that home and base + * may be the same (and are by default). + */ + public File getCatalinaHome(); + + /** + * Set the configured home (binary) directory. Note that home and base + * may be the same (and are by default). + */ + public void setCatalinaHome(File catalinaHome); + + // --------------------------------------------------------- Public Methods 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=1239522&r1=1239521&r2=1239522&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:32:34 2012 @@ -294,8 +294,6 @@ public abstract class ContainerBase exte protected ThreadPoolExecutor startStopExecutor; - private File catalinaBase = null; - // ------------------------------------------------------------- Properties @Override @@ -1336,37 +1334,14 @@ public abstract class ContainerBase exte } - public void setCatalinaBase(File catalinaBase) { - this.catalinaBase = catalinaBase; - } - - @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) { - base = System.getProperty(Globals.CATALINA_HOME_PROP); - } - - if (base == null) { - // In theory this should never happen. In 'standard' usage the start - // scripts will set the system property. In embedded usage either - // the system property will be set or it will be set explicitly. + if (parent == null) { return null; } - catalinaBase =new File(base).getAbsoluteFile(); - return catalinaBase; + return parent.getCatalinaBase(); } 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=1239522&r1=1239521&r2=1239522&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:32:34 2012 @@ -18,6 +18,7 @@ package org.apache.catalina.core; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.File; import java.util.Locale; import java.util.concurrent.atomic.AtomicReference; @@ -33,6 +34,7 @@ import org.apache.catalina.LifecycleEven import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleListener; import org.apache.catalina.Realm; +import org.apache.catalina.Server; import org.apache.catalina.Service; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; @@ -354,6 +356,23 @@ public class StandardEngine extends Cont return (ClassLoader.getSystemClassLoader()); } + + @Override + public File getCatalinaBase() { + if (service != null) { + Server s = service.getServer(); + if (s != null) { + File base = s.getCatalinaBase(); + if (base != null) { + return base; + } + } + } + // Fall-back + return super.getCatalinaBase(); + } + + // -------------------- JMX registration -------------------- @Override Modified: tomcat/trunk/java/org/apache/catalina/core/StandardServer.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardServer.java?rev=1239522&r1=1239521&r2=1239522&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardServer.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardServer.java Thu Feb 2 10:32:34 2012 @@ -18,6 +18,7 @@ package org.apache.catalina.core; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.InetAddress; @@ -160,8 +161,12 @@ public final class StandardServer extend */ private volatile ServerSocket awaitSocket = null; - // ------------------------------------------------------------- Properties + private File catalinaHome = null; + + private File catalinaBase = null; + + // ------------------------------------------------------------- Properties /** * Return the global naming resources context. @@ -583,9 +588,37 @@ public final class StandardServer extend } - // --------------------------------------------------------- Public Methods + @Override + public File getCatalinaBase() { + if (catalinaBase != null) { + return catalinaBase; + } + + catalinaBase = getCatalinaHome(); + return catalinaBase; + } + @Override + public void setCatalinaBase(File catalinaBase) { + this.catalinaBase = catalinaBase; + } + + + @Override + public File getCatalinaHome() { + return catalinaHome; + } + + + @Override + public void setCatalinaHome(File catalinaHome) { + this.catalinaHome = catalinaHome; + } + + + // --------------------------------------------------------- Public Methods + /** * Add a property change listener to this component. * 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=1239522&r1=1239521&r2=1239522&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:32:34 2012 @@ -683,7 +683,6 @@ public class MBeanFactory { engine.setDomain(domain); engine.setName(domain); engine.setDefaultHost(defaultHost); - engine.setCatalinaBase(new File(baseDir)); Service service = new StandardService(); service.setContainer(engine); Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=1239522&r1=1239521&r2=1239522&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Thu Feb 2 10:32:34 2012 @@ -459,11 +459,12 @@ public class Tomcat { return server; } - initBaseDir(); - System.setProperty("catalina.useNaming", "false"); server = new StandardServer(); + + initBaseDir(); + server.setPort( -1 ); service = new StandardService(); @@ -591,20 +592,31 @@ public class Tomcat { // Create a temp dir. basedir = System.getProperty("user.dir") + "/tomcat." + port; - File home = new File(basedir); - home.mkdir(); - if (!home.isAbsolute()) { + } + + File baseFile = new File(basedir); + baseFile.mkdirs(); + if (!baseFile.isAbsolute()) { + try { + baseFile = baseFile.getCanonicalFile(); + } catch (IOException e) { + baseFile = baseFile.getAbsoluteFile(); + } + } + server.setCatalinaBase(baseFile); + + if (catalinaHome == null) { + File homeFile = new File(catalinaHome); + homeFile.mkdirs(); + if (!homeFile.isAbsolute()) { try { - basedir = home.getCanonicalPath(); + homeFile = homeFile.getCanonicalFile(); } catch (IOException e) { - basedir = home.getAbsolutePath(); + homeFile = homeFile.getAbsoluteFile(); } } + server.setCatalinaBase(homeFile); } - if (catalinaHome == null) { - System.setProperty(Globals.CATALINA_HOME_PROP, basedir); - } - System.setProperty(Globals.CATALINA_BASE_PROP, basedir); } static final String[] silences = new String[] { --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org