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