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 2006/01/10 16:51:46 UTC

svn commit: r367660 - in /tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/core: StandardContext.java mbeans-descriptors.xml

Author: remm
Date: Tue Jan 10 07:51:42 2006
New Revision: 367660

URL: http://svn.apache.org/viewcvs?rev=367660&view=rev
Log:
- Add JMX configuration capabilities for the ContextConfig classname.

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

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=367660&r1=367659&r2=367660&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 Jan 10 07:51:42 2006
@@ -33,6 +33,7 @@
 import java.util.Stack;
 import java.util.TreeMap;
 
+import javax.management.AttributeNotFoundException;
 import javax.management.ListenerNotFoundException;
 import javax.management.MBeanNotificationInfo;
 import javax.management.MBeanRegistrationException;
@@ -5057,11 +5058,31 @@
                     .registerComponent(host, parentName, null);
                 mserver.invoke(parentName, "init", new Object[] {}, new String[] {} );
             }
-            ContextConfig config = new ContextConfig();
+            
+            // Add the main configuration listener
+            LifecycleListener config = null;
+            try {
+                Object configClassname = null;
+                try {
+                    configClassname = mserver.getAttribute(parentName, "configClass");
+                } catch (AttributeNotFoundException e) {
+                    // Ignore, it's normal a host may not have this optional attribute
+                }
+                if (configClassname != null) {
+                    Class clazz = Class.forName(String.valueOf(configClassname));
+                    config = (LifecycleListener) clazz.newInstance();
+                } else {
+                    config = new ContextConfig();
+                }
+            } catch (Exception e) {
+                log.warn("Error creating ContextConfig for " + parentName, e);
+                throw e;
+            }
             this.addLifecycleListener(config);
 
-            if(log.isDebugEnabled())
-                 log.debug( "AddChild " + parentName + " " + this);
+            if (log.isDebugEnabled()) {
+                log.debug("AddChild " + parentName + " " + this);
+            }
             try {
                 mserver.invoke(parentName, "addChild", new Object[] { this },
                                new String[] {"org.apache.catalina.Container"});

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=367660&r1=367659&r2=367660&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 Jan 10 07:51:42 2006
@@ -248,6 +248,24 @@
                  type="org.apache.catalina.Valve"/>
     </operation>
     
+    <operation   name="addLifecycleListener"
+               description="Add a lifecycle listener to this Context"
+               impact="ACTION"
+               returnType="void">
+      <parameter name="listener"
+                 description="New lifecycle listener to be added"
+                 type="org.apache.catalina.LifecycleListener"/>
+    </operation>
+    
+    <operation   name="removeLifecycleListener"
+               description="Remove a lifecycle listener from this Context"
+               impact="ACTION"
+               returnType="void">
+      <parameter name="listener"
+                 description="New lifecycle listener to be removed"
+                 type="org.apache.catalina.LifecycleListener"/>
+    </operation>
+    
     <operation   name="reload"
                description="Reload the webapplication"
                impact="ACTION"
@@ -384,6 +402,10 @@
                description="The auto deploy flag for this Host"
                type="boolean"/>
                  
+    <attribute name="configClass"
+               description="The configuration class for contexts"
+               type="java.lang.String"/>
+      
     <attribute name="deployOnStartup"
                description="The deploy on startup flag for this Host"
                type="boolean"/>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org