<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-13556721</id><updated>2008-07-15T14:05:03.904+09:30</updated><title type="text">The Buttso Blathers</title><link rel="alternate" type="text/html" href="http://buttso.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default?start-index=26&amp;max-results=25&amp;redirect=false" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/posts/default" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>104</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><geo:lat>-34.929</geo:lat><geo:long>138.601</geo:long><link rel="license" type="text/html" href="http://creativecommons.org/licenses/by/2.0/" /><logo>http://creativecommons.org/images/public/somerights20.gif</logo><link rel="self" href="http://feeds.feedburner.com/TheButtsoBlathers" type="application/atom+xml" /><entry><id>tag:blogger.com,1999:blog-13556721.post-5403747627222333077</id><published>2008-07-15T13:42:00.000+09:30</published><updated>2008-07-15T14:05:03.920+09:30</updated><title type="text">Configuring a dataSource for MySQL using EM</title><content type="html">If you try to use the EM console to configure an OC4J datasource that accesses a MySQL database, then you may run into a problem with EM reporting that the class you are specifying can't be found.&lt;br /&gt;&lt;br /&gt;This troubles you somewhat because you've taken the usual approach of putting 3rd party libraries to be shared into the &lt;span style="font-weight: bold;"&gt;applib &lt;/span&gt;directory of the OC4J instance -- so the classes should be available!&lt;br /&gt;&lt;br /&gt;Well the problem here is that when the datasource is being constructed by EM, the classloader that is used is one that is obtained from the &lt;span style="font-weight: bold;"&gt;ascontrol &lt;/span&gt;application.  And if you look carefully at the configuration of the ascontrol application, you'll see that it specifically removes the global.libraries shared-library from its list of imports.  And guess what -- the &lt;span style="font-weight: bold;"&gt;global.libraries&lt;/span&gt; shared-library is defined with a single code-source -- that being the contents of the applib directory.  Therefore the ascontrol application does not see the mysqlconnector.jar file you put into the applib directory.  At runtime OC4J would see it, so if you manually add the datasource definition it'll work fine -- but using EM to construct the MySQL datasource requires it to see the jar file.&lt;br /&gt;&lt;br /&gt;The change to make this work is quite easy and you have few options:&lt;br /&gt;&lt;br /&gt;1. You can edit the orion-application.xml file of the deployed ascontrol application, and comment out the line that removes the importing of the global.libraries.xml file:&lt;pre&gt;&lt;br /&gt;&amp;lt;imported-shared-libraries&amp;gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;--&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &amp;lt;remove-inherited name="global.libraries"/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   --&amp;gt;&lt;/span&gt;&lt;br /&gt;  &amp;lt;import-shared-library name="oracle.xml.security"/&amp;gt;&lt;br /&gt;  &amp;lt;import-shared-library name="oracle.xml.security"/&amp;gt; &lt;br /&gt;&amp;lt;/imported-shared-libraries&amp;gt;&lt;br /&gt;&lt;/pre&gt;2. You continue to use the convenience of &lt;span style="font-weight: bold;"&gt;applib &lt;/span&gt;to make the driver available container wide, but instead of reconfiguring the ascontrol application to not remove the global.libraries, you just drop the mysql-connector.jar file into the WEB-INF/lib directory of the ascontrol application, so it is able to locate the specified class from its own set of libraries.  To to that, copy the mysql-connector.jar file into &lt;span style="font-weight: bold;"&gt;$ORACLE_HOME/j2ee/home/applications/ascontrol/ascontrol/web-inf/lib&lt;/span&gt; directory.  And then restart either the ascontrol application, or the OC4J instance itself to ensure the new library is visible.&lt;br /&gt;&lt;br /&gt;3. Instead of using the convenience of the applib directory, you can deploy the MySQL connector as a named/versioned shared-library and then specifically import it into applications where you need it.  This would for example need to be done in the application you deploy that needs to connect to MySQL and where corresponding datasource is defined, and also in the ascontrol application itself. .  To do the latter, since you can't use EM to configure itself, you'd need to edit the &lt;span style="font-weight: bold;"&gt;$ORACLE_HOME/j2ee/home/application-deployments/ascontrol/orion-application.xml &lt;/span&gt;file and manually add the import statement to pull in the MySQL shared-library:&lt;br /&gt;&lt;pre&gt;  &amp;lt;imported-shared-libraries&amp;gt;&lt;br /&gt;  &amp;lt;remove-inherited name="global.libraries"/&amp;gt;&lt;br /&gt;  &amp;lt;import-shared-library name="oracle.xml.security"/&amp;gt;&lt;br /&gt;  &amp;lt;import-shared-library name="oracle.xml.security"/&amp;gt;&lt;br /&gt;  &amp;lt;import-shared-library name="mysql.connector"/&amp;gt; &lt;br /&gt;&amp;lt;/imported-shared-libraries&amp;gt;&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/TheButtsoBlathers?a=h4z8jJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/TheButtsoBlathers?i=h4z8jJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/335747032" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/TheButtsoBlathers/~3/335747032/configuring-datasource-for-mysql-using.html" title="Configuring a dataSource for MySQL using EM" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=5403747627222333077&amp;isPopup=true" title="0 Comments" /><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/5403747627222333077/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5403747627222333077" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5403747627222333077" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://buttso.blogspot.com/2008/07/configuring-datasource-for-mysql-using.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-13556721.post-5353158093149552441</id><published>2008-07-02T10:35:00.001+09:30</published><updated>2008-07-03T10:36:32.556+09:30</updated><title type="text">Using OC4J War File Manifest.mf Class-Path</title><content type="html">There seemed to be some confusion around this area, so I posted a small example of using Manifest.mf Class-Path settings from a WAR file to OTN yesterday.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/tech/java/oc4j/10130/how_to/webapp-manifest-loading.zip"&gt;http://www.oracle.com/technology/tech/java/oc4j/10130/how_to/webapp-manifest-loading.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This example was build and tested against an OC4J 10.1.3 instance -- however it should work in the same way against 10.1.2 and 9.0.x releases.  The app itself won't deploy to the earlier versions since the deployment files are using XSD.  However the principle should be the same.&lt;br /&gt;&lt;br /&gt;The use of OC4J 10.1.3 enables you to run classloader queries to observe the loader tree, see where code-sources are being loaded from, see which code-source classes are located in, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update: 3-July-2008&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;By removing any XSD elements from the deployment descriptors, the application referenced above can be rebuilt and successfully deployed to OC4J 10.1.2, whereupon the application works in exactly the same way as it does on 10.1.3.  The only difference is in the output of the ClassLoader().toString method.&lt;br /&gt;&lt;br /&gt;When running in 10.1.2, the output from the testservlet and testclass.jsp pages looks is shown below.  In the output, you can see that the code-sources foobar.jar and myservlet.jar are loaded from the root level of the application deployment directory, as configured in the META-INF/MANIFEST.MF file; whereas that the simple.jar is loaded from the WEB-INF/lib directory of the web application as expected.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note: &lt;/span&gt;the output has been formatted slightly to make it more presentable in this page view.&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;"&gt;Test Class Access&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Class Loader&lt;br /&gt;&lt;br /&gt;sab.demo.warmanifest.beans.Foo  &lt;br /&gt;[ClassLoader: [&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\foobar.jar archive],&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\myservlet.jar archive],&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\webapp\WEB-INF\lib\simple.jar archive]&lt;br /&gt;]]&lt;br /&gt;&lt;br /&gt;sab.demo.warmanifest.beans.Bar&lt;br /&gt;[ClassLoader: [&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\foobar.jar archive],&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\myservlet.jar archive],&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\webapp\WEB-INF\lib\simple.jar archive]&lt;br /&gt;]]&lt;br /&gt;&lt;br /&gt;sab.demo.warmanifest.beans.Simple  &lt;br /&gt;[ClassLoader: [&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\foobar.jar archive],&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\myservlet.jar archive],&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\webapp\WEB-INF\lib\simple.jar archive]&lt;br /&gt;]]&lt;br /&gt;&lt;br /&gt;sab.demo.warmanifest.web.TestServlet  &lt;br /&gt;[ClassLoader: [&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\foobar.jar archive],&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\myservlet.jar archive],&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\webapp\WEB-INF\lib\simple.jar archive]&lt;br /&gt;]]&lt;br /&gt;&lt;br /&gt;org.apache.log4j.Logger  &lt;br /&gt;[ClassLoader: [&lt;br /&gt;[D:\java\oc4j-1012\j2ee\home\applications\webapp-manifest-loading\log4j-1.2.15.jar archive]&lt;br /&gt;]]&lt;br /&gt;&lt;br /&gt;oracle.jdbc.pool.OracleDataSource  &lt;br /&gt;sun.misc.Launcher$AppClassLoader@a39137&lt;br /&gt;&lt;br /&gt;javax.servlet.http.HttpServlet  &lt;br /&gt;sun.misc.Launcher$AppClassLoader@a39137&lt;br /&gt;&lt;/pre&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/TheButtsoBlathers?a=biXzGJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/TheButtsoBlathers?i=biXzGJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/TheButtsoBlathers/~4/324490904" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/TheButtsoBlathers/~3/324490904/using-oc4j-war-file-manifestmf-class.html" title="Using OC4J War File Manifest.mf Class-Path" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=13556721&amp;postID=5353158093149552441&amp;isPopup=true" title="0 Comments" /><link rel="replies" type="application/atom+xml" href="http://buttso.blogspot.com/feeds/5353158093149552441/comments/default" title="Post Comments" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5353158093149552441" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/13556721/posts/default/5353158093149552441" /><author><name>Buttso</name><uri>http://www.blogger.com/profile/03968454565733104381</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://buttso.blogspot.com/2008/07/using-oc4j-war-file-manifestmf-class.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-13556721.post-4921708062952160140</id><published>2008-06-30T16:08:00.003+09:30</published><updated>2008-07-03T14:57:51.151+09:30</updated><title type="text">Application MBean NotificationListeners</title><content type="html">And another example from an OTN question.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=2619654&amp;amp;tstart=0#2619654"&gt;http://forums.oracle.com/forums/thread.jspa?messageID=2619654&amp;amp;tstart=0#2619654&lt;/a&gt;&lt;br /&gt;&lt;quote&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;I'm using OC4J 10.1.3 and I see, in Oracle MBean browser, that a mbean is created and registered each time an EAR is deployed :&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;"oc4j:j2eeType=J2EEApplication,name=&lt;/span&gt;&lt;appname&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;,J2EEServer=standalone"&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;I tried to registerer to notifications of this mbean (j2ee.state.starting and j2ee.state.stopping) using web console. It works, I can see notifications in web console.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Now, I would to like to registered to these notifications in my application. I don't find sample in oc4j documentation on how doing this.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;Has anybody already use this functionality ?&lt;/span&gt;&lt;/appname&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 03-July-2008&lt;/span&gt;: I posted an example of this on the OC4J How-To page.  The zip file is available here: &lt;/quote&gt;&lt;a href="http://www.oracle.com/technology/tech/java/oc4j/10130/how_to/application-jmx-listener.zip"&gt;http://www.oracle.com/technology/tech/java/oc4j/10130/how_to/application-jmx-listener.zip&lt;/a&gt;.&lt;br /&gt;&lt;quote&gt;&lt;br /&gt;The short answer is that you can register for notifications from any of the OC4J MBeans using the standard JMX API -- no worries at all.&lt;br /&gt;&lt;br /&gt;However there are a couple of tricks to keep in mind when working with OC4J.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Trick 1&lt;/span&gt; : from within OC4J, an application has restricted access to the OC4J MBean set.  We provide applications with a proxy to the MBeanServer that permits access to only the MBeans that the application itselt registers.  Or in other words, it prohibits applications from seeing and using the OC4J MBeans when using the MBeanServerFactory.getMBeanServer() call from within the application code.  There are basically two ways to deal with this.&lt;br /&gt;&lt;br /&gt;I. You can disable the security aspect of the proxy.  This can be done by setting the Java System property "oc4j.jmx.security.proxy.off" when OC4J is launched.  Beware however that this applies to the entire container, so any deployed applications will have access to the OC4J MBeans.  Beware.&lt;br /&gt;&lt;br /&gt;II. You can establish what amounts to a loopback remote connection using the JMX Remote API.  When doing this, you can authenticate yourself as a user from within the oc4j-app-administrators role, and thus the proxy you receive does not have any restrictions placed on it.  The downside to doing this is that the connection must be constructed using the URL and username/password of the respective user you want to connect as.  Therefore you are dealing with ports and password visibility issues.&lt;br /&gt;&lt;br /&gt;With that understood, lets assume that you now have access to the OC4J MBeans using JMXConnector.&lt;br /&gt;&lt;br /&gt;A JMX listener is simply a class that implements the &lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/NotificationListener.html"&gt;javax.management.NotificationListener&lt;/a&gt; interface.  You create a class that implements this interface, and then you register your interest with the MBeanServer for receiving Notifications that are emitted from a specific MBean using its &lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/javax/management/MBeanServerConnection.html#addNotificationListener%28javax.management.ObjectName,%20javax.management.NotificationListener,%20javax.management.NotificationFilter,%20java.lang.Object%29"&gt;addNotificationListener&lt;/a&gt; method.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Trick 2&lt;/span&gt;: in order to receive Notifications from an MBean, the connection you used to register with the MBeanServer must be maintained.  If the connection closes, the link between the MBean and your Listener is gone.  Therefore when you are designing your application, you need to use a model that allows the connection to be maintained across requests, but at the same time, you need to do it such that the connections do not place an undue resource tax on the operation of the server.   You probably don't want to store a JMXConnector in each HttpSession of each client for example.&lt;br /&gt;&lt;br /&gt;As  a demonstration of these tricks, I have pulled together a demo application to show what an example  may look like.&lt;br /&gt;&lt;br /&gt;Points of Interest:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;JMXListenerBean &lt;/span&gt;-- this JavaBean implements the NotificationListener interface.  When Notifications are received they are stored in a List maintained by the JavaBean.  This enables the Notifications to be retrieved and rendered in a client of some form.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;GlobalListenerMap&lt;/span&gt; -- the application uses one global class -- GlobalListenerMap -- to create and maintain the connection to the MBeanServer.  This class is also where the individual MBean listeners are registered and stored for each client.  The class is created and placed in the ServletContext by a ServletContextListener; it is also closed when the ServletContext  is destroyed, where it closes its JMXConnector.  When a new browser client asks to register a listener with a specific MBean, a servlet creates the actual listening class and submits it to the GlobalListenerMap to register with the MBeanServer.   The GlobalListenerMap then stores the listener in List, which is then stored in a Map using the client sessionId as the key.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ServletContextListener&lt;/span&gt; -- a ServletContextListener is used to manage the GlobalListenerMap.  When the ServletContext is created, it creates  an instance of the GlobalListenerMap and places it in the ServletContext to be shared by all the artifacts of the application.  When the ServletContext is destroyed, it closes down the GlobalListenerMap allowing it to close its JMXConnector.  This class also implements the HttpSessionListener interface, so that as a client session ends/is invalidated, any listeners the client had previously registered are removed from the GlobalListenerMap.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Front End &lt;/span&gt;-- a simple front end to allow a client to register interest with an MBean is provided, and then view the notifications.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;JMXListenerBean.java&lt;pre&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;package&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sab&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;demo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmx&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;text&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;DateFormat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;util&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.*;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;util&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logging&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;management&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.*;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* This JavaBean acts as a JMX NotificationListener.  It&lt;br /&gt;* gets populated with an MBean name and it can then be registered&lt;br /&gt;* with a given MBeanServer.  This is quick and dirty, it does no&lt;br /&gt;* validate of the MBean name, etc.&lt;br /&gt;*&lt;br /&gt;* Any notifications this listener receives are stored in both the messages&lt;br /&gt;* and notifications lists -- these can then be used on the client side as&lt;br /&gt;* desired.&lt;br /&gt;*&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;implements&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;NotificationListener&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getLogger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getClass&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getCanonicalName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ArrayList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;messages&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ArrayList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ArrayList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Notification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;notifications&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ArrayList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Notification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;final&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Date&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;created&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Date&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;final&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;DateFormat&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;DF&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;DateFormat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getDateTimeInstance&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;info&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"JMXListenerBean: constructor"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Register this listener with the given MBeanServer.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; mbs - MBeanServerConnection&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     *&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @throws&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; Exception&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;register&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;MBeanServerConnection&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mbs&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;info&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"registering mbean:"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;equalsIgnoreCase&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;||&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throw&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"MBean name must be set before calling register"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;on&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;mbs&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;addNotificationListener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;on&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;printStackTrace&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throw&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;unregister&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;MBeanServerConnection&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mbs&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;info&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"unregistering mbean:"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;""&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;equalsIgnoreCase&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;||&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throw&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"MBean name must be set before calling register"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;on&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;mbs&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;removeNotificationListener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;on&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;printStackTrace&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throw&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* This is where the notifications are delivered and handled.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; notification&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     *&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; handback&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;handleNotification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Notification&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;notification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;br /&gt;                          &lt;span style="color: rgb(0, 0, 0);"&gt;Object&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;handback&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;info&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"handleNotification"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// Add the notification to the list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;notifications&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;add&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;notification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// Make a string from the notification&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;messages&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;add&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;format&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"[%s]\t%s\t%s"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 0);"&gt;DF&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;format&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Date&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;notification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getTimeStamp&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()))&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 0);"&gt;notification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getType&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(0, 0, 0);"&gt;notification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getMessage&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()))&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;setMBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mbean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mbean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getMBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Get the list of messages.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; List of messages as Strings&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ArrayList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getMessages&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;messages&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Get the list of raw notifications&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; List of notifications&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ArrayList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Notification&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getNotifications&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;notifications&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;@&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Override&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;toString&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;GlobalListenerMap.java&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;package&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sab&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;demo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmx&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;map&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sql&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Date&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;text&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;DateFormat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;util&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.*;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;util&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logging&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;management&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.*;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;management&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;remote&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.*;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sab&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;demo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmx&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* This class acts as a manager for JMXListenerBeans, and the OC4J MBeanServer&lt;br /&gt;* that they are registered with.  It enables an application to signal interest&lt;br /&gt;* for notifications from an MBean, whereupon it handles the registration of the&lt;br /&gt;* listener with the MBean.  It maintains the JMXConnection while the class is&lt;br /&gt;* in use, providing a route for the MBeanServer to get the notifications from&lt;br /&gt;* the MBean to the listener.&lt;br /&gt;*&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Date&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;created&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;HashMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;List&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;HashMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;List&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Object&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;MUTEX&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Object&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;boolean&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;eagerCloseConnection&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;final&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;URL&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 51, 204);"&gt;"service:jmx:rmi://localhost:23791"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;final&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;USERNAME&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 51, 204);"&gt;"oc4jadmin"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;final&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;PASSWORD&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 51, 204);"&gt;"welcome1"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;final&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getLogger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getClass&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 102, 0);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;boolean&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;eagerCloseConnection&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;eagerCloseConnection&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;eagerCloseConnection&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;created&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Date&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;System&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;currentTimeMillis&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;synchronized&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;addListenerForSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mbeanName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;setMBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mbeanName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;addListenerForSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;synchronized&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;addListenerForSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;List&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listeners&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;get&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listeners&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;listeners&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ArrayList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getJMXConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;MBeanServerConnection&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mbs&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getMBeanServerConnection&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;register&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mbs&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listeners&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;add&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;put&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listeners&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;List&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getListenerListForSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;get&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;synchronized&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;removeListenerListForSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;   &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;List&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listeners&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;get&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// Unregister any listeners this session had established&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listeners&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;unregister&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getMBeanServerConnection&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;e&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(128, 128, 128);"&gt;// TODO: handle unregister errors gracefully, ignore for now&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// Now remove the session from the list&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;remove&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// Eaglerly close the connection if configured to do so&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;eagerCloseConnection&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;size&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;close&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 102, 0);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(128, 128, 128);"&gt;// Ignore the still registered error&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Performs a shutdown on the listener map, will throw an exception if there&lt;br /&gt;* are listeners still registered.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @throws&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; Exception&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;shutdown&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// care&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;close&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 102, 0);"&gt;true&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;shutdownDontCare&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// don't care&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;close&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(153, 102, 0);"&gt;false&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Close the GlobalMapListener down.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; care -- whether to care if there are still registered listeners.&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     *&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @throws&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; Exception&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;synchronized&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;close&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;boolean&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;care&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;care&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;size&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;!=&lt;/span&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throw&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"Can't close myself as listeners are still registered"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;clear&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;!=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;close&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Get a JMXConnector using the hardcoded URL, USERNAME, PASSWORD&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     *&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @throws&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; Exception&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getJMXConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getJMXConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;URL&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;USERNAME&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;PASSWORD&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Get a JMXConnector using the supplied parameters.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; url&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     *&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; username&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     *&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; password&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     *&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; JMXConnector&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     *&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @throws&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; Exception&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getJMXConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;url&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;br /&gt;                               &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;throws&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;jmxcon&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// If not, create one and store it for future use.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXServiceURL&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;jmxurl&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXServiceURL&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;url&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Hashtable&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;credentials&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Hashtable&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;credentials&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;put&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"login"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;username&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;credentials&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;put&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"password"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;password&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// Properties required to use the OC4J ORMI protocol&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Hashtable&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;env&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Hashtable&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;env&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;put&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXConnectorFactory&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PROTOCOL_PROVIDER_PACKAGES&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;  &lt;span style="color: rgb(0, 51, 204);"&gt;"oracle.oc4j.admin.jmx.remote"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;env&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;put&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CREDENTIALS&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;credentials&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// Get a connection&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmxcon&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;JMXConnectorFactory&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;newJMXConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmxurl&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;env&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmxcon&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;connect&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;jmxcon&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Just print out some debug messages&lt;br /&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;debug&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fine&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"GlobalListenerMap: created "&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;br /&gt;           &lt;span style="color: rgb(0, 0, 0);"&gt;DateFormat&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getDateTimeInstance&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;format&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;created&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;))&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fine&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"Sessions in use: "&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;keySet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;size&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;           &lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;keySet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fine&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"["&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionid&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 51, 204);"&gt;"]"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;JMXListenerBean&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionListenerList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;get&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sessionid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;))&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fine&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getMBean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 51, 204);"&gt;", has received ["&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;br /&gt;                  &lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getNotifications&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;size&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt;&lt;br /&gt;                  &lt;span style="color: rgb(0, 51, 204);"&gt;"] notifications"&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Quick and dirty query to get the list of mbean names for the deployed&lt;br /&gt;* applications.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @return&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; Set of Stringified ObjectNames&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Set&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getJ2EEApplicationNameList&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;info&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"entering"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;SortedSet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;appnames&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;TreeSet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Set&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mbeans&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;getJMXConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;query&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"*:j2eeType=J2EEApplication,*"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;mbeans&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Set&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;jmxConnector&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getMBeanServerConnection&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;queryNames&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;query&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ObjectName&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mbean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;mbeans&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;appnames&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;add&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;mbean&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getCanonicalName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;ex&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;printStackTrace&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;appnames&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;ServletContextListener&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;package&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sab&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;demo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmx&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;listener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;util&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logging&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Level&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;java&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;util&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logging&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;servlet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ServletContext&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;servlet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ServletContextEvent&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;servlet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;http&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;HttpSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;servlet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;http&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;HttpSessionEvent&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;servlet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;http&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;HttpSessionListener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;import&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sab&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;demo&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;jmx&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;map&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;class&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ServletContextListener&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;implements&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;javax&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;servlet&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ServletContextListener&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt;&lt;br /&gt;                                       &lt;span style="color: rgb(0, 0, 0);"&gt;HttpSessionListener&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;static&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;final&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;String&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;GLM_KEY&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 51, 204);"&gt;"GlobalListenerMap"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;ServletContext&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;context&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;HttpSession&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;session&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;final&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;Logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getLogger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;this&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getClass&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getName&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* Create a new GlobalListenerMap and put it in the context for use by&lt;br /&gt;* the application artifacts.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; event&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;contextInitialized&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ServletContextEvent&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;fine&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"contextInitialized"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;context&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getServletContext&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;glm&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;new&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;context&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;setAttribute&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GLM_KEY&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;glm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* When the application is being shutdown, close the GlobalListenerMap so&lt;br /&gt;* that the JMXConnector is closed.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; event&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;contextDestroyed&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ServletContextEvent&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;context&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getServletContext&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;info&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"Closing GlobalListenerMap"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;glm&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;context&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getAttribute&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GLM_KEY&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;try&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;glm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;!=&lt;/span&gt;&lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: rgb(0, 0, 0);"&gt;glm&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;shutdownDontCare&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;catch&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Exception&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;e&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 0);"&gt;e&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;printStackTrace&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* When a new session is created ... don't really do anything.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; event&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionCreated&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;HttpSessionEvent&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;session&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;ServletContext&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;context&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getServletContext&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;glm&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GlobalListenerMap&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;context&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getAttribute&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;GLM_KEY&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;// Could proactively create a session list here if we wanted&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;if&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;glm&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;==&lt;/span&gt; &lt;span style="color: rgb(153, 102, 0);"&gt;null&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;isLoggable&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Level&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;SEVERE&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;))&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;severe&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"GlobalListenerMap in ServletContext is null"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;/**&lt;br /&gt;* When a specific user session is closed, remove any listeners that may&lt;br /&gt;* have been registered by them from the GlobalListenerMap.&lt;br /&gt;*&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;&lt;b&gt; @param&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt; event&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;     */&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;public&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(51, 102, 153);"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;sessionDestroyed&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;HttpSessionEvent&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;session&lt;/span&gt;  &lt;span style="color: rgb(0, 0, 0);"&gt;=&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;event&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getSession&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;logger&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;info&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 51, 204);"&gt;"Removing listeners for session: "&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;+&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;session&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;getId&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;())&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style=