Author: cwiklik
Date: Tue May  8 15:33:55 2012
New Revision: 1335594

URL: http://svn.apache.org/viewvc?rev=1335594&view=rev
Log:
UIMA-2396 Modified to stop jmx monitor thread when user types 's' or 'q'

Modified:
    
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/service/UIMA_Service.java

Modified: 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/service/UIMA_Service.java
URL: 
http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/service/UIMA_Service.java?rev=1335594&r1=1335593&r2=1335594&view=diff
==============================================================================
--- 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/service/UIMA_Service.java
 (original)
+++ 
uima/uima-as/trunk/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/service/UIMA_Service.java
 Tue May  8 15:33:55 2012
@@ -273,7 +273,24 @@ public class UIMA_Service implements App
     }
 
   }
-
+  /**
+   * Creates an instance of a {@link JmxMonitor}, initializes it with the JMX 
Server URI and
+   * checkpoint frequency, and finally starts the monitor.
+   * 
+   * @param samplingFrequency
+   *          - how often the JmxMonitor should checkpoint to fetch service 
metrics
+   * 
+   * @throws Exception
+   *           - error on monitor initialization or startup
+   */
+  public void stopMonitor() throws Exception {
+    if ( monitor != null ) {
+      monitor.doStop();
+    }
+    if ( monitorThread != null ) {
+      monitorThread.interrupt();  // the thread may be in wait()
+    }
+  }
   /**
    * scan args for a particular arg, return the following token or the empty 
string if not found
    * 
@@ -422,8 +439,10 @@ public class UIMA_Service implements App
           if (System.in.available() > 0) {
             int c = System.in.read();
             if (c == 's') {
+              service.stopMonitor();
               serviceDeployer.undeploy(SpringContainerDeployer.STOP_NOW);
             } else if (c == 'q') {
+              service.stopMonitor();
               
serviceDeployer.undeploy(SpringContainerDeployer.QUIESCE_AND_STOP);
             } else if (Character.isLetter(c) || Character.isDigit(c)) {
               System.out.println(prompt);


Reply via email to