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 2005/02/15 16:42:59 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/conf context.xml
remm 2005/02/15 07:42:58
Modified: catalina/src/share/org/apache/catalina/startup
HostConfig.java LocalStrings.properties
catalina/src/conf context.xml
Log:
- Tentative fix for 33572: context.xml should be a redeploy resource. This is done by prioritizing the redeploy resources.
- I need to test this better. The basic cases seem to be working (editing manager.xml, as well as an expanded folder as per the bug report).
- Remove context.xml from the list of watched resources.
Revision Changes Path
1.55 +36 -23 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/HostConfig.java
Index: HostConfig.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/HostConfig.java,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -r1.54 -r1.55
--- HostConfig.java 29 Jan 2005 19:45:55 -0000 1.54
+++ HostConfig.java 15 Feb 2005 15:42:58 -0000 1.55
@@ -25,6 +25,7 @@
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@@ -572,9 +573,6 @@
}
context.setConfigFile(contextXml.getAbsolutePath());
context.setPath(contextPath);
- // Add the context XML to the list of watched files
- deployedApp.reloadResources.put
- (contextXml.getAbsolutePath(), new Long(contextXml.lastModified()));
// Add the associated docBase to the redeployed list if it's a WAR
boolean isWar = false;
if (context.getDocBase() != null) {
@@ -628,7 +626,6 @@
external = true;
deployedApp.redeployResources.put
(contextXml.getAbsolutePath(), new Long(contextXml.lastModified()));
- deployedApp.reloadResources.remove(contextXml.getAbsolutePath());
}
} catch (IOException e) {
// Ignore
@@ -645,8 +642,14 @@
addWatchedResources(deployedApp,
expandedDocBase.getAbsolutePath(), context);
}
+ // Add the context XML to the list of files which should trigger a redeployment
+ deployedApp.redeployResources.put
+ (contextXml.getAbsolutePath(), new Long(contextXml.lastModified()));
}
} else {
+ // Add the context XML to the list of files which should trigger a redeployment
+ deployedApp.redeployResources.put
+ (contextXml.getAbsolutePath(), new Long(contextXml.lastModified()));
addWatchedResources(deployedApp, null, context);
}
}
@@ -904,13 +907,17 @@
}
context.setPath(contextPath);
context.setDocBase(file);
+ File configFile = new File(dir, Constants.ApplicationContextXml);
if (deployXML) {
- context.setConfigFile
- ((new File(dir, Constants.ApplicationContextXml)).getAbsolutePath());
+ context.setConfigFile(configFile.getAbsolutePath());
}
host.addChild(context);
deployedApp.redeployResources.put(dir.getAbsolutePath(),
new Long(dir.lastModified()));
+ if (deployXML) {
+ deployedApp.redeployResources.put(configFile.getAbsolutePath(),
+ new Long(configFile.lastModified()));
+ }
addWatchedResources(deployedApp, dir.getAbsolutePath(), context);
} catch (Throwable t) {
log.error(sm.getString("hostConfig.deployDir.error", file), t);
@@ -974,7 +981,9 @@
if (resource.exists()) {
long lastModified = ((Long) app.redeployResources.get(resources[i])).longValue();
if ((!resource.isDirectory()) && resource.lastModified() > lastModified) {
- // Redeploy application
+ // Undeploy application
+ if (log.isInfoEnabled())
+ log.info(sm.getString("hostConfig.undeploy", app.name));
ContainerBase context = (ContainerBase) host.findChild(app.name);
host.removeChild(context);
try {
@@ -984,28 +993,32 @@
("hostConfig.context.destroy", app.name), e);
}
// Delete other redeploy resources
- for (int j = 0; j < resources.length; j++) {
- if (j != i) {
- try {
- File current = new File(resources[j]);
- current = current.getCanonicalFile();
- if ((current.getAbsolutePath().startsWith(appBase().getAbsolutePath()))
+ for (int j = i + 1; j < resources.length; j++) {
+ try {
+ File current = new File(resources[j]);
+ current = current.getCanonicalFile();
+ if ((current.getAbsolutePath().startsWith(appBase().getAbsolutePath()))
|| (current.getAbsolutePath().startsWith(configBase().getAbsolutePath()))) {
- if (log.isDebugEnabled())
- log.debug("Delete " + current);
- ExpandWar.delete(current);
- }
- } catch (IOException e) {
- log.warn(sm.getString
- ("hostConfig.canonicalizing", app.name), e);
+ if (log.isDebugEnabled())
+ log.debug("Delete " + current);
+ ExpandWar.delete(current);
}
+ } catch (IOException e) {
+ log.warn(sm.getString
+ ("hostConfig.canonicalizing", app.name), e);
}
}
deployed.remove(app.name);
return;
}
} else {
+ long lastModified = ((Long) app.redeployResources.get(resources[i])).longValue();
+ if (lastModified == 0L) {
+ continue;
+ }
// Undeploy application
+ if (log.isInfoEnabled())
+ log.info(sm.getString("hostConfig.undeploy", app.name));
ContainerBase context = (ContainerBase) host.findChild(app.name);
host.removeChild(context);
try {
@@ -1015,7 +1028,7 @@
("hostConfig.context.destroy", app.name), e);
}
// Delete all redeploy resources
- for (int j = 0; j < resources.length; j++) {
+ for (int j = i + 1; j < resources.length; j++) {
try {
File current = new File(resources[j]);
current = current.getCanonicalFile();
@@ -1277,7 +1290,7 @@
* contain resources like the context.xml file, a compressed WAR path.
* The value is the last modification time.
*/
- public HashMap redeployResources = new HashMap();
+ public LinkedHashMap redeployResources = new LinkedHashMap();
/**
* Any modification of the specified (static) resources will cause a
1.14 +1 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties
Index: LocalStrings.properties
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- LocalStrings.properties 14 Feb 2005 19:27:41 -0000 1.13
+++ LocalStrings.properties 15 Feb 2005 15:42:58 -0000 1.14
@@ -64,7 +64,7 @@
hostConfig.removeWAR=War {0} is undeployed
hostConfig.start=HostConfig: Processing START
hostConfig.stop=HostConfig: Processing STOP
-hostConfig.undeploy=Undeploying web application at context path {0}
+hostConfig.undeploy=Undeploying context [{0}]
hostConfig.undeploy.error=Error undeploying web application at context path {0}
hostConfig.undeploying=Undeploying deployed web applications
userConfig.database=Exception loading user database
1.3 +6 -7 jakarta-tomcat-catalina/catalina/src/conf/context.xml
Index: context.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/conf/context.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- context.xml 1 Sep 2004 22:53:25 -0000 1.2
+++ context.xml 15 Feb 2005 15:42:58 -0000 1.3
@@ -2,12 +2,11 @@
<Context>
<!-- Default set of monitored resources -->
- <WatchedResource>WEB-INF/web.xml</WatchedResource>
- <WatchedResource>META-INF/context.xml</WatchedResource>
-
- <!-- Uncomment this to disable session persistence across Tomcat restarts -->
- <!--
- <Manager pathname="" />
- -->
+ <WatchedResource>WEB-INF/web.xml</WatchedResource>
+ <!-- Uncomment this to disable session persistence across Tomcat restarts -->
+ <!--
+ <Manager pathname="" />
+ -->
+
</Context>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
Re: cvs commit: jakarta-tomcat-catalina/catalina/src/conf context.xml
Posted by Mladen Turk <mt...@apache.org>.
TECHNICAL DIRECTOR wrote:
> PLEASE PLEASE STOP SENDING US YOUR E-MAILS...Satalogue
Can someone unsubscribe this user.
He's really annoying :).
Mladen.
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
Re: cvs commit: jakarta-tomcat-catalina/catalina/src/conf context.xml
Posted by TECHNICAL DIRECTOR <qu...@satalogue.net>.
PLEASE PLEASE STOP SENDING US YOUR E-MAILS...Satalogue
--- remm@apache.org wrote:
> remm 2005/02/15 07:42:58
>
> Modified: catalina/src/share/org/apache/catalina/startup
> HostConfig.java LocalStrings.properties
> catalina/src/conf context.xml
> Log:
> - Tentative fix for 33572: context.xml should be a redeploy resource.
> This is done by prioritizing the redeploy resources.
> - I need to test this better. The basic cases seem to be working
> (editing manager.xml, as well as an expanded folder as per the bug
> report).
> - Remove context.xml from the list of watched resources.
>
> Revision Changes Path
> 1.55 +36 -23
>
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/HostConfig.java
>
> Index: HostConfig.java
> ===================================================================
> RCS file:
>
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/HostConfig.java,v
> retrieving revision 1.54
> retrieving revision 1.55
> diff -u -r1.54 -r1.55
> --- HostConfig.java 29 Jan 2005 19:45:55 -0000 1.54
> +++ HostConfig.java 15 Feb 2005 15:42:58 -0000 1.55
> @@ -25,6 +25,7 @@
> import java.io.InputStream;
> import java.util.ArrayList;
> import java.util.HashMap;
> +import java.util.LinkedHashMap;
> import java.util.jar.JarEntry;
> import java.util.jar.JarFile;
>
> @@ -572,9 +573,6 @@
> }
> context.setConfigFile(contextXml.getAbsolutePath());
> context.setPath(contextPath);
> - // Add the context XML to the list of watched files
> - deployedApp.reloadResources.put
> - (contextXml.getAbsolutePath(), new
> Long(contextXml.lastModified()));
> // Add the associated docBase to the redeployed list if
> it's a WAR
> boolean isWar = false;
> if (context.getDocBase() != null) {
> @@ -628,7 +626,6 @@
> external = true;
> deployedApp.redeployResources.put
> (contextXml.getAbsolutePath(), new
> Long(contextXml.lastModified()));
> -
> deployedApp.reloadResources.remove(contextXml.getAbsolutePath());
> }
> } catch (IOException e) {
> // Ignore
> @@ -645,8 +642,14 @@
> addWatchedResources(deployedApp,
>
> expandedDocBase.getAbsolutePath(), context);
> }
> + // Add the context XML to the list of files
> which should trigger a redeployment
> + deployedApp.redeployResources.put
> + (contextXml.getAbsolutePath(), new
> Long(contextXml.lastModified()));
> }
> } else {
> + // Add the context XML to the list of files which
> should trigger a redeployment
> + deployedApp.redeployResources.put
> + (contextXml.getAbsolutePath(), new
> Long(contextXml.lastModified()));
> addWatchedResources(deployedApp, null, context);
> }
> }
> @@ -904,13 +907,17 @@
> }
> context.setPath(contextPath);
> context.setDocBase(file);
> + File configFile = new File(dir,
> Constants.ApplicationContextXml);
> if (deployXML) {
> - context.setConfigFile
> - ((new File(dir,
> Constants.ApplicationContextXml)).getAbsolutePath());
> + context.setConfigFile(configFile.getAbsolutePath());
> }
> host.addChild(context);
> deployedApp.redeployResources.put(dir.getAbsolutePath(),
> new Long(dir.lastModified()));
> + if (deployXML) {
> +
> deployedApp.redeployResources.put(configFile.getAbsolutePath(),
> + new Long(configFile.lastModified()));
> + }
> addWatchedResources(deployedApp, dir.getAbsolutePath(),
> context);
> } catch (Throwable t) {
> log.error(sm.getString("hostConfig.deployDir.error",
> file), t);
> @@ -974,7 +981,9 @@
> if (resource.exists()) {
> long lastModified = ((Long)
> app.redeployResources.get(resources[i])).longValue();
> if ((!resource.isDirectory()) &&
> resource.lastModified() > lastModified) {
> - // Redeploy application
> + // Undeploy application
> + if (log.isInfoEnabled())
> + log.info(sm.getString("hostConfig.undeploy",
> app.name));
> ContainerBase context = (ContainerBase)
> host.findChild(app.name);
> host.removeChild(context);
> try {
> @@ -984,28 +993,32 @@
> ("hostConfig.context.destroy",
> app.name), e);
> }
> // Delete other redeploy resources
> - for (int j = 0; j < resources.length; j++) {
> - if (j != i) {
> - try {
> - File current = new
> File(resources[j]);
> - current = current.getCanonicalFile();
> - if
> ((current.getAbsolutePath().startsWith(appBase().getAbsolutePath()))
> + for (int j = i + 1; j < resources.length; j++) {
> + try {
> + File current = new File(resources[j]);
> + current = current.getCanonicalFile();
> + if
> ((current.getAbsolutePath().startsWith(appBase().getAbsolutePath()))
> ||
> (current.getAbsolutePath().startsWith(configBase().getAbsolutePath())))
> {
> - if (log.isDebugEnabled())
> - log.debug("Delete " +
> current);
> - ExpandWar.delete(current);
> - }
> - } catch (IOException e) {
> - log.warn(sm.getString
> - ("hostConfig.canonicalizing",
> app.name), e);
> + if (log.isDebugEnabled())
> + log.debug("Delete " + current);
> + ExpandWar.delete(current);
> }
> + } catch (IOException e) {
> + log.warn(sm.getString
> + ("hostConfig.canonicalizing",
> app.name), e);
> }
> }
> deployed.remove(app.name);
> return;
> }
> } else {
> + long lastModified = ((Long)
> app.redeployResources.get(resources[i])).longValue();
> + if (lastModified == 0L) {
> + continue;
> + }
> // Undeploy application
> + if (log.isInfoEnabled())
> + log.info(sm.getString("hostConfig.undeploy",
> app.name));
> ContainerBase context = (ContainerBase)
> host.findChild(app.name);
> host.removeChild(context);
> try {
> @@ -1015,7 +1028,7 @@
> ("hostConfig.context.destroy",
> app.name), e);
> }
> // Delete all redeploy resources
> - for (int j = 0; j < resources.length; j++) {
> + for (int j = i + 1; j < resources.length; j++) {
> try {
> File current = new File(resources[j]);
> current = current.getCanonicalFile();
> @@ -1277,7 +1290,7 @@
> * contain resources like the context.xml file, a compressed WAR
> path.
> * The value is the last modification time.
> */
> - public HashMap redeployResources = new HashMap();
> + public LinkedHashMap redeployResources = new LinkedHashMap();
>
> /**
> * Any modification of the specified (static) resources will
> cause a
>
>
>
> 1.14 +1 -1
>
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/startup/LocalStrings.properties
>
>
=== message truncated ===
=====
FROM SATALOGUE TECHNICAL DEPARTMENT.......WE HAVE READ YOUR E-MAIL...
Please call our Duty Engineer on 01332 811564 - for a proper 'one to one' answer as further information and / or clarification is required from you in order to answer your question properly .
He is available from 10am until 5pm Monday to Friday inclusive.
TO RETURN TO SATALOGUE WEBSITE: Click on to link below.....
http://www.satalogue.com/about.htm
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org