diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs | 52 |
1 files changed, 39 insertions, 13 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs b/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs index 13f58bd..e37da9f 100644 --- a/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs +++ b/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs | |||
@@ -31,12 +31,13 @@ using System.Reflection; | |||
31 | 31 | ||
32 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
33 | using OpenSim.Framework.Communications; | 33 | using OpenSim.Framework.Communications; |
34 | using OpenSim.Framework.Communications.Cache; | 34 | |
35 | using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver; | 35 | using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver; |
36 | using OpenSim.Region.Framework; | 36 | using OpenSim.Region.Framework; |
37 | using OpenSim.Region.Framework.Interfaces; | 37 | using OpenSim.Region.Framework.Interfaces; |
38 | using OpenSim.Region.Framework.Scenes; | 38 | using OpenSim.Region.Framework.Scenes; |
39 | using OpenSim.Services.Interfaces; | 39 | using OpenSim.Services.Interfaces; |
40 | using OpenSim.Server.Base; | ||
40 | 41 | ||
41 | using OpenMetaverse; | 42 | using OpenMetaverse; |
42 | using log4net; | 43 | using log4net; |
@@ -53,6 +54,8 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
53 | private string m_LibraryName = "OpenSim Library"; | 54 | private string m_LibraryName = "OpenSim Library"; |
54 | private Scene m_Scene; | 55 | private Scene m_Scene; |
55 | 56 | ||
57 | private ILibraryService m_Library; | ||
58 | |||
56 | #region ISharedRegionModule | 59 | #region ISharedRegionModule |
57 | 60 | ||
58 | public void Initialise(IConfigSource config) | 61 | public void Initialise(IConfigSource config) |
@@ -60,9 +63,22 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
60 | m_Enabled = config.Configs["Modules"].GetBoolean("LibraryModule", m_Enabled); | 63 | m_Enabled = config.Configs["Modules"].GetBoolean("LibraryModule", m_Enabled); |
61 | if (m_Enabled) | 64 | if (m_Enabled) |
62 | { | 65 | { |
63 | IConfig libConfig = config.Configs["LibraryModule"]; | 66 | IConfig libConfig = config.Configs["LibraryService"]; |
64 | if (libConfig != null) | 67 | if (libConfig != null) |
65 | m_LibraryName = libConfig.GetString("LibraryName", m_LibraryName); | 68 | { |
69 | string dllName = libConfig.GetString("LocalServiceModule", string.Empty); | ||
70 | m_log.Debug("[LIBRARY MODULE]: Library service dll is " + dllName); | ||
71 | if (dllName != string.Empty) | ||
72 | { | ||
73 | Object[] args = new Object[] { config }; | ||
74 | m_Library = ServerUtils.LoadPlugin<ILibraryService>(dllName, args); | ||
75 | } | ||
76 | } | ||
77 | } | ||
78 | if (m_Library == null) | ||
79 | { | ||
80 | m_log.Warn("[LIBRARY MODULE]: No local library service. Module will be disabled."); | ||
81 | m_Enabled = false; | ||
66 | } | 82 | } |
67 | } | 83 | } |
68 | 84 | ||
@@ -91,10 +107,15 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
91 | { | 107 | { |
92 | m_Scene = scene; | 108 | m_Scene = scene; |
93 | } | 109 | } |
110 | scene.RegisterModuleInterface<ILibraryService>(m_Library); | ||
94 | } | 111 | } |
95 | 112 | ||
96 | public void RemoveRegion(Scene scene) | 113 | public void RemoveRegion(Scene scene) |
97 | { | 114 | { |
115 | if (!m_Enabled) | ||
116 | return; | ||
117 | |||
118 | scene.UnregisterModuleInterface<ILibraryService>(m_Library); | ||
98 | } | 119 | } |
99 | 120 | ||
100 | public void RegionLoaded(Scene scene) | 121 | public void RegionLoaded(Scene scene) |
@@ -127,27 +148,23 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
127 | 148 | ||
128 | protected void LoadLibrariesFromArchives() | 149 | protected void LoadLibrariesFromArchives() |
129 | { | 150 | { |
130 | InventoryFolderImpl lib = m_Scene.CommsManager.UserProfileCacheService.LibraryRoot; | 151 | InventoryFolderImpl lib = m_Library.LibraryRootFolder; |
131 | if (lib == null) | 152 | if (lib == null) |
132 | { | 153 | { |
133 | m_log.Debug("[LIBRARY MODULE]: No library. Ignoring Library Module"); | 154 | m_log.Debug("[LIBRARY MODULE]: No library. Ignoring Library Module"); |
134 | return; | 155 | return; |
135 | } | 156 | } |
136 | 157 | ||
137 | lib.Name = m_LibraryName; | ||
138 | |||
139 | RegionInfo regInfo = new RegionInfo(); | 158 | RegionInfo regInfo = new RegionInfo(); |
140 | Scene m_MockScene = new Scene(regInfo); | 159 | Scene m_MockScene = new Scene(regInfo); |
141 | m_MockScene.CommsManager = m_Scene.CommsManager; | 160 | LocalInventoryService invService = new LocalInventoryService(lib); |
142 | LocalInventoryService invService = new LocalInventoryService((LibraryRootFolder)lib); | ||
143 | m_MockScene.RegisterModuleInterface<IInventoryService>(invService); | 161 | m_MockScene.RegisterModuleInterface<IInventoryService>(invService); |
144 | m_MockScene.RegisterModuleInterface<IAssetService>(m_Scene.AssetService); | 162 | m_MockScene.RegisterModuleInterface<IAssetService>(m_Scene.AssetService); |
145 | 163 | ||
146 | UserProfileData profile = new UserProfileData(); | 164 | UserAccount uinfo = new UserAccount(lib.Owner); |
147 | profile.FirstName = "OpenSim"; | 165 | uinfo.FirstName = "OpenSim"; |
148 | profile.ID = lib.Owner; | 166 | uinfo.LastName = "Library"; |
149 | profile.SurName = "Library"; | 167 | uinfo.ServiceURLs = new Dictionary<string, object>(); |
150 | CachedUserInfo uinfo = new CachedUserInfo(invService, profile); | ||
151 | 168 | ||
152 | foreach (string iarFileName in Directory.GetFiles(pathToLibraries, "*.iar")) | 169 | foreach (string iarFileName in Directory.GetFiles(pathToLibraries, "*.iar")) |
153 | { | 170 | { |
@@ -175,6 +192,15 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
175 | m_log.DebugFormat("[LIBRARY MODULE]: Exception when processing archive {0}: {1}", iarFileName, e.Message); | 192 | m_log.DebugFormat("[LIBRARY MODULE]: Exception when processing archive {0}: {1}", iarFileName, e.Message); |
176 | } | 193 | } |
177 | } | 194 | } |
195 | |||
196 | } | ||
197 | |||
198 | private void DumpLibrary() | ||
199 | { | ||
200 | InventoryFolderImpl lib = m_Library.LibraryRootFolder; | ||
201 | |||
202 | m_log.DebugFormat(" - folder {0}", lib.Name); | ||
203 | DumpFolder(lib); | ||
178 | } | 204 | } |
179 | // | 205 | // |
180 | // private void DumpLibrary() | 206 | // private void DumpLibrary() |