2012/2/3 <[email protected]>:
> Author: markt
> Date: Fri Feb 3 12:08:09 2012
> New Revision: 1240105
>
> URL: http://svn.apache.org/viewvc?rev=1240105&view=rev
> Log:
> Refactor to remove some circular dependencies
>
> Modified:
> tomcat/trunk/java/org/apache/catalina/Container.java
> tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java
> tomcat/trunk/java/org/apache/catalina/core/StandardHost.java
> tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java
> tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java
> tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
> tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java
> tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java
>
> Modified: tomcat/trunk/java/org/apache/catalina/Container.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Container.java?rev=1240105&r1=1240104&r2=1240105&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/Container.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/Container.java Fri Feb 3 12:08:09
> 2012
> @@ -159,6 +159,17 @@ public interface Container extends Lifec
> */
> public ObjectName getObjectName();
>
> +
> + /**
> + * Calculate the key properties string to be added to an object's
> + * {@link ObjectName} to indicate that it is associated with this
> container.
> + *
> + * @return A string suitable for appending to the ObjectName
> + *
> + */
> + public String getMBeanKeyProperties();
> +
> +
> /**
> * Return the Pipeline object that manages the Valves associated with
> * this Container.
>
> 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=1240105&r1=1240104&r2=1240105&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java Fri Feb 3
> 12:08:09 2012
> @@ -45,7 +45,10 @@ import org.apache.catalina.Cluster;
> import org.apache.catalina.Container;
> import org.apache.catalina.ContainerEvent;
> import org.apache.catalina.ContainerListener;
> +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.LifecycleException;
> import org.apache.catalina.LifecycleState;
> @@ -54,9 +57,11 @@ import org.apache.catalina.Manager;
> import org.apache.catalina.Pipeline;
> import org.apache.catalina.Realm;
> import org.apache.catalina.Valve;
> +import org.apache.catalina.Wrapper;
> import org.apache.catalina.connector.Request;
> import org.apache.catalina.connector.Response;
> import org.apache.catalina.mbeans.MBeanUtils;
> +import org.apache.catalina.util.ContextName;
> import org.apache.catalina.util.LifecycleMBeanBase;
> import org.apache.juli.logging.Log;
> import org.apache.juli.logging.LogFactory;
> @@ -1405,6 +1410,44 @@ public abstract class ContainerBase exte
> return MBeanUtils.getDomain(this);
> }
>
> +
> + @Override
> + public String getMBeanKeyProperties() {
> + Container c = this;
> + StringBuilder keyProperties = new StringBuilder();
> + int containerCount = 0;
> +
> + // Work up container hierarchy, add a component to the name for
> + // each container
> + while (!(c instanceof Engine)) {
> + if (c instanceof Wrapper) {
> + keyProperties.append(",servlet=");
> + keyProperties.append(c.getName());
I think that the names should be wrapped by ObjectName.quote().
Here and in similar method implemented in another class below.
I do not think that there is a restriction that forbids ,;:= in a servlet name.
> + } else if (c instanceof Context) {
> + keyProperties.append(",context=");
> + ContextName cn = new ContextName(c.getName());
> + keyProperties.append(cn.getDisplayName());
> + } else if (c instanceof Host) {
> + keyProperties.append(",host=");
> + keyProperties.append(c.getName());
> + } else if (c == null) {
> + // May happen in unit testing and/or some embedding scenarios
> + keyProperties.append(",container");
> + keyProperties.append(containerCount++);
> + keyProperties.append("=null");
> + break;
> + } else {
> + // Should never happen...
> + keyProperties.append(",container");
> + keyProperties.append(containerCount++);
> + keyProperties.append('=');
> + keyProperties.append(c.getName());
> + }
> + c = c.getParent();
> + }
> + return keyProperties.toString();
> + }
> +
> public ObjectName[] getChildren() {
> ObjectName result[]=new ObjectName[children.size()];
> Iterator<Container> it=children.values().iterator();
>
> Modified: tomcat/trunk/java/org/apache/catalina/core/StandardHost.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardHost.java?rev=1240105&r1=1240104&r2=1240105&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/core/StandardHost.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/core/StandardHost.java Fri Feb 3
> 12:08:09 2012
> @@ -35,7 +35,6 @@ import org.apache.catalina.LifecycleExce
> import org.apache.catalina.LifecycleListener;
> import org.apache.catalina.Valve;
> import org.apache.catalina.loader.WebappClassLoader;
> -import org.apache.catalina.mbeans.MBeanUtils;
> import org.apache.catalina.valves.ValveBase;
> import org.apache.tomcat.util.ExceptionUtils;
>
> @@ -825,7 +824,7 @@ public class StandardHost extends Contai
> protected String getObjectNameKeyProperties() {
>
> StringBuilder keyProperties = new StringBuilder("type=Host");
> - keyProperties.append(MBeanUtils.getContainerKeyProperties(this));
> + keyProperties.append(getMBeanKeyProperties());
>
> return keyProperties.toString();
> }
>
> Modified: tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java?rev=1240105&r1=1240104&r2=1240105&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java
> (original)
> +++ tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java Fri Feb
> 3 12:08:09 2012
> @@ -1088,7 +1088,7 @@ public class NamingResources extends Lif
> Object c = getContainer();
> if (c instanceof Container) {
> return "type=NamingResources" +
> - MBeanUtils.getContainerKeyProperties((Container) c);
> + ((Container) c).getMBeanKeyProperties();
> }
> // Server or just unknown
> return "type=NamingResources";
>
> Modified: tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java?rev=1240105&r1=1240104&r2=1240105&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java Fri Feb 3
> 12:08:09 2012
> @@ -1562,6 +1562,7 @@ public class MBeanUtils {
> *
> * @param container The container the object is associated with
> * @return A string suitable for appending to the ObjectName
> + *
> */
> public static String getContainerKeyProperties(Container container) {
>
>
> Modified: tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java?rev=1240105&r1=1240104&r2=1240105&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java Fri Feb 3
> 12:08:09 2012
> @@ -1313,7 +1313,7 @@ public abstract class RealmBase extends
>
> StringBuilder keyProperties = new StringBuilder("type=Realm");
> keyProperties.append(getRealmSuffix());
> -
> keyProperties.append(MBeanUtils.getContainerKeyProperties(container));
> + keyProperties.append(container.getMBeanKeyProperties());
>
> return keyProperties.toString();
> }
>
> Modified: tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java?rev=1240105&r1=1240104&r2=1240105&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java
> (original)
> +++ tomcat/trunk/java/org/apache/catalina/startup/FailedContext.java Fri Feb
> 3 12:08:09 2012
> @@ -35,6 +35,8 @@ import org.apache.catalina.Cluster;
> import org.apache.catalina.Container;
> import org.apache.catalina.ContainerListener;
> import org.apache.catalina.Context;
> +import org.apache.catalina.Engine;
> +import org.apache.catalina.Host;
> import org.apache.catalina.LifecycleException;
> import org.apache.catalina.Loader;
> import org.apache.catalina.Manager;
> @@ -53,6 +55,7 @@ import org.apache.catalina.deploy.Naming
> import org.apache.catalina.deploy.SecurityConstraint;
> import org.apache.catalina.mbeans.MBeanUtils;
> import org.apache.catalina.util.CharsetMapper;
> +import org.apache.catalina.util.ContextName;
> import org.apache.catalina.util.LifecycleMBeanBase;
> import org.apache.juli.logging.Log;
> import org.apache.tomcat.JarScanner;
> @@ -123,6 +126,41 @@ public class FailedContext extends Lifec
>
>
> @Override
> + public String getMBeanKeyProperties() {
> + Container c = this;
> + StringBuilder keyProperties = new StringBuilder();
> + int containerCount = 0;
> +
> + // Work up container hierarchy, add a component to the name for
> + // each container
> + while (!(c instanceof Engine)) {
> + if (c instanceof Context) {
> + keyProperties.append(",context=");
> + ContextName cn = new ContextName(c.getName());
> + keyProperties.append(cn.getDisplayName());
> + } else if (c instanceof Host) {
> + keyProperties.append(",host=");
> + keyProperties.append(c.getName());
> + } else if (c == null) {
> + // May happen in unit testing and/or some embedding scenarios
> + keyProperties.append(",container");
> + keyProperties.append(containerCount++);
> + keyProperties.append("=null");
> + break;
> + } else {
> + // Should never happen...
> + keyProperties.append(",container");
> + keyProperties.append(containerCount++);
> + keyProperties.append('=');
> + keyProperties.append(c.getName());
> + }
> + c = c.getParent();
> + }
> + return keyProperties.toString();
> + }
> +
> +
> + @Override
> protected String getObjectNameKeyProperties() {
>
> StringBuilder keyProperties =
>
> Modified: tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java?rev=1240105&r1=1240104&r2=1240105&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java Fri Feb 3
> 12:08:09 2012
> @@ -266,7 +266,7 @@ public abstract class ValveBase extends
>
> Container container = getContainer();
>
> - name.append(MBeanUtils.getContainerKeyProperties(container));
> + name.append(container.getMBeanKeyProperties());
>
> int seq = 0;
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]