diff options
author | diva | 2009-06-10 13:18:32 +0000 |
---|---|---|
committer | diva | 2009-06-10 13:18:32 +0000 |
commit | 0f367bd7bbc5d22d4834e1eb0f1671381485143e (patch) | |
tree | eeb4290f1146601f8fd97dc164e0a7f247a2fafb /OpenSim/Framework | |
parent | From: Alan Webb <alan_webb@us.ibm.com> (diff) | |
download | opensim-SC_OLD-0f367bd7bbc5d22d4834e1eb0f1671381485143e.zip opensim-SC_OLD-0f367bd7bbc5d22d4834e1eb0f1671381485143e.tar.gz opensim-SC_OLD-0f367bd7bbc5d22d4834e1eb0f1671381485143e.tar.bz2 opensim-SC_OLD-0f367bd7bbc5d22d4834e1eb0f1671381485143e.tar.xz |
Heart surgery no.2: the inventory service hooks.
Several improvements in the connectors themselves.
Several improvements in configurations.
Needed to add a hack in IUserService and UserManagerBase, to be removed when that service is refactored.
Diffstat (limited to 'OpenSim/Framework')
5 files changed, 61 insertions, 86 deletions
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index 5181bdaea..10aff42 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | |||
@@ -30,6 +30,7 @@ using System.Collections.Generic; | |||
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using log4net; | 31 | using log4net; |
32 | using OpenMetaverse; | 32 | using OpenMetaverse; |
33 | using OpenSim.Services.Interfaces; | ||
33 | 34 | ||
34 | namespace OpenSim.Framework.Communications.Cache | 35 | namespace OpenSim.Framework.Communications.Cache |
35 | { | 36 | { |
@@ -62,7 +63,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
62 | /// <summary> | 63 | /// <summary> |
63 | /// The comms manager holds references to services (user, grid, inventory, etc.) | 64 | /// The comms manager holds references to services (user, grid, inventory, etc.) |
64 | /// </summary> | 65 | /// </summary> |
65 | private readonly CommunicationsManager m_commsManager; | 66 | private readonly IInventoryService m_InventoryService; |
66 | 67 | ||
67 | public UserProfileData UserProfile { get { return m_userProfile; } } | 68 | public UserProfileData UserProfile { get { return m_userProfile; } } |
68 | private UserProfileData m_userProfile; | 69 | private UserProfileData m_userProfile; |
@@ -96,10 +97,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
96 | /// </summary> | 97 | /// </summary> |
97 | /// <param name="commsManager"></param> | 98 | /// <param name="commsManager"></param> |
98 | /// <param name="userProfile"></param> | 99 | /// <param name="userProfile"></param> |
99 | public CachedUserInfo(CommunicationsManager commsManager, UserProfileData userProfile) | 100 | public CachedUserInfo(IInventoryService invService, UserProfileData userProfile) |
100 | { | 101 | { |
101 | m_commsManager = commsManager; | ||
102 | m_userProfile = userProfile; | 102 | m_userProfile = userProfile; |
103 | m_InventoryService = invService; | ||
103 | } | 104 | } |
104 | 105 | ||
105 | /// <summary> | 106 | /// <summary> |
@@ -213,15 +214,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
213 | /// asynchronously otherwise. | 214 | /// asynchronously otherwise. |
214 | public void FetchInventory() | 215 | public void FetchInventory() |
215 | { | 216 | { |
216 | if (m_commsManager.SecureInventoryService != null) | 217 | m_InventoryService.GetUserInventory(UserProfile.ID, InventoryReceive); |
217 | { | ||
218 | m_commsManager.SecureInventoryService.RequestInventoryForUser( | ||
219 | UserProfile.ID, SessionID, InventoryReceive); | ||
220 | } | ||
221 | else | ||
222 | { | ||
223 | m_commsManager.InventoryService.RequestInventoryForUser(UserProfile.ID, InventoryReceive); | ||
224 | } | ||
225 | } | 218 | } |
226 | 219 | ||
227 | /// <summary> | 220 | /// <summary> |
@@ -383,14 +376,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
383 | createdBaseFolder.Type = createdFolder.Type; | 376 | createdBaseFolder.Type = createdFolder.Type; |
384 | createdBaseFolder.Version = createdFolder.Version; | 377 | createdBaseFolder.Version = createdFolder.Version; |
385 | 378 | ||
386 | if (m_commsManager.SecureInventoryService != null) | 379 | m_InventoryService.AddFolder(createdBaseFolder); |
387 | { | 380 | |
388 | m_commsManager.SecureInventoryService.AddFolder(createdBaseFolder, m_session_id); | ||
389 | } | ||
390 | else | ||
391 | { | ||
392 | m_commsManager.InventoryService.AddFolder(createdBaseFolder); | ||
393 | } | ||
394 | return true; | 381 | return true; |
395 | } | 382 | } |
396 | else | 383 | else |
@@ -449,14 +436,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
449 | baseFolder.Type = (short)type; | 436 | baseFolder.Type = (short)type; |
450 | baseFolder.Version = RootFolder.Version; | 437 | baseFolder.Version = RootFolder.Version; |
451 | 438 | ||
452 | if (m_commsManager.SecureInventoryService != null) | 439 | m_InventoryService.UpdateFolder(baseFolder); |
453 | { | ||
454 | m_commsManager.SecureInventoryService.UpdateFolder(baseFolder, m_session_id); | ||
455 | } | ||
456 | else | ||
457 | { | ||
458 | m_commsManager.InventoryService.UpdateFolder(baseFolder); | ||
459 | } | ||
460 | 440 | ||
461 | folder.Name = name; | 441 | folder.Name = name; |
462 | folder.Type = (short)type; | 442 | folder.Type = (short)type; |
@@ -498,14 +478,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
498 | baseFolder.ID = folderID; | 478 | baseFolder.ID = folderID; |
499 | baseFolder.ParentID = parentID; | 479 | baseFolder.ParentID = parentID; |
500 | 480 | ||
501 | if (m_commsManager.SecureInventoryService != null) | 481 | m_InventoryService.MoveFolder(baseFolder); |
502 | { | ||
503 | m_commsManager.SecureInventoryService.MoveFolder(baseFolder, m_session_id); | ||
504 | } | ||
505 | else | ||
506 | { | ||
507 | m_commsManager.InventoryService.MoveFolder(baseFolder); | ||
508 | } | ||
509 | 482 | ||
510 | InventoryFolderImpl folder = RootFolder.FindFolder(folderID); | 483 | InventoryFolderImpl folder = RootFolder.FindFolder(folderID); |
511 | InventoryFolderImpl parentFolder = RootFolder.FindFolder(parentID); | 484 | InventoryFolderImpl parentFolder = RootFolder.FindFolder(parentID); |
@@ -568,14 +541,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
568 | purgedBaseFolder.Type = purgedFolder.Type; | 541 | purgedBaseFolder.Type = purgedFolder.Type; |
569 | purgedBaseFolder.Version = purgedFolder.Version; | 542 | purgedBaseFolder.Version = purgedFolder.Version; |
570 | 543 | ||
571 | if (m_commsManager.SecureInventoryService != null) | 544 | m_InventoryService.PurgeFolder(purgedBaseFolder); |
572 | { | ||
573 | m_commsManager.SecureInventoryService.PurgeFolder(purgedBaseFolder, m_session_id); | ||
574 | } | ||
575 | else | ||
576 | { | ||
577 | m_commsManager.InventoryService.PurgeFolder(purgedBaseFolder); | ||
578 | } | ||
579 | 545 | ||
580 | purgedFolder.Purge(); | 546 | purgedFolder.Purge(); |
581 | 547 | ||
@@ -615,14 +581,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
615 | } | 581 | } |
616 | ItemReceive(item, null); | 582 | ItemReceive(item, null); |
617 | 583 | ||
618 | if (m_commsManager.SecureInventoryService != null) | 584 | m_InventoryService.AddItem(item); |
619 | { | ||
620 | m_commsManager.SecureInventoryService.AddItem(item, m_session_id); | ||
621 | } | ||
622 | else | ||
623 | { | ||
624 | m_commsManager.InventoryService.AddItem(item); | ||
625 | } | ||
626 | } | 585 | } |
627 | else | 586 | else |
628 | { | 587 | { |
@@ -642,14 +601,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
642 | { | 601 | { |
643 | if (m_hasReceivedInventory) | 602 | if (m_hasReceivedInventory) |
644 | { | 603 | { |
645 | if (m_commsManager.SecureInventoryService != null) | 604 | m_InventoryService.UpdateItem(item); |
646 | { | ||
647 | m_commsManager.SecureInventoryService.UpdateItem(item, m_session_id); | ||
648 | } | ||
649 | else | ||
650 | { | ||
651 | m_commsManager.InventoryService.UpdateItem(item); | ||
652 | } | ||
653 | } | 605 | } |
654 | else | 606 | else |
655 | { | 607 | { |
@@ -688,14 +640,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
688 | 640 | ||
689 | if (RootFolder.DeleteItem(item.ID)) | 641 | if (RootFolder.DeleteItem(item.ID)) |
690 | { | 642 | { |
691 | if (m_commsManager.SecureInventoryService != null) | 643 | return m_InventoryService.DeleteItem(item); |
692 | { | ||
693 | return m_commsManager.SecureInventoryService.DeleteItem(item, m_session_id); | ||
694 | } | ||
695 | else | ||
696 | { | ||
697 | return m_commsManager.InventoryService.DeleteItem(item); | ||
698 | } | ||
699 | } | 644 | } |
700 | } | 645 | } |
701 | else | 646 | else |
@@ -789,14 +734,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
789 | 734 | ||
790 | InventoryItemBase itemInfo = null; | 735 | InventoryItemBase itemInfo = null; |
791 | 736 | ||
792 | if (m_commsManager.SecureInventoryService != null) | 737 | itemInfo = m_InventoryService.QueryItem(item); |
793 | { | ||
794 | itemInfo = m_commsManager.SecureInventoryService.QueryItem(item, m_session_id); | ||
795 | } | ||
796 | else | ||
797 | { | ||
798 | itemInfo = m_commsManager.InventoryService.QueryItem(item); | ||
799 | } | ||
800 | 738 | ||
801 | if (itemInfo != null) | 739 | if (itemInfo != null) |
802 | { | 740 | { |
@@ -833,14 +771,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
833 | 771 | ||
834 | InventoryFolderBase folderInfo = null; | 772 | InventoryFolderBase folderInfo = null; |
835 | 773 | ||
836 | if (m_commsManager.SecureInventoryService != null) | 774 | folderInfo = m_InventoryService.QueryFolder(folder); |
837 | { | ||
838 | folderInfo = m_commsManager.SecureInventoryService.QueryFolder(folder, m_session_id); | ||
839 | } | ||
840 | else | ||
841 | { | ||
842 | folderInfo = m_commsManager.InventoryService.QueryFolder(folder); | ||
843 | } | ||
844 | 775 | ||
845 | if (folderInfo != null) | 776 | if (folderInfo != null) |
846 | { | 777 | { |
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs index b7f209c..c9f5236 100644 --- a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs +++ b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs | |||
@@ -29,6 +29,7 @@ using System.Collections.Generic; | |||
29 | using System.Reflection; | 29 | using System.Reflection; |
30 | using log4net; | 30 | using log4net; |
31 | using OpenMetaverse; | 31 | using OpenMetaverse; |
32 | using OpenSim.Services.Interfaces; | ||
32 | 33 | ||
33 | namespace OpenSim.Framework.Communications.Cache | 34 | namespace OpenSim.Framework.Communications.Cache |
34 | { | 35 | { |
@@ -66,6 +67,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
66 | /// </summary> | 67 | /// </summary> |
67 | public readonly InventoryFolderImpl LibraryRoot; | 68 | public readonly InventoryFolderImpl LibraryRoot; |
68 | 69 | ||
70 | private IInventoryService m_InventoryService; | ||
71 | |||
69 | /// <summary> | 72 | /// <summary> |
70 | /// Constructor | 73 | /// Constructor |
71 | /// </summary> | 74 | /// </summary> |
@@ -77,6 +80,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
77 | LibraryRoot = libraryRootFolder; | 80 | LibraryRoot = libraryRootFolder; |
78 | } | 81 | } |
79 | 82 | ||
83 | public void SetInventoryService(IInventoryService invService) | ||
84 | { | ||
85 | m_InventoryService = invService; | ||
86 | } | ||
87 | |||
80 | /// <summary> | 88 | /// <summary> |
81 | /// A new user has moved into a region in this instance so retrieve their profile from the user service. | 89 | /// A new user has moved into a region in this instance so retrieve their profile from the user service. |
82 | /// </summary> | 90 | /// </summary> |
@@ -200,7 +208,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
200 | /// <param name="userProfile"></param> | 208 | /// <param name="userProfile"></param> |
201 | protected CachedUserInfo AddToCaches(UserProfileData userProfile) | 209 | protected CachedUserInfo AddToCaches(UserProfileData userProfile) |
202 | { | 210 | { |
203 | CachedUserInfo createdUserInfo = new CachedUserInfo(m_commsManager, userProfile); | 211 | CachedUserInfo createdUserInfo = new CachedUserInfo(m_InventoryService, userProfile); |
204 | 212 | ||
205 | lock (m_userProfilesById) | 213 | lock (m_userProfilesById) |
206 | { | 214 | { |
diff --git a/OpenSim/Framework/Communications/IUserService.cs b/OpenSim/Framework/Communications/IUserService.cs index c076ac4..725225d 100644 --- a/OpenSim/Framework/Communications/IUserService.cs +++ b/OpenSim/Framework/Communications/IUserService.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using OpenMetaverse; | 30 | using OpenMetaverse; |
31 | using OpenSim.Services.Interfaces; | ||
31 | 32 | ||
32 | namespace OpenSim.Framework.Communications | 33 | namespace OpenSim.Framework.Communications |
33 | { | 34 | { |
@@ -135,5 +136,10 @@ namespace OpenSim.Framework.Communications | |||
135 | // This probably shouldn't be here, it belongs to IAuthentication | 136 | // This probably shouldn't be here, it belongs to IAuthentication |
136 | // But since Scenes only have IUserService references, I'm placing it here for now. | 137 | // But since Scenes only have IUserService references, I'm placing it here for now. |
137 | bool VerifySession(UUID userID, UUID sessionID); | 138 | bool VerifySession(UUID userID, UUID sessionID); |
139 | |||
140 | |||
141 | // Temporary Hack until we move everything to the new service model | ||
142 | void SetInventoryService(IInventoryService invService); | ||
143 | |||
138 | } | 144 | } |
139 | } | 145 | } |
diff --git a/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs b/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs index f30d28b..ac0dc6d 100644 --- a/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs +++ b/OpenSim/Framework/Communications/Tests/Cache/AssetCacheTests.cs | |||
@@ -33,6 +33,7 @@ using NUnit.Framework.SyntaxHelpers; | |||
33 | using OpenMetaverse; | 33 | using OpenMetaverse; |
34 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Communications.Cache; | 35 | using OpenSim.Framework.Communications.Cache; |
36 | using OpenSim.Services.Interfaces; | ||
36 | using OpenSim.Tests.Common.Mock; | 37 | using OpenSim.Tests.Common.Mock; |
37 | 38 | ||
38 | namespace OpenSim.Framework.Communications.Tests | 39 | namespace OpenSim.Framework.Communications.Tests |
@@ -143,6 +144,11 @@ namespace OpenSim.Framework.Communications.Tests | |||
143 | { | 144 | { |
144 | return true; | 145 | return true; |
145 | } | 146 | } |
147 | |||
148 | public void SetInventoryService(IInventoryService inv) | ||
149 | { | ||
150 | throw new NotImplementedException(); | ||
151 | } | ||
146 | } | 152 | } |
147 | } | 153 | } |
148 | } | 154 | } |
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index c3aaa4b..898239d 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs | |||
@@ -37,6 +37,7 @@ using OpenMetaverse.StructuredData; | |||
37 | using OpenSim.Data; | 37 | using OpenSim.Data; |
38 | using OpenSim.Framework.Communications; | 38 | using OpenSim.Framework.Communications; |
39 | using OpenSim.Framework.Statistics; | 39 | using OpenSim.Framework.Statistics; |
40 | using OpenSim.Services.Interfaces; | ||
40 | 41 | ||
41 | namespace OpenSim.Framework.Communications | 42 | namespace OpenSim.Framework.Communications |
42 | { | 43 | { |
@@ -54,6 +55,7 @@ namespace OpenSim.Framework.Communications | |||
54 | private List<IUserDataPlugin> m_plugins = new List<IUserDataPlugin>(); | 55 | private List<IUserDataPlugin> m_plugins = new List<IUserDataPlugin>(); |
55 | 56 | ||
56 | protected CommunicationsManager m_commsManager; | 57 | protected CommunicationsManager m_commsManager; |
58 | protected IInventoryService m_InventoryService; | ||
57 | 59 | ||
58 | /// <summary> | 60 | /// <summary> |
59 | /// Constructor | 61 | /// Constructor |
@@ -64,6 +66,11 @@ namespace OpenSim.Framework.Communications | |||
64 | m_commsManager = commsManager; | 66 | m_commsManager = commsManager; |
65 | } | 67 | } |
66 | 68 | ||
69 | public virtual void SetInventoryService(IInventoryService invService) | ||
70 | { | ||
71 | m_InventoryService = invService; | ||
72 | } | ||
73 | |||
67 | /// <summary> | 74 | /// <summary> |
68 | /// Add a new user data plugin - plugins will be requested in the order they were added. | 75 | /// Add a new user data plugin - plugins will be requested in the order they were added. |
69 | /// </summary> | 76 | /// </summary> |
@@ -676,7 +683,24 @@ namespace OpenSim.Framework.Communications | |||
676 | } | 683 | } |
677 | else | 684 | else |
678 | { | 685 | { |
679 | m_commsManager.InterServiceInventoryService.CreateNewUserInventory(userProf.ID); | 686 | // |
687 | // WARNING: This is a horrible hack | ||
688 | // The purpose here is to avoid touching the user server at this point. | ||
689 | // There are dragons there that I can't deal with right now. | ||
690 | // diva 06/09/09 | ||
691 | // | ||
692 | if (m_InventoryService != null) | ||
693 | { | ||
694 | // local service (standalone) | ||
695 | m_log.Debug("[USERSTORAGE]: using IInventoryService to create user's inventory"); | ||
696 | m_InventoryService.CreateUserInventory(userProf.ID); | ||
697 | } | ||
698 | else | ||
699 | { | ||
700 | // used by the user server | ||
701 | m_log.Debug("[USERSTORAGE]: using m_commsManager.InterServiceInventoryService to create user's inventory"); | ||
702 | m_commsManager.InterServiceInventoryService.CreateNewUserInventory(userProf.ID); | ||
703 | } | ||
680 | 704 | ||
681 | return userProf.ID; | 705 | return userProf.ID; |
682 | } | 706 | } |