From 9923a2ff1002d722ccebea8bf4d71718ed4e2a03 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Tue, 8 Mar 2011 09:02:29 -0800 Subject: [PATCH 01/95] Pull up Assembly of the MySQL classes as a protected property, so that it can be overwritten in subclasses. That way extensions can decide in which assembly migration resources should be looked up. This is just a refactor -- no functional changes whatsoever. --- OpenSim/Data/MySQL/MySQLAssetData.cs | 10 ++++++---- OpenSim/Data/MySQL/MySQLAuthenticationData.cs | 8 +++++++- OpenSim/Data/MySQL/MySQLEstateData.cs | 8 ++++++-- OpenSim/Data/MySQL/MySQLGenericTableHandler.cs | 7 ++++++- OpenSim/Data/MySQL/MySQLRegionData.cs | 9 ++++++++- OpenSim/Data/MySQL/MySQLSimulationData.cs | 8 ++++++-- 6 files changed, 39 insertions(+), 11 deletions(-) diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs index ed92f3ebc2..e740232a31 100644 --- a/OpenSim/Data/MySQL/MySQLAssetData.cs +++ b/OpenSim/Data/MySQL/MySQLAssetData.cs @@ -47,6 +47,11 @@ namespace OpenSim.Data.MySQL private string m_connectionString; private object m_dbLock = new object(); + protected virtual Assembly Assembly + { + get { return GetType().Assembly; } + } + #region IPlugin Members public override string Version { get { return "1.0.0.0"; } } @@ -66,13 +71,10 @@ namespace OpenSim.Data.MySQL { m_connectionString = connect; - // This actually does the roll forward assembly stuff - Assembly assem = GetType().Assembly; - using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) { dbcon.Open(); - Migration m = new Migration(dbcon, assem, "AssetStore"); + Migration m = new Migration(dbcon, Assembly, "AssetStore"); m.Update(); } } diff --git a/OpenSim/Data/MySQL/MySQLAuthenticationData.cs b/OpenSim/Data/MySQL/MySQLAuthenticationData.cs index 5056aee6c1..8d82f61bda 100644 --- a/OpenSim/Data/MySQL/MySQLAuthenticationData.cs +++ b/OpenSim/Data/MySQL/MySQLAuthenticationData.cs @@ -28,6 +28,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Reflection; using System.Data; using OpenMetaverse; using OpenSim.Framework; @@ -42,6 +43,11 @@ namespace OpenSim.Data.MySQL private int m_LastExpire; // private string m_connectionString; + protected virtual Assembly Assembly + { + get { return GetType().Assembly; } + } + public MySqlAuthenticationData(string connectionString, string realm) : base(connectionString) { @@ -51,7 +57,7 @@ namespace OpenSim.Data.MySQL using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) { dbcon.Open(); - Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore"); + Migration m = new Migration(dbcon, Assembly, "AuthStore"); m.Update(); } } diff --git a/OpenSim/Data/MySQL/MySQLEstateData.cs b/OpenSim/Data/MySQL/MySQLEstateData.cs index c42c687ed9..de72a6a931 100644 --- a/OpenSim/Data/MySQL/MySQLEstateData.cs +++ b/OpenSim/Data/MySQL/MySQLEstateData.cs @@ -54,6 +54,11 @@ namespace OpenSim.Data.MySQL private Dictionary m_FieldMap = new Dictionary(); + protected virtual Assembly Assembly + { + get { return GetType().Assembly; } + } + public MySQLEstateStore() { } @@ -82,8 +87,7 @@ namespace OpenSim.Data.MySQL { dbcon.Open(); - Assembly assem = GetType().Assembly; - Migration m = new Migration(dbcon, assem, "EstateStore"); + Migration m = new Migration(dbcon, Assembly, "EstateStore"); m.Update(); Type t = typeof(EstateSettings); diff --git a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs index 7c23a47d04..8efe4e9bd6 100644 --- a/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs +++ b/OpenSim/Data/MySQL/MySQLGenericTableHandler.cs @@ -46,6 +46,11 @@ namespace OpenSim.Data.MySQL protected string m_Realm; protected FieldInfo m_DataField = null; + protected virtual Assembly Assembly + { + get { return GetType().Assembly; } + } + public MySQLGenericTableHandler(string connectionString, string realm, string storeName) : base(connectionString) { @@ -57,7 +62,7 @@ namespace OpenSim.Data.MySQL using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) { dbcon.Open(); - Migration m = new Migration(dbcon, GetType().Assembly, storeName); + Migration m = new Migration(dbcon, Assembly, storeName); m.Update(); } } diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs index d04e3dc996..c20c39263a 100644 --- a/OpenSim/Data/MySQL/MySQLRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLRegionData.cs @@ -29,6 +29,8 @@ using System; using System.Collections; using System.Collections.Generic; using System.Data; +using System.Reflection; + using OpenMetaverse; using OpenSim.Framework; using OpenSim.Data; @@ -42,6 +44,11 @@ namespace OpenSim.Data.MySQL private List m_ColumnNames; //private string m_connectionString; + protected virtual Assembly Assembly + { + get { return GetType().Assembly; } + } + public MySqlRegionData(string connectionString, string realm) : base(connectionString) { @@ -51,7 +58,7 @@ namespace OpenSim.Data.MySQL using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) { dbcon.Open(); - Migration m = new Migration(dbcon, GetType().Assembly, "GridStore"); + Migration m = new Migration(dbcon, Assembly, "GridStore"); m.Update(); } } diff --git a/OpenSim/Data/MySQL/MySQLSimulationData.cs b/OpenSim/Data/MySQL/MySQLSimulationData.cs index 02997b3278..e14d775b45 100644 --- a/OpenSim/Data/MySQL/MySQLSimulationData.cs +++ b/OpenSim/Data/MySQL/MySQLSimulationData.cs @@ -52,6 +52,11 @@ namespace OpenSim.Data.MySQL private string m_connectionString; private object m_dbLock = new object(); + protected virtual Assembly Assembly + { + get { return GetType().Assembly; } + } + public MySQLSimulationData() { } @@ -71,8 +76,7 @@ namespace OpenSim.Data.MySQL // Apply new Migrations // - Assembly assem = GetType().Assembly; - Migration m = new Migration(dbcon, assem, "RegionStore"); + Migration m = new Migration(dbcon, Assembly, "RegionStore"); m.Update(); // Clean dropped attachments From 743a6b0da5a98329997c98463feca37885ae7c58 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Tue, 8 Mar 2011 22:44:02 +0000 Subject: [PATCH 02/95] Make -m shortcut option for --merge on load iar specific. Correct some log message origins. --- .../Inventory/Archiver/InventoryArchiverModule.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs index 26edba4b6c..576a154719 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs @@ -109,9 +109,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver scene.AddCommand( this, "load iar", - "load iar [--merge] []", + "load iar [-m|--merge] []", "Load user inventory archive (IAR).", - "--merge is an option which merges the loaded IAR with existing inventory folders where possible, rather than always creating new ones" + "-m|--merge is an option which merges the loaded IAR with existing inventory folders where possible, rather than always creating new ones" + " is user's first name." + Environment.NewLine + " is user's last name." + Environment.NewLine + " is the path inside the user's inventory where the IAR should be loaded." + Environment.NewLine @@ -181,7 +181,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver catch (EntryPointNotFoundException e) { m_log.ErrorFormat( - "[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." + "[INVENTORY ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." + "If you've manually installed Mono, have you appropriately updated zlib1g as well?"); m_log.Error(e); @@ -221,7 +221,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver catch (EntryPointNotFoundException e) { m_log.ErrorFormat( - "[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." + "[INVENTORY ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." + "If you've manually installed Mono, have you appropriately updated zlib1g as well?"); m_log.Error(e); @@ -269,7 +269,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver catch (EntryPointNotFoundException e) { m_log.ErrorFormat( - "[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." + "[INVENTORY ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." + "If you've manually installed Mono, have you appropriately updated zlib1g as well?"); m_log.Error(e); @@ -317,7 +317,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver catch (EntryPointNotFoundException e) { m_log.ErrorFormat( - "[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." + "[INVENTORY ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." + "If you've manually installed Mono, have you appropriately updated zlib1g as well?"); m_log.Error(e); @@ -358,7 +358,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver if (mainParams.Count < 6) { m_log.Error( - "[INVENTORY ARCHIVER]: usage is load iar [--merge] []"); + "[INVENTORY ARCHIVER]: usage is load iar [-m|--merge] []"); return; } From 8a2360bf815d4d78fcff34a69dec24782494bd2e Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 01:21:31 +0000 Subject: [PATCH 03/95] Simplify TestLoadIarV0_1AbsentUsers() to use common IAR test setup. Make static dictionaries on NullUserAccountData instance instead to stop user accounts being carried over between tests --- OpenSim/Data/Null/NullUserAccountData.cs | 65 +++++++++++++++---- .../Serialization/External/OspResolver.cs | 19 +++++- .../Archiver/InventoryArchiveReadRequest.cs | 2 + .../Archiver/Tests/InventoryArchiverTests.cs | 65 +++++-------------- .../Tests/Common/Setup/SceneSetupHelpers.cs | 6 +- 5 files changed, 89 insertions(+), 68 deletions(-) diff --git a/OpenSim/Data/Null/NullUserAccountData.cs b/OpenSim/Data/Null/NullUserAccountData.cs index ede23fb8fe..ec54dba2e8 100644 --- a/OpenSim/Data/Null/NullUserAccountData.cs +++ b/OpenSim/Data/Null/NullUserAccountData.cs @@ -28,6 +28,9 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Reflection; +using System.Text; +using log4net; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Data; @@ -36,12 +39,17 @@ namespace OpenSim.Data.Null { public class NullUserAccountData : IUserAccountData { - private static Dictionary m_DataByUUID = new Dictionary(); - private static Dictionary m_DataByName = new Dictionary(); - private static Dictionary m_DataByEmail = new Dictionary(); + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + private Dictionary m_DataByUUID = new Dictionary(); + private Dictionary m_DataByName = new Dictionary(); + private Dictionary m_DataByEmail = new Dictionary(); public NullUserAccountData(string connectionString, string realm) { +// m_log.DebugFormat( +// "[NULL USER ACCOUNT DATA]: Initializing new NullUserAccountData with connectionString [{0}], realm [{1}]", +// connectionString, realm); } /// @@ -54,6 +62,15 @@ namespace OpenSim.Data.Null /// public UserAccountData[] Get(string[] fields, string[] values) { +// if (m_log.IsDebugEnabled) +// { +// m_log.DebugFormat( +// "[NULL USER ACCOUNT DATA]: Called Get with fields [{0}], values [{1}]", +// string.Join(", ", fields), string.Join(", ", values)); +// } + + UserAccountData[] userAccounts = new UserAccountData[0]; + List fieldsLst = new List(fields); if (fieldsLst.Contains("PrincipalID")) { @@ -61,41 +78,61 @@ namespace OpenSim.Data.Null UUID id = UUID.Zero; if (UUID.TryParse(values[i], out id)) if (m_DataByUUID.ContainsKey(id)) - return new UserAccountData[] { m_DataByUUID[id] }; - } - if (fieldsLst.Contains("FirstName") && fieldsLst.Contains("LastName")) + userAccounts = new UserAccountData[] { m_DataByUUID[id] }; + } + else if (fieldsLst.Contains("FirstName") && fieldsLst.Contains("LastName")) { int findex = fieldsLst.IndexOf("FirstName"); int lindex = fieldsLst.IndexOf("LastName"); if (m_DataByName.ContainsKey(values[findex] + " " + values[lindex])) - return new UserAccountData[] { m_DataByName[values[findex] + " " + values[lindex]] }; - } - if (fieldsLst.Contains("Email")) + { + userAccounts = new UserAccountData[] { m_DataByName[values[findex] + " " + values[lindex]] }; + } + } + else if (fieldsLst.Contains("Email")) { int i = fieldsLst.IndexOf("Email"); if (m_DataByEmail.ContainsKey(values[i])) - return new UserAccountData[] { m_DataByEmail[values[i]] }; + userAccounts = new UserAccountData[] { m_DataByEmail[values[i]] }; } - - // Fail - return new UserAccountData[0]; + +// if (m_log.IsDebugEnabled) +// { +// StringBuilder sb = new StringBuilder(); +// foreach (UserAccountData uad in userAccounts) +// sb.AppendFormat("({0} {1} {2}) ", uad.FirstName, uad.LastName, uad.PrincipalID); +// +// m_log.DebugFormat( +// "[NULL USER ACCOUNT DATA]: Returning {0} user accounts out of {1}: [{2}]", userAccounts.Length, m_DataByName.Count, sb); +// } + + return userAccounts; } public bool Store(UserAccountData data) { if (data == null) return false; - + + m_log.DebugFormat( + "[NULL USER ACCOUNT DATA]: Storing user account {0} {1} {2} {3}", + data.FirstName, data.LastName, data.PrincipalID, this.GetHashCode()); + m_DataByUUID[data.PrincipalID] = data; m_DataByName[data.FirstName + " " + data.LastName] = data; if (data.Data.ContainsKey("Email") && data.Data["Email"] != null && data.Data["Email"] != string.Empty) m_DataByEmail[data.Data["Email"]] = data; + +// m_log.DebugFormat("m_DataByUUID count is {0}, m_DataByName count is {1}", m_DataByUUID.Count, m_DataByName.Count); return true; } public UserAccountData[] GetUsers(UUID scopeID, string query) { +// m_log.DebugFormat( +// "[NULL USER ACCOUNT DATA]: Called GetUsers with scope [{0}], query [{1}]", scopeID, query); + string[] words = query.Split(new char[] { ' ' }); for (int i = 0; i < words.Length; i++) diff --git a/OpenSim/Framework/Serialization/External/OspResolver.cs b/OpenSim/Framework/Serialization/External/OspResolver.cs index 7e3dd1b79b..d31d27c4a6 100644 --- a/OpenSim/Framework/Serialization/External/OspResolver.cs +++ b/OpenSim/Framework/Serialization/External/OspResolver.cs @@ -66,6 +66,8 @@ namespace OpenSim.Framework.Serialization UserAccount account = userService.GetUserAccount(UUID.Zero, userId); if (account != null) return MakeOspa(account.FirstName, account.LastName); +// else +// m_log.WarnFormat("[OSP RESOLVER]: No user account for {0}", userId); return null; } @@ -77,6 +79,8 @@ namespace OpenSim.Framework.Serialization /// public static string MakeOspa(string firstName, string lastName) { +// m_log.DebugFormat("[OSP RESOLVER]: Making OSPA for {0} {1}", firstName, lastName); + return OSPA_PREFIX + OSPA_NAME_KEY + OSPA_PAIR_SEPARATOR + firstName + OSPA_NAME_VALUE_SEPARATOR + lastName; } @@ -97,7 +101,10 @@ namespace OpenSim.Framework.Serialization public static UUID ResolveOspa(string ospa, IUserAccountService userService) { if (!ospa.StartsWith(OSPA_PREFIX)) - return UUID.Zero; + { +// m_log.DebugFormat("[OSP RESOLVER]: ResolveOspa() got unrecognized format [{0}]", ospa); + return UUID.Zero; + } // m_log.DebugFormat("[OSP RESOLVER]: Resolving {0}", ospa); @@ -161,7 +168,17 @@ namespace OpenSim.Framework.Serialization UserAccount account = userService.GetUserAccount(UUID.Zero, firstName, lastName); if (account != null) + { +// m_log.DebugFormat( +// "[OSP RESOLVER]: Found user account with uuid {0} for {1} {2}", +// account.PrincipalID, firstName, lastName); + return account.PrincipalID; + } +// else +// { +// m_log.DebugFormat("[OSP RESOLVER]: No resolved OSPA user account for {0}", name); +// } // XXX: Disable temporary user profile creation for now as implementation is incomplete - justincc /* diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 603070614c..7849d88320 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -400,6 +400,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver UUID ospResolvedId = OspResolver.ResolveOspa(item.CreatorId, m_scene.UserAccountService); if (UUID.Zero != ospResolvedId) // The user exists in this grid { +// m_log.DebugFormat("[INVENTORY ARCHIVER]: Found creator {0} via OSPA resolution", ospResolvedId); + item.CreatorIdAsUuid = ospResolvedId; // XXX: For now, don't preserve the OSPA in the creator id (which actually gets persisted to the diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 8a84c7a2d9..de9550557b 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -97,6 +97,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests protected void ConstructDefaultIarBytesForTestLoad() { +// log4net.Config.XmlConfigurator.Configure(); + + Scene scene = SceneSetupHelpers.SetupScene("Inventory"); + UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); + string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(m_item1Name, UUID.Random()); MemoryStream archiveWriteStream = new MemoryStream(); @@ -106,14 +111,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests item1.Name = m_item1Name; item1.AssetID = UUID.Random(); item1.GroupID = UUID.Random(); - //item1.CreatorId = OspResolver.MakeOspa(m_ua2.FirstName, m_ua2.LastName); - //item1.CreatorId = userUuid.ToString(); - item1.CreatorId = m_ua2.PrincipalID.ToString(); + item1.CreatorIdAsUuid = m_ua2.PrincipalID; item1.Owner = UUID.Zero; - Scene scene = SceneSetupHelpers.SetupScene("Inventory"); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); - string item1FileName = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName); tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1, new Dictionary(), scene.UserAccountService)); @@ -390,7 +390,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests public void TestLoadIarV0_1ExistingUsers() { TestHelper.InMethod(); - //log4net.Config.XmlConfigurator.Configure(); +// log4net.Config.XmlConfigurator.Configure(); SerialiserModule serialiserModule = new SerialiserModule(); InventoryArchiverModule archiverModule = new InventoryArchiverModule(); @@ -414,9 +414,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests // Assert.That( // foundItem1.CreatorId, Is.EqualTo(item1.CreatorId), // "Loaded item non-uuid creator doesn't match original"); - Assert.That( - foundItem1.CreatorId, Is.EqualTo(m_ua2.PrincipalID.ToString()), - "Loaded item non-uuid creator doesn't match original"); +// Assert.That( +// foundItem1.CreatorId, Is.EqualTo(m_ua2.PrincipalID.ToString()), +// "Loaded item non-uuid creator doesn't match original"); Assert.That( foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua2.PrincipalID), @@ -529,64 +529,29 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where /// embedded creators do not exist in the system /// - /// - /// This may possibly one day get overtaken by the as yet incomplete temporary profiles feature - /// (as tested in the a later commented out test) - /// This test is currently disabled [Test] public void TestLoadIarV0_1AbsentUsers() { TestHelper.InMethod(); - //log4net.Config.XmlConfigurator.Configure(); +// log4net.Config.XmlConfigurator.Configure(); - string userFirstName = "Charlie"; - string userLastName = "Chan"; - UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000999"); - string userItemCreatorFirstName = "Bat"; - string userItemCreatorLastName = "Man"; - //UUID userItemCreatorUuid = UUID.Parse("00000000-0000-0000-0000-000000008888"); - - string itemName = "b.lsl"; - string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(itemName, UUID.Random()); - - MemoryStream archiveWriteStream = new MemoryStream(); - TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); - - InventoryItemBase item1 = new InventoryItemBase(); - item1.Name = itemName; - item1.AssetID = UUID.Random(); - item1.GroupID = UUID.Random(); - item1.CreatorId = OspResolver.MakeOspa(userItemCreatorFirstName, userItemCreatorLastName); - //item1.CreatorId = userUuid.ToString(); - //item1.CreatorId = "00000000-0000-0000-0000-000000000444"; - item1.Owner = UUID.Zero; - - string item1FileName - = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName); - tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1, new Dictionary(), null)); - tar.Close(); - - MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); SerialiserModule serialiserModule = new SerialiserModule(); InventoryArchiverModule archiverModule = new InventoryArchiverModule(); - - // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene Scene scene = SceneSetupHelpers.SetupScene("inventory"); - SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); - UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userUuid, "meowfood"); - archiverModule.DearchiveInventory(userFirstName, userLastName, "/", "meowfood", archiveReadStream); + UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "password"); + archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "password", m_iarStream); InventoryItemBase foundItem1 - = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, userUuid, itemName); + = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, m_item1Name); Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); // Assert.That( // foundItem1.CreatorId, Is.EqualTo(userUuid), // "Loaded item non-uuid creator doesn't match that of the loading user"); Assert.That( - foundItem1.CreatorIdAsUuid, Is.EqualTo(userUuid), + foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua1.PrincipalID), "Loaded item uuid creator doesn't match that of the loading user"); } diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index 5be70bc710..08cc7c5fcd 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs @@ -304,12 +304,12 @@ namespace OpenSim.Tests.Common.Setup config.Configs["UserAccountService"].Set( "LocalServiceModule", "OpenSim.Services.UserAccountService.dll:UserAccountService"); - if (m_userAccountService == null) - { +// if (m_userAccountService == null) +// { ISharedRegionModule userAccountService = new LocalUserAccountServicesConnector(); userAccountService.Initialise(config); m_userAccountService = userAccountService; - } +// } m_userAccountService.AddRegion(testScene); m_userAccountService.RegionLoaded(testScene); From f375a5e9cbe96b0a07c52f27b0a4b2b620e5d6d8 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 01:31:47 +0000 Subject: [PATCH 04/95] Simplify SceneSetupHelpers class by removing all code which was originally preserving service instances between tests. This wasn't being used anyway and just leads to hard to diagnose test failures. --- .../Tests/Common/Setup/SceneSetupHelpers.cs | 93 ++++++++----------- 1 file changed, 40 insertions(+), 53 deletions(-) diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index 08cc7c5fcd..2aeafc823f 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs @@ -59,19 +59,14 @@ namespace OpenSim.Tests.Common.Setup { // These static variables in order to allow regions to be linked by shared modules and same // CommunicationsManager. - private static ISharedRegionModule m_assetService = null; -// private static ISharedRegionModule m_authenticationService = null; private static ISharedRegionModule m_inventoryService = null; - private static ISharedRegionModule m_gridService = null; - private static ISharedRegionModule m_userAccountService = null; - private static ISharedRegionModule m_presenceService = null; /// /// Set up a test scene /// - /// + /// /// Automatically starts service threads, as would the normal runtime. - /// + /// /// public static TestScene SetupScene() { @@ -156,10 +151,7 @@ namespace OpenSim.Tests.Common.Setup testScene.AddModule(godsModule.Name, godsModule); realServices = realServices.ToLower(); - if (realServices.Contains("asset")) - StartAssetService(testScene, true); - else - StartAssetService(testScene, false); + LocalAssetServicesConnector assetService = StartAssetService(testScene, realServices.Contains("asset")); // For now, always started a 'real' authentication service StartAuthenticationService(testScene, true); @@ -169,14 +161,15 @@ namespace OpenSim.Tests.Common.Setup else StartInventoryService(testScene, false); - StartGridService(testScene, true); - StartUserAccountService(testScene); - StartPresenceService(testScene); + StartGridService(testScene, true); + LocalUserAccountServicesConnector userAccountService = StartUserAccountService(testScene); + LocalPresenceServicesConnector presenceService = StartPresenceService(testScene); m_inventoryService.PostInitialise(); - m_assetService.PostInitialise(); - m_userAccountService.PostInitialise(); - m_presenceService.PostInitialise(); + assetService.PostInitialise(); + userAccountService.PostInitialise(); + presenceService.PostInitialise(); + testScene.RegionInfo.EstateSettings.EstateOwner = UUID.Random(); testScene.SetModuleInterfaces(); @@ -191,11 +184,7 @@ namespace OpenSim.Tests.Common.Setup // It's really not a good idea to use static variables as they carry over between tests, leading to // problems that are extremely hard to debug. Really, these static fields need to be eliminated - // tests using multiple regions that need to share modules need to find another solution. - m_assetService = null; m_inventoryService = null; - m_gridService = null; - m_userAccountService = null; - m_presenceService = null; testScene.RegionInfo.EstateSettings = new EstateSettings(); testScene.LoginsDisabled = false; @@ -203,9 +192,9 @@ namespace OpenSim.Tests.Common.Setup return testScene; } - private static void StartAssetService(Scene testScene, bool real) + private static LocalAssetServicesConnector StartAssetService(Scene testScene, bool real) { - ISharedRegionModule assetService = new LocalAssetServicesConnector(); + LocalAssetServicesConnector assetService = new LocalAssetServicesConnector(); IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); config.AddConfig("AssetService"); @@ -219,7 +208,8 @@ namespace OpenSim.Tests.Common.Setup assetService.AddRegion(testScene); assetService.RegionLoaded(testScene); testScene.AddRegionModule(assetService.Name, assetService); - m_assetService = assetService; + + return assetService; } private static void StartAuthenticationService(Scene testScene, bool real) @@ -268,7 +258,7 @@ namespace OpenSim.Tests.Common.Setup m_inventoryService = inventoryService; } - private static void StartGridService(Scene testScene, bool real) + private static LocalGridServicesConnector StartGridService(Scene testScene, bool real) { IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); @@ -277,24 +267,25 @@ namespace OpenSim.Tests.Common.Setup config.Configs["GridService"].Set("StorageProvider", "OpenSim.Data.Null.dll:NullRegionData"); if (real) config.Configs["GridService"].Set("LocalServiceModule", "OpenSim.Services.GridService.dll:GridService"); - if (m_gridService == null) - { - ISharedRegionModule gridService = new LocalGridServicesConnector(); - gridService.Initialise(config); - m_gridService = gridService; - } + + LocalGridServicesConnector gridService = new LocalGridServicesConnector(); + gridService.Initialise(config); + //else // config.Configs["GridService"].Set("LocalServiceModule", "OpenSim.Tests.Common.dll:TestGridService"); - m_gridService.AddRegion(testScene); - m_gridService.RegionLoaded(testScene); + gridService.AddRegion(testScene); + gridService.RegionLoaded(testScene); //testScene.AddRegionModule(m_gridService.Name, m_gridService); + + return gridService; } /// /// Start a user account service /// /// - private static void StartUserAccountService(Scene testScene) + /// + private static LocalUserAccountServicesConnector StartUserAccountService(Scene testScene) { IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); @@ -304,23 +295,21 @@ namespace OpenSim.Tests.Common.Setup config.Configs["UserAccountService"].Set( "LocalServiceModule", "OpenSim.Services.UserAccountService.dll:UserAccountService"); -// if (m_userAccountService == null) -// { - ISharedRegionModule userAccountService = new LocalUserAccountServicesConnector(); - userAccountService.Initialise(config); - m_userAccountService = userAccountService; -// } + LocalUserAccountServicesConnector userAccountService = new LocalUserAccountServicesConnector(); + userAccountService.Initialise(config); - m_userAccountService.AddRegion(testScene); - m_userAccountService.RegionLoaded(testScene); - testScene.AddRegionModule(m_userAccountService.Name, m_userAccountService); + userAccountService.AddRegion(testScene); + userAccountService.RegionLoaded(testScene); + testScene.AddRegionModule(userAccountService.Name, userAccountService); + + return userAccountService; } /// /// Start a presence service /// /// - private static void StartPresenceService(Scene testScene) + private static LocalPresenceServicesConnector StartPresenceService(Scene testScene) { IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); @@ -330,16 +319,14 @@ namespace OpenSim.Tests.Common.Setup config.Configs["PresenceService"].Set( "LocalServiceModule", "OpenSim.Services.PresenceService.dll:PresenceService"); - if (m_presenceService == null) - { - ISharedRegionModule presenceService = new LocalPresenceServicesConnector(); - presenceService.Initialise(config); - m_presenceService = presenceService; - } + LocalPresenceServicesConnector presenceService = new LocalPresenceServicesConnector(); + presenceService.Initialise(config); - m_presenceService.AddRegion(testScene); - m_presenceService.RegionLoaded(testScene); - testScene.AddRegionModule(m_presenceService.Name, m_presenceService); + presenceService.AddRegion(testScene); + presenceService.RegionLoaded(testScene); + testScene.AddRegionModule(presenceService.Name, presenceService); + + return presenceService; } /// From 2fa8fc505223cbd2b6e327fe946748c717dda3b5 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 01:37:31 +0000 Subject: [PATCH 05/95] remove inventory service preserving code from SceneSetupHelpers too --- .../Tests/Common/Setup/SceneSetupHelpers.cs | 47 ++++--------------- 1 file changed, 10 insertions(+), 37 deletions(-) diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index 2aeafc823f..aa4b285981 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs @@ -57,10 +57,6 @@ namespace OpenSim.Tests.Common.Setup /// public class SceneSetupHelpers { - // These static variables in order to allow regions to be linked by shared modules and same - // CommunicationsManager. - private static ISharedRegionModule m_inventoryService = null; - /// /// Set up a test scene /// @@ -81,24 +77,9 @@ namespace OpenSim.Tests.Common.Setup /// public static TestScene SetupScene(String realServices) { - return SetupScene( - "Unit test region", UUID.Random(), 1000, 1000, realServices); + return SetupScene("Unit test region", UUID.Random(), 1000, 1000, realServices); } - // REFACTORING PROBLEM. No idea what the difference is with the previous one - ///// - ///// Set up a test scene - ///// - ///// - ///// Starts real inventory and asset services, as opposed to mock ones, if true - ///// This should be the same if simulating two scenes within a standalone - ///// - //public static TestScene SetupScene(String realServices) - //{ - // return SetupScene( - // "Unit test region", UUID.Random(), 1000, 1000, ""); - //} - /// /// Set up a test scene /// @@ -110,7 +91,7 @@ namespace OpenSim.Tests.Common.Setup /// public static TestScene SetupScene(string name, UUID id, uint x, uint y) { - return SetupScene(name, id, x, y,""); + return SetupScene(name, id, x, y, ""); } /// @@ -156,16 +137,12 @@ namespace OpenSim.Tests.Common.Setup // For now, always started a 'real' authentication service StartAuthenticationService(testScene, true); - if (realServices.Contains("inventory")) - StartInventoryService(testScene, true); - else - StartInventoryService(testScene, false); - + LocalInventoryServicesConnector inventoryService = StartInventoryService(testScene, realServices.Contains("inventory")); StartGridService(testScene, true); LocalUserAccountServicesConnector userAccountService = StartUserAccountService(testScene); LocalPresenceServicesConnector presenceService = StartPresenceService(testScene); - m_inventoryService.PostInitialise(); + inventoryService.PostInitialise(); assetService.PostInitialise(); userAccountService.PostInitialise(); presenceService.PostInitialise(); @@ -181,11 +158,6 @@ namespace OpenSim.Tests.Common.Setup testScene.PhysicsScene = physicsPluginManager.GetPhysicsScene("basicphysics", "ZeroMesher", new IniConfigSource(), "test"); - // It's really not a good idea to use static variables as they carry over between tests, leading to - // problems that are extremely hard to debug. Really, these static fields need to be eliminated - - // tests using multiple regions that need to share modules need to find another solution. - m_inventoryService = null; - testScene.RegionInfo.EstateSettings = new EstateSettings(); testScene.LoginsDisabled = false; @@ -233,9 +205,9 @@ namespace OpenSim.Tests.Common.Setup //m_authenticationService = service; } - private static void StartInventoryService(Scene testScene, bool real) + private static LocalInventoryServicesConnector StartInventoryService(Scene testScene, bool real) { - ISharedRegionModule inventoryService = new LocalInventoryServicesConnector(); + LocalInventoryServicesConnector inventoryService = new LocalInventoryServicesConnector(); IConfigSource config = new IniConfigSource(); config.AddConfig("Modules"); config.AddConfig("InventoryService"); @@ -255,7 +227,8 @@ namespace OpenSim.Tests.Common.Setup inventoryService.AddRegion(testScene); inventoryService.RegionLoaded(testScene); testScene.AddRegionModule(inventoryService.Name, inventoryService); - m_inventoryService = inventoryService; + + return inventoryService; } private static LocalGridServicesConnector StartGridService(Scene testScene, bool real) @@ -423,7 +396,7 @@ namespace OpenSim.Tests.Common.Setup /// /// Add a root agent. /// - /// + /// /// This function /// /// 1) Tells the scene that an agent is coming. Normally, the login service (local if standalone, from the @@ -434,7 +407,7 @@ namespace OpenSim.Tests.Common.Setup /// /// This function performs actions equivalent with notifying the scene that an agent is /// coming and then actually connecting the agent to the scene. The one step missed out is the very first - /// + /// /// /// /// From ae507bb0600774624f876c4562391cec0111eee8 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 01:53:27 +0000 Subject: [PATCH 06/95] Split out path tests from InventoryArchiveTests. Factor common code into test case parent --- .../Tests/InventoryArchiveTestCase.cs | 124 ++++ .../Archiver/Tests/InventoryArchiverTests.cs | 533 +----------------- .../Inventory/Archiver/Tests/PathTests.cs | 436 ++++++++++++++ 3 files changed, 562 insertions(+), 531 deletions(-) create mode 100644 OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs create mode 100644 OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs new file mode 100644 index 0000000000..023c452a23 --- /dev/null +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs @@ -0,0 +1,124 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Threading; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; +using OpenMetaverse; +using OpenSim.Data; +using OpenSim.Framework; +using OpenSim.Framework.Serialization; +using OpenSim.Framework.Serialization.External; +using OpenSim.Framework.Communications; +using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver; +using OpenSim.Region.CoreModules.World.Serialiser; +using OpenSim.Region.Framework.Scenes; +using OpenSim.Region.Framework.Scenes.Serialization; +using OpenSim.Services.Interfaces; +using OpenSim.Tests.Common; +using OpenSim.Tests.Common.Mock; +using OpenSim.Tests.Common.Setup; + +namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests +{ + [TestFixture] + public class InventoryArchiveTestCase + { + protected ManualResetEvent mre = new ManualResetEvent(false); + + /// + /// A raw array of bytes that we'll use to create an IAR memory stream suitable for isolated use in each test. + /// + protected byte[] m_iarStreamBytes; + + /// + /// Stream of data representing a common IAR for load tests. + /// + protected MemoryStream m_iarStream; + + protected UserAccount m_ua1 + = new UserAccount { + PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000555"), + FirstName = "Mr", + LastName = "Tiddles" }; + protected UserAccount m_ua2 + = new UserAccount { + PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000666"), + FirstName = "Lord", + LastName = "Lucan" }; + protected string m_item1Name = "b.lsl"; + + [SetUp] + public void SetUp() + { + m_iarStream = new MemoryStream(m_iarStreamBytes); + } + + [TestFixtureSetUp] + public void FixtureSetup() + { + ConstructDefaultIarBytesForTestLoad(); + } + + protected void ConstructDefaultIarBytesForTestLoad() + { +// log4net.Config.XmlConfigurator.Configure(); + + Scene scene = SceneSetupHelpers.SetupScene("Inventory"); + UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); + + string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(m_item1Name, UUID.Random()); + + MemoryStream archiveWriteStream = new MemoryStream(); + TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); + + InventoryItemBase item1 = new InventoryItemBase(); + item1.Name = m_item1Name; + item1.AssetID = UUID.Random(); + item1.GroupID = UUID.Random(); + item1.CreatorIdAsUuid = m_ua2.PrincipalID; + item1.Owner = UUID.Zero; + + string item1FileName + = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName); + tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1, new Dictionary(), scene.UserAccountService)); + tar.Close(); + m_iarStreamBytes = archiveWriteStream.ToArray(); + } + + protected void SaveCompleted( + Guid id, bool succeeded, UserAccount userInfo, string invPath, Stream saveStream, + Exception reportedException) + { + mre.Set(); + } + } +} \ No newline at end of file diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index de9550557b..edbbd81106 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -50,195 +50,8 @@ using OpenSim.Tests.Common.Setup; namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests { [TestFixture] - public class InventoryArchiverTests - { - protected ManualResetEvent mre = new ManualResetEvent(false); - - /// - /// A raw array of bytes that we'll use to create an IAR memory stream suitable for isolated use in each test. - /// - protected byte[] m_iarStreamBytes; - - /// - /// Stream of data representing a common IAR for load tests. - /// - protected MemoryStream m_iarStream; - - protected UserAccount m_ua1 - = new UserAccount { - PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000555"), - FirstName = "Mr", - LastName = "Tiddles" }; - protected UserAccount m_ua2 - = new UserAccount { - PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000666"), - FirstName = "Lord", - LastName = "Lucan" }; - string m_item1Name = "b.lsl"; - - private void SaveCompleted( - Guid id, bool succeeded, UserAccount userInfo, string invPath, Stream saveStream, - Exception reportedException) - { - mre.Set(); - } - - [SetUp] - public void SetUp() - { - m_iarStream = new MemoryStream(m_iarStreamBytes); - } - - [TestFixtureSetUp] - public void FixtureSetup() - { - ConstructDefaultIarBytesForTestLoad(); - } - - protected void ConstructDefaultIarBytesForTestLoad() - { -// log4net.Config.XmlConfigurator.Configure(); - - Scene scene = SceneSetupHelpers.SetupScene("Inventory"); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); - - string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(m_item1Name, UUID.Random()); - - MemoryStream archiveWriteStream = new MemoryStream(); - TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); - - InventoryItemBase item1 = new InventoryItemBase(); - item1.Name = m_item1Name; - item1.AssetID = UUID.Random(); - item1.GroupID = UUID.Random(); - item1.CreatorIdAsUuid = m_ua2.PrincipalID; - item1.Owner = UUID.Zero; - - string item1FileName - = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName); - tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1, new Dictionary(), scene.UserAccountService)); - tar.Close(); - m_iarStreamBytes = archiveWriteStream.ToArray(); - } - - /// - /// Test saving an inventory path to a V0.1 OpenSim Inventory Archive - /// (subject to change since there is no fixed format yet). - /// - [Test] - public void TestSavePathToIarV0_1() - { - TestHelper.InMethod(); -// log4net.Config.XmlConfigurator.Configure(); - - InventoryArchiverModule archiverModule = new InventoryArchiverModule(); - - Scene scene = SceneSetupHelpers.SetupScene("Inventory"); - SceneSetupHelpers.SetupSceneModules(scene, archiverModule); - - // Create user - string userFirstName = "Jock"; - string userLastName = "Stirrup"; - string userPassword = "troll"; - UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); - UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, userPassword); - - // Create asset - SceneObjectGroup object1; - SceneObjectPart part1; - { - string partName = "My Little Dog Object"; - UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); - PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); - Vector3 groupPosition = new Vector3(10, 20, 30); - Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); - Vector3 offsetPosition = new Vector3(5, 10, 15); - - part1 - = new SceneObjectPart( - ownerId, shape, groupPosition, rotationOffset, offsetPosition); - part1.Name = partName; - - object1 = new SceneObjectGroup(part1); - scene.AddNewSceneObject(object1, false); - } - - UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); - AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1); - scene.AssetService.Store(asset1); - - // Create item - UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080"); - InventoryItemBase item1 = new InventoryItemBase(); - item1.Name = "My Little Dog"; - item1.AssetID = asset1.FullID; - item1.ID = item1Id; - InventoryFolderBase objsFolder - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects")[0]; - item1.Folder = objsFolder.ID; - scene.AddInventoryItem(item1); - - MemoryStream archiveWriteStream = new MemoryStream(); - archiverModule.OnInventoryArchiveSaved += SaveCompleted; - - // Test saving a particular path - mre.Reset(); - archiverModule.ArchiveInventory( - Guid.NewGuid(), userFirstName, userLastName, "Objects", userPassword, archiveWriteStream); - mre.WaitOne(60000, false); - - byte[] archive = archiveWriteStream.ToArray(); - MemoryStream archiveReadStream = new MemoryStream(archive); - TarArchiveReader tar = new TarArchiveReader(archiveReadStream); - - //bool gotControlFile = false; - bool gotObject1File = false; - //bool gotObject2File = false; - string expectedObject1FileName = InventoryArchiveWriteRequest.CreateArchiveItemName(item1); - string expectedObject1FilePath = string.Format( - "{0}{1}{2}", - ArchiveConstants.INVENTORY_PATH, - InventoryArchiveWriteRequest.CreateArchiveFolderName(objsFolder), - expectedObject1FileName); - - string filePath; - TarArchiveReader.TarEntryType tarEntryType; - -// Console.WriteLine("Reading archive"); - - while (tar.ReadEntry(out filePath, out tarEntryType) != null) - { -// Console.WriteLine("Got {0}", filePath); - -// if (ArchiveConstants.CONTROL_FILE_PATH == filePath) -// { -// gotControlFile = true; -// } - - if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH) && filePath.EndsWith(".xml")) - { -// string fileName = filePath.Remove(0, "Objects/".Length); -// -// if (fileName.StartsWith(part1.Name)) -// { - Assert.That(expectedObject1FilePath, Is.EqualTo(filePath)); - gotObject1File = true; -// } -// else if (fileName.StartsWith(part2.Name)) -// { -// Assert.That(fileName, Is.EqualTo(expectedObject2FileName)); -// gotObject2File = true; -// } - } - } - -// Assert.That(gotControlFile, Is.True, "No control file in archive"); - Assert.That(gotObject1File, Is.True, "No item1 file in archive"); -// Assert.That(gotObject2File, Is.True, "No object2 file in archive"); - - // TODO: Test presence of more files and contents of files. - } - + public class InventoryArchiverTests : InventoryArchiveTestCase + { /// /// Test saving a single inventory item to a V0.1 OpenSim Inventory Archive /// (subject to change since there is no fixed format yet). @@ -356,30 +169,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests // TODO: Test presence of more files and contents of files. } - /// - /// Test that things work when the load path specified starts with a slash - /// - [Test] - public void TestLoadIarPathStartsWithSlash() - { - TestHelper.InMethod(); -// log4net.Config.XmlConfigurator.Configure(); - - SerialiserModule serialiserModule = new SerialiserModule(); - InventoryArchiverModule archiverModule = new InventoryArchiverModule(); - Scene scene = SceneSetupHelpers.SetupScene("inventory"); - SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); - - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "password"); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/Objects", "password", m_iarStream); - - InventoryItemBase foundItem1 - = InventoryArchiveUtils.FindItemByPath( - scene.InventoryService, m_ua1.PrincipalID, "/Objects/" + m_item1Name); - - Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1 in TestLoadIarFolderStartsWithSlash()"); - } - /// /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where /// an account exists with the creator name. @@ -443,88 +232,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3"); } - [Test] - public void TestIarV0_1WithEscapedChars() - { - TestHelper.InMethod(); -// log4net.Config.XmlConfigurator.Configure(); - - string itemName = "You & you are a mean/man/"; - string humanEscapedItemName = @"You & you are a mean\/man\/"; - string userPassword = "meowfood"; - - InventoryArchiverModule archiverModule = new InventoryArchiverModule(); - - Scene scene = SceneSetupHelpers.SetupScene("Inventory"); - SceneSetupHelpers.SetupSceneModules(scene, archiverModule); - - // Create user - string userFirstName = "Jock"; - string userLastName = "Stirrup"; - UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); - UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, "meowfood"); - - // Create asset - SceneObjectGroup object1; - SceneObjectPart part1; - { - string partName = "part name"; - UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); - PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); - Vector3 groupPosition = new Vector3(10, 20, 30); - Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); - Vector3 offsetPosition = new Vector3(5, 10, 15); - - part1 - = new SceneObjectPart( - ownerId, shape, groupPosition, rotationOffset, offsetPosition); - part1.Name = partName; - - object1 = new SceneObjectGroup(part1); - scene.AddNewSceneObject(object1, false); - } - - UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); - AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1); - scene.AssetService.Store(asset1); - - // Create item - UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080"); - InventoryItemBase item1 = new InventoryItemBase(); - item1.Name = itemName; - item1.AssetID = asset1.FullID; - item1.ID = item1Id; - InventoryFolderBase objsFolder - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects")[0]; - item1.Folder = objsFolder.ID; - scene.AddInventoryItem(item1); - - MemoryStream archiveWriteStream = new MemoryStream(); - archiverModule.OnInventoryArchiveSaved += SaveCompleted; - - mre.Reset(); - archiverModule.ArchiveInventory( - Guid.NewGuid(), userFirstName, userLastName, "Objects", userPassword, archiveWriteStream); - mre.WaitOne(60000, false); - - // LOAD ITEM - MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); - - archiverModule.DearchiveInventory(userFirstName, userLastName, "Scripts", userPassword, archiveReadStream); - - InventoryItemBase foundItem1 - = InventoryArchiveUtils.FindItemByPath( - scene.InventoryService, userId, "Scripts/Objects/" + humanEscapedItemName); - - Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); -// Assert.That( -// foundItem1.CreatorId, Is.EqualTo(userUuid), -// "Loaded item non-uuid creator doesn't match that of the loading user"); - Assert.That( - foundItem1.Name, Is.EqualTo(itemName), - "Loaded item name doesn't match saved name"); - } - /// /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where /// embedded creators do not exist in the system @@ -554,241 +261,5 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua1.PrincipalID), "Loaded item uuid creator doesn't match that of the loading user"); } - - /// - /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where - /// no account exists with the creator name - /// - /// Disabled since temporary profiles have not yet been implemented. - /// - //[Test] - //public void TestLoadIarV0_1TempProfiles() - //{ - // TestHelper.InMethod(); - - // //log4net.Config.XmlConfigurator.Configure(); - - // string userFirstName = "Dennis"; - // string userLastName = "Menace"; - // UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000aaa"); - // string user2FirstName = "Walter"; - // string user2LastName = "Mitty"; - - // string itemName = "b.lsl"; - // string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(itemName, UUID.Random()); - - // MemoryStream archiveWriteStream = new MemoryStream(); - // TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); - - // InventoryItemBase item1 = new InventoryItemBase(); - // item1.Name = itemName; - // item1.AssetID = UUID.Random(); - // item1.GroupID = UUID.Random(); - // item1.CreatorId = OspResolver.MakeOspa(user2FirstName, user2LastName); - // item1.Owner = UUID.Zero; - - // string item1FileName - // = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName); - // tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1)); - // tar.Close(); - - // MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); - // SerialiserModule serialiserModule = new SerialiserModule(); - // InventoryArchiverModule archiverModule = new InventoryArchiverModule(); - - // // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene - // Scene scene = SceneSetupHelpers.SetupScene(); - // IUserAdminService userAdminService = scene.CommsManager.UserAdminService; - - // SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); - // userAdminService.AddUser( - // userFirstName, userLastName, "meowfood", String.Empty, 1000, 1000, userUuid); - - // archiverModule.DearchiveInventory(userFirstName, userLastName, "/", "troll", archiveReadStream); - - // // Check that a suitable temporary user profile has been created. - // UserProfileData user2Profile - // = scene.CommsManager.UserService.GetUserProfile( - // OspResolver.HashName(user2FirstName + " " + user2LastName)); - // Assert.That(user2Profile, Is.Not.Null); - // Assert.That(user2Profile.FirstName == user2FirstName); - // Assert.That(user2Profile.SurName == user2LastName); - - // CachedUserInfo userInfo - // = scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName); - // userInfo.OnInventoryReceived += InventoryReceived; - - // lock (this) - // { - // userInfo.FetchInventory(); - // Monitor.Wait(this, 60000); - // } - - // InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName); - - // Assert.That(foundItem.CreatorId, Is.EqualTo(item1.CreatorId)); - // Assert.That( - // foundItem.CreatorIdAsUuid, Is.EqualTo(OspResolver.HashName(user2FirstName + " " + user2LastName))); - // Assert.That(foundItem.Owner, Is.EqualTo(userUuid)); - - // Console.WriteLine("### Successfully completed {0} ###", MethodBase.GetCurrentMethod()); - //} - - /// - /// Test replication of an archive path to the user's inventory. - /// - [Test] - public void TestNewIarPath() - { - TestHelper.InMethod(); -// log4net.Config.XmlConfigurator.Configure(); - - Scene scene = SceneSetupHelpers.SetupScene("inventory"); - UserAccount ua1 = UserProfileTestUtils.CreateUserWithInventory(scene); - - Dictionary foldersCreated = new Dictionary(); - HashSet nodesLoaded = new HashSet(); - - string folder1Name = "1"; - string folder2aName = "2a"; - string folder2bName = "2b"; - - string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1Name, UUID.Random()); - string folder2aArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2aName, UUID.Random()); - string folder2bArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2bName, UUID.Random()); - - string iarPath1 = string.Join("", new string[] { folder1ArchiveName, folder2aArchiveName }); - string iarPath2 = string.Join("", new string[] { folder1ArchiveName, folder2bArchiveName }); - - { - // Test replication of path1 - new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) - .ReplicateArchivePathToUserInventory( - iarPath1, scene.InventoryService.GetRootFolder(ua1.PrincipalID), - foldersCreated, nodesLoaded); - - List folder1Candidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1Name); - Assert.That(folder1Candidates.Count, Is.EqualTo(1)); - - InventoryFolderBase folder1 = folder1Candidates[0]; - List folder2aCandidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2aName); - Assert.That(folder2aCandidates.Count, Is.EqualTo(1)); - } - - { - // Test replication of path2 - new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) - .ReplicateArchivePathToUserInventory( - iarPath2, scene.InventoryService.GetRootFolder(ua1.PrincipalID), - foldersCreated, nodesLoaded); - - List folder1Candidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1Name); - Assert.That(folder1Candidates.Count, Is.EqualTo(1)); - - InventoryFolderBase folder1 = folder1Candidates[0]; - - List folder2aCandidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2aName); - Assert.That(folder2aCandidates.Count, Is.EqualTo(1)); - - List folder2bCandidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2bName); - Assert.That(folder2bCandidates.Count, Is.EqualTo(1)); - } - } - - /// - /// Test replication of a partly existing archive path to the user's inventory. This should create - /// a duplicate path without the merge option. - /// - [Test] - public void TestPartExistingIarPath() - { - TestHelper.InMethod(); - //log4net.Config.XmlConfigurator.Configure(); - - Scene scene = SceneSetupHelpers.SetupScene("inventory"); - UserAccount ua1 = UserProfileTestUtils.CreateUserWithInventory(scene); - - string folder1ExistingName = "a"; - string folder2Name = "b"; - - InventoryFolderBase folder1 - = UserInventoryTestUtils.CreateInventoryFolder( - scene.InventoryService, ua1.PrincipalID, folder1ExistingName); - - string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1ExistingName, UUID.Random()); - string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); - - string itemArchivePath = string.Join("", new string[] { folder1ArchiveName, folder2ArchiveName }); - - new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) - .ReplicateArchivePathToUserInventory( - itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID), - new Dictionary(), new HashSet()); - - List folder1PostCandidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1ExistingName); - Assert.That(folder1PostCandidates.Count, Is.EqualTo(2)); - - // FIXME: Temporarily, we're going to do something messy to make sure we pick up the created folder. - InventoryFolderBase folder1Post = null; - foreach (InventoryFolderBase folder in folder1PostCandidates) - { - if (folder.ID != folder1.ID) - { - folder1Post = folder; - break; - } - } -// Assert.That(folder1Post.ID, Is.EqualTo(folder1.ID)); - - List folder2PostCandidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1Post, "b"); - Assert.That(folder2PostCandidates.Count, Is.EqualTo(1)); - } - - /// - /// Test replication of a partly existing archive path to the user's inventory. This should create - /// a merged path. - /// - [Test] - public void TestMergeIarPath() - { - TestHelper.InMethod(); -// log4net.Config.XmlConfigurator.Configure(); - - Scene scene = SceneSetupHelpers.SetupScene("inventory"); - UserAccount ua1 = UserProfileTestUtils.CreateUserWithInventory(scene); - - string folder1ExistingName = "a"; - string folder2Name = "b"; - - InventoryFolderBase folder1 - = UserInventoryTestUtils.CreateInventoryFolder( - scene.InventoryService, ua1.PrincipalID, folder1ExistingName); - - string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1ExistingName, UUID.Random()); - string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); - - string itemArchivePath = string.Join("", new string[] { folder1ArchiveName, folder2ArchiveName }); - - new InventoryArchiveReadRequest(scene, ua1, folder1ExistingName, (Stream)null, true) - .ReplicateArchivePathToUserInventory( - itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID), - new Dictionary(), new HashSet()); - - List folder1PostCandidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1ExistingName); - Assert.That(folder1PostCandidates.Count, Is.EqualTo(1)); - Assert.That(folder1PostCandidates[0].ID, Is.EqualTo(folder1.ID)); - - List folder2PostCandidates - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1PostCandidates[0], "b"); - Assert.That(folder2PostCandidates.Count, Is.EqualTo(1)); - } } } \ No newline at end of file diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs new file mode 100644 index 0000000000..34eeaf3672 --- /dev/null +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs @@ -0,0 +1,436 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Threading; +using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; +using OpenMetaverse; +using OpenSim.Data; +using OpenSim.Framework; +using OpenSim.Framework.Serialization; +using OpenSim.Framework.Serialization.External; +using OpenSim.Framework.Communications; +using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver; +using OpenSim.Region.CoreModules.World.Serialiser; +using OpenSim.Region.Framework.Scenes; +using OpenSim.Region.Framework.Scenes.Serialization; +using OpenSim.Services.Interfaces; +using OpenSim.Tests.Common; +using OpenSim.Tests.Common.Mock; +using OpenSim.Tests.Common.Setup; + +namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests +{ + [TestFixture] + public class PathTests : InventoryArchiveTestCase + { + /// + /// Test saving an inventory path to a V0.1 OpenSim Inventory Archive + /// (subject to change since there is no fixed format yet). + /// + [Test] + public void TestSavePathToIarV0_1() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + InventoryArchiverModule archiverModule = new InventoryArchiverModule(); + + Scene scene = SceneSetupHelpers.SetupScene("Inventory"); + SceneSetupHelpers.SetupSceneModules(scene, archiverModule); + + // Create user + string userFirstName = "Jock"; + string userLastName = "Stirrup"; + string userPassword = "troll"; + UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); + UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, userPassword); + + // Create asset + SceneObjectGroup object1; + SceneObjectPart part1; + { + string partName = "My Little Dog Object"; + UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); + PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); + Vector3 groupPosition = new Vector3(10, 20, 30); + Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); + Vector3 offsetPosition = new Vector3(5, 10, 15); + + part1 + = new SceneObjectPart( + ownerId, shape, groupPosition, rotationOffset, offsetPosition); + part1.Name = partName; + + object1 = new SceneObjectGroup(part1); + scene.AddNewSceneObject(object1, false); + } + + UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); + AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1); + scene.AssetService.Store(asset1); + + // Create item + UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080"); + InventoryItemBase item1 = new InventoryItemBase(); + item1.Name = "My Little Dog"; + item1.AssetID = asset1.FullID; + item1.ID = item1Id; + InventoryFolderBase objsFolder + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects")[0]; + item1.Folder = objsFolder.ID; + scene.AddInventoryItem(item1); + + MemoryStream archiveWriteStream = new MemoryStream(); + archiverModule.OnInventoryArchiveSaved += SaveCompleted; + + // Test saving a particular path + mre.Reset(); + archiverModule.ArchiveInventory( + Guid.NewGuid(), userFirstName, userLastName, "Objects", userPassword, archiveWriteStream); + mre.WaitOne(60000, false); + + byte[] archive = archiveWriteStream.ToArray(); + MemoryStream archiveReadStream = new MemoryStream(archive); + TarArchiveReader tar = new TarArchiveReader(archiveReadStream); + + //bool gotControlFile = false; + bool gotObject1File = false; + //bool gotObject2File = false; + string expectedObject1FileName = InventoryArchiveWriteRequest.CreateArchiveItemName(item1); + string expectedObject1FilePath = string.Format( + "{0}{1}{2}", + ArchiveConstants.INVENTORY_PATH, + InventoryArchiveWriteRequest.CreateArchiveFolderName(objsFolder), + expectedObject1FileName); + + string filePath; + TarArchiveReader.TarEntryType tarEntryType; + +// Console.WriteLine("Reading archive"); + + while (tar.ReadEntry(out filePath, out tarEntryType) != null) + { +// Console.WriteLine("Got {0}", filePath); + +// if (ArchiveConstants.CONTROL_FILE_PATH == filePath) +// { +// gotControlFile = true; +// } + + if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH) && filePath.EndsWith(".xml")) + { +// string fileName = filePath.Remove(0, "Objects/".Length); +// +// if (fileName.StartsWith(part1.Name)) +// { + Assert.That(expectedObject1FilePath, Is.EqualTo(filePath)); + gotObject1File = true; +// } +// else if (fileName.StartsWith(part2.Name)) +// { +// Assert.That(fileName, Is.EqualTo(expectedObject2FileName)); +// gotObject2File = true; +// } + } + } + +// Assert.That(gotControlFile, Is.True, "No control file in archive"); + Assert.That(gotObject1File, Is.True, "No item1 file in archive"); +// Assert.That(gotObject2File, Is.True, "No object2 file in archive"); + + // TODO: Test presence of more files and contents of files. + } + + /// + /// Test that things work when the load path specified starts with a slash + /// + [Test] + public void TestLoadIarPathStartsWithSlash() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + SerialiserModule serialiserModule = new SerialiserModule(); + InventoryArchiverModule archiverModule = new InventoryArchiverModule(); + Scene scene = SceneSetupHelpers.SetupScene("inventory"); + SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); + + UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "password"); + archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/Objects", "password", m_iarStream); + + InventoryItemBase foundItem1 + = InventoryArchiveUtils.FindItemByPath( + scene.InventoryService, m_ua1.PrincipalID, "/Objects/" + m_item1Name); + + Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1 in TestLoadIarFolderStartsWithSlash()"); + } + + [Test] + public void TestIarV0_1WithEscapedChars() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + string itemName = "You & you are a mean/man/"; + string humanEscapedItemName = @"You & you are a mean\/man\/"; + string userPassword = "meowfood"; + + InventoryArchiverModule archiverModule = new InventoryArchiverModule(); + + Scene scene = SceneSetupHelpers.SetupScene("Inventory"); + SceneSetupHelpers.SetupSceneModules(scene, archiverModule); + + // Create user + string userFirstName = "Jock"; + string userLastName = "Stirrup"; + UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); + UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, "meowfood"); + + // Create asset + SceneObjectGroup object1; + SceneObjectPart part1; + { + string partName = "part name"; + UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); + PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); + Vector3 groupPosition = new Vector3(10, 20, 30); + Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); + Vector3 offsetPosition = new Vector3(5, 10, 15); + + part1 + = new SceneObjectPart( + ownerId, shape, groupPosition, rotationOffset, offsetPosition); + part1.Name = partName; + + object1 = new SceneObjectGroup(part1); + scene.AddNewSceneObject(object1, false); + } + + UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); + AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1); + scene.AssetService.Store(asset1); + + // Create item + UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080"); + InventoryItemBase item1 = new InventoryItemBase(); + item1.Name = itemName; + item1.AssetID = asset1.FullID; + item1.ID = item1Id; + InventoryFolderBase objsFolder + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects")[0]; + item1.Folder = objsFolder.ID; + scene.AddInventoryItem(item1); + + MemoryStream archiveWriteStream = new MemoryStream(); + archiverModule.OnInventoryArchiveSaved += SaveCompleted; + + mre.Reset(); + archiverModule.ArchiveInventory( + Guid.NewGuid(), userFirstName, userLastName, "Objects", userPassword, archiveWriteStream); + mre.WaitOne(60000, false); + + // LOAD ITEM + MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); + + archiverModule.DearchiveInventory(userFirstName, userLastName, "Scripts", userPassword, archiveReadStream); + + InventoryItemBase foundItem1 + = InventoryArchiveUtils.FindItemByPath( + scene.InventoryService, userId, "Scripts/Objects/" + humanEscapedItemName); + + Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); +// Assert.That( +// foundItem1.CreatorId, Is.EqualTo(userUuid), +// "Loaded item non-uuid creator doesn't match that of the loading user"); + Assert.That( + foundItem1.Name, Is.EqualTo(itemName), + "Loaded item name doesn't match saved name"); + } + + /// + /// Test replication of an archive path to the user's inventory. + /// + [Test] + public void TestNewIarPath() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + Scene scene = SceneSetupHelpers.SetupScene("inventory"); + UserAccount ua1 = UserProfileTestUtils.CreateUserWithInventory(scene); + + Dictionary foldersCreated = new Dictionary(); + HashSet nodesLoaded = new HashSet(); + + string folder1Name = "1"; + string folder2aName = "2a"; + string folder2bName = "2b"; + + string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1Name, UUID.Random()); + string folder2aArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2aName, UUID.Random()); + string folder2bArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2bName, UUID.Random()); + + string iarPath1 = string.Join("", new string[] { folder1ArchiveName, folder2aArchiveName }); + string iarPath2 = string.Join("", new string[] { folder1ArchiveName, folder2bArchiveName }); + + { + // Test replication of path1 + new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) + .ReplicateArchivePathToUserInventory( + iarPath1, scene.InventoryService.GetRootFolder(ua1.PrincipalID), + foldersCreated, nodesLoaded); + + List folder1Candidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1Name); + Assert.That(folder1Candidates.Count, Is.EqualTo(1)); + + InventoryFolderBase folder1 = folder1Candidates[0]; + List folder2aCandidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2aName); + Assert.That(folder2aCandidates.Count, Is.EqualTo(1)); + } + + { + // Test replication of path2 + new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) + .ReplicateArchivePathToUserInventory( + iarPath2, scene.InventoryService.GetRootFolder(ua1.PrincipalID), + foldersCreated, nodesLoaded); + + List folder1Candidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1Name); + Assert.That(folder1Candidates.Count, Is.EqualTo(1)); + + InventoryFolderBase folder1 = folder1Candidates[0]; + + List folder2aCandidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2aName); + Assert.That(folder2aCandidates.Count, Is.EqualTo(1)); + + List folder2bCandidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1, folder2bName); + Assert.That(folder2bCandidates.Count, Is.EqualTo(1)); + } + } + + /// + /// Test replication of a partly existing archive path to the user's inventory. This should create + /// a duplicate path without the merge option. + /// + [Test] + public void TestPartExistingIarPath() + { + TestHelper.InMethod(); + //log4net.Config.XmlConfigurator.Configure(); + + Scene scene = SceneSetupHelpers.SetupScene("inventory"); + UserAccount ua1 = UserProfileTestUtils.CreateUserWithInventory(scene); + + string folder1ExistingName = "a"; + string folder2Name = "b"; + + InventoryFolderBase folder1 + = UserInventoryTestUtils.CreateInventoryFolder( + scene.InventoryService, ua1.PrincipalID, folder1ExistingName); + + string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1ExistingName, UUID.Random()); + string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); + + string itemArchivePath = string.Join("", new string[] { folder1ArchiveName, folder2ArchiveName }); + + new InventoryArchiveReadRequest(scene, ua1, null, (Stream)null, false) + .ReplicateArchivePathToUserInventory( + itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID), + new Dictionary(), new HashSet()); + + List folder1PostCandidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1ExistingName); + Assert.That(folder1PostCandidates.Count, Is.EqualTo(2)); + + // FIXME: Temporarily, we're going to do something messy to make sure we pick up the created folder. + InventoryFolderBase folder1Post = null; + foreach (InventoryFolderBase folder in folder1PostCandidates) + { + if (folder.ID != folder1.ID) + { + folder1Post = folder; + break; + } + } +// Assert.That(folder1Post.ID, Is.EqualTo(folder1.ID)); + + List folder2PostCandidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1Post, "b"); + Assert.That(folder2PostCandidates.Count, Is.EqualTo(1)); + } + + /// + /// Test replication of a partly existing archive path to the user's inventory. This should create + /// a merged path. + /// + [Test] + public void TestMergeIarPath() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + Scene scene = SceneSetupHelpers.SetupScene("inventory"); + UserAccount ua1 = UserProfileTestUtils.CreateUserWithInventory(scene); + + string folder1ExistingName = "a"; + string folder2Name = "b"; + + InventoryFolderBase folder1 + = UserInventoryTestUtils.CreateInventoryFolder( + scene.InventoryService, ua1.PrincipalID, folder1ExistingName); + + string folder1ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder1ExistingName, UUID.Random()); + string folder2ArchiveName = InventoryArchiveWriteRequest.CreateArchiveFolderName(folder2Name, UUID.Random()); + + string itemArchivePath = string.Join("", new string[] { folder1ArchiveName, folder2ArchiveName }); + + new InventoryArchiveReadRequest(scene, ua1, folder1ExistingName, (Stream)null, true) + .ReplicateArchivePathToUserInventory( + itemArchivePath, scene.InventoryService.GetRootFolder(ua1.PrincipalID), + new Dictionary(), new HashSet()); + + List folder1PostCandidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, ua1.PrincipalID, folder1ExistingName); + Assert.That(folder1PostCandidates.Count, Is.EqualTo(1)); + Assert.That(folder1PostCandidates[0].ID, Is.EqualTo(folder1.ID)); + + List folder2PostCandidates + = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, folder1PostCandidates[0], "b"); + Assert.That(folder2PostCandidates.Count, Is.EqualTo(1)); + } + } +} \ No newline at end of file From 3e5b1a1de5931afc431fe55db4bd3b5e7f0637df Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 20:53:35 +0000 Subject: [PATCH 07/95] Update MySql.Data.dll to version 6.3.6. This version fixes a bug so that MySqlCommand.CommandTimeout = 0 now correctly sets an infinite command timeout. This might help with failures on long-running migrations. The mysql.data.dll v2 is used from the mysql package (as opposed to v4). The v4 version (probably standing for NET 4.0) does not work under mono 2.6.7, which is still commonly used. --- bin/MySql.Data.dll | Bin 360448 -> 353792 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bin/MySql.Data.dll b/bin/MySql.Data.dll index c28c618f236031e21d0cea03b22b6e8790107df4..992aa5621cc13880d2c16d9527816c58193d3a26 100644 GIT binary patch literal 353792 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Ξ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 ey literal 360448 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 I|AQ3xzpOfD3;+NC From 20aeace8d75fa5a1a3d0ba1d3d9ab6cdad2cf088 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 22:03:12 +0000 Subject: [PATCH 08/95] Add log messages on teleport failure to better pin down the cause. --- .../Framework/EntityTransfer/EntityTransferModule.cs | 12 +++++++++--- .../Simulation/SimulationServiceConnector.cs | 6 +++--- OpenSim/Services/Interfaces/ISimulationService.cs | 7 +++++++ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 95c771e60f..c88be7ddb0 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs @@ -399,6 +399,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer if (!UpdateAgent(reg, finalDestination, agent)) { // Region doesn't take it + m_log.WarnFormat( + "[ENTITY TRANSFER MODULE]: UpdateAgent failed on teleport of {0} to {1}. Returning avatar to source region.", + sp.Name, finalDestination.RegionName); + Fail(sp, finalDestination); return; } @@ -425,16 +429,18 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer // that the client contacted the destination before we send the attachments and close things here. if (!WaitForCallback(sp.UUID)) { - Fail(sp, finalDestination); + m_log.WarnFormat( + "[ENTITY TRANSFER MODULE]: Teleport of {0} to {1} failed due to no callback from destination region. Returning avatar to source region.", + sp.Name, finalDestination.RegionName); + + Fail(sp, finalDestination); return; } - // CrossAttachmentsIntoNewRegion is a synchronous call. We shouldn't need to wait after it CrossAttachmentsIntoNewRegion(finalDestination, sp, true); // Well, this is it. The agent is over there. - KillEntity(sp.Scene, sp.LocalId); // May need to logout or other cleanup diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs index 463b2fbc7f..93b3ae62a9 100644 --- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs +++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs @@ -79,9 +79,6 @@ namespace OpenSim.Services.Connectors.Simulation return "agent/"; } - /// - /// - /// public bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint flags, out string reason) { // m_log.DebugFormat("[REMOTE SIMULATION CONNECTOR]: CreateAgent start"); @@ -109,6 +106,9 @@ namespace OpenSim.Services.Connectors.Simulation if (result["Success"].AsBoolean()) return true; + m_log.WarnFormat( + "[REMOTE SIMULATION CONNECTOR]: Failed to create agent {0} {1} at remote simulator {1}", + aCircuit.firstname, aCircuit.lastname, destination.RegionName); reason = result["Message"] != null ? result["Message"].AsString() : "error"; return false; } diff --git a/OpenSim/Services/Interfaces/ISimulationService.cs b/OpenSim/Services/Interfaces/ISimulationService.cs index b7967578ce..55c9cc5717 100644 --- a/OpenSim/Services/Interfaces/ISimulationService.cs +++ b/OpenSim/Services/Interfaces/ISimulationService.cs @@ -40,6 +40,13 @@ namespace OpenSim.Services.Interfaces #region Agents + /// + /// Ask the simulator hosting the destination to create an agent on that region. + /// + /// + /// + /// + /// Reason message in the event of a failure. bool CreateAgent(GridRegion destination, AgentCircuitData aCircuit, uint flags, out string reason); /// From 9456bb77fbf794bb6fc2808e6cfd69c9bb1d1326 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 23:25:24 +0000 Subject: [PATCH 09/95] Upgrade nunit.framework.dll to version 2.5.9. Fix up tests appropriately. This version removes the NUnit.Framework.SyntaxHelpers namespace, so any modules with their own tests will need to delete this using statement. --- OpenSim/Data/Tests/AssetTests.cs | 18 +----------------- OpenSim/Data/Tests/EstateTests.cs | 15 +-------------- OpenSim/Data/Tests/InventoryTests.cs | 12 ------------ .../Data/Tests/PropertyCompareConstraint.cs | 1 - OpenSim/Data/Tests/PropertyScrambler.cs | 2 -- OpenSim/Data/Tests/RegionTests.cs | 11 ----------- .../Framework/Servers/Tests/OSHttpTests.cs | 1 - OpenSim/Framework/Tests/AnimationTests.cs | 1 - .../Framework/Tests/PrimeNumberHelperTests.cs | 3 --- OpenSim/Framework/Tests/UtilTest.cs | 1 - .../Tests/InventoryArchiveTestCase.cs | 1 - .../Archiver/Tests/InventoryArchiverTests.cs | 1 - .../Inventory/Archiver/Tests/PathTests.cs | 1 - .../Grid/Tests/GridConnectorsTests.cs | 1 - .../Presence/Tests/PresenceConnectorsTests.cs | 1 - .../World/Archiver/Tests/ArchiverTests.cs | 1 - .../World/Media/Moap/Tests/MoapTests.cs | 1 - .../World/Serialiser/Tests/SerialiserTests.cs | 1 - .../Framework/Scenes/Tests/AttachmentTests.cs | 1 - .../Scenes/Tests/EntityManagerTests.cs | 1 - .../Framework/Scenes/Tests/SceneGraphTests.cs | 1 - .../Scenes/Tests/SceneObjectBasicTests.cs | 1 - .../Scenes/Tests/SceneObjectDeRezTests.cs | 1 - .../Scenes/Tests/SceneObjectLinkingTests.cs | 1 - .../Scenes/Tests/SceneObjectUserGroupTests.cs | 1 - .../Scenes/Tests/ScenePresenceTests.cs | 1 - .../Framework/Scenes/Tests/SceneTests.cs | 1 - .../Scenes/Tests/StandaloneTeleportTests.cs | 1 - .../Scenes/Tests/TaskInventoryTests.cs | 1 - .../Scenes/Tests/UuidGathererTests.cs | 1 - .../XmlRpcGroups/Tests/GroupsModuleTests.cs | 1 - .../Tests/Common/DoubleToleranceConstraint.cs | 1 + OpenSim/Tests/Common/TestHelper.cs | 3 +-- .../Tests/Common/VectorToleranceConstraint.cs | 1 + bin/nunit.framework.dll | Bin 77824 -> 135168 bytes 35 files changed, 5 insertions(+), 86 deletions(-) diff --git a/OpenSim/Data/Tests/AssetTests.cs b/OpenSim/Data/Tests/AssetTests.cs index 800b9bfba2..32f74a9b1e 100644 --- a/OpenSim/Data/Tests/AssetTests.cs +++ b/OpenSim/Data/Tests/AssetTests.cs @@ -35,10 +35,6 @@ using OpenSim.Framework; using System.Data.Common; using log4net; -#if !NUNIT25 -using NUnit.Framework.SyntaxHelpers; -#endif - // DBMS-specific: using MySql.Data.MySqlClient; using OpenSim.Data.MySQL; @@ -51,15 +47,6 @@ using OpenSim.Data.SQLite; namespace OpenSim.Data.Tests { - -#if NUNIT25 - - [TestFixture(typeof(MySqlConnection), typeof(MySQLAssetData), Description="Basic Asset store tests (MySQL)")] - [TestFixture(typeof(SqlConnection), typeof(MSSQLAssetData), Description = "Basic Asset store tests (MS SQL Server)")] - [TestFixture(typeof(SqliteConnection), typeof(SQLiteAssetData), Description = "Basic Asset store tests (SQLite)")] - -#else - [TestFixture(Description = "Asset store tests (SQLite)")] public class SQLiteAssetTests : AssetTests { @@ -75,9 +62,6 @@ namespace OpenSim.Data.Tests { } -#endif - - public class AssetTests : BasicDataServiceTest where TConn : DbConnection, new() where TAssetData : AssetDataBase, new() @@ -218,4 +202,4 @@ namespace OpenSim.Data.Tests Assert.That(a3a, Constraints.PropertyCompareConstraint(a3)); } } -} +} \ No newline at end of file diff --git a/OpenSim/Data/Tests/EstateTests.cs b/OpenSim/Data/Tests/EstateTests.cs index fbf8ba658e..3354e284da 100644 --- a/OpenSim/Data/Tests/EstateTests.cs +++ b/OpenSim/Data/Tests/EstateTests.cs @@ -28,7 +28,6 @@ using System; using log4net.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; @@ -49,15 +48,6 @@ using OpenSim.Data.SQLite; namespace OpenSim.Data.Tests { - -#if NUNIT25 - - [TestFixture(typeof(MySqlConnection), typeof(MySQLEstateStore), Description = "Estate store tests (MySQL)")] - [TestFixture(typeof(SqlConnection), typeof(MSSQLEstateStore), Description = "Estate store tests (MS SQL Server)")] - [TestFixture(typeof(SqliteConnection), typeof(SQLiteEstateStore), Description = "Estate store tests (SQLite)")] - -#else - [TestFixture(Description = "Estate store tests (SQLite)")] public class SQLiteEstateTests : EstateTests { @@ -73,8 +63,6 @@ namespace OpenSim.Data.Tests { } -#endif - public class EstateTests : BasicDataServiceTest where TConn : DbConnection, new() where TEstateStore : class, IEstateDataStore, new() @@ -520,6 +508,5 @@ namespace OpenSim.Data.Tests } #endregion - } -} +} \ No newline at end of file diff --git a/OpenSim/Data/Tests/InventoryTests.cs b/OpenSim/Data/Tests/InventoryTests.cs index 9c2a2d6fd5..758f9704b7 100644 --- a/OpenSim/Data/Tests/InventoryTests.cs +++ b/OpenSim/Data/Tests/InventoryTests.cs @@ -25,12 +25,9 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -// #define NUNIT25 - using System; using log4net.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using log4net; @@ -49,14 +46,6 @@ using OpenSim.Data.SQLite; namespace OpenSim.Data.Tests { -#if NUNIT25 - - [TestFixture(typeof(SqliteConnection), typeof(SQLiteInventoryStore), Description = "Inventory store tests (SQLite)")] - [TestFixture(typeof(MySqlConnection), typeof(MySQLInventoryData), Description = "Inventory store tests (MySQL)")] - [TestFixture(typeof(SqlConnection), typeof(MSSQLInventoryData), Description = "Inventory store tests (MS SQL Server)")] - -#else - [TestFixture(Description = "Inventory store tests (SQLite)")] public class SQLiteInventoryTests : InventoryTests { @@ -71,7 +60,6 @@ namespace OpenSim.Data.Tests public class MSSQLInventoryTests : InventoryTests { } -#endif public class InventoryTests : BasicDataServiceTest where TConn : DbConnection, new() diff --git a/OpenSim/Data/Tests/PropertyCompareConstraint.cs b/OpenSim/Data/Tests/PropertyCompareConstraint.cs index f3d41df586..6c79bda9ec 100644 --- a/OpenSim/Data/Tests/PropertyCompareConstraint.cs +++ b/OpenSim/Data/Tests/PropertyCompareConstraint.cs @@ -34,7 +34,6 @@ using System.Linq.Expressions; using System.Reflection; using NUnit.Framework; using NUnit.Framework.Constraints; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; diff --git a/OpenSim/Data/Tests/PropertyScrambler.cs b/OpenSim/Data/Tests/PropertyScrambler.cs index 132294ad30..c5d40c2373 100644 --- a/OpenSim/Data/Tests/PropertyScrambler.cs +++ b/OpenSim/Data/Tests/PropertyScrambler.cs @@ -32,13 +32,11 @@ using System.Linq.Expressions; using System.Reflection; using System.Text; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; namespace OpenSim.Data.Tests { - //This is generic so that the lambda expressions will work right in IDEs. public class PropertyScrambler { diff --git a/OpenSim/Data/Tests/RegionTests.cs b/OpenSim/Data/Tests/RegionTests.cs index 23d498d6fa..9598716e0d 100644 --- a/OpenSim/Data/Tests/RegionTests.cs +++ b/OpenSim/Data/Tests/RegionTests.cs @@ -31,7 +31,6 @@ using System.Drawing; using System.Text; using log4net.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; @@ -52,14 +51,6 @@ using OpenSim.Data.SQLite; namespace OpenSim.Data.Tests { -#if NUNIT25 - - [TestFixture(typeof(SqliteConnection), typeof(SQLiteRegionData), Description = "Region store tests (SQLite)")] - [TestFixture(typeof(MySqlConnection), typeof(MySqlRegionData), Description = "Region store tests (MySQL)")] - [TestFixture(typeof(SqlConnection), typeof(MSSQLRegionData), Description = "Region store tests (MS SQL Server)")] - -#else - [TestFixture(Description = "Region store tests (SQLite)")] public class SQLiteRegionTests : RegionTests { @@ -75,8 +66,6 @@ namespace OpenSim.Data.Tests { } -#endif - public class RegionTests : BasicDataServiceTest where TConn : DbConnection, new() where TRegStore : class, ISimulationDataStore, new() diff --git a/OpenSim/Framework/Servers/Tests/OSHttpTests.cs b/OpenSim/Framework/Servers/Tests/OSHttpTests.cs index e62407adfa..dc4eb8f4bf 100644 --- a/OpenSim/Framework/Servers/Tests/OSHttpTests.cs +++ b/OpenSim/Framework/Servers/Tests/OSHttpTests.cs @@ -34,7 +34,6 @@ using System.Text; using HttpServer; using HttpServer.FormDecoders; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenSim.Framework.Servers.HttpServer; namespace OpenSim.Framework.Servers.Tests diff --git a/OpenSim/Framework/Tests/AnimationTests.cs b/OpenSim/Framework/Tests/AnimationTests.cs index 719ddce306..9aa95afa43 100644 --- a/OpenSim/Framework/Tests/AnimationTests.cs +++ b/OpenSim/Framework/Tests/AnimationTests.cs @@ -28,7 +28,6 @@ using System; using System.Reflection; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenMetaverse.StructuredData; using OpenSim.Framework; diff --git a/OpenSim/Framework/Tests/PrimeNumberHelperTests.cs b/OpenSim/Framework/Tests/PrimeNumberHelperTests.cs index d741f9116d..36bc6e75f9 100644 --- a/OpenSim/Framework/Tests/PrimeNumberHelperTests.cs +++ b/OpenSim/Framework/Tests/PrimeNumberHelperTests.cs @@ -28,7 +28,6 @@ using System; using System.Reflection; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenMetaverse.StructuredData; using OpenSim.Framework; @@ -38,8 +37,6 @@ namespace OpenSim.Framework.Tests [TestFixture] public class PrimeNumberHelperTests { - - [Test] public void TestGetPrime() { diff --git a/OpenSim/Framework/Tests/UtilTest.cs b/OpenSim/Framework/Tests/UtilTest.cs index 89f5c0cba9..5eac411944 100644 --- a/OpenSim/Framework/Tests/UtilTest.cs +++ b/OpenSim/Framework/Tests/UtilTest.cs @@ -27,7 +27,6 @@ using System; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Tests.Common; diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs index 023c452a23..3ec5e53114 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs @@ -31,7 +31,6 @@ using System.IO; using System.Reflection; using System.Threading; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Data; using OpenSim.Framework; diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index edbbd81106..67d71596bf 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -31,7 +31,6 @@ using System.IO; using System.Reflection; using System.Threading; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Data; using OpenSim.Framework; diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs index 34eeaf3672..4b7de0ca47 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs @@ -31,7 +31,6 @@ using System.IO; using System.Reflection; using System.Threading; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Data; using OpenSim.Framework; diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs index e54ee02f43..18db9fa0e3 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Grid/Tests/GridConnectorsTests.cs @@ -32,7 +32,6 @@ using System.Reflection; using System.Threading; using log4net.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using Nini.Config; diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs index ef910f4c26..e471f756d0 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/Tests/PresenceConnectorsTests.cs @@ -32,7 +32,6 @@ using System.Reflection; using System.Threading; using log4net.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using Nini.Config; diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs index 04b6e3d3f9..e2760a2065 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs @@ -32,7 +32,6 @@ using System.Reflection; using System.Threading; using log4net.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenMetaverse.Assets; using OpenSim.Framework; diff --git a/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs b/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs index 7a68e55c7e..5b85830f5f 100644 --- a/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs +++ b/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs @@ -32,7 +32,6 @@ using System.Reflection; using System.Threading; using log4net.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenMetaverse.Assets; using OpenSim.Framework; diff --git a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs index f10e848f68..dafaa0c107 100644 --- a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs +++ b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs @@ -30,7 +30,6 @@ using System.IO; using System.Xml; using log4net.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Scenes; diff --git a/OpenSim/Region/Framework/Scenes/Tests/AttachmentTests.cs b/OpenSim/Region/Framework/Scenes/Tests/AttachmentTests.cs index af4464081b..855b5894b6 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/AttachmentTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/AttachmentTests.cs @@ -34,7 +34,6 @@ using System.Timers; using Timer=System.Timers.Timer; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs index b3c3e22af6..667b74ea95 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/EntityManagerTests.cs @@ -32,7 +32,6 @@ using System.Text; using System.Collections.Generic; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs index 9244bc3461..ca635d708d 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneGraphTests.cs @@ -28,7 +28,6 @@ using System; using System.Reflection; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs index 4969b09149..a6a95ef885 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectBasicTests.cs @@ -28,7 +28,6 @@ using System; using System.Reflection; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs index 39116b6615..0d260266ef 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs @@ -30,7 +30,6 @@ using System.Collections.Generic; using System.Reflection; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs index b84298f2fa..bdfcd1dc29 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectLinkingTests.cs @@ -29,7 +29,6 @@ using System; using System.Collections.Generic; using System.Reflection; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs index c78038f7a7..8876a435b6 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneObjectUserGroupTests.cs @@ -30,7 +30,6 @@ using System.Collections.Generic; using System.Reflection; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTests.cs b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTests.cs index fd2d6fab2d..efb757fa6c 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/ScenePresenceTests.cs @@ -34,7 +34,6 @@ using System.Timers; using Timer=System.Timers.Timer; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs index 9aba8a8bfc..abcce66e23 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/SceneTests.cs @@ -34,7 +34,6 @@ using System.Timers; using Timer=System.Timers.Timer; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs index cafe48afdd..8588f7f599 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/StandaloneTeleportTests.cs @@ -29,7 +29,6 @@ using System; using System.Reflection; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs index fe59d4f031..8138bcc19a 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/TaskInventoryTests.cs @@ -34,7 +34,6 @@ using System.Timers; using Timer=System.Timers.Timer; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenMetaverse.Assets; using OpenSim.Framework; diff --git a/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs b/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs index 5e6124b4f9..6b70865533 100644 --- a/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs +++ b/OpenSim/Region/Framework/Scenes/Tests/UuidGathererTests.cs @@ -28,7 +28,6 @@ using System.Collections.Generic; using System.Text; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Scenes; diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs index bc55b04743..6de97b7269 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/Tests/GroupsModuleTests.cs @@ -29,7 +29,6 @@ using System; using System.Reflection; using Nini.Config; using NUnit.Framework; -using NUnit.Framework.SyntaxHelpers; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Framework.Communications; diff --git a/OpenSim/Tests/Common/DoubleToleranceConstraint.cs b/OpenSim/Tests/Common/DoubleToleranceConstraint.cs index c397a6230b..b2f20571ae 100644 --- a/OpenSim/Tests/Common/DoubleToleranceConstraint.cs +++ b/OpenSim/Tests/Common/DoubleToleranceConstraint.cs @@ -27,6 +27,7 @@ using System; using NUnit.Framework; +using NUnit.Framework.Constraints; namespace OpenSim.Tests.Common { diff --git a/OpenSim/Tests/Common/TestHelper.cs b/OpenSim/Tests/Common/TestHelper.cs index 9d530635f3..1722e59864 100644 --- a/OpenSim/Tests/Common/TestHelper.cs +++ b/OpenSim/Tests/Common/TestHelper.cs @@ -27,11 +27,10 @@ using System; using System.Diagnostics; +using NUnit.Framework; namespace OpenSim.Tests.Common { - public delegate void TestDelegate(); - public class TestHelper { public static bool AssertThisDelegateCausesArgumentException(TestDelegate d) diff --git a/OpenSim/Tests/Common/VectorToleranceConstraint.cs b/OpenSim/Tests/Common/VectorToleranceConstraint.cs index 118cc707f8..2fa20edec9 100644 --- a/OpenSim/Tests/Common/VectorToleranceConstraint.cs +++ b/OpenSim/Tests/Common/VectorToleranceConstraint.cs @@ -28,6 +28,7 @@ using System; using OpenMetaverse; using NUnit.Framework; +using NUnit.Framework.Constraints; namespace OpenSim.Tests.Common { diff --git a/bin/nunit.framework.dll b/bin/nunit.framework.dll index d68d9f20c5ab7154fa4cf17b0f720c5c5b48eade..875e0984208d52e5c96a409b52996547198af17a 100644 GIT binary patch literal 135168 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 literal 77824 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 YFyg?710xQMI56VChyx=IyxSc3AOBQO>Hq)$ From 07f68c83181dffcdc1a064b10ef805b1d4605602 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 23:54:52 +0000 Subject: [PATCH 10/95] minor: change the order of some default iar setup in test case --- .../Archiver/Tests/InventoryArchiveTestCase.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs index 3ec5e53114..5ec7bc4e52 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs @@ -93,8 +93,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests Scene scene = SceneSetupHelpers.SetupScene("Inventory"); UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); - - string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(m_item1Name, UUID.Random()); MemoryStream archiveWriteStream = new MemoryStream(); TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); @@ -106,10 +104,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests item1.CreatorIdAsUuid = m_ua2.PrincipalID; item1.Owner = UUID.Zero; - string item1FileName - = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName); - tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1, new Dictionary(), scene.UserAccountService)); + string archiveItem1Name = InventoryArchiveWriteRequest.CreateArchiveItemName(m_item1Name, UUID.Random()); + string archiveItem1Path = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItem1Name); + tar.WriteFile( + archiveItem1Path, + UserInventoryItemSerializer.Serialize( + item1, new Dictionary(), scene.UserAccountService)); tar.Close(); + m_iarStreamBytes = archiveWriteStream.ToArray(); } From fa1996155e26847a508739e512513cf1f52b687e Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Mar 2011 23:58:26 +0000 Subject: [PATCH 11/95] Make the item created in the default test iar an object rather than a script --- .../Tests/InventoryArchiveTestCase.cs | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs index 5ec7bc4e52..ca5bc53561 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs @@ -73,7 +73,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000666"), FirstName = "Lord", LastName = "Lucan" }; - protected string m_item1Name = "b.lsl"; + protected string m_item1Name = "Ray Gun Item"; [SetUp] public void SetUp() @@ -96,10 +96,35 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests MemoryStream archiveWriteStream = new MemoryStream(); TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); + + // Create asset + SceneObjectGroup object1; + SceneObjectPart part1; + { + string partName = "Ray Gun Object"; + UUID ownerId = UUID.Parse("00000000-0000-0000-0000-000000000040"); + PrimitiveBaseShape shape = PrimitiveBaseShape.CreateSphere(); + Vector3 groupPosition = new Vector3(10, 20, 30); + Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); + Vector3 offsetPosition = new Vector3(5, 10, 15); + part1 + = new SceneObjectPart( + ownerId, shape, groupPosition, rotationOffset, offsetPosition); + part1.Name = partName; + + object1 = new SceneObjectGroup(part1); + scene.AddNewSceneObject(object1, false); + } + + UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); + AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1); + scene.AssetService.Store(asset1); + + // Create item InventoryItemBase item1 = new InventoryItemBase(); item1.Name = m_item1Name; - item1.AssetID = UUID.Random(); + item1.AssetID = asset1.FullID; item1.GroupID = UUID.Random(); item1.CreatorIdAsUuid = m_ua2.PrincipalID; item1.Owner = UUID.Zero; From 549b0ea17ced61af995984bf8c155477bf9d624b Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 00:06:32 +0000 Subject: [PATCH 12/95] Split the inventory path testing parts of TestLoadIarV0_1ExistingUsers() into a new test TestLoadIarToInventoryPaths() --- .../Archiver/Tests/InventoryArchiverTests.cs | 22 --------- .../Inventory/Archiver/Tests/PathTests.cs | 47 ++++++++++++++++++- 2 files changed, 46 insertions(+), 23 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 67d71596bf..5f75c4aab6 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -172,8 +172,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where /// an account exists with the creator name. /// - /// - /// This test also does some deeper probing of loading into nested inventory structures [Test] public void TestLoadIarV0_1ExistingUsers() { @@ -194,8 +192,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream); InventoryItemBase foundItem1 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, m_item1Name); - - Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); // We have to disable this check since loaded items that did find users via OSPA resolution are now only storing the // UUID, not the OSPA itself. @@ -211,24 +207,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests "Loaded item uuid creator doesn't match original"); Assert.That(foundItem1.Owner, Is.EqualTo(m_ua1.PrincipalID), "Loaded item owner doesn't match inventory reciever"); - - // Now try loading to a root child folder - UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, m_ua1.PrincipalID, "xA"); - MemoryStream archiveReadStream = new MemoryStream(m_iarStream.ToArray()); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "xA", "meowfood", archiveReadStream); - - InventoryItemBase foundItem2 - = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, "xA/" + m_item1Name); - Assert.That(foundItem2, Is.Not.Null, "Didn't find loaded item 2"); - - // Now try loading to a more deeply nested folder - UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, m_ua1.PrincipalID, "xB/xC"); - archiveReadStream = new MemoryStream(archiveReadStream.ToArray()); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "xB/xC", "meowfood", archiveReadStream); - - InventoryItemBase foundItem3 - = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, "xB/xC/" + m_item1Name); - Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3"); } /// diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs index 4b7de0ca47..1220a7090a 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs @@ -169,6 +169,51 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests // TODO: Test presence of more files and contents of files. } + /// + /// Test loading an IAR to various different inventory paths. + /// + [Test] + public void TestLoadIarToInventoryPaths() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + SerialiserModule serialiserModule = new SerialiserModule(); + InventoryArchiverModule archiverModule = new InventoryArchiverModule(); + + // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene + Scene scene = SceneSetupHelpers.SetupScene("inventory"); + + SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); + + UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "meowfood"); + UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); + + archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream); + InventoryItemBase foundItem1 + = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, m_item1Name); + + Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); + + // Now try loading to a root child folder + UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, m_ua1.PrincipalID, "xA"); + MemoryStream archiveReadStream = new MemoryStream(m_iarStream.ToArray()); + archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "xA", "meowfood", archiveReadStream); + + InventoryItemBase foundItem2 + = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, "xA/" + m_item1Name); + Assert.That(foundItem2, Is.Not.Null, "Didn't find loaded item 2"); + + // Now try loading to a more deeply nested folder + UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, m_ua1.PrincipalID, "xB/xC"); + archiveReadStream = new MemoryStream(archiveReadStream.ToArray()); + archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "xB/xC", "meowfood", archiveReadStream); + + InventoryItemBase foundItem3 + = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, "xB/xC/" + m_item1Name); + Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3"); + } + /// /// Test that things work when the load path specified starts with a slash /// @@ -194,7 +239,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests } [Test] - public void TestIarV0_1WithEscapedChars() + public void TestLoadIarPathWithEscapedChars() { TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); From 4dd60b7dce4421bec89e9964a3fb51a1658945ad Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 00:19:17 +0000 Subject: [PATCH 13/95] Change existing users load iar test so that it fulfills it's original intention (i.e. OSPA resolution, which is still active). Will need to write a separate test for the simplest case where creator accounts with appropriate uuids exist on iar load. --- .../Tests/InventoryArchiveTestCase.cs | 7 ++++++- .../Archiver/Tests/InventoryArchiverTests.cs | 19 +++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs index ca5bc53561..dcafc49ee4 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs @@ -72,7 +72,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests = new UserAccount { PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000666"), FirstName = "Lord", - LastName = "Lucan" }; + LastName = "Lucan" }; + protected UserAccount m_ua3 + = new UserAccount { + PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000777"), + FirstName = "Lord", + LastName = "Lucan" }; protected string m_item1Name = "Ray Gun Item"; [SetUp] diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 5f75c4aab6..b52014b12a 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -170,10 +170,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests /// /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where - /// an account exists with the creator name. + /// an account exists with the same name as the creator, though not the same id. /// [Test] - public void TestLoadIarV0_1ExistingUsers() + public void TestLoadIarV0_1SameNameCreator() { TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); @@ -187,7 +187,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "meowfood"); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); + UserProfileTestUtils.CreateUserWithInventory(scene, m_ua3, "hampshire"); archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream); InventoryItemBase foundItem1 @@ -198,12 +198,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests // Assert.That( // foundItem1.CreatorId, Is.EqualTo(item1.CreatorId), // "Loaded item non-uuid creator doesn't match original"); -// Assert.That( -// foundItem1.CreatorId, Is.EqualTo(m_ua2.PrincipalID.ToString()), -// "Loaded item non-uuid creator doesn't match original"); - Assert.That( - foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua2.PrincipalID), + foundItem1.CreatorId, Is.EqualTo(m_ua3.PrincipalID.ToString()), + "Loaded item non-uuid creator doesn't match original"); + Assert.That( + foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua3.PrincipalID), "Loaded item uuid creator doesn't match original"); Assert.That(foundItem1.Owner, Is.EqualTo(m_ua1.PrincipalID), "Loaded item owner doesn't match inventory reciever"); @@ -211,10 +210,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests /// /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where - /// embedded creators do not exist in the system + /// the creator or an account with the creator's name does not exist within the system. /// [Test] - public void TestLoadIarV0_1AbsentUsers() + public void TestLoadIarV0_1AbsentCreator() { TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); From a151afebe3348ad05db3d78074e3eaf99dc06afe Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 19:40:19 +0000 Subject: [PATCH 14/95] When setting up default iar for testing, use iar archiving code rather than constructing the tar manually --- .../Tests/InventoryArchiveTestCase.cs | 20 +++++++++---------- .../Archiver/Tests/InventoryArchiverTests.cs | 6 ++++++ .../Inventory/Archiver/Tests/PathTests.cs | 4 +--- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs index dcafc49ee4..d77bff2741 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs @@ -96,11 +96,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests { // log4net.Config.XmlConfigurator.Configure(); + InventoryArchiverModule archiverModule = new InventoryArchiverModule(); Scene scene = SceneSetupHelpers.SetupScene("Inventory"); + SceneSetupHelpers.SetupSceneModules(scene, archiverModule); + UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); MemoryStream archiveWriteStream = new MemoryStream(); - TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); // Create asset SceneObjectGroup object1; @@ -129,18 +131,16 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests // Create item InventoryItemBase item1 = new InventoryItemBase(); item1.Name = m_item1Name; + item1.ID = UUID.Parse("00000000-0000-0000-0000-000000000020"); item1.AssetID = asset1.FullID; item1.GroupID = UUID.Random(); item1.CreatorIdAsUuid = m_ua2.PrincipalID; - item1.Owner = UUID.Zero; - - string archiveItem1Name = InventoryArchiveWriteRequest.CreateArchiveItemName(m_item1Name, UUID.Random()); - string archiveItem1Path = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItem1Name); - tar.WriteFile( - archiveItem1Path, - UserInventoryItemSerializer.Serialize( - item1, new Dictionary(), scene.UserAccountService)); - tar.Close(); + item1.Owner = m_ua2.PrincipalID; + item1.Folder = scene.InventoryService.GetRootFolder(m_ua2.PrincipalID).ID; + scene.AddInventoryItem(item1); + + archiverModule.ArchiveInventory( + Guid.NewGuid(), m_ua2.FirstName, m_ua2.LastName, m_item1Name, "hampshire", archiveWriteStream); m_iarStreamBytes = archiveWriteStream.ToArray(); } diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index b52014b12a..3eb4104e73 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -206,6 +206,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests "Loaded item uuid creator doesn't match original"); Assert.That(foundItem1.Owner, Is.EqualTo(m_ua1.PrincipalID), "Loaded item owner doesn't match inventory reciever"); + +// AssetBase asset1 = scene.AssetService.Get(foundItem1.AssetID.ToString()); +// string xmlData = Utils.BytesToString(asset1.Data); +// SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); +// +// Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_ua3.PrincipalID.ToString())); } /// diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs index 1220a7090a..66c19f4a34 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs @@ -84,9 +84,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); Vector3 offsetPosition = new Vector3(5, 10, 15); - part1 - = new SceneObjectPart( - ownerId, shape, groupPosition, rotationOffset, offsetPosition); + part1 = new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition); part1.Name = partName; object1 = new SceneObjectGroup(part1); From db2ad62c9b52baaa7e2b1d8fed481cbd336f4f1b Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 19:52:19 +0000 Subject: [PATCH 15/95] in AssetHelpers.CreateAsset(), create objects using the 'original' xml format rather than 'xml2' --- OpenSim/Tests/Common/Setup/AssetHelpers.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenSim/Tests/Common/Setup/AssetHelpers.cs b/OpenSim/Tests/Common/Setup/AssetHelpers.cs index 8647cfed51..ff4423f7ab 100644 --- a/OpenSim/Tests/Common/Setup/AssetHelpers.cs +++ b/OpenSim/Tests/Common/Setup/AssetHelpers.cs @@ -68,7 +68,7 @@ namespace OpenSim.Tests.Common return CreateAsset( assetUuid, AssetType.Object, - Encoding.ASCII.GetBytes(SceneObjectSerializer.ToXml2Format(sog)), + Encoding.ASCII.GetBytes(SceneObjectSerializer.ToOriginalXmlFormat(sog)), sog.OwnerID); } From b821f748ac591258f015ecf3ba8011d5561c488d Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 21:56:15 +0000 Subject: [PATCH 16/95] For objects loaded from an IAR, make sure the CreatorID points towards the OSP resolved ID if newer CreationData is not present. This should resolve issues where the creator for rezzed objects was being shown as "Unknown user" where previous behaviour was to show the OSP resolved account. This is being done by parsing the serialized objects and updating the CreatorID if no CreationData exists. This operation might be expensive for sculpties where the sculpt texture is inlined with the object data. Will just have to see. This relies on the IAR streaming inventory data before asset data (as is currently the case). Will need to introduce more stringent checks for file order on loading (much like JAR zips must start with the manifest file). This is for IAR loading only. Tests updated to check this behaviour. --- .../Archiver/InventoryArchiveReadRequest.cs | 40 +++++++++++++++++-- .../Archiver/Tests/InventoryArchiverTests.cs | 10 ++--- .../Scenes/SceneObjectPartInventory.cs | 8 +++- 3 files changed, 48 insertions(+), 10 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 7849d88320..d0510d3da1 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -41,6 +41,7 @@ using OpenSim.Framework.Serialization; using OpenSim.Framework.Serialization.External; using OpenSim.Region.CoreModules.World.Archiver; using OpenSim.Region.Framework.Scenes; +using OpenSim.Region.Framework.Scenes.Serialization; using OpenSim.Region.Framework.Interfaces; using OpenSim.Services.Interfaces; @@ -75,6 +76,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver /// The stream from which the inventory archive will be loaded. /// private Stream m_loadStream; + + /// + /// Record the creator id that should be associated with an asset. This is used to adjust asset creator ids + /// after OSP resolution (since OSP creators are only stored in the item + /// + protected Dictionary m_creatorIdForAssetId = new Dictionary(); public InventoryArchiveReadRequest( Scene scene, UserAccount userInfo, string invPath, string loadPath, bool merge) @@ -420,6 +427,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver // Reset folder ID to the one in which we want to load it item.Folder = loadFolder.ID; + // Record the creator id for the item's asset so that we can use it later, if necessary, when the asset + // is loaded. + // FIXME: This relies on the items coming before the assets in the TAR file. Need to create stronger + // checks for this, and maybe even an external tool for creating OARs which enforces this, rather than + // relying on native tar tools. + m_creatorIdForAssetId[item.AssetID] = item.CreatorIdAsUuid; + m_scene.AddInventoryItem(item); return item; @@ -448,18 +462,38 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver } string extension = filename.Substring(i); - string uuid = filename.Remove(filename.Length - extension.Length); + string rawUuid = filename.Remove(filename.Length - extension.Length); + UUID assetId = new UUID(rawUuid); if (ArchiveConstants.EXTENSION_TO_ASSET_TYPE.ContainsKey(extension)) { sbyte assetType = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension]; if (assetType == (sbyte)AssetType.Unknown) - m_log.WarnFormat("[INVENTORY ARCHIVER]: Importing {0} byte asset {1} with unknown type", data.Length, uuid); + { + m_log.WarnFormat("[INVENTORY ARCHIVER]: Importing {0} byte asset {1} with unknown type", data.Length, assetId); + } + else if (assetType == (sbyte)AssetType.Object) + { + if (m_creatorIdForAssetId.ContainsKey(assetId)) + { + string xmlData = Utils.BytesToString(data); + SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); + foreach (SceneObjectPart sop in sog.Parts) + { + if (sop.CreatorData == null || sop.CreatorData == "") + { + sop.CreatorID = m_creatorIdForAssetId[assetId]; + } + } + + data = Utils.StringToBytes(SceneObjectSerializer.ToOriginalXmlFormat(sog)); + } + } //m_log.DebugFormat("[INVENTORY ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); - AssetBase asset = new AssetBase(new UUID(uuid), "RandomName", assetType, UUID.Zero.ToString()); + AssetBase asset = new AssetBase(assetId, "From IAR", assetType, UUID.Zero.ToString()); asset.Data = data; m_scene.AssetService.Store(asset); diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 3eb4104e73..5065227967 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -207,11 +207,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests Assert.That(foundItem1.Owner, Is.EqualTo(m_ua1.PrincipalID), "Loaded item owner doesn't match inventory reciever"); -// AssetBase asset1 = scene.AssetService.Get(foundItem1.AssetID.ToString()); -// string xmlData = Utils.BytesToString(asset1.Data); -// SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); -// -// Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_ua3.PrincipalID.ToString())); + AssetBase asset1 = scene.AssetService.Get(foundItem1.AssetID.ToString()); + string xmlData = Utils.BytesToString(asset1.Data); + SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); + + Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_ua3.PrincipalID)); } /// diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 67e59c6564..fa404c01bd 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs @@ -1089,9 +1089,13 @@ namespace OpenSim.Region.Framework.Scenes public Dictionary GetScriptStates() { + Dictionary ret = new Dictionary(); + + if (m_part.ParentGroup.Scene == null) // Group not in a scene + return ret; + IScriptModule[] engines = m_part.ParentGroup.Scene.RequestModuleInterfaces(); - - Dictionary ret = new Dictionary(); + if (engines == null) // No engine at all return ret; From ce4421497e47d709018e6aba9e99317d6a936b98 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 22:38:52 +0000 Subject: [PATCH 17/95] re-enable item.CreatorId check in TestLoadIarV0_1AbsentCreator() --- .../Inventory/Archiver/InventoryArchiveReadRequest.cs | 5 +++-- .../Inventory/Archiver/Tests/InventoryArchiverTests.cs | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index d0510d3da1..7d50e51173 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -411,7 +411,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver item.CreatorIdAsUuid = ospResolvedId; - // XXX: For now, don't preserve the OSPA in the creator id (which actually gets persisted to the + // Don't preserve the OSPA in the creator id (which actually gets persisted to the // database). Instead, replace with the UUID that we found. item.CreatorId = ospResolvedId.ToString(); @@ -419,7 +419,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver } else if (item.CreatorData == null || item.CreatorData == String.Empty) { - item.CreatorIdAsUuid = m_userInfo.PrincipalID; + item.CreatorId = m_userInfo.PrincipalID.ToString(); + item.CreatorIdAsUuid = new UUID(item.CreatorId); } item.Owner = m_userInfo.PrincipalID; diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 5065227967..a092b6578e 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -236,9 +236,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, m_item1Name); Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); -// Assert.That( -// foundItem1.CreatorId, Is.EqualTo(userUuid), -// "Loaded item non-uuid creator doesn't match that of the loading user"); + Assert.That( + foundItem1.CreatorId, Is.EqualTo(m_ua1.PrincipalID.ToString()), + "Loaded item non-uuid creator doesn't match that of the loading user"); Assert.That( foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua1.PrincipalID), "Loaded item uuid creator doesn't match that of the loading user"); From 66d2d35425ee61e11445fc04c6d4949cdde85b87 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 22:40:24 +0000 Subject: [PATCH 18/95] extend TestLoadIarV0_1AbsentCreator() to check serialized object CreatorId as well --- .../Inventory/Archiver/Tests/InventoryArchiverTests.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index a092b6578e..78faefd242 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -242,6 +242,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests Assert.That( foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua1.PrincipalID), "Loaded item uuid creator doesn't match that of the loading user"); + + AssetBase asset1 = scene.AssetService.Get(foundItem1.AssetID.ToString()); + string xmlData = Utils.BytesToString(asset1.Data); + SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); + + Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_ua1.PrincipalID)); } } } \ No newline at end of file From 9ecb745ed77c33631503e8ebbbfe82fd5fc3bb7c Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 22:48:19 +0000 Subject: [PATCH 19/95] factor out common scene setup code in InventoryArchiveTestCase --- .../Tests/InventoryArchiveTestCase.cs | 2 +- .../Archiver/Tests/InventoryArchiverTests.cs | 72 +++++++++---------- 2 files changed, 33 insertions(+), 41 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs index d77bff2741..31e6d75488 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs @@ -81,7 +81,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests protected string m_item1Name = "Ray Gun Item"; [SetUp] - public void SetUp() + public virtual void SetUp() { m_iarStream = new MemoryStream(m_iarStreamBytes); } diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 78faefd242..79b47777f5 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -50,7 +50,22 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests { [TestFixture] public class InventoryArchiverTests : InventoryArchiveTestCase - { + { + protected TestScene m_scene; + protected InventoryArchiverModule m_archiverModule; + + [SetUp] + public override void SetUp() + { + base.SetUp(); + + SerialiserModule serialiserModule = new SerialiserModule(); + m_archiverModule = new InventoryArchiverModule(); + + m_scene = SceneSetupHelpers.SetupScene("Inventory"); + SceneSetupHelpers.SetupSceneModules(m_scene, serialiserModule, m_archiverModule); + } + /// /// Test saving a single inventory item to a V0.1 OpenSim Inventory Archive /// (subject to change since there is no fixed format yet). @@ -61,17 +76,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); - InventoryArchiverModule archiverModule = new InventoryArchiverModule(); - - Scene scene = SceneSetupHelpers.SetupScene("Inventory"); - SceneSetupHelpers.SetupSceneModules(scene, archiverModule); - // Create user string userFirstName = "Jock"; string userLastName = "Stirrup"; string userPassword = "troll"; UUID userId = UUID.Parse("00000000-0000-0000-0000-000000000020"); - UserProfileTestUtils.CreateUserWithInventory(scene, userFirstName, userLastName, userId, userPassword); + UserProfileTestUtils.CreateUserWithInventory(m_scene, userFirstName, userLastName, userId, userPassword); // Create asset SceneObjectGroup object1; @@ -90,12 +100,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests part1.Name = partName; object1 = new SceneObjectGroup(part1); - scene.AddNewSceneObject(object1, false); + m_scene.AddNewSceneObject(object1, false); } UUID asset1Id = UUID.Parse("00000000-0000-0000-0000-000000000060"); AssetBase asset1 = AssetHelpers.CreateAsset(asset1Id, object1); - scene.AssetService.Store(asset1); + m_scene.AssetService.Store(asset1); // Create item UUID item1Id = UUID.Parse("00000000-0000-0000-0000-000000000080"); @@ -105,15 +115,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests item1.AssetID = asset1.FullID; item1.ID = item1Id; InventoryFolderBase objsFolder - = InventoryArchiveUtils.FindFolderByPath(scene.InventoryService, userId, "Objects")[0]; + = InventoryArchiveUtils.FindFolderByPath(m_scene.InventoryService, userId, "Objects")[0]; item1.Folder = objsFolder.ID; - scene.AddInventoryItem(item1); + m_scene.AddInventoryItem(item1); MemoryStream archiveWriteStream = new MemoryStream(); - archiverModule.OnInventoryArchiveSaved += SaveCompleted; + m_archiverModule.OnInventoryArchiveSaved += SaveCompleted; mre.Reset(); - archiverModule.ArchiveInventory( + m_archiverModule.ArchiveInventory( Guid.NewGuid(), userFirstName, userLastName, "Objects/" + item1Name, userPassword, archiveWriteStream); mre.WaitOne(60000, false); @@ -177,27 +187,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests { TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); - - SerialiserModule serialiserModule = new SerialiserModule(); - InventoryArchiverModule archiverModule = new InventoryArchiverModule(); - - // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene - Scene scene = SceneSetupHelpers.SetupScene("inventory"); - - SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "meowfood"); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua3, "hampshire"); + UserProfileTestUtils.CreateUserWithInventory(m_scene, m_ua1, "meowfood"); + UserProfileTestUtils.CreateUserWithInventory(m_scene, m_ua3, "hampshire"); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream); + m_archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream); InventoryItemBase foundItem1 - = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, m_item1Name); + = InventoryArchiveUtils.FindItemByPath(m_scene.InventoryService, m_ua1.PrincipalID, m_item1Name); -// We have to disable this check since loaded items that did find users via OSPA resolution are now only storing the -// UUID, not the OSPA itself. -// Assert.That( -// foundItem1.CreatorId, Is.EqualTo(item1.CreatorId), -// "Loaded item non-uuid creator doesn't match original"); Assert.That( foundItem1.CreatorId, Is.EqualTo(m_ua3.PrincipalID.ToString()), "Loaded item non-uuid creator doesn't match original"); @@ -207,7 +204,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests Assert.That(foundItem1.Owner, Is.EqualTo(m_ua1.PrincipalID), "Loaded item owner doesn't match inventory reciever"); - AssetBase asset1 = scene.AssetService.Get(foundItem1.AssetID.ToString()); + AssetBase asset1 = m_scene.AssetService.Get(foundItem1.AssetID.ToString()); string xmlData = Utils.BytesToString(asset1.Data); SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); @@ -224,16 +221,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); - SerialiserModule serialiserModule = new SerialiserModule(); - InventoryArchiverModule archiverModule = new InventoryArchiverModule(); - Scene scene = SceneSetupHelpers.SetupScene("inventory"); - SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); - - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "password"); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "password", m_iarStream); + UserProfileTestUtils.CreateUserWithInventory(m_scene, m_ua1, "password"); + m_archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "password", m_iarStream); InventoryItemBase foundItem1 - = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, m_item1Name); + = InventoryArchiveUtils.FindItemByPath(m_scene.InventoryService, m_ua1.PrincipalID, m_item1Name); Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); Assert.That( @@ -243,7 +235,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua1.PrincipalID), "Loaded item uuid creator doesn't match that of the loading user"); - AssetBase asset1 = scene.AssetService.Get(foundItem1.AssetID.ToString()); + AssetBase asset1 = m_scene.AssetService.Get(foundItem1.AssetID.ToString()); string xmlData = Utils.BytesToString(asset1.Data); SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); From 8d69e6831136fea089ed0ca04249bf65ba66db28 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 22:52:41 +0000 Subject: [PATCH 20/95] refactor: rename test user account fields --- .../Tests/InventoryArchiveTestCase.cs | 16 +++++------ .../Archiver/Tests/InventoryArchiverTests.cs | 28 +++++++++---------- .../Inventory/Archiver/Tests/PathTests.cs | 26 ++++++++--------- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs index 31e6d75488..e5127a0118 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiveTestCase.cs @@ -63,17 +63,17 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests /// protected MemoryStream m_iarStream; - protected UserAccount m_ua1 + protected UserAccount m_uaMT = new UserAccount { PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000555"), FirstName = "Mr", LastName = "Tiddles" }; - protected UserAccount m_ua2 + protected UserAccount m_uaLL1 = new UserAccount { PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000666"), FirstName = "Lord", LastName = "Lucan" }; - protected UserAccount m_ua3 + protected UserAccount m_uaLL2 = new UserAccount { PrincipalID = UUID.Parse("00000000-0000-0000-0000-000000000777"), FirstName = "Lord", @@ -100,7 +100,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests Scene scene = SceneSetupHelpers.SetupScene("Inventory"); SceneSetupHelpers.SetupSceneModules(scene, archiverModule); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); + UserProfileTestUtils.CreateUserWithInventory(scene, m_uaLL1, "hampshire"); MemoryStream archiveWriteStream = new MemoryStream(); @@ -134,13 +134,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests item1.ID = UUID.Parse("00000000-0000-0000-0000-000000000020"); item1.AssetID = asset1.FullID; item1.GroupID = UUID.Random(); - item1.CreatorIdAsUuid = m_ua2.PrincipalID; - item1.Owner = m_ua2.PrincipalID; - item1.Folder = scene.InventoryService.GetRootFolder(m_ua2.PrincipalID).ID; + item1.CreatorIdAsUuid = m_uaLL1.PrincipalID; + item1.Owner = m_uaLL1.PrincipalID; + item1.Folder = scene.InventoryService.GetRootFolder(m_uaLL1.PrincipalID).ID; scene.AddInventoryItem(item1); archiverModule.ArchiveInventory( - Guid.NewGuid(), m_ua2.FirstName, m_ua2.LastName, m_item1Name, "hampshire", archiveWriteStream); + Guid.NewGuid(), m_uaLL1.FirstName, m_uaLL1.LastName, m_item1Name, "hampshire", archiveWriteStream); m_iarStreamBytes = archiveWriteStream.ToArray(); } diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index 79b47777f5..c7aad5eedc 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -188,27 +188,27 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); - UserProfileTestUtils.CreateUserWithInventory(m_scene, m_ua1, "meowfood"); - UserProfileTestUtils.CreateUserWithInventory(m_scene, m_ua3, "hampshire"); + UserProfileTestUtils.CreateUserWithInventory(m_scene, m_uaMT, "meowfood"); + UserProfileTestUtils.CreateUserWithInventory(m_scene, m_uaLL2, "hampshire"); - m_archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream); + m_archiverModule.DearchiveInventory(m_uaMT.FirstName, m_uaMT.LastName, "/", "meowfood", m_iarStream); InventoryItemBase foundItem1 - = InventoryArchiveUtils.FindItemByPath(m_scene.InventoryService, m_ua1.PrincipalID, m_item1Name); + = InventoryArchiveUtils.FindItemByPath(m_scene.InventoryService, m_uaMT.PrincipalID, m_item1Name); Assert.That( - foundItem1.CreatorId, Is.EqualTo(m_ua3.PrincipalID.ToString()), + foundItem1.CreatorId, Is.EqualTo(m_uaLL2.PrincipalID.ToString()), "Loaded item non-uuid creator doesn't match original"); Assert.That( - foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua3.PrincipalID), + foundItem1.CreatorIdAsUuid, Is.EqualTo(m_uaLL2.PrincipalID), "Loaded item uuid creator doesn't match original"); - Assert.That(foundItem1.Owner, Is.EqualTo(m_ua1.PrincipalID), + Assert.That(foundItem1.Owner, Is.EqualTo(m_uaMT.PrincipalID), "Loaded item owner doesn't match inventory reciever"); AssetBase asset1 = m_scene.AssetService.Get(foundItem1.AssetID.ToString()); string xmlData = Utils.BytesToString(asset1.Data); SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); - Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_ua3.PrincipalID)); + Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_uaLL2.PrincipalID)); } /// @@ -221,25 +221,25 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); - UserProfileTestUtils.CreateUserWithInventory(m_scene, m_ua1, "password"); - m_archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "password", m_iarStream); + UserProfileTestUtils.CreateUserWithInventory(m_scene, m_uaMT, "password"); + m_archiverModule.DearchiveInventory(m_uaMT.FirstName, m_uaMT.LastName, "/", "password", m_iarStream); InventoryItemBase foundItem1 - = InventoryArchiveUtils.FindItemByPath(m_scene.InventoryService, m_ua1.PrincipalID, m_item1Name); + = InventoryArchiveUtils.FindItemByPath(m_scene.InventoryService, m_uaMT.PrincipalID, m_item1Name); Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); Assert.That( - foundItem1.CreatorId, Is.EqualTo(m_ua1.PrincipalID.ToString()), + foundItem1.CreatorId, Is.EqualTo(m_uaMT.PrincipalID.ToString()), "Loaded item non-uuid creator doesn't match that of the loading user"); Assert.That( - foundItem1.CreatorIdAsUuid, Is.EqualTo(m_ua1.PrincipalID), + foundItem1.CreatorIdAsUuid, Is.EqualTo(m_uaMT.PrincipalID), "Loaded item uuid creator doesn't match that of the loading user"); AssetBase asset1 = m_scene.AssetService.Get(foundItem1.AssetID.ToString()); string xmlData = Utils.BytesToString(asset1.Data); SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); - Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_ua1.PrincipalID)); + Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_uaMT.PrincipalID)); } } } \ No newline at end of file diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs index 66c19f4a34..0e8f647dbc 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/PathTests.cs @@ -184,31 +184,31 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "meowfood"); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); + UserProfileTestUtils.CreateUserWithInventory(scene, m_uaMT, "meowfood"); + UserProfileTestUtils.CreateUserWithInventory(scene, m_uaLL1, "hampshire"); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream); + archiverModule.DearchiveInventory(m_uaMT.FirstName, m_uaMT.LastName, "/", "meowfood", m_iarStream); InventoryItemBase foundItem1 - = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, m_item1Name); + = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_uaMT.PrincipalID, m_item1Name); Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1"); // Now try loading to a root child folder - UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, m_ua1.PrincipalID, "xA"); + UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, m_uaMT.PrincipalID, "xA"); MemoryStream archiveReadStream = new MemoryStream(m_iarStream.ToArray()); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "xA", "meowfood", archiveReadStream); + archiverModule.DearchiveInventory(m_uaMT.FirstName, m_uaMT.LastName, "xA", "meowfood", archiveReadStream); InventoryItemBase foundItem2 - = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, "xA/" + m_item1Name); + = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_uaMT.PrincipalID, "xA/" + m_item1Name); Assert.That(foundItem2, Is.Not.Null, "Didn't find loaded item 2"); // Now try loading to a more deeply nested folder - UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, m_ua1.PrincipalID, "xB/xC"); + UserInventoryTestUtils.CreateInventoryFolder(scene.InventoryService, m_uaMT.PrincipalID, "xB/xC"); archiveReadStream = new MemoryStream(archiveReadStream.ToArray()); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "xB/xC", "meowfood", archiveReadStream); + archiverModule.DearchiveInventory(m_uaMT.FirstName, m_uaMT.LastName, "xB/xC", "meowfood", archiveReadStream); InventoryItemBase foundItem3 - = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, "xB/xC/" + m_item1Name); + = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_uaMT.PrincipalID, "xB/xC/" + m_item1Name); Assert.That(foundItem3, Is.Not.Null, "Didn't find loaded item 3"); } @@ -226,12 +226,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests Scene scene = SceneSetupHelpers.SetupScene("inventory"); SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); - UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "password"); - archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/Objects", "password", m_iarStream); + UserProfileTestUtils.CreateUserWithInventory(scene, m_uaMT, "password"); + archiverModule.DearchiveInventory(m_uaMT.FirstName, m_uaMT.LastName, "/Objects", "password", m_iarStream); InventoryItemBase foundItem1 = InventoryArchiveUtils.FindItemByPath( - scene.InventoryService, m_ua1.PrincipalID, "/Objects/" + m_item1Name); + scene.InventoryService, m_uaMT.PrincipalID, "/Objects/" + m_item1Name); Assert.That(foundItem1, Is.Not.Null, "Didn't find loaded item 1 in TestLoadIarFolderStartsWithSlash()"); } From ad1dea5affe24674ada19b801cab423f667f7979 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Thu, 10 Mar 2011 22:56:11 +0000 Subject: [PATCH 21/95] Add test for simple case where creator account with appropriate uuid exists on the target system for an iar load --- .../Archiver/Tests/InventoryArchiverTests.cs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs index c7aad5eedc..7f156f8904 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs @@ -178,6 +178,38 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests // TODO: Test presence of more files and contents of files. } + /// + /// Test case where a creator account exists for the creator UUID embedded in item metadata and serialized + /// objects. + /// + [Test] + public void TestLoadIarCreatorAccountPresent() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + UserProfileTestUtils.CreateUserWithInventory(m_scene, m_uaLL1, "meowfood"); + + m_archiverModule.DearchiveInventory(m_uaLL1.FirstName, m_uaLL1.LastName, "/", "meowfood", m_iarStream); + InventoryItemBase foundItem1 + = InventoryArchiveUtils.FindItemByPath(m_scene.InventoryService, m_uaLL1.PrincipalID, m_item1Name); + + Assert.That( + foundItem1.CreatorId, Is.EqualTo(m_uaLL1.PrincipalID.ToString()), + "Loaded item non-uuid creator doesn't match original"); + Assert.That( + foundItem1.CreatorIdAsUuid, Is.EqualTo(m_uaLL1.PrincipalID), + "Loaded item uuid creator doesn't match original"); + Assert.That(foundItem1.Owner, Is.EqualTo(m_uaLL1.PrincipalID), + "Loaded item owner doesn't match inventory reciever"); + + AssetBase asset1 = m_scene.AssetService.Get(foundItem1.AssetID.ToString()); + string xmlData = Utils.BytesToString(asset1.Data); + SceneObjectGroup sog1 = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); + + Assert.That(sog1.RootPart.CreatorID, Is.EqualTo(m_uaLL1.PrincipalID)); + } + /// /// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where /// an account exists with the same name as the creator, though not the same id. From 836ab6b0e87c16bcff171d0491476f19d7c18a2c Mon Sep 17 00:00:00 2001 From: Mic Bowman Date: Thu, 10 Mar 2011 15:23:46 -0800 Subject: [PATCH 22/95] Change how map blocks are encoded to make map search work with viewer 2. --- .../Region/CoreModules/World/WorldMap/MapSearchModule.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs index a9e46d04c2..7bb7544e89 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs @@ -113,7 +113,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap data = new MapBlockData(); data.Agents = 0; data.Access = info.Access; - data.MapImageId = info.TerrainImage; + data.MapImageId = UUID.Zero; // could use info.TerrainImage but it seems to break viewer2 data.Name = info.RegionName; data.RegionFlags = 0; // TODO not used? data.WaterHeight = 0; // not used @@ -135,7 +135,9 @@ namespace OpenSim.Region.CoreModules.World.WorldMap data.Y = 0; blocks.Add(data); - remoteClient.SendMapBlock(blocks, 0); + // not sure what the flags do here, but seems to be necessary + // to set to "2" for viewer 2 + remoteClient.SendMapBlock(blocks, 2); } // private Scene GetClientScene(IClientAPI client) From cb863851e0149a931f3c79fdc7301e7086c3c16f Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Fri, 11 Mar 2011 22:38:51 +0000 Subject: [PATCH 23/95] Update/simplify test running instructions --- TESTING.txt | 81 +++++------------------------------------------------ 1 file changed, 7 insertions(+), 74 deletions(-) diff --git a/TESTING.txt b/TESTING.txt index e0a7748e6f..54fc976e95 100644 --- a/TESTING.txt +++ b/TESTING.txt @@ -2,23 +2,14 @@ == Running Tests == -On Linux: +On Linux you will need to have NUnit installed (http://www.nunit.org). +This is commonly available in distribution package repositories. + +When this is installed, run the command > nant test -This will print out to the console the test state. - -On Windows: Please see the TESTING ON WINDOWS section below. - - -Also, every checkin will run tests that are kicked off by bamboo. -Results are posted here: http://www.opensimulator.org:8085/ as well as -to #opensim-dev IRC channel. - -== Writing Tests == - -Tests are written to run under NUnit. For more information on NUnit -please see: http://www.nunit.org/index.php +Please see the TESTING ON WINDOWS section below for Windows instructions. == Adding Tests == @@ -32,70 +23,15 @@ that if you are writing tests they end up in a "Tests" sub-directory of the directory where the code you are testing resides. If you have added a new test assembly that hasn't existed before you -must list it in both ".nant/local.include" and ".nant/bamboo.build" +must list it in both ".nant/local.include" for it to be accessible to Linux users and to the continuous integration system. - -=== The Gory Details === -The following is the original document which started off this -document. It should probably be better integrated with the new info. - -==UPDATE== - -The text immediately following is an update to the testing documentation. The -update is written on 2008.08.30 and is copied from an email to the opensim-dev -mailing list[1]. The information below the update, beginning with the section -titled TESTING, is still relevant, so please read this document in its -entirety. - -Mike Mazur - -[1] https://lists.berlios.de/pipermail/opensim-dev/2008-August/002695.html - -""" -The tests are contained in certain DLLs. At the time of writing, these DLLs -have tests in them: - -OpenSim.Region.ScriptEngine.Common.Tests.dll -OpenSim.Region.ScriptEngine.Shared.CodeTools.Tests.dll -OpenSim.Region.ScriptEngine.Shared.Tests.dll -OpenSim.Framework.Tests.dll OpenSim.Region.CoreModules.dll -OpenSim.Region.Physics.OdePlugin.dll[2] - -The console command used to run the tests is `nunit-console` (or -`nunit-console2` on some systems). This command takes a listing of DLLs to -inspect for tests. - -Currently Bamboo's[3] build file (.nant/bamboo.build) lists only those DLLs -for nunit-console to use. However it would be equally correct to simply pass -in all DLLs in bin/; those without tests are just skipped. - -The nunit-console command generates a file TestResults.txt by default. This is -an XML file containing a listing of all DLLs inspected, tests executed, -successes, failures, etc. If nunit-console is passed in all DLLs in bin/, this -file bloats with lots of entries like this: - - - - - - - - -Therefore it makes more sense to me to specify the DLLs when running -nunit-console. - -[2] Note that OpenSim.Region.Physics.OdePlugin.dll is in bin/Physics/ and -needs to be first copied to bin/ before nunit-console is executed. -[3] http://opensimulator.org:8085/ -""" - ==TESTING ON WINDOWS== To use nunit testing on opensim code, you have a variety of methods. The easiast methods involve using IDE capabilities to test code. Using -VS2005/2008 I recommend using the testing capabilities of Resarper(commercial) +VS2005/2008 I recommend using the testing capabilities of Resharper(commercial) or TestDriven.Net(free). Both will recognize nunit tests within your application and allow you to test them individually, or all at once, etc. You will also be able to step into debug mode into a test through these add-ins @@ -133,6 +69,3 @@ Example nunit-console2 OpenSim.Framework.Tests.dll (on linux) nunit-console OpenSim.Framework.Tests.dll (on windows) - -For more information on testing contact the autor of this testing readme: Daedius Moskvitch ( daedius @@@@ daedius com) - From 367ed585e0f4a7e4d540230c586531abd75e2228 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 12 Mar 2011 00:21:52 +0000 Subject: [PATCH 24/95] introduce iar load checks which make sure archive.xml comes first, then inventory nodes, then assets this is necessary for correct loading. "save iar" always saves in this order so there shouldn't be any problems - these checks are to give better feedback to other systems that may construct IARs. --- .../Archiver/InventoryArchiveReadRequest.cs | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 7d50e51173..4d97c0aed4 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -111,6 +111,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver /// A list of the inventory nodes loaded. If folders were loaded then only the root folders are /// returned /// + /// Thrown if load fails. public HashSet Execute() { try @@ -143,15 +144,29 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver byte[] data; TarArchiveReader.TarEntryType entryType; + bool controlFileLoaded = false, assetsLoaded = false, inventoryNodesLoaded = false; while ((data = archive.ReadEntry(out filePath, out entryType)) != null) { if (filePath == ArchiveConstants.CONTROL_FILE_PATH) { LoadControlFile(filePath, data); + controlFileLoaded = true; } else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) { + if (!controlFileLoaded) + throw new Exception( + string.Format( + "The IAR you are trying to load does not list {0} before {1}. Aborting load", + ArchiveConstants.CONTROL_FILE_PATH, ArchiveConstants.ASSETS_PATH)); + + if (!inventoryNodesLoaded) + throw new Exception( + string.Format( + "The IAR you are trying to load does not list all {0} before {1}. Aborting load", + ArchiveConstants.INVENTORY_PATH, ArchiveConstants.ASSETS_PATH)); + if (LoadAsset(filePath, data)) successfulAssetRestores++; else @@ -160,10 +175,24 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver if ((successfulAssetRestores) % 50 == 0) m_log.DebugFormat( "[INVENTORY ARCHIVER]: Loaded {0} assets...", - successfulAssetRestores); + successfulAssetRestores); + + assetsLoaded = true; } else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH)) { + if (!controlFileLoaded) + throw new Exception( + string.Format( + "The IAR you are trying to load does not list {0} before {1}. Aborting load", + ArchiveConstants.CONTROL_FILE_PATH, ArchiveConstants.INVENTORY_PATH)); + + if (assetsLoaded) + throw new Exception( + string.Format( + "The IAR you are trying to load does not list all {0} before {1}. Aborting load", + ArchiveConstants.INVENTORY_PATH, ArchiveConstants.ASSETS_PATH)); + filePath = filePath.Substring(ArchiveConstants.INVENTORY_PATH.Length); // Trim off the file portion if we aren't already dealing with a directory path @@ -188,6 +217,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver loadedNodes.Add(item); } } + + inventoryNodesLoaded = true; } } From a3c7c04ead1b1388d2093edf66d37edecdeccc61 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 12 Mar 2011 00:28:23 +0000 Subject: [PATCH 25/95] refactor: make boolean load indicators on load iars instance fields --- .../Archiver/InventoryArchiveReadRequest.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 4d97c0aed4..367960c9da 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -82,6 +82,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver /// after OSP resolution (since OSP creators are only stored in the item /// protected Dictionary m_creatorIdForAssetId = new Dictionary(); + + protected bool m_controlFileLoaded; + protected bool m_assetsLoaded; + protected bool m_inventoryNodesLoaded; public InventoryArchiveReadRequest( Scene scene, UserAccount userInfo, string invPath, string loadPath, bool merge) @@ -144,24 +148,23 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver byte[] data; TarArchiveReader.TarEntryType entryType; - bool controlFileLoaded = false, assetsLoaded = false, inventoryNodesLoaded = false; while ((data = archive.ReadEntry(out filePath, out entryType)) != null) { if (filePath == ArchiveConstants.CONTROL_FILE_PATH) { LoadControlFile(filePath, data); - controlFileLoaded = true; + m_controlFileLoaded = true; } else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) { - if (!controlFileLoaded) + if (!m_controlFileLoaded) throw new Exception( string.Format( "The IAR you are trying to load does not list {0} before {1}. Aborting load", ArchiveConstants.CONTROL_FILE_PATH, ArchiveConstants.ASSETS_PATH)); - if (!inventoryNodesLoaded) + if (!m_inventoryNodesLoaded) throw new Exception( string.Format( "The IAR you are trying to load does not list all {0} before {1}. Aborting load", @@ -177,17 +180,17 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver "[INVENTORY ARCHIVER]: Loaded {0} assets...", successfulAssetRestores); - assetsLoaded = true; + m_assetsLoaded = true; } else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH)) { - if (!controlFileLoaded) + if (!m_controlFileLoaded) throw new Exception( string.Format( "The IAR you are trying to load does not list {0} before {1}. Aborting load", ArchiveConstants.CONTROL_FILE_PATH, ArchiveConstants.INVENTORY_PATH)); - if (assetsLoaded) + if (m_assetsLoaded) throw new Exception( string.Format( "The IAR you are trying to load does not list all {0} before {1}. Aborting load", @@ -218,7 +221,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver } } - inventoryNodesLoaded = true; + m_inventoryNodesLoaded = true; } } From c4060e56ef2aa2d4d68d33ae3081c6a0d2d37f7c Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 12 Mar 2011 00:35:40 +0000 Subject: [PATCH 26/95] factor out iar asset load code into its own method --- .../Archiver/InventoryArchiveReadRequest.cs | 69 +++++++++++-------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 367960c9da..cf4ba91eef 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -86,6 +86,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver protected bool m_controlFileLoaded; protected bool m_assetsLoaded; protected bool m_inventoryNodesLoaded; + + protected int m_successfulAssetRestores; + protected int m_failedAssetRestores; public InventoryArchiveReadRequest( Scene scene, UserAccount userInfo, string invPath, string loadPath, bool merge) @@ -121,8 +124,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver try { string filePath = "ERROR"; - int successfulAssetRestores = 0; - int failedAssetRestores = 0; int successfulItemRestores = 0; HashSet loadedNodes = new HashSet(); @@ -154,33 +155,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver if (filePath == ArchiveConstants.CONTROL_FILE_PATH) { LoadControlFile(filePath, data); - m_controlFileLoaded = true; - } + } else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) { - if (!m_controlFileLoaded) - throw new Exception( - string.Format( - "The IAR you are trying to load does not list {0} before {1}. Aborting load", - ArchiveConstants.CONTROL_FILE_PATH, ArchiveConstants.ASSETS_PATH)); - - if (!m_inventoryNodesLoaded) - throw new Exception( - string.Format( - "The IAR you are trying to load does not list all {0} before {1}. Aborting load", - ArchiveConstants.INVENTORY_PATH, ArchiveConstants.ASSETS_PATH)); - - if (LoadAsset(filePath, data)) - successfulAssetRestores++; - else - failedAssetRestores++; - - if ((successfulAssetRestores) % 50 == 0) - m_log.DebugFormat( - "[INVENTORY ARCHIVER]: Loaded {0} assets...", - successfulAssetRestores); - - m_assetsLoaded = true; + LoadAssetFile(filePath, data); } else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH)) { @@ -229,7 +207,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver m_log.DebugFormat( "[INVENTORY ARCHIVER]: Successfully loaded {0} assets with {1} failures", - successfulAssetRestores, failedAssetRestores); + m_successfulAssetRestores, m_failedAssetRestores); m_log.InfoFormat("[INVENTORY ARCHIVER]: Successfully loaded {0} items", successfulItemRestores); return loadedNodes; @@ -566,7 +544,40 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver majorVersion, MAX_MAJOR_VERSION)); } - m_log.InfoFormat("[INVENTORY ARCHIVER]: Loading IAR with version {0}", version); + m_controlFileLoaded = true; + m_log.InfoFormat("[INVENTORY ARCHIVER]: Loading IAR with version {0}", version); } + + /// + /// Load asset file + /// + /// + /// + protected void LoadAssetFile(string path, byte[] data) + { + if (!m_controlFileLoaded) + throw new Exception( + string.Format( + "The IAR you are trying to load does not list {0} before {1}. Aborting load", + ArchiveConstants.CONTROL_FILE_PATH, ArchiveConstants.ASSETS_PATH)); + + if (!m_inventoryNodesLoaded) + throw new Exception( + string.Format( + "The IAR you are trying to load does not list all {0} before {1}. Aborting load", + ArchiveConstants.INVENTORY_PATH, ArchiveConstants.ASSETS_PATH)); + + if (LoadAsset(path, data)) + m_successfulAssetRestores++; + else + m_failedAssetRestores++; + + if ((m_successfulAssetRestores) % 50 == 0) + m_log.DebugFormat( + "[INVENTORY ARCHIVER]: Loaded {0} assets...", + m_successfulAssetRestores); + + m_assetsLoaded = true; + } } } \ No newline at end of file From f6b638fec92596e0671d0484c3b63bd600ef38ea Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 12 Mar 2011 00:49:13 +0000 Subject: [PATCH 27/95] factor inventory file loading into its own method --- .../Archiver/InventoryArchiveReadRequest.cs | 137 ++++++++++-------- 1 file changed, 80 insertions(+), 57 deletions(-) diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index cf4ba91eef..9b98de3b67 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -77,18 +77,35 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver /// private Stream m_loadStream; - /// - /// Record the creator id that should be associated with an asset. This is used to adjust asset creator ids - /// after OSP resolution (since OSP creators are only stored in the item - /// - protected Dictionary m_creatorIdForAssetId = new Dictionary(); - protected bool m_controlFileLoaded; protected bool m_assetsLoaded; protected bool m_inventoryNodesLoaded; protected int m_successfulAssetRestores; protected int m_failedAssetRestores; + protected int m_successfulItemRestores; + + /// + /// Root destination folder for the IAR load. + /// + protected InventoryFolderBase m_rootDestinationFolder; + + /// + /// Inventory nodes loaded from the iar. + /// + protected HashSet m_loadedNodes = new HashSet(); + + /// + /// In order to load identically named folders, we need to keep track of the folders that we have already + /// resolved. + /// + Dictionary m_resolvedFolders = new Dictionary(); + + /// + /// Record the creator id that should be associated with an asset. This is used to adjust asset creator ids + /// after OSP resolution (since OSP creators are only stored in the item + /// + protected Dictionary m_creatorIdForAssetId = new Dictionary(); public InventoryArchiveReadRequest( Scene scene, UserAccount userInfo, string invPath, string loadPath, bool merge) @@ -114,6 +131,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver /// /// Execute the request /// + /// + /// Only call this once. To load another IAR, construct another request object. + /// /// /// A list of the inventory nodes loaded. If folders were loaded then only the root folders are /// returned @@ -124,9 +144,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver try { string filePath = "ERROR"; - int successfulItemRestores = 0; - - HashSet loadedNodes = new HashSet(); List folderCandidates = InventoryArchiveUtils.FindFolderByPath( @@ -137,16 +154,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver // Possibly provide an option later on to automatically create this folder if it does not exist m_log.ErrorFormat("[INVENTORY ARCHIVER]: Inventory path {0} does not exist", m_invPath); - return loadedNodes; + return m_loadedNodes; } - InventoryFolderBase rootDestinationFolder = folderCandidates[0]; + m_rootDestinationFolder = folderCandidates[0]; archive = new TarArchiveReader(m_loadStream); - - // In order to load identically named folders, we need to keep track of the folders that we have already - // resolved - Dictionary resolvedFolders = new Dictionary(); - byte[] data; TarArchiveReader.TarEntryType entryType; @@ -162,44 +174,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver } else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH)) { - if (!m_controlFileLoaded) - throw new Exception( - string.Format( - "The IAR you are trying to load does not list {0} before {1}. Aborting load", - ArchiveConstants.CONTROL_FILE_PATH, ArchiveConstants.INVENTORY_PATH)); - - if (m_assetsLoaded) - throw new Exception( - string.Format( - "The IAR you are trying to load does not list all {0} before {1}. Aborting load", - ArchiveConstants.INVENTORY_PATH, ArchiveConstants.ASSETS_PATH)); - - filePath = filePath.Substring(ArchiveConstants.INVENTORY_PATH.Length); - - // Trim off the file portion if we aren't already dealing with a directory path - if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) - filePath = filePath.Remove(filePath.LastIndexOf("/") + 1); - - InventoryFolderBase foundFolder - = ReplicateArchivePathToUserInventory( - filePath, rootDestinationFolder, resolvedFolders, loadedNodes); - - if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) - { - InventoryItemBase item = LoadItem(data, foundFolder); - - if (item != null) - { - successfulItemRestores++; - - // If we aren't loading the folder containing the item then well need to update the - // viewer separately for that item. - if (!loadedNodes.Contains(foundFolder)) - loadedNodes.Add(item); - } - } - - m_inventoryNodesLoaded = true; + LoadInventoryFile(filePath, entryType, data); } } @@ -208,9 +183,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver m_log.DebugFormat( "[INVENTORY ARCHIVER]: Successfully loaded {0} assets with {1} failures", m_successfulAssetRestores, m_failedAssetRestores); - m_log.InfoFormat("[INVENTORY ARCHIVER]: Successfully loaded {0} items", successfulItemRestores); + m_log.InfoFormat("[INVENTORY ARCHIVER]: Successfully loaded {0} items", m_successfulItemRestores); - return loadedNodes; + return m_loadedNodes; } finally { @@ -548,6 +523,54 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver m_log.InfoFormat("[INVENTORY ARCHIVER]: Loading IAR with version {0}", version); } + /// + /// Load inventory file + /// + /// + /// + /// + protected void LoadInventoryFile(string path, TarArchiveReader.TarEntryType entryType, byte[] data) + { + if (!m_controlFileLoaded) + throw new Exception( + string.Format( + "The IAR you are trying to load does not list {0} before {1}. Aborting load", + ArchiveConstants.CONTROL_FILE_PATH, ArchiveConstants.INVENTORY_PATH)); + + if (m_assetsLoaded) + throw new Exception( + string.Format( + "The IAR you are trying to load does not list all {0} before {1}. Aborting load", + ArchiveConstants.INVENTORY_PATH, ArchiveConstants.ASSETS_PATH)); + + path = path.Substring(ArchiveConstants.INVENTORY_PATH.Length); + + // Trim off the file portion if we aren't already dealing with a directory path + if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) + path = path.Remove(path.LastIndexOf("/") + 1); + + InventoryFolderBase foundFolder + = ReplicateArchivePathToUserInventory( + path, m_rootDestinationFolder, m_resolvedFolders, m_loadedNodes); + + if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) + { + InventoryItemBase item = LoadItem(data, foundFolder); + + if (item != null) + { + m_successfulItemRestores++; + + // If we aren't loading the folder containing the item then well need to update the + // viewer separately for that item. + if (!m_loadedNodes.Contains(foundFolder)) + m_loadedNodes.Add(item); + } + } + + m_inventoryNodesLoaded = true; + } + /// /// Load asset file /// @@ -578,6 +601,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver m_successfulAssetRestores); m_assetsLoaded = true; - } + } } } \ No newline at end of file From f6f8d124d16783d44758b19d621d027b9cf72572 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 12 Mar 2011 00:52:43 +0000 Subject: [PATCH 28/95] minor: remove mono compiler warning --- OpenSim/Data/Tests/InventoryTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenSim/Data/Tests/InventoryTests.cs b/OpenSim/Data/Tests/InventoryTests.cs index 758f9704b7..6cf7e20f3f 100644 --- a/OpenSim/Data/Tests/InventoryTests.cs +++ b/OpenSim/Data/Tests/InventoryTests.cs @@ -153,7 +153,7 @@ namespace OpenSim.Data.Tests db.addInventoryFolder(f1); InventoryFolderBase f1a = db.getUserRootFolder(owner1); Assert.That(folder1, Is.EqualTo(f1a.ID), "Assert.That(folder1, Is.EqualTo(f1a.ID))"); - Assert.That(name1, Text.Matches(f1a.Name), "Assert.That(name1, Text.Matches(f1a.Name))"); + Assert.That(name1, Is.StringMatching(f1a.Name), "Assert.That(name1, Text.Matches(f1a.Name))"); } // we now have the following tree From cee5e3e264a71861dd018ee9bad47e6ea2ac0338 Mon Sep 17 00:00:00 2001 From: Melanie Date: Mon, 14 Mar 2011 12:56:50 +0100 Subject: [PATCH 29/95] Up the timeout on slow requests to 3000 to stop console spam. Make sure request method and target are reported correctly and drop the txn id as it's empty 99% of the time. --- .../Servers/HttpServer/BaseHttpServer.cs | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 1d05b0284b..953ed856b6 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs @@ -378,6 +378,22 @@ namespace OpenSim.Framework.Servers.HttpServer /// public virtual void HandleRequest(OSHttpRequest request, OSHttpResponse response) { + if (request.HttpMethod == String.Empty) // Can't handle empty requests, not wasting a thread + { + try + { + SendHTML500(response); + } + catch + { + } + + return; + } + + string requestMethod = request.HttpMethod; + string uriString = request.RawUrl; + string reqnum = "unknown"; int tickstart = Environment.TickCount; @@ -495,7 +511,7 @@ namespace OpenSim.Framework.Servers.HttpServer request.InputStream.Close(); - // HTTP IN support. The script engine taes it from here + // HTTP IN support. The script engine takes it from here // Nothing to worry about for us. // if (buffer == null) @@ -609,9 +625,9 @@ namespace OpenSim.Framework.Servers.HttpServer { m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw ", e); } - catch (InvalidOperationException e) + catch (Exception e) { - m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw {0}", e); + m_log.ErrorFormat("[BASE HTTP SERVER]: HandleRequest() threw " + e.ToString()); SendHTML500(response); } finally @@ -619,9 +635,9 @@ namespace OpenSim.Framework.Servers.HttpServer // Every month or so this will wrap and give bad numbers, not really a problem // since its just for reporting, 200ms limit can be adjusted int tickdiff = Environment.TickCount - tickstart; - if (tickdiff > 500) + if (tickdiff > 3000) m_log.InfoFormat( - "[BASE HTTP SERVER]: slow request <{0}> for {1} took {2} ms", reqnum, request.RawUrl, tickdiff); + "[BASE HTTP SERVER]: slow {0} request for {1} from {2} took {3} ms", requestMethod, uriString, request.RemoteIPEndPoint.ToString(), tickdiff); } } From 9885f68f44ec91155d435ba9693eb57107378f45 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 14 Mar 2011 22:47:14 +0000 Subject: [PATCH 30/95] When setting media on a prim values, use generic object permissions instead of media permissions. Media permissions are just meant to be checked when we want to know if a user should be shown the navigation bar or allowed to navigate. It should not be checked when we're setting the media up. This bug was preventing a user from ever setting any more values if they had unchecked the owner settings. --- .../Region/CoreModules/World/Permissions/PermissionsModule.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs index 364dd6cb28..170c35f814 100644 --- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs +++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs @@ -642,7 +642,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions /// implemented by callers. /// /// - /// + /// This is a scene object group UUID /// /// protected bool GenericObjectPermission(UUID currentUser, UUID objId, bool denyOnLocked) @@ -1896,7 +1896,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions // "[PERMISSIONS]: Checking CanControlPrimMedia for {0} on {1} face {2} with control permissions {3}", // agentID, primID, face, me.ControlPermissions); - return GenericPrimMediaPermission(part, agentID, me.ControlPermissions); + return GenericObjectPermission(agentID, part.ParentGroup.UUID, true); } private bool CanInteractWithPrimMedia(UUID agentID, UUID primID, int face) From 48c62eb51bdf475303ee3007354b98fd6fd4fc05 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 14 Mar 2011 23:17:15 +0000 Subject: [PATCH 31/95] Add current method output to all persistence level tests so that we can track where we are in the test suite --- OpenSim/Data/Tests/AssetTests.cs | 7 ++++ OpenSim/Data/Tests/EstateTests.cs | 17 ++++++++ OpenSim/Data/Tests/InventoryTests.cs | 27 +++++++++++++ OpenSim/Data/Tests/RegionTests.cs | 59 ++++++++++++++++++++++------ 4 files changed, 99 insertions(+), 11 deletions(-) diff --git a/OpenSim/Data/Tests/AssetTests.cs b/OpenSim/Data/Tests/AssetTests.cs index 32f74a9b1e..b5ae2444eb 100644 --- a/OpenSim/Data/Tests/AssetTests.cs +++ b/OpenSim/Data/Tests/AssetTests.cs @@ -32,6 +32,7 @@ using NUnit.Framework; using NUnit.Framework.Constraints; using OpenMetaverse; using OpenSim.Framework; +using OpenSim.Tests.Common; using System.Data.Common; using log4net; @@ -105,6 +106,8 @@ namespace OpenSim.Data.Tests [Test] public void T001_LoadEmpty() { + TestHelper.InMethod(); + Assert.That(m_db.ExistsAsset(uuid1), Is.False); Assert.That(m_db.ExistsAsset(uuid2), Is.False); Assert.That(m_db.ExistsAsset(uuid3), Is.False); @@ -113,6 +116,8 @@ namespace OpenSim.Data.Tests [Test] public void T010_StoreReadVerifyAssets() { + TestHelper.InMethod(); + AssetBase a1 = new AssetBase(uuid1, "asset one", (sbyte)AssetType.Texture, critter1.ToString()); AssetBase a2 = new AssetBase(uuid2, "asset two", (sbyte)AssetType.Texture, critter2.ToString()); AssetBase a3 = new AssetBase(uuid3, "asset three", (sbyte)AssetType.Texture, critter3.ToString()); @@ -178,6 +183,8 @@ namespace OpenSim.Data.Tests [Test] public void T020_CheckForWeirdCreatorID() { + TestHelper.InMethod(); + // It is expected that eventually the CreatorID might be an arbitrary string (an URI) // rather than a valid UUID (?). This test is to make sure that the database layer does not // attempt to convert CreatorID to GUID, but just passes it both ways as a string. diff --git a/OpenSim/Data/Tests/EstateTests.cs b/OpenSim/Data/Tests/EstateTests.cs index 3354e284da..8d332daa2f 100644 --- a/OpenSim/Data/Tests/EstateTests.cs +++ b/OpenSim/Data/Tests/EstateTests.cs @@ -31,6 +31,7 @@ using NUnit.Framework; using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; +using OpenSim.Tests.Common; using System.Text; using log4net; using System.Reflection; @@ -106,6 +107,8 @@ namespace OpenSim.Data.Tests [Test] public void T010_EstateSettingsSimpleStorage_MinimumParameterSet() { + TestHelper.InMethod(); + EstateSettingsSimpleStorage( REGION_ID, DataTestUtil.STRING_MIN, @@ -137,6 +140,8 @@ namespace OpenSim.Data.Tests [Test] public void T011_EstateSettingsSimpleStorage_MaximumParameterSet() { + TestHelper.InMethod(); + EstateSettingsSimpleStorage( REGION_ID, DataTestUtil.STRING_MAX(64), @@ -168,6 +173,8 @@ namespace OpenSim.Data.Tests [Test] public void T012_EstateSettingsSimpleStorage_AccurateParameterSet() { + TestHelper.InMethod(); + EstateSettingsSimpleStorage( REGION_ID, DataTestUtil.STRING_MAX(1), @@ -199,6 +206,8 @@ namespace OpenSim.Data.Tests [Test] public void T012_EstateSettingsRandomStorage() { + TestHelper.InMethod(); + // Letting estate store generate rows to database for us EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); new PropertyScrambler() @@ -218,6 +227,8 @@ namespace OpenSim.Data.Tests [Test] public void T020_EstateSettingsManagerList() { + TestHelper.InMethod(); + // Letting estate store generate rows to database for us EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); @@ -237,6 +248,8 @@ namespace OpenSim.Data.Tests [Test] public void T021_EstateSettingsUserList() { + TestHelper.InMethod(); + // Letting estate store generate rows to database for us EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); @@ -256,6 +269,8 @@ namespace OpenSim.Data.Tests [Test] public void T022_EstateSettingsGroupList() { + TestHelper.InMethod(); + // Letting estate store generate rows to database for us EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); @@ -275,6 +290,8 @@ namespace OpenSim.Data.Tests [Test] public void T022_EstateSettingsBanList() { + TestHelper.InMethod(); + // Letting estate store generate rows to database for us EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID, true); diff --git a/OpenSim/Data/Tests/InventoryTests.cs b/OpenSim/Data/Tests/InventoryTests.cs index 6cf7e20f3f..cf3bac1cf9 100644 --- a/OpenSim/Data/Tests/InventoryTests.cs +++ b/OpenSim/Data/Tests/InventoryTests.cs @@ -30,6 +30,7 @@ using log4net.Config; using NUnit.Framework; using OpenMetaverse; using OpenSim.Framework; +using OpenSim.Tests.Common; using log4net; using System.Reflection; using System.Data.Common; @@ -113,6 +114,8 @@ namespace OpenSim.Data.Tests [Test] public void T001_LoadEmpty() { + TestHelper.InMethod(); + Assert.That(db.getInventoryFolder(zero), Is.Null); Assert.That(db.getInventoryFolder(folder1), Is.Null); Assert.That(db.getInventoryFolder(folder2), Is.Null); @@ -131,6 +134,8 @@ namespace OpenSim.Data.Tests [Test] public void T010_FolderNonParent() { + TestHelper.InMethod(); + InventoryFolderBase f1 = NewFolder(folder2, folder1, owner1, name2); // the folder will go in db.addInventoryFolder(f1); @@ -141,6 +146,8 @@ namespace OpenSim.Data.Tests [Test] public void T011_FolderCreate() { + TestHelper.InMethod(); + InventoryFolderBase f1 = NewFolder(folder1, zero, owner1, name1); // TODO: this is probably wrong behavior, but is what we have // db.updateInventoryFolder(f1); @@ -164,6 +171,8 @@ namespace OpenSim.Data.Tests [Test] public void T012_FolderList() { + TestHelper.InMethod(); + InventoryFolderBase f2 = NewFolder(folder3, folder1, owner1, name3); db.addInventoryFolder(f2); @@ -178,6 +187,8 @@ namespace OpenSim.Data.Tests [Test] public void T013_FolderHierarchy() { + TestHelper.InMethod(); + int n = db.getFolderHierarchy(zero).Count; // (for dbg - easier to see what's returned) Assert.That(n, Is.EqualTo(0), "Assert.That(db.getFolderHierarchy(zero).Count, Is.EqualTo(0))"); n = db.getFolderHierarchy(folder1).Count; @@ -191,6 +202,8 @@ namespace OpenSim.Data.Tests [Test] public void T014_MoveFolder() { + TestHelper.InMethod(); + InventoryFolderBase f2 = db.getInventoryFolder(folder2); f2.ParentID = folder3; db.moveInventoryFolder(f2); @@ -205,6 +218,8 @@ namespace OpenSim.Data.Tests [Test] public void T015_FolderHierarchy() { + TestHelper.InMethod(); + Assert.That(db.getFolderHierarchy(zero).Count, Is.EqualTo(0), "Assert.That(db.getFolderHierarchy(zero).Count, Is.EqualTo(0))"); Assert.That(db.getFolderHierarchy(folder1).Count, Is.EqualTo(2), "Assert.That(db.getFolderHierarchy(folder1).Count, Is.EqualTo(2))"); Assert.That(db.getFolderHierarchy(folder2).Count, Is.EqualTo(0), "Assert.That(db.getFolderHierarchy(folder2).Count, Is.EqualTo(0))"); @@ -216,6 +231,8 @@ namespace OpenSim.Data.Tests [Test] public void T100_NoItems() { + TestHelper.InMethod(); + Assert.That(db.getInventoryInFolder(zero).Count, Is.EqualTo(0), "Assert.That(db.getInventoryInFolder(zero).Count, Is.EqualTo(0))"); Assert.That(db.getInventoryInFolder(folder1).Count, Is.EqualTo(0), "Assert.That(db.getInventoryInFolder(folder1).Count, Is.EqualTo(0))"); Assert.That(db.getInventoryInFolder(folder2).Count, Is.EqualTo(0), "Assert.That(db.getInventoryInFolder(folder2).Count, Is.EqualTo(0))"); @@ -228,6 +245,8 @@ namespace OpenSim.Data.Tests [Test] public void T101_CreatItems() { + TestHelper.InMethod(); + db.addInventoryItem(NewItem(item1, folder3, owner1, iname1, asset1)); db.addInventoryItem(NewItem(item2, folder3, owner1, iname2, asset2)); db.addInventoryItem(NewItem(item3, folder3, owner1, iname3, asset3)); @@ -237,6 +256,8 @@ namespace OpenSim.Data.Tests [Test] public void T102_CompareItems() { + TestHelper.InMethod(); + InventoryItemBase i1 = db.getInventoryItem(item1); InventoryItemBase i2 = db.getInventoryItem(item2); InventoryItemBase i3 = db.getInventoryItem(item3); @@ -254,6 +275,8 @@ namespace OpenSim.Data.Tests [Test] public void T103_UpdateItem() { + TestHelper.InMethod(); + // TODO: probably shouldn't have the ability to have an // owner of an item in a folder not owned by the user @@ -272,6 +295,8 @@ namespace OpenSim.Data.Tests [Test] public void T104_RandomUpdateItem() { + TestHelper.InMethod(); + PropertyScrambler folderScrambler = new PropertyScrambler() .DontScramble(x => x.Owner) @@ -329,6 +354,8 @@ namespace OpenSim.Data.Tests [Test] public void T999_StillNull() { + TestHelper.InMethod(); + // After all tests are run, these should still return no results Assert.That(db.getInventoryFolder(zero), Is.Null); Assert.That(db.getInventoryItem(zero), Is.Null); diff --git a/OpenSim/Data/Tests/RegionTests.cs b/OpenSim/Data/Tests/RegionTests.cs index 9598716e0d..2dc177a0ce 100644 --- a/OpenSim/Data/Tests/RegionTests.cs +++ b/OpenSim/Data/Tests/RegionTests.cs @@ -35,6 +35,7 @@ using OpenMetaverse; using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; +using OpenSim.Tests.Common; using log4net; using System.Reflection; using System.Data.Common; @@ -120,15 +121,18 @@ namespace OpenSim.Data.Tests string[] reg_tables = new string[] { "prims", "primshapes", "primitems", "terrain", "land", "landaccesslist", "regionban", "regionsettings" }; + if (m_rebuildDB) { DropTables(reg_tables); ResetMigrations("RegionStore"); - }else + } + else + { ClearTables(reg_tables); + } } - // Test Plan // Prims // - empty test - 001 @@ -147,6 +151,8 @@ namespace OpenSim.Data.Tests [Test] public void T001_LoadEmpty() { + TestHelper.InMethod(); + List objs = db.LoadObjects(region1); List objs3 = db.LoadObjects(region3); List land = db.LoadLandObjects(region1); @@ -163,6 +169,8 @@ namespace OpenSim.Data.Tests [Test] public void T010_StoreSimpleObject() { + TestHelper.InMethod(); + SceneObjectGroup sog = NewSOG("object1", prim1, region1); SceneObjectGroup sog2 = NewSOG("object2", prim2, region1); @@ -196,6 +204,8 @@ namespace OpenSim.Data.Tests [Test] public void T011_ObjectNames() { + TestHelper.InMethod(); + List objs = db.LoadObjects(region1); foreach (SceneObjectGroup sog in objs) { @@ -208,6 +218,8 @@ namespace OpenSim.Data.Tests [Test] public void T012_SceneParts() { + TestHelper.InMethod(); + UUID tmp0 = UUID.Random(); UUID tmp1 = UUID.Random(); UUID tmp2 = UUID.Random(); @@ -241,6 +253,8 @@ namespace OpenSim.Data.Tests [Test] public void T013_DatabasePersistency() { + TestHelper.InMethod(); + // Sets all ScenePart parameters, stores and retrieves them, then check for consistency with initial data // The commented Asserts are the ones that are unchangeable (when storing on the database, their "Set" values are ignored // The ObjectFlags is an exception, if it is entered incorrectly, the object IS REJECTED on the database silently. @@ -416,6 +430,8 @@ namespace OpenSim.Data.Tests [Test] public void T014_UpdateObject() { + TestHelper.InMethod(); + string text1 = "object1 text"; SceneObjectGroup sog = FindSOG("object1", region1); sog.RootPart.Text = text1; @@ -521,6 +537,8 @@ namespace OpenSim.Data.Tests [Test] public void T015_LargeSceneObjects() { + TestHelper.InMethod(); + UUID id = UUID.Random(); Dictionary mydic = new Dictionary(); SceneObjectGroup sog = NewSOG("Test SOG", id, region4); @@ -565,6 +583,8 @@ namespace OpenSim.Data.Tests //[Test] public void T016_RandomSogWithSceneParts() { + TestHelper.InMethod(); + PropertyScrambler scrambler = new PropertyScrambler() .DontScramble(x => x.UUID); @@ -631,15 +651,16 @@ namespace OpenSim.Data.Tests return sog; } - // NOTE: it is a bad practice to rely on some of the previous tests having been run before. // If the tests are run manually, one at a time, each starts with full class init (DB cleared). // Even when all tests are run, NUnit 2.5+ no longer guarantee a specific test order. // We shouldn't expect to find anything in the DB if we haven't put it there *in the same test*! - + [Test] public void T020_PrimInventoryEmpty() { + TestHelper.InMethod(); + SceneObjectGroup sog = GetMySOG("object1"); TaskInventoryItem t = sog.GetInventoryItem(sog.RootPart.LocalId, item1); Assert.That(t, Is.Null); @@ -659,10 +680,11 @@ namespace OpenSim.Data.Tests db.StorePrimInventory(sog.RootPart.UUID, list); } - [Test] public void T021_PrimInventoryBasic() { + TestHelper.InMethod(); + SceneObjectGroup sog = GetMySOG("object1"); InventoryItemBase i = NewItem(item1, zero, zero, itemname1, zero); @@ -690,20 +712,19 @@ namespace OpenSim.Data.Tests Assert.That(t2.Name, Is.EqualTo("My New Name"), "Assert.That(t.Name, Is.EqualTo(\"My New Name\"))"); // Removing inventory - List list = new List(); db.StorePrimInventory(prim1, list); sog = FindSOG("object1", region1); t = sog.GetInventoryItem(sog.RootPart.LocalId, item1); Assert.That(t, Is.Null); - } - [Test] public void T025_PrimInventoryPersistency() { + TestHelper.InMethod(); + InventoryItemBase i = new InventoryItemBase(); UUID id = UUID.Random(); i.ID = id; @@ -775,6 +796,8 @@ namespace OpenSim.Data.Tests [ExpectedException(typeof(ArgumentException))] public void T026_PrimInventoryMany() { + TestHelper.InMethod(); + UUID i1,i2,i3,i4; i1 = UUID.Random(); i2 = UUID.Random(); @@ -805,15 +828,18 @@ namespace OpenSim.Data.Tests [Test] public void T052_RemoveObject() { + TestHelper.InMethod(); + db.RemoveObject(prim1, region1); SceneObjectGroup sog = FindSOG("object1", region1); Assert.That(sog, Is.Null); } - [Test] public void T100_DefaultRegionInfo() { + TestHelper.InMethod(); + RegionSettings r1 = db.LoadRegionSettings(region1); Assert.That(r1.RegionUUID, Is.EqualTo(region1), "Assert.That(r1.RegionUUID, Is.EqualTo(region1))"); @@ -824,6 +850,8 @@ namespace OpenSim.Data.Tests [Test] public void T101_UpdateRegionInfo() { + TestHelper.InMethod(); + int agentlimit = random.Next(); double objectbonus = random.Next(); int maturity = random.Next(); @@ -922,13 +950,14 @@ namespace OpenSim.Data.Tests //Assert.That(r1a.TerrainImageID,Is.EqualTo(terimgid), "Assert.That(r1a.TerrainImageID,Is.EqualTo(terimgid))"); Assert.That(r1a.FixedSun,Is.True); Assert.That(r1a.SunPosition, Is.EqualTo(sunpos), "Assert.That(r1a.SunPosition, Is.EqualTo(sunpos))"); - Assert.That(r1a.Covenant, Is.EqualTo(cov), "Assert.That(r1a.Covenant, Is.EqualTo(cov))"); - + Assert.That(r1a.Covenant, Is.EqualTo(cov), "Assert.That(r1a.Covenant, Is.EqualTo(cov))"); } [Test] public void T300_NoTerrain() { + TestHelper.InMethod(); + Assert.That(db.LoadTerrain(zero), Is.Null); Assert.That(db.LoadTerrain(region1), Is.Null); Assert.That(db.LoadTerrain(region2), Is.Null); @@ -938,6 +967,8 @@ namespace OpenSim.Data.Tests [Test] public void T301_CreateTerrain() { + TestHelper.InMethod(); + double[,] t1 = GenTerrain(height1); db.StoreTerrain(t1, region1); @@ -950,6 +981,8 @@ namespace OpenSim.Data.Tests [Test] public void T302_FetchTerrain() { + TestHelper.InMethod(); + double[,] baseterrain1 = GenTerrain(height1); double[,] baseterrain2 = GenTerrain(height2); double[,] t1 = db.LoadTerrain(region1); @@ -960,6 +993,8 @@ namespace OpenSim.Data.Tests [Test] public void T303_UpdateTerrain() { + TestHelper.InMethod(); + double[,] baseterrain1 = GenTerrain(height1); double[,] baseterrain2 = GenTerrain(height2); db.StoreTerrain(baseterrain2, region1); @@ -972,6 +1007,8 @@ namespace OpenSim.Data.Tests [Test] public void T400_EmptyLand() { + TestHelper.InMethod(); + Assert.That(db.LoadLandObjects(zero).Count, Is.EqualTo(0), "Assert.That(db.LoadLandObjects(zero).Count, Is.EqualTo(0))"); Assert.That(db.LoadLandObjects(region1).Count, Is.EqualTo(0), "Assert.That(db.LoadLandObjects(region1).Count, Is.EqualTo(0))"); Assert.That(db.LoadLandObjects(region2).Count, Is.EqualTo(0), "Assert.That(db.LoadLandObjects(region2).Count, Is.EqualTo(0))"); From 8509678e483bc7b91721d25d822be0a21e4f7be9 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 14 Mar 2011 23:26:50 +0000 Subject: [PATCH 32/95] Add method doc to T015_LargeSceneObjects() and slightly clean up formatting. This test takes a considerable time on SQLite but should remain since it's testing storage and retrieval of a scene object with 31 parts. --- OpenSim/Data/Tests/RegionTests.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/OpenSim/Data/Tests/RegionTests.cs b/OpenSim/Data/Tests/RegionTests.cs index 2dc177a0ce..edc9d84c9b 100644 --- a/OpenSim/Data/Tests/RegionTests.cs +++ b/OpenSim/Data/Tests/RegionTests.cs @@ -533,7 +533,10 @@ namespace OpenSim.Data.Tests Assert.That(clickaction,Is.EqualTo(p.ClickAction), "Assert.That(clickaction,Is.EqualTo(p.ClickAction))"); Assert.That(scale,Is.EqualTo(p.Scale), "Assert.That(scale,Is.EqualTo(p.Scale))"); } - + + /// + /// Test storage and retrieval of a scene object with a large number of parts. + /// [Test] public void T015_LargeSceneObjects() { @@ -543,7 +546,7 @@ namespace OpenSim.Data.Tests Dictionary mydic = new Dictionary(); SceneObjectGroup sog = NewSOG("Test SOG", id, region4); mydic.Add(sog.RootPart.UUID,sog.RootPart); - for (int i=0;i<30;i++) + for (int i = 0; i < 30; i++) { UUID tmp = UUID.Random(); SceneObjectPart sop = NewSOP(("Test SOP " + i.ToString()),tmp); @@ -568,7 +571,7 @@ namespace OpenSim.Data.Tests SceneObjectGroup retsog = FindSOG("Test SOG", region4); SceneObjectPart[] parts = retsog.Parts; - for (int i=0;i<30;i++) + for (int i = 0; i < 30; i++) { SceneObjectPart cursop = mydic[parts[i].UUID]; Assert.That(cursop.GroupPosition,Is.EqualTo(parts[i].GroupPosition), "Assert.That(cursop.GroupPosition,Is.EqualTo(parts[i].GroupPosition))"); From 38c3be07b8e9c6a4cec312118bf908305af6495f Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 14 Mar 2011 23:32:44 +0000 Subject: [PATCH 33/95] when retrieving a sog in database tests, don't bother adding the scene since this isn't used --- OpenSim/Data/Tests/RegionTests.cs | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/OpenSim/Data/Tests/RegionTests.cs b/OpenSim/Data/Tests/RegionTests.cs index edc9d84c9b..e049826eb8 100644 --- a/OpenSim/Data/Tests/RegionTests.cs +++ b/OpenSim/Data/Tests/RegionTests.cs @@ -1047,25 +1047,12 @@ namespace OpenSim.Data.Tests return true; } - private SceneObjectGroup FindSOG(string name, UUID r) { List objs = db.LoadObjects(r); foreach (SceneObjectGroup sog in objs) - { - SceneObjectPart p = sog.RootPart; - if (p.Name == name) { - RegionInfo regionInfo = new RegionInfo(); - regionInfo.RegionID = r; - regionInfo.RegionLocX = 0; - regionInfo.RegionLocY = 0; - - Scene scene = new Scene(regionInfo); - sog.SetScene(scene); - + if (sog.Name == name) return sog; - } - } return null; } From fdcf910e00824ceb3db5166a2b3173c882ee059f Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 14 Mar 2011 23:35:03 +0000 Subject: [PATCH 34/95] Fix a bug in T015_LargeSceneObjects() where the large scene object was stored 31 times (1 time for each added part) instead of once at the end, even though only the largest 31 prim scene object was retrieved and tested. This considerably speeds up the test, when on sqlite it now only takes 2 seconds rather than 30+ --- OpenSim/Data/Tests/RegionTests.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OpenSim/Data/Tests/RegionTests.cs b/OpenSim/Data/Tests/RegionTests.cs index e049826eb8..44cf1ab3ef 100644 --- a/OpenSim/Data/Tests/RegionTests.cs +++ b/OpenSim/Data/Tests/RegionTests.cs @@ -565,10 +565,11 @@ namespace OpenSim.Data.Tests sop.Acceleration = accel; mydic.Add(tmp,sop); - sog.AddPart(sop); - db.StoreObject(sog, region4); + sog.AddPart(sop); } + db.StoreObject(sog, region4); + SceneObjectGroup retsog = FindSOG("Test SOG", region4); SceneObjectPart[] parts = retsog.Parts; for (int i = 0; i < 30; i++) From 28c335e25f6641b259f1e3315045f253887429e4 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Tue, 15 Mar 2011 17:16:50 -0400 Subject: [PATCH 35/95] Hello, World! --- CONTRIBUTORS.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index 38343a4bbc..a0af1ca941 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -28,7 +28,7 @@ people that make the day to day of OpenSim happen. * Diva (Crista Lopes, University of California, Irvine) * nlin (3Di) * Arthur Rodrigo S Valadares (IBM) - +* BlueWall (James Hughes) = Past Open Sim Developers = These folks are alumns of the OpenSim core group, but are now From aadd0e8d42b0a5b401cde9d4d3a56ce2e527201a Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 16 Mar 2011 00:14:58 +0000 Subject: [PATCH 36/95] minor: bring comment into line with code reality --- OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs index 953ed856b6..ccec9b70eb 100644 --- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs @@ -633,7 +633,7 @@ namespace OpenSim.Framework.Servers.HttpServer finally { // Every month or so this will wrap and give bad numbers, not really a problem - // since its just for reporting, 200ms limit can be adjusted + // since its just for reporting, tickdiff limit can be adjusted int tickdiff = Environment.TickCount - tickstart; if (tickdiff > 3000) m_log.InfoFormat( From a3651eb5d0325807baa9a2bdc9a1bae8d413bc9f Mon Sep 17 00:00:00 2001 From: BlueWall Date: Thu, 17 Mar 2011 05:48:42 -0400 Subject: [PATCH 37/95] Thanks Kevin Cozens for a patch that: Fixes several spelling mistakes --- .../Rest/Inventory/RestInventoryServices.cs | 6 +++--- OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs | 2 +- OpenSim/Framework/UndoStack.cs | 2 +- OpenSim/Region/CoreModules/LightShare/LightShareModule.cs | 4 ++-- .../CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs | 6 +++--- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs index b4156621bb..536f167793 100644 --- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs +++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs @@ -2129,17 +2129,17 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory } catch (DllNotFoundException) { - Rest.Log.ErrorFormat("OpenJpeg is not installed correctly on this system. Asset Data is emtpy for {0}", ic.Item.Name); + Rest.Log.ErrorFormat("OpenJpeg is not installed correctly on this system. Asset Data is empty for {0}", ic.Item.Name); ic.Asset.Data = new Byte[0]; } catch (IndexOutOfRangeException) { - Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is emtpy for {0}", ic.Item.Name); + Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is empty for {0}", ic.Item.Name); ic.Asset.Data = new Byte[0]; } catch (Exception) { - Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is emtpy for {0}", ic.Item.Name); + Rest.Log.ErrorFormat("OpenJpeg was unable to encode this. Asset Data is empty for {0}", ic.Item.Name); ic.Asset.Data = new Byte[0]; } } diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs index 129a5449fb..2c2b47ded2 100644 --- a/OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs +++ b/OpenSim/Framework/Servers/HttpServer/OSHttpHandler.cs @@ -83,7 +83,7 @@ namespace OpenSim.Framework.Servers.HttpServer /// /// Regular expression used to match against path of the /// incoming HTTP request. If you want to match any string - /// either use '.*' or null. To match on the emtpy string use + /// either use '.*' or null. To match on the empty string use /// '^$'. /// public virtual Regex Path diff --git a/OpenSim/Framework/UndoStack.cs b/OpenSim/Framework/UndoStack.cs index 4d800ae425..fde63b1cf1 100644 --- a/OpenSim/Framework/UndoStack.cs +++ b/OpenSim/Framework/UndoStack.cs @@ -90,7 +90,7 @@ namespace OpenSim.Framework return deleted; } else - throw new InvalidOperationException("Cannot pop from emtpy stack"); + throw new InvalidOperationException("Cannot pop from empty stack"); } public T Peek() diff --git a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs index 88f392dcdb..00b0aa9137 100644 --- a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs +++ b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs @@ -75,7 +75,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare m_scene = scene; m_scene.RegisterModuleInterface(this); m_scene.EventManager.OnPluginConsole += EventManager_OnPluginConsole; - + // ini file settings try { @@ -229,7 +229,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare { Command wlload = new Command("load", CommandIntentions.COMMAND_NON_HAZARDOUS, HandleLoad, "Load windlight profile from the database and broadcast"); Command wlenable = new Command("enable", CommandIntentions.COMMAND_NON_HAZARDOUS, HandleEnable, "Enable the windlight plugin"); - Command wldisable = new Command("disable", CommandIntentions.COMMAND_NON_HAZARDOUS, HandleDisable, "Enable the windlight plugin"); + Command wldisable = new Command("disable", CommandIntentions.COMMAND_NON_HAZARDOUS, HandleDisable, "Disable the windlight plugin"); m_commander.RegisterCommand("load", wlload); m_commander.RegisterCommand("enable", wlenable); diff --git a/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs b/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs index 071314ac9a..aa14054cf5 100644 --- a/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs +++ b/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs @@ -188,17 +188,17 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap } catch (DllNotFoundException) { - m_log.ErrorFormat("[TexturedMapTileRenderer]: OpenJpeg is not installed correctly on this system. Asset Data is emtpy for {0}", id); + m_log.ErrorFormat("[TexturedMapTileRenderer]: OpenJpeg is not installed correctly on this system. Asset Data is empty for {0}", id); } catch (IndexOutOfRangeException) { - m_log.ErrorFormat("[TexturedMapTileRenderer]: OpenJpeg was unable to encode this. Asset Data is emtpy for {0}", id); + m_log.ErrorFormat("[TexturedMapTileRenderer]: OpenJpeg was unable to encode this. Asset Data is empty for {0}", id); } catch (Exception) { - m_log.ErrorFormat("[TexturedMapTileRenderer]: OpenJpeg was unable to encode this. Asset Data is emtpy for {0}", id); + m_log.ErrorFormat("[TexturedMapTileRenderer]: OpenJpeg was unable to encode this. Asset Data is empty for {0}", id); } return null; From f4a30f3a234e8fbc946bf3fd5a1f96a39d9e79ea Mon Sep 17 00:00:00 2001 From: BlueWall Date: Fri, 18 Mar 2011 12:12:08 -0400 Subject: [PATCH 38/95] Upgrade SQLite: Fixes metadata issues. Tested on Linux and Windows - may fix issues seen on OSx as well. --- bin/libsqlite3.so.0 | Bin 0 -> 871398 bytes bin/libsqlite3.txt | 1 + bin/sqlite-3.6.21.so | Bin 392316 -> 0 bytes 3 files changed, 1 insertion(+) create mode 100755 bin/libsqlite3.so.0 create mode 100644 bin/libsqlite3.txt delete mode 100644 bin/sqlite-3.6.21.so diff --git a/bin/libsqlite3.so.0 b/bin/libsqlite3.so.0 new file mode 100755 index 0000000000000000000000000000000000000000..0512d8a3c0d09d93c9651848dc6d1ce837bff149 GIT binary patch literal 871398 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≠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%0A*)?WB%5pV;CdjHYbSIaPPc6qO}#=_~Bc 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

#V84|g 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�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 ^Ponof1a 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

?oe1fw+HUa_t`ss5Z-Q(_1$Co1~aqqVxw5 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 ifuLy*{z66{@WQ%IETAodwVCIfd;e3vZ Date: Mon, 21 Mar 2011 05:52:29 +0100 Subject: [PATCH 39/95] Don't send a windlight profile to clients if windlight is not set for that region. This should restore normal day and night cycles for regions without WL settings. --- OpenSim/Region/CoreModules/LightShare/LightShareModule.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs index 00b0aa9137..2de8d7a29b 100644 --- a/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs +++ b/OpenSim/Region/CoreModules/LightShare/LightShareModule.cs @@ -148,7 +148,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare public void SendProfileToClient(ScenePresence presence) { IClientAPI client = presence.ControllingClient; - if (m_enableWindlight) + if (m_enableWindlight && m_scene.RegionInfo.WindlightSettings.valid) { if (presence.IsChildAgent == false) { @@ -165,7 +165,7 @@ namespace OpenSim.Region.CoreModules.World.LightShare public void SendProfileToClient(ScenePresence presence, RegionLightShareData wl) { IClientAPI client = presence.ControllingClient; - if (m_enableWindlight) + if (m_enableWindlight && m_scene.RegionInfo.WindlightSettings.valid) { if (presence.IsChildAgent == false) { From d3a20a1e9257ecec417e219ebaf079370015f06d Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 21 Mar 2011 21:37:06 +0000 Subject: [PATCH 40/95] On initial region registration, if the user chooses the option to make the region part of an existing estate, then list the existing region names. --- OpenSim/Data/MSSQL/MSSQLEstateData.cs | 17 ++++++++ OpenSim/Data/MySQL/MySQLEstateData.cs | 40 +++++++++++++++++++ OpenSim/Data/SQLite/SQLiteEstateData.cs | 32 +++++++++++++++ OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs | 33 +++++++++++++++ OpenSim/Region/Application/OpenSimBase.cs | 13 +++++- .../Interfaces/IEstateDataService.cs | 14 +++++++ .../Framework/Interfaces/IEstateDataStore.cs | 14 +++++++ .../Simulation/EstateDataService.cs | 10 +++++ 8 files changed, 172 insertions(+), 1 deletion(-) diff --git a/OpenSim/Data/MSSQL/MSSQLEstateData.cs b/OpenSim/Data/MSSQL/MSSQLEstateData.cs index e9a0935048..92a8d80b9a 100644 --- a/OpenSim/Data/MSSQL/MSSQLEstateData.cs +++ b/OpenSim/Data/MSSQL/MSSQLEstateData.cs @@ -350,26 +350,43 @@ namespace OpenSim.Data.MSSQL public EstateSettings LoadEstateSettings(int estateID) { + // TODO: Implementation! return new EstateSettings(); } + + public List LoadEstateSettingsAll() + { + // TODO: Implementation! + return new List(); + } public List GetEstates(string search) { + // TODO: Implementation! + return new List(); + } + + public List GetEstatesAll() + { + // TODO: Implementation! return new List(); } public bool LinkRegion(UUID regionID, int estateID) { + // TODO: Implementation! return false; } public List GetRegions(int estateID) { + // TODO: Implementation! return new List(); } public bool DeleteEstate(int estateID) { + // TODO: Implementation! return false; } #endregion diff --git a/OpenSim/Data/MySQL/MySQLEstateData.cs b/OpenSim/Data/MySQL/MySQLEstateData.cs index de72a6a931..6d72e82e2b 100644 --- a/OpenSim/Data/MySQL/MySQLEstateData.cs +++ b/OpenSim/Data/MySQL/MySQLEstateData.cs @@ -413,6 +413,46 @@ namespace OpenSim.Data.MySQL return DoLoad(cmd, UUID.Zero, false); } } + + public List LoadEstateSettingsAll() + { + List allEstateSettings = new List(); + + List allEstateIds = GetEstatesAll(); + + foreach (int estateId in allEstateIds) + allEstateSettings.Add(LoadEstateSettings(estateId)); + + return allEstateSettings; + } + + public List GetEstatesAll() + { + List result = new List(); + + using (MySqlConnection dbcon = new MySqlConnection(m_connectionString)) + { + dbcon.Open(); + + using (MySqlCommand cmd = dbcon.CreateCommand()) + { + cmd.CommandText = "select estateID from estate_settings"; + + using (IDataReader reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + result.Add(Convert.ToInt32(reader["EstateID"])); + } + reader.Close(); + } + } + + dbcon.Close(); + } + + return result; + } public List GetEstates(string search) { diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs index 63252aa3d3..6afc5401d8 100644 --- a/OpenSim/Data/SQLite/SQLiteEstateData.cs +++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs @@ -357,6 +357,17 @@ namespace OpenSim.Data.SQLite return DoLoad(cmd, UUID.Zero, false); } + + public List LoadEstateSettingsAll() + { + List estateSettings = new List(); + + List estateIds = GetEstatesAll(); + foreach (int estateId in estateIds) + estateSettings.Add(LoadEstateSettings(estateId)); + + return estateSettings; + } public List GetEstates(string search) { @@ -379,6 +390,27 @@ namespace OpenSim.Data.SQLite return result; } + + public List GetEstatesAll() + { + List result = new List(); + + string sql = "select EstateID from estate_settings"; + + SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); + + cmd.CommandText = sql; + + IDataReader r = cmd.ExecuteReader(); + + while (r.Read()) + { + result.Add(Convert.ToInt32(r["EstateID"])); + } + r.Close(); + + return result; + } public bool LinkRegion(UUID regionID, int estateID) { diff --git a/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs index 547ea6b07d..ad28c000c6 100644 --- a/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs +++ b/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs @@ -100,6 +100,17 @@ namespace OpenSim.Data.SQLiteLegacy return DoLoad(cmd, regionID, create); } + + public List LoadEstateSettingsAll() + { + List estateSettings = new List(); + + List estateIds = GetEstatesAll(); + foreach (int estateId in estateIds) + estateSettings.Add(LoadEstateSettings(estateId)); + + return estateSettings; + } private EstateSettings DoLoad(SqliteCommand cmd, UUID regionID, bool create) { @@ -369,6 +380,28 @@ namespace OpenSim.Data.SQLiteLegacy return result; } + + public List GetEstatesAll() + { + List result = new List(); + + string sql = "select EstateID from estate_settings"; + + SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); + + cmd.CommandText = sql; + + IDataReader r = cmd.ExecuteReader(); + + while (r.Read()) + { + result.Add(Convert.ToInt32(r["EstateID"])); + } + r.Close(); + + return result; + } + public bool LinkRegion(UUID regionID, int estateID) { SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand(); diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index e950613e6b..f804cb7f95 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -828,7 +828,18 @@ namespace OpenSim } else { - response = MainConsole.Instance.CmdPrompt("Estate name to join", "None"); + List estates = estateDataService.LoadEstateSettingsAll(); + + List estateNames = new List(); + foreach (EstateSettings estate in estates) + estateNames.Add(estate.EstateName); + + response + = MainConsole.Instance.CmdPrompt( + string.Format( + "Name of estate to join. Existing estate names are ({0})", string.Join(", ", estateNames.ToArray())), + "None"); + if (response == "None") continue; diff --git a/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs b/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs index 95c9659bc1..12ed9e3fa7 100644 --- a/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs +++ b/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs @@ -36,8 +36,22 @@ namespace OpenSim.Region.Framework.Interfaces { EstateSettings LoadEstateSettings(UUID regionID, bool create); EstateSettings LoadEstateSettings(int estateID); + + ///

+ /// Load/Get all estate settings. + /// + /// An empty list if no estates were found. + List LoadEstateSettingsAll(); + void StoreEstateSettings(EstateSettings es); List GetEstates(string search); + + /// + /// Get the IDs of all estates. + /// + /// An empty list if no estates were found. + List GetEstatesAll(); + bool LinkRegion(UUID regionID, int estateID); List GetRegions(int estateID); bool DeleteEstate(int estateID); diff --git a/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs b/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs index 87c7a05f6d..d78ad78774 100644 --- a/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs +++ b/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs @@ -37,8 +37,22 @@ namespace OpenSim.Region.Framework.Interfaces EstateSettings LoadEstateSettings(UUID regionID, bool create); EstateSettings LoadEstateSettings(int estateID); + + /// + /// Load/Get all estate settings. + /// + /// An empty list if no estates were found. + List LoadEstateSettingsAll(); + void StoreEstateSettings(EstateSettings es); List GetEstates(string search); + + /// + /// Get the IDs of all estates. + /// + /// An empty list if no estates were found. + List GetEstatesAll(); + bool LinkRegion(UUID regionID, int estateID); List GetRegions(int estateID); bool DeleteEstate(int estateID); diff --git a/OpenSim/Services/Connectors/Simulation/EstateDataService.cs b/OpenSim/Services/Connectors/Simulation/EstateDataService.cs index b6df5a2595..d0588bff09 100644 --- a/OpenSim/Services/Connectors/Simulation/EstateDataService.cs +++ b/OpenSim/Services/Connectors/Simulation/EstateDataService.cs @@ -90,6 +90,11 @@ namespace OpenSim.Services.Connectors { return m_database.LoadEstateSettings(estateID); } + + public List LoadEstateSettingsAll() + { + return m_database.LoadEstateSettingsAll(); + } public void StoreEstateSettings(EstateSettings es) { @@ -100,6 +105,11 @@ namespace OpenSim.Services.Connectors { return m_database.GetEstates(search); } + + public List GetEstatesAll() + { + return m_database.GetEstatesAll(); + } public bool LinkRegion(UUID regionID, int estateID) { From 793bfb5a663879296789efa8350df0e9cabb2148 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 21 Mar 2011 22:25:20 +0000 Subject: [PATCH 41/95] add method doc to IEstateDataService and IEstateDataStore interfaces --- .../Interfaces/IEstateDataService.cs | 44 ++++++++++++++++- .../Framework/Interfaces/IEstateDataStore.cs | 48 ++++++++++++++++++- 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs b/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs index 12ed9e3fa7..55adef17c7 100644 --- a/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs +++ b/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs @@ -34,7 +34,19 @@ namespace OpenSim.Region.Framework.Interfaces { public interface IEstateDataService { + /// + /// Load estate settings for a region. + /// + /// + /// If true, then an estate is created if one is not found. This is used in migration. + /// EstateSettings LoadEstateSettings(UUID regionID, bool create); + + /// + /// Load estate settings for an estate ID. + /// + /// + /// EstateSettings LoadEstateSettings(int estateID); /// @@ -43,7 +55,19 @@ namespace OpenSim.Region.Framework.Interfaces /// An empty list if no estates were found. List LoadEstateSettingsAll(); + /// + /// Store estate settings. + /// + /// + /// This is also called by EstateSettings.Save() + /// void StoreEstateSettings(EstateSettings es); + + /// + /// Get estate IDs. + /// + /// Name of estate to search for. This is the exact name, no parttern matching is done. + /// List GetEstates(string search); /// @@ -52,8 +76,26 @@ namespace OpenSim.Region.Framework.Interfaces /// An empty list if no estates were found. List GetEstatesAll(); + /// + /// Link a region to an estate. + /// + /// + /// + /// true if the link succeeded, false otherwise bool LinkRegion(UUID regionID, int estateID); + + /// + /// Get the UUIDs of all the regions in an estate. + /// + /// + /// List GetRegions(int estateID); + + /// + /// Delete an estate + /// + /// + /// true if the delete succeeded, false otherwise bool DeleteEstate(int estateID); } -} +} \ No newline at end of file diff --git a/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs b/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs index d78ad78774..4974d5d1ff 100644 --- a/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs +++ b/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs @@ -33,9 +33,25 @@ namespace OpenSim.Region.Framework.Interfaces { public interface IEstateDataStore { + /// + /// Initialise the data store. + /// + /// void Initialise(string connectstring); + /// + /// Load estate settings for a region. + /// + /// + /// If true, then an estate is created if one is not found. This is used in migration. + /// EstateSettings LoadEstateSettings(UUID regionID, bool create); + + /// + /// Load estate settings for an estate ID. + /// + /// + /// EstateSettings LoadEstateSettings(int estateID); /// @@ -44,7 +60,19 @@ namespace OpenSim.Region.Framework.Interfaces /// An empty list if no estates were found. List LoadEstateSettingsAll(); + /// + /// Store estate settings. + /// + /// + /// This is also called by EstateSettings.Save() + /// void StoreEstateSettings(EstateSettings es); + + /// + /// Get estate IDs. + /// + /// Name of estate to search for. This is the exact name, no parttern matching is done. + /// List GetEstates(string search); /// @@ -53,8 +81,26 @@ namespace OpenSim.Region.Framework.Interfaces /// An empty list if no estates were found. List GetEstatesAll(); + /// + /// Link a region to an estate. + /// + /// + /// + /// true if the link succeeded, false otherwise bool LinkRegion(UUID regionID, int estateID); + + /// + /// Get the UUIDs of all the regions in an estate. + /// + /// + /// List GetRegions(int estateID); + + /// + /// Delete an estate + /// + /// + /// true if the delete succeeded, false otherwise bool DeleteEstate(int estateID); } -} +} \ No newline at end of file From 2d1f0d224c355e92997643cf849b8e9774dddbad Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 21 Mar 2011 22:27:16 +0000 Subject: [PATCH 42/95] minor: slightly adjust previous method doc. --- OpenSim/Region/Framework/Interfaces/IEstateDataService.cs | 2 +- OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs b/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs index 55adef17c7..38c10a6d1b 100644 --- a/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs +++ b/OpenSim/Region/Framework/Interfaces/IEstateDataService.cs @@ -38,7 +38,7 @@ namespace OpenSim.Region.Framework.Interfaces /// Load estate settings for a region. /// /// - /// If true, then an estate is created if one is not found. This is used in migration. + /// If true, then an estate is created if one is not found. /// EstateSettings LoadEstateSettings(UUID regionID, bool create); diff --git a/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs b/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs index 4974d5d1ff..c82661db74 100644 --- a/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs +++ b/OpenSim/Region/Framework/Interfaces/IEstateDataStore.cs @@ -43,7 +43,7 @@ namespace OpenSim.Region.Framework.Interfaces /// Load estate settings for a region. /// /// - /// If true, then an estate is created if one is not found. This is used in migration. + /// If true, then an estate is created if one is not found. /// EstateSettings LoadEstateSettings(UUID regionID, bool create); From ee7cfc2854aba3572d5342b8c1bfd5bf4ea93841 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 21 Mar 2011 22:47:02 +0000 Subject: [PATCH 43/95] refactor: use EstateDataService property directly instead of loading it into a local variable --- OpenSim/Region/Application/OpenSimBase.cs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index f804cb7f95..eae36869a2 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -798,12 +798,8 @@ namespace OpenSim /// public void PopulateRegionEstateInfo(RegionInfo regInfo) { - IEstateDataService estateDataService = EstateDataService; - - if (estateDataService != null) - { - regInfo.EstateSettings = estateDataService.LoadEstateSettings(regInfo.RegionID, false); - } + if (EstateDataService != null) + regInfo.EstateSettings = EstateDataService.LoadEstateSettings(regInfo.RegionID, false); if (regInfo.EstateSettings.EstateID == 0) // No record at all { @@ -814,7 +810,7 @@ namespace OpenSim if (response == "no") { // Create a new estate - regInfo.EstateSettings = estateDataService.LoadEstateSettings(regInfo.RegionID, true); + regInfo.EstateSettings = EstateDataService.LoadEstateSettings(regInfo.RegionID, true); regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName); @@ -828,7 +824,7 @@ namespace OpenSim } else { - List estates = estateDataService.LoadEstateSettingsAll(); + List estates = EstateDataService.LoadEstateSettingsAll(); List estateNames = new List(); foreach (EstateSettings estate in estates) @@ -843,7 +839,7 @@ namespace OpenSim if (response == "None") continue; - List estateIDs = estateDataService.GetEstates(response); + List estateIDs = EstateDataService.GetEstates(response); if (estateIDs.Count < 1) { MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again"); @@ -852,9 +848,9 @@ namespace OpenSim int estateID = estateIDs[0]; - regInfo.EstateSettings = estateDataService.LoadEstateSettings(estateID); + regInfo.EstateSettings = EstateDataService.LoadEstateSettings(estateID); - if (estateDataService.LinkRegion(regInfo.RegionID, estateID)) + if (EstateDataService.LinkRegion(regInfo.RegionID, estateID)) break; MainConsole.Instance.Output("Joining the estate failed. Please try again."); @@ -863,7 +859,6 @@ namespace OpenSim } } } - public class OpenSimConfigSource { From 060a53b896d338309458861161eb0b9e621d4171 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 21 Mar 2011 22:57:20 +0000 Subject: [PATCH 44/95] On initial opensim setup, don't ask the user whether they want to join an existing opensim estate when there aren't any. Proceed directly to estate setup instead. --- OpenSim/Region/Application/OpenSimBase.cs | 102 +++++++++++++--------- 1 file changed, 63 insertions(+), 39 deletions(-) diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index eae36869a2..81a10e3830 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -792,6 +792,25 @@ namespace OpenSim regionnum = m_sceneManager.Scenes.Count; } + /// + /// Create an estate with an initial region. + /// + /// + public void CreateEstate(RegionInfo regInfo) + { + // Create a new estate + regInfo.EstateSettings = EstateDataService.LoadEstateSettings(regInfo.RegionID, true); + + regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName); + + // FIXME: Later on, the scene constructor will reload the estate settings no matter what. + // Therefore, we need to do an initial save here otherwise the new estate name will be reset + // back to the default. The reloading of estate settings by scene could be eliminated if it + // knows that the passed in settings in RegionInfo are already valid. Also, it might be + // possible to eliminate some additional later saves made by callers of this method. + regInfo.EstateSettings.Save(); + } + /// /// Load the estate information for the provided RegionInfo object. /// @@ -804,56 +823,61 @@ namespace OpenSim if (regInfo.EstateSettings.EstateID == 0) // No record at all { MainConsole.Instance.Output("Your region is not part of an estate."); + + List estates = EstateDataService.LoadEstateSettingsAll(); + while (true) { - string response = MainConsole.Instance.CmdPrompt("Do you wish to join an existing estate?", "no", new List() { "yes", "no" }); - if (response == "no") - { - // Create a new estate - regInfo.EstateSettings = EstateDataService.LoadEstateSettings(regInfo.RegionID, true); - - regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName); + if (estates.Count == 0) + { + MainConsole.Instance.Output( + "There aren't any existing estates. You will need to create a new one for this region."); - // FIXME: Later on, the scene constructor will reload the estate settings no matter what. - // Therefore, we need to do an initial save here otherwise the new estate name will be reset - // back to the default. The reloading of estate settings by scene could be eliminated if it - // knows that the passed in settings in RegionInfo are already valid. Also, it might be - // possible to eliminate some additional later saves made by callers of this method. - regInfo.EstateSettings.Save(); + CreateEstate(regInfo); break; } else { - List estates = EstateDataService.LoadEstateSettingsAll(); - - List estateNames = new List(); - foreach (EstateSettings estate in estates) - estateNames.Add(estate.EstateName); - - response + string response = MainConsole.Instance.CmdPrompt( - string.Format( - "Name of estate to join. Existing estate names are ({0})", string.Join(", ", estateNames.ToArray())), - "None"); + "Do you wish to join an existing estate (yes/no)?", "no", new List() { "yes", "no" }); - if (response == "None") - continue; - - List estateIDs = EstateDataService.GetEstates(response); - if (estateIDs.Count < 1) + if (response == "no") { - MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again"); - continue; - } - - int estateID = estateIDs[0]; - - regInfo.EstateSettings = EstateDataService.LoadEstateSettings(estateID); - - if (EstateDataService.LinkRegion(regInfo.RegionID, estateID)) + CreateEstate(regInfo); break; - - MainConsole.Instance.Output("Joining the estate failed. Please try again."); + } + else + { + List estateNames = new List(); + foreach (EstateSettings estate in estates) + estateNames.Add(estate.EstateName); + + response + = MainConsole.Instance.CmdPrompt( + string.Format( + "Name of estate to join. Existing estate names are ({0})", string.Join(", ", estateNames.ToArray())), + "None"); + + if (response == "None") + continue; + + List estateIDs = EstateDataService.GetEstates(response); + if (estateIDs.Count < 1) + { + MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again"); + continue; + } + + int estateID = estateIDs[0]; + + regInfo.EstateSettings = EstateDataService.LoadEstateSettings(estateID); + + if (EstateDataService.LinkRegion(regInfo.RegionID, estateID)) + break; + + MainConsole.Instance.Output("Joining the estate failed. Please try again."); + } } } } From 3382de4d8bcfce0c3f8e2e63ee63ed2428322461 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 21 Mar 2011 23:16:57 +0000 Subject: [PATCH 45/95] In initial setup, stop a user being able to create a new estate with the same name as an existing estate. --- OpenSim/Region/Application/OpenSimBase.cs | 45 ++++++++++++++++------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 81a10e3830..3f5e35e6b7 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -795,20 +795,34 @@ namespace OpenSim /// /// Create an estate with an initial region. /// + /// + /// This method doesn't allow an estate to be created with the same name as existing estates. + /// /// - public void CreateEstate(RegionInfo regInfo) + /// A list of estate names that already exist. + /// true if the estate was created, false otherwise + public bool CreateEstate(RegionInfo regInfo, List existingNames) { // Create a new estate regInfo.EstateSettings = EstateDataService.LoadEstateSettings(regInfo.RegionID, true); + string newName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName); - regInfo.EstateSettings.EstateName = MainConsole.Instance.CmdPrompt("New estate name", regInfo.EstateSettings.EstateName); + if (existingNames.Contains(newName)) + { + MainConsole.Instance.OutputFormat("An estate named {0} already exists. Please try again.", newName); + return false; + } + + regInfo.EstateSettings.EstateName = newName; // FIXME: Later on, the scene constructor will reload the estate settings no matter what. // Therefore, we need to do an initial save here otherwise the new estate name will be reset // back to the default. The reloading of estate settings by scene could be eliminated if it // knows that the passed in settings in RegionInfo are already valid. Also, it might be // possible to eliminate some additional later saves made by callers of this method. - regInfo.EstateSettings.Save(); + regInfo.EstateSettings.Save(); + + return true; } /// @@ -825,16 +839,21 @@ namespace OpenSim MainConsole.Instance.Output("Your region is not part of an estate."); List estates = EstateDataService.LoadEstateSettingsAll(); + List estateNames = new List(); + foreach (EstateSettings estate in estates) + estateNames.Add(estate.EstateName); while (true) { if (estates.Count == 0) { MainConsole.Instance.Output( - "There aren't any existing estates. You will need to create a new one for this region."); + "No existing estates found. You must create a new one for this region."); - CreateEstate(regInfo); - break; + if (CreateEstate(regInfo, estateNames)) + break; + else + continue; } else { @@ -844,15 +863,13 @@ namespace OpenSim if (response == "no") { - CreateEstate(regInfo); - break; + if (CreateEstate(regInfo, estateNames)) + break; + else + continue; } else - { - List estateNames = new List(); - foreach (EstateSettings estate in estates) - estateNames.Add(estate.EstateName); - + { response = MainConsole.Instance.CmdPrompt( string.Format( @@ -865,7 +882,7 @@ namespace OpenSim List estateIDs = EstateDataService.GetEstates(response); if (estateIDs.Count < 1) { - MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again"); + MainConsole.Instance.Output("The name you have entered matches no known estate. Please try again."); continue; } From 7acade00b9b34403e63656d5e2efc94322342653 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Mon, 21 Mar 2011 23:26:35 +0000 Subject: [PATCH 46/95] On initial setup, include estate and regions names in questions to make it clearer what they relate to. --- OpenSim/Region/Application/OpenSimBase.cs | 10 ++++++---- OpenSim/Region/Framework/Scenes/Scene.cs | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 3f5e35e6b7..640581181c 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -836,7 +836,7 @@ namespace OpenSim if (regInfo.EstateSettings.EstateID == 0) // No record at all { - MainConsole.Instance.Output("Your region is not part of an estate."); + MainConsole.Instance.OutputFormat("Region {0} is not part of an estate.", regInfo.RegionName); List estates = EstateDataService.LoadEstateSettingsAll(); List estateNames = new List(); @@ -847,8 +847,7 @@ namespace OpenSim { if (estates.Count == 0) { - MainConsole.Instance.Output( - "No existing estates found. You must create a new one for this region."); + MainConsole.Instance.Output("No existing estates found. You must create a new one."); if (CreateEstate(regInfo, estateNames)) break; @@ -859,7 +858,10 @@ namespace OpenSim { string response = MainConsole.Instance.CmdPrompt( - "Do you wish to join an existing estate (yes/no)?", "no", new List() { "yes", "no" }); + string.Format( + "Do you wish to join region {0} to an existing estate (yes/no)?", regInfo.RegionName), + "no", + new List() { "yes", "no" }); if (response == "no") { diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 1a6a70bfbe..4d2519d694 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -1109,7 +1109,7 @@ namespace OpenSim.Region.Framework.Scenes // while (m_regInfo.EstateSettings.EstateOwner == UUID.Zero && MainConsole.Instance != null) { - MainConsole.Instance.Output("The current estate has no owner set."); + MainConsole.Instance.OutputFormat("Estate {0} has no owner set.", m_regInfo.EstateSettings.EstateName); List excluded = new List(new char[1]{' '}); string first = MainConsole.Instance.CmdPrompt("Estate owner first name", "Test", excluded); string last = MainConsole.Instance.CmdPrompt("Estate owner last name", "User", excluded); From 97d46648cdde5d8237d1241f3dc47fc455b35d33 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Tue, 22 Mar 2011 16:42:12 -0400 Subject: [PATCH 47/95] More SQLite work. --- bin/Mono.Data.Sqlite.dll.config | 4 ++++ bin/libsqlite3_32.so | Bin 0 -> 635852 bytes bin/{libsqlite3.so.0 => libsqlite3_64.so} | Bin 871398 -> 783200 bytes prebuild.xml | 4 ++-- 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 bin/Mono.Data.Sqlite.dll.config create mode 100755 bin/libsqlite3_32.so rename bin/{libsqlite3.so.0 => libsqlite3_64.so} (89%) diff --git a/bin/Mono.Data.Sqlite.dll.config b/bin/Mono.Data.Sqlite.dll.config new file mode 100644 index 0000000000..456461ea44 --- /dev/null +++ b/bin/Mono.Data.Sqlite.dll.config @@ -0,0 +1,4 @@ + + + + diff --git a/bin/libsqlite3_32.so b/bin/libsqlite3_32.so new file mode 100755 index 0000000000000000000000000000000000000000..171ffcd1ccc9caf6e889910de518cd22e158e49f GIT binary patch literal 635852 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
;MFk-(bLJVRokzNJIjN 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

nyOtVy_#^rv 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

HWGsOso+L?jxHH9VN*4wWdK{SIT0od%3@;!C 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 literal 0 HcmV?d00001 diff --git a/bin/libsqlite3.so.0 b/bin/libsqlite3_64.so similarity index 89% rename from bin/libsqlite3.so.0 rename to bin/libsqlite3_64.so index 0512d8a3c0d09d93c9651848dc6d1ce837bff149..2646a9c41e06b1726030664109e642acab0c8a87 100755 GIT binary patch delta 302 zcmXxgt4l;d6vy!yz56^H91ynnirds6hzREvy8~jhSWG7W02NN(y9&Q-6Tu=_tQMn_ zEC$np53tF-?)o?famt7Ja?XSqV&!SL*za{0-pKu*+^xEX%iXM-IbvZiJRv+OoC(*2 z>%tA;rf^HRea-azf{PC-F}R}K6Jkk>{IH$jw4`-Ehos@;zLsIS()$u(r2|tH>41d| zBn^HG;ZxZ`H1<#!yGX`9!bmwlR0d659O>dQlGQ%KSRdT1ck0+4)0#g+p~0Uc8J7rO n$_=7%i^8}=G7`eK@_=YOqA=c(43FSD-B$1Q?^{YN|Iqv|@t16; delta 85015 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 - - + + From be878795aa67acb486113eb4d9cdf7154f4d8408 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Tue, 22 Mar 2011 17:36:01 -0400 Subject: [PATCH 48/95] Typo fix --- bin/Mono.Data.Sqlite.dll.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/Mono.Data.Sqlite.dll.config b/bin/Mono.Data.Sqlite.dll.config index 456461ea44..de0c17dbee 100644 --- a/bin/Mono.Data.Sqlite.dll.config +++ b/bin/Mono.Data.Sqlite.dll.config @@ -1,4 +1,4 @@ - + From b34743e5fe6b0783caa62c014ff86e2ec76c8184 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Tue, 22 Mar 2011 23:47:36 +0000 Subject: [PATCH 49/95] Add an initial confidence-building TestAddObject() for prim counts. --- .../World/Land/LandManagementModule.cs | 29 +++---- .../CoreModules/World/Land/PrimCountModule.cs | 23 ++++-- .../World/Land/Tests/PrimCountModuleTests.cs | 75 +++++++++++++++++++ OpenSim/Region/Framework/Scenes/SceneGraph.cs | 13 ++-- prebuild.xml | 1 + 5 files changed, 116 insertions(+), 25 deletions(-) create mode 100644 OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 98ba8c3c8c..514be4f498 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -306,6 +306,9 @@ namespace OpenSim.Region.CoreModules.World.Land /// The parcel created. protected ILandObject CreateDefaultParcel() { +// m_log.DebugFormat( +// "[LAND MANAGEMENT MODULE]: Creating default parcel for region {0}", m_scene.RegionInfo.RegionName); + ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene); fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; @@ -579,7 +582,7 @@ namespace OpenSim.Region.CoreModules.World.Land } else { - m_log.WarnFormat("[LAND]: Invalid local land ID {0}", landLocalID); + m_log.WarnFormat("[LAND MANAGEMENT MODULE]: Invalid local land ID {0}", landLocalID); } } @@ -630,7 +633,7 @@ namespace OpenSim.Region.CoreModules.World.Land { if (m_landIDList[x, y] == local_id) { - m_log.WarnFormat("[LAND]: Not removing land object {0}; still being used at {1}, {2}", + m_log.WarnFormat("[LAND MANAGEMENT MODULE]: Not removing land object {0}; still being used at {1}, {2}", local_id, x, y); return; //throw new Exception("Could not remove land object. Still being used at " + x + ", " + y); @@ -1198,7 +1201,7 @@ namespace OpenSim.Region.CoreModules.World.Land } else { - m_log.WarnFormat("[PARCEL]: Invalid land object {0} passed for parcel object owner request", local_id); + m_log.WarnFormat("[LAND MANAGEMENT MODULE]: Invalid land object {0} passed for parcel object owner request", local_id); } } @@ -1426,7 +1429,7 @@ namespace OpenSim.Region.CoreModules.World.Land { IClientAPI client; if (! m_scene.TryGetClient(agentID, out client)) { - m_log.WarnFormat("[LAND] unable to retrieve IClientAPI for {0}", agentID.ToString()); + m_log.WarnFormat("[LAND MANAGEMENT MODULE]: Unable to retrieve IClientAPI for {0}", agentID); return LLSDHelpers.SerialiseLLSDReply(new LLSDEmpty()); } @@ -1475,7 +1478,7 @@ namespace OpenSim.Region.CoreModules.World.Land } else { - m_log.WarnFormat("[LAND] unable to find parcelID {0}", parcelID); + m_log.WarnFormat("[LAND MANAGEMENT MODULE]: Unable to find parcelID {0}", parcelID); } return LLSDHelpers.SerialiseLLSDReply(new LLSDEmpty()); } @@ -1533,17 +1536,17 @@ namespace OpenSim.Region.CoreModules.World.Land } catch (LLSD.LLSDParseException e) { - m_log.ErrorFormat("[LAND] Fetch error: {0}", e.Message); - m_log.ErrorFormat("[LAND] ... in request {0}", request); + m_log.ErrorFormat("[LAND MANAGEMENT MODULE]: Fetch error: {0}", e.Message); + m_log.ErrorFormat("[LAND MANAGEMENT MODULE]: ... in request {0}", request); } - catch(InvalidCastException) + catch (InvalidCastException) { - m_log.ErrorFormat("[LAND] Wrong type in request {0}", request); + m_log.ErrorFormat("[LAND MANAGEMENT MODULE]: Wrong type in request {0}", request); } LLSDRemoteParcelResponse response = new LLSDRemoteParcelResponse(); response.parcel_id = parcelID; - m_log.DebugFormat("[LAND] got parcelID {0}", parcelID); + m_log.DebugFormat("[LAND MANAGEMENT MODULE]: Got parcelID {0}", parcelID); return LLSDHelpers.SerialiseLLSDReply(response); } @@ -1564,7 +1567,7 @@ namespace OpenSim.Region.CoreModules.World.Land ExtendedLandData extLandData = new ExtendedLandData(); Util.ParseFakeParcelID(parcel, out extLandData.RegionHandle, out extLandData.X, out extLandData.Y); - m_log.DebugFormat("[LAND] got parcelinfo request for regionHandle {0}, x/y {1}/{2}", + m_log.DebugFormat("[LAND MANAGEMENT MODULE]: Got parcelinfo request for regionHandle {0}, x/y {1}/{2}", extLandData.RegionHandle, extLandData.X, extLandData.Y); // for this region or for somewhere else? @@ -1605,7 +1608,7 @@ namespace OpenSim.Region.CoreModules.World.Land info = m_scene.GridService.GetRegionByPosition(m_scene.RegionInfo.ScopeID, (int)x, (int)y); } // we need to transfer the fake parcelID, not the one in landData, so the viewer can match it to the landmark. - m_log.DebugFormat("[LAND] got parcelinfo for parcel {0} in region {1}; sending...", + m_log.DebugFormat("[LAND MANAGEMENT MODULE]: got parcelinfo for parcel {0} in region {1}; sending...", data.LandData.Name, data.RegionHandle); // HACK for now RegionInfo r = new RegionInfo(); @@ -1616,7 +1619,7 @@ namespace OpenSim.Region.CoreModules.World.Land remoteClient.SendParcelInfo(r, data.LandData, parcelID, data.X, data.Y); } else - m_log.Debug("[LAND] got no parcelinfo; not sending"); + m_log.Debug("[LAND MANAGEMENT MODULE]: got no parcelinfo; not sending"); } public void setParcelOtherCleanTime(IClientAPI remoteClient, int localID, int otherCleanTime) diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 34ef67f10b..c71264cf18 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -51,8 +51,8 @@ namespace OpenSim.Region.CoreModules.World.Land public class PrimCountModule : IPrimCountModule, INonSharedRegionModule { - private static readonly ILog m_log = - LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); +// private static readonly ILog m_log = +// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private Scene m_Scene; private Dictionary m_PrimCounts = @@ -64,10 +64,16 @@ namespace OpenSim.Region.CoreModules.World.Land private Dictionary m_ParcelCounts = new Dictionary(); - // For now, a simple simwide taint to get this up. Later parcel based - // taint to allow recounting a parcel if only ownership has changed - // without recounting the whole sim. + + /// + /// For now, a simple simwide taint to get this up. Later parcel based + /// taint to allow recounting a parcel if only ownership has changed + /// without recounting the whole sim. + /// + /// We start out tainted so that the first get call resets the various prim counts. + /// private bool m_Tainted = true; + private Object m_TaintLock = new Object(); public Type ReplaceableInterface @@ -156,6 +162,8 @@ namespace OpenSim.Region.CoreModules.World.Land // NOTE: Call under Taint Lock private void AddObject(SceneObjectGroup obj) { +// m_log.DebugFormat("[PRIM COUNT MODULE]: Adding object {0} to prim count", obj.Name); + if (obj.IsAttachment) return; if (((obj.RootPart.Flags & PrimFlags.TemporaryOnRez) != 0)) @@ -299,18 +307,21 @@ namespace OpenSim.Region.CoreModules.World.Land // NOTE: This method MUST be called while holding the taint lock! private void Recount() { +// m_log.DebugFormat("[PRIM COUNT MODULE]: Recounting prims on {0}", m_Scene.RegionInfo.RegionName); + m_OwnerMap.Clear(); m_SimwideCounts.Clear(); m_ParcelCounts.Clear(); List land = m_Scene.LandChannel.AllParcels(); - + foreach (ILandObject l in land) { LandData landData = l.LandData; m_OwnerMap[landData.GlobalID] = landData.OwnerID; m_SimwideCounts[landData.OwnerID] = 0; +// m_log.DebugFormat("[PRIM COUNT MODULE]: Adding parcel count for {0}", landData.GlobalID); m_ParcelCounts[landData.GlobalID] = new ParcelCounts(); } diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs new file mode 100644 index 0000000000..402965fcf7 --- /dev/null +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -0,0 +1,75 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Generic; +using System.Reflection; +using log4net.Config; +using NUnit.Framework; +using OpenMetaverse; +using OpenMetaverse.Assets; +using OpenSim.Framework; +using OpenSim.Region.Framework.Interfaces; +using OpenSim.Region.Framework.Scenes; +using OpenSim.Tests.Common; +using OpenSim.Tests.Common.Mock; +using OpenSim.Tests.Common.Setup; + +namespace OpenSim.Region.CoreModules.World.Land.Tests +{ + [TestFixture] + public class PrimCountModuleTests + { + [Test] + public void TestAddObject() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + PrimCountModule pcm = new PrimCountModule(); + LandManagementModule lmm = new LandManagementModule(); + Scene scene = SceneSetupHelpers.SetupScene(); + SceneSetupHelpers.SetupSceneModules(scene, lmm, pcm); + + ILandObject lo = new LandObject(UUID.Zero, false, scene); + lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); + lmm.AddLandObject(lo); + //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); + + string objName = "obj1"; + UUID objUuid = new UUID("00000000-0000-0000-0000-000000000001"); + + SceneObjectPart part + = new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) + { Name = objName, UUID = objUuid }; + + scene.AddNewSceneObject(new SceneObjectGroup(part), false); + + Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(1)); + } + } +} \ No newline at end of file diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 734ba22e9c..eca2786c97 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -627,7 +627,7 @@ namespace OpenSim.Region.Framework.Scenes if (!Entities.Remove(agentID)) { m_log.WarnFormat( - "[SCENE]: Tried to remove non-existent scene presence with agent ID {0} from scene Entities list", + "[SCENEGRAPH]: Tried to remove non-existent scene presence with agent ID {0} from scene Entities list", agentID); } @@ -650,7 +650,7 @@ namespace OpenSim.Region.Framework.Scenes } else { - m_log.WarnFormat("[SCENE]: Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID); + m_log.WarnFormat("[SCENEGRAPH]: Tried to remove non-existent scene presence with agent ID {0} from scene ScenePresences list", agentID); } } } @@ -1079,7 +1079,8 @@ namespace OpenSim.Region.Framework.Scenes catch (Exception e) { // Catch it and move on. This includes situations where splist has inconsistent info - m_log.WarnFormat("[SCENE]: Problem processing action in ForEachSOG: ", e.ToString()); + m_log.WarnFormat( + "[SCENEGRAPH]: Problem processing action in ForEachSOG: {0} {1}", e.Message, e.StackTrace); } } } @@ -1103,8 +1104,8 @@ namespace OpenSim.Region.Framework.Scenes } catch (Exception e) { - m_log.Info("[BUG] in " + m_parentScene.RegionInfo.RegionName + ": " + e.ToString()); - m_log.Info("[BUG] Stack Trace: " + e.StackTrace); + m_log.Info("[SCENEGRAPH]: Error in " + m_parentScene.RegionInfo.RegionName + ": " + e.ToString()); + m_log.Info("[SCENEGRAPH]: Stack Trace: " + e.StackTrace); } }); Parallel.ForEach(GetScenePresences(), protectedAction); @@ -1119,7 +1120,7 @@ namespace OpenSim.Region.Framework.Scenes } catch (Exception e) { - m_log.Info("[BUG] in " + m_parentScene.RegionInfo.RegionName + ": " + e.ToString()); + m_log.Error("[SCENEGRAPH]: Error in " + m_parentScene.RegionInfo.RegionName + ": " + e.ToString()); } } } diff --git a/prebuild.xml b/prebuild.xml index 910cb31bef..d564341901 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -2927,6 +2927,7 @@ + From 9c979dd0fc468ec5b15bb9b3db2eae55db53c0bc Mon Sep 17 00:00:00 2001 From: Marck Date: Wed, 23 Mar 2011 08:35:39 +0100 Subject: [PATCH 50/95] Fix a typo in the SQLite DLL config and amend the instructions for running on Linux. Under Linux (and probably also under OSX), the operating system must be able to find the new SQLite DLL in the library search path. --- README.txt | 2 +- bin/Mono.Data.Sqlite.dll.config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.txt b/README.txt index 391a6599d1..8d925b5df6 100644 --- a/README.txt +++ b/README.txt @@ -44,7 +44,7 @@ for more information. To run OpenSim, from the unpacked distribution type: * cd bin - * mono OpenSim.exe + * LD_LIBRARY_PATH=. mono OpenSim.exe Now see the "Configuring OpenSim" section diff --git a/bin/Mono.Data.Sqlite.dll.config b/bin/Mono.Data.Sqlite.dll.config index de0c17dbee..0c5e9412f2 100644 --- a/bin/Mono.Data.Sqlite.dll.config +++ b/bin/Mono.Data.Sqlite.dll.config @@ -1,4 +1,4 @@ - + From d011896341d09ce6c10a801264e663b6a19f0b48 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 21:50:56 +0000 Subject: [PATCH 51/95] Add generic EventManager.OnObjectAddedToScene and get PrimCountModule to listen for that rather than EventManager.OnParcelPrimCountAdd OnParcelPrimCountAdd had the wrong semantics for the PrimCountModule - it was invoked for every entity in the scene, not just new ones, which would screw up the untainted count. Extend automated test for this scenario. --- .../World/Land/LandManagementModule.cs | 4 +++ .../CoreModules/World/Land/PrimCountModule.cs | 10 +++++-- .../World/Land/Tests/PrimCountModuleTests.cs | 2 ++ .../Region/Framework/Scenes/EventManager.cs | 30 +++++++++++++++++++ OpenSim/Region/Framework/Scenes/Scene.cs | 18 +++++++++-- 5 files changed, 59 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 514be4f498..4d887a816e 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -854,6 +854,10 @@ namespace OpenSim.Region.CoreModules.World.Land public void EventManagerOnParcelPrimCountUpdate() { +// m_log.DebugFormat( +// "[LAND MANAGEMENT MODULE]: Triggered EventManagerOnParcelPrimCountUpdate() for {0}", +// m_scene.RegionInfo.RegionName); + ResetAllLandPrimCounts(); EntityBase[] entities = m_scene.Entities.GetEntities(); foreach (EntityBase obj in entities) diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index c71264cf18..5371aaf85c 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -89,8 +89,7 @@ namespace OpenSim.Region.CoreModules.World.Land { m_Scene = scene; - m_Scene.EventManager.OnParcelPrimCountAdd += - OnParcelPrimCountAdd; + m_Scene.EventManager.OnObjectAddedToScene += OnParcelPrimCountAdd; m_Scene.EventManager.OnObjectBeingRemovedFromScene += OnObjectBeingRemovedFromScene; m_Scene.EventManager.OnParcelPrimCountTainted += @@ -116,6 +115,7 @@ namespace OpenSim.Region.CoreModules.World.Land private void OnParcelPrimCountAdd(SceneObjectGroup obj) { + Console.WriteLine("WIBBLE"); // If we're tainted already, don't bother to add. The next // access will cause a recount anyway lock (m_TaintLock) @@ -172,6 +172,10 @@ namespace OpenSim.Region.CoreModules.World.Land Vector3 pos = obj.AbsolutePosition; ILandObject landObject = m_Scene.LandChannel.GetLandObject(pos.X, pos.Y); LandData landData = landObject.LandData; + +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: Object {0} is owned by {1} over land owned by {2}", +// obj.Name, obj.OwnerID, landData.OwnerID); ParcelCounts parcelCounts; if (m_ParcelCounts.TryGetValue(landData.GlobalID, out parcelCounts)) @@ -228,6 +232,8 @@ namespace OpenSim.Region.CoreModules.World.Land public int GetOwnerCount(UUID parcelID) { +// m_log.DebugFormat("[PRIM COUNT MODULE]: GetOwnerCount for {0}", parcelID); + lock (m_TaintLock) { if (m_Tainted) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 402965fcf7..fd332ed50c 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -67,6 +67,8 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests = new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) { Name = objName, UUID = objUuid }; + Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(0)); + scene.AddNewSceneObject(new SceneObjectGroup(part), false); Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(1)); diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index c321a15866..fd6253533a 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs @@ -242,7 +242,15 @@ namespace OpenSim.Region.Framework.Scenes public delegate void GetScriptRunning(IClientAPI controllingClient, UUID objectID, UUID itemID); public event EstateToolsSunUpdate OnEstateToolsSunUpdate; + + ///

+ /// Triggered when an object is added to the scene. + /// + public event Action OnObjectAddedToScene; + /// + /// Triggered when an object is removed from the scene. + /// public delegate void ObjectBeingRemovedFromScene(SceneObjectGroup obj); public event ObjectBeingRemovedFromScene OnObjectBeingRemovedFromScene; @@ -345,6 +353,7 @@ namespace OpenSim.Region.Framework.Scenes public delegate void Attach(uint localID, UUID itemID, UUID avatarID); public event Attach OnAttach; + /// /// Called immediately after an object is loaded from storage. /// @@ -800,6 +809,27 @@ namespace OpenSim.Region.Framework.Scenes } } + public void TriggerObjectAddedToScene(SceneObjectGroup obj) + { + Action handler = OnObjectAddedToScene; + if (handler != null) + { + foreach (Action d in handler.GetInvocationList()) + { + try + { + d(obj); + } + catch (Exception e) + { + m_log.ErrorFormat( + "[EVENT MANAGER]: Delegate for TriggerObjectAddedToScene failed - continuing. {0} {1}", + e.Message, e.StackTrace); + } + } + } + } + public void TriggerObjectBeingRemovedFromScene(SceneObjectGroup obj) { ObjectBeingRemovedFromScene handlerObjectBeingRemovedFromScene = OnObjectBeingRemovedFromScene; diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 4d2519d694..d407a6f033 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -1956,8 +1956,14 @@ namespace OpenSim.Region.Framework.Scenes /// If false, it is left to the caller to schedule the update /// public bool AddNewSceneObject(SceneObjectGroup sceneObject, bool attachToBackup, bool sendClientUpdates) - { - return m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup, sendClientUpdates); + { + if (m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup, sendClientUpdates)) + { + EventManager.TriggerObjectAddedToScene(sceneObject); + return true; + } + + return false; } /// @@ -1974,7 +1980,13 @@ namespace OpenSim.Region.Framework.Scenes public bool AddNewSceneObject( SceneObjectGroup sceneObject, bool attachToBackup, Vector3 pos, Quaternion rot, Vector3 vel) { - return m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup, pos, rot, vel); + if (m_sceneGraph.AddNewSceneObject(sceneObject, attachToBackup, pos, rot, vel)) + { + EventManager.TriggerObjectAddedToScene(sceneObject); + return true; + } + + return false; } /// From 67cafbd33aeb1038f22aa775cbde96b4c89dd770 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 21:54:02 +0000 Subject: [PATCH 52/95] remove a rogue Console.WriteLine() from the last commit. --- OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 5371aaf85c..46c7eedb1f 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -115,7 +115,6 @@ namespace OpenSim.Region.CoreModules.World.Land private void OnParcelPrimCountAdd(SceneObjectGroup obj) { - Console.WriteLine("WIBBLE"); // If we're tainted already, don't bother to add. The next // access will cause a recount anyway lock (m_TaintLock) From 08c3cd6b369e2bb8dfa08709c2ffddaea4cdbaa5 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 22:04:14 +0000 Subject: [PATCH 53/95] Add method doc to the Get*() methods on PrimCountModule --- .../CoreModules/World/Land/PrimCountModule.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 46c7eedb1f..ae85798172 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -229,6 +229,12 @@ namespace OpenSim.Region.CoreModules.World.Land return primCounts; } + + /// + /// Get the number of prims on the parcel that are owned by the parcel owner. + /// + /// + /// public int GetOwnerCount(UUID parcelID) { // m_log.DebugFormat("[PRIM COUNT MODULE]: GetOwnerCount for {0}", parcelID); @@ -245,6 +251,11 @@ namespace OpenSim.Region.CoreModules.World.Land return 0; } + /// + /// Get the number of prims on the parcel that have been set to the group that owns the parcel. + /// + /// + /// public int GetGroupCount(UUID parcelID) { lock (m_TaintLock) @@ -259,6 +270,11 @@ namespace OpenSim.Region.CoreModules.World.Land return 0; } + /// + /// Get the number of prims on the parcel that are not owned by the parcel owner or set to the parcel group. + /// + /// + /// public int GetOthersCount(UUID parcelID) { lock (m_TaintLock) @@ -273,6 +289,11 @@ namespace OpenSim.Region.CoreModules.World.Land return 0; } + /// + /// Get the number of prims that are in the entire simulator for the owner of this parcel. + /// + /// + /// public int GetSimulatorCount(UUID parcelID) { lock (m_TaintLock) @@ -291,6 +312,12 @@ namespace OpenSim.Region.CoreModules.World.Land return 0; } + /// + /// Get the number of prims that a particular user owns on this parcel. + /// + /// + /// + /// public int GetUserCount(UUID parcelID, UUID userID) { lock (m_TaintLock) From 654aa7abeb497e024c87e2ef8d610ba3ca512c3e Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 22:12:20 +0000 Subject: [PATCH 54/95] Extend simple PCM add object test to check all counts --- .../World/Land/Tests/PrimCountModuleTests.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index fd332ed50c..88c814edc5 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -55,6 +55,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Scene scene = SceneSetupHelpers.SetupScene(); SceneSetupHelpers.SetupSceneModules(scene, lmm, pcm); + UUID dummyUserId = new UUID("99999999-9999-9999-9999-999999999999"); ILandObject lo = new LandObject(UUID.Zero, false, scene); lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); lmm.AddLandObject(lo); @@ -68,10 +69,20 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests { Name = objName, UUID = objUuid }; Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, UUID.Zero), Is.EqualTo(0)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); + Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(0)); scene.AddNewSceneObject(new SceneObjectGroup(part), false); Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(1)); + Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, UUID.Zero), Is.EqualTo(1)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); + Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(1)); } } } \ No newline at end of file From f1f4985ab6fc98daf2263f72397fe7db79b20ecd Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 22:14:04 +0000 Subject: [PATCH 55/95] user a non UUID.Zero user in pcm test to avoid any special treatment of UUID.Zero --- .../CoreModules/World/Land/Tests/PrimCountModuleTests.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 88c814edc5..639d78121c 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -55,8 +55,9 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Scene scene = SceneSetupHelpers.SetupScene(); SceneSetupHelpers.SetupSceneModules(scene, lmm, pcm); + UUID userId = new UUID("00000000-0000-0000-0000-000000000010"); UUID dummyUserId = new UUID("99999999-9999-9999-9999-999999999999"); - ILandObject lo = new LandObject(UUID.Zero, false, scene); + ILandObject lo = new LandObject(userId, false, scene); lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); lmm.AddLandObject(lo); //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); @@ -65,13 +66,13 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests UUID objUuid = new UUID("00000000-0000-0000-0000-000000000001"); SceneObjectPart part - = new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) + = new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) { Name = objName, UUID = objUuid }; Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(0)); Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, UUID.Zero), Is.EqualTo(0)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(0)); Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(0)); @@ -80,7 +81,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(1)); Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, UUID.Zero), Is.EqualTo(1)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(1)); Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(1)); } From 88673c86a4b9cde729c62fbdc92b8c9076c54230 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 22:17:47 +0000 Subject: [PATCH 56/95] use a 3 part object for the pcm test rather than a 1 part, for improved test coverage --- .../World/Land/Tests/PrimCountModuleTests.cs | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 639d78121c..8c1b6a3370 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -61,13 +61,17 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); lmm.AddLandObject(lo); //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); - - string objName = "obj1"; - UUID objUuid = new UUID("00000000-0000-0000-0000-000000000001"); - - SceneObjectPart part + + SceneObjectPart part1 = new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) - { Name = objName, UUID = objUuid }; + { Name = "obj1", UUID = new UUID("00000000-0000-0000-0000-000000000001") }; + SceneObjectGroup sog = new SceneObjectGroup(part1); + sog.AddPart( + new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) + { Name = "obj2", UUID = new UUID("00000000-0000-0000-0000-000000000002") }); + sog.AddPart( + new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) + { Name = "obj3", UUID = new UUID("00000000-0000-0000-0000-000000000003") }); Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(0)); Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); @@ -76,14 +80,14 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(0)); - scene.AddNewSceneObject(new SceneObjectGroup(part), false); + scene.AddNewSceneObject(sog, false); - Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(1)); + Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(3)); Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(1)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(3)); Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); - Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(1)); + Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(3)); } } } \ No newline at end of file From de88227bc486788197b3a7c842c8b60f82b0a29b Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 22:29:27 +0000 Subject: [PATCH 57/95] refactor: simplify part of AddSceneObject() test setup by moving sog construction into SceneSetupHelpers.CreateSceneObject() --- .../World/Land/Tests/PrimCountModuleTests.cs | 11 +------ .../Tests/Common/Setup/SceneSetupHelpers.cs | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 8c1b6a3370..72f74fa5c9 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -62,16 +62,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests lmm.AddLandObject(lo); //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); - SceneObjectPart part1 - = new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) - { Name = "obj1", UUID = new UUID("00000000-0000-0000-0000-000000000001") }; - SceneObjectGroup sog = new SceneObjectGroup(part1); - sog.AddPart( - new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) - { Name = "obj2", UUID = new UUID("00000000-0000-0000-0000-000000000002") }); - sog.AddPart( - new SceneObjectPart(userId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) - { Name = "obj3", UUID = new UUID("00000000-0000-0000-0000-000000000003") }); + SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, userId); Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(0)); Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index aa4b285981..b7b7383bfc 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs @@ -465,5 +465,37 @@ namespace OpenSim.Tests.Common.Setup return part; } + + /// + /// Create a scene object but do not add it to the scene. + /// + /// + /// UUID always starts at 00000000-0000-0000-0000-000000000001 + /// + /// The number of parts that should be in the scene object + /// + /// + public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId) + { + SceneObjectPart rootPart + = new SceneObjectPart(ownerId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) + { Name = "part1", UUID = new UUID("00000000-0000-0000-0000-000000000001") }; + SceneObjectGroup sog = new SceneObjectGroup(rootPart); + + if (parts > 1) + { + for (int i = 2; i <= parts; i++) + { + sog.AddPart( + new SceneObjectPart(ownerId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) + { + Name = string.Format("obj{0}", i), + UUID = new UUID(string.Format("00000000-0000-0000-0000-{0:D12}", i)) + }); + } + } + + return sog; + } } } From d5c7ae5c6b55ae794f630ae55a100b19eef2362c Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 22:40:23 +0000 Subject: [PATCH 58/95] refactor common sop setup parts into a single method --- .../Tests/Common/Setup/SceneSetupHelpers.cs | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index b7b7383bfc..87b63894f2 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs @@ -454,9 +454,7 @@ namespace OpenSim.Tests.Common.Setup /// public static SceneObjectPart AddSceneObject(Scene scene, string name) { - SceneObjectPart part - = new SceneObjectPart(UUID.Zero, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero); - part.Name = name; + SceneObjectPart part = CreateSceneObjectPart(name, UUID.Random(), UUID.Zero); //part.UpdatePrimFlags(false, false, true); //part.ObjectFlags |= (uint)PrimFlags.Phantom; @@ -466,6 +464,20 @@ namespace OpenSim.Tests.Common.Setup return part; } + /// + /// Create a scene object part. + /// + /// + /// + /// + /// + public static SceneObjectPart CreateSceneObjectPart(string name, UUID id, UUID ownerId) + { + return new SceneObjectPart( + ownerId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) + { Name = name, UUID = id }; + } + /// /// Create a scene object but do not add it to the scene. /// @@ -477,25 +489,19 @@ namespace OpenSim.Tests.Common.Setup /// public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId) { - SceneObjectPart rootPart - = new SceneObjectPart(ownerId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) - { Name = "part1", UUID = new UUID("00000000-0000-0000-0000-000000000001") }; - SceneObjectGroup sog = new SceneObjectGroup(rootPart); + SceneObjectGroup sog + = new SceneObjectGroup( + CreateSceneObjectPart("part1", new UUID("00000000-0000-0000-0000-000000000001"), ownerId)); if (parts > 1) - { for (int i = 2; i <= parts; i++) - { sog.AddPart( - new SceneObjectPart(ownerId, PrimitiveBaseShape.Default, Vector3.Zero, Quaternion.Identity, Vector3.Zero) - { - Name = string.Format("obj{0}", i), - UUID = new UUID(string.Format("00000000-0000-0000-0000-{0:D12}", i)) - }); - } - } + CreateSceneObjectPart( + string.Format("obj{0}", i), + new UUID(string.Format("00000000-0000-0000-0000-{0:D12}", i)), + ownerId)); return sog; } } -} +} \ No newline at end of file From ebbe3afaf15fa07f4a8d1c2db8795065b852ec8d Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 23:14:55 +0000 Subject: [PATCH 59/95] Add PrimCountModuleTests.TestRemoveOwnerObject(). Also adds SceneSetupHelpers methods to easily create sogs with different part UUIDs --- .../World/Land/Tests/PrimCountModuleTests.cs | 39 ++++++++++++++++++- .../Tests/Common/Setup/SceneSetupHelpers.cs | 27 ++++++++++--- 2 files changed, 60 insertions(+), 6 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 72f74fa5c9..e6b8627552 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -44,8 +44,11 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests [TestFixture] public class PrimCountModuleTests { + /// + /// Test count after a parcel owner owned object is added. + /// [Test] - public void TestAddObject() + public void TestAddOwnerObject() { TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); @@ -80,5 +83,39 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(3)); } + + /// + /// Test count after a parcel owner owned object is removed. + /// + [Test] + public void TestRemoveOwnerObject() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + PrimCountModule pcm = new PrimCountModule(); + LandManagementModule lmm = new LandManagementModule(); + Scene scene = SceneSetupHelpers.SetupScene(); + SceneSetupHelpers.SetupSceneModules(scene, lmm, pcm); + + UUID userId = new UUID("00000000-0000-0000-0000-000000000010"); + UUID dummyUserId = new UUID("99999999-9999-9999-9999-999999999999"); + ILandObject lo = new LandObject(userId, false, scene); + lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); + lmm.AddLandObject(lo); + //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); + + scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, userId, 0x1), false); + SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, userId, 0x10); + scene.AddNewSceneObject(sogToDelete, false); + scene.DeleteSceneObject(sogToDelete, false); + + Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(1)); + Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(1)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); + Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(1)); + } } } \ No newline at end of file diff --git a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs index 87b63894f2..57850c1cc7 100644 --- a/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs +++ b/OpenSim/Tests/Common/Setup/SceneSetupHelpers.cs @@ -488,20 +488,37 @@ namespace OpenSim.Tests.Common.Setup /// /// public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId) - { + { + return CreateSceneObject(parts, ownerId, 0x1); + } + + /// + /// Create a scene object but do not add it to the scene. + /// + /// The number of parts that should be in the scene object + /// + /// + /// The hexadecimal last part of the UUID for parts created. A UUID of the form "00000000-0000-0000-0000-{0:XD12}" + /// will be given to the root part, and incremented for each part thereafter. + /// + /// + public static SceneObjectGroup CreateSceneObject(int parts, UUID ownerId, int uuidTail) + { + string rawSogId = string.Format("00000000-0000-0000-0000-{0:X12}", uuidTail); + SceneObjectGroup sog = new SceneObjectGroup( - CreateSceneObjectPart("part1", new UUID("00000000-0000-0000-0000-000000000001"), ownerId)); + CreateSceneObjectPart("part0", new UUID(rawSogId), ownerId)); if (parts > 1) - for (int i = 2; i <= parts; i++) + for (int i = 1; i < parts; i++) sog.AddPart( CreateSceneObjectPart( string.Format("obj{0}", i), - new UUID(string.Format("00000000-0000-0000-0000-{0:D12}", i)), + new UUID(string.Format("00000000-0000-0000-0000-{0:X12}", uuidTail + i)), ownerId)); return sog; - } + } } } \ No newline at end of file From f001aab8aa5f3ceebe259ff89673c7757b16c637 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 23:19:15 +0000 Subject: [PATCH 60/95] extend TestAddOwnerObject() to add a second object --- .../World/Land/Tests/PrimCountModuleTests.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index e6b8627552..a0e7e4c1ae 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -58,15 +58,13 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Scene scene = SceneSetupHelpers.SetupScene(); SceneSetupHelpers.SetupSceneModules(scene, lmm, pcm); - UUID userId = new UUID("00000000-0000-0000-0000-000000000010"); + UUID userId = new UUID("00000000-0000-0000-0000-100000000000"); UUID dummyUserId = new UUID("99999999-9999-9999-9999-999999999999"); ILandObject lo = new LandObject(userId, false, scene); lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); lmm.AddLandObject(lo); //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); - - SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, userId); - + Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(0)); Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); @@ -74,6 +72,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(0)); + SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, userId, 0x01); scene.AddNewSceneObject(sog, false); Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(3)); @@ -82,6 +81,17 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(3)); Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(3)); + + // Add a second object and retest + SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, userId, 0x10); + scene.AddNewSceneObject(sog2, false); + + Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(5)); + Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(5)); + Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); + Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(5)); } /// From eaa37d15f26adda05cbcc44404b586551d86e983 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 23 Mar 2011 23:28:10 +0000 Subject: [PATCH 61/95] factor out common test setup code in PCM tests --- .../World/Land/Tests/PrimCountModuleTests.cs | 110 +++++++++--------- 1 file changed, 53 insertions(+), 57 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index a0e7e4c1ae..45e579e1b7 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -44,6 +44,26 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests [TestFixture] public class PrimCountModuleTests { + protected UUID m_userId = new UUID("00000000-0000-0000-0000-100000000000"); + protected UUID m_dummyUserId = new UUID("99999999-9999-9999-9999-999999999999"); + protected TestScene m_scene; + protected PrimCountModule m_pcm; + protected ILandObject m_lo; + + [SetUp] + public void SetUp() + { + m_pcm = new PrimCountModule(); + LandManagementModule lmm = new LandManagementModule(); + m_scene = SceneSetupHelpers.SetupScene(); + SceneSetupHelpers.SetupSceneModules(m_scene, lmm, m_pcm); + + m_lo = new LandObject(m_userId, false, m_scene); + m_lo.SetLandBitmap(m_lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); + lmm.AddLandObject(m_lo); + //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); + } + /// /// Test count after a parcel owner owned object is added. /// @@ -51,47 +71,35 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests public void TestAddOwnerObject() { TestHelper.InMethod(); -// log4net.Config.XmlConfigurator.Configure(); - - PrimCountModule pcm = new PrimCountModule(); - LandManagementModule lmm = new LandManagementModule(); - Scene scene = SceneSetupHelpers.SetupScene(); - SceneSetupHelpers.SetupSceneModules(scene, lmm, pcm); - - UUID userId = new UUID("00000000-0000-0000-0000-100000000000"); - UUID dummyUserId = new UUID("99999999-9999-9999-9999-999999999999"); - ILandObject lo = new LandObject(userId, false, scene); - lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); - lmm.AddLandObject(lo); - //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); +// log4net.Config.XmlConfigurator.Configure(); - Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(0)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); - Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetOwnerCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetGroupCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetOthersCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_userId), Is.EqualTo(0)); + Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_dummyUserId), Is.EqualTo(0)); + Assert.That(m_pcm.GetSimulatorCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, userId, 0x01); - scene.AddNewSceneObject(sog, false); + SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); + m_scene.AddNewSceneObject(sog, false); - Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(3)); - Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(3)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); - Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(3)); + Assert.That(m_pcm.GetOwnerCount(m_lo.LandData.GlobalID), Is.EqualTo(3)); + Assert.That(m_pcm.GetGroupCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetOthersCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_userId), Is.EqualTo(3)); + Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_dummyUserId), Is.EqualTo(0)); + Assert.That(m_pcm.GetSimulatorCount(m_lo.LandData.GlobalID), Is.EqualTo(3)); // Add a second object and retest - SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, userId, 0x10); - scene.AddNewSceneObject(sog2, false); + SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, 0x10); + m_scene.AddNewSceneObject(sog2, false); - Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(5)); - Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(5)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); - Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(5)); + Assert.That(m_pcm.GetOwnerCount(m_lo.LandData.GlobalID), Is.EqualTo(5)); + Assert.That(m_pcm.GetGroupCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetOthersCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_userId), Is.EqualTo(5)); + Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_dummyUserId), Is.EqualTo(0)); + Assert.That(m_pcm.GetSimulatorCount(m_lo.LandData.GlobalID), Is.EqualTo(5)); } /// @@ -103,29 +111,17 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); - PrimCountModule pcm = new PrimCountModule(); - LandManagementModule lmm = new LandManagementModule(); - Scene scene = SceneSetupHelpers.SetupScene(); - SceneSetupHelpers.SetupSceneModules(scene, lmm, pcm); + m_scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, m_userId, 0x1), false); + SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x10); + m_scene.AddNewSceneObject(sogToDelete, false); + m_scene.DeleteSceneObject(sogToDelete, false); - UUID userId = new UUID("00000000-0000-0000-0000-000000000010"); - UUID dummyUserId = new UUID("99999999-9999-9999-9999-999999999999"); - ILandObject lo = new LandObject(userId, false, scene); - lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); - lmm.AddLandObject(lo); - //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); - - scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, userId, 0x1), false); - SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, userId, 0x10); - scene.AddNewSceneObject(sogToDelete, false); - scene.DeleteSceneObject(sogToDelete, false); - - Assert.That(pcm.GetOwnerCount(lo.LandData.GlobalID), Is.EqualTo(1)); - Assert.That(pcm.GetGroupCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetOthersCount(lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, userId), Is.EqualTo(1)); - Assert.That(pcm.GetUserCount(lo.LandData.GlobalID, dummyUserId), Is.EqualTo(0)); - Assert.That(pcm.GetSimulatorCount(lo.LandData.GlobalID), Is.EqualTo(1)); + Assert.That(m_pcm.GetOwnerCount(m_lo.LandData.GlobalID), Is.EqualTo(1)); + Assert.That(m_pcm.GetGroupCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetOthersCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_userId), Is.EqualTo(1)); + Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_dummyUserId), Is.EqualTo(0)); + Assert.That(m_pcm.GetSimulatorCount(m_lo.LandData.GlobalID), Is.EqualTo(1)); } } } \ No newline at end of file From 7f5019b0f23959ca049f87b596bc2bd47725eb0d Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Fri, 25 Mar 2011 21:47:54 +0000 Subject: [PATCH 62/95] Add ILandObject.IPrimCounts for the new prim count module. Not functional yet, but tests now act against this object rather than interrogating the module directly --- .../World/Land/LandManagementModule.cs | 12 +++- .../CoreModules/World/Land/LandObject.cs | 4 +- .../CoreModules/World/Land/PrimCountModule.cs | 2 + .../World/Land/Tests/PrimCountModuleTests.cs | 60 ++++++++++--------- .../Framework/Interfaces/ILandObject.cs | 5 ++ 5 files changed, 52 insertions(+), 31 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 4d887a816e..d0727d958c 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -72,6 +72,7 @@ namespace OpenSim.Region.CoreModules.World.Land protected Commander m_commander = new Commander("land"); protected IUserManagement m_userManager; + protected IPrimCountModule m_primCountModule; // Minimum for parcels to work is 64m even if we don't actually use them. #pragma warning disable 0429 @@ -147,6 +148,7 @@ namespace OpenSim.Region.CoreModules.World.Land public void RegionLoaded(Scene scene) { m_userManager = m_scene.RequestModuleInterface(); + m_primCountModule = m_scene.RequestModuleInterface(); } public void RemoveRegion(Scene scene) @@ -309,10 +311,11 @@ namespace OpenSim.Region.CoreModules.World.Land // m_log.DebugFormat( // "[LAND MANAGEMENT MODULE]: Creating default parcel for region {0}", m_scene.RegionInfo.RegionName); - ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene); + ILandObject fullSimParcel = new LandObject(UUID.Zero, false, m_scene); fullSimParcel.SetLandBitmap(fullSimParcel.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); fullSimParcel.LandData.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; fullSimParcel.LandData.ClaimDate = Util.UnixTimeSinceEpoch(); + return AddLandObject(fullSimParcel); } @@ -593,6 +596,11 @@ namespace OpenSim.Region.CoreModules.World.Land public ILandObject AddLandObject(ILandObject land) { ILandObject new_land = land.Copy(); + + // Only now can we add the prim counts to the land object - we rely on the global ID which is generated + // as a random UUID inside LandData initialization + if (m_primCountModule != null) + new_land.PrimCounts = m_primCountModule.GetPrimCounts(new_land.LandData.GlobalID); lock (m_landList) { @@ -1368,7 +1376,7 @@ namespace OpenSim.Region.CoreModules.World.Land { ILandObject new_land = new LandObject(data.OwnerID, data.IsGroupOwned, m_scene); new_land.LandData = data.Copy(); - new_land.SetLandBitmapFromByteArray(); + new_land.SetLandBitmapFromByteArray(); AddLandObject(new_land); } diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 46c15ed2c3..749bb3d8cd 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs @@ -51,7 +51,7 @@ namespace OpenSim.Region.CoreModules.World.Land private int m_lastSeqId = 0; - protected LandData m_landData = new LandData(); + protected LandData m_landData = new LandData(); protected Scene m_scene; protected List primsOverMe = new List(); protected Dictionary m_listTransactions = new Dictionary(); @@ -79,6 +79,8 @@ namespace OpenSim.Region.CoreModules.World.Land set { m_landData = value; } } + + public IPrimCounts PrimCounts { get; set; } public UUID RegionUUID { diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index ae85798172..9fd347e371 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -88,6 +88,8 @@ namespace OpenSim.Region.CoreModules.World.Land public void AddRegion(Scene scene) { m_Scene = scene; + + m_Scene.RegisterModuleInterface(this); m_Scene.EventManager.OnObjectAddedToScene += OnParcelPrimCountAdd; m_Scene.EventManager.OnObjectBeingRemovedFromScene += diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 45e579e1b7..c9d393f4d6 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -58,9 +58,9 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests m_scene = SceneSetupHelpers.SetupScene(); SceneSetupHelpers.SetupSceneModules(m_scene, lmm, m_pcm); - m_lo = new LandObject(m_userId, false, m_scene); - m_lo.SetLandBitmap(m_lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); - lmm.AddLandObject(m_lo); + ILandObject lo = new LandObject(m_userId, false, m_scene); + lo.SetLandBitmap(lo.GetSquareLandBitmap(0, 0, (int)Constants.RegionSize, (int)Constants.RegionSize)); + m_lo = lmm.AddLandObject(lo); //scene.loadAllLandObjectsFromStorage(scene.RegionInfo.originRegionID); } @@ -72,34 +72,36 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests { TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); - - Assert.That(m_pcm.GetOwnerCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetGroupCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetOthersCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_userId), Is.EqualTo(0)); - Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_dummyUserId), Is.EqualTo(0)); - Assert.That(m_pcm.GetSimulatorCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); + + IPrimCounts pc = m_lo.PrimCounts; + + Assert.That(pc.Owner, Is.EqualTo(0)); + Assert.That(pc.Group, Is.EqualTo(0)); + Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Users[m_userId], Is.EqualTo(0)); + Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); + Assert.That(pc.Simulator, Is.EqualTo(0)); SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); m_scene.AddNewSceneObject(sog, false); - Assert.That(m_pcm.GetOwnerCount(m_lo.LandData.GlobalID), Is.EqualTo(3)); - Assert.That(m_pcm.GetGroupCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetOthersCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_userId), Is.EqualTo(3)); - Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_dummyUserId), Is.EqualTo(0)); - Assert.That(m_pcm.GetSimulatorCount(m_lo.LandData.GlobalID), Is.EqualTo(3)); + Assert.That(pc.Owner, Is.EqualTo(3)); + Assert.That(pc.Group, Is.EqualTo(0)); + Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Users[m_userId], Is.EqualTo(3)); + Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); + Assert.That(pc.Simulator, Is.EqualTo(3)); // Add a second object and retest SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, 0x10); m_scene.AddNewSceneObject(sog2, false); - Assert.That(m_pcm.GetOwnerCount(m_lo.LandData.GlobalID), Is.EqualTo(5)); - Assert.That(m_pcm.GetGroupCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetOthersCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_userId), Is.EqualTo(5)); - Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_dummyUserId), Is.EqualTo(0)); - Assert.That(m_pcm.GetSimulatorCount(m_lo.LandData.GlobalID), Is.EqualTo(5)); + Assert.That(pc.Owner, Is.EqualTo(5)); + Assert.That(pc.Group, Is.EqualTo(0)); + Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Users[m_userId], Is.EqualTo(5)); + Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); + Assert.That(pc.Simulator, Is.EqualTo(5)); } /// @@ -111,17 +113,19 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests TestHelper.InMethod(); // log4net.Config.XmlConfigurator.Configure(); + IPrimCounts pc = m_lo.PrimCounts; + m_scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, m_userId, 0x1), false); SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x10); m_scene.AddNewSceneObject(sogToDelete, false); m_scene.DeleteSceneObject(sogToDelete, false); - Assert.That(m_pcm.GetOwnerCount(m_lo.LandData.GlobalID), Is.EqualTo(1)); - Assert.That(m_pcm.GetGroupCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetOthersCount(m_lo.LandData.GlobalID), Is.EqualTo(0)); - Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_userId), Is.EqualTo(1)); - Assert.That(m_pcm.GetUserCount(m_lo.LandData.GlobalID, m_dummyUserId), Is.EqualTo(0)); - Assert.That(m_pcm.GetSimulatorCount(m_lo.LandData.GlobalID), Is.EqualTo(1)); + Assert.That(pc.Owner, Is.EqualTo(1)); + Assert.That(pc.Group, Is.EqualTo(0)); + Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Users[m_userId], Is.EqualTo(1)); + Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); + Assert.That(pc.Simulator, Is.EqualTo(1)); } } } \ No newline at end of file diff --git a/OpenSim/Region/Framework/Interfaces/ILandObject.cs b/OpenSim/Region/Framework/Interfaces/ILandObject.cs index eeb9d3ad1d..9c0abdeedc 100644 --- a/OpenSim/Region/Framework/Interfaces/ILandObject.cs +++ b/OpenSim/Region/Framework/Interfaces/ILandObject.cs @@ -45,6 +45,11 @@ namespace OpenSim.Region.Framework.Interfaces bool[,] LandBitmap { get; set; } UUID RegionUUID { get; } + /// + /// Prim counts for this land object. + /// + IPrimCounts PrimCounts { get; set; } + /// /// The start point for the land object. This is the western-most point as one scans land working from /// north to south. From 6ae04448f73afdca791ea185fdc0e9c062dea87b Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Fri, 25 Mar 2011 23:05:51 +0000 Subject: [PATCH 63/95] Start using IPrimCounts populated by PrimCountModule instead of LandData counts populated by LandManagementModule. In order to pass ILandObject into IClientAPI.SendLandProperties(), had to push ILandObject and IPrimCounts into OpenSim.Framework from OpenSim.Region.Framework.Interfaces, in order to avoid ci Counts are showing odd behaviour at the moment, this will be addressed shortly. --- .../Client/MXP/ClientStack/MXPClientView.cs | 2 +- .../VWoHTTP/ClientStack/VWHClientView.cs | 2 +- OpenSim/Framework/IClientAPI.cs | 12 +- .../Interfaces => Framework}/ILandChannel.cs | 0 OpenSim/Framework/IPrimCounts.cs | 45 +++++++ .../ClientStack/LindenUDP/LLClientView.cs | 35 ++++-- .../CoreModules/Avatar/Combat/CombatModule.cs | 1 + .../World/Land/LandManagementModule.cs | 2 +- .../CoreModules/World/Land/LandObject.cs | 2 +- .../Examples/SimpleModule/MyNpcCharacter.cs | 2 +- .../Framework/Interfaces/ILandObject.cs | 117 ------------------ .../Framework/Interfaces/IPrimCountModule.cs | 16 +-- .../Server/IRCClientView.cs | 2 +- .../Scripting/Minimodule/LOParcel.cs | 1 + .../OptionalModules/World/NPC/NPCAvatar.cs | 2 +- OpenSim/Tests/Common/Mock/TestClient.cs | 2 +- 16 files changed, 89 insertions(+), 154 deletions(-) rename OpenSim/{Region/Framework/Interfaces => Framework}/ILandChannel.cs (100%) create mode 100644 OpenSim/Framework/IPrimCounts.cs delete mode 100644 OpenSim/Region/Framework/Interfaces/ILandObject.cs diff --git a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs index 1d93382e18..93c6c98469 100644 --- a/OpenSim/Client/MXP/ClientStack/MXPClientView.cs +++ b/OpenSim/Client/MXP/ClientStack/MXPClientView.cs @@ -1252,7 +1252,7 @@ namespace OpenSim.Client.MXP.ClientStack // Need to translate to MXP somehow } - public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { // Need to translate to MXP somehow } diff --git a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs b/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs index f2b58d3c4c..fc27f0198b 100644 --- a/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs +++ b/OpenSim/Client/VWoHTTP/ClientStack/VWHClientView.cs @@ -799,7 +799,7 @@ namespace OpenSim.Client.VWoHTTP.ClientStack throw new System.NotImplementedException(); } - public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { throw new System.NotImplementedException(); } diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index a6be157688..5bf0b7b0a9 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs @@ -1143,7 +1143,17 @@ namespace OpenSim.Framework void SendDetailedEstateData(UUID invoice, string estateName, uint estateID, uint parentEstate, uint estateFlags, uint sunPosition, UUID covenant, string abuseEmail, UUID estateOwner); - void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, + /// + /// Send land properties to the client. + /// + /// + /// + /// + /// + /// /param> + /// + /// + void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags); diff --git a/OpenSim/Region/Framework/Interfaces/ILandChannel.cs b/OpenSim/Framework/ILandChannel.cs similarity index 100% rename from OpenSim/Region/Framework/Interfaces/ILandChannel.cs rename to OpenSim/Framework/ILandChannel.cs diff --git a/OpenSim/Framework/IPrimCounts.cs b/OpenSim/Framework/IPrimCounts.cs new file mode 100644 index 0000000000..7d362c5741 --- /dev/null +++ b/OpenSim/Framework/IPrimCounts.cs @@ -0,0 +1,45 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using OpenMetaverse; + +namespace OpenSim.Framework +{ + public interface IPrimCounts + { + int Owner { get; } + int Group { get; } + int Others { get; } + int Simulator { get; } + IUserPrimCounts Users { get; } + } + + public interface IUserPrimCounts + { + int this[UUID agentID] { get; } + } +} \ No newline at end of file diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 2c6795fc3e..6138056daf 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -4272,8 +4272,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP OutPacket(packet, ThrottleOutPacketType.Task); } - public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + public void SendLandProperties( + int sequence_id, bool snap_selection, int request_result, ILandObject lo, + float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { + LandData landData = lo.LandData; + ParcelPropertiesMessage updateMessage = new ParcelPropertiesMessage(); updateMessage.AABBMax = landData.AABBMax; @@ -4281,15 +4285,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP updateMessage.Area = landData.Area; updateMessage.AuctionID = landData.AuctionID; updateMessage.AuthBuyerID = landData.AuthBuyerID; - updateMessage.Bitmap = landData.Bitmap; - updateMessage.Desc = landData.Description; updateMessage.Category = landData.Category; updateMessage.ClaimDate = Util.ToDateTime(landData.ClaimDate); updateMessage.ClaimPrice = landData.ClaimPrice; - updateMessage.GroupID = landData.GroupID; - updateMessage.GroupPrims = landData.GroupPrims; + updateMessage.GroupID = landData.GroupID; updateMessage.IsGroupOwned = landData.IsGroupOwned; updateMessage.LandingType = (LandingType) landData.LandingType; updateMessage.LocalID = landData.LocalID; @@ -4310,9 +4311,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP updateMessage.Name = landData.Name; updateMessage.OtherCleanTime = landData.OtherCleanTime; updateMessage.OtherCount = 0; //TODO: Unimplemented - updateMessage.OtherPrims = landData.OtherPrims; - updateMessage.OwnerID = landData.OwnerID; - updateMessage.OwnerPrims = landData.OwnerPrims; + updateMessage.OwnerID = landData.OwnerID; updateMessage.ParcelFlags = (ParcelFlags) landData.Flags; updateMessage.ParcelPrimBonus = simObjectBonusFactor; updateMessage.PassHours = landData.PassHours; @@ -4327,10 +4326,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP updateMessage.RentPrice = 0; updateMessage.RequestResult = (ParcelResult) request_result; - updateMessage.SalePrice = landData.SalePrice; - updateMessage.SelectedPrims = landData.SelectedPrims; + updateMessage.SalePrice = landData.SalePrice; updateMessage.SelfCount = 0; //TODO: Unimplemented updateMessage.SequenceID = sequence_id; + if (landData.SimwideArea > 0) { int simulatorCapacity = (int)(((float)landData.SimwideArea / 65536.0f) * (float)m_scene.RegionInfo.ObjectCapacity * (float)m_scene.RegionInfo.RegionSettings.ObjectBonus); @@ -4340,12 +4339,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP { updateMessage.SimWideMaxPrims = 0; } - updateMessage.SimWideTotalPrims = landData.SimwidePrims; + updateMessage.SnapSelection = snap_selection; updateMessage.SnapshotID = landData.SnapshotID; updateMessage.Status = (ParcelStatus) landData.Status; - updateMessage.TotalPrims = landData.OwnerPrims + landData.GroupPrims + landData.OtherPrims + - landData.SelectedPrims; updateMessage.UserLocation = landData.UserLocation; updateMessage.UserLookAt = landData.UserLookAt; @@ -4356,6 +4353,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP updateMessage.MediaLoop = landData.MediaLoop; updateMessage.ObscureMusic = landData.ObscureMusic; updateMessage.ObscureMedia = landData.ObscureMedia; + + IPrimCounts pc = lo.PrimCounts; + updateMessage.OwnerPrims = pc.Owner; + updateMessage.GroupPrims = pc.Group; + updateMessage.OtherPrims = pc.Others; + updateMessage.SimWideTotalPrims = pc.Simulator; + + // FIXME: Need to do selected prims once this is reimplemented. + updateMessage.TotalPrims = pc.Owner + pc.Group + pc.Others; + + // TODO: Need to transfer selected prims to new prim count structure. + updateMessage.SelectedPrims = landData.SelectedPrims; try { diff --git a/OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs b/OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs index a5fcb493bd..0babeb5140 100644 --- a/OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Combat/CombatModule.cs @@ -28,6 +28,7 @@ using System; using System.Collections.Generic; using Nini.Config; +using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using OpenMetaverse; diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index d0727d958c..52e3718bc7 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -805,7 +805,7 @@ namespace OpenSim.Region.CoreModules.World.Land ILandObject landUnderPrim = GetLandObject(position.X, position.Y); if (landUnderPrim != null) { - landUnderPrim.AddPrimToCount(obj); + ((LandObject)landUnderPrim).AddPrimToCount(obj); } } diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 749bb3d8cd..e7bdb19e56 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs @@ -243,7 +243,7 @@ namespace OpenSim.Region.CoreModules.World.Land } remote_client.SendLandProperties(seq_id, - snap_selection, request_result, LandData, + snap_selection, request_result, this, (float)m_scene.RegionInfo.RegionSettings.ObjectBonus, GetParcelMaxPrimCount(this), GetSimulatorMaxPrimCount(this), regionFlags); diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs index 41d6628a97..d939329814 100644 --- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs @@ -909,7 +909,7 @@ namespace OpenSim.Region.Examples.SimpleModule { } - public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { } diff --git a/OpenSim/Region/Framework/Interfaces/ILandObject.cs b/OpenSim/Region/Framework/Interfaces/ILandObject.cs deleted file mode 100644 index 9c0abdeedc..0000000000 --- a/OpenSim/Region/Framework/Interfaces/ILandObject.cs +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System.Collections.Generic; -using OpenMetaverse; -using OpenSim.Framework; -using OpenSim.Region.Framework.Scenes; - -namespace OpenSim.Region.Framework.Interfaces -{ - public delegate int overrideParcelMaxPrimCountDelegate(ILandObject obj); - public delegate int overrideSimulatorMaxPrimCountDelegate(ILandObject obj); - - public interface ILandObject - { - int GetParcelMaxPrimCount(ILandObject thisObject); - int GetSimulatorMaxPrimCount(ILandObject thisObject); - int GetPrimsFree(); - - LandData LandData { get; set; } - bool[,] LandBitmap { get; set; } - UUID RegionUUID { get; } - - /// - /// Prim counts for this land object. - /// - IPrimCounts PrimCounts { get; set; } - - /// - /// The start point for the land object. This is the western-most point as one scans land working from - /// north to south. - /// - Vector3 StartPoint { get; } - - /// - /// The end point for the land object. This is the eastern-most point as one scans land working from - /// south to north. - /// - Vector3 EndPoint { get; } - - bool ContainsPoint(int x, int y); - - ILandObject Copy(); - - void SendLandUpdateToAvatarsOverMe(); - - void SendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client); - void UpdateLandProperties(LandUpdateArgs args, IClientAPI remote_client); - bool IsEitherBannedOrRestricted(UUID avatar); - bool IsBannedFromLand(UUID avatar); - bool IsRestrictedFromLand(UUID avatar); - void SendLandUpdateToClient(IClientAPI remote_client); - void SendLandUpdateToClient(bool snap_selection, IClientAPI remote_client); - List CreateAccessListArrayByFlag(AccessList flag); - void SendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, IClientAPI remote_client); - void UpdateAccessList(uint flags, UUID transactionID, int sequenceID, int sections, List entries, IClientAPI remote_client); - void UpdateLandBitmapByteArray(); - void SetLandBitmapFromByteArray(); - bool[,] GetLandBitmap(); - void ForceUpdateLandInfo(); - void SetLandBitmap(bool[,] bitmap); - - bool[,] BasicFullRegionLandBitmap(); - bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); - bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); - bool[,] MergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); - void SendForceObjectSelect(int local_id, int request_type, List returnIDs, IClientAPI remote_client); - void SendLandObjectOwners(IClientAPI remote_client); - void ReturnObject(SceneObjectGroup obj); - void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client); - void ResetLandPrimCounts(); - void AddPrimToCount(SceneObjectGroup obj); - void RemovePrimFromCount(SceneObjectGroup obj); - void UpdateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area); - - void DeedToGroup(UUID groupID); - - void SetParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel); - void SetSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel); - - /// - /// Set the media url for this land parcel - /// - /// - void SetMediaUrl(string url); - - /// - /// Set the music url for this land parcel - /// - /// - void SetMusicUrl(string url); - } -} diff --git a/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs b/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs index 65158e1c80..d63da2e2af 100644 --- a/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs +++ b/OpenSim/Region/Framework/Interfaces/IPrimCountModule.cs @@ -38,18 +38,4 @@ namespace OpenSim.Region.Framework.Interfaces IPrimCounts GetPrimCounts(UUID parcelID); } - - public interface IPrimCounts - { - int Owner { get; } - int Group { get; } - int Others { get; } - int Simulator { get; } - IUserPrimCounts Users { get; } - } - - public interface IUserPrimCounts - { - int this[UUID agentID] { get; } - } -} +} \ No newline at end of file diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs index 49382f0f26..821cd4bd33 100644 --- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs +++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs @@ -1247,7 +1247,7 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server } - public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { } diff --git a/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs b/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs index 8df020f893..c898da610d 100644 --- a/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs +++ b/OpenSim/Region/OptionalModules/Scripting/Minimodule/LOParcel.cs @@ -25,6 +25,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +using OpenSim.Framework; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs index 5d44aa1a8c..96760a2721 100644 --- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs +++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs @@ -925,7 +925,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC { } - public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor,int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor,int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { } public void SendLandAccessListData(List avatars, uint accessFlag, int localLandID) diff --git a/OpenSim/Tests/Common/Mock/TestClient.cs b/OpenSim/Tests/Common/Mock/TestClient.cs index ebe0a72a87..d1dc17fc9b 100644 --- a/OpenSim/Tests/Common/Mock/TestClient.cs +++ b/OpenSim/Tests/Common/Mock/TestClient.cs @@ -957,7 +957,7 @@ namespace OpenSim.Tests.Common.Mock { } - public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { } From ea72745d43c2c6eced8329801ff8765746be7ddd Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Fri, 25 Mar 2011 23:18:47 +0000 Subject: [PATCH 64/95] Log the xml/ini regions config files that opensim loads from, and the regions that it loaded from them This will show up with the lines [REGION LOADER FILE SYSTEM]: Loading config files from ./Regions, etc. --- .../Filesystem/RegionLoaderFileSystem.cs | 24 +++++++++++++++---- prebuild.xml | 1 + 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs index 63e09ae401..7cbd5edb62 100644 --- a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs +++ b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs @@ -25,15 +25,19 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +using log4net; using System; using System.Collections.Generic; using System.IO; +using System.Reflection; using Nini.Config; namespace OpenSim.Framework.RegionLoader.Filesystem { public class RegionLoaderFileSystem : IRegionLoader { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private IConfigSource m_configSource; public void SetIniConfigSource(IConfigSource configSource) @@ -63,36 +67,48 @@ namespace OpenSim.Framework.RegionLoader.Filesystem string[] configFiles = Directory.GetFiles(regionConfigPath, "*.xml"); string[] iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); + // Create an empty Regions.ini if there are no existing config files. if (configFiles.Length == 0 && iniFiles.Length == 0) - { + { new RegionInfo("DEFAULT REGION CONFIG", Path.Combine(regionConfigPath, "Regions.ini"), false, m_configSource); iniFiles = Directory.GetFiles(regionConfigPath, "*.ini"); } + + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config files from {0}", regionConfigPath); List regionInfos = new List(); int i = 0; foreach (string file in iniFiles) { + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config file {0}", file); + IConfigSource source = new IniConfigSource(file); foreach (IConfig config in source.Configs) - { - //m_log.Info("[REGIONLOADERFILESYSTEM]: Creating RegionInfo for " + config.Name); + { RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource, config.Name); regionInfos.Add(regionInfo); + + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded region {0}", regionInfo.RegionName); + i++; } } foreach (string file in configFiles) { + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loading config file {0}", file); + RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource); regionInfos.Add(regionInfo); + + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded region {0}", regionInfo.RegionName); + i++; } return regionInfos.ToArray(); } } -} +} \ No newline at end of file diff --git a/prebuild.xml b/prebuild.xml index d564341901..fac3f208af 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -402,6 +402,7 @@ + From 3a55d59b45dc0cbff938f0101bb6338bd8949e86 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Fri, 25 Mar 2011 23:29:06 +0000 Subject: [PATCH 65/95] in region web loader, print out url that config is being loaded from (this wasn't being done anywhere). --- OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs index 0ec4af5c17..de4898a0d7 100644 --- a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs +++ b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs @@ -66,9 +66,9 @@ namespace OpenSim.Framework.RegionLoader.Web { HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create(url); webRequest.Timeout = 30000; //30 Second Timeout - m_log.Debug("[WEBLOADER]: Sending Download Request..."); + m_log.DebugFormat("[WEBLOADER]: Sending download request to {0}", url); HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse(); - m_log.Debug("[WEBLOADER]: Downloading Region Information From Remote Server..."); + m_log.Debug("[WEBLOADER]: Downloading region information..."); StreamReader reader = new StreamReader(webResponse.GetResponseStream()); string xmlSource = String.Empty; string tempStr = reader.ReadLine(); From d8e1c380e67512e0476b2a7b7441ae3acbb4606f Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Fri, 25 Mar 2011 23:36:58 +0000 Subject: [PATCH 66/95] minor: make it clearer in the log where we're loading region config files and not the regions themselves --- .../LoadRegions/LoadRegionsPlugin.cs | 28 +++++++++---------- .../Filesystem/RegionLoaderFileSystem.cs | 4 +-- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs index f37c399050..e26c1d23b4 100644 --- a/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs +++ b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs @@ -68,7 +68,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions public void Initialise() { - m_log.Error("[LOADREGIONS]: " + Name + " cannot be default-initialized!"); + m_log.Error("[LOAD REGIONS PLUGIN]: " + Name + " cannot be default-initialized!"); throw new PluginNotInitialisedException(Name); } @@ -85,41 +85,39 @@ namespace OpenSim.ApplicationPlugins.LoadRegions IRegionLoader regionLoader; if (m_openSim.ConfigSource.Source.Configs["Startup"].GetString("region_info_source", "filesystem") == "filesystem") { - m_log.Info("[LOADREGIONS]: Loading region configurations from filesystem"); + m_log.Info("[LOAD REGIONS PLUGIN]: Loading region configurations from filesystem"); regionLoader = new RegionLoaderFileSystem(); } else { - m_log.Info("[LOADREGIONSPLUGIN]: Loading region configurations from web"); + m_log.Info("[LOAD REGIONS PLUGIN]: Loading region configurations from web"); regionLoader = new RegionLoaderWebServer(); } - m_log.Info("[LOADREGIONSPLUGIN]: Loading region configurations..."); - regionLoader.SetIniConfigSource(m_openSim.ConfigSource.Source); RegionInfo[] regionsToLoad = regionLoader.LoadRegions(); - m_log.Info("[LOADREGIONSPLUGIN]: Loading specific shared modules..."); - m_log.Info("[LOADREGIONSPLUGIN]: DynamicTextureModule..."); + m_log.Info("[LOAD REGIONS PLUGIN]: Loading specific shared modules..."); + m_log.Info("[LOAD REGIONS PLUGIN]: DynamicTextureModule..."); m_openSim.ModuleLoader.LoadDefaultSharedModule(new DynamicTextureModule()); - m_log.Info("[LOADREGIONSPLUGIN]: LoadImageURLModule..."); + m_log.Info("[LOAD REGIONS PLUGIN]: LoadImageURLModule..."); m_openSim.ModuleLoader.LoadDefaultSharedModule(new LoadImageURLModule()); - m_log.Info("[LOADREGIONSPLUGIN]: XMLRPCModule..."); + m_log.Info("[LOAD REGIONS PLUGIN]: XMLRPCModule..."); m_openSim.ModuleLoader.LoadDefaultSharedModule(new XMLRPCModule()); // m_log.Info("[LOADREGIONSPLUGIN]: AssetTransactionModule..."); // m_openSim.ModuleLoader.LoadDefaultSharedModule(new AssetTransactionModule()); - m_log.Info("[LOADREGIONSPLUGIN]: Done."); + m_log.Info("[LOAD REGIONS PLUGIN]: Done."); if (!CheckRegionsForSanity(regionsToLoad)) { - m_log.Error("[LOADREGIONS]: Halting startup due to conflicts in region configurations"); + m_log.Error("[LOAD REGIONS PLUGIN]: Halting startup due to conflicts in region configurations"); Environment.Exit(1); } for (int i = 0; i < regionsToLoad.Length; i++) { IScene scene; - m_log.Debug("[LOADREGIONS]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " + + m_log.Debug("[LOAD REGIONS PLUGIN]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " + Thread.CurrentThread.ManagedThreadId.ToString() + ")"); @@ -164,7 +162,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions if (regions[i].RegionID == regions[j].RegionID) { m_log.ErrorFormat( - "[LOADREGIONS]: Regions {0} and {1} have the same UUID {2}", + "[LOAD REGIONS PLUGIN]: Regions {0} and {1} have the same UUID {2}", regions[i].RegionName, regions[j].RegionName, regions[i].RegionID); return false; } @@ -172,14 +170,14 @@ namespace OpenSim.ApplicationPlugins.LoadRegions regions[i].RegionLocX == regions[j].RegionLocX && regions[i].RegionLocY == regions[j].RegionLocY) { m_log.ErrorFormat( - "[LOADREGIONS]: Regions {0} and {1} have the same grid location ({2}, {3})", + "[LOAD REGIONS PLUGIN]: Regions {0} and {1} have the same grid location ({2}, {3})", regions[i].RegionName, regions[j].RegionName, regions[i].RegionLocX, regions[i].RegionLocY); return false; } else if (regions[i].InternalEndPoint.Port == regions[j].InternalEndPoint.Port) { m_log.ErrorFormat( - "[LOADREGIONS]: Regions {0} and {1} have the same internal IP port {2}", + "[LOAD REGIONS PLUGIN]: Regions {0} and {1} have the same internal IP port {2}", regions[i].RegionName, regions[j].RegionName, regions[i].InternalEndPoint.Port); return false; } diff --git a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs index 7cbd5edb62..0aae4ff353 100644 --- a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs +++ b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs @@ -90,7 +90,7 @@ namespace OpenSim.Framework.RegionLoader.Filesystem RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource, config.Name); regionInfos.Add(regionInfo); - m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded region {0}", regionInfo.RegionName); + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded config for region {0}", regionInfo.RegionName); i++; } @@ -103,7 +103,7 @@ namespace OpenSim.Framework.RegionLoader.Filesystem RegionInfo regionInfo = new RegionInfo("REGION CONFIG #" + (i + 1), file, false, m_configSource); regionInfos.Add(regionInfo); - m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded region {0}", regionInfo.RegionName); + m_log.InfoFormat("[REGION LOADER FILE SYSTEM]: Loaded config for region {0}", regionInfo.RegionName); i++; } From cc8897fcebdc9d3e875c9bf745ecb77678a776e9 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 00:34:49 +0000 Subject: [PATCH 67/95] Add test for PCM taint. This currently fails due to unexpected behaviour of SceneGraph.ForEachSOG(). This will be corrected soon. Also adds lots of temproarily debug logging --- OpenSim/Framework/ILandObject.cs | 112 ++++++++++++++++++ .../ClientStack/LindenUDP/LLClientView.cs | 2 + .../CoreModules/World/Land/PrimCountModule.cs | 79 +++++++++--- .../World/Land/Tests/PrimCountModuleTests.cs | 24 +++- 4 files changed, 201 insertions(+), 16 deletions(-) create mode 100644 OpenSim/Framework/ILandObject.cs diff --git a/OpenSim/Framework/ILandObject.cs b/OpenSim/Framework/ILandObject.cs new file mode 100644 index 0000000000..931e24aebb --- /dev/null +++ b/OpenSim/Framework/ILandObject.cs @@ -0,0 +1,112 @@ +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System.Collections.Generic; +using OpenMetaverse; + +namespace OpenSim.Framework +{ + public delegate int overrideParcelMaxPrimCountDelegate(ILandObject obj); + public delegate int overrideSimulatorMaxPrimCountDelegate(ILandObject obj); + + public interface ILandObject + { + int GetParcelMaxPrimCount(ILandObject thisObject); + int GetSimulatorMaxPrimCount(ILandObject thisObject); + int GetPrimsFree(); + + LandData LandData { get; set; } + bool[,] LandBitmap { get; set; } + UUID RegionUUID { get; } + + /// + /// Prim counts for this land object. + /// + IPrimCounts PrimCounts { get; set; } + + /// + /// The start point for the land object. This is the western-most point as one scans land working from + /// north to south. + /// + Vector3 StartPoint { get; } + + /// + /// The end point for the land object. This is the eastern-most point as one scans land working from + /// south to north. + /// + Vector3 EndPoint { get; } + + bool ContainsPoint(int x, int y); + + ILandObject Copy(); + + void SendLandUpdateToAvatarsOverMe(); + + void SendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client); + void UpdateLandProperties(LandUpdateArgs args, IClientAPI remote_client); + bool IsEitherBannedOrRestricted(UUID avatar); + bool IsBannedFromLand(UUID avatar); + bool IsRestrictedFromLand(UUID avatar); + void SendLandUpdateToClient(IClientAPI remote_client); + void SendLandUpdateToClient(bool snap_selection, IClientAPI remote_client); + List CreateAccessListArrayByFlag(AccessList flag); + void SendAccessList(UUID agentID, UUID sessionID, uint flags, int sequenceID, IClientAPI remote_client); + void UpdateAccessList(uint flags, UUID transactionID, int sequenceID, int sections, List entries, IClientAPI remote_client); + void UpdateLandBitmapByteArray(); + void SetLandBitmapFromByteArray(); + bool[,] GetLandBitmap(); + void ForceUpdateLandInfo(); + void SetLandBitmap(bool[,] bitmap); + + bool[,] BasicFullRegionLandBitmap(); + bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y); + bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); + bool[,] MergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add); + void SendForceObjectSelect(int local_id, int request_type, List returnIDs, IClientAPI remote_client); + void SendLandObjectOwners(IClientAPI remote_client); + void ReturnLandObjects(uint type, UUID[] owners, UUID[] tasks, IClientAPI remote_client); + void ResetLandPrimCounts(); + void UpdateLandSold(UUID avatarID, UUID groupID, bool groupOwned, uint AuctionID, int claimprice, int area); + + void DeedToGroup(UUID groupID); + + void SetParcelObjectMaxOverride(overrideParcelMaxPrimCountDelegate overrideDel); + void SetSimulatorObjectMaxOverride(overrideSimulatorMaxPrimCountDelegate overrideDel); + + /// + /// Set the media url for this land parcel + /// + /// + void SetMediaUrl(string url); + + /// + /// Set the music url for this land parcel + /// + /// + void SetMusicUrl(string url); + } +} diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 6138056daf..0b6b04dc3b 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -4276,6 +4276,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { + m_log.DebugFormat("[LLCLIENTVIEW]: Sending land properties for {0} to {1}", lo.LandData.GlobalID, Name); + LandData landData = lo.LandData; ParcelPropertiesMessage updateMessage = new ParcelPropertiesMessage(); diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 9fd347e371..72115a847c 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -51,8 +51,7 @@ namespace OpenSim.Region.CoreModules.World.Land public class PrimCountModule : IPrimCountModule, INonSharedRegionModule { -// private static readonly ILog m_log = -// LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private Scene m_Scene; private Dictionary m_PrimCounts = @@ -123,6 +122,11 @@ namespace OpenSim.Region.CoreModules.World.Land { if (!m_Tainted) AddObject(obj); + else + m_log.DebugFormat( + "[PRIM COUNT MODULE]: Ignoring OnParcelPrimCountAdd() for {0} on {1} since count is tainted", + obj.Name, m_Scene.RegionInfo.RegionName); + } } @@ -133,11 +137,18 @@ namespace OpenSim.Region.CoreModules.World.Land { if (!m_Tainted) RemoveObject(obj); + else + m_log.DebugFormat( + "[PRIM COUNT MODULE]: Ignoring OnObjectBeingRemovedFromScene() for {0} on {1} since count is tainted", + obj.Name, m_Scene.RegionInfo.RegionName); } } private void OnParcelPrimCountTainted() { + m_log.DebugFormat( + "[PRIM COUNT MODULE]: OnParcelPrimCountTainted() called on {0}", m_Scene.RegionInfo.RegionName); + lock (m_TaintLock) m_Tainted = true; } @@ -163,7 +174,7 @@ namespace OpenSim.Region.CoreModules.World.Land // NOTE: Call under Taint Lock private void AddObject(SceneObjectGroup obj) { -// m_log.DebugFormat("[PRIM COUNT MODULE]: Adding object {0} to prim count", obj.Name); + m_log.DebugFormat("[PRIM COUNT MODULE]: Adding object {0} {1} to prim count", obj.Name, obj.UUID); if (obj.IsAttachment) return; @@ -214,10 +225,14 @@ namespace OpenSim.Region.CoreModules.World.Land // NOTE: Call under Taint Lock private void RemoveObject(SceneObjectGroup obj) { + m_log.DebugFormat("[PRIM COUNT MODULE]: Removing object {0} {1} from prim count", obj.Name, obj.UUID); } public IPrimCounts GetPrimCounts(UUID parcelID) { + m_log.DebugFormat( + "[PRIM COUNT MODULE]: GetPrimCounts for parcel {0} in {1}", parcelID, m_Scene.RegionInfo.RegionName); + PrimCounts primCounts; lock (m_PrimCounts) @@ -239,7 +254,7 @@ namespace OpenSim.Region.CoreModules.World.Land /// public int GetOwnerCount(UUID parcelID) { -// m_log.DebugFormat("[PRIM COUNT MODULE]: GetOwnerCount for {0}", parcelID); + int count = 0; lock (m_TaintLock) { @@ -248,9 +263,14 @@ namespace OpenSim.Region.CoreModules.World.Land ParcelCounts counts; if (m_ParcelCounts.TryGetValue(parcelID, out counts)) - return counts.Owner; + count = counts.Owner; } - return 0; + + m_log.DebugFormat( + "[PRIM COUNT MODULE]: GetOwnerCount for parcel {0} in {1} returning {2}", + parcelID, m_Scene.RegionInfo.RegionName, count); + + return count; } /// @@ -260,6 +280,8 @@ namespace OpenSim.Region.CoreModules.World.Land /// public int GetGroupCount(UUID parcelID) { + int count = 0; + lock (m_TaintLock) { if (m_Tainted) @@ -267,9 +289,14 @@ namespace OpenSim.Region.CoreModules.World.Land ParcelCounts counts; if (m_ParcelCounts.TryGetValue(parcelID, out counts)) - return counts.Group; + count = counts.Group; } - return 0; + + m_log.DebugFormat( + "[PRIM COUNT MODULE]: GetGroupCount for parcel {0} in {1} returning {2}", + parcelID, m_Scene.RegionInfo.RegionName, count); + + return count; } /// @@ -279,6 +306,8 @@ namespace OpenSim.Region.CoreModules.World.Land /// public int GetOthersCount(UUID parcelID) { + int count = 0; + lock (m_TaintLock) { if (m_Tainted) @@ -286,9 +315,14 @@ namespace OpenSim.Region.CoreModules.World.Land ParcelCounts counts; if (m_ParcelCounts.TryGetValue(parcelID, out counts)) - return counts.Others; + count = counts.Others; } - return 0; + + m_log.DebugFormat( + "[PRIM COUNT MODULE]: GetOthersCount for parcel {0} in {1} returning {2}", + parcelID, m_Scene.RegionInfo.RegionName, count); + + return count; } /// @@ -298,6 +332,8 @@ namespace OpenSim.Region.CoreModules.World.Land /// public int GetSimulatorCount(UUID parcelID) { + int count = 0; + lock (m_TaintLock) { if (m_Tainted) @@ -308,10 +344,15 @@ namespace OpenSim.Region.CoreModules.World.Land { int val; if (m_SimwideCounts.TryGetValue(owner, out val)) - return val; + count = val; } } - return 0; + + m_log.DebugFormat( + "[PRIM COUNT MODULE]: GetOthersCount for parcel {0} in {1} returning {2}", + parcelID, m_Scene.RegionInfo.RegionName, count); + + return count; } /// @@ -322,6 +363,8 @@ namespace OpenSim.Region.CoreModules.World.Land /// public int GetUserCount(UUID parcelID, UUID userID) { + int count = 0; + lock (m_TaintLock) { if (m_Tainted) @@ -332,16 +375,21 @@ namespace OpenSim.Region.CoreModules.World.Land { int val; if (counts.Users.TryGetValue(userID, out val)) - return val; + count = val; } } - return 0; + + m_log.DebugFormat( + "[PRIM COUNT MODULE]: GetUserCount for user {0} in parcel {1} in region {2} returning {3}", + userID, parcelID, m_Scene.RegionInfo.RegionName, count); + + return count; } // NOTE: This method MUST be called while holding the taint lock! private void Recount() { -// m_log.DebugFormat("[PRIM COUNT MODULE]: Recounting prims on {0}", m_Scene.RegionInfo.RegionName); + m_log.DebugFormat("[PRIM COUNT MODULE]: Recounting prims on {0}", m_Scene.RegionInfo.RegionName); m_OwnerMap.Clear(); m_SimwideCounts.Clear(); @@ -367,6 +415,7 @@ namespace OpenSim.Region.CoreModules.World.Land if (!m_OwnerMap.ContainsKey(k)) m_PrimCounts.Remove(k); } + m_Tainted = false; } } diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index c9d393f4d6..80b28598ab 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -126,6 +126,28 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Users[m_userId], Is.EqualTo(1)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(1)); - } + } + + /// + /// Test the count is correct after is has been tainted. + /// + [Test] + public void TestTaint() + { + TestHelper.InMethod(); + IPrimCounts pc = m_lo.PrimCounts; + + SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); + m_scene.AddNewSceneObject(sog, false); + + m_pcm.TaintPrimCount(); + + Assert.That(pc.Owner, Is.EqualTo(3)); + Assert.That(pc.Group, Is.EqualTo(0)); + Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Users[m_userId], Is.EqualTo(3)); + Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); + Assert.That(pc.Simulator, Is.EqualTo(3)); + } } } \ No newline at end of file From f30bf429c274c9d6d0cfc99513820f759ca94d3e Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 00:42:48 +0000 Subject: [PATCH 68/95] refactor: rename SOG collections in SceneGraph to make it clearer that they are indexing each part's UUID, not just the root part. --- OpenSim/Region/Framework/Scenes/SceneGraph.cs | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index eca2786c97..345ed7a5ef 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -89,8 +89,8 @@ namespace OpenSim.Region.Framework.Scenes protected internal PhysicsScene _PhyScene; - protected internal Dictionary SceneObjectGroupsByLocalID = new Dictionary(); - protected internal Dictionary SceneObjectGroupsByFullID = new Dictionary(); + protected internal Dictionary SceneObjectGroupsByLocalPartID = new Dictionary(); + protected internal Dictionary SceneObjectGroupsByFullPartID = new Dictionary(); private Object m_updateLock = new Object(); @@ -131,10 +131,10 @@ namespace OpenSim.Region.Framework.Scenes m_scenePresenceArray = newlist; } - lock (SceneObjectGroupsByFullID) - SceneObjectGroupsByFullID.Clear(); - lock (SceneObjectGroupsByLocalID) - SceneObjectGroupsByLocalID.Clear(); + lock (SceneObjectGroupsByFullPartID) + SceneObjectGroupsByFullPartID.Clear(); + lock (SceneObjectGroupsByLocalPartID) + SceneObjectGroupsByLocalPartID.Clear(); Entities.Clear(); } @@ -384,18 +384,18 @@ namespace OpenSim.Region.Framework.Scenes if (OnObjectCreate != null) OnObjectCreate(sceneObject); - lock (SceneObjectGroupsByFullID) + lock (SceneObjectGroupsByFullPartID) { - SceneObjectGroupsByFullID[sceneObject.UUID] = sceneObject; + SceneObjectGroupsByFullPartID[sceneObject.UUID] = sceneObject; foreach (SceneObjectPart part in children) - SceneObjectGroupsByFullID[part.UUID] = sceneObject; + SceneObjectGroupsByFullPartID[part.UUID] = sceneObject; } - lock (SceneObjectGroupsByLocalID) + lock (SceneObjectGroupsByLocalPartID) { - SceneObjectGroupsByLocalID[sceneObject.LocalId] = sceneObject; + SceneObjectGroupsByLocalPartID[sceneObject.LocalId] = sceneObject; foreach (SceneObjectPart part in children) - SceneObjectGroupsByLocalID[part.LocalId] = sceneObject; + SceneObjectGroupsByLocalPartID[part.LocalId] = sceneObject; } return true; @@ -427,20 +427,20 @@ namespace OpenSim.Region.Framework.Scenes if (OnObjectRemove != null) OnObjectRemove(Entities[uuid]); - lock (SceneObjectGroupsByFullID) + lock (SceneObjectGroupsByFullPartID) { SceneObjectPart[] parts = grp.Parts; for (int i = 0; i < parts.Length; i++) - SceneObjectGroupsByFullID.Remove(parts[i].UUID); - SceneObjectGroupsByFullID.Remove(grp.RootPart.UUID); + SceneObjectGroupsByFullPartID.Remove(parts[i].UUID); + SceneObjectGroupsByFullPartID.Remove(grp.RootPart.UUID); } - lock (SceneObjectGroupsByLocalID) + lock (SceneObjectGroupsByLocalPartID) { SceneObjectPart[] parts = grp.Parts; for (int i = 0; i < parts.Length; i++) - SceneObjectGroupsByLocalID.Remove(parts[i].LocalId); - SceneObjectGroupsByLocalID.Remove(grp.RootPart.LocalId); + SceneObjectGroupsByLocalPartID.Remove(parts[i].LocalId); + SceneObjectGroupsByLocalPartID.Remove(grp.RootPart.LocalId); } return Entities.Remove(uuid); @@ -854,14 +854,14 @@ namespace OpenSim.Region.Framework.Scenes //m_log.DebugFormat("Entered GetGroupByPrim with localID {0}", localID); SceneObjectGroup sog; - lock (SceneObjectGroupsByLocalID) - SceneObjectGroupsByLocalID.TryGetValue(localID, out sog); + lock (SceneObjectGroupsByLocalPartID) + SceneObjectGroupsByLocalPartID.TryGetValue(localID, out sog); if (sog != null) { if (sog.HasChildPrim(localID)) return sog; - SceneObjectGroupsByLocalID.Remove(localID); + SceneObjectGroupsByLocalPartID.Remove(localID); } EntityBase[] entityList = GetEntities(); @@ -873,8 +873,8 @@ namespace OpenSim.Region.Framework.Scenes sog = (SceneObjectGroup)ent; if (sog.HasChildPrim(localID)) { - lock (SceneObjectGroupsByLocalID) - SceneObjectGroupsByLocalID[localID] = sog; + lock (SceneObjectGroupsByLocalPartID) + SceneObjectGroupsByLocalPartID[localID] = sog; return sog; } } @@ -891,16 +891,16 @@ namespace OpenSim.Region.Framework.Scenes private SceneObjectGroup GetGroupByPrim(UUID fullID) { SceneObjectGroup sog; - lock (SceneObjectGroupsByFullID) - SceneObjectGroupsByFullID.TryGetValue(fullID, out sog); + lock (SceneObjectGroupsByFullPartID) + SceneObjectGroupsByFullPartID.TryGetValue(fullID, out sog); if (sog != null) { if (sog.ContainsPart(fullID)) return sog; - lock (SceneObjectGroupsByFullID) - SceneObjectGroupsByFullID.Remove(fullID); + lock (SceneObjectGroupsByFullPartID) + SceneObjectGroupsByFullPartID.Remove(fullID); } EntityBase[] entityList = GetEntities(); @@ -911,8 +911,8 @@ namespace OpenSim.Region.Framework.Scenes sog = (SceneObjectGroup)ent; if (sog.HasChildPrim(fullID)) { - lock (SceneObjectGroupsByFullID) - SceneObjectGroupsByFullID[fullID] = sog; + lock (SceneObjectGroupsByFullPartID) + SceneObjectGroupsByFullPartID[fullID] = sog; return sog; } } @@ -1069,7 +1069,7 @@ namespace OpenSim.Region.Framework.Scenes /// protected internal void ForEachSOG(Action action) { - List objlist = new List(SceneObjectGroupsByFullID.Values); + List objlist = new List(SceneObjectGroupsByFullPartID.Values); foreach (SceneObjectGroup obj in objlist) { try From 26d16567e1e2bf28a3eafce6d3acf8d9646aaf84 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 00:53:19 +0000 Subject: [PATCH 69/95] Make SceneGraph.ForEachSOG() execute once for each SOG, not once for each prim (e.g. a SOG with 3 prims would have the action executed three times). To do this, a new SceneObjectGroupsByFullID index in SceneGraph which just index's prims by their root part UUID, in order to avoid the inefficiency of filtering existing lists. Existing callers to SceneGraph.ForEachSOG() did not fail due to the multiple per SOG action executions - they were probably just much less efficient. Code suggests that no callers expected ForEachSOG() to execute actions on sog multiple times --- OpenSim/Region/Framework/Scenes/SceneGraph.cs | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 345ed7a5ef..1621398bcb 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -88,9 +88,21 @@ namespace OpenSim.Region.Framework.Scenes protected internal object m_syncRoot = new object(); protected internal PhysicsScene _PhyScene; - - protected internal Dictionary SceneObjectGroupsByLocalPartID = new Dictionary(); + + /// + /// Index the SceneObjectGroup for each part by the root part's UUID. + /// + protected internal Dictionary SceneObjectGroupsByFullID = new Dictionary(); + + /// + /// Index the SceneObjectGroup for each part by that part's UUID. + /// protected internal Dictionary SceneObjectGroupsByFullPartID = new Dictionary(); + + /// + /// Index the SceneObjectGroup for each part by that part's local ID. + /// + protected internal Dictionary SceneObjectGroupsByLocalPartID = new Dictionary(); private Object m_updateLock = new Object(); @@ -131,6 +143,8 @@ namespace OpenSim.Region.Framework.Scenes m_scenePresenceArray = newlist; } + lock (SceneObjectGroupsByFullID) + SceneObjectGroupsByFullID.Clear(); lock (SceneObjectGroupsByFullPartID) SceneObjectGroupsByFullPartID.Clear(); lock (SceneObjectGroupsByLocalPartID) @@ -384,6 +398,9 @@ namespace OpenSim.Region.Framework.Scenes if (OnObjectCreate != null) OnObjectCreate(sceneObject); + lock (SceneObjectGroupsByFullID) + SceneObjectGroupsByFullID[sceneObject.UUID] = sceneObject; + lock (SceneObjectGroupsByFullPartID) { SceneObjectGroupsByFullPartID[sceneObject.UUID] = sceneObject; @@ -426,6 +443,9 @@ namespace OpenSim.Region.Framework.Scenes if (OnObjectRemove != null) OnObjectRemove(Entities[uuid]); + + lock (SceneObjectGroupsByFullID) + SceneObjectGroupsByFullID.Remove(grp.UUID); lock (SceneObjectGroupsByFullPartID) { @@ -1064,12 +1084,13 @@ namespace OpenSim.Region.Framework.Scenes } /// - /// Performs action on all scene object groups. + /// Performs action once on all scene object groups. /// /// protected internal void ForEachSOG(Action action) { - List objlist = new List(SceneObjectGroupsByFullPartID.Values); + // FIXME: Need to lock here, really. + List objlist = new List(SceneObjectGroupsByFullID.Values); foreach (SceneObjectGroup obj in objlist) { try @@ -1084,7 +1105,6 @@ namespace OpenSim.Region.Framework.Scenes } } } - /// /// Performs action on all scene presences. This can ultimately run the actions in parallel but From bfd9cc44b40e64af3c7504d43a15b7e1b44070a0 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 02:05:53 +0000 Subject: [PATCH 70/95] When an object is duplicated, add the dupe to the uuid/local id indexes as well as the basic entities list. Added a prim counts test to reinforce this - shift-copy was no incrementing prim count. This will sometime become a basic scene test. New code needs to be refactored so we just call SceneGraph.AddSceneObject(). This will happen in the near future. With this, basic owner prim counts on a single parcel appear to be working fine (with the same previous existing taint calls as used by the land management module). More work to do. --- .../World/Land/Tests/PrimCountModuleTests.cs | 23 ++++++++++++++ OpenSim/Region/Framework/Scenes/SceneGraph.cs | 30 ++++++++++++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 80b28598ab..dd55f980b8 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -104,6 +104,29 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Simulator, Is.EqualTo(5)); } + /// + /// Test count after a parcel owner owned copied object is added. + /// + [Test] + public void TestCopiedOwnerObject() + { + TestHelper.InMethod(); +// log4net.Config.XmlConfigurator.Configure(); + + IPrimCounts pc = m_lo.PrimCounts; + + SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); + m_scene.AddNewSceneObject(sog, false); + m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, 0, m_userId, UUID.Zero, Quaternion.Identity); + + Assert.That(pc.Owner, Is.EqualTo(6)); + Assert.That(pc.Group, Is.EqualTo(0)); + Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Users[m_userId], Is.EqualTo(6)); + Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); + Assert.That(pc.Simulator, Is.EqualTo(6)); + } + /// /// Test count after a parcel owner owned object is removed. /// diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 1621398bcb..60855b2c36 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -363,6 +363,10 @@ namespace OpenSim.Region.Framework.Scenes if (Entities.ContainsKey(sceneObject.UUID)) return false; + +// m_log.DebugFormat( +// "[SCENEGRAPH]: Adding scene object {0} {1}, with {2} parts on {3}", +// sceneObject.Name, sceneObject.UUID, sceneObject.Parts.Length, m_parentScene.RegionInfo.RegionName); SceneObjectPart[] children = sceneObject.Parts; @@ -1798,7 +1802,10 @@ namespace OpenSim.Region.Framework.Scenes /// public SceneObjectGroup DuplicateObject(uint originalPrimID, Vector3 offset, uint flags, UUID AgentID, UUID GroupID, Quaternion rot) { - //m_log.DebugFormat("[SCENE]: Duplication of object {0} at offset {1} requested by agent {2}", originalPrim, offset, AgentID); +// m_log.DebugFormat( +// "[SCENE]: Duplication of object {0} at offset {1} requested by agent {2}", +// originalPrimID, offset, AgentID); + SceneObjectGroup original = GetGroupByPrim(originalPrimID); if (original != null) { @@ -1829,7 +1836,28 @@ namespace OpenSim.Region.Framework.Scenes copy.RootPart.SalePrice = 10; } + // FIXME: This section needs to be refactored so that it just calls AddSceneObject() Entities.Add(copy); + + lock (SceneObjectGroupsByFullID) + SceneObjectGroupsByFullID[copy.UUID] = copy; + + SceneObjectPart[] children = copy.Parts; + + lock (SceneObjectGroupsByFullPartID) + { + SceneObjectGroupsByFullPartID[copy.UUID] = copy; + foreach (SceneObjectPart part in children) + SceneObjectGroupsByFullPartID[part.UUID] = copy; + } + + lock (SceneObjectGroupsByLocalPartID) + { + SceneObjectGroupsByLocalPartID[copy.LocalId] = copy; + foreach (SceneObjectPart part in children) + SceneObjectGroupsByLocalPartID[copy.LocalId] = copy; + } + // PROBABLE END OF FIXME // Since we copy from a source group that is in selected // state, but the copy is shown deselected in the viewer, From 541cd3e8c84d3ccc13525206b1724ee931416a3c Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 02:19:28 +0000 Subject: [PATCH 71/95] move total parcel prim calculations into IPrimCounts instead of doing this in LLClientView need to move selected prim counts from LandData/LMM still --- OpenSim/Framework/IPrimCounts.cs | 24 ++++++++++++ .../CoreModules/World/Land/PrimCountModule.cs | 39 +++++++++++++++++++ .../World/Land/Tests/PrimCountModuleTests.cs | 8 +++- 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/OpenSim/Framework/IPrimCounts.cs b/OpenSim/Framework/IPrimCounts.cs index 7d362c5741..8ae57fc807 100644 --- a/OpenSim/Framework/IPrimCounts.cs +++ b/OpenSim/Framework/IPrimCounts.cs @@ -31,10 +31,34 @@ namespace OpenSim.Framework { public interface IPrimCounts { + /// + /// Parcel owner owned prims + /// int Owner { get; } + + /// + /// Parcel group owned prims + /// int Group { get; } + + /// + /// Prims owned by others (not parcel owner or parcel group). + /// int Others { get; } + + /// + /// Total prims on the parcel. + /// + int Total { get; } + + /// + /// Prims on the simulator that are owned by the parcel owner, even if they are in other parcels. + /// int Simulator { get; } + + /// + /// Prims per individual users. + /// IUserPrimCounts Users { get; } } diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 72115a847c..2de5c16465 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -324,6 +324,37 @@ namespace OpenSim.Region.CoreModules.World.Land return count; } + + /// + /// Get the total count of owner, group and others prims on the parcel. + /// FIXME: Need to do selected prims once this is reimplemented. + /// + /// + /// + public int GetTotalCount(UUID parcelID) + { + int count = 0; + + lock (m_TaintLock) + { + if (m_Tainted) + Recount(); + + ParcelCounts counts; + if (m_ParcelCounts.TryGetValue(parcelID, out counts)) + { + count = counts.Owner; + count += counts.Group; + count += counts.Others; + } + } + + m_log.DebugFormat( + "[PRIM COUNT MODULE]: GetTotalCount for parcel {0} in {1} returning {2}", + parcelID, m_Scene.RegionInfo.RegionName, count); + + return count; + } /// /// Get the number of prims that are in the entire simulator for the owner of this parcel. @@ -457,6 +488,14 @@ namespace OpenSim.Region.CoreModules.World.Land return m_Parent.GetOthersCount(m_ParcelID); } } + + public int Total + { + get + { + return m_Parent.GetTotalCount(m_ParcelID); + } + } public int Simulator { diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index dd55f980b8..58bd841b1c 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -78,9 +78,10 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Owner, Is.EqualTo(0)); Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Total, Is.EqualTo(0)); Assert.That(pc.Users[m_userId], Is.EqualTo(0)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); - Assert.That(pc.Simulator, Is.EqualTo(0)); + Assert.That(pc.Simulator, Is.EqualTo(0)); SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, 0x01); m_scene.AddNewSceneObject(sog, false); @@ -88,6 +89,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Owner, Is.EqualTo(3)); Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Total, Is.EqualTo(3)); Assert.That(pc.Users[m_userId], Is.EqualTo(3)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(3)); @@ -99,6 +101,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Owner, Is.EqualTo(5)); Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Total, Is.EqualTo(5)); Assert.That(pc.Users[m_userId], Is.EqualTo(5)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(5)); @@ -122,6 +125,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Owner, Is.EqualTo(6)); Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Total, Is.EqualTo(6)); Assert.That(pc.Users[m_userId], Is.EqualTo(6)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(6)); @@ -146,6 +150,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Owner, Is.EqualTo(1)); Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Total, Is.EqualTo(1)); Assert.That(pc.Users[m_userId], Is.EqualTo(1)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(1)); @@ -168,6 +173,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Owner, Is.EqualTo(3)); Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); + Assert.That(pc.Total, Is.EqualTo(3)); Assert.That(pc.Users[m_userId], Is.EqualTo(3)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(3)); From b11e3d33f112f4838ca8dde2d217780affbddce4 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 02:20:16 +0000 Subject: [PATCH 72/95] add save of LLClientView I forgot from last commit --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 0b6b04dc3b..f50637cca5 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -4360,10 +4360,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP updateMessage.OwnerPrims = pc.Owner; updateMessage.GroupPrims = pc.Group; updateMessage.OtherPrims = pc.Others; - updateMessage.SimWideTotalPrims = pc.Simulator; - - // FIXME: Need to do selected prims once this is reimplemented. - updateMessage.TotalPrims = pc.Owner + pc.Group + pc.Others; + updateMessage.TotalPrims = pc.Total; + updateMessage.SimWideTotalPrims = pc.Simulator; // TODO: Need to transfer selected prims to new prim count structure. updateMessage.SelectedPrims = landData.SelectedPrims; From f2d2470c256486df585705313a7fdfdf3d344c1f Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 02:24:32 +0000 Subject: [PATCH 73/95] When an object is duplicated, add it to the full/local id SOG indexes as well as Entities --- OpenSim/Region/Framework/Scenes/SceneGraph.cs | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 1621398bcb..60855b2c36 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -363,6 +363,10 @@ namespace OpenSim.Region.Framework.Scenes if (Entities.ContainsKey(sceneObject.UUID)) return false; + +// m_log.DebugFormat( +// "[SCENEGRAPH]: Adding scene object {0} {1}, with {2} parts on {3}", +// sceneObject.Name, sceneObject.UUID, sceneObject.Parts.Length, m_parentScene.RegionInfo.RegionName); SceneObjectPart[] children = sceneObject.Parts; @@ -1798,7 +1802,10 @@ namespace OpenSim.Region.Framework.Scenes /// public SceneObjectGroup DuplicateObject(uint originalPrimID, Vector3 offset, uint flags, UUID AgentID, UUID GroupID, Quaternion rot) { - //m_log.DebugFormat("[SCENE]: Duplication of object {0} at offset {1} requested by agent {2}", originalPrim, offset, AgentID); +// m_log.DebugFormat( +// "[SCENE]: Duplication of object {0} at offset {1} requested by agent {2}", +// originalPrimID, offset, AgentID); + SceneObjectGroup original = GetGroupByPrim(originalPrimID); if (original != null) { @@ -1829,7 +1836,28 @@ namespace OpenSim.Region.Framework.Scenes copy.RootPart.SalePrice = 10; } + // FIXME: This section needs to be refactored so that it just calls AddSceneObject() Entities.Add(copy); + + lock (SceneObjectGroupsByFullID) + SceneObjectGroupsByFullID[copy.UUID] = copy; + + SceneObjectPart[] children = copy.Parts; + + lock (SceneObjectGroupsByFullPartID) + { + SceneObjectGroupsByFullPartID[copy.UUID] = copy; + foreach (SceneObjectPart part in children) + SceneObjectGroupsByFullPartID[part.UUID] = copy; + } + + lock (SceneObjectGroupsByLocalPartID) + { + SceneObjectGroupsByLocalPartID[copy.LocalId] = copy; + foreach (SceneObjectPart part in children) + SceneObjectGroupsByLocalPartID[copy.LocalId] = copy; + } + // PROBABLE END OF FIXME // Since we copy from a source group that is in selected // state, but the copy is shown deselected in the viewer, From 482686daab055d4d2d878b238059b442e64122f4 Mon Sep 17 00:00:00 2001 From: SignpostMarv Martin Date: Tue, 15 Mar 2011 10:29:24 +0000 Subject: [PATCH 74/95] WebkeyAuthenticationService is now no longer a stub! Signed-off-by: SignpostMarv Martin --- .../WebkeyAuthenticationService.cs | 40 ++++++++++++++++--- 1 file changed, 35 insertions(+), 5 deletions(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs index d1a5b0f041..a0729580c8 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs @@ -31,6 +31,9 @@ using OpenSim.Services.Interfaces; using log4net; using Nini.Config; using System.Reflection; +using OpenSim.Data; +using OpenSim.Framework; +using OpenSim.Framework.Console; namespace OpenSim.Services.AuthenticationService { @@ -43,17 +46,44 @@ namespace OpenSim.Services.AuthenticationService public class WebkeyAuthenticationService : AuthenticationServiceBase, IAuthenticationService { -// private static readonly ILog m_log = -// LogManager.GetLogger( -// MethodBase.GetCurrentMethod().DeclaringType); - + private static readonly ILog m_log = + LogManager.GetLogger( + MethodBase.GetCurrentMethod().DeclaringType); + public WebkeyAuthenticationService(IConfigSource config) : - base(config) + base(config) { } public string Authenticate(UUID principalID, string password, int lifetime) { + m_log.InfoFormat("[Authenticate]: Trying a web key authenticate"); + if (new UUID(password) == UUID.Zero) + { + m_log.InfoFormat("[Authenticate]: NULL_KEY is not a valid web_login_key"); + } + else + { + AuthenticationData data = m_Database.Get(principalID); + if (data != null && data.Data != null) + { + if (data.Data.ContainsKey("webLoginKey")) + { + m_log.InfoFormat("[Authenticate]: Trying a web key authentication"); + string key = data.Data["webLoginKey"].ToString(); + m_log.DebugFormat("[WEB LOGIN AUTH]: got {0} for key in db vs {1}", key, password); + if (key == password) + { + data.Data["webLoginKey"] = UUID.Zero.ToString(); + m_Database.Store(data); + return GetToken(principalID, lifetime); + } + }else{ + m_log.InfoFormat("[Authenticate]: no col webLoginKey in passwd.db"); + } + } + m_log.DebugFormat("[AUTH SERVICE]: PrincipalID {0} or its data not found", principalID); + } return String.Empty; } } From af3956348fc58613948889e5f85030a454684970 Mon Sep 17 00:00:00 2001 From: SignpostMarv Martin Date: Tue, 15 Mar 2011 10:29:42 +0000 Subject: [PATCH 75/95] Adding a combined auth service, allowing users to login with either web login or password Signed-off-by: SignpostMarv Martin --- .../WebkeyOrPasswordAuthenticationService.cs | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs diff --git a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs new file mode 100644 index 0000000000..0f2fd939a1 --- /dev/null +++ b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using OpenMetaverse; +using OpenSim.Services.Interfaces; +using log4net; +using Nini.Config; +using System.Reflection; +using OpenSim.Data; +using OpenSim.Framework; +using OpenSim.Framework.Console; + +namespace OpenSim.Services.AuthenticationService +{ + public class WebkeyOrPasswordAuthenticationService : AuthenticationServiceBase, IAuthenticationService + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + public WebkeyOrPasswordAuthenticationService(IConfigSource config) + : base(config) + { + } + + public string Authenticate(UUID principalID, string password, int lifetime) + { + AuthenticationData data = m_Database.Get(principalID); + if (data != null && data.Data != null) + { + if (data.Data.ContainsKey("webLoginKey")) + { + m_log.InfoFormat("[Authenticate]: Trying a web key authentication"); + if (new UUID(password) == UUID.Zero) + { + m_log.InfoFormat("[Authenticate]: NULL_KEY is not a valid web_login_key"); + } + else + { + string key = data.Data["webLoginKey"].ToString(); + m_log.DebugFormat("[WEB LOGIN AUTH]: got {0} for key in db vs {1}", key, password); + if (key == password) + { + data.Data["webLoginKey"] = UUID.Zero.ToString(); + m_Database.Store(data); + return GetToken(principalID, lifetime); + } + } + } + if (data.Data.ContainsKey("passwordHash") && data.Data.ContainsKey("passwordSalt")) + { + m_log.InfoFormat("[Authenticate]: Trying a password authentication"); + string hashed = Util.Md5Hash(password + ":" + data.Data["passwordSalt"].ToString()); + m_log.DebugFormat("[PASS AUTH]: got {0}; hashed = {1}; stored = {2}", password, hashed, data.Data["passwordHash"].ToString()); + if (data.Data["passwordHash"].ToString() == hashed) + { + return GetToken(principalID, lifetime); + } + } + m_log.DebugFormat("[AUTH SERVICE]: Both password and webLoginKey-based login failed for PrincipalID {0}", principalID); + } + else + { + m_log.DebugFormat("[AUTH SERVICE]: PrincipalID {0} or its data not found", principalID); + } + return string.Empty; + } + } +} From 6153c4597322ccef6bdb7662b6461faa260b13ea Mon Sep 17 00:00:00 2001 From: SignpostMarv Martin Date: Tue, 15 Mar 2011 10:29:51 +0000 Subject: [PATCH 76/95] LLLoginHandlers now supports both password & web login Signed-off-by: SignpostMarv Martin --- .../Server/Handlers/Login/LLLoginHandlers.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs index 48f5f99ed3..8048f861de 100644 --- a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs +++ b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs @@ -74,12 +74,23 @@ namespace OpenSim.Server.Handlers.Login if (requestData != null) { if (requestData.ContainsKey("first") && requestData["first"] != null && - requestData.ContainsKey("last") && requestData["last"] != null && - requestData.ContainsKey("passwd") && requestData["passwd"] != null) + requestData.ContainsKey("last") && requestData["last"] != null && ( + (requestData.ContainsKey("passwd") && requestData["passwd"] != null) || + (!requestData.ContainsKey("passwd") && requestData.ContainsKey("web_login_key") && requestData["web_login_key"] != null && requestData["web_login_key"].ToString() != UUID.Zero.ToString()) + )) { string first = requestData["first"].ToString(); string last = requestData["last"].ToString(); - string passwd = requestData["passwd"].ToString(); + string passwd = null; + if (requestData.ContainsKey("passwd")) + { + passwd = requestData["passwd"].ToString(); + } + else if (requestData.ContainsKey("web_login_key")) + { + passwd = "$1$" + requestData["web_login_key"].ToString(); + m_log.InfoFormat("[LOGIN]: XMLRPC Login Req key {0}", passwd); + } string startLocation = string.Empty; UUID scopeID = UUID.Zero; if (requestData["scope_id"] != null) @@ -103,7 +114,7 @@ namespace OpenSim.Server.Handlers.Login string id0 = "Unknown"; if (requestData.Contains("id0") && requestData["id0"] != null) id0 = requestData["id0"].ToString(); - + //m_log.InfoFormat("[LOGIN]: XMLRPC Login Requested for {0} {1}, starting in {2}, using {3}", first, last, startLocation, clientVersion); LoginResponse reply = null; From 0e808950fbb54271d478d29669bf035949731114 Mon Sep 17 00:00:00 2001 From: SignpostMarv Martin Date: Mon, 21 Mar 2011 14:47:10 +0000 Subject: [PATCH 77/95] InfoFormat > DebugFormat Signed-off-by: SignpostMarv Martin --- .../AuthenticationService/WebkeyAuthenticationService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs index a0729580c8..59240264e6 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs @@ -79,7 +79,7 @@ namespace OpenSim.Services.AuthenticationService return GetToken(principalID, lifetime); } }else{ - m_log.InfoFormat("[Authenticate]: no col webLoginKey in passwd.db"); + m_log.DebugFormat("[Authenticate]: no col webLoginKey in passwd.db"); } } m_log.DebugFormat("[AUTH SERVICE]: PrincipalID {0} or its data not found", principalID); From 3bc859a834c50634281df3d52166fc68d7c3c3ba Mon Sep 17 00:00:00 2001 From: SignpostMarv Martin Date: Mon, 21 Mar 2011 15:42:57 +0000 Subject: [PATCH 78/95] Making combined auth service re-use the existing auth services instead of duplicating code Signed-off-by: SignpostMarv Martin --- .../WebkeyOrPasswordAuthenticationService.cs | 40 +++++++++---------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs index 0f2fd939a1..b8bb090552 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs @@ -8,58 +8,56 @@ using System.Reflection; using OpenSim.Data; using OpenSim.Framework; using OpenSim.Framework.Console; +using OpenSim.Server.Base; namespace OpenSim.Services.AuthenticationService { public class WebkeyOrPasswordAuthenticationService : AuthenticationServiceBase, IAuthenticationService { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private IConfigSource config; public WebkeyOrPasswordAuthenticationService(IConfigSource config) : base(config) { + this.config = config; } public string Authenticate(UUID principalID, string password, int lifetime) { AuthenticationData data = m_Database.Get(principalID); + IAuthenticationService svc; + Object[] args = new Object[] { config }; + string result = String.Empty; if (data != null && data.Data != null) { if (data.Data.ContainsKey("webLoginKey")) { - m_log.InfoFormat("[Authenticate]: Trying a web key authentication"); - if (new UUID(password) == UUID.Zero) + svc = ServerUtils.LoadPlugin("OpenSim.Services.AuthenticationService.dll", "WebkeyAuthenticationService", args); + result = svc.Authenticate(principalID, password, lifetime); + if (result == String.Empty) { - m_log.InfoFormat("[Authenticate]: NULL_KEY is not a valid web_login_key"); - } - else - { - string key = data.Data["webLoginKey"].ToString(); - m_log.DebugFormat("[WEB LOGIN AUTH]: got {0} for key in db vs {1}", key, password); - if (key == password) - { - data.Data["webLoginKey"] = UUID.Zero.ToString(); - m_Database.Store(data); - return GetToken(principalID, lifetime); - } + m_log.DebugFormat("[Authenticate]: Web Login failed for PrincipalID {0}", principalID); } } if (data.Data.ContainsKey("passwordHash") && data.Data.ContainsKey("passwordSalt")) { - m_log.InfoFormat("[Authenticate]: Trying a password authentication"); - string hashed = Util.Md5Hash(password + ":" + data.Data["passwordSalt"].ToString()); - m_log.DebugFormat("[PASS AUTH]: got {0}; hashed = {1}; stored = {2}", password, hashed, data.Data["passwordHash"].ToString()); - if (data.Data["passwordHash"].ToString() == hashed) + svc = ServerUtils.LoadPlugin("OpenSim.Services.AuthenticationService.dll", "PasswordAuthenticationService", args); + result = svc.Authenticate(principalID, password, lifetime); + if (result == String.Empty) { - return GetToken(principalID, lifetime); + m_log.DebugFormat("[Authenticate]: Password login failed for PrincipalID {0}", principalID); } } - m_log.DebugFormat("[AUTH SERVICE]: Both password and webLoginKey-based login failed for PrincipalID {0}", principalID); + if (result == string.Empty) + { + m_log.DebugFormat("[AUTH SERVICE]: Both password and webLoginKey-based login failed for PrincipalID {0}", principalID); + } } else { m_log.DebugFormat("[AUTH SERVICE]: PrincipalID {0} or its data not found", principalID); } - return string.Empty; + return result; } } } From e93531e1240348f18abb4ef88a0def227026e8f3 Mon Sep 17 00:00:00 2001 From: SignpostMarv Martin Date: Thu, 24 Mar 2011 16:21:12 +0000 Subject: [PATCH 79/95] Fixing bug that occurs when using web login- the result was not checked --- .../WebkeyOrPasswordAuthenticationService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs index b8bb090552..3a47e97de6 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs @@ -39,7 +39,7 @@ namespace OpenSim.Services.AuthenticationService m_log.DebugFormat("[Authenticate]: Web Login failed for PrincipalID {0}", principalID); } } - if (data.Data.ContainsKey("passwordHash") && data.Data.ContainsKey("passwordSalt")) + if (result == string.Empty && data.Data.ContainsKey("passwordHash") && data.Data.ContainsKey("passwordSalt")) { svc = ServerUtils.LoadPlugin("OpenSim.Services.AuthenticationService.dll", "PasswordAuthenticationService", args); result = svc.Authenticate(principalID, password, lifetime); From 3f4be42a87f77d5da7e6cafd4fb98ff6a502636d Mon Sep 17 00:00:00 2001 From: SignpostMarv Martin Date: Thu, 24 Mar 2011 16:46:21 +0000 Subject: [PATCH 80/95] Altering log feedback --- .../WebkeyAuthenticationService.cs | 23 ++++++++++--------- .../WebkeyOrPasswordAuthenticationService.cs | 8 ++++--- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs index 59240264e6..2344c0ed4e 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyAuthenticationService.cs @@ -57,10 +57,9 @@ namespace OpenSim.Services.AuthenticationService public string Authenticate(UUID principalID, string password, int lifetime) { - m_log.InfoFormat("[Authenticate]: Trying a web key authenticate"); if (new UUID(password) == UUID.Zero) { - m_log.InfoFormat("[Authenticate]: NULL_KEY is not a valid web_login_key"); + m_log.DebugFormat("[AUTH SERVICE]: UUID.Zero is not a valid web_login_key on PrincipalID {0}", principalID); } else { @@ -69,17 +68,19 @@ namespace OpenSim.Services.AuthenticationService { if (data.Data.ContainsKey("webLoginKey")) { - m_log.InfoFormat("[Authenticate]: Trying a web key authentication"); string key = data.Data["webLoginKey"].ToString(); - m_log.DebugFormat("[WEB LOGIN AUTH]: got {0} for key in db vs {1}", key, password); - if (key == password) - { - data.Data["webLoginKey"] = UUID.Zero.ToString(); - m_Database.Store(data); - return GetToken(principalID, lifetime); - } + if (key == password) + { + data.Data["webLoginKey"] = UUID.Zero.ToString(); + m_Database.Store(data); + return GetToken(principalID, lifetime); + } + else + { + m_log.DebugFormat("[AUTH SERVICE]: web login auth failed, got PrincipalID {0} gave {1} instead of {2}", principalID, password, key); + } }else{ - m_log.DebugFormat("[Authenticate]: no col webLoginKey in passwd.db"); + m_log.DebugFormat("[AUTH SERVICE]: no col webLoginKey in passwd.db"); } } m_log.DebugFormat("[AUTH SERVICE]: PrincipalID {0} or its data not found", principalID); diff --git a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs index 3a47e97de6..c315ef2bd8 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs @@ -32,25 +32,27 @@ namespace OpenSim.Services.AuthenticationService { if (data.Data.ContainsKey("webLoginKey")) { + m_log.DebugFormat("[AUTH SERVICE]: Attempting web key authentication for PrincipalID {0}", principalID); svc = ServerUtils.LoadPlugin("OpenSim.Services.AuthenticationService.dll", "WebkeyAuthenticationService", args); result = svc.Authenticate(principalID, password, lifetime); if (result == String.Empty) { - m_log.DebugFormat("[Authenticate]: Web Login failed for PrincipalID {0}", principalID); + m_log.DebugFormat("[AUTH SERVICE]: Web Login failed for PrincipalID {0}", principalID); } } if (result == string.Empty && data.Data.ContainsKey("passwordHash") && data.Data.ContainsKey("passwordSalt")) { + m_log.DebugFormat("[AUTH SERVICE]: Attempting password authentication for PrincipalID {0}", principalID); svc = ServerUtils.LoadPlugin("OpenSim.Services.AuthenticationService.dll", "PasswordAuthenticationService", args); result = svc.Authenticate(principalID, password, lifetime); if (result == String.Empty) { - m_log.DebugFormat("[Authenticate]: Password login failed for PrincipalID {0}", principalID); + m_log.DebugFormat("[AUTH SERVICE]: Password login failed for PrincipalID {0}", principalID); } } if (result == string.Empty) { - m_log.DebugFormat("[AUTH SERVICE]: Both password and webLoginKey-based login failed for PrincipalID {0}", principalID); + m_log.DebugFormat("[AUTH SERVICE]: Both password and webLoginKey-based authentication failed for PrincipalID {0}", principalID); } } else From 361b3e7ab8313b89475bc644fdcd348e071b951a Mon Sep 17 00:00:00 2001 From: SignpostMarv Martin Date: Thu, 24 Mar 2011 17:04:29 +0000 Subject: [PATCH 81/95] Removing hard-coded plugin loading in favour of direct class instantiation --- .../WebkeyOrPasswordAuthenticationService.cs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs index c315ef2bd8..15dc5be554 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs @@ -16,25 +16,25 @@ namespace OpenSim.Services.AuthenticationService { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private IConfigSource config; + private Dictionary svc_checks; public WebkeyOrPasswordAuthenticationService(IConfigSource config) : base(config) { this.config = config; + svc_checks["web_login_key"] = new WebkeyAuthenticationService(config); + svc_checks["password"] = new PasswordAuthenticationService(config); } public string Authenticate(UUID principalID, string password, int lifetime) { AuthenticationData data = m_Database.Get(principalID); - IAuthenticationService svc; - Object[] args = new Object[] { config }; string result = String.Empty; if (data != null && data.Data != null) { if (data.Data.ContainsKey("webLoginKey")) { m_log.DebugFormat("[AUTH SERVICE]: Attempting web key authentication for PrincipalID {0}", principalID); - svc = ServerUtils.LoadPlugin("OpenSim.Services.AuthenticationService.dll", "WebkeyAuthenticationService", args); - result = svc.Authenticate(principalID, password, lifetime); + result = svc_checks["web_login_key"].Authenticate(principalID, password, lifetime); if (result == String.Empty) { m_log.DebugFormat("[AUTH SERVICE]: Web Login failed for PrincipalID {0}", principalID); @@ -43,8 +43,7 @@ namespace OpenSim.Services.AuthenticationService if (result == string.Empty && data.Data.ContainsKey("passwordHash") && data.Data.ContainsKey("passwordSalt")) { m_log.DebugFormat("[AUTH SERVICE]: Attempting password authentication for PrincipalID {0}", principalID); - svc = ServerUtils.LoadPlugin("OpenSim.Services.AuthenticationService.dll", "PasswordAuthenticationService", args); - result = svc.Authenticate(principalID, password, lifetime); + result = svc_checks["password"].Authenticate(principalID, password, lifetime); if (result == String.Empty) { m_log.DebugFormat("[AUTH SERVICE]: Password login failed for PrincipalID {0}", principalID); From de0730a54ca8b2ede0727212bfc2474c0eff979f Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 02:42:50 +0000 Subject: [PATCH 82/95] Add OpenSim.Server.Base reference in prebuild.xml. Initialize svc_checks dictionary in WebkeyOrPasswordAuthenticationService, which was what was causing the load failure. --- .../WebkeyOrPasswordAuthenticationService.cs | 5 ++++- prebuild.xml | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs index 15dc5be554..bcfd03dd49 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs @@ -15,8 +15,11 @@ namespace OpenSim.Services.AuthenticationService public class WebkeyOrPasswordAuthenticationService : AuthenticationServiceBase, IAuthenticationService { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private IConfigSource config; - private Dictionary svc_checks; + private Dictionary svc_checks + = new Dictionary(); + public WebkeyOrPasswordAuthenticationService(IConfigSource config) : base(config) { diff --git a/prebuild.xml b/prebuild.xml index fac3f208af..c818908d80 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -1059,6 +1059,7 @@ + From 83f48c26d62b148c11776af6d4947fc2397a675d Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 02:43:41 +0000 Subject: [PATCH 83/95] add header file --- .../WebkeyOrPasswordAuthenticationService.cs | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs index bcfd03dd49..00056a6ff1 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs @@ -1,4 +1,31 @@ -using System; +/* + * Copyright (c) Contributors, http://opensimulator.org/ + * See CONTRIBUTORS.TXT for a full list of copyright holders. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the OpenSimulator Project nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; using System.Collections.Generic; using OpenMetaverse; using OpenSim.Services.Interfaces; From 797128a6ad89ea4944074f99db0a30ad7a5e7a3d Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 02:44:46 +0000 Subject: [PATCH 84/95] Rename some member fields to standard m_ OpenSim code convention --- .../WebkeyOrPasswordAuthenticationService.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs index 00056a6ff1..3590e128b1 100644 --- a/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs +++ b/OpenSim/Services/AuthenticationService/WebkeyOrPasswordAuthenticationService.cs @@ -43,16 +43,16 @@ namespace OpenSim.Services.AuthenticationService { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private IConfigSource config; - private Dictionary svc_checks + private IConfigSource m_config; + private Dictionary m_svcChecks = new Dictionary(); public WebkeyOrPasswordAuthenticationService(IConfigSource config) : base(config) { - this.config = config; - svc_checks["web_login_key"] = new WebkeyAuthenticationService(config); - svc_checks["password"] = new PasswordAuthenticationService(config); + this.m_config = config; + m_svcChecks["web_login_key"] = new WebkeyAuthenticationService(config); + m_svcChecks["password"] = new PasswordAuthenticationService(config); } public string Authenticate(UUID principalID, string password, int lifetime) @@ -64,7 +64,7 @@ namespace OpenSim.Services.AuthenticationService if (data.Data.ContainsKey("webLoginKey")) { m_log.DebugFormat("[AUTH SERVICE]: Attempting web key authentication for PrincipalID {0}", principalID); - result = svc_checks["web_login_key"].Authenticate(principalID, password, lifetime); + result = m_svcChecks["web_login_key"].Authenticate(principalID, password, lifetime); if (result == String.Empty) { m_log.DebugFormat("[AUTH SERVICE]: Web Login failed for PrincipalID {0}", principalID); @@ -73,7 +73,7 @@ namespace OpenSim.Services.AuthenticationService if (result == string.Empty && data.Data.ContainsKey("passwordHash") && data.Data.ContainsKey("passwordSalt")) { m_log.DebugFormat("[AUTH SERVICE]: Attempting password authentication for PrincipalID {0}", principalID); - result = svc_checks["password"].Authenticate(principalID, password, lifetime); + result = m_svcChecks["password"].Authenticate(principalID, password, lifetime); if (result == String.Empty) { m_log.DebugFormat("[AUTH SERVICE]: Password login failed for PrincipalID {0}", principalID); @@ -91,4 +91,4 @@ namespace OpenSim.Services.AuthenticationService return result; } } -} +} \ No newline at end of file From 435d72f10651b8c468aa40e866053672c991b210 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Sat, 26 Mar 2011 02:46:00 +0000 Subject: [PATCH 85/95] Add SignpostMarv to contributors --- CONTRIBUTORS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index a0af1ca941..ef00c19b04 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -117,6 +117,7 @@ what it is today. * SachaMagne * Salahzar Stenvaag * sempuki +* SignpostMarv * Snoopy * Strawberry Fride * tglion From fe6900b305392937bf22e54331c558cd667f9b63 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Sun, 27 Mar 2011 19:38:40 -0400 Subject: [PATCH 86/95] Touchup for SQLite --- bin/Mono.Data.Sqlite.dll.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/Mono.Data.Sqlite.dll.config b/bin/Mono.Data.Sqlite.dll.config index 0c5e9412f2..b704035677 100644 --- a/bin/Mono.Data.Sqlite.dll.config +++ b/bin/Mono.Data.Sqlite.dll.config @@ -1,4 +1,4 @@ - + From dd72a69ea54893b9d6d16f7d388e5fe12058fd9e Mon Sep 17 00:00:00 2001 From: Marck Date: Mon, 28 Mar 2011 13:11:23 +0200 Subject: [PATCH 87/95] More touchup for SQLite. Apply the same change to both the 32-bit and 64-bit DLL target paths. This makes the previous addition to the instructions in the README for running on Linux unnecessary. --- bin/Mono.Data.Sqlite.dll.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/Mono.Data.Sqlite.dll.config b/bin/Mono.Data.Sqlite.dll.config index b704035677..6a95476537 100644 --- a/bin/Mono.Data.Sqlite.dll.config +++ b/bin/Mono.Data.Sqlite.dll.config @@ -1,4 +1,4 @@ - + From 5a61c764551b25ae2590a0a12d9ea6c1c0d0f58d Mon Sep 17 00:00:00 2001 From: Marck Date: Mon, 28 Mar 2011 13:33:03 +0200 Subject: [PATCH 88/95] The actual change to README.txt about running on Linux. --- README.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.txt b/README.txt index 8d925b5df6..391a6599d1 100644 --- a/README.txt +++ b/README.txt @@ -44,7 +44,7 @@ for more information. To run OpenSim, from the unpacked distribution type: * cd bin - * LD_LIBRARY_PATH=. mono OpenSim.exe + * mono OpenSim.exe Now see the "Configuring OpenSim" section From 2d209d3844a58a4d27fe15aa5ccd497bbd530707 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 28 Mar 2011 16:46:04 -0700 Subject: [PATCH 89/95] Fix mantis #5413. WARNING: new config variable in section [GridService] of the simulators called Gatekeeper -- intended to have the URL of the grid's Gatekeeper service (so that it can be checked against). See ini.examples. --- .../CoreModules/World/WorldMap/MapSearchModule.cs | 6 +++++- OpenSim/Services/GridService/HypergridLinker.cs | 10 ++++++++++ bin/config-include/GridCommon.ini.example | 6 ++++++ bin/config-include/StandaloneCommon.ini.example | 5 +++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs index 7bb7544e89..f9ef2864e6 100644 --- a/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs +++ b/OpenSim/Region/CoreModules/World/WorldMap/MapSearchModule.cs @@ -100,8 +100,12 @@ namespace OpenSim.Region.CoreModules.World.WorldMap // service wasn't available; maybe still an old GridServer. Try the old API, though it will return only one region regionInfos = new List(); GridRegion info = m_scene.GridService.GetRegionByName(m_scene.RegionInfo.ScopeID, mapName); - if (info != null) regionInfos.Add(info); + if (info != null) + regionInfos.Add(info); } + else if (regionInfos.Count == 0 && mapName.StartsWith("http://")) + remoteClient.SendAlertMessage("Hyperlink could not be established."); + m_log.DebugFormat("[MAPSEARCHMODULE]: search {0} returned {1} regions", mapName, regionInfos.Count); List blocks = new List(); diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs index 12ea453bbc..585d088593 100644 --- a/OpenSim/Services/GridService/HypergridLinker.cs +++ b/OpenSim/Services/GridService/HypergridLinker.cs @@ -65,6 +65,7 @@ namespace OpenSim.Services.GridService protected UUID m_ScopeID = UUID.Zero; protected bool m_Check4096 = true; protected string m_MapTileDirectory = string.Empty; + protected string m_ThisGatekeeper = string.Empty; // Hyperlink regions are hyperlinks on the map public readonly Dictionary m_HyperlinkRegions = new Dictionary(); @@ -123,6 +124,8 @@ namespace OpenSim.Services.GridService m_MapTileDirectory = gridConfig.GetString("MapTileDirectory", "maptiles"); + m_ThisGatekeeper = gridConfig.GetString("Gatekeeper", string.Empty); + m_GatekeeperConnector = new GatekeeperServiceConnector(m_AssetService); m_log.Debug("[HYPERGRID LINKER]: Loaded all services..."); @@ -266,6 +269,13 @@ namespace OpenSim.Services.GridService regInfo.ScopeID = scopeID; regInfo.EstateOwner = ownerID; + // Make sure we're not hyperlinking to regions on this grid! + if (regInfo.ServerURI.Trim(new char[]{'/', ' '}) == m_ThisGatekeeper.Trim(new char[]{'/', ' '})) + { + reason = "Cannot hyperlink to regions on the same grid"; + return false; + } + // Check for free coordinates GridRegion region = m_GridService.GetRegionByPosition(regInfo.ScopeID, regInfo.RegionLocX, regInfo.RegionLocY); if (region != null) diff --git a/bin/config-include/GridCommon.ini.example b/bin/config-include/GridCommon.ini.example index 4dc0e53342..a6fe4b1092 100644 --- a/bin/config-include/GridCommon.ini.example +++ b/bin/config-include/GridCommon.ini.example @@ -45,6 +45,12 @@ ;; Directory for map tile images of linked regions ; MapTileDirectory = "./maptiles" + ; === HG ONLY === + ;; change this to the address of your Gatekeeper service + ;; (usually bundled with the rest of the services in one + ;; Robust server in port 8002, but not always) + Gatekeeper="http://mygridserver.com:8002" + [AvatarService] ; ; change this to your grid-wide grid server diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example index 816e9a6f10..995a33e8e1 100644 --- a/bin/config-include/StandaloneCommon.ini.example +++ b/bin/config-include/StandaloneCommon.ini.example @@ -78,6 +78,11 @@ ;; For example: Region_Welcome_Area = "DefaultRegion, FallbackRegion" + ; === HG ONLY === + ;; change this to the address of your simulator + Gatekeeper="http://127.0.0.1:9000" + + [LibraryModule] ; Set this if you want to change the name of the OpenSim Library ;LibraryName = "My World's Library" From d3771e536645f50401e9737a693fcbb1fb3b6a01 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 28 Mar 2011 16:48:12 -0700 Subject: [PATCH 90/95] Added code to load a terrain tile of tiff/jpg format. Previously it only worked for one single region. --- .../Terrain/FileLoaders/GenericSystemDrawing.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs index 6676ec8100..d6fa0937e5 100644 --- a/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs +++ b/OpenSim/Region/CoreModules/World/Terrain/FileLoaders/GenericSystemDrawing.cs @@ -62,9 +62,20 @@ namespace OpenSim.Region.CoreModules.World.Terrain.FileLoaders return LoadBitmap(new Bitmap(filename)); } - public ITerrainChannel LoadFile(string filename, int x, int y, int fileWidth, int fileHeight, int w, int h) + public virtual ITerrainChannel LoadFile(string filename, int offsetX, int offsetY, int fileWidth, int fileHeight, int w, int h) { - throw new NotImplementedException(); + Bitmap bitmap = new Bitmap(filename); + ITerrainChannel retval = new TerrainChannel(true); + + for (int x = 0; x < retval.Width; x++) + { + for (int y = 0; y < retval.Height; y++) + { + retval[x, y] = bitmap.GetPixel(offsetX * retval.Width + x, (bitmap.Height - (retval.Height * (offsetY + 1))) + retval.Height - y - 1).GetBrightness() * 128; + } + } + + return retval; } public virtual ITerrainChannel LoadStream(Stream stream) From 309eb712a32fe14f593941b9f0a5ce41f10bcd7f Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Mon, 28 Mar 2011 19:34:55 -0700 Subject: [PATCH 91/95] Improvement over 2 commits ago: make the hyperlink check understand port 80. --- .../Services/GridService/HypergridLinker.cs | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs index 585d088593..c5390475f2 100644 --- a/OpenSim/Services/GridService/HypergridLinker.cs +++ b/OpenSim/Services/GridService/HypergridLinker.cs @@ -66,6 +66,7 @@ namespace OpenSim.Services.GridService protected bool m_Check4096 = true; protected string m_MapTileDirectory = string.Empty; protected string m_ThisGatekeeper = string.Empty; + protected Uri m_ThisGatekeeperURI = null; // Hyperlink regions are hyperlinks on the map public readonly Dictionary m_HyperlinkRegions = new Dictionary(); @@ -125,6 +126,14 @@ namespace OpenSim.Services.GridService m_MapTileDirectory = gridConfig.GetString("MapTileDirectory", "maptiles"); m_ThisGatekeeper = gridConfig.GetString("Gatekeeper", string.Empty); + try + { + m_ThisGatekeeperURI = new Uri(m_ThisGatekeeper); + } + catch + { + m_log.WarnFormat("[HYPERGRID LINKER]: Malformed URL in [GridService], variable Gatekeeper = {0}", m_ThisGatekeeper); + } m_GatekeeperConnector = new GatekeeperServiceConnector(m_AssetService); @@ -249,6 +258,8 @@ namespace OpenSim.Services.GridService remoteRegionName, xloc / Constants.RegionSize, yloc / Constants.RegionSize); reason = string.Empty; + Uri uri = null; + regInfo = new GridRegion(); if ( externalPort > 0) regInfo.HttpPort = externalPort; @@ -259,8 +270,17 @@ namespace OpenSim.Services.GridService else regInfo.ExternalHostName = "0.0.0.0"; if ( serverURI != null) + { regInfo.ServerURI = serverURI; - + try + { + uri = new Uri(serverURI); + regInfo.ExternalHostName = uri.Host; + regInfo.HttpPort = (uint)uri.Port; + } + catch {} + } + if ( remoteRegionName != string.Empty ) regInfo.RegionName = remoteRegionName; @@ -270,11 +290,16 @@ namespace OpenSim.Services.GridService regInfo.EstateOwner = ownerID; // Make sure we're not hyperlinking to regions on this grid! - if (regInfo.ServerURI.Trim(new char[]{'/', ' '}) == m_ThisGatekeeper.Trim(new char[]{'/', ' '})) + if (m_ThisGatekeeperURI != null) { - reason = "Cannot hyperlink to regions on the same grid"; - return false; + if (regInfo.ExternalHostName == m_ThisGatekeeperURI.Host && regInfo.HttpPort == m_ThisGatekeeperURI.Port) + { + reason = "Cannot hyperlink to regions on the same grid"; + return false; + } } + else + m_log.WarnFormat("[HYPERGRID LINKER]: Please set this grid's Gatekeeper's address in [GridService]!"); // Check for free coordinates GridRegion region = m_GridService.GetRegionByPosition(regInfo.ScopeID, regInfo.RegionLocX, regInfo.RegionLocY); From fe258753a04706a0f760743b410611bb299b0bc1 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Tue, 29 Mar 2011 23:07:01 +0100 Subject: [PATCH 92/95] disable prim count debug logging temporarily --- .../ClientStack/LindenUDP/LLClientView.cs | 2 +- .../CoreModules/World/Land/PrimCountModule.cs | 68 ++++++++++--------- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index f50637cca5..8ebcabbc73 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -4276,7 +4276,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) { - m_log.DebugFormat("[LLCLIENTVIEW]: Sending land properties for {0} to {1}", lo.LandData.GlobalID, Name); +// m_log.DebugFormat("[LLCLIENTVIEW]: Sending land properties for {0} to {1}", lo.LandData.GlobalID, Name); LandData landData = lo.LandData; diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index 2de5c16465..d126b26a43 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -122,10 +122,10 @@ namespace OpenSim.Region.CoreModules.World.Land { if (!m_Tainted) AddObject(obj); - else - m_log.DebugFormat( - "[PRIM COUNT MODULE]: Ignoring OnParcelPrimCountAdd() for {0} on {1} since count is tainted", - obj.Name, m_Scene.RegionInfo.RegionName); +// else +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: Ignoring OnParcelPrimCountAdd() for {0} on {1} since count is tainted", +// obj.Name, m_Scene.RegionInfo.RegionName); } } @@ -137,17 +137,17 @@ namespace OpenSim.Region.CoreModules.World.Land { if (!m_Tainted) RemoveObject(obj); - else - m_log.DebugFormat( - "[PRIM COUNT MODULE]: Ignoring OnObjectBeingRemovedFromScene() for {0} on {1} since count is tainted", - obj.Name, m_Scene.RegionInfo.RegionName); +// else +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: Ignoring OnObjectBeingRemovedFromScene() for {0} on {1} since count is tainted", +// obj.Name, m_Scene.RegionInfo.RegionName); } } private void OnParcelPrimCountTainted() { - m_log.DebugFormat( - "[PRIM COUNT MODULE]: OnParcelPrimCountTainted() called on {0}", m_Scene.RegionInfo.RegionName); +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: OnParcelPrimCountTainted() called on {0}", m_Scene.RegionInfo.RegionName); lock (m_TaintLock) m_Tainted = true; @@ -174,7 +174,7 @@ namespace OpenSim.Region.CoreModules.World.Land // NOTE: Call under Taint Lock private void AddObject(SceneObjectGroup obj) { - m_log.DebugFormat("[PRIM COUNT MODULE]: Adding object {0} {1} to prim count", obj.Name, obj.UUID); +// m_log.DebugFormat("[PRIM COUNT MODULE]: Adding object {0} {1} to prim count", obj.Name, obj.UUID); if (obj.IsAttachment) return; @@ -225,13 +225,15 @@ namespace OpenSim.Region.CoreModules.World.Land // NOTE: Call under Taint Lock private void RemoveObject(SceneObjectGroup obj) { - m_log.DebugFormat("[PRIM COUNT MODULE]: Removing object {0} {1} from prim count", obj.Name, obj.UUID); +// m_log.DebugFormat("[PRIM COUNT MODULE]: Removing object {0} {1} from prim count", obj.Name, obj.UUID); + + // Currently this is being done by tainting the count instead. } public IPrimCounts GetPrimCounts(UUID parcelID) { - m_log.DebugFormat( - "[PRIM COUNT MODULE]: GetPrimCounts for parcel {0} in {1}", parcelID, m_Scene.RegionInfo.RegionName); +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: GetPrimCounts for parcel {0} in {1}", parcelID, m_Scene.RegionInfo.RegionName); PrimCounts primCounts; @@ -266,9 +268,9 @@ namespace OpenSim.Region.CoreModules.World.Land count = counts.Owner; } - m_log.DebugFormat( - "[PRIM COUNT MODULE]: GetOwnerCount for parcel {0} in {1} returning {2}", - parcelID, m_Scene.RegionInfo.RegionName, count); +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: GetOwnerCount for parcel {0} in {1} returning {2}", +// parcelID, m_Scene.RegionInfo.RegionName, count); return count; } @@ -292,9 +294,9 @@ namespace OpenSim.Region.CoreModules.World.Land count = counts.Group; } - m_log.DebugFormat( - "[PRIM COUNT MODULE]: GetGroupCount for parcel {0} in {1} returning {2}", - parcelID, m_Scene.RegionInfo.RegionName, count); +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: GetGroupCount for parcel {0} in {1} returning {2}", +// parcelID, m_Scene.RegionInfo.RegionName, count); return count; } @@ -318,9 +320,9 @@ namespace OpenSim.Region.CoreModules.World.Land count = counts.Others; } - m_log.DebugFormat( - "[PRIM COUNT MODULE]: GetOthersCount for parcel {0} in {1} returning {2}", - parcelID, m_Scene.RegionInfo.RegionName, count); +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: GetOthersCount for parcel {0} in {1} returning {2}", +// parcelID, m_Scene.RegionInfo.RegionName, count); return count; } @@ -349,9 +351,9 @@ namespace OpenSim.Region.CoreModules.World.Land } } - m_log.DebugFormat( - "[PRIM COUNT MODULE]: GetTotalCount for parcel {0} in {1} returning {2}", - parcelID, m_Scene.RegionInfo.RegionName, count); +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: GetTotalCount for parcel {0} in {1} returning {2}", +// parcelID, m_Scene.RegionInfo.RegionName, count); return count; } @@ -379,9 +381,9 @@ namespace OpenSim.Region.CoreModules.World.Land } } - m_log.DebugFormat( - "[PRIM COUNT MODULE]: GetOthersCount for parcel {0} in {1} returning {2}", - parcelID, m_Scene.RegionInfo.RegionName, count); +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: GetOthersCount for parcel {0} in {1} returning {2}", +// parcelID, m_Scene.RegionInfo.RegionName, count); return count; } @@ -410,9 +412,9 @@ namespace OpenSim.Region.CoreModules.World.Land } } - m_log.DebugFormat( - "[PRIM COUNT MODULE]: GetUserCount for user {0} in parcel {1} in region {2} returning {3}", - userID, parcelID, m_Scene.RegionInfo.RegionName, count); +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: GetUserCount for user {0} in parcel {1} in region {2} returning {3}", +// userID, parcelID, m_Scene.RegionInfo.RegionName, count); return count; } @@ -420,7 +422,7 @@ namespace OpenSim.Region.CoreModules.World.Land // NOTE: This method MUST be called while holding the taint lock! private void Recount() { - m_log.DebugFormat("[PRIM COUNT MODULE]: Recounting prims on {0}", m_Scene.RegionInfo.RegionName); +// m_log.DebugFormat("[PRIM COUNT MODULE]: Recounting prims on {0}", m_Scene.RegionInfo.RegionName); m_OwnerMap.Clear(); m_SimwideCounts.Clear(); From 8b16f7d976dc60b06f6d08e9d9d853ae69de5fc9 Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 30 Mar 2011 00:13:07 +0100 Subject: [PATCH 93/95] (re)implement selected prim count. This does not currently count objects that are sat upon (which the viewer ui implies should be included in this count) --- OpenSim/Framework/IPrimCounts.cs | 5 +++ .../ClientStack/LindenUDP/LLClientView.cs | 44 +++++++++---------- .../CoreModules/World/Land/PrimCountModule.cs | 43 ++++++++++++++++-- .../World/Land/Tests/PrimCountModuleTests.cs | 6 +++ 4 files changed, 73 insertions(+), 25 deletions(-) diff --git a/OpenSim/Framework/IPrimCounts.cs b/OpenSim/Framework/IPrimCounts.cs index 8ae57fc807..3e12348e1b 100644 --- a/OpenSim/Framework/IPrimCounts.cs +++ b/OpenSim/Framework/IPrimCounts.cs @@ -45,6 +45,11 @@ namespace OpenSim.Framework /// Prims owned by others (not parcel owner or parcel group). /// int Others { get; } + + /// + /// Selected prims + /// + int Selected { get; } /// /// Total prims on the parcel. diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 8ebcabbc73..2faffae58e 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -4343,28 +4343,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP } updateMessage.SnapSelection = snap_selection; - updateMessage.SnapshotID = landData.SnapshotID; - updateMessage.Status = (ParcelStatus) landData.Status; - updateMessage.UserLocation = landData.UserLocation; - updateMessage.UserLookAt = landData.UserLookAt; + updateMessage.SnapshotID = landData.SnapshotID; + updateMessage.Status = (ParcelStatus) landData.Status; + updateMessage.UserLocation = landData.UserLocation; + updateMessage.UserLookAt = landData.UserLookAt; - updateMessage.MediaType = landData.MediaType; - updateMessage.MediaDesc = landData.MediaDescription; - updateMessage.MediaWidth = landData.MediaWidth; - updateMessage.MediaHeight = landData.MediaHeight; - updateMessage.MediaLoop = landData.MediaLoop; - updateMessage.ObscureMusic = landData.ObscureMusic; - updateMessage.ObscureMedia = landData.ObscureMedia; + updateMessage.MediaType = landData.MediaType; + updateMessage.MediaDesc = landData.MediaDescription; + updateMessage.MediaWidth = landData.MediaWidth; + updateMessage.MediaHeight = landData.MediaHeight; + updateMessage.MediaLoop = landData.MediaLoop; + updateMessage.ObscureMusic = landData.ObscureMusic; + updateMessage.ObscureMedia = landData.ObscureMedia; IPrimCounts pc = lo.PrimCounts; - updateMessage.OwnerPrims = pc.Owner; - updateMessage.GroupPrims = pc.Group; - updateMessage.OtherPrims = pc.Others; - updateMessage.TotalPrims = pc.Total; - updateMessage.SimWideTotalPrims = pc.Simulator; - - // TODO: Need to transfer selected prims to new prim count structure. - updateMessage.SelectedPrims = landData.SelectedPrims; + updateMessage.OwnerPrims = pc.Owner; + updateMessage.GroupPrims = pc.Group; + updateMessage.OtherPrims = pc.Others; + updateMessage.SelectedPrims = pc.Selected; + updateMessage.TotalPrims = pc.Total; + updateMessage.SimWideTotalPrims = pc.Simulator; try { @@ -4372,13 +4370,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (eq != null) { eq.ParcelProperties(updateMessage, this.AgentId); - } else { - m_log.Warn("No EQ Interface when sending parcel data."); + } + else + { + m_log.Warn("[LLCLIENTVIEW]: No EQ Interface when sending parcel data."); } } catch (Exception ex) { - m_log.Error("Unable to send parcel data via eventqueue - exception: " + ex.ToString()); + m_log.Error("[LLCLIENTVIEW]: Unable to send parcel data via eventqueue - exception: " + ex.ToString()); } } diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index d126b26a43..ab0e88e528 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -45,13 +45,13 @@ namespace OpenSim.Region.CoreModules.World.Land public int Owner = 0; public int Group = 0; public int Others = 0; - public Dictionary Users = - new Dictionary (); + public int Selected = 0; + public Dictionary Users = new Dictionary (); } public class PrimCountModule : IPrimCountModule, INonSharedRegionModule { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); +// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private Scene m_Scene; private Dictionary m_PrimCounts = @@ -219,6 +219,9 @@ namespace OpenSim.Region.CoreModules.World.Land else parcelCounts.Others += partCount; } + + if (obj.IsSelected) + parcelCounts.Selected += partCount; } } @@ -327,6 +330,32 @@ namespace OpenSim.Region.CoreModules.World.Land return count; } + /// + /// Get the number of selected prims. + /// + /// + /// + public int GetSelectedCount(UUID parcelID) + { + int count = 0; + + lock (m_TaintLock) + { + if (m_Tainted) + Recount(); + + ParcelCounts counts; + if (m_ParcelCounts.TryGetValue(parcelID, out counts)) + count = counts.Selected; + } + +// m_log.DebugFormat( +// "[PRIM COUNT MODULE]: GetSelectedCount for parcel {0} in {1} returning {2}", +// parcelID, m_Scene.RegionInfo.RegionName, count); + + return count; + } + /// /// Get the total count of owner, group and others prims on the parcel. /// FIXME: Need to do selected prims once this is reimplemented. @@ -491,6 +520,14 @@ namespace OpenSim.Region.CoreModules.World.Land } } + public int Selected + { + get + { + return m_Parent.GetSelectedCount(m_ParcelID); + } + } + public int Total { get diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs index 58bd841b1c..5a60f22a48 100644 --- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs +++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs @@ -79,6 +79,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); Assert.That(pc.Total, Is.EqualTo(0)); + Assert.That(pc.Selected, Is.EqualTo(0)); Assert.That(pc.Users[m_userId], Is.EqualTo(0)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(0)); @@ -90,6 +91,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); Assert.That(pc.Total, Is.EqualTo(3)); + Assert.That(pc.Selected, Is.EqualTo(0)); Assert.That(pc.Users[m_userId], Is.EqualTo(3)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(3)); @@ -102,6 +104,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); Assert.That(pc.Total, Is.EqualTo(5)); + Assert.That(pc.Selected, Is.EqualTo(0)); Assert.That(pc.Users[m_userId], Is.EqualTo(5)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(5)); @@ -126,6 +129,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); Assert.That(pc.Total, Is.EqualTo(6)); + Assert.That(pc.Selected, Is.EqualTo(0)); Assert.That(pc.Users[m_userId], Is.EqualTo(6)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(6)); @@ -151,6 +155,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); Assert.That(pc.Total, Is.EqualTo(1)); + Assert.That(pc.Selected, Is.EqualTo(0)); Assert.That(pc.Users[m_userId], Is.EqualTo(1)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(1)); @@ -174,6 +179,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests Assert.That(pc.Group, Is.EqualTo(0)); Assert.That(pc.Others, Is.EqualTo(0)); Assert.That(pc.Total, Is.EqualTo(3)); + Assert.That(pc.Selected, Is.EqualTo(0)); Assert.That(pc.Users[m_userId], Is.EqualTo(3)); Assert.That(pc.Users[m_dummyUserId], Is.EqualTo(0)); Assert.That(pc.Simulator, Is.EqualTo(3)); From fe623f09003d658cdef6620300988afce57539b7 Mon Sep 17 00:00:00 2001 From: Dan Lake Date: Tue, 29 Mar 2011 16:29:00 -0700 Subject: [PATCH 94/95] Updated dev code to work with latest changes in opensim master --- .../RegionSync/RegionSyncModule/RegionSyncAvatar.cs | 5 +++++ OpenSim/Region/Framework/Scenes/SceneGraph.cs | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncAvatar.cs b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncAvatar.cs index b258b80983..4f24ae5d7f 100644 --- a/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncAvatar.cs +++ b/OpenSim/Region/CoreModules/RegionSync/RegionSyncModule/RegionSyncAvatar.cs @@ -978,6 +978,11 @@ namespace OpenSim.Region.CoreModules.RegionSync.RegionSyncModule public void SendDetailedEstateData(UUID invoice, string estateName, uint estateID, uint parentEstate, uint estateFlags, uint sunPosition, UUID covenant, string abuseEmail, UUID estateOwner) { + } + + public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, ILandObject lo, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) + { + } public void SendLandProperties(int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int parcelObjectCapacity, int simObjectCapacity, uint regionFlags) diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs index 1c8eb541cd..2ba40dc688 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs @@ -2192,11 +2192,11 @@ namespace OpenSim.Region.Framework.Scenes SceneObjectGroupsByFullID[part.UUID] = sceneObject; } - lock (SceneObjectGroupsByLocalID) + lock (SceneObjectGroupsByLocalPartID) { - SceneObjectGroupsByLocalID[sceneObject.LocalId] = sceneObject; + SceneObjectGroupsByLocalPartID[sceneObject.LocalId] = sceneObject; foreach (SceneObjectPart part in children) - SceneObjectGroupsByLocalID[part.LocalId] = sceneObject; + SceneObjectGroupsByLocalPartID[part.LocalId] = sceneObject; } return updateResult; @@ -2213,11 +2213,11 @@ namespace OpenSim.Region.Framework.Scenes SceneObjectGroupsByFullID[newPart.UUID] = parentGroup; } - lock (SceneObjectGroupsByLocalID) + lock (SceneObjectGroupsByLocalPartID) { - SceneObjectGroupsByLocalID[parentGroup.LocalId] = parentGroup; + SceneObjectGroupsByLocalPartID[parentGroup.LocalId] = parentGroup; foreach (SceneObjectPart part in children) - SceneObjectGroupsByLocalID[newPart.LocalId] = parentGroup; + SceneObjectGroupsByLocalPartID[newPart.LocalId] = parentGroup; } } From f7ed7fc05d1c6cc02df43f787590d8b3adeda22b Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 30 Mar 2011 00:42:02 +0100 Subject: [PATCH 95/95] When a new parcel is created, make sure the prim counts are updated. This is done by tainting the counts where appropriate --- OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs index ab0e88e528..d1e2328728 100644 --- a/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/PrimCountModule.cs @@ -51,7 +51,7 @@ namespace OpenSim.Region.CoreModules.World.Land public class PrimCountModule : IPrimCountModule, INonSharedRegionModule { -// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private Scene m_Scene; private Dictionary m_PrimCounts = @@ -63,7 +63,6 @@ namespace OpenSim.Region.CoreModules.World.Land private Dictionary m_ParcelCounts = new Dictionary(); - /// /// For now, a simple simwide taint to get this up. Later parcel based /// taint to allow recounting a parcel if only ownership has changed @@ -95,6 +94,7 @@ namespace OpenSim.Region.CoreModules.World.Land OnObjectBeingRemovedFromScene; m_Scene.EventManager.OnParcelPrimCountTainted += OnParcelPrimCountTainted; + m_Scene.EventManager.OnLandObjectAdded += delegate(ILandObject lo) { OnParcelPrimCountTainted(); }; } public void RegionLoaded(Scene scene)