You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by am...@apache.org on 2003/07/29 02:09:43 UTC
cvs commit: jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core ContainerBase.java StandardContext.java StandardWrapper.java
amyroh 2003/07/28 17:09:43
Modified: catalina/src/share/org/apache/catalina/core
ContainerBase.java StandardContext.java
StandardWrapper.java
Log:
Send JSR77 spec required notifications for J2EE mbeans.
Revision Changes Path
1.26 +3 -1 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ContainerBase.java
Index: ContainerBase.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/ContainerBase.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- ContainerBase.java 26 May 2003 22:03:59 -0000 1.25
+++ ContainerBase.java 29 Jul 2003 00:09:42 -0000 1.26
@@ -1461,7 +1461,9 @@
}
public String getObjectName() {
- return oname.toString();
+ if (oname != null) {
+ return oname.toString();
+ } else return null;
}
public String getDomain() {
1.75 +70 -11 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java
Index: StandardContext.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -r1.74 -r1.75
--- StandardContext.java 22 Jul 2003 21:01:26 -0000 1.74
+++ StandardContext.java 29 Jul 2003 00:09:42 -0000 1.75
@@ -85,11 +85,13 @@
import javax.servlet.ServletRequestListener;
import javax.naming.NamingException;
import javax.naming.directory.DirContext;
-import javax.management.ObjectName;
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
import javax.management.InstanceNotFoundException;
+import javax.management.MalformedObjectNameException;
import javax.management.MBeanRegistrationException;
+import javax.management.MBeanServer;
+import javax.management.Notification;
+import javax.management.NotificationBroadcasterSupport;
+import javax.management.ObjectName;
import org.apache.naming.ContextBindings;
import org.apache.naming.resources.BaseDirContext;
import org.apache.naming.resources.FileDirContext;
@@ -155,6 +157,7 @@
super();
pipeline.setBasic(new StandardContextValve());
namingResources.setContainer(this);
+ broadcaster = new NotificationBroadcasterSupport();
}
@@ -199,8 +202,12 @@
* The application available flag for this Context.
*/
private boolean available = false;
-
-
+
+ /**
+ * The broadcaster that sends j2ee notifications.
+ */
+ private NotificationBroadcasterSupport broadcaster = null;
+
/**
* The Locale to character set mapper for this application.
*/
@@ -441,7 +448,11 @@
*/
private int sessionTimeout = 30;
-
+ /**
+ * The notification sequence number.
+ */
+ private long sequenceNumber = 0;
+
/**
* The status code error pages for this web application, keyed by
* HTTP status code (as an Integer).
@@ -640,8 +651,7 @@
new Boolean(this.available));
}
-
-
+
/**
* Return the Locale to character set mapper for this Context.
*/
@@ -4118,6 +4128,15 @@
lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null);
startTime=System.currentTimeMillis();
+
+ // Send j2ee.state.running notification
+ if (this.getObjectName() != null) {
+ Notification notification =
+ new Notification("j2ee.state.running", this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
+
// Close all JARs right away to avoid always opening a peak number
// of files on startup
if (getLoader() instanceof WebappLoader) {
@@ -4198,7 +4217,15 @@
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(BEFORE_STOP_EVENT, null);
-
+
+ // Send j2ee.state.stoping notification
+ if (this.getObjectName() != null) {
+ Notification notification =
+ new Notification("j2ee.state.stoping", this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
+
// Mark this application as unavailable while we shut down
setAvailable(false);
@@ -4262,6 +4289,14 @@
}
+ // Send j2ee.state.stopped notification
+ if (this.getObjectName() != null) {
+ Notification notification =
+ new Notification("j2ee.state.stopped", this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
+
// Reset application context
context = null;
@@ -4305,8 +4340,14 @@
log.debug("resetContext " + oname + " " + mserver);
if( oname != null ) {
Registry.getRegistry().unregisterComponent(oname);
+
+ // Send j2ee.object.deleted notification
+ Notification notification =
+ new Notification("j2ee.object.deleted", this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
oname = null;
- }
+ }
}
@@ -4975,6 +5016,15 @@
if(! Registry.getRegistry().getMBeanServer().isRegistered(oname)) {
controller = oname;
Registry.getRegistry().registerComponent(this, oname, null);
+
+ // Send j2ee.object.created notification
+ if (this.getObjectName() != null) {
+ Notification notification = new Notification(
+ "j2ee.object.created",
+ this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
}
for (Iterator it = wrappers.iterator(); it.hasNext() ; ) {
StandardWrapper wrapper=(StandardWrapper)it.next();
@@ -5040,6 +5090,15 @@
new String[] {"org.apache.catalina.Container"});
}
super.init();
+
+ // Send j2ee.state.starting notification
+ if (this.getObjectName() != null) {
+ Notification notification = new Notification("j2ee.state.starting",
+ this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
+
}
public ObjectName getParentName() throws MalformedObjectNameException {
1.30 +66 -8 jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java
Index: StandardWrapper.java
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapper.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- StandardWrapper.java 22 Jul 2003 18:51:21 -0000 1.29
+++ StandardWrapper.java 29 Jul 2003 00:09:42 -0000 1.30
@@ -81,6 +81,8 @@
import javax.servlet.ServletResponse;
import javax.servlet.SingleThreadModel;
import javax.servlet.UnavailableException;
+import javax.management.Notification;
+import javax.management.NotificationBroadcasterSupport;
import javax.management.ObjectName;
import org.apache.catalina.Container;
@@ -123,6 +125,7 @@
super();
swValve=new StandardWrapperValve();
pipeline.setBasic(swValve);
+ broadcaster = new NotificationBroadcasterSupport();
}
@@ -137,8 +140,12 @@
* servlet is considered permanent.
*/
private long available = 0L;
-
-
+
+ /**
+ * The broadcaster that sends j2ee notifications.
+ */
+ private NotificationBroadcasterSupport broadcaster = null;
+
/**
* The count of allocations that are currently active (even if they
* are for the same instance, as will be true on a non-STM servlet).
@@ -217,6 +224,10 @@
*/
private String runAs = null;
+ /**
+ * The notification sequence number.
+ */
+ private long sequenceNumber = 0;
/**
* The fully qualified servlet class name for this servlet.
@@ -1515,7 +1526,15 @@
* @exception LifecycleException if a fatal error occurs during startup
*/
public void start() throws LifecycleException {
-
+
+ // Send j2ee.state.starting notification
+ if (this.getObjectName() != null) {
+ Notification notification = new Notification("j2ee.state.starting",
+ this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
+
// Start up this component
super.start();
@@ -1526,6 +1545,14 @@
// MOVED TO StandardContext START() METHOD
setAvailable(0L);
+
+ // Send j2ee.state.running notification
+ if (this.getObjectName() != null) {
+ Notification notification =
+ new Notification("j2ee.state.running", this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
}
@@ -1539,7 +1566,15 @@
public void stop() throws LifecycleException {
setAvailable(Long.MAX_VALUE);
-
+
+ // Send j2ee.state.stoping notification
+ if (this.getObjectName() != null) {
+ Notification notification =
+ new Notification("j2ee.state.stoping", this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
+
// Shut down our servlet instance (if it has been initialized)
try {
unload();
@@ -1551,8 +1586,22 @@
// Shut down this component
super.stop();
+ // Send j2ee.state.stopped notification
+ if (this.getObjectName() != null) {
+ Notification notification =
+ new Notification("j2ee.state.stopped", this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
+
if( oname != null ) {
Registry.getRegistry().unregisterComponent(oname);
+
+ // Send j2ee.object.deleted notification
+ Notification notification =
+ new Notification("j2ee.object.deleted", this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
}
}
@@ -1576,6 +1625,15 @@
oname=new ObjectName(onameStr);
controller=oname;
Registry.getRegistry().registerComponent(this, oname, null );
+
+ // Send j2ee.object.created notification
+ if (this.getObjectName() != null) {
+ Notification notification = new Notification(
+ "j2ee.object.created",
+ this.getObjectName(),
+ sequenceNumber++);
+ broadcaster.sendNotification(notification);
+ }
} catch( Exception ex ) {
log.info("Error registering servlet with jmx " + this);
}
---------------------------------------------------------------------
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/share/org/apache/catalina/core
ContainerBase.java StandardContext.java StandardWrapper.java
Posted by Remy Maucherat <re...@apache.org>.
amyroh@apache.org wrote:
> amyroh 2003/07/28 17:09:43
>
> Modified: catalina/src/share/org/apache/catalina/core
> ContainerBase.java StandardContext.java
> StandardWrapper.java
> Log:
> Send JSR77 spec required notifications for J2EE mbeans.
> + new Notification("j2ee.state.stoping", this.getObjectName(),
There's a typo here, I think. Duplicated because you did a cut & paste.
Remy
---------------------------------------------------------------------
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/share/org/apache/catalina/core
ContainerBase.java StandardContext.java StandardWrapper.java
Posted by Amy Roh <am...@apache.org>.
Remy Maucherat wrote:
> amyroh@apache.org wrote:
>
>> amyroh 2003/07/28 17:09:43
>>
>> Modified: catalina/src/share/org/apache/catalina/core
>> ContainerBase.java StandardContext.java
>> StandardWrapper.java
>> Log:
>> Send JSR77 spec required notifications for J2EE mbeans.
>
>
> I like that feature, BTW (wether or not it is part of a spec).
Thanks for catching the typos. :-)
Amy
>
> Remy
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org
>
---------------------------------------------------------------------
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/share/org/apache/catalina/core
ContainerBase.java StandardContext.java StandardWrapper.java
Posted by Remy Maucherat <re...@apache.org>.
amyroh@apache.org wrote:
> amyroh 2003/07/28 17:09:43
>
> Modified: catalina/src/share/org/apache/catalina/core
> ContainerBase.java StandardContext.java
> StandardWrapper.java
> Log:
> Send JSR77 spec required notifications for J2EE mbeans.
I like that feature, BTW (wether or not it is part of a spec).
Remy
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org