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 2013/10/07 17:40:18 UTC
svn commit: r1529976 - in /tomcat/sandbox: storeconfig6/trunk/
storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/
storeconfig6/trunk/src/main/resources/org/apache/catalina/storeconfig/
storeconfig7/trunk/ storeconfig7/trunk/src/main/java...
Author: remm
Date: Mon Oct 7 15:40:18 2013
New Revision: 1529976
URL: http://svn.apache.org/r1529976
Log:
Port fixes to storeconfig for TC 6 and 7.
Modified:
tomcat/sandbox/storeconfig6/trunk/pom.xml
tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java
tomcat/sandbox/storeconfig6/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml
tomcat/sandbox/storeconfig7/trunk/pom.xml
tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StandardContextSF.java
tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java
tomcat/sandbox/storeconfig7/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml
Modified: tomcat/sandbox/storeconfig6/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig6/trunk/pom.xml?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig6/trunk/pom.xml (original)
+++ tomcat/sandbox/storeconfig6/trunk/pom.xml Mon Oct 7 15:40:18 2013
@@ -27,7 +27,7 @@
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat6-storeconfig</artifactId>
- <version> 0.0.1.Alpha2-SNAPSHOT</version>
+ <version> 0.0.1.Alpha3-SNAPSHOT</version>
<name>Store Config</name>
<description>Configuration storage for Apache Tomcat 6</description>
Modified: tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java (original)
+++ tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java Mon Oct 7 15:40:18 2013
@@ -106,10 +106,6 @@ public class ConnectorStoreAppender exte
if (value.equals("null")) {
continue; // "null" values are not persisted
}
- // Convert IP addresses to strings so they will be persisted
- if (value instanceof InetAddress) {
- value = ((InetAddress) value).getHostAddress();
- }
if (!isPersistable(value.getClass())) {
continue;
}
Modified: tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java (original)
+++ tomcat/sandbox/storeconfig6/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java Mon Oct 7 15:40:18 2013
@@ -21,6 +21,7 @@ import java.beans.IndexedPropertyDescrip
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.io.PrintWriter;
+import java.net.InetAddress;
import java.util.Iterator;
import org.apache.catalina.deploy.ResourceBase;
@@ -41,7 +42,7 @@ public class StoreAppender {
Integer.TYPE, Boolean.class, Boolean.TYPE, Byte.class, Byte.TYPE,
Character.class, Character.TYPE, Double.class, Double.TYPE,
Float.class, Float.TYPE, Long.class, Long.TYPE, Short.class,
- Short.TYPE, };
+ Short.TYPE, InetAddress.class };
/**
* print the closing tag
@@ -334,6 +335,10 @@ public class StoreAppender {
*/
public void printValue(PrintWriter writer, int indent, String name,
Object value) {
+ // Convert IP addresses to strings so they will be persisted
+ if (value instanceof InetAddress) {
+ value = ((InetAddress) value).getHostAddress();
+ }
if (!(value instanceof String)) {
value = value.toString();
}
@@ -383,7 +388,7 @@ public class StoreAppender {
protected boolean isPersistable(Class clazz) {
for (int i = 0; i < persistables.length; i++) {
- if (persistables[i] == clazz) {
+ if (persistables[i] == clazz || persistables[i].isAssignableFrom(clazz)) {
return (true);
}
}
Modified: tomcat/sandbox/storeconfig6/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig6/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig6/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml (original)
+++ tomcat/sandbox/storeconfig6/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml Mon Oct 7 15:40:18 2013
@@ -186,6 +186,7 @@
<TransientChild>org.apache.catalina.startup.HostConfig</TransientChild>
<TransientChild>org.apache.catalina.startup.TldConfig</TransientChild>
<TransientChild>org.apache.catalina.core.StandardHost$MemoryLeakTrackingListener</TransientChild>
+ <TransientChild>org.apache.catalina.core.StandardEngine$AccessLogListener</TransientChild>
</Description>
<Description
id="org.apache.catalina.core.StandardServer.[ServerLifecycleListener]"
Modified: tomcat/sandbox/storeconfig7/trunk/pom.xml
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig7/trunk/pom.xml?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig7/trunk/pom.xml (original)
+++ tomcat/sandbox/storeconfig7/trunk/pom.xml Mon Oct 7 15:40:18 2013
@@ -27,7 +27,7 @@
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat7-storeconfig</artifactId>
- <version>0.0.1.Alpha2-SNAPSHOT</version>
+ <version>0.0.1.Alpha3-SNAPSHOT</version>
<name>Store Config</name>
<description>Configuration storage for Apache Tomcat 7</description>
Modified: tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java (original)
+++ tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java Mon Oct 7 15:40:18 2013
@@ -103,10 +103,6 @@ public class ConnectorStoreAppender exte
if (value == null) {
continue; // Null values are not persisted
}
- // Convert IP addresses to strings so they will be persisted
- if (value instanceof InetAddress) {
- value = ((InetAddress) value).getHostAddress();
- }
if (!isPersistable(value.getClass())) {
continue;
}
Modified: tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StandardContextSF.java
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StandardContextSF.java?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StandardContextSF.java (original)
+++ tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StandardContextSF.java Mon Oct 7 15:40:18 2013
@@ -31,6 +31,7 @@ import javax.naming.directory.DirContext
import org.apache.catalina.Container;
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.LifecycleListener;
@@ -39,8 +40,11 @@ import org.apache.catalina.Manager;
import org.apache.catalina.Realm;
import org.apache.catalina.Valve;
import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.core.StandardHost;
+import org.apache.catalina.core.ThreadLocalLeakPreventionListener;
import org.apache.catalina.deploy.ApplicationParameter;
import org.apache.catalina.deploy.NamingResources;
+import org.apache.catalina.util.ContextName;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.naming.resources.ProxyDirContext;
@@ -85,6 +89,19 @@ public class StandardContextSF extends S
return;
}
} else if (desc.isExternalOnly()) {
+ // Set a configFile so that the configuration is actually saved
+ Context context = ((StandardContext) aContext);
+ StandardHost host = (StandardHost) context.getParent();
+ File configBase = getConfigBaseFile(host);
+ ContextName cn = new ContextName(context.getName());
+ String baseName = cn.getBaseName();
+ File xml = new File(configBase, baseName + ".xml");
+ context.setConfigFile(xml.toURI().toURL());
+ if (desc.isBackup())
+ storeWithBackup((StandardContext) aContext);
+ else
+ storeContextSeparate(aWriter, indent,
+ (StandardContext) aContext);
return;
}
}
@@ -94,6 +111,35 @@ public class StandardContextSF extends S
}
/**
+ * Return the Host config base path.
+ */
+ protected static File getConfigBaseFile(StandardHost host) {
+ String path = null;
+ if (host.getXmlBase() != null) {
+ path = host.getXmlBase();
+ } else {
+ StringBuilder xmlDir = new StringBuilder("conf");
+ Container parent = host.getParent();
+ if (parent instanceof Engine) {
+ xmlDir.append('/');
+ xmlDir.append(parent.getName());
+ }
+ xmlDir.append('/');
+ xmlDir.append(host.getName());
+ path = xmlDir.toString();
+ }
+ File file = new File(path);
+ File base = new File(System.getProperty(Globals.CATALINA_BASE_PROP));
+ if (!file.isAbsolute())
+ file = new File(base,path);
+ try {
+ return file.getCanonicalFile();
+ } catch (IOException e) {
+ return file;
+ }
+ }
+
+ /**
* Store a Context without backup add separate file or when configFile =
* null a aWriter.
*
@@ -245,7 +291,13 @@ public class StandardContextSF extends S
if (context instanceof Lifecycle) {
LifecycleListener listeners[] = context
.findLifecycleListeners();
- storeElementArray(aWriter, indent, listeners);
+ ArrayList<LifecycleListener> listenersArray = new ArrayList<LifecycleListener>();
+ for (LifecycleListener listener : listeners) {
+ if (!(listener instanceof ThreadLocalLeakPreventionListener)) {
+ listenersArray.add(listener);
+ }
+ }
+ storeElementArray(aWriter, indent, listenersArray.toArray());
}
// Store nested <Valve> elements
Valve valves[] = context.getPipeline().getValves();
@@ -356,7 +408,7 @@ public class StandardContextSF extends S
"conf/web.xml").getCanonicalPath();
String confHostDefault = new File(configBase, "context.xml.default")
.getCanonicalPath();
- String configFile = new File(context.getConfigFile().toURI()).getCanonicalPath();
+ String configFile = (context.getConfigFile() != null ? new File(context.getConfigFile().toURI()).getCanonicalPath() : null);
String webxml = "WEB-INF/web.xml" ;
List resource = new ArrayList();
Modified: tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java (original)
+++ tomcat/sandbox/storeconfig7/trunk/src/main/java/org/apache/catalina/storeconfig/StoreAppender.java Mon Oct 7 15:40:18 2013
@@ -21,6 +21,7 @@ import java.beans.IndexedPropertyDescrip
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.io.PrintWriter;
+import java.net.InetAddress;
import java.util.Iterator;
import org.apache.catalina.deploy.ResourceBase;
@@ -41,7 +42,7 @@ public class StoreAppender {
Integer.TYPE, Boolean.class, Boolean.TYPE, Byte.class, Byte.TYPE,
Character.class, Character.TYPE, Double.class, Double.TYPE,
Float.class, Float.TYPE, Long.class, Long.TYPE, Short.class,
- Short.TYPE, };
+ Short.TYPE, InetAddress.class };
/**
* print the closing tag
@@ -331,6 +332,10 @@ public class StoreAppender {
*/
public void printValue(PrintWriter writer, int indent, String name,
Object value) {
+ // Convert IP addresses to strings so they will be persisted
+ if (value instanceof InetAddress) {
+ value = ((InetAddress) value).getHostAddress();
+ }
if (!(value instanceof String)) {
value = value.toString();
}
@@ -380,7 +385,7 @@ public class StoreAppender {
protected boolean isPersistable(Class clazz) {
for (int i = 0; i < persistables.length; i++) {
- if (persistables[i] == clazz) {
+ if (persistables[i] == clazz || persistables[i].isAssignableFrom(clazz)) {
return (true);
}
}
Modified: tomcat/sandbox/storeconfig7/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml
URL: http://svn.apache.org/viewvc/tomcat/sandbox/storeconfig7/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml?rev=1529976&r1=1529975&r2=1529976&view=diff
==============================================================================
--- tomcat/sandbox/storeconfig7/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml (original)
+++ tomcat/sandbox/storeconfig7/trunk/src/main/resources/org/apache/catalina/storeconfig/server-registry.xml Mon Oct 7 15:40:18 2013
@@ -188,7 +188,7 @@
<TransientChild>org.apache.catalina.startup.TldConfig</TransientChild>
<TransientChild>org.apache.catalina.core.StandardHost$MemoryLeakTrackingListener</TransientChild>
<TransientChild>org.apache.catalina.connector.MapperListener</TransientChild>
- <TransientChild>org.apache.catalina.core.ThreadLocalLeakPreventionListener</TransientChild>
+ <TransientChild>org.apache.catalina.core.StandardEngine$AccessLogListener</TransientChild>
</Description>
<Description
id="org.apache.catalina.core.StandardServer.[ServerLifecycleListener]"
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org