You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2001/12/03 23:19:43 UTC
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup HostConfig.java
remm 01/12/03 14:19:43
Modified: catalina/src/share/org/apache/catalina/startup
HostConfig.java
Log:
- Make the deployment order predictable.
- XML context descriptors are deployed first.
- WARs are deployed next.
- Extracted webapps are deployed last.
Revision Changes Path
1.15 +89 -35 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/HostConfig.java
Index: HostConfig.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/HostConfig.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- HostConfig.java 2001/10/27 19:05:17 1.14
+++ HostConfig.java 2001/12/03 22:19:42 1.15
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/HostConfig.java,v 1.14 2001/10/27 19:05:17 craigmcc Exp $
- * $Revision: 1.14 $
- * $Date: 2001/10/27 19:05:17 $
+ * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/startup/HostConfig.java,v 1.15 2001/12/03 22:19:42 remm Exp $
+ * $Revision: 1.15 $
+ * $Date: 2001/12/03 22:19:42 $
*
* ====================================================================
*
@@ -101,7 +101,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
- * @version $Revision: 1.14 $ $Date: 2001/10/27 19:05:17 $
+ * @version $Revision: 1.15 $ $Date: 2001/12/03 22:19:42 $
*/
public class HostConfig
@@ -315,6 +315,18 @@
return;
String files[] = appBase.list();
+ deployDescriptors(appBase, files);
+ deployWARs(appBase, files);
+ deployDirectories(appBase, files);
+
+ }
+
+
+ /**
+ * Deploy XML context descriptors.
+ */
+ protected void deployDescriptors(File appBase, String[] files) {
+
for (int i = 0; i < files.length; i++) {
if (files[i].equalsIgnoreCase("META-INF"))
@@ -324,36 +336,7 @@
if (deployed.contains(files[i]))
continue;
File dir = new File(appBase, files[i]);
- if (dir.isDirectory()) {
-
- deployed.add(files[i]);
-
- // Make sure there is an application configuration directory
- /* Don't be more fussy than the Deployer implementation is
- File webInf = new File(dir, "/WEB-INF");
- if (!webInf.exists() || !webInf.isDirectory() ||
- !webInf.canRead())
- continue;
- */
-
- // Calculate the context path and make sure it is unique
- String contextPath = "/" + files[i];
- if (files[i].equals("ROOT"))
- contextPath = "";
- if (host.findChild(contextPath) != null)
- continue;
-
- // Deploy the application in this directory
- log(sm.getString("hostConfig.deployDir", files[i]));
- try {
- URL url = new URL("file", null, dir.getCanonicalPath());
- ((Deployer) host).install(contextPath, url);
- } catch (Throwable t) {
- log(sm.getString("hostConfig.deployDir.error", files[i]),
- t);
- }
-
- } else if (files[i].toLowerCase().endsWith(".xml")) {
+ if (files[i].toLowerCase().endsWith(".xml")) {
deployed.add(files[i]);
@@ -367,9 +350,30 @@
log(sm.getString("hostConfig.deployDescriptor.error",
files[i]), t);
}
+
+ }
+
+ }
+
+ }
- } else if (files[i].toLowerCase().endsWith(".war")) {
+ /**
+ * Deploy WAR files.
+ */
+ protected void deployWARs(File appBase, String[] files) {
+
+ for (int i = 0; i < files.length; i++) {
+
+ if (files[i].equalsIgnoreCase("META-INF"))
+ continue;
+ if (files[i].equalsIgnoreCase("WEB-INF"))
+ continue;
+ if (deployed.contains(files[i]))
+ continue;
+ File dir = new File(appBase, files[i]);
+ if (files[i].toLowerCase().endsWith(".war")) {
+
deployed.add(files[i]);
// Calculate the context path and make sure it is unique
@@ -390,6 +394,56 @@
((Deployer) host).install(contextPath, url);
} catch (Throwable t) {
log(sm.getString("hostConfig.deployJar.error", files[i]),
+ t);
+ }
+
+ }
+
+ }
+
+ }
+
+
+ /**
+ * Deploy directories.
+ */
+ protected void deployDirectories(File appBase, String[] files) {
+
+ for (int i = 0; i < files.length; i++) {
+
+ if (files[i].equalsIgnoreCase("META-INF"))
+ continue;
+ if (files[i].equalsIgnoreCase("WEB-INF"))
+ continue;
+ if (deployed.contains(files[i]))
+ continue;
+ File dir = new File(appBase, files[i]);
+ if (dir.isDirectory()) {
+
+ deployed.add(files[i]);
+
+ // Make sure there is an application configuration directory
+ /* Don't be more fussy than the Deployer implementation is
+ File webInf = new File(dir, "/WEB-INF");
+ if (!webInf.exists() || !webInf.isDirectory() ||
+ !webInf.canRead())
+ continue;
+ */
+
+ // Calculate the context path and make sure it is unique
+ String contextPath = "/" + files[i];
+ if (files[i].equals("ROOT"))
+ contextPath = "";
+ if (host.findChild(contextPath) != null)
+ continue;
+
+ // Deploy the application in this directory
+ log(sm.getString("hostConfig.deployDir", files[i]));
+ try {
+ URL url = new URL("file", null, dir.getCanonicalPath());
+ ((Deployer) host).install(contextPath, url);
+ } catch (Throwable t) {
+ log(sm.getString("hostConfig.deployDir.error", files[i]),
t);
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>