Author: pero
Date: Tue Apr 18 05:59:06 2006
New Revision: 394930
URL: http://svn.apache.org/viewcvs?rev=394930&view=rev
Log:
Make sure that StoreConfig save external referenced war files at context.xml
correct.
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/StandardContext.java
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/mbeans-descriptors.xml
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml
tomcat/container/tc5.5.x/webapps/docs/changelog.xml
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/StandardContext.java
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/StandardContext.java?rev=394930&r1=394929&r2=394930&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/StandardContext.java
(original)
+++
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/StandardContext.java
Tue Apr 18 05:59:06 2006
@@ -332,6 +332,11 @@
/**
+ * The original document root for this web application.
+ */
+ private String originalDocBase = null;
+
+ /**
* The exception pages for this web application, keyed by fully qualified
* class name of the Java exception.
*/
@@ -1241,6 +1246,28 @@
}
+ /**
+ * Return the original document root for this Context. This can be an
absolute
+ * pathname, a relative pathname, or a URL.
+ * Is only set as deployment has change docRoot!
+ */
+ public String getOriginalDocBase() {
+
+ return (this.originalDocBase);
+
+ }
+
+ /**
+ * Set the original document root for this Context. This can be an
absolute
+ * pathname, a relative pathname, or a URL.
+ *
+ * @param docBase The orginal document root
+ */
+ public void setOriginalDocBase(String docBase) {
+
+ this.originalDocBase = docBase;
+ }
+
// experimental
public boolean isLazy() {
return lazy;
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/mbeans-descriptors.xml
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/mbeans-descriptors.xml?rev=394930&r1=394929&r2=394930&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/mbeans-descriptors.xml
(original)
+++
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core/mbeans-descriptors.xml
Tue Apr 18 05:59:06 2006
@@ -129,6 +129,10 @@
description="Name of the object"
type="java.lang.String"/>
+ <attribute name="originalDocBase"
+ description="The original document root for this web
application"
+ type="java.lang.String"/>
+
<attribute name="override"
description="The DefaultContext override flag for this web
application"
type="boolean"/>
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java?rev=394930&r1=394929&r2=394930&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
(original)
+++
tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/startup/ContextConfig.java
Tue Apr 18 05:59:06 2006
@@ -858,7 +858,8 @@
docBase = file.getCanonicalPath();
}
file = new File(docBase);
-
+ String origDocBase = docBase ;
+
if (docBase.toLowerCase().endsWith(".war") && !file.isDirectory() &&
unpackWARs) {
URL war = new URL("jar:" + (new File(docBase)).toURL() + "!/");
String contextPath = context.getPath();
@@ -868,6 +869,9 @@
docBase = ExpandWar.expand(host, war, contextPath);
file = new File(docBase);
docBase = file.getCanonicalPath();
+ if (context instanceof StandardContext) {
+ ((StandardContext) context).setOriginalDocBase(origDocBase);
+ }
} else {
File docDir = new File(docBase);
if (!docDir.exists()) {
@@ -881,6 +885,9 @@
} else {
docBase = warFile.getCanonicalPath();
}
+ }
+ if (context instanceof StandardContext) {
+ ((StandardContext)context).setOriginalDocBase(origDocBase);
}
}
}
Modified:
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java?rev=394930&r1=394929&r2=394930&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java
(original)
+++
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreAppender.java
Tue Apr 18 05:59:06 2006
@@ -254,8 +254,7 @@
// The property has its default value
continue;
}
- if (isPrintValue(bean, bean2, descriptors[i].getName(), desc))
- printValue(writer, indent, descriptors[i].getName(), value);
+ printAttribute(writer, indent, bean, desc,
descriptors[i].getName(), bean2, value);
}
if (bean instanceof ResourceBase) {
@@ -273,6 +272,20 @@
}
}
+ }
+
+ /**
+ * @param writer
+ * @param indent
+ * @param bean
+ * @param desc
+ * @param attributeName
+ * @param bean2
+ * @param value
+ */
+ protected void printAttribute(PrintWriter writer, int indent, Object bean,
StoreDescription desc, String attributeName, Object bean2, Object value) {
+ if (isPrintValue(bean, bean2, attributeName, desc))
+ printValue(writer, indent, attributeName, value);
}
/**
Modified:
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java?rev=394930&r1=394929&r2=394930&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java
(original)
+++
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/StoreContextAppender.java
Tue Apr 18 05:59:06 2006
@@ -17,6 +17,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.PrintWriter;
import org.apache.catalina.Container;
import org.apache.catalina.core.StandardContext;
@@ -34,6 +35,28 @@
private static Log log = LogFactory.getLog(StoreContextAppender.class);
+ /**
+ * @param writer
+ * @param indent
+ * @param bean
+ * @param desc
+ * @param attributeName
+ * @param bean2
+ * @param value
+ */
+ protected void printAttribute(PrintWriter writer, int indent, Object bean,
StoreDescription desc, String attributeName, Object bean2, Object value) {
+ if (isPrintValue(bean, bean2, attributeName, desc)) {
+ if(attributeName.equals("docBase")) {
+ if(bean instanceof StandardContext) {
+ String docBase =
((StandardContext)bean).getOriginalDocBase() ;
+ if(docBase != null)
+ value = docBase ;
+ }
+ }
+ printValue(writer, indent, attributeName, value);
+ }
+ }
+
/*
* Print Context Values. <ul><li> Spezial handling to default workDir.
* </li><li> Don't save path at external context.xml </li><li> Don't
@@ -86,9 +109,12 @@
protected File getDocBase(StandardContext context, File appBase) {
File docBase;
- File file = new File(context.getDocBase());
+ String contextDocBase = context.getOriginalDocBase() ;
+ if(contextDocBase == null)
+ contextDocBase = context.getDocBase() ;
+ File file = new File(contextDocBase);
if (!file.isAbsolute())
- file = new File(appBase, context.getDocBase());
+ file = new File(appBase, contextDocBase);
try {
docBase = file.getCanonicalFile();
} catch (IOException e) {
Modified:
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml?rev=394930&r1=394929&r2=394930&view=diff
==============================================================================
---
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml
(original)
+++
tomcat/container/tc5.5.x/modules/storeconfig/src/share/org/apache/catalina/storeconfig/server-registry.xml
Tue Apr 18 05:59:06 2006
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<Registry name="Tomcat" version="5.5.5" encoding="UTF-8" >
+<Registry name="Tomcat" version="5.5.18" encoding="UTF-8" >
<Description
tag="Server"
standard="true"
@@ -55,6 +55,7 @@
<TransientAttribute>engineName</TransientAttribute>
<TransientAttribute>name</TransientAttribute>
<TransientAttribute>publicId</TransientAttribute>
+ <TransientAttribute>originalDocBase</TransientAttribute>
<TransientAttribute>replaceWelcomeFiles</TransientAttribute>
<TransientAttribute>saveConfig</TransientAttribute>
<TransientAttribute>sessionTimeout</TransientAttribute>
Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL:
http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?rev=394930&r1=394929&r2=394930&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Tue Apr 18 05:59:06 2006
@@ -24,6 +24,13 @@
</update>
</changelog>
</subsection>
+ <subsection name="Webapps">
+ <changelog>
+ <fix>
+ <bug>37781</bug>: Make sure that StoreConfig save external referenced
war files at context.xml correct. (pero)
+ </fix>
+ </changelog>
+ </subsection>
</section>
<section name="Tomcat 5.5.17 (yoavs)">
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]