diff options
author | Diva Canto | 2010-01-01 21:12:46 -0800 |
---|---|---|
committer | Diva Canto | 2010-01-01 21:12:46 -0800 |
commit | 8a9677a5319793ff630d0761e204ae8961f375aa (patch) | |
tree | 0b92d2c9258383df59866945ebad7ba8479563d0 /OpenSim/Region/CoreModules | |
parent | Forgotten modules in prior commit. (diff) | |
download | opensim-SC-8a9677a5319793ff630d0761e204ae8961f375aa.zip opensim-SC-8a9677a5319793ff630d0761e204ae8961f375aa.tar.gz opensim-SC-8a9677a5319793ff630d0761e204ae8961f375aa.tar.bz2 opensim-SC-8a9677a5319793ff630d0761e204ae8961f375aa.tar.xz |
The Library Service is now working. UserProfileCacheService.LibraryRoot is obsolete. Didn't delete it yet to avoid merge conflicts later -- want to stay out of core as much as possible.
Diffstat (limited to 'OpenSim/Region/CoreModules')
3 files changed, 51 insertions, 15 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs b/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs index 6941e00..f1022fd 100644 --- a/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs +++ b/OpenSim/Region/CoreModules/Framework/Library/LibraryModule.cs | |||
@@ -37,6 +37,7 @@ 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,19 +148,17 @@ 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 | m_MockScene.CommsManager = m_Scene.CommsManager; |
142 | LocalInventoryService invService = new LocalInventoryService((LibraryRootFolder)lib); | 161 | LocalInventoryService invService = new LocalInventoryService(lib); |
143 | m_MockScene.RegisterModuleInterface<IInventoryService>(invService); | 162 | m_MockScene.RegisterModuleInterface<IInventoryService>(invService); |
144 | m_MockScene.RegisterModuleInterface<IAssetService>(m_Scene.AssetService); | 163 | m_MockScene.RegisterModuleInterface<IAssetService>(m_Scene.AssetService); |
145 | 164 | ||
@@ -181,7 +200,7 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
181 | 200 | ||
182 | private void DumpLibrary() | 201 | private void DumpLibrary() |
183 | { | 202 | { |
184 | InventoryFolderImpl lib = m_Scene.CommsManager.UserProfileCacheService.LibraryRoot; | 203 | InventoryFolderImpl lib = m_Library.LibraryRootFolder; |
185 | 204 | ||
186 | m_log.DebugFormat(" - folder {0}", lib.Name); | 205 | m_log.DebugFormat(" - folder {0}", lib.Name); |
187 | DumpFolder(lib); | 206 | DumpFolder(lib); |
diff --git a/OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs b/OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs index 2c95b5a..685c031 100644 --- a/OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs +++ b/OpenSim/Region/CoreModules/Framework/Library/LocalInventoryService.cs | |||
@@ -41,9 +41,9 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
41 | { | 41 | { |
42 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 42 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
43 | 43 | ||
44 | private LibraryRootFolder m_Library; | 44 | private InventoryFolderImpl m_Library; |
45 | 45 | ||
46 | public LocalInventoryService(LibraryRootFolder lib) | 46 | public LocalInventoryService(InventoryFolderImpl lib) |
47 | { | 47 | { |
48 | m_Library = lib; | 48 | m_Library = lib; |
49 | } | 49 | } |
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index c9b3071..91c0a53 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs | |||
@@ -95,6 +95,23 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
95 | 95 | ||
96 | protected Scene m_scene; | 96 | protected Scene m_scene; |
97 | 97 | ||
98 | private InventoryFolderImpl m_libraryRootFolder; | ||
99 | protected InventoryFolderImpl LibraryRootFolder | ||
100 | { | ||
101 | get | ||
102 | { | ||
103 | if (m_libraryRootFolder != null) | ||
104 | return m_libraryRootFolder; | ||
105 | |||
106 | ILibraryService lib = m_scene.RequestModuleInterface<ILibraryService>(); | ||
107 | if (lib != null) | ||
108 | { | ||
109 | m_libraryRootFolder = lib.LibraryRootFolder; | ||
110 | } | ||
111 | return m_libraryRootFolder; | ||
112 | } | ||
113 | } | ||
114 | |||
98 | #region Constants | 115 | #region Constants |
99 | // These are here for testing. They will be taken out | 116 | // These are here for testing. They will be taken out |
100 | 117 | ||
@@ -1005,9 +1022,9 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1005 | IInventoryService invService = m_scene.InventoryService; | 1022 | IInventoryService invService = m_scene.InventoryService; |
1006 | InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); | 1023 | InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); |
1007 | assetRequestItem = invService.GetItem(assetRequestItem); | 1024 | assetRequestItem = invService.GetItem(assetRequestItem); |
1008 | if (assetRequestItem == null) // Library item | 1025 | if (assetRequestItem == null && LibraryRootFolder != null) // Library item |
1009 | { | 1026 | { |
1010 | assetRequestItem = scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(notecard); | 1027 | assetRequestItem = LibraryRootFolder.FindItem(notecard); |
1011 | 1028 | ||
1012 | if (assetRequestItem != null) // Implicitly readable | 1029 | if (assetRequestItem != null) // Implicitly readable |
1013 | return true; | 1030 | return true; |
@@ -1425,9 +1442,9 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1425 | IInventoryService invService = m_scene.InventoryService; | 1442 | IInventoryService invService = m_scene.InventoryService; |
1426 | InventoryItemBase assetRequestItem = new InventoryItemBase(script, user); | 1443 | InventoryItemBase assetRequestItem = new InventoryItemBase(script, user); |
1427 | assetRequestItem = invService.GetItem(assetRequestItem); | 1444 | assetRequestItem = invService.GetItem(assetRequestItem); |
1428 | if (assetRequestItem == null) // Library item | 1445 | if (assetRequestItem == null && LibraryRootFolder != null) // Library item |
1429 | { | 1446 | { |
1430 | assetRequestItem = m_scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(script); | 1447 | assetRequestItem = LibraryRootFolder.FindItem(script); |
1431 | 1448 | ||
1432 | if (assetRequestItem != null) // Implicitly readable | 1449 | if (assetRequestItem != null) // Implicitly readable |
1433 | return true; | 1450 | return true; |
@@ -1520,9 +1537,9 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
1520 | IInventoryService invService = m_scene.InventoryService; | 1537 | IInventoryService invService = m_scene.InventoryService; |
1521 | InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); | 1538 | InventoryItemBase assetRequestItem = new InventoryItemBase(notecard, user); |
1522 | assetRequestItem = invService.GetItem(assetRequestItem); | 1539 | assetRequestItem = invService.GetItem(assetRequestItem); |
1523 | if (assetRequestItem == null) // Library item | 1540 | if (assetRequestItem == null && LibraryRootFolder != null) // Library item |
1524 | { | 1541 | { |
1525 | assetRequestItem = m_scene.CommsManager.UserProfileCacheService.LibraryRoot.FindItem(notecard); | 1542 | assetRequestItem = LibraryRootFolder.FindItem(notecard); |
1526 | 1543 | ||
1527 | if (assetRequestItem != null) // Implicitly readable | 1544 | if (assetRequestItem != null) // Implicitly readable |
1528 | return true; | 1545 | return true; |