Merge branch 'master' of ssh://opensimulator.org/var/git/opensim

arthursv
Adam Frisby 2009-08-16 03:50:12 +10:00
commit 8b6d79aa3c
18 changed files with 939 additions and 216 deletions

View File

@ -77,7 +77,6 @@ what it is today.
* Intimidated
* Jeremy Bongio (IBM)
* jhurliman
* Mike Osias (IBM)
* John R Sohn (XenReborn)
* jonc
* Junta Kohime
@ -91,6 +90,7 @@ what it is today.
* maimedleech
* Mic Bowman
* Michelle Argus
* Mike Osias (IBM)
* Mike Pitman (IBM)
* mikkopa/_someone - RealXtend
* Mircea Kitsune
@ -119,9 +119,11 @@ what it is today.
* Xantor
* Y. Nitta
* YZh
* Zackary Geers aka Kunnis Basiat
* Zha Ewry
LSL Devs
* Alondria

View File

@ -204,8 +204,16 @@ namespace OpenSim.Data.Tests
UUID webloginkey = UUID.Random();
uint homeregx = (uint) random.Next();
uint homeregy = (uint) random.Next();
Vector3 homeloc = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5));
Vector3 homelookat = new Vector3((float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5),(float)Math.Round(random.NextDouble(),5));
Vector3 homeloc
= new Vector3(
(float)Math.Round(random.NextDouble(), 5),
(float)Math.Round(random.NextDouble(), 5),
(float)Math.Round(random.NextDouble(), 5));
Vector3 homelookat
= new Vector3(
(float)Math.Round(random.NextDouble(), 5),
(float)Math.Round(random.NextDouble(), 5),
(float)Math.Round(random.NextDouble(), 5));
int created = random.Next();
int lastlogin = random.Next();
string userinvuri = RandomName();

View File

@ -0,0 +1,298 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using NUnit.Framework;
using NUnit.Framework.Constraints;
using NUnit.Framework.SyntaxHelpers;
using OpenMetaverse;
using OpenSim.Framework;
namespace OpenSim.Data.Tests
{
public static class Constraints
{
//This is here because C# has a gap in the language, you can't infer type from a constructor
public static PropertyCompareConstraint<T> PropertyCompareConstraint<T>(T expected)
{
return new PropertyCompareConstraint<T>(expected);
}
}
public class PropertyCompareConstraint<T> : NUnit.Framework.Constraints.Constraint
{
private readonly object _expected;
//the reason everywhere uses propertyNames.Reverse().ToArray() is because the stack is backwards of the order we want to display the properties in.
private string failingPropertyName = string.Empty;
private object failingExpected;
private object failingActual;
public PropertyCompareConstraint(T expected)
{
_expected = expected;
}
public override bool Matches(object actual)
{
return ObjectCompare(_expected, actual, new Stack<string>());
}
private bool ObjectCompare(object expected, object actual, Stack<string> propertyNames)
{
if (actual.GetType() != expected.GetType())
{
propertyNames.Push("GetType()");
failingPropertyName = string.Join(".", propertyNames.Reverse().ToArray());
propertyNames.Pop();
failingActual = actual.GetType();
failingExpected = expected.GetType();
return false;
}
if(actual.GetType() == typeof(Color))
{
Color actualColor = (Color) actual;
Color expectedColor = (Color) expected;
if (actualColor.R != expectedColor.R)
{
propertyNames.Push("R");
failingPropertyName = string.Join(".", propertyNames.Reverse().ToArray());
propertyNames.Pop();
failingActual = actualColor.R;
failingExpected = expectedColor.R;
return false;
}
if (actualColor.G != expectedColor.G)
{
propertyNames.Push("G");
failingPropertyName = string.Join(".", propertyNames.Reverse().ToArray());
propertyNames.Pop();
failingActual = actualColor.G;
failingExpected = expectedColor.G;
return false;
}
if (actualColor.B != expectedColor.B)
{
propertyNames.Push("B");
failingPropertyName = string.Join(".", propertyNames.Reverse().ToArray());
propertyNames.Pop();
failingActual = actualColor.B;
failingExpected = expectedColor.B;
return false;
}
if (actualColor.A != expectedColor.A)
{
propertyNames.Push("A");
failingPropertyName = string.Join(".", propertyNames.Reverse().ToArray());
propertyNames.Pop();
failingActual = actualColor.A;
failingExpected = expectedColor.A;
return false;
}
return true;
}
//Skip static properties. I had a nasty problem comparing colors because of all of the public static colors.
PropertyInfo[] properties = expected.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (var property in properties)
{
if (ignores.Contains(property.Name))
continue;
object actualValue = property.GetValue(actual, null);
object expectedValue = property.GetValue(expected, null);
//If they are both null, they are equal
if (actualValue == null && expectedValue == null)
continue;
//If only one is null, then they aren't
if (actualValue == null || expectedValue == null)
{
propertyNames.Push(property.Name);
failingPropertyName = string.Join(".", propertyNames.Reverse().ToArray());
propertyNames.Pop();
failingActual = actualValue;
failingExpected = expectedValue;
return false;
}
IComparable comp = actualValue as IComparable;
if (comp != null)
{
if (comp.CompareTo(expectedValue) != 0)
{
propertyNames.Push(property.Name);
failingPropertyName = string.Join(".", propertyNames.Reverse().ToArray());
propertyNames.Pop();
failingActual = actualValue;
failingExpected = expectedValue;
return false;
}
continue;
}
IEnumerable arr = actualValue as IEnumerable;
if (arr != null)
{
List<object> actualList = arr.Cast<object>().ToList();
List<object> expectedList = ((IEnumerable)expectedValue).Cast<object>().ToList();
if (actualList.Count != expectedList.Count)
{
propertyNames.Push(property.Name);
propertyNames.Push("Count");
failingPropertyName = string.Join(".", propertyNames.Reverse().ToArray());
failingActual = actualList.Count;
failingExpected = expectedList.Count;
propertyNames.Pop();
propertyNames.Pop();
}
//Todo: A value-wise comparison of all of the values.
//Everything seems okay...
continue;
}
propertyNames.Push(property.Name);
if (!ObjectCompare(expectedValue, actualValue, propertyNames))
return false;
propertyNames.Pop();
}
return true;
}
public override void WriteDescriptionTo(MessageWriter writer)
{
writer.WriteExpectedValue(failingExpected);
}
public override void WriteActualValueTo(MessageWriter writer)
{
writer.WriteActualValue(failingActual);
writer.WriteLine();
writer.Write(" On Property: " + failingPropertyName);
}
//These notes assume the lambda: (x=>x.Parent.Value)
//ignores should really contain like a fully dotted version of the property name, but I'm starting with small steps
readonly List<string> ignores = new List<string>();
public PropertyCompareConstraint<T> IgnoreProperty(Expression<Func<T, object>> func)
{
Expression express = func.Body;
PullApartExpression(express);
return this;
}
private void PullApartExpression(Expression express)
{
//This deals with any casts... like implicit casts to object. Not all UnaryExpression are casts, but this is a first attempt.
if (express is UnaryExpression)
PullApartExpression(((UnaryExpression)express).Operand);
if (express is MemberExpression)
{
//If the inside of the lambda is the access to x, we've hit the end of the chain.
// We should track by the fully scoped parameter name, but this is the first rev of doing this.
if (((MemberExpression)express).Expression is ParameterExpression)
{
ignores.Add(((MemberExpression)express).Member.Name);
}
else
{
//Otherwise there could be more parameters inside...
PullApartExpression(((MemberExpression)express).Expression);
}
}
}
}
[TestFixture]
public class PropertyCompareConstraintTest
{
public class HasInt
{
public int TheValue { get; set; }
}
[Test]
public void IntShouldMatch()
{
HasInt actual = new HasInt { TheValue = 5 };
HasInt expected = new HasInt { TheValue = 5 };
var constraint = Constraints.PropertyCompareConstraint(expected);
Assert.That(constraint.Matches(actual), Is.True);
}
[Test]
public void IntShouldNotMatch()
{
HasInt actual = new HasInt { TheValue = 5 };
HasInt expected = new HasInt { TheValue = 4 };
var constraint = Constraints.PropertyCompareConstraint(expected);
Assert.That(constraint.Matches(actual), Is.False);
}
[Test]
public void IntShouldIgnore()
{
HasInt actual = new HasInt { TheValue = 5 };
HasInt expected = new HasInt { TheValue = 4 };
var constraint = Constraints.PropertyCompareConstraint(expected).IgnoreProperty(x=>x.TheValue);
Assert.That(constraint.Matches(actual), Is.True);
}
[Test]
public void AssetShouldMatch()
{
UUID uuid1 = UUID.Random();
AssetBase actual = new AssetBase(uuid1, "asset one");
AssetBase expected = new AssetBase(uuid1, "asset one");
var constraint = Constraints.PropertyCompareConstraint(expected);
Assert.That(constraint.Matches(actual), Is.True);
}
[Test]
public void AssetShouldNotMatch()
{
UUID uuid1 = UUID.Random();
AssetBase actual = new AssetBase(uuid1, "asset one");
AssetBase expected = new AssetBase(UUID.Random(), "asset one");
var constraint = Constraints.PropertyCompareConstraint(expected);
Assert.That(constraint.Matches(actual), Is.False);
}
[Test]
public void AssetShouldNotMatch2()
{
UUID uuid1 = UUID.Random();
AssetBase actual = new AssetBase(uuid1, "asset one");
AssetBase expected = new AssetBase(uuid1, "asset two");
var constraint = Constraints.PropertyCompareConstraint(expected);
Assert.That(constraint.Matches(actual), Is.False);
}
[Test]
public void TestColors()
{
Color actual = Color.Red;
Color expected = Color.FromArgb(actual.A, actual.R, actual.G, actual.B);
var constraint = Constraints.PropertyCompareConstraint(expected);
Assert.That(constraint.Matches(actual), Is.True);
}
}
}

View File

@ -0,0 +1,102 @@
using System;
using System.Collections;
using System.Reflection;
using System.Text;
using NUnit.Framework;
using OpenMetaverse;
using OpenSim.Framework;
namespace OpenSim.Data.Tests
{
public static class ScrambleForTesting
{
private static readonly Random random = new Random();
public static void Scramble(object obj)
{
PropertyInfo[] properties = obj.GetType().GetProperties();
foreach (var property in properties)
{
//Skip indexers of classes. We will assume that everything that has an indexer
// is also IEnumberable. May not always be true, but should be true normally.
if(property.GetIndexParameters().Length > 0)
continue;
RandomizeProperty(obj, property, null);
}
//Now if it implments IEnumberable, it's probably some kind of list, so we should randomize
// everything inside of it.
IEnumerable enumerable = obj as IEnumerable;
if(enumerable != null)
{
foreach (object value in enumerable)
{
Scramble(value);
}
}
}
private static void RandomizeProperty(object obj, PropertyInfo property, object[] index)
{
Type t = property.PropertyType;
if (!property.CanWrite)
return;
object value = property.GetValue(obj, index);
if (value == null)
return;
if (t == typeof (string))
property.SetValue(obj, RandomName(), index);
else if (t == typeof (UUID))
property.SetValue(obj, UUID.Random(), index);
else if (t == typeof (sbyte))
property.SetValue(obj, (sbyte)random.Next(sbyte.MinValue, sbyte.MaxValue), index);
else if (t == typeof (short))
property.SetValue(obj, (short)random.Next(short.MinValue, short.MaxValue), index);
else if (t == typeof (int))
property.SetValue(obj, random.Next(), index);
else if (t == typeof (long))
property.SetValue(obj, random.Next() * int.MaxValue, index);
else if (t == typeof (byte))
property.SetValue(obj, (byte)random.Next(byte.MinValue, byte.MaxValue), index);
else if (t == typeof (ushort))
property.SetValue(obj, (ushort)random.Next(ushort.MinValue, ushort.MaxValue), index);
else if (t == typeof (uint))
property.SetValue(obj, Convert.ToUInt32(random.Next()), index);
else if (t == typeof (ulong))
property.SetValue(obj, Convert.ToUInt64(random.Next()) * Convert.ToUInt64(UInt32.MaxValue), index);
else if (t == typeof (bool))
property.SetValue(obj, true, index);
else if (t == typeof (byte[]))
{
byte[] bytes = new byte[30];
random.NextBytes(bytes);
property.SetValue(obj, bytes, index);
}
else
Scramble(value);
}
private static string RandomName()
{
StringBuilder name = new StringBuilder();
int size = random.Next(5, 12);
for (int i = 0; i < size; i++)
{
char ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
name.Append(ch);
}
return name.ToString();
}
}
[TestFixture]
public class ScrableForTestingTest
{
[Test]
public void TestScramble()
{
AssetBase actual = new AssetBase(UUID.Random(), "asset one");
ScrambleForTesting.Scramble(actual);
}
}
}

View File

@ -74,7 +74,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
/// <summary>
/// Test saving a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet).
/// </summary>
//[Test]
[Test]
public void TestSaveIarV0_1()
{
TestHelper.InMethod();
@ -82,7 +82,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
InventoryArchiverModule archiverModule = new InventoryArchiverModule();
Scene scene = SceneSetupHelpers.SetupScene("");
Scene scene = SceneSetupHelpers.SetupScene("Inventory");
SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
CommunicationsManager cm = scene.CommsManager;
@ -222,7 +222,7 @@ 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.
/// </summary>
//[Test]
[Test]
public void TestLoadIarV0_1ExistingUsers()
{
TestHelper.InMethod();
@ -262,7 +262,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
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();
Scene scene = SceneSetupHelpers.SetupScene("inventory");
IUserAdminService userAdminService = scene.CommsManager.UserAdminService;
SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
@ -276,16 +276,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
CachedUserInfo userInfo
= scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName);
//userInfo.FetchInventory();
/*
for (int i = 0 ; i < 50 ; i++)
{
if (userInfo.HasReceivedInventory == true)
break;
Thread.Sleep(200);
}
Assert.That(userInfo.HasReceivedInventory, Is.True, "FetchInventory timed out (10 seconds)");
*/
InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName);
Assert.That(foundItem, Is.Not.Null, "Didn't find loaded item");
Assert.That(
@ -396,17 +387,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
Monitor.Wait(this, 60000);
}
//userInfo.FetchInventory();
/*
for (int i = 0 ; i < 50 ; i++)
{
if (userInfo.HasReceivedInventory == true)
break;
Thread.Sleep(200);
}
Assert.That(userInfo.HasReceivedInventory, Is.True, "FetchInventory timed out (10 seconds)");
*/
Console.WriteLine("userInfo.RootFolder 1: {0}", userInfo.RootFolder);
Dictionary <string, InventoryFolderImpl> foldersCreated = new Dictionary<string, InventoryFolderImpl>();
@ -429,22 +409,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
Console.WriteLine("userInfo.RootFolder 2: {0}", userInfo.RootFolder);
try
{
new InventoryArchiveReadRequest(userInfo, null, (Stream)null, null, null)
.ReplicateArchivePathToUserInventory(itemArchivePath, false, userInfo.RootFolder, foldersCreated, nodesLoaded);
new InventoryArchiveReadRequest(userInfo, null, (Stream)null, null, null)
.ReplicateArchivePathToUserInventory(
itemArchivePath, false, userInfo.RootFolder, foldersCreated, nodesLoaded);
Console.WriteLine("userInfo.RootFolder 3: {0}", userInfo.RootFolder);
InventoryFolderImpl folder1 = userInfo.RootFolder.FindFolderByPath("a");
Assert.That(folder1, Is.Not.Null, "Could not find folder a");
InventoryFolderImpl folder2 = folder1.FindFolderByPath("b");
Assert.That(folder2, Is.Not.Null, "Could not find folder b");
}
catch (NullReferenceException e)
{
// Non fatal for now until we resolve the race condition
Console.WriteLine("Test failed with {0}", e);
}
Console.WriteLine("userInfo.RootFolder 3: {0}", userInfo.RootFolder);
InventoryFolderImpl folder1 = userInfo.RootFolder.FindFolderByPath("a");
Assert.That(folder1, Is.Not.Null, "Could not find folder a");
InventoryFolderImpl folder2 = folder1.FindFolderByPath("b");
Assert.That(folder2, Is.Not.Null, "Could not find folder b");
}
}
}

View File

@ -1038,6 +1038,10 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Send out simstats data to all clients
/// </summary>
/// <param name="stats">Stats on the Simulator's performance</param>
private void SendSimStatsPackets(SimStats stats)
{
List<ScenePresence> StatSendAgents = GetScenePresences();
@ -1050,6 +1054,9 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Recount SceneObjectPart in parcel aabb
/// </summary>
private void UpdateLand()
{
if (LandChannel != null)
@ -1061,11 +1068,17 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Update the terrain if it needs to be updated.
/// </summary>
private void UpdateTerrain()
{
EventManager.TriggerTerrainTick();
}
/// <summary>
/// Back up queued up changes
/// </summary>
private void UpdateStorageBackup()
{
if (!m_backingup)
@ -1078,6 +1091,9 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Sends out the OnFrame event to the modules
/// </summary>
private void UpdateEvents()
{
m_eventManager.TriggerOnFrame();
@ -1133,6 +1149,10 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Synchronous force backup. For deletes and links/unlinks
/// </summary>
/// <param name="group">Object to be backed up</param>
public void ForceSceneObjectBackup(SceneObjectGroup group)
{
if (group != null)
@ -1141,6 +1161,13 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Return object to avatar Message
/// </summary>
/// <param name="agentID">Avatar Unique Id</param>
/// <param name="objectName">Name of object returned</param>
/// <param name="location">Location of object returned</param>
/// <param name="reason">Reasion for object return</param>
public void AddReturn(UUID agentID, string objectName, Vector3 location, string reason)
{
lock (m_returns)
@ -1167,6 +1194,9 @@ namespace OpenSim.Region.Framework.Scenes
#region Load Terrain
/// <summary>
/// Store the terrain in the persistant data store
/// </summary>
public void SaveTerrain()
{
m_storageManager.DataStore.StoreTerrain(Heightmap.GetDoubles(), RegionInfo.RegionID);
@ -1269,6 +1299,10 @@ namespace OpenSim.Region.Framework.Scenes
#region Load Land
/// <summary>
/// Loads all Parcel data from the datastore for region identified by regionID
/// </summary>
/// <param name="regionID">Unique Identifier of the Region to load parcel data for</param>
public void loadAllLandObjectsFromStorage(UUID regionID)
{
m_log.Info("[SCENE]: Loading land objects from storage");
@ -1322,6 +1356,20 @@ namespace OpenSim.Region.Framework.Scenes
m_log.Info("[SCENE]: Loaded " + PrimsFromDB.Count.ToString() + " SceneObject(s)");
}
/// <summary>
/// Gets a new rez location based on the raycast and the size of the object that is being rezzed.
/// </summary>
/// <param name="RayStart"></param>
/// <param name="RayEnd"></param>
/// <param name="RayTargetID"></param>
/// <param name="rot"></param>
/// <param name="bypassRayCast"></param>
/// <param name="RayEndIsIntersection"></param>
/// <param name="frontFacesOnly"></param>
/// <param name="scale"></param>
/// <param name="FaceCenter"></param>
/// <returns></returns>
public Vector3 GetNewRezLocation(Vector3 RayStart, Vector3 RayEnd, UUID RayTargetID, Quaternion rot, byte bypassRayCast, byte RayEndIsIntersection, bool frontFacesOnly, Vector3 scale, bool FaceCenter)
{
Vector3 pos = Vector3.Zero;
@ -1412,6 +1460,19 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Create a New SceneObjectGroup/Part by raycasting
/// </summary>
/// <param name="ownerID"></param>
/// <param name="groupID"></param>
/// <param name="RayEnd"></param>
/// <param name="rot"></param>
/// <param name="shape"></param>
/// <param name="bypassRaycast"></param>
/// <param name="RayStart"></param>
/// <param name="RayTargetID"></param>
/// <param name="RayEndIsIntersection"></param>
public virtual void AddNewPrim(UUID ownerID, UUID groupID, Vector3 RayEnd, Quaternion rot, PrimitiveBaseShape shape,
byte bypassRaycast, Vector3 RayStart, UUID RayTargetID,
byte RayEndIsIntersection)
@ -1829,6 +1890,12 @@ namespace OpenSim.Region.Framework.Scenes
return true;
}
/// <summary>
/// Attachment rezzing
/// </summary>
/// <param name="userID">Agent Unique ID</param>
/// <param name="itemID">Object ID</param>
/// <returns>False</returns>
public virtual bool IncomingCreateObject(UUID userID, UUID itemID)
{
ScenePresence sp = GetScenePresence(userID);
@ -1841,6 +1908,13 @@ namespace OpenSim.Region.Framework.Scenes
return false;
}
/// <summary>
/// Adds a Scene Object group to the Scene.
/// Verifies that the creator of the object is not banned from the simulator.
/// Checks if the item is an Attachment
/// </summary>
/// <param name="sceneObject"></param>
/// <returns>True if the SceneObjectGroup was added, False if it was not</returns>
public bool AddSceneObject(SceneObjectGroup sceneObject)
{
// If the user is banned, we won't let any of their objects
@ -1933,6 +2007,10 @@ namespace OpenSim.Region.Framework.Scenes
#region Add/Remove Avatar Methods
/// <summary>
/// Adding a New Client and Create a Presence for it.
/// </summary>
/// <param name="client"></param>
public override void AddNewClient(IClientAPI client)
{
SubscribeToClientEvents(client);
@ -1977,6 +2055,10 @@ namespace OpenSim.Region.Framework.Scenes
EventManager.TriggerOnNewClient(client);
}
/// <summary>
/// Register for events from the client
/// </summary>
/// <param name="client">The IClientAPI of the connected client</param>
protected virtual void SubscribeToClientEvents(IClientAPI client)
{
client.OnRegionHandShakeReply += SendLayerData;
@ -2070,8 +2152,8 @@ namespace OpenSim.Region.Framework.Scenes
/// <summary>
/// Teleport an avatar to their home region
/// </summary>
/// <param name="agentId"></param>
/// <param name="client"></param>
/// <param name="agentId">The avatar's Unique ID</param>
/// <param name="client">The IClientAPI for the client</param>
public virtual void TeleportClientHome(UUID agentId, IClientAPI client)
{
UserProfileData UserProfile = CommsManager.UserService.GetUserProfile(agentId);
@ -2099,6 +2181,21 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Duplicates object specified by localID at position raycasted against RayTargetObject using
/// RayEnd and RayStart to determine what the angle of the ray is
/// </summary>
/// <param name="localID">ID of object to duplicate</param>
/// <param name="dupeFlags"></param>
/// <param name="AgentID">Agent doing the duplication</param>
/// <param name="GroupID">Group of new object</param>
/// <param name="RayTargetObj">The target of the Ray</param>
/// <param name="RayEnd">The ending of the ray (farthest away point)</param>
/// <param name="RayStart">The Beginning of the ray (closest point)</param>
/// <param name="BypassRaycast">Bool to bypass raycasting</param>
/// <param name="RayEndIsIntersection">The End specified is the place to add the object</param>
/// <param name="CopyCenters">Position the object at the center of the face that it's colliding with</param>
/// <param name="CopyRotates">Rotate the object the same as the localID object</param>
public void doObjectDuplicateOnRay(uint localID, uint dupeFlags, UUID AgentID, UUID GroupID,
UUID RayTargetObj, Vector3 RayEnd, Vector3 RayStart,
bool BypassRaycast, bool RayEndIsIntersection, bool CopyCenters, bool CopyRotates)
@ -2170,6 +2267,14 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Sets the Home Point. The GridService uses this to know where to put a user when they log-in
/// </summary>
/// <param name="remoteClient"></param>
/// <param name="regionHandle"></param>
/// <param name="position"></param>
/// <param name="lookAt"></param>
/// <param name="flags"></param>
public virtual void SetHomeRezPoint(IClientAPI remoteClient, ulong regionHandle, Vector3 position, Vector3 lookAt, uint flags)
{
UserProfileData UserProfile = CommsManager.UserService.GetUserProfile(remoteClient.AgentId);
@ -2340,6 +2445,12 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Removes region from an avatar's known region list. This coincides with child agents. For each child agent, there will be a known region entry.
///
/// </summary>
/// <param name="avatarID"></param>
/// <param name="regionslst"></param>
public void HandleRemoveKnownRegionsFromAvatar(UUID avatarID, List<ulong> regionslst)
{
ScenePresence av = GetScenePresence(avatarID);
@ -2355,12 +2466,19 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Closes all endpoints with the circuitcode provided.
/// </summary>
/// <param name="circuitcode">Circuit Code of the endpoint to close</param>
public override void CloseAllAgents(uint circuitcode)
{
// Called by ClientView to kill all circuit codes
ClientManager.CloseAllAgents(circuitcode);
}
/// <summary>
/// Inform all other ScenePresences on this Scene that someone else has changed position on the minimap.
/// </summary>
public void NotifyMyCoarseLocationChange()
{
ForEachScenePresence(delegate(ScenePresence presence) { presence.CoarseLocationChange(); });
@ -2455,9 +2573,10 @@ namespace OpenSim.Region.Framework.Scenes
/// The return bool should allow for connections to be refused, but as not all calling paths
/// take proper notice of it let, we allowed banned users in still.
/// </summary>
/// <param name="regionHandle"></param>
/// <param name="agent"></param>
/// <param name="reason"></param>
/// <param name="agent">CircuitData of the agent who is connecting</param>
/// <param name="reason">Outputs the reason for the false response on this string</param>
/// <returns>True if the region accepts this agent. False if it does not. False will
/// also return a reason.</returns>
public bool NewUserConnection(AgentCircuitData agent, out string reason)
{
// Don't disable this log message - it's too helpful
@ -2530,6 +2649,13 @@ namespace OpenSim.Region.Framework.Scenes
return true;
}
/// <summary>
/// Verifies that the user has a session on the Grid
/// </summary>
/// <param name="agent">Circuit Data of the Agent we're verifying</param>
/// <param name="reason">Outputs the reason for the false response on this string</param>
/// <returns>True if the user has a session on the grid. False if it does not. False will
/// also return a reason.</returns>
public virtual bool AuthenticateUser(AgentCircuitData agent, out string reason)
{
reason = String.Empty;
@ -2542,6 +2668,13 @@ namespace OpenSim.Region.Framework.Scenes
return result;
}
/// <summary>
/// Verify if the user can connect to this region. Checks the banlist and ensures that the region is set for public access
/// </summary>
/// <param name="agent">The circuit data for the agent</param>
/// <param name="reason">outputs the reason to this string</param>
/// <returns>True if the region accepts this agent. False if it does not. False will
/// also return a reason.</returns>
protected virtual bool AuthorizeUser(AgentCircuitData agent, out string reason)
{
reason = String.Empty;
@ -2600,16 +2733,32 @@ namespace OpenSim.Region.Framework.Scenes
return true;
}
/// <summary>
/// Update an AgentCircuitData object with new information
/// </summary>
/// <param name="data">Information to update the AgentCircuitData with</param>
public void UpdateCircuitData(AgentCircuitData data)
{
m_authenticateHandler.UpdateAgentData(data);
}
/// <summary>
/// Change the Circuit Code for the user's Circuit Data
/// </summary>
/// <param name="oldcc">The old Circuit Code. Must match a previous circuit code</param>
/// <param name="newcc">The new Circuit Code. Must not be an already existing circuit code</param>
/// <returns>True if we successfully changed it. False if we did not</returns>
public bool ChangeCircuitCode(uint oldcc, uint newcc)
{
return m_authenticateHandler.TryChangeCiruitCode(oldcc, newcc);
}
/// <summary>
/// The Grid has requested that we log-off a user. Log them off.
/// </summary>
/// <param name="AvatarID">Unique ID of the avatar to log-off</param>
/// <param name="RegionSecret">SecureSessionID of the user, or the RegionSecret text when logging on to the grid</param>
/// <param name="message">message to display to the user. Reason for being logged off</param>
public void HandleLogOffUserFromGrid(UUID AvatarID, UUID RegionSecret, string message)
{
ScenePresence loggingOffUser = null;
@ -2675,6 +2824,13 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// We've got an update about an agent that sees into this region,
/// send it to ScenePresence for processing It's the full data.
/// </summary>
/// <param name="cAgentData">Agent that contains all of the relevant things about an agent.
/// Appearance, animations, position, etc.</param>
/// <returns>true if we handled it.</returns>
public virtual bool IncomingChildAgentDataUpdate(AgentData cAgentData)
{
// m_log.DebugFormat(
@ -2692,6 +2848,12 @@ namespace OpenSim.Region.Framework.Scenes
return false;
}
/// <summary>
/// We've got an update about an agent that sees into this region,
/// send it to ScenePresence for processing It's only positional data
/// </summary>
/// <param name="cAgentData">AgentPosition that contains agent positional data so we can know what to send</param>
/// <returns>true if we handled it.</returns>
public virtual bool IncomingChildAgentDataUpdate(AgentPosition cAgentData)
{
//m_log.Debug(" XXX Scene IncomingChildAgentDataUpdate POSITION in " + RegionInfo.RegionName);

View File

@ -48,6 +48,9 @@ namespace OpenSim.Region.Framework.Scenes
public delegate void RemoveKnownRegionsFromAvatarList(UUID avatarID, List<ulong> regionlst);
/// <summary>
/// Class that Region communications runs through
/// </summary>
public class SceneCommunicationService //one instance per region
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -60,15 +63,46 @@ namespace OpenSim.Region.Framework.Scenes
protected List<UUID> m_agentsInTransit;
/// <summary>
/// An agent is crossing into this region
/// </summary>
public event AgentCrossing OnAvatarCrossingIntoRegion;
/// <summary>
/// A user will arrive shortly, set up appropriate credentials so it can connect
/// </summary>
public event ExpectUserDelegate OnExpectUser;
/// <summary>
/// A Prim will arrive shortly
/// </summary>
public event ExpectPrimDelegate OnExpectPrim;
public event CloseAgentConnection OnCloseAgentConnection;
/// <summary>
/// A new prim has arrived
/// </summary>
public event PrimCrossing OnPrimCrossingIntoRegion;
/// <summary>
/// A New Region is up and available
/// </summary>
public event RegionUp OnRegionUp;
/// <summary>
/// We have a child agent for this avatar and we're getting a status update about it
/// </summary>
public event ChildAgentUpdate OnChildAgentUpdate;
//public event RemoveKnownRegionsFromAvatarList OnRemoveKnownRegionFromAvatar;
/// <summary>
/// Time to log one of our users off. Grid Service sends this mostly
/// </summary>
public event LogOffUser OnLogOffUser;
/// <summary>
/// A region wants land data from us!
/// </summary>
public event GetLandData OnGetLandData;
private AgentCrossing handlerAvatarCrossingIntoRegion = null; // OnAvatarCrossingIntoRegion;
@ -123,11 +157,20 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// Returns a region with the name closest to string provided
/// </summary>
/// <param name="name">Partial Region Name for matching</param>
/// <returns>Region Information for the region</returns>
public RegionInfo RequestClosestRegion(string name)
{
return m_commsProvider.GridService.RequestClosestRegion(name);
}
/// <summary>
/// This region is shutting down, de-register all events!
/// De-Register region from Grid!
/// </summary>
public void Close()
{
if (regionCommsHost != null)
@ -159,10 +202,9 @@ namespace OpenSim.Region.Framework.Scenes
#region CommsManager Event handlers
/// <summary>
///
/// A New User will arrive shortly, Informs the scene that there's a new user on the way
/// </summary>
/// <param name="regionHandle"></param>
/// <param name="agent"></param>
/// <param name="agent">Data we need to ensure that the agent can connect</param>
///
protected void NewUserConnection(AgentCircuitData agent)
{
@ -174,6 +216,12 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// The Grid has requested us to log-off the user
/// </summary>
/// <param name="AgentID">Unique ID of agent to log-off</param>
/// <param name="RegionSecret">The secret string that the region establishes with the grid when registering</param>
/// <param name="message">The message to send to the user that tells them why they were logged off</param>
protected void GridLogOffUser(UUID AgentID, UUID RegionSecret, string message)
{
handlerLogOffUser = OnLogOffUser;
@ -183,6 +231,11 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// A New Region is now available. Inform the scene that there is a new region available.
/// </summary>
/// <param name="region">Information about the new region that is available</param>
/// <returns>True if the event was handled</returns>
protected bool newRegionUp(RegionInfo region)
{
handlerRegionUp = OnRegionUp;
@ -194,6 +247,11 @@ namespace OpenSim.Region.Framework.Scenes
return true;
}
/// <summary>
/// Inform the scene that we've got an update about a child agent that we have
/// </summary>
/// <param name="cAgentData"></param>
/// <returns></returns>
protected bool ChildAgentUpdate(ChildAgentDataUpdate cAgentData)
{
handlerChildAgentUpdate = OnChildAgentUpdate;
@ -204,6 +262,7 @@ namespace OpenSim.Region.Framework.Scenes
return true;
}
protected void AgentCrossing(UUID agentID, Vector3 position, bool isFlying)
{
handlerAvatarCrossingIntoRegion = OnAvatarCrossingIntoRegion;
@ -213,6 +272,13 @@ namespace OpenSim.Region.Framework.Scenes
}
}
/// <summary>
/// We have a new prim from a neighbor
/// </summary>
/// <param name="primID">unique ID for the primative</param>
/// <param name="objXMLData">XML2 encoded data of the primative</param>
/// <param name="XMLMethod">An Int that represents the version of the XMLMethod</param>
/// <returns>True if the prim was accepted, false if it was not</returns>
protected bool IncomingPrimCrossing(UUID primID, String objXMLData, int XMLMethod)
{
handlerExpectPrim = OnExpectPrim;

View File

@ -113,6 +113,7 @@ namespace OpenSim.Region.Framework.Scenes.Tests
agent.InventoryFolder = UUID.Zero;
agent.startpos = Vector3.Zero;
agent.CapsPath = GetRandomCapsObjectPath();
agent.ChildrenCapSeeds = new Dictionary<ulong, string>();
string reason;
scene.NewUserConnection(agent, out reason);

View File

@ -38,6 +38,7 @@ using OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion;
using OpenSim.Tests.Common;
using OpenSim.Tests.Common.Mock;
using OpenSim.Tests.Common.Setup;
using System.Threading;
namespace OpenSim.Region.Framework.Scenes.Tests
{
@ -55,9 +56,47 @@ namespace OpenSim.Region.Framework.Scenes.Tests
public void TestSimpleNotNeighboursTeleport()
{
TestHelper.InMethod();
ThreadRunResults results = new ThreadRunResults();
results.Result = false;
results.Message = "Test did not run";
TestRunning testClass = new TestRunning(results);
Thread testThread = new Thread(testClass.run);
try
{
// Seems kind of redundant to start a thread and then join it, however.. We need to protect against
// A thread abort exception in the simulator code.
testThread.Start();
testThread.Join();
}
catch (ThreadAbortException)
{
}
Assert.That(testClass.results.Result, Is.EqualTo(true), testClass.results.Message);
// Console.WriteLine("Beginning test {0}", MethodBase.GetCurrentMethod());
}
}
public class ThreadRunResults
{
public bool Result = false;
public string Message = string.Empty;
}
public class TestRunning
{
public ThreadRunResults results;
public TestRunning(ThreadRunResults t)
{
results = t;
}
public void run(object o)
{
//results.Result = true;
log4net.Config.XmlConfigurator.Configure();
UUID sceneAId = UUID.Parse("00000000-0000-0000-0000-000000000100");
@ -80,26 +119,62 @@ namespace OpenSim.Region.Framework.Scenes.Tests
ICapabilitiesModule sceneACapsModule = sceneA.RequestModuleInterface<ICapabilitiesModule>();
results.Result = (sceneACapsModule.GetCapsPath(agentId) == client.CapsSeedUrl);
if (!results.Result)
{
results.Message = "Incorrect caps object path set up in sceneA";
return;
}
/*
Assert.That(
sceneACapsModule.GetCapsPath(agentId),
Is.EqualTo(client.CapsSeedUrl),
"Incorrect caps object path set up in sceneA");
*/
// FIXME: This is a hack to get the test working - really the normal OpenSim mechanisms should be used.
client.TeleportTargetScene = sceneB;
client.Teleport(sceneB.RegionInfo.RegionHandle, new Vector3(100, 100, 100), new Vector3(40, 40, 40));
Assert.That(sceneB.GetScenePresence(agentId), Is.Not.Null, "Client does not have an agent in sceneB");
Assert.That(sceneA.GetScenePresence(agentId), Is.Null, "Client still had an agent in sceneA");
results.Result = (sceneB.GetScenePresence(agentId) != null);
if (!results.Result)
{
results.Message = "Client does not have an agent in sceneB";
return;
}
//Assert.That(sceneB.GetScenePresence(agentId), Is.Not.Null, "Client does not have an agent in sceneB");
//Assert.That(sceneA.GetScenePresence(agentId), Is.Null, "Client still had an agent in sceneA");
results.Result = (sceneA.GetScenePresence(agentId) == null);
if (!results.Result)
{
results.Message = "Client still had an agent in sceneA";
return;
}
ICapabilitiesModule sceneBCapsModule = sceneB.RequestModuleInterface<ICapabilitiesModule>();
results.Result = ("http://" + sceneB.RegionInfo.ExternalHostName + ":" + sceneB.RegionInfo.HttpPort +
"/CAPS/" + sceneBCapsModule.GetCapsPath(agentId) + "0000/" == client.CapsSeedUrl);
if (!results.Result)
{
results.Message = "Incorrect caps object path set up in sceneB";
return;
}
// Temporary assertion - caps url construction should at least be doable through a method.
/*
Assert.That(
"http://" + sceneB.RegionInfo.ExternalHostName + ":" + sceneB.RegionInfo.HttpPort + "/CAPS/" + sceneBCapsModule.GetCapsPath(agentId) + "0000/",
Is.EqualTo(client.CapsSeedUrl),
"Incorrect caps object path set up in sceneB");
*/
// This assertion will currently fail since we don't remove the caps paths when no longer needed
//Assert.That(sceneACapsModule.GetCapsPath(agentId), Is.Null, "sceneA still had a caps object path");

View File

@ -125,9 +125,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (lease.CurrentState == LeaseState.Initial)
{
lease.InitialLeaseTime = TimeSpan.FromMinutes(1.0);
lease.RenewOnCallTime = TimeSpan.FromSeconds(10.0);
lease.SponsorshipTimeout = TimeSpan.FromMinutes(1.0);
lease.InitialLeaseTime = TimeSpan.FromMinutes(0);
// lease.RenewOnCallTime = TimeSpan.FromSeconds(10.0);
// lease.SponsorshipTimeout = TimeSpan.FromMinutes(1.0);
}
return lease;
}

View File

@ -166,9 +166,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if (lease.CurrentState == LeaseState.Initial)
{
lease.InitialLeaseTime = TimeSpan.FromMinutes(1.0);
lease.RenewOnCallTime = TimeSpan.FromSeconds(10.0);
lease.SponsorshipTimeout = TimeSpan.FromMinutes(1.0);
lease.InitialLeaseTime = TimeSpan.FromMinutes(0);
// lease.RenewOnCallTime = TimeSpan.FromSeconds(10.0);
// lease.SponsorshipTimeout = TimeSpan.FromMinutes(1.0);
}
return lease;
}

View File

@ -42,16 +42,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public partial class ScriptBaseClass : MarshalByRefObject, IScript
{
private Dictionary<string, MethodInfo> inits = new Dictionary<string, MethodInfo>();
private ScriptSponsor m_sponser;
// private ScriptSponsor m_sponser;
public override Object InitializeLifetimeService()
{
ILease lease = (ILease)base.InitializeLifetimeService();
if (lease.CurrentState == LeaseState.Initial)
{
lease.InitialLeaseTime = TimeSpan.FromMinutes(1.0);
lease.RenewOnCallTime = TimeSpan.FromSeconds(10.0);
lease.SponsorshipTimeout = TimeSpan.FromMinutes(1.0);
// Infinite
lease.InitialLeaseTime = TimeSpan.FromMinutes(0);
// lease.RenewOnCallTime = TimeSpan.FromSeconds(10.0);
// lease.SponsorshipTimeout = TimeSpan.FromMinutes(1.0);
}
return lease;
}
@ -79,7 +80,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
}
}
m_sponser = new ScriptSponsor();
// m_sponser = new ScriptSponsor();
}
private Executor m_Executor = null;
@ -112,7 +113,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
return;
ILease lease = (ILease)RemotingServices.GetLifetimeService(data as MarshalByRefObject);
lease.Register(m_sponser);
// lease.Register(m_sponser);
MethodInfo mi = inits[api];
@ -126,7 +127,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
public void Close()
{
m_sponser.Close();
// m_sponser.Close();
}
public Dictionary<string, object> GetVars()

View File

@ -53,7 +53,7 @@ using OpenSim.Region.ScriptEngine.Interfaces;
namespace OpenSim.Region.ScriptEngine.Shared.Instance
{
public class ScriptInstance : MarshalByRefObject, IScriptInstance, ISponsor
public class ScriptInstance : MarshalByRefObject, IScriptInstance
{
// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -261,7 +261,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
"SecondLife.Script");
ILease lease = (ILease)RemotingServices.GetLifetimeService(m_Script as ScriptBaseClass);
lease.Register(this);
// lease.Register(this);
}
catch (Exception)
{
@ -1006,10 +1006,5 @@ namespace OpenSim.Region.ScriptEngine.Shared.Instance
{
return true;
}
public TimeSpan Renewal(ILease lease)
{
return lease.InitialLeaseTime;
}
}
}

View File

@ -40,6 +40,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Tests
/// <summary>
/// Scene presence tests
/// </summary>
/// Commented out XEngineTests that don't do anything
/*
[TestFixture]
public class XEngineTest
{
@ -65,4 +67,5 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Tests
xengine.RegionLoaded(scene);
}
}
*/
}

View File

@ -34,25 +34,53 @@ namespace OpenSim.Services.Interfaces
public interface IAssetService
{
// Three different ways to retrieve an asset
//
/// <summary>
/// Get an asset synchronously.
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
AssetBase Get(string id);
/// <summary>
/// Get an asset's metadata
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
AssetMetadata GetMetadata(string id);
byte[] GetData(string id);
/// <summary>
/// Get an asset asynchronously
/// </summary>
/// <param name="id">The asset id</param>
/// <param name="sender">Represents the requester. Passed back via the handler</param>
/// <param name="handler">The handler to call back once the asset has been retrieved</param>
/// <returns>True if the id was parseable, false otherwise</returns>
bool Get(string id, Object sender, AssetRetrieved handler);
// Creates a new asset
// Returns a random ID if none is passed into it
//
/// <summary>
/// Creates a new asset
/// </summary>
/// Returns a random ID if none is passed into it
/// <param name="asset"></param>
/// <returns></returns>
string Store(AssetBase asset);
// Attachments and bare scripts need this!!
//
/// <summary>
/// Update an asset's content
/// </summary>
/// Attachments and bare scripts need this!!
/// <param name="id"> </param>
/// <param name="data"></param>
/// <returns></returns>
bool UpdateContent(string id, byte[] data);
// Kill an asset
//
/// <summary>
/// Delete an asset
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
bool Delete(string id);
}
}

View File

@ -45,7 +45,13 @@ namespace OpenSim.Tests.Common.Mock
public AssetBase Get(string id)
{
return Assets[ id ];
AssetBase asset;
if (Assets.ContainsKey(id))
asset = Assets[id];
else
asset = null;
return asset;
}
public AssetMetadata GetMetadata(string id)
@ -60,7 +66,9 @@ namespace OpenSim.Tests.Common.Mock
public bool Get(string id, object sender, AssetRetrieved handler)
{
throw new NotImplementedException();
handler(id, sender, Get(id));
return true;
}
public string Store(AssetBase asset)

View File

@ -25,7 +25,7 @@ See configuring OpenSim
== Installation on Linux ==
Prereqs:
* Mono >= 2.4 (>= 2.4.2 is better)
* Mono >= 2.0.1 (>= 2.4.2 is better)
* Nant >= 0.86beta
* sqlite3 or mysql 5.x (you'll need a back end database)

View File

@ -34,7 +34,7 @@
<!-- Core OpenSim Projects -->
<!--
<Project name="OpenSim.Model" path="OpenSim/Model" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Model" path="OpenSim/Model" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -55,7 +55,7 @@
</Project>
-->
<Project name="OpenSim.Framework.Servers.HttpServer" path="OpenSim/Framework/Servers/HttpServer" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Servers.HttpServer" path="OpenSim/Framework/Servers/HttpServer" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -91,7 +91,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Console" path="OpenSim/Framework/Console" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Console" path="OpenSim/Framework/Console" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -113,7 +113,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework" path="OpenSim/Framework" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework" path="OpenSim/Framework" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../bin/</OutputPath>
@ -145,7 +145,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Serialization" path="OpenSim/Framework/Serialization" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Serialization" path="OpenSim/Framework/Serialization" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -170,7 +170,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Statistics" path="OpenSim/Framework/Statistics" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Statistics" path="OpenSim/Framework/Statistics" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -194,7 +194,7 @@
</Files>
</Project>
<Project name="OpenSim.Data" path="OpenSim/Data" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data" path="OpenSim/Data" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../bin/</OutputPath>
@ -223,7 +223,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Configuration.XML" path="OpenSim/Framework/Configuration/XML" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Configuration.XML" path="OpenSim/Framework/Configuration/XML" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -248,7 +248,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Configuration.HTTP" path="OpenSim/Framework/Configuration/HTTP" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Configuration.HTTP" path="OpenSim/Framework/Configuration/HTTP" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -275,7 +275,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.AssetLoader.Filesystem" path="OpenSim/Framework/AssetLoader/Filesystem" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.AssetLoader.Filesystem" path="OpenSim/Framework/AssetLoader/Filesystem" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -300,7 +300,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.RegionLoader.Web" path="OpenSim/Framework/RegionLoader/Web" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.RegionLoader.Web" path="OpenSim/Framework/RegionLoader/Web" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -326,7 +326,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.RegionLoader.Filesystem" path="OpenSim/Framework/RegionLoader/Filesystem" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.RegionLoader.Filesystem" path="OpenSim/Framework/RegionLoader/Filesystem" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -351,7 +351,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Servers" path="OpenSim/Framework/Servers" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Servers" path="OpenSim/Framework/Servers" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -384,7 +384,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Physics.Manager" path="OpenSim/Region/Physics/Manager" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.Manager" path="OpenSim/Region/Physics/Manager" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -412,7 +412,7 @@
</Project>
<!-- Physics Plug-ins -->
<Project name="OpenSim.Region.Physics.BasicPhysicsPlugin" path="OpenSim/Region/Physics/BasicPhysicsPlugin" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.BasicPhysicsPlugin" path="OpenSim/Region/Physics/BasicPhysicsPlugin" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/Physics/</OutputPath>
@ -435,7 +435,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Physics.POSPlugin" path="OpenSim/Region/Physics/POSPlugin" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.POSPlugin" path="OpenSim/Region/Physics/POSPlugin" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/Physics/</OutputPath>
@ -458,7 +458,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Physics.PhysXPlugin" path="OpenSim/Region/Physics/PhysXPlugin" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.PhysXPlugin" path="OpenSim/Region/Physics/PhysXPlugin" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/Physics/</OutputPath>
@ -483,7 +483,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Physics.OdePlugin" path="OpenSim/Region/Physics/OdePlugin" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.OdePlugin" path="OpenSim/Region/Physics/OdePlugin" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/Physics/</OutputPath>
@ -512,7 +512,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Physics.BulletXPlugin" path="OpenSim/Region/Physics/BulletXPlugin" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.BulletXPlugin" path="OpenSim/Region/Physics/BulletXPlugin" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/Physics/</OutputPath>
@ -542,7 +542,7 @@
<Project name="OpenSim.Region.Physics.Meshing" path="OpenSim/Region/Physics/Meshing" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.Meshing" path="OpenSim/Region/Physics/Meshing" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/Physics/</OutputPath>
@ -570,7 +570,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Physics.BulletDotNETPlugin" path="OpenSim/Region/Physics/BulletDotNETPlugin" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.BulletDotNETPlugin" path="OpenSim/Region/Physics/BulletDotNETPlugin" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/Physics/</OutputPath>
@ -598,7 +598,7 @@
</Files>
</Project>
<Project name="OpenSim.Services.Interfaces" path="OpenSim/Services/Interfaces" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Services.Interfaces" path="OpenSim/Services/Interfaces" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -626,7 +626,7 @@
</Project>
<Project name="OpenSim.Framework.Capabilities" path="OpenSim/Framework/Capabilities" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Capabilities" path="OpenSim/Framework/Capabilities" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -660,7 +660,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Communications" path="OpenSim/Framework/Communications" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Communications" path="OpenSim/Framework/Communications" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -702,7 +702,7 @@
</Project>
<Project name="OpenSim.Region.Framework" path="OpenSim/Region/Framework" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Framework" path="OpenSim/Region/Framework" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -752,7 +752,7 @@
<!-- OpenSim.Framework.Communications -->
<Project name="OpenSim.Region.Communications.Local" path="OpenSim/Region/Communications/Local" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Communications.Local" path="OpenSim/Region/Communications/Local" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -783,7 +783,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Communications.OGS1" path="OpenSim/Region/Communications/OGS1" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Communications.OGS1" path="OpenSim/Region/Communications/OGS1" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -820,7 +820,7 @@
<!-- OGS projects -->
<Project name="OpenSim.Grid.Communications.OGS1" path="OpenSim/Grid/Communications/OGS1" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.Communications.OGS1" path="OpenSim/Grid/Communications/OGS1" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -847,7 +847,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.Framework" path="OpenSim/Grid/Framework" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.Framework" path="OpenSim/Grid/Framework" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -878,7 +878,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.GridServer" path="OpenSim/Grid/GridServer" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.GridServer" path="OpenSim/Grid/GridServer" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -913,7 +913,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.GridServer.Modules" path="OpenSim/Grid/GridServer.Modules" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.GridServer.Modules" path="OpenSim/Grid/GridServer.Modules" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -950,7 +950,7 @@
</Project>
<Project name="OpenSim.Grid.AssetServer" path="OpenSim/Grid/AssetServer" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.AssetServer" path="OpenSim/Grid/AssetServer" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -982,7 +982,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.AssetInventoryServer" path="OpenSim/Grid/AssetInventoryServer" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.AssetInventoryServer" path="OpenSim/Grid/AssetInventoryServer" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1012,7 +1012,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.AssetInventoryServer.Plugins" path="OpenSim/Grid/AssetInventoryServer/Plugins" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.AssetInventoryServer.Plugins" path="OpenSim/Grid/AssetInventoryServer/Plugins" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -1043,7 +1043,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.AssetInventoryServer.Plugins.Simple" path="OpenSim/Grid/AssetInventoryServer/Plugins/Simple" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.AssetInventoryServer.Plugins.Simple" path="OpenSim/Grid/AssetInventoryServer/Plugins/Simple" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -1072,7 +1072,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim" path="OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.AssetInventoryServer.Plugins.OpenSim" path="OpenSim/Grid/AssetInventoryServer/Plugins/OpenSim" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -1104,7 +1104,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.UserServer.Modules" path="OpenSim/Grid/UserServer.Modules" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.UserServer.Modules" path="OpenSim/Grid/UserServer.Modules" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1143,7 +1143,7 @@
</Project>
<Project name="OpenSim.Grid.UserServer" path="OpenSim/Grid/UserServer" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.UserServer" path="OpenSim/Grid/UserServer" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1181,7 +1181,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.InventoryServer" path="OpenSim/Grid/InventoryServer" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.InventoryServer" path="OpenSim/Grid/InventoryServer" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1213,7 +1213,7 @@
</Files>
</Project>
<Project name="OpenSim.Grid.MessagingServer.Modules" path="OpenSim/Grid/MessagingServer.Modules" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.MessagingServer.Modules" path="OpenSim/Grid/MessagingServer.Modules" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1247,7 +1247,7 @@
</Project>
<Project name="OpenSim.Grid.MessagingServer" path="OpenSim/Grid/MessagingServer" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim.Grid.MessagingServer" path="OpenSim/Grid/MessagingServer" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1281,7 +1281,7 @@
</Files>
</Project>
<Project name="OpenSim.Services.Base" path="OpenSim/Services/Base" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Services.Base" path="OpenSim/Services/Base" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1308,7 +1308,7 @@
</Files>
</Project>
<Project name="OpenSim.Services.UserService" path="OpenSim/Services/UserService" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Services.UserService" path="OpenSim/Services/UserService" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1338,7 +1338,7 @@
</Files>
</Project>
<Project name="OpenSim.Services.Connectors" path="OpenSim/Services/Connectors" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Services.Connectors" path="OpenSim/Services/Connectors" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1371,7 +1371,7 @@
</Project>
<Project name="OpenSim.Services.AssetService" path="OpenSim/Services/AssetService" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Services.AssetService" path="OpenSim/Services/AssetService" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1402,7 +1402,7 @@
</Files>
</Project>
<Project name="OpenSim.Services.FreeswitchService" path="OpenSim/Services/FreeswitchService" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Services.FreeswitchService" path="OpenSim/Services/FreeswitchService" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1433,7 +1433,7 @@
</Files>
</Project>
<Project name="OpenSim.Services.AuthenticationService" path="OpenSim/Services/AuthenticationService" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Services.AuthenticationService" path="OpenSim/Services/AuthenticationService" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1464,7 +1464,7 @@
</Files>
</Project>
<Project name="OpenSim.Services.InventoryService" path="OpenSim/Services/InventoryService" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Services.InventoryService" path="OpenSim/Services/InventoryService" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1496,7 +1496,7 @@
</Files>
</Project>
<Project name="OpenSim.Server.Base" path="OpenSim/Server/Base" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Server.Base" path="OpenSim/Server/Base" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1524,7 +1524,7 @@
</Files>
</Project>
<Project name="OpenSim.Server.Handlers" path="OpenSim/Server/Handlers" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Server.Handlers" path="OpenSim/Server/Handlers" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1560,7 +1560,7 @@
</Project>
<Project name="OpenSim.Server" path="OpenSim/Server" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim.Server" path="OpenSim/Server" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../bin/</OutputPath>
@ -1593,7 +1593,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.CoreModules" path="OpenSim/Region/CoreModules" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.CoreModules" path="OpenSim/Region/CoreModules" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1654,7 +1654,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.CoreModules.World.Terrain.DefaultEffects" path="OpenSim/Region/CoreModules/World/Terrain/DefaultEffects" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.CoreModules.World.Terrain.DefaultEffects" path="OpenSim/Region/CoreModules/World/Terrain/DefaultEffects" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../../bin/Terrain/</OutputPath>
@ -1677,7 +1677,7 @@
</Project>
<Project name="OpenSim.Region.OptionalModules" path="OpenSim/Region/OptionalModules" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.OptionalModules" path="OpenSim/Region/OptionalModules" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1736,7 +1736,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Communications.Hypergrid" path="OpenSim/Region/Communications/Hypergrid" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Communications.Hypergrid" path="OpenSim/Region/Communications/Hypergrid" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -1773,7 +1773,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ClientStack" path="OpenSim/Region/ClientStack" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ClientStack" path="OpenSim/Region/ClientStack" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1810,7 +1810,7 @@
</Project>
<!-- ClientStack Plugins -->
<Project name="OpenSim.Region.ClientStack.LindenUDP" path="OpenSim/Region/ClientStack/LindenUDP" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ClientStack.LindenUDP" path="OpenSim/Region/ClientStack/LindenUDP" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -1851,7 +1851,7 @@
</Project>
<!-- Datastore Plugins -->
<Project name="OpenSim.Data.Null" path="OpenSim/Data/Null" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.Null" path="OpenSim/Data/Null" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1878,7 +1878,7 @@
</Project>
<!-- OpenSim app -->
<Project name="OpenSim" path="OpenSim/Region/Application" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim" path="OpenSim/Region/Application" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1920,7 +1920,7 @@
</Files>
</Project>
<Project name="OpenSim.ApplicationPlugins.LoadRegions" path="OpenSim/ApplicationPlugins/LoadRegions" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ApplicationPlugins.LoadRegions" path="OpenSim/ApplicationPlugins/LoadRegions" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1955,7 +1955,7 @@
</Files>
</Project>
<Project name="OpenSim.ApplicationPlugins.RegionModulesController" path="OpenSim/ApplicationPlugins/RegionModulesController" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ApplicationPlugins.RegionModulesController" path="OpenSim/ApplicationPlugins/RegionModulesController" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -1985,7 +1985,7 @@
</Files>
</Project>
<Project name="OpenSim.ApplicationPlugins.CreateCommsManager" path="OpenSim/ApplicationPlugins/CreateCommsManager" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ApplicationPlugins.CreateCommsManager" path="OpenSim/ApplicationPlugins/CreateCommsManager" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2028,7 +2028,7 @@
</Files>
</Project>
<Project name="OpenSim.ApplicationPlugins.RemoteController" path="OpenSim/ApplicationPlugins/RemoteController" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ApplicationPlugins.RemoteController" path="OpenSim/ApplicationPlugins/RemoteController" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2068,7 +2068,7 @@
</Project>
<!-- REST plugins -->
<Project name="OpenSim.ApplicationPlugins.Rest"
<Project frameworkVersion="v3_5" name="OpenSim.ApplicationPlugins.Rest"
path="OpenSim/ApplicationPlugins/Rest" type="Library">
<Configuration name="Debug">
<Options>
@ -2104,7 +2104,7 @@
</Files>
</Project>
<Project name="OpenSim.ApplicationPlugins.Rest.Regions"
<Project frameworkVersion="v3_5" name="OpenSim.ApplicationPlugins.Rest.Regions"
path="OpenSim/ApplicationPlugins/Rest/Regions" type="Library">
<Configuration name="Debug">
<Options>
@ -2142,7 +2142,7 @@
</Files>
</Project>
<Project name="OpenSim.ApplicationPlugins.Rest.Inventory"
<Project frameworkVersion="v3_5" name="OpenSim.ApplicationPlugins.Rest.Inventory"
path="OpenSim/ApplicationPlugins/Rest/Inventory" type="Library">
<Configuration name="Debug">
<Options>
@ -2187,7 +2187,7 @@
<!-- Scene Server API Example Apps -->
<Project name="OpenSim.Region.DataSnapshot" path="OpenSim/Region/DataSnapshot" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.DataSnapshot" path="OpenSim/Region/DataSnapshot" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2220,7 +2220,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Examples.SimpleModule" path="OpenSim/Region/Examples/SimpleModule" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Examples.SimpleModule" path="OpenSim/Region/Examples/SimpleModule" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>bin/</OutputPath>
@ -2250,7 +2250,7 @@
<!-- Client Stack Modules -->
<Project name="OpenSim.Client.MXP" path="OpenSim/Client/MXP" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Client.MXP" path="OpenSim/Client/MXP" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2279,7 +2279,7 @@
</Files>
</Project>
<Project name="OpenSim.Client.VWoHTTP" path="OpenSim/Client/VWoHTTP" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Client.VWoHTTP" path="OpenSim/Client/VWoHTTP" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2310,7 +2310,7 @@
</Files>
</Project>
<Project name="OpenSim.Client.Linden" path="OpenSim/Client/Linden" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Client.Linden" path="OpenSim/Client/Linden" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2350,7 +2350,7 @@
<!-- Data Base Modules -->
<Project name="OpenSim.Data.MySQL" path="OpenSim/Data/MySQL" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.MySQL" path="OpenSim/Data/MySQL" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2386,7 +2386,7 @@
</Files>
</Project>
<Project name="OpenSim.Data.MSSQL" path="OpenSim/Data/MSSQL" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.MSSQL" path="OpenSim/Data/MSSQL" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2419,7 +2419,7 @@
</Files>
</Project>
<Project name="OpenSim.Data.SQLite" path="OpenSim/Data/SQLite" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.SQLite" path="OpenSim/Data/SQLite" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2456,7 +2456,7 @@
</Files>
</Project>
<Project name="OpenSim.Data.NHibernate" path="OpenSim/Data/NHibernate" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.NHibernate" path="OpenSim/Data/NHibernate" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2496,7 +2496,7 @@
</Files>
</Project>
<Project name="SmartThreadPool" path="ThirdParty/SmartThreadPool" type="Library">
<Project frameworkVersion="v3_5" name="SmartThreadPool" path="ThirdParty/SmartThreadPool" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../bin/</OutputPath>
@ -2518,7 +2518,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ScriptEngine.Shared" path="OpenSim/Region/ScriptEngine/Shared" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.Shared" path="OpenSim/Region/ScriptEngine/Shared" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -2557,7 +2557,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ScriptEngine.Shared.Api.Runtime" path="OpenSim/Region/ScriptEngine/Shared/Api/Runtime" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.Shared.Api.Runtime" path="OpenSim/Region/ScriptEngine/Shared/Api/Runtime" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../../bin/</OutputPath>
@ -2592,7 +2592,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ScriptEngine.Shared.YieldProlog" path="OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.Shared.YieldProlog" path="OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../../../bin/</OutputPath>
@ -2626,7 +2626,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ScriptEngine.Shared.Api" path="OpenSim/Region/ScriptEngine/Shared/Api/Implementation" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.Shared.Api" path="OpenSim/Region/ScriptEngine/Shared/Api/Implementation" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../../bin/</OutputPath>
@ -2665,7 +2665,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ScriptEngine.Shared.CodeTools" path="OpenSim/Region/ScriptEngine/Shared/CodeTools" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.Shared.CodeTools" path="OpenSim/Region/ScriptEngine/Shared/CodeTools" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -2698,7 +2698,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ScriptEngine.Shared.Instance" path="OpenSim/Region/ScriptEngine/Shared/Instance" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.Shared.Instance" path="OpenSim/Region/ScriptEngine/Shared/Instance" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -2737,7 +2737,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ScriptEngine.XEngine" path="OpenSim/Region/ScriptEngine/XEngine" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.XEngine" path="OpenSim/Region/ScriptEngine/XEngine" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -2780,7 +2780,7 @@
</Project>
<Project name="OpenSim.Region.ScriptEngine.DotNetEngine" path="OpenSim/Region/ScriptEngine/DotNetEngine" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.DotNetEngine" path="OpenSim/Region/ScriptEngine/DotNetEngine" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -2820,7 +2820,7 @@
</Files>
</Project>
<Project name="OpenSim.ScriptEngine.Shared.Script" path="OpenSim/ScriptEngine/Shared.Script" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ScriptEngine.Shared.Script" path="OpenSim/ScriptEngine/Shared.Script" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2842,7 +2842,7 @@
</Files>
</Project>
<Project name="OpenSim.ScriptEngine.Shared" path="OpenSim/ScriptEngine/Shared" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ScriptEngine.Shared" path="OpenSim/ScriptEngine/Shared" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2880,7 +2880,7 @@
</Files>
</Project>
<Project name="OpenSim.ApplicationPlugins.ScriptEngine" path="OpenSim/ApplicationPlugins/ScriptEngine" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ApplicationPlugins.ScriptEngine" path="OpenSim/ApplicationPlugins/ScriptEngine" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -2921,7 +2921,7 @@
</Files>
</Project>
<Project name="OpenSim.ScriptEngine.Components.DotNetEngine.Commands_LSL" path="OpenSim/ScriptEngine/Components/DotNetEngine/Commands_LSL" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ScriptEngine.Components.DotNetEngine.Commands_LSL" path="OpenSim/ScriptEngine/Components/DotNetEngine/Commands_LSL" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -2960,7 +2960,7 @@
</Files>
</Project>
<Project name="OpenSim.ScriptEngine.Components.DotNetEngine.Commands_OSSL" path="OpenSim/ScriptEngine/Components/DotNetEngine/Commands_OSSL" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ScriptEngine.Components.DotNetEngine.Commands_OSSL" path="OpenSim/ScriptEngine/Components/DotNetEngine/Commands_OSSL" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -2999,7 +2999,7 @@
</Files>
</Project>
<Project name="OpenSim.ScriptEngine.Components.DotNetEngine.Compilers" path="OpenSim/ScriptEngine/Components/DotNetEngine/Compilers" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ScriptEngine.Components.DotNetEngine.Compilers" path="OpenSim/ScriptEngine/Components/DotNetEngine/Compilers" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -3041,7 +3041,7 @@
</Files>
</Project>
<Project name="OpenSim.ScriptEngine.Components.DotNetEngine.Events" path="OpenSim/ScriptEngine/Components/DotNetEngine/Events" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ScriptEngine.Components.DotNetEngine.Events" path="OpenSim/ScriptEngine/Components/DotNetEngine/Events" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -3081,7 +3081,7 @@
</Files>
</Project>
<Project name="OpenSim.ScriptEngine.Components.DotNetEngine.Scheduler" path="OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ScriptEngine.Components.DotNetEngine.Scheduler" path="OpenSim/ScriptEngine/Components/DotNetEngine/Scheduler" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -3121,7 +3121,7 @@
</Files>
</Project>
<Project name="OpenSim.ScriptEngine.Engines.DotNetEngine" path="OpenSim/ScriptEngine/Engines/DotNetEngine" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.ScriptEngine.Engines.DotNetEngine" path="OpenSim/ScriptEngine/Engines/DotNetEngine" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -3166,7 +3166,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.UserStatistics" path="OpenSim/Region/UserStatistics" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.UserStatistics" path="OpenSim/Region/UserStatistics" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -3217,7 +3217,7 @@
<!-- Tools -->
<Project name="pCampBot" path="OpenSim/Tools/pCampBot" type="Exe">
<Project frameworkVersion="v3_5" name="pCampBot" path="OpenSim/Tools/pCampBot" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -3244,7 +3244,7 @@
</Project>
<!-- Test Suite -->
<Project name="OpenSim.TestSuite" path="OpenSim/TestSuite" type="Exe">
<Project frameworkVersion="v3_5" name="OpenSim.TestSuite" path="OpenSim/TestSuite" type="Exe">
<Configuration name="Debug">
<Options>
<OutputPath>../../bin/</OutputPath>
@ -3271,7 +3271,7 @@
</Project>
<!-- Test assemblies -->
<Project name="OpenSim.Tests.Common" path="OpenSim/Tests/Common" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Tests.Common" path="OpenSim/Tests/Common" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -3311,7 +3311,7 @@
</Files>
</Project>
<Project name="OpenSim.Data.Tests" path="OpenSim/Data/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.Tests" path="OpenSim/Data/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -3326,6 +3326,7 @@
<ReferencePath>../../../bin/</ReferencePath>
<Reference name="System"/>
<Reference name="System.Xml"/>
<Reference name="System.Core"/>
<Reference name="System.Drawing"/>
<Reference name="System.Data"/>
<Reference name="OpenMetaverse.dll"/>
@ -3342,7 +3343,7 @@
</Files>
</Project>
<Project name="OpenSim.Data.MySQL.Tests" path="OpenSim/Data/MySQL/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.MySQL.Tests" path="OpenSim/Data/MySQL/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -3378,7 +3379,7 @@
</Files>
</Project>
<Project name="OpenSim.Data.NHibernate.Tests" path="OpenSim/Data/NHibernate/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.NHibernate.Tests" path="OpenSim/Data/NHibernate/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -3417,7 +3418,7 @@
</Files>
</Project>
<Project name="OpenSim.Data.SQLite.Tests" path="OpenSim/Data/SQLite/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Data.SQLite.Tests" path="OpenSim/Data/SQLite/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -3454,7 +3455,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Tests" path="OpenSim/Framework/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Tests" path="OpenSim/Framework/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -3484,7 +3485,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Servers.Tests" path="OpenSim/Framework/Servers/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Servers.Tests" path="OpenSim/Framework/Servers/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -3514,7 +3515,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Servers.HttpServer.Tests" path="OpenSim/Framework/Servers/HttpServer/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Servers.HttpServer.Tests" path="OpenSim/Framework/Servers/HttpServer/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -3543,7 +3544,7 @@
</Files>
</Project>
<Project name="OpenSim.Framework.Communications.Tests" path="OpenSim/Framework/Communications/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Framework.Communications.Tests" path="OpenSim/Framework/Communications/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -3578,7 +3579,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.CoreModules.Tests" path="OpenSim/Region/CoreModules" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.CoreModules.Tests" path="OpenSim/Region/CoreModules" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -3639,7 +3640,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.Framework.Tests" path="OpenSim/Region/Framework" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Framework.Tests" path="OpenSim/Region/Framework" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -3695,7 +3696,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ClientStack.LindenUDP.Tests" path="OpenSim/Region/ClientStack/LindenUDP/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ClientStack.LindenUDP.Tests" path="OpenSim/Region/ClientStack/LindenUDP/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../../bin/</OutputPath>
@ -3728,7 +3729,7 @@
</Files>
</Project>
<Project name="OpenSim.Region.ScriptEngine.Tests" path="OpenSim/Region/ScriptEngine" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.ScriptEngine.Tests" path="OpenSim/Region/ScriptEngine" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../bin/</OutputPath>
@ -3774,7 +3775,7 @@
TODO: this is kind of lame, we basically build a duplicate
assembly but with tests added in, just because we can't resolve cross-bin-dir-refs.
-->
<Project name="OpenSim.Region.Physics.OdePlugin.Tests" path="OpenSim/Region/Physics/OdePlugin" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Region.Physics.OdePlugin.Tests" path="OpenSim/Region/Physics/OdePlugin" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -3802,7 +3803,7 @@
</Files>
</Project>
<Project name="OpenSim.Server.Handlers.Tests" path="OpenSim/Server/Handlers/Tests" type="Library">
<Project frameworkVersion="v3_5" name="OpenSim.Server.Handlers.Tests" path="OpenSim/Server/Handlers/Tests" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>
@ -3861,7 +3862,7 @@
</Options>
</Configuration>
<Project name="Prebuild" path="src/" language="C#" assemblyName="Prebuild" icon="App.ico" type="Exe" rootNamespace="Prebuild" startupObject="Prebuild.Prebuild">
<Project frameworkVersion="v3_5" name="Prebuild" path="src/" language="C#" assemblyName="Prebuild" icon="App.ico" type="Exe" rootNamespace="Prebuild" startupObject="Prebuild.Prebuild">
<Configuration name="Debug">
<Options>
<CompilerDefines>DEBUG;TRACE</CompilerDefines>