|
From: <cr...@us...> - 2009-04-20 15:21:13
|
Revision: 5325
http://jnode.svn.sourceforge.net/jnode/?rev=5325&view=rev
Author: crawley
Date: 2009-04-20 15:21:03 +0000 (Mon, 20 Apr 2009)
Log Message:
-----------
Once more ... with feeling.
Modified Paths:
--------------
trunk/distr/src/emu/org/jnode/emu/ShellEmu.java
trunk/shell/src/shell/org/jnode/shell/CommandShell.java
trunk/shell/src/test/org/jnode/test/shell/harness/TestRunnerBase.java
Modified: trunk/distr/src/emu/org/jnode/emu/ShellEmu.java
===================================================================
--- trunk/distr/src/emu/org/jnode/emu/ShellEmu.java 2009-04-20 14:53:47 UTC (rev 5324)
+++ trunk/distr/src/emu/org/jnode/emu/ShellEmu.java 2009-04-20 15:21:03 UTC (rev 5325)
@@ -24,11 +24,13 @@
import org.jnode.driver.console.ConsoleManager;
import org.jnode.driver.console.swing.SwingTextScreenConsoleManager;
+import org.jnode.driver.console.textscreen.TextScreenConsole;
import org.jnode.driver.console.textscreen.TextScreenConsoleManager;
import org.jnode.shell.CommandShell;
/**
* @author Levente S\u00e1ntha
+ * @author cr...@jn...
*/
public class ShellEmu extends Emu {
@@ -46,9 +48,9 @@
private void run() throws Exception {
TextScreenConsoleManager cm = new SwingTextScreenConsoleManager();
- new Thread(new CommandShell(cm.createConsole(
- "Console 1",
- (ConsoleManager.CreateOptions.TEXT |
- ConsoleManager.CreateOptions.SCROLLABLE)))).start();
+ TextScreenConsole console = cm.createConsole(
+ "Console 1",
+ (ConsoleManager.CreateOptions.TEXT | ConsoleManager.CreateOptions.SCROLLABLE));
+ new Thread(new CommandShell(console, true)).start();
}
}
Modified: trunk/shell/src/shell/org/jnode/shell/CommandShell.java
===================================================================
--- trunk/shell/src/shell/org/jnode/shell/CommandShell.java 2009-04-20 14:53:47 UTC (rev 5324)
+++ trunk/shell/src/shell/org/jnode/shell/CommandShell.java 2009-04-20 15:21:03 UTC (rev 5325)
@@ -104,6 +104,9 @@
public static final String DIRECTORY_PROPERTY_NAME = "user.dir";
public static final String INITIAL_INVOKER = "proclet";
+ // The Emu-mode invoker must be something that runs on the dev't platform;
+ // e.g. not 'isolate' or 'proclet'.
+ private static final String EMU_INVOKER = "thread";
public static final String INITIAL_INTERPRETER = "redirecting";
public static final String FALLBACK_INVOKER = "default";
public static final String FALLBACK_INTERPRETER = "default";
@@ -199,6 +202,10 @@
}
public CommandShell(TextConsole cons) throws ShellException {
+ this(cons, false);
+ }
+
+ public CommandShell(TextConsole cons, boolean emu) throws ShellException {
debugEnabled = true;
try {
console = cons;
@@ -216,7 +223,7 @@
console.addConsoleListener(this);
aliasMgr = ShellUtils.getAliasManager().createAliasManager();
syntaxMgr = ShellUtils.getSyntaxManager().createSyntaxManager();
- propertyMap = initShellProperties();
+ propertyMap = initShellProperties(emu);
} catch (NameNotFoundException ex) {
throw new ShellException("Cannot find required resource", ex);
} catch (Exception ex) {
@@ -225,11 +232,12 @@
}
/**
- * Create a CommandShell that doesn't use a TextConsole or the ConsoleManager.
+ * Create a CommandShell that doesn't use a TextConsole or the ConsoleManager
+ * for use in the TestHarness.
*
* @throws ShellException
*/
- public CommandShell() throws ShellException {
+ protected CommandShell() throws ShellException {
debugEnabled = true;
try {
setupStreams(new InputStreamReader(System.in),
@@ -237,7 +245,7 @@
new OutputStreamWriter(System.err));
aliasMgr = ShellUtils.getAliasManager().createAliasManager();
syntaxMgr = ShellUtils.getSyntaxManager().createSyntaxManager();
- propertyMap = initShellProperties();
+ propertyMap = initShellProperties(true);
} catch (NameNotFoundException ex) {
throw new ShellException("Cannot find required resource", ex);
} catch (Exception ex) {
@@ -245,12 +253,31 @@
}
}
- private HashMap<String, String> initShellProperties() {
+ /**
+ * This constructor builds a partial command shell for test purposes only.
+ *
+ * @param aliasMgr test framework supplies an alias manager
+ * @param syntaxMgr test framework supplies a syntax manager
+ */
+ protected CommandShell(AliasManager aliasMgr, SyntaxManager syntaxMgr) {
+ this.debugEnabled = true;
+ this.aliasMgr = aliasMgr;
+ this.syntaxMgr = syntaxMgr;
+ propertyMap = initShellProperties(true);
+ setupStreams(
+ new InputStreamReader(System.in),
+ new OutputStreamWriter(System.out),
+ new OutputStreamWriter(System.err));
+ this.readingCommand = true;
+ }
+
+
+ private HashMap<String, String> initShellProperties(boolean emu) {
HashMap<String, String> map = new HashMap<String, String>();
map.put(PROMPT_PROPERTY_NAME, DEFAULT_PROMPT);
map.put(DEBUG_PROPERTY_NAME, DEBUG_DEFAULT);
map.put(HISTORY_PROPERTY_NAME, HISTORY_DEFAULT);
- map.put(INVOKER_PROPERTY_NAME, INITIAL_INVOKER);
+ map.put(INVOKER_PROPERTY_NAME, emu ? EMU_INVOKER : INITIAL_INVOKER);
map.put(INTERPRETER_PROPERTY_NAME, INITIAL_INTERPRETER);
return map;
}
@@ -263,27 +290,8 @@
this.outPW = cout.getPrintWriter();
this.errPW = cerr.getPrintWriter();
}
-
/**
- * This constructor builds a partial command shell for test purposes only.
- *
- * @param aliasMgr test framework supplies an alias manager
- * @param syntaxMgr test framework supplies a syntax manager
- */
- protected CommandShell(AliasManager aliasMgr, SyntaxManager syntaxMgr) {
- this.debugEnabled = true;
- this.aliasMgr = aliasMgr;
- this.syntaxMgr = syntaxMgr;
- propertyMap = initShellProperties();
- setupStreams(
- new InputStreamReader(System.in),
- new OutputStreamWriter(System.out),
- new OutputStreamWriter(System.err));
- this.readingCommand = true;
- }
-
- /**
* Run this shell until exit.
*
* @see java.lang.Runnable#run()
@@ -499,11 +507,6 @@
ownThread = Thread.currentThread();
}
- public void configureEmuShell() throws ShellException {
- propertyMap.put(INVOKER_PROPERTY_NAME, "thread");
- configureShell();
- }
-
@Override
public String getProperty(String propName) {
return propertyMap.get(propName);
Modified: trunk/shell/src/test/org/jnode/test/shell/harness/TestRunnerBase.java
===================================================================
--- trunk/shell/src/test/org/jnode/test/shell/harness/TestRunnerBase.java 2009-04-20 14:53:47 UTC (rev 5324)
+++ trunk/shell/src/test/org/jnode/test/shell/harness/TestRunnerBase.java 2009-04-20 15:21:03 UTC (rev 5325)
@@ -92,7 +92,7 @@
public CommandShell getShell() throws ShellException {
CommandShell shell = new TestCommandShell(System.in, System.out, System.err);
- shell.configureEmuShell();
+ shell.configureShell();
return shell;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|