diff --git a/OpenSim/Framework/Console/CommandConsole.cs b/OpenSim/Framework/Console/CommandConsole.cs
index 87bdacd2da..d6d508ff38 100644
--- a/OpenSim/Framework/Console/CommandConsole.cs
+++ b/OpenSim/Framework/Console/CommandConsole.cs
@@ -702,7 +702,7 @@ namespace OpenSim.Framework.Console
///
public void Prompt()
{
- string line = ReadLine(m_defaultPrompt + "# ", true, true);
+ string line = ReadLine(DefaultPrompt + "# ", true, true);
if (line != String.Empty)
Output("Invalid command");
diff --git a/OpenSim/Framework/Console/ConsoleBase.cs b/OpenSim/Framework/Console/ConsoleBase.cs
index 4b375d9963..2d8e723af2 100755
--- a/OpenSim/Framework/Console/ConsoleBase.cs
+++ b/OpenSim/Framework/Console/ConsoleBase.cs
@@ -43,15 +43,7 @@ namespace OpenSim.Framework.Console
public object ConsoleScene { get; set; }
- ///
- /// The default prompt text.
- ///
- public string DefaultPrompt
- {
- set { m_defaultPrompt = value; }
- get { return m_defaultPrompt; }
- }
- protected string m_defaultPrompt;
+ public string DefaultPrompt { get; set; }
public ConsoleBase(string defaultPrompt)
{
diff --git a/OpenSim/Framework/Console/MockConsole.cs b/OpenSim/Framework/Console/MockConsole.cs
index 4d8751f5f6..31515f455e 100644
--- a/OpenSim/Framework/Console/MockConsole.cs
+++ b/OpenSim/Framework/Console/MockConsole.cs
@@ -44,13 +44,18 @@ namespace OpenSim.Framework.Console
public ICommands Commands { get { return m_commands; } }
+ public string DefaultPrompt { get; set; }
+
public void Prompt() {}
public void RunCommand(string cmd) {}
public string ReadLine(string p, bool isCommand, bool e) { return ""; }
- public object ConsoleScene { get { return null; } }
+ public object ConsoleScene {
+ get { return null; }
+ set {}
+ }
public void Output(string text, string level) {}
public void Output(string text) {}
@@ -76,4 +81,4 @@ namespace OpenSim.Framework.Console
public string[] Resolve(string[] cmd) { return null; }
public XmlElement GetXml(XmlDocument doc) { return null; }
}
-}
\ No newline at end of file
+}
diff --git a/OpenSim/Framework/ICommandConsole.cs b/OpenSim/Framework/ICommandConsole.cs
index ca0ff936ca..cf95048977 100644
--- a/OpenSim/Framework/ICommandConsole.cs
+++ b/OpenSim/Framework/ICommandConsole.cs
@@ -78,6 +78,11 @@ namespace OpenSim.Framework
{
ICommands Commands { get; }
+ ///
+ /// The default prompt text.
+ ///
+ string DefaultPrompt { get; set; }
+
///
/// Display a command prompt on the console and wait for user input
///
@@ -87,4 +92,4 @@ namespace OpenSim.Framework
string ReadLine(string p, bool isCommand, bool e);
}
-}
\ No newline at end of file
+}
diff --git a/OpenSim/Framework/IConsole.cs b/OpenSim/Framework/IConsole.cs
index 33024b2076..79560d805b 100644
--- a/OpenSim/Framework/IConsole.cs
+++ b/OpenSim/Framework/IConsole.cs
@@ -32,7 +32,7 @@ namespace OpenSim.Framework
{
public interface IConsole
{
- object ConsoleScene { get; }
+ object ConsoleScene { get; set; }
void Output(string text, string level);
void Output(string text);
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index 6346279754..4f9ac080bb 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -62,7 +62,6 @@ namespace OpenSim.Framework.Servers
///
private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000);
- protected CommandConsole m_console;
protected OpenSimAppender m_consoleAppender;
protected IAppender m_logFileAppender = null;
@@ -139,7 +138,8 @@ namespace OpenSim.Framework.Servers
}
else
{
- m_consoleAppender.Console = m_console;
+ // FIXME: This should be done through an interface rather than casting.
+ m_consoleAppender.Console = (ConsoleBase)m_console;
// If there is no threshold set then the threshold is effectively everything.
if (null == m_consoleAppender.Threshold)
@@ -367,8 +367,10 @@ namespace OpenSim.Framework.Servers
}
}
- public virtual void HandleShow(string module, string[] cmd)
+ public override void HandleShow(string module, string[] cmd)
{
+ base.HandleShow(module, cmd);
+
List args = new List(cmd);
args.RemoveAt(0);
@@ -385,10 +387,6 @@ namespace OpenSim.Framework.Servers
Notice(GetThreadsReport());
break;
- case "uptime":
- Notice(GetUptimeReport());
- break;
-
case "version":
Notice(GetVersionText());
break;
@@ -429,33 +427,6 @@ namespace OpenSim.Framework.Servers
return String.Format("Version: {0} (interface version {1})", m_version, VersionInfo.MajorInterfaceVersion);
}
- ///
- /// Console output is only possible if a console has been established.
- /// That is something that cannot be determined within this class. So
- /// all attempts to use the console MUST be verified.
- ///
- ///
- protected void Notice(string msg)
- {
- if (m_console != null)
- {
- m_console.Output(msg);
- }
- }
-
- ///
- /// Console output is only possible if a console has been established.
- /// That is something that cannot be determined within this class. So
- /// all attempts to use the console MUST be verified.
- ///
- ///
- ///
- protected void Notice(string format, params string[] components)
- {
- if (m_console != null)
- m_console.OutputFormat(format, components);
- }
-
///
/// Enhance the version string with extra information if it's available.
///
diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs
index d19234b8d7..afe1f7310d 100644
--- a/OpenSim/Framework/Servers/ServerBase.cs
+++ b/OpenSim/Framework/Servers/ServerBase.cs
@@ -26,12 +26,19 @@
*/
using System;
+using System.Collections.Generic;
using System.Text;
+using OpenSim.Framework.Console;
namespace OpenSim.Framework.Servers
{
public class ServerBase
{
+ ///
+ /// Console to be used for any command line output. Can be null, in which case there should be no output.
+ ///
+ protected ICommandConsole m_console;
+
///
/// Time at which this server was started
///
@@ -42,6 +49,22 @@ namespace OpenSim.Framework.Servers
m_startuptime = DateTime.Now;
}
+ public virtual void HandleShow(string module, string[] cmd)
+ {
+ List args = new List(cmd);
+
+ args.RemoveAt(0);
+
+ string[] showParams = args.ToArray();
+
+ switch (showParams[0])
+ {
+ case "uptime":
+ Notice(GetUptimeReport());
+ break;
+ }
+ }
+
///
/// Return a report about the uptime of this server
///
@@ -54,5 +77,32 @@ namespace OpenSim.Framework.Servers
return sb.ToString();
}
+
+ ///
+ /// Console output is only possible if a console has been established.
+ /// That is something that cannot be determined within this class. So
+ /// all attempts to use the console MUST be verified.
+ ///
+ ///
+ protected void Notice(string msg)
+ {
+ if (m_console != null)
+ {
+ m_console.Output(msg);
+ }
+ }
+
+ ///
+ /// Console output is only possible if a console has been established.
+ /// That is something that cannot be determined within this class. So
+ /// all attempts to use the console MUST be verified.
+ ///
+ ///
+ ///
+ protected void Notice(string format, params string[] components)
+ {
+ if (m_console != null)
+ m_console.OutputFormat(format, components);
+ }
}
}
\ No newline at end of file
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 7fdf75682f..daa2607627 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -253,7 +253,7 @@ namespace OpenSim
}
}
- protected virtual void AddPluginCommands(CommandConsole console)
+ protected virtual void AddPluginCommands(ICommandConsole console)
{
List topics = GetHelpTopics();
diff --git a/OpenSim/Server/Base/ServicesServerBase.cs b/OpenSim/Server/Base/ServicesServerBase.cs
index 56bb7aeb6b..7b49ac90b3 100644
--- a/OpenSim/Server/Base/ServicesServerBase.cs
+++ b/OpenSim/Server/Base/ServicesServerBase.cs
@@ -174,6 +174,8 @@ namespace OpenSim.Server.Base
MainConsole.Instance = new LocalConsole(prompt);
}
+ m_console = MainConsole.Instance;
+
// Configure the appenders for log4net
//
OpenSimAppender consoleAppender = null;
@@ -351,21 +353,5 @@ namespace OpenSim.Server.Base
{
}
}
-
- public virtual void HandleShow(string module, string[] cmd)
- {
- List args = new List(cmd);
-
- args.RemoveAt(0);
-
- string[] showParams = args.ToArray();
-
- switch (showParams[0])
- {
- case "uptime":
- MainConsole.Instance.Output(GetUptimeReport());
- break;
- }
- }
}
}
\ No newline at end of file