aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Modules/ContentManagementSystem
diff options
context:
space:
mode:
authorSean Dague2008-09-03 18:04:42 +0000
committerSean Dague2008-09-03 18:04:42 +0000
commit90823167573b941de82908a77905cfe8f845f0fe (patch)
tree0fb1279b4e7c0e25854929c4e88aa600c72eb637 /OpenSim/Region/Environment/Modules/ContentManagementSystem
parenttype change from ChatFromViewerArgs -> OSChatMessage to line up with trunk. (diff)
downloadopensim-SC_OLD-90823167573b941de82908a77905cfe8f845f0fe.zip
opensim-SC_OLD-90823167573b941de82908a77905cfe8f845f0fe.tar.gz
opensim-SC_OLD-90823167573b941de82908a77905cfe8f845f0fe.tar.bz2
opensim-SC_OLD-90823167573b941de82908a77905cfe8f845f0fe.tar.xz
come up nicer on startup if the opensim.ini section isn't there
Diffstat (limited to 'OpenSim/Region/Environment/Modules/ContentManagementSystem')
-rw-r--r--OpenSim/Region/Environment/Modules/ContentManagementSystem/ContentManagementModule.cs156
1 files changed, 78 insertions, 78 deletions
diff --git a/OpenSim/Region/Environment/Modules/ContentManagementSystem/ContentManagementModule.cs b/OpenSim/Region/Environment/Modules/ContentManagementSystem/ContentManagementModule.cs
index 22177ae..413d00d 100644
--- a/OpenSim/Region/Environment/Modules/ContentManagementSystem/ContentManagementModule.cs
+++ b/OpenSim/Region/Environment/Modules/ContentManagementSystem/ContentManagementModule.cs
@@ -1,8 +1,6 @@
1// ContentManagementModule.cs 1// ContentManagementModule.cs
2// User: bongiojp 2// User: bongiojp
3 3
4
5
6using System; 4using System;
7using System.Collections.Generic; 5using System.Collections.Generic;
8using libsecondlife; 6using libsecondlife;
@@ -18,86 +16,88 @@ using System.Threading;
18 16
19namespace OpenSim.Region.Environment.Modules.ContentManagement 17namespace OpenSim.Region.Environment.Modules.ContentManagement
20{ 18{
21 public class ContentManagementModule : IRegionModule 19 public class ContentManagementModule : IRegionModule
22 { 20 {
23 private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 21 private static readonly log4net.ILog m_log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
24 CMController m_control = null; 22 CMController m_control = null;
25 CMModel m_model = null; 23 CMModel m_model = null;
26 CMView m_view = null; 24 CMView m_view = null;
27 bool initialised = false; 25 bool initialised = false;
28 bool m_posted = false; 26 bool m_posted = false;
29 bool m_enabled = true; 27 bool m_enabled = false;
30 28
31 public void Initialise(Scene scene, IConfigSource source) 29 public void Initialise(Scene scene, IConfigSource source)
32 { 30 {
33 string databaseDir = "./"; 31 string databaseDir = "./";
34 string database = "FilesyStemDatabase"; 32 string database = "FileSystemDatabase";
35 int channel = 345; 33 int channel = 345;
36 try 34 try
37 { 35 {
38 if (!source.Configs["CMS"].GetBoolean("Enabled", false)) 36 if (source.Configs["CMS"] == null)
39 m_enabled = false; 37 return;
40 38
41 databaseDir = source.Configs["CMS"].GetString("Directory", databaseDir); 39 m_enabled = source.Configs["CMS"].GetBoolean("Enabled", false);
42 database = source.Configs["CMS"].GetString("Database", database); 40 databaseDir = source.Configs["CMS"].GetString("Directory", databaseDir);
43 channel = source.Configs["CMS"].GetInt("Channel", channel); 41 database = source.Configs["CMS"].GetString("Database", database);
44 if (database != "FileSystemDatabase" && database != "GitDatabase") 42 channel = source.Configs["CMS"].GetInt("Channel", channel);
45 {
46 m_log.ErrorFormat("[Content Management]: The Database attribute must be defined as either FileSystemDatabase or GitDatabase");
47 m_enabled = false;
48 }
49 }
50 catch (Exception e)
51 {
52 m_log.ErrorFormat("[Content Management]: Exception thrown while reading parameters from configuration file. Message: " + e);
53 m_enabled = false;
54 }
55 43
56 if (!m_enabled) 44 if (database != "FileSystemDatabase" && database != "GitDatabase")
57 { 45 {
58 m_log.Info("[Content Management]: Content Management System is not Enabled."); 46 m_log.ErrorFormat("[Content Management]: The Database attribute must be defined as either FileSystemDatabase or GitDatabase");
59 return; 47 m_enabled = false;
60 } 48 }
61 49 }
62 lock(this) 50 catch (Exception e)
63 { 51 {
64 if (!initialised) //only init once 52 m_log.ErrorFormat("[Content Management]: Exception thrown while reading parameters from configuration file. Message: " + e);
65 { 53 m_enabled = false;
66 m_view = new CMView(); 54 }
67 m_model = new CMModel(); 55
68 m_control = new CMController(m_model, m_view, scene, channel); 56 if (!m_enabled)
69 m_model.Initialise(database); 57 {
70 m_view.Initialise(m_model); 58 m_log.Info("[Content Management]: Content Management System is not Enabled.");
71 59 return;
72 initialised = true; 60 }
73 m_model.InitialiseDatabase(scene, databaseDir); 61
74 } 62 lock(this)
75 else 63 {
76 { 64 if (!initialised) //only init once
77 m_model.InitialiseDatabase(scene, databaseDir); 65 {
78 m_control.RegisterNewRegion(scene); 66 m_view = new CMView();
79 } 67 m_model = new CMModel();
80 } 68 m_control = new CMController(m_model, m_view, scene, channel);
81 } 69 m_model.Initialise(database);
82 70 m_view.Initialise(m_model);
71
72 initialised = true;
73 m_model.InitialiseDatabase(scene, databaseDir);
74 }
75 else
76 {
77 m_model.InitialiseDatabase(scene, databaseDir);
78 m_control.RegisterNewRegion(scene);
79 }
80 }
81 }
82
83 public void PostInitialise() 83 public void PostInitialise()
84 { 84 {
85 if (! m_enabled) 85 if (! m_enabled)
86 return; 86 return;
87 87
88 lock(this) 88 lock(this)
89 { 89 {
90 if (!m_posted) //only post once 90 if (!m_posted) //only post once
91 { 91 {
92 m_model.PostInitialise(); 92 m_model.PostInitialise();
93 m_posted = true; 93 m_posted = true;
94 } 94 }
95 } 95 }
96 } 96 }
97 97
98 public void Close() 98 public void Close()
99 {} 99 {}
100 100
101 public string Name 101 public string Name
102 { 102 {
103 get { return "ContentManagementModule"; } 103 get { return "ContentManagementModule"; }
@@ -107,5 +107,5 @@ namespace OpenSim.Region.Environment.Modules.ContentManagement
107 { 107 {
108 get { return true; } 108 get { return true; }
109 } 109 }
110 } 110 }
111} 111}