You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2006/03/17 16:57:03 UTC

svn commit: r386665 - /incubator/felix/trunk/org.apache.felix.shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java

Author: rickhall
Date: Fri Mar 17 07:57:03 2006
New Revision: 386665

URL: http://svn.apache.org/viewcvs?rev=386665&view=rev
Log:
Modified stop() method to interrupt command processing thread so that
the thread quits when the bundle stops.

Modified:
    incubator/felix/trunk/org.apache.felix.shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java

Modified: incubator/felix/trunk/org.apache.felix.shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java
URL: http://svn.apache.org/viewcvs/incubator/felix/trunk/org.apache.felix.shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java?rev=386665&r1=386664&r2=386665&view=diff
==============================================================================
--- incubator/felix/trunk/org.apache.felix.shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java (original)
+++ incubator/felix/trunk/org.apache.felix.shell.tui/src/main/java/org/apache/felix/shell/tui/Activator.java Fri Mar 17 07:57:03 2006
@@ -23,10 +23,11 @@
 
 public class Activator implements BundleActivator
 {
-    private transient BundleContext m_context = null;
-    private transient ShellTuiRunnable m_runnable = null;
-    private transient ServiceReference m_shellRef = null;
-    private transient ShellService m_shell = null;
+    private BundleContext m_context = null;
+    private ShellTuiRunnable m_runnable = null;
+    private Thread m_thread = null;
+    private ServiceReference m_shellRef = null;
+    private ShellService m_shell = null;
 
     public void start(BundleContext context)
     {
@@ -63,14 +64,17 @@
                 }
             }
         };
-        try {
+        try
+        {
             m_context.addServiceListener(sl,
                 "(objectClass="
                 + org.apache.felix.shell.ShellService.class.getName()
                 + ")");
-        } catch (InvalidSyntaxException ex) {
-            System.err.println("ShellTuiActivator: Cannot add service listener.");
-            System.err.println("ShellTuiActivator: " + ex);
+        }
+        catch (InvalidSyntaxException ex)
+        {
+            System.err.println("ShellTui: Cannot add service listener.");
+            System.err.println("ShellTui: " + ex);
         }
 
         // Now try to manually initialize the impl service
@@ -78,19 +82,24 @@
         initializeService();
 
         // Start impl thread.
-        new Thread(
+        m_thread = new Thread(
             m_runnable = new ShellTuiRunnable(),
-            "Felix Shell TUI").start();
+            "Felix Shell TUI");
+        m_thread.start();
     }
 
     private synchronized void initializeService()
     {
         if (m_shell != null)
+        {
             return;
+        }
         m_shellRef = m_context.getServiceReference(
             org.apache.felix.shell.ShellService.class.getName());
         if (m_shellRef == null)
+        {
             return;
+        }
         m_shell = (ShellService) m_context.getService(m_shellRef);
     }
 
@@ -99,6 +108,7 @@
         if (m_runnable != null)
         {
             m_runnable.stop();
+            m_thread.interrupt();
         }
     }
 
@@ -120,9 +130,12 @@
             {
                 System.out.print("-> ");
 
-                try {
+                try
+                {
                     line = in.readLine();
-                } catch (IOException ex) {
+                }
+                catch (IOException ex)
+                {
                     System.err.println("Could not read input, please try again.");
                     continue;
                 }
@@ -147,14 +160,17 @@
                         continue;
                     }
 
-                    try {
+                    try
+                    {
                         m_shell.executeCommand(line, System.out, System.err);
-                    } catch (Exception ex) {
-                        System.err.println("ShellTuiActivator: " + ex);
+                    }
+                    catch (Exception ex)
+                    {
+                        System.err.println("ShellTui: " + ex);
                         ex.printStackTrace();
                     }
                 }
             }
         }
     }
-}
+}
\ No newline at end of file