Changed a few bits in Inventory/Archiver/InventoryArchiveReadRequest.cs to be less dependent on a Scene.
							parent
							
								
									2f6ee8aee2
								
							
						
					
					
						commit
						c358d5d168
					
				|  | @ -67,10 +67,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|         /// </summary> | ||||
|         protected bool m_merge; | ||||
| 
 | ||||
|         /// <value> | ||||
|         /// We only use this to request modules | ||||
|         /// </value> | ||||
|         protected Scene m_scene; | ||||
|         protected IInventoryService m_InventoryService; | ||||
|         protected IAssetService m_AssetService; | ||||
|         protected IUserAccountService m_UserAccountService; | ||||
| 
 | ||||
|         /// <value> | ||||
|         /// The stream from which the inventory archive will be loaded. | ||||
|  | @ -118,9 +117,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|         protected Dictionary<UUID, UUID> m_creatorIdForAssetId = new Dictionary<UUID, UUID>();         | ||||
| 
 | ||||
|         public InventoryArchiveReadRequest( | ||||
|             Scene scene, UserAccount userInfo, string invPath, string loadPath, bool merge) | ||||
|             IInventoryService inv, IAssetService assets, IUserAccountService uacc, UserAccount userInfo, string invPath, string loadPath, bool merge) | ||||
|             : this( | ||||
|                 scene, | ||||
|                 inv, | ||||
|                 assets, | ||||
|                 uacc, | ||||
|                 userInfo, | ||||
|                 invPath, | ||||
|                 new GZipStream(ArchiveHelpers.GetStream(loadPath), CompressionMode.Decompress), | ||||
|  | @ -129,9 +130,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|         } | ||||
| 
 | ||||
|         public InventoryArchiveReadRequest( | ||||
|             Scene scene, UserAccount userInfo, string invPath, Stream loadStream, bool merge) | ||||
|             IInventoryService inv, IAssetService assets, IUserAccountService uacc, UserAccount userInfo, string invPath, Stream loadStream, bool merge) | ||||
|         { | ||||
|             m_scene = scene; | ||||
|             m_InventoryService = inv; | ||||
|             m_AssetService = assets; | ||||
|             m_UserAccountService = uacc; | ||||
|             m_merge = merge; | ||||
|             m_userInfo = userInfo; | ||||
|             m_invPath = invPath; | ||||
|  | @ -162,7 +165,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|                 | ||||
|                 List<InventoryFolderBase> folderCandidates | ||||
|                     = InventoryArchiveUtils.FindFoldersByPath( | ||||
|                         m_scene.InventoryService, m_userInfo.PrincipalID, m_invPath); | ||||
|                         m_InventoryService, m_userInfo.PrincipalID, m_invPath); | ||||
|      | ||||
|                 if (folderCandidates.Count == 0) | ||||
|                 { | ||||
|  | @ -297,7 +300,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|                         string plainPath = ArchiveConstants.ExtractPlainPathFromIarPath(archivePath); | ||||
|                         List<InventoryFolderBase> folderCandidates | ||||
|                             = InventoryArchiveUtils.FindFoldersByPath( | ||||
|                                 m_scene.InventoryService, m_userInfo.PrincipalID, plainPath); | ||||
|                                 m_InventoryService, m_userInfo.PrincipalID, plainPath); | ||||
|              | ||||
|                         if (folderCandidates.Count != 0) | ||||
|                         { | ||||
|  | @ -380,7 +383,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|                     = new InventoryFolderBase( | ||||
|                         newFolderId, newFolderName, m_userInfo.PrincipalID,  | ||||
|                         (short)AssetType.Unknown, destFolder.ID, 1); | ||||
|                 m_scene.InventoryService.AddFolder(destFolder); | ||||
|                 m_InventoryService.AddFolder(destFolder); | ||||
| 
 | ||||
|                 // Record that we have now created this folder | ||||
|                 iarPathExisting += rawDirsToCreate[i] + "/"; | ||||
|  | @ -406,7 +409,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|             // Don't use the item ID that's in the file | ||||
|             item.ID = UUID.Random(); | ||||
| 
 | ||||
|             UUID ospResolvedId = OspResolver.ResolveOspa(item.CreatorId, m_scene.UserAccountService); | ||||
|             UUID ospResolvedId = OspResolver.ResolveOspa(item.CreatorId, m_UserAccountService); | ||||
|             if (UUID.Zero != ospResolvedId) // The user exists in this grid | ||||
|             { | ||||
| //                m_log.DebugFormat("[INVENTORY ARCHIVER]: Found creator {0} via OSPA resolution", ospResolvedId); | ||||
|  | @ -436,7 +439,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|             // relying on native tar tools. | ||||
|             m_creatorIdForAssetId[item.AssetID] = item.CreatorIdAsUuid; | ||||
| 
 | ||||
|             m_scene.AddInventoryItem(item); | ||||
|             if (!m_InventoryService.AddItem(item)) | ||||
|                 m_log.WarnFormat("[INVENTORY ARCHIVER]: Unable to save item {0} in folder {1}", item.Name, item.Folder); | ||||
|          | ||||
|             return item; | ||||
|         } | ||||
|  | @ -533,7 +537,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
|                 AssetBase asset = new AssetBase(assetId, "From IAR", assetType, UUID.Zero.ToString()); | ||||
|                 asset.Data = data; | ||||
| 
 | ||||
|                 m_scene.AssetService.Store(asset); | ||||
|                 m_AssetService.Store(asset); | ||||
| 
 | ||||
|                 return true; | ||||
|             } | ||||
|  |  | |||
|  | @ -294,7 +294,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
| 
 | ||||
|                         try | ||||
|                         { | ||||
|                             request = new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadStream, merge); | ||||
|                             request = new InventoryArchiveReadRequest(m_aScene.InventoryService, m_aScene.AssetService, m_aScene.UserAccountService, userInfo, invPath, loadStream, merge); | ||||
|                         } | ||||
|                         catch (EntryPointNotFoundException e) | ||||
|                         { | ||||
|  | @ -342,7 +342,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
| 
 | ||||
|                         try | ||||
|                         { | ||||
|                             request = new InventoryArchiveReadRequest(m_aScene, userInfo, invPath, loadPath, merge); | ||||
|                             request = new InventoryArchiveReadRequest(m_aScene.InventoryService, m_aScene.AssetService, m_aScene.UserAccountService, userInfo, invPath, loadPath, merge); | ||||
|                         } | ||||
|                         catch (EntryPointNotFoundException e) | ||||
|                         { | ||||
|  |  | |||
|  | @ -229,7 +229,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
| 
 | ||||
|             { | ||||
|                 // Test replication of path1 | ||||
|                 new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) | ||||
|                 new InventoryArchiveReadRequest(scene.InventoryService, scene.AssetService, scene.UserAccountService, ua1, null, (Stream)null, false) | ||||
|                     .ReplicateArchivePathToUserInventory( | ||||
|                         iarPath1, scene.InventoryService.GetRootFolder(ua1.PrincipalID),  | ||||
|                         foldersCreated, nodesLoaded); | ||||
|  | @ -246,7 +246,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
|              | ||||
|             { | ||||
|                 // Test replication of path2 | ||||
|                 new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) | ||||
|                 new InventoryArchiveReadRequest(scene.InventoryService, scene.AssetService, scene.UserAccountService, ua1, null, (Stream)null, false) | ||||
|                     .ReplicateArchivePathToUserInventory( | ||||
|                         iarPath2, scene.InventoryService.GetRootFolder(ua1.PrincipalID),  | ||||
|                         foldersCreated, nodesLoaded); | ||||
|  | @ -291,8 +291,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
|             string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); | ||||
|              | ||||
|             string itemArchivePath = string.Join("", new string[] { folder1ArchiveName, folder2ArchiveName }); | ||||
|              | ||||
|             new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) | ||||
| 
 | ||||
|             new InventoryArchiveReadRequest(scene.InventoryService, scene.AssetService, scene.UserAccountService, ua1, null, (Stream)null, false) | ||||
|                 .ReplicateArchivePathToUserInventory( | ||||
|                     itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID),  | ||||
|                     new Dictionary<string, InventoryFolderBase>(), new HashSet<InventoryNodeBase>()); | ||||
|  | @ -342,8 +342,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
|             string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); | ||||
|              | ||||
|             string itemArchivePath = string.Join("", new string[] { folder1ArchiveName, folder2ArchiveName }); | ||||
|              | ||||
|             new InventoryArchiveReadRequest(scene, ua1, folder1ExistingName, (Stream)null, true) | ||||
| 
 | ||||
|             new InventoryArchiveReadRequest(scene.InventoryService, scene.AssetService, scene.UserAccountService, ua1, folder1ExistingName, (Stream)null, true) | ||||
|                 .ReplicateArchivePathToUserInventory( | ||||
|                     itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID),  | ||||
|                     new Dictionary<string, InventoryFolderBase>(), new HashSet<InventoryNodeBase>()); | ||||
|  |  | |||
|  | @ -86,7 +86,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
|             Assert.That(filePath, Is.EqualTo(ArchiveConstants.CONTROL_FILE_PATH)); | ||||
|              | ||||
|             InventoryArchiveReadRequest iarr  | ||||
|                 = new InventoryArchiveReadRequest(null, null, null, (Stream)null, false); | ||||
|                 = new InventoryArchiveReadRequest(null, null, null, null, null, (Stream)null, false); | ||||
|             iarr.LoadControlFile(filePath, data); | ||||
|              | ||||
|             Assert.That(iarr.ControlFileLoaded, Is.True); | ||||
|  |  | |||
|  | @ -176,7 +176,7 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
|                 m_log.InfoFormat("[LIBRARY MODULE]: Loading library archive {0} ({1})...", iarFileName, simpleName); | ||||
|                 simpleName = GetInventoryPathFromName(simpleName); | ||||
| 
 | ||||
|                 InventoryArchiveReadRequest archread = new InventoryArchiveReadRequest(m_MockScene, uinfo, simpleName, iarFileName, false); | ||||
|                 InventoryArchiveReadRequest archread = new InventoryArchiveReadRequest(m_MockScene.InventoryService, m_MockScene.AssetService, m_MockScene.UserAccountService, uinfo, simpleName, iarFileName, false); | ||||
|                 try | ||||
|                 { | ||||
|                     HashSet<InventoryNodeBase> nodes = archread.Execute(); | ||||
|  | @ -185,7 +185,7 @@ namespace OpenSim.Region.CoreModules.Framework.Library | |||
|                         // didn't find the subfolder with the given name; place it on the top | ||||
|                         m_log.InfoFormat("[LIBRARY MODULE]: Didn't find {0} in library. Placing archive on the top level", simpleName); | ||||
|                         archread.Close(); | ||||
|                         archread = new InventoryArchiveReadRequest(m_MockScene, uinfo, "/", iarFileName, false); | ||||
|                         archread = new InventoryArchiveReadRequest(m_MockScene.InventoryService, m_MockScene.AssetService, m_MockScene.UserAccountService, uinfo, "/", iarFileName, false); | ||||
|                         archread.Execute(); | ||||
|                     } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Diva Canto
						Diva Canto