diff options
author | Melanie | 2010-07-14 19:53:15 +0100 |
---|---|---|
committer | Melanie | 2010-07-14 19:53:15 +0100 |
commit | 0b74662ce2e0d0afebf977b71c34b5246b81b8f9 (patch) | |
tree | 4fd2b4437e7a0621f3ddad4986a31d9dc328b4ee | |
parent | Major attachments cleanup. Remove unused AttachObject ClientView method (diff) | |
parent | Major attachments cleanup. Remove unused AttachObject ClientView method (diff) | |
download | opensim-SC_OLD-0b74662ce2e0d0afebf977b71c34b5246b81b8f9.zip opensim-SC_OLD-0b74662ce2e0d0afebf977b71c34b5246b81b8f9.tar.gz opensim-SC_OLD-0b74662ce2e0d0afebf977b71c34b5246b81b8f9.tar.bz2 opensim-SC_OLD-0b74662ce2e0d0afebf977b71c34b5246b81b8f9.tar.xz |
Merge branch 'master' into careminster-presence-refactor
7 files changed, 147 insertions, 23 deletions
diff --git a/OpenSim/Data/Tests/RegionTests.cs b/OpenSim/Data/Tests/RegionTests.cs index 2506678..eeffdda 100644 --- a/OpenSim/Data/Tests/RegionTests.cs +++ b/OpenSim/Data/Tests/RegionTests.cs | |||
@@ -781,7 +781,7 @@ namespace OpenSim.Data.Tests | |||
781 | // Ownership changes when you drop an object into an object | 781 | // Ownership changes when you drop an object into an object |
782 | // owned by someone else | 782 | // owned by someone else |
783 | Assert.That(t.OwnerID,Is.EqualTo(sog.RootPart.OwnerID), "Assert.That(t.OwnerID,Is.EqualTo(sog.RootPart.OwnerID))"); | 783 | Assert.That(t.OwnerID,Is.EqualTo(sog.RootPart.OwnerID), "Assert.That(t.OwnerID,Is.EqualTo(sog.RootPart.OwnerID))"); |
784 | Assert.That(t.CurrentPermissions, Is.EqualTo(curperm | 16), "Assert.That(t.CurrentPermissions, Is.EqualTo(curperm | 8))"); | 784 | // Assert.That(t.CurrentPermissions, Is.EqualTo(curperm | 16), "Assert.That(t.CurrentPermissions, Is.EqualTo(curperm | 8))"); |
785 | Assert.That(t.ParentID,Is.EqualTo(sog.RootPart.FolderID), "Assert.That(t.ParentID,Is.EqualTo(sog.RootPart.FolderID))"); | 785 | Assert.That(t.ParentID,Is.EqualTo(sog.RootPart.FolderID), "Assert.That(t.ParentID,Is.EqualTo(sog.RootPart.FolderID))"); |
786 | Assert.That(t.ParentPartID,Is.EqualTo(sog.RootPart.UUID), "Assert.That(t.ParentPartID,Is.EqualTo(sog.RootPart.UUID))"); | 786 | Assert.That(t.ParentPartID,Is.EqualTo(sog.RootPart.UUID), "Assert.That(t.ParentPartID,Is.EqualTo(sog.RootPart.UUID))"); |
787 | } | 787 | } |
diff --git a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs index d30e954..3d6e7f3 100644 --- a/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs +++ b/OpenSim/Region/CoreModules/Agent/AssetTransaction/AgentAssetsTransactions.cs | |||
@@ -182,7 +182,13 @@ namespace OpenSim.Region.CoreModules.Agent.AssetTransaction | |||
182 | 182 | ||
183 | if (part.Inventory.UpdateInventoryItem(item)) | 183 | if (part.Inventory.UpdateInventoryItem(item)) |
184 | { | 184 | { |
185 | remoteClient.SendAgentAlertMessage("Notecard saved", false); | 185 | if ((InventoryType)item.InvType == InventoryType.Notecard) |
186 | remoteClient.SendAgentAlertMessage("Notecard saved", false); | ||
187 | else if ((InventoryType)item.InvType == InventoryType.LSL) | ||
188 | remoteClient.SendAgentAlertMessage("Script saved", false); | ||
189 | else | ||
190 | remoteClient.SendAgentAlertMessage("Item saved", false); | ||
191 | |||
186 | part.GetProperties(remoteClient); | 192 | part.GetProperties(remoteClient); |
187 | } | 193 | } |
188 | } | 194 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveUtils.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveUtils.cs index ca33968..84afb40 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveUtils.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveUtils.cs | |||
@@ -206,11 +206,18 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver | |||
206 | 206 | ||
207 | if (components.Length == 1) | 207 | if (components.Length == 1) |
208 | { | 208 | { |
209 | // m_log.DebugFormat("FOUND SINGLE COMPONENT [{0}]", components[0]); | 209 | // m_log.DebugFormat( |
210 | // "FOUND SINGLE COMPONENT [{0}]. Looking for this in [{1}] {2}", | ||
211 | // components[0], startFolder.Name, startFolder.ID); | ||
210 | 212 | ||
211 | List<InventoryItemBase> items = inventoryService.GetFolderItems(startFolder.Owner, startFolder.ID); | 213 | List<InventoryItemBase> items = inventoryService.GetFolderItems(startFolder.Owner, startFolder.ID); |
214 | |||
215 | // m_log.DebugFormat("[INVENTORY ARCHIVE UTILS]: Found {0} items in FindItemByPath()", items.Count); | ||
216 | |||
212 | foreach (InventoryItemBase item in items) | 217 | foreach (InventoryItemBase item in items) |
213 | { | 218 | { |
219 | // m_log.DebugFormat("[INVENTORY ARCHIVE UTILS]: Inspecting item {0} {1}", item.Name, item.ID); | ||
220 | |||
214 | if (item.Name == components[0]) | 221 | if (item.Name == components[0]) |
215 | return item; | 222 | return item; |
216 | } | 223 | } |
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 5130fa5..4531bfd 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs | |||
@@ -63,13 +63,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
63 | } | 63 | } |
64 | 64 | ||
65 | /// <summary> | 65 | /// <summary> |
66 | /// Test saving a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet). | 66 | /// Test saving an inventory path to a V0.1 OpenSim Inventory Archive |
67 | /// (subject to change since there is no fixed format yet). | ||
67 | /// </summary> | 68 | /// </summary> |
68 | // Commenting for now! The mock inventory service needs more beef, at least for | ||
69 | // GetFolderForType | ||
70 | // REFACTORING PROBLEM. This needs to be rewritten. | ||
71 | [Test] | 69 | [Test] |
72 | public void TestSaveIarV0_1() | 70 | public void TestSavePathToIarV0_1() |
73 | { | 71 | { |
74 | TestHelper.InMethod(); | 72 | TestHelper.InMethod(); |
75 | // log4net.Config.XmlConfigurator.Configure(); | 73 | // log4net.Config.XmlConfigurator.Configure(); |
@@ -182,6 +180,123 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
182 | } | 180 | } |
183 | 181 | ||
184 | /// <summary> | 182 | /// <summary> |
183 | /// Test saving a single inventory item to a V0.1 OpenSim Inventory Archive | ||
184 | /// (subject to change since there is no fixed format yet). | ||
185 | /// </summary> | ||
186 | [Test] | ||
187 | public void TestSaveItemToIarV0_1() | ||
188 | { | ||
189 | TestHelper.InMethod(); | ||
190 | // log4net.Config.XmlConfigurator.Configure(); | ||
191 | |||
192 | InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); | ||
193 | |||
194 | Scene scene = SceneSetupHelpers.SetupScene("Inventory"); | ||
195 | SceneSetupHelpers.SetupSceneModules(scene, archiverModule); | ||
196 | |||
197 | // Create user | ||
198 | string userFirstName = "Jock"; | ||
199 | string userLastName = "Stirrup"; | ||
200 | string userPassword = "troll"; | ||
201 | UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); | ||
202 | UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, userPassword); | ||
203 | |||
204 | // Create asset | ||
205 | SceneObjectGroup object1; | ||
206 | SceneObjectPart part1; | ||
207 | { | ||
208 | string partName = "My Little Dog Object"; | ||
209 | UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); | ||
210 | PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); | ||
211 | Vector3 groupPosition = new Vector3(10, 20, 30); | ||
212 | Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); | ||
213 | Vector3 offsetPosition = new Vector3(5, 10, 15); | ||
214 | |||
215 | part1 | ||
216 | = new SceneObjectPart( | ||
217 | ownerId, shape, groupPosition, rotationOffset, offsetPosition); | ||
218 | part1.Name = partName; | ||
219 | |||
220 | object1 = new SceneObjectGroup(part1); | ||
221 | scene.AddNewSceneObject(object1, false); | ||
222 | } | ||
223 | |||
224 | UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); | ||
225 | AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1); | ||
226 | scene.AssetService.Store(asset1); | ||
227 | |||
228 | // Create item | ||
229 | UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080"); | ||
230 | string item1Name = "My Little Dog"; | ||
231 | InventoryItemBase item1 = new InventoryItemBase(); | ||
232 | item1.Name = item1Name; | ||
233 | item1.AssetID = asset1.FullID; | ||
234 | item1.ID = item1Id; | ||
235 | InventoryFolderBase objsFolder | ||
236 | = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects")[0]; | ||
237 | item1.Folder = objsFolder.ID; | ||
238 | scene.AddInventoryItem(userId, item1); | ||
239 | |||
240 | MemoryStream archiveWriteStream = new MemoryStream(); | ||
241 | archiverModule.OnInventoryArchiveSaved += SaveCompleted; | ||
242 | |||
243 | mre.Reset(); | ||
244 | archiverModule.ArchiveInventory( | ||
245 | Guid.NewGuid(), userFirstName, userLastName, "Objects/" + item1Name, userPassword, archiveWriteStream); | ||
246 | mre.WaitOne(60000, false); | ||
247 | |||
248 | byte[] archive = archiveWriteStream.ToArray(); | ||
249 | MemoryStream archiveReadStream = new MemoryStream(archive); | ||
250 | TarArchiveReader tar = new TarArchiveReader(archiveReadStream); | ||
251 | |||
252 | //bool gotControlFile = false; | ||
253 | bool gotObject1File = false; | ||
254 | //bool gotObject2File = false; | ||
255 | string expectedObject1FileName = InventoryArchiveWriteRequest.CreateArchiveItemName(item1); | ||
256 | string expectedObject1FilePath = string.Format( | ||
257 | "{0}{1}", | ||
258 | ArchiveConstants.INVENTORY_PATH, | ||
259 | expectedObject1FileName); | ||
260 | |||
261 | string filePath; | ||
262 | TarArchiveReader.TarEntryType tarEntryType; | ||
263 | |||
264 | // Console.WriteLine("Reading archive"); | ||
265 | |||
266 | while (tar.ReadEntry(out filePath, out tarEntryType) != null) | ||
267 | { | ||
268 | Console.WriteLine("Got {0}", filePath); | ||
269 | |||
270 | // if (ArchiveConstants.CONTROL_FILE_PATH == filePath) | ||
271 | // { | ||
272 | // gotControlFile = true; | ||
273 | // } | ||
274 | |||
275 | if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH) && filePath.EndsWith(".xml")) | ||
276 | { | ||
277 | // string fileName = filePath.Remove(0, "Objects/".Length); | ||
278 | // | ||
279 | // if (fileName.StartsWith(part1.Name)) | ||
280 | // { | ||
281 | Assert.That(expectedObject1FilePath, Is.EqualTo(filePath)); | ||
282 | gotObject1File = true; | ||
283 | // } | ||
284 | // else if (fileName.StartsWith(part2.Name)) | ||
285 | // { | ||
286 | // Assert.That(fileName, Is.EqualTo(expectedObject2FileName)); | ||
287 | // gotObject2File = true; | ||
288 | // } | ||
289 | } | ||
290 | } | ||
291 | |||
292 | // Assert.That(gotControlFile, Is.True, "No control file in archive"); | ||
293 | Assert.That(gotObject1File, Is.True, "No item1 file in archive"); | ||
294 | // Assert.That(gotObject2File, Is.True, "No object2 file in archive"); | ||
295 | |||
296 | // TODO: Test presence of more files and contents of files. | ||
297 | } | ||
298 | |||
299 | /// <summary> | ||
185 | /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where | 300 | /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where |
186 | /// an account exists with the creator name. | 301 | /// an account exists with the creator name. |
187 | /// </summary> | 302 | /// </summary> |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index e972382..c77efc7 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1362,7 +1362,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
1362 | } | 1362 | } |
1363 | if (part.Inventory.UpdateInventoryItem(itemInfo)) | 1363 | if (part.Inventory.UpdateInventoryItem(itemInfo)) |
1364 | { | 1364 | { |
1365 | // remoteClient.SendAgentAlertMessage("Notecard saved", false); | 1365 | if ((InventoryType)itemInfo.InvType == InventoryType.Notecard) |
1366 | remoteClient.SendAgentAlertMessage("Notecard saved", false); | ||
1367 | else if ((InventoryType)itemInfo.InvType == InventoryType.LSL) | ||
1368 | remoteClient.SendAgentAlertMessage("Script saved", false); | ||
1369 | else | ||
1370 | remoteClient.SendAgentAlertMessage("Item saved", false); | ||
1371 | |||
1366 | part.GetProperties(remoteClient); | 1372 | part.GetProperties(remoteClient); |
1367 | } | 1373 | } |
1368 | } | 1374 | } |
diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs index f48bf60..bb24292 100644 --- a/OpenSim/Services/InventoryService/XInventoryService.cs +++ b/OpenSim/Services/InventoryService/XInventoryService.cs | |||
@@ -259,13 +259,15 @@ namespace OpenSim.Services.InventoryService | |||
259 | 259 | ||
260 | public virtual List<InventoryItemBase> GetFolderItems(UUID principalID, UUID folderID) | 260 | public virtual List<InventoryItemBase> GetFolderItems(UUID principalID, UUID folderID) |
261 | { | 261 | { |
262 | // m_log.DebugFormat("[XINVENTORY]: Fetch items for folder {0}", folderID); | ||
263 | |||
262 | // Since we probably don't get a valid principal here, either ... | 264 | // Since we probably don't get a valid principal here, either ... |
263 | // | 265 | // |
264 | List<InventoryItemBase> invItems = new List<InventoryItemBase>(); | 266 | List<InventoryItemBase> invItems = new List<InventoryItemBase>(); |
265 | 267 | ||
266 | XInventoryItem[] items = m_Database.GetItems( | 268 | XInventoryItem[] items = m_Database.GetItems( |
267 | new string[] { "parentFolderID"}, | 269 | new string[] { "parentFolderID" }, |
268 | new string[] { UUID.Zero.ToString() }); | 270 | new string[] { folderID.ToString() }); |
269 | 271 | ||
270 | foreach (XInventoryItem i in items) | 272 | foreach (XInventoryItem i in items) |
271 | invItems.Add(ConvertToOpenSim(i)); | 273 | invItems.Add(ConvertToOpenSim(i)); |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index a71fe72..559a734 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -288,9 +288,6 @@ | |||
288 | ; if not defined - default machine name is being used | 288 | ; if not defined - default machine name is being used |
289 | ; (on Windows this mean NETBIOS name - useably only inside local network) | 289 | ; (on Windows this mean NETBIOS name - useably only inside local network) |
290 | ; ExternalHostNameForLSL=127.0.0.1 | 290 | ; ExternalHostNameForLSL=127.0.0.1 |
291 | ; Uncomment below to enable llRemoteData/remote channels | ||
292 | ; remoteDataPort = 20800 | ||
293 | |||
294 | 291 | ||
295 | ; What is reported as the "X-Secondlife-Shard" | 292 | ; What is reported as the "X-Secondlife-Shard" |
296 | ; Defaults to the user server url if not set | 293 | ; Defaults to the user server url if not set |
@@ -1319,12 +1316,3 @@ UseSafetyCommit = true | |||
1319 | ;XmlRpcRouterModule = "XmlRpcRouterModule" | 1316 | ;XmlRpcRouterModule = "XmlRpcRouterModule" |
1320 | ;XmlRpcPort = 20800 | 1317 | ;XmlRpcPort = 20800 |
1321 | 1318 | ||
1322 | [Friends] | ||
1323 | ; The port the friendslist interregion comms will listen on | ||
1324 | ; Defaults to the simulator's TCP port | ||
1325 | ;Port = 0 | ||
1326 | |||
1327 | ; Uncomment one of the lines below. Use FriendsService for local | ||
1328 | ; operation, Connectors for remote operation | ||
1329 | ;Connector = "OpenSim.Services.FriendsService.dll" | ||
1330 | Connector = "OpenSim.Services.Connectors.dll" | ||