costin 2003/01/10 23:08:33
Modified: coyote/src/java/org/apache/coyote BaseHook.java
Log:
Added NotificationListener.
JMX notifications are not as flexible - I really don't know
what is the best solution here. Less flexibility might be very
good - it can keep things simpler.
I'll add a BaseNotification to modeler - with an int code,
notes, etc. And then I'll try to find a way to use standard
notifications side-by-side with the native mechanism ( ActionCode ).
Opinions ?? I'm not very sure...
Revision Changes Path
1.2 +26 -4
jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/BaseHook.java
Index: BaseHook.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/BaseHook.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BaseHook.java 10 Jan 2003 22:36:43 -0000 1.1
+++ BaseHook.java 11 Jan 2003 07:08:33 -0000 1.2
@@ -61,6 +61,8 @@
import javax.management.MBeanRegistration;
import javax.management.ObjectName;
import javax.management.MBeanServer;
+import javax.management.NotificationListener;
+import javax.management.Notification;
/**
@@ -69,21 +71,33 @@
* @author Remy Maucherat
* @author Costin Manolache
*/
-public class BaseHook implements ActionHook, MBeanRegistration {
+public class BaseHook
+ implements ActionHook, MBeanRegistration, NotificationListener
+ {
protected BaseHook next;
/**
+ * XXX DO WE REALLY NEED THIS ? handleNotification should be enough !!
+ *
* Send an action to the connector.
* Both recursive and iterative invocation is possible - the
* hook may call itself the next hook ( like catalina ) or the
* controller may call the next.
- *
+ *
+ * The call pattern for this is:
+ * while( hook!=null ) {
+ * hook=action( code, param );
+ * }
+ * If the hooks has special needs - it can call next itself and decide
+ * to return null or whatever the next hook returned.
+ *
+ * The reason for iterative calls - smaller stacks ( and stack traces ).
+ *
* @param param Action parameter
* @return A hook that can be executed next.
*/
public BaseHook action(int code, Object param) {
- if( next==null ) return next;
- return next.action( code, param );
+ return next;
};
/** Backward compat
@@ -134,5 +148,13 @@
public void postDeregister() {
}
+ // -------------------- Notification listener --------------------
+
+ public void handleNotification(Notification notification, Object handback) {
+ // we need a special CoyoteNotification that will include the code
+ // and param.
+
+ // It would be better to use a generic class in modeler.
+ }
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>