aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs58
-rw-r--r--OpenSim/ApplicationPlugins/LoadRegions/Properties/AssemblyInfo.cs36
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs63
3 files changed, 115 insertions, 42 deletions
diff --git a/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs
new file mode 100644
index 0000000..f0232e6
--- /dev/null
+++ b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs
@@ -0,0 +1,58 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using OpenSim;
5using OpenSim.Framework.Console;
6using OpenSim.Framework;
7using OpenSim.Framework.RegionLoader.Filesystem;
8using OpenSim.Framework.RegionLoader.Web;
9using Mono.Addins;
10using Mono.Addins.Description;
11using Nini;
12using Nini.Config;
13
14[assembly:Addin]
15[assembly:AddinDependency ("OpenSim", "0.4")]
16
17namespace OpenSim.ApplicationPlugins.Example
18{
19 [Extension("/OpenSim/Startup")]
20 public class LoadRegionsPlugin : IApplicationPlugin
21 {
22 public void Initialise(OpenSimMain openSim)
23 {
24 System.Console.WriteLine("Load Regions addin being initialised");
25
26 IRegionLoader regionLoader;
27 if (openSim.ConfigSource.Configs["Startup"].GetString("region_info_source", "filesystem") == "filesystem")
28 {
29 MainLog.Instance.Notice("Loading Region Info from filesystem");
30 regionLoader = new RegionLoaderFileSystem();
31 }
32 else
33 {
34 MainLog.Instance.Notice("Loading Region Info from web");
35 regionLoader = new RegionLoaderWebServer();
36 }
37
38 regionLoader.SetIniConfigSource(openSim.ConfigSource);
39 RegionInfo[] regionsToLoad = regionLoader.LoadRegions();
40
41 openSim.ModuleLoader.LoadDefaultSharedModules();
42
43 for (int i = 0; i < regionsToLoad.Length; i++)
44 {
45 MainLog.Instance.Debug("Creating Region: " + regionsToLoad[i].RegionName);
46 openSim.CreateRegion(regionsToLoad[i]);
47 }
48
49 openSim.ModuleLoader.PostInitialise();
50 openSim.ModuleLoader.ClearCache();
51 }
52
53 public void Close()
54 {
55
56 }
57 }
58}
diff --git a/OpenSim/ApplicationPlugins/LoadRegions/Properties/AssemblyInfo.cs b/OpenSim/ApplicationPlugins/LoadRegions/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..0b5f4bd
--- /dev/null
+++ b/OpenSim/ApplicationPlugins/LoadRegions/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
1using System.Reflection;
2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices;
4
5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Addin")]
9[assembly: AssemblyDescription("")]
10[assembly: AssemblyConfiguration("")]
11[assembly: AssemblyCompany("")]
12[assembly: AssemblyProduct("OpenSim.Addin")]
13[assembly: AssemblyCopyright("Copyright © 2007")]
14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")]
16
17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)]
21
22// The following GUID is for the ID of the typelib if this project is exposed to COM
23[assembly: Guid("45b979d9-d8d4-42fd-9780-fe9ac7e86cb4")]
24
25// Version information for an assembly consists of the following four values:
26//
27// Major Version
28// Minor Version
29// Build Number
30// Revision
31//
32// You can specify all the values or you can default the Build and Revision Numbers
33// by using the '*' as shown below:
34// [assembly: AssemblyVersion("1.0.*")]
35[assembly: AssemblyVersion("1.0.0.0")]
36[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index 666e0d2..69cedaf 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -35,8 +35,6 @@ using OpenSim.Framework;
35using OpenSim.Framework.Communications.Cache; 35using OpenSim.Framework.Communications.Cache;
36using OpenSim.Framework.Console; 36using OpenSim.Framework.Console;
37using OpenSim.Framework.Servers; 37using OpenSim.Framework.Servers;
38using OpenSim.Framework.RegionLoader.Filesystem;
39using OpenSim.Framework.RegionLoader.Web;
40using OpenSim.Region.ClientStack; 38using OpenSim.Region.ClientStack;
41using OpenSim.Region.Communications.Local; 39using OpenSim.Region.Communications.Local;
42using OpenSim.Region.Communications.OGS1; 40using OpenSim.Region.Communications.OGS1;
@@ -63,9 +61,7 @@ namespace OpenSim
63 61
64 private OpenSimController m_controller; 62 private OpenSimController m_controller;
65 63
66 protected ModuleLoader m_moduleLoader;
67 protected LocalLoginService m_loginService; 64 protected LocalLoginService m_loginService;
68 private IniConfigSource m_config;
69 65
70 protected string m_storageDLL = "OpenSim.DataStore.NullStorage.dll"; 66 protected string m_storageDLL = "OpenSim.DataStore.NullStorage.dll";
71 67
@@ -90,6 +86,24 @@ namespace OpenSim
90 public ConsoleCommand CreateAccount = null; 86 public ConsoleCommand CreateAccount = null;
91 private bool m_dumpAssetsToFile; 87 private bool m_dumpAssetsToFile;
92 88
89 private List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>();
90
91 private IniConfigSource m_config;
92
93 public IniConfigSource ConfigSource
94 {
95 get { return m_config; }
96 set { m_config = value; }
97 }
98
99 private ModuleLoader m_moduleLoader;
100
101 public ModuleLoader ModuleLoader
102 {
103 get { return m_moduleLoader; }
104 set { m_moduleLoader = value; }
105 }
106
93 public OpenSimMain(IConfigSource configSource) 107 public OpenSimMain(IConfigSource configSource)
94 : base() 108 : base()
95 { 109 {
@@ -278,44 +292,16 @@ namespace OpenSim
278 m_httpServer.AddStreamHandler(new SimStatusHandler()); 292 m_httpServer.AddStreamHandler(new SimStatusHandler());
279 } 293 }
280 294
295 m_moduleLoader = new ModuleLoader(m_log, m_config);
296
281 MainLog.Instance.Verbose("Plugins", "Loading OpenSim application plugins"); 297 MainLog.Instance.Verbose("Plugins", "Loading OpenSim application plugins");
282 foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes("/OpenSim/Startup")) 298 foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes("/OpenSim/Startup"))
283 { 299 {
284 IApplicationPlugin plugin = (IApplicationPlugin)node.CreateInstance(); 300 IApplicationPlugin plugin = (IApplicationPlugin)node.CreateInstance();
285 plugin.Initialise(this); 301 plugin.Initialise(this);
302 m_plugins.Add(plugin);
286 } 303 }
287 304
288 IRegionLoader regionLoader;
289 if (m_config.Configs["Startup"].GetString("region_info_source", "filesystem") == "filesystem")
290 {
291 MainLog.Instance.Notice("Loading Region Info from filesystem");
292 regionLoader = new RegionLoaderFileSystem();
293 }
294 else
295 {
296 MainLog.Instance.Notice("Loading Region Info from web");
297 regionLoader = new RegionLoaderWebServer();
298 }
299
300 regionLoader.SetIniConfigSource(m_config);
301 RegionInfo[] regionsToLoad = regionLoader.LoadRegions();
302
303 m_moduleLoader = new ModuleLoader(m_log, m_config);
304 MainLog.Instance.Verbose("Loading Shared Modules");
305 m_moduleLoader.LoadDefaultSharedModules();
306
307 // Load all script engines found (scripting engine is now a IRegionModule so loaded in the module loader
308 // OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader ScriptEngineLoader = new OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineLoader(m_log);
309
310 for (int i = 0; i < regionsToLoad.Length; i++)
311 {
312 MainLog.Instance.Debug("Creating Region: " + regionsToLoad[i].RegionName);
313 CreateRegion(regionsToLoad[i]);
314 }
315
316 m_moduleLoader.PostInitialise();
317 m_moduleLoader.ClearCache();
318
319 // Start UDP servers 305 // Start UDP servers
320 for (int i = 0; i < m_udpServers.Count; i++) 306 for (int i = 0; i < m_udpServers.Count; i++)
321 { 307 {
@@ -349,13 +335,6 @@ namespace OpenSim
349 335
350 scene.SetModuleInterfaces(); 336 scene.SetModuleInterfaces();
351 337
352 // Check if we have a script engine to load
353 //if (m_scriptEngine != null && m_scriptEngine != "")
354 //{
355 // OpenSim.Region.Environment.Scenes.Scripting.ScriptEngineInterface ScriptEngine = ScriptEngineLoader.LoadScriptEngine(m_scriptEngine);
356 // scene.AddScriptEngine(ScriptEngine, m_log);
357 //}
358
359 //Server side object editing permissions checking 338 //Server side object editing permissions checking
360 scene.PermissionsMngr.BypassPermissions = !m_permissions; 339 scene.PermissionsMngr.BypassPermissions = !m_permissions;
361 340