Rename OpenSim.Framework.Archive to OpenSim.Framework.Serialization

Update using statements and prebuild.xml. Also trim trailing whitespace.
0.6.5-rc1
Mike Mazur 2009-03-16 00:12:25 +00:00
parent abc5df12c8
commit f28886e26d
13 changed files with 119 additions and 119 deletions

View File

@ -28,7 +28,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using OpenMetaverse; using OpenMetaverse;
namespace OpenSim.Framework.Archive namespace OpenSim.Framework.Serialization
{ {
/// <summary> /// <summary>
/// Constants for the archiving module /// Constants for the archiving module

View File

@ -31,7 +31,7 @@ using System.Reflection;
using System.Text; using System.Text;
using log4net; using log4net;
namespace OpenSim.Framework.Archive namespace OpenSim.Framework.Serialization
{ {
/// <summary> /// <summary>
/// Temporary code to do the bare minimum required to read a tar archive for our purposes /// Temporary code to do the bare minimum required to read a tar archive for our purposes

View File

@ -30,7 +30,7 @@ using System.Collections.Generic;
using System.IO; using System.IO;
using System.Text; using System.Text;
namespace OpenSim.Framework.Archive namespace OpenSim.Framework.Serialization
{ {
/// <summary> /// <summary>
/// Temporary code to produce a tar archive in tar v7 format /// Temporary code to produce a tar archive in tar v7 format

View File

@ -33,7 +33,7 @@ using System.Xml;
using System.Reflection; using System.Reflection;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
using OpenSim.Framework.Servers; using OpenSim.Framework.Servers;
using log4net; using log4net;

View File

@ -35,7 +35,7 @@ using System.Xml;
using log4net; using log4net;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.CoreModules.World.Archiver; using OpenSim.Region.CoreModules.World.Archiver;
@ -208,19 +208,19 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
failedAssetRestores++; failedAssetRestores++;
} }
else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH)) else if (filePath.StartsWith(ArchiveConstants.INVENTORY_PATH))
{ {
string fsPath = filePath.Substring(ArchiveConstants.INVENTORY_PATH.Length); string fsPath = filePath.Substring(ArchiveConstants.INVENTORY_PATH.Length);
// Remove the file portion if we aren't already dealing with a directory path // Remove the file portion if we aren't already dealing with a directory path
if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType)
fsPath = fsPath.Remove(fsPath.LastIndexOf("/") + 1); fsPath = fsPath.Remove(fsPath.LastIndexOf("/") + 1);
string originalFsPath = fsPath; string originalFsPath = fsPath;
m_log.DebugFormat("[INVENTORY ARCHIVER]: Loading to folder {0}", fsPath); m_log.DebugFormat("[INVENTORY ARCHIVER]: Loading to folder {0}", fsPath);
InventoryFolderImpl foundFolder = null; InventoryFolderImpl foundFolder = null;
// XXX: Nasty way of dealing with a path that has no directory component // XXX: Nasty way of dealing with a path that has no directory component
if (fsPath.Length > 0) if (fsPath.Length > 0)
{ {
@ -323,15 +323,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType)
{ {
InventoryItemBase item = LoadInvItem(m_asciiEncoding.GetString(data)); InventoryItemBase item = LoadInvItem(m_asciiEncoding.GetString(data));
if (item != null) if (item != null)
{ {
// Don't use the item ID that's in the file // Don't use the item ID that's in the file
item.ID = UUID.Random(); item.ID = UUID.Random();
item.Creator = m_userInfo.UserProfile.ID; item.Creator = m_userInfo.UserProfile.ID;
item.Owner = m_userInfo.UserProfile.ID; item.Owner = m_userInfo.UserProfile.ID;
// Reset folder ID to the one in which we want to load it // Reset folder ID to the one in which we want to load it
item.Folder = foundFolder.ID; item.Folder = foundFolder.ID;

View File

@ -34,7 +34,7 @@ using System.Xml;
using log4net; using log4net;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.CoreModules.World.Archiver; using OpenSim.Region.CoreModules.World.Archiver;

View File

@ -34,7 +34,7 @@ using NUnit.Framework.SyntaxHelpers;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Data; using OpenSim.Data;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
using OpenSim.Framework.Communications; using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver; using OpenSim.Region.CoreModules.Avatar.Inventory.Archiver;

View File

@ -35,7 +35,7 @@ using System.Text;
using log4net; using log4net;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Communications.Cache;
using OpenSim.Region.CoreModules.World.Terrain; using OpenSim.Region.CoreModules.World.Terrain;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
@ -52,14 +52,14 @@ namespace OpenSim.Region.CoreModules.World.Archiver
private static ASCIIEncoding m_asciiEncoding = new ASCIIEncoding(); private static ASCIIEncoding m_asciiEncoding = new ASCIIEncoding();
private Scene m_scene; private Scene m_scene;
private Stream m_loadStream; private Stream m_loadStream;
private string m_errorMessage; private string m_errorMessage;
/// <value> /// <value>
/// Should the archive being loaded be merged with what is already on the region? /// Should the archive being loaded be merged with what is already on the region?
/// </value> /// </value>
private bool m_merge; private bool m_merge;
/// <summary> /// <summary>
/// Used to cache lookups for valid uuids. /// Used to cache lookups for valid uuids.
@ -109,7 +109,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
{ {
//m_log.DebugFormat( //m_log.DebugFormat(
// "[ARCHIVER]: Successfully read {0} ({1} bytes)}", filePath, data.Length); // "[ARCHIVER]: Successfully read {0} ({1} bytes)}", filePath, data.Length);
if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType) if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY == entryType)
{ {
m_log.WarnFormat( m_log.WarnFormat(

View File

@ -33,7 +33,7 @@ using System.Xml;
using log4net; using log4net;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
using OpenSim.Region.CoreModules.World.Terrain; using OpenSim.Region.CoreModules.World.Terrain;
using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
@ -44,7 +44,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
/// Method called when all the necessary assets for an archive request have been received. /// Method called when all the necessary assets for an archive request have been received.
/// </summary> /// </summary>
public delegate void AssetsRequestCallback(IDictionary<UUID, AssetBase> assetsFound, ICollection<UUID> assetsNotFoundUuids); public delegate void AssetsRequestCallback(IDictionary<UUID, AssetBase> assetsFound, ICollection<UUID> assetsNotFoundUuids);
/// <summary> /// <summary>
/// Execute the write of an archive once we have received all the necessary data /// Execute the write of an archive once we have received all the necessary data
/// </summary> /// </summary>
@ -81,34 +81,34 @@ namespace OpenSim.Region.CoreModules.World.Archiver
} }
m_log.InfoFormat( m_log.InfoFormat(
"[ARCHIVER]: Received {0} of {1} assets requested", "[ARCHIVER]: Received {0} of {1} assets requested",
assetsFound.Count, assetsFound.Count + assetsNotFoundUuids.Count); assetsFound.Count, assetsFound.Count + assetsNotFoundUuids.Count);
m_log.InfoFormat("[ARCHIVER]: Creating archive file. This may take some time."); m_log.InfoFormat("[ARCHIVER]: Creating archive file. This may take some time.");
TarArchiveWriter archive = new TarArchiveWriter(m_saveStream); TarArchiveWriter archive = new TarArchiveWriter(m_saveStream);
// Write out control file // Write out control file
archive.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, Create0p2ControlFile()); archive.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, Create0p2ControlFile());
m_log.InfoFormat("[ARCHIVER]: Added control file to archive."); m_log.InfoFormat("[ARCHIVER]: Added control file to archive.");
// Write out region settings // Write out region settings
string settingsPath string settingsPath
= String.Format("{0}{1}.xml", ArchiveConstants.SETTINGS_PATH, m_scene.RegionInfo.RegionName); = String.Format("{0}{1}.xml", ArchiveConstants.SETTINGS_PATH, m_scene.RegionInfo.RegionName);
archive.WriteFile(settingsPath, RegionSettingsSerializer.Serialize(m_scene.RegionInfo.RegionSettings)); archive.WriteFile(settingsPath, RegionSettingsSerializer.Serialize(m_scene.RegionInfo.RegionSettings));
m_log.InfoFormat("[ARCHIVER]: Added region settings to archive."); m_log.InfoFormat("[ARCHIVER]: Added region settings to archive.");
// Write out terrain // Write out terrain
string terrainPath string terrainPath
= String.Format("{0}{1}.r32", ArchiveConstants.TERRAINS_PATH, m_scene.RegionInfo.RegionName); = String.Format("{0}{1}.r32", ArchiveConstants.TERRAINS_PATH, m_scene.RegionInfo.RegionName);
MemoryStream ms = new MemoryStream(); MemoryStream ms = new MemoryStream();
m_terrainModule.SaveToStream(terrainPath, ms); m_terrainModule.SaveToStream(terrainPath, ms);
archive.WriteFile(terrainPath, ms.ToArray()); archive.WriteFile(terrainPath, ms.ToArray());
ms.Close(); ms.Close();
m_log.InfoFormat("[ARCHIVER]: Added terrain information to archive."); m_log.InfoFormat("[ARCHIVER]: Added terrain information to archive.");
// Write out scene object metadata // Write out scene object metadata
@ -128,7 +128,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
archive.WriteFile(filename, serializedObject); archive.WriteFile(filename, serializedObject);
} }
m_log.InfoFormat("[ARCHIVER]: Added scene objects to archive."); m_log.InfoFormat("[ARCHIVER]: Added scene objects to archive.");
// Write out assets // Write out assets
@ -138,7 +138,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
archive.Close(); archive.Close();
m_log.InfoFormat("[ARCHIVER]: Wrote out OpenSimulator archive for {0}", m_scene.RegionInfo.RegionName); m_log.InfoFormat("[ARCHIVER]: Wrote out OpenSimulator archive for {0}", m_scene.RegionInfo.RegionName);
m_scene.EventManager.TriggerOarFileSaved(String.Empty); m_scene.EventManager.TriggerOarFileSaved(String.Empty);
} }

View File

@ -32,7 +32,7 @@ using System.Xml;
using log4net; using log4net;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
namespace OpenSim.Region.CoreModules.World.Archiver namespace OpenSim.Region.CoreModules.World.Archiver
{ {
@ -47,7 +47,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
/// Post a message to the log every x assets as a progress bar /// Post a message to the log every x assets as a progress bar
/// </value> /// </value>
private static int LOG_ASSET_LOAD_NOTIFICATION_INTERVAL = 50; private static int LOG_ASSET_LOAD_NOTIFICATION_INTERVAL = 50;
/// <summary> /// <summary>
/// Archive assets /// Archive assets
/// </summary> /// </summary>
@ -122,7 +122,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
{ {
// It appears that gtar, at least, doesn't need the intermediate directory entries in the tar // It appears that gtar, at least, doesn't need the intermediate directory entries in the tar
//archive.AddDir("assets"); //archive.AddDir("assets");
int assetsAdded = 0; int assetsAdded = 0;
foreach (UUID uuid in m_assets.Keys) foreach (UUID uuid in m_assets.Keys)
@ -145,13 +145,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver
archive.WriteFile( archive.WriteFile(
ArchiveConstants.ASSETS_PATH + uuid.ToString() + extension, ArchiveConstants.ASSETS_PATH + uuid.ToString() + extension,
asset.Data); asset.Data);
assetsAdded++; assetsAdded++;
if (assetsAdded % LOG_ASSET_LOAD_NOTIFICATION_INTERVAL == 0) if (assetsAdded % LOG_ASSET_LOAD_NOTIFICATION_INTERVAL == 0)
m_log.InfoFormat("[ARCHIVER]: Added {0} assets to archive", assetsAdded); m_log.InfoFormat("[ARCHIVER]: Added {0} assets to archive", assetsAdded);
} }
if (assetsAdded % LOG_ASSET_LOAD_NOTIFICATION_INTERVAL != 0) if (assetsAdded % LOG_ASSET_LOAD_NOTIFICATION_INTERVAL != 0)
m_log.InfoFormat("[ARCHIVER]: Added {0} assets to archive", assetsAdded); m_log.InfoFormat("[ARCHIVER]: Added {0} assets to archive", assetsAdded);
} }

View File

@ -34,7 +34,7 @@ using System.Xml;
using log4net; using log4net;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
namespace OpenSim.Region.CoreModules.World.Archiver namespace OpenSim.Region.CoreModules.World.Archiver
{ {

View File

@ -34,7 +34,7 @@ using NUnit.Framework;
using NUnit.Framework.SyntaxHelpers; using NUnit.Framework.SyntaxHelpers;
using OpenMetaverse; using OpenMetaverse;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Archive; using OpenSim.Framework.Serialization;
using OpenSim.Region.CoreModules.World.Serialiser; using OpenSim.Region.CoreModules.World.Serialiser;
using OpenSim.Region.CoreModules.World.Terrain; using OpenSim.Region.CoreModules.World.Terrain;
using OpenSim.Region.Framework.Scenes; using OpenSim.Region.Framework.Scenes;
@ -48,29 +48,29 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
private void SaveCompleted(string errorMessage) private void SaveCompleted(string errorMessage)
{ {
lock (this) lock (this)
{ {
System.Console.WriteLine("About to pulse ArchiverTests"); System.Console.WriteLine("About to pulse ArchiverTests");
Monitor.PulseAll(this); Monitor.PulseAll(this);
} }
} }
/// <summary> /// <summary>
/// Test saving a V0.2 OpenSim Region Archive. /// Test saving a V0.2 OpenSim Region Archive.
/// </summary> /// </summary>
[Test] [Test]
public void TestSaveOarV0p2() public void TestSaveOarV0p2()
{ {
log4net.Config.XmlConfigurator.Configure(); log4net.Config.XmlConfigurator.Configure();
ArchiverModule archiverModule = new ArchiverModule(); ArchiverModule archiverModule = new ArchiverModule();
SerialiserModule serialiserModule = new SerialiserModule(); SerialiserModule serialiserModule = new SerialiserModule();
TerrainModule terrainModule = new TerrainModule(); TerrainModule terrainModule = new TerrainModule();
Scene scene = SceneSetupHelpers.SetupScene(); Scene scene = SceneSetupHelpers.SetupScene();
SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule);
SceneObjectPart part1; SceneObjectPart part1;
// Create and add prim 1 // Create and add prim 1
{ {
string partName = "My Little Pony"; string partName = "My Little Pony";
@ -79,17 +79,17 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
Vector3 groupPosition = new Vector3(10, 20, 30); Vector3 groupPosition = new Vector3(10, 20, 30);
Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); Quaternion rotationOffset = new Quaternion(20, 30, 40, 50);
Vector3 offsetPosition = new Vector3(5, 10, 15); Vector3 offsetPosition = new Vector3(5, 10, 15);
part1 part1
= new SceneObjectPart( = new SceneObjectPart(
ownerId, shape, groupPosition, rotationOffset, offsetPosition); ownerId, shape, groupPosition, rotationOffset, offsetPosition);
part1.Name = partName; part1.Name = partName;
scene.AddNewSceneObject(new SceneObjectGroup(part1), false); scene.AddNewSceneObject(new SceneObjectGroup(part1), false);
} }
SceneObjectPart part2; SceneObjectPart part2;
// Create and add prim 2 // Create and add prim 2
{ {
string partName = "Action Man"; string partName = "Action Man";
@ -98,28 +98,28 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
Vector3 groupPosition = new Vector3(90, 80, 70); Vector3 groupPosition = new Vector3(90, 80, 70);
Quaternion rotationOffset = new Quaternion(60, 70, 80, 90); Quaternion rotationOffset = new Quaternion(60, 70, 80, 90);
Vector3 offsetPosition = new Vector3(20, 25, 30); Vector3 offsetPosition = new Vector3(20, 25, 30);
part2 part2
= new SceneObjectPart( = new SceneObjectPart(
ownerId, shape, groupPosition, rotationOffset, offsetPosition); ownerId, shape, groupPosition, rotationOffset, offsetPosition);
part2.Name = partName; part2.Name = partName;
scene.AddNewSceneObject(new SceneObjectGroup(part2), false); scene.AddNewSceneObject(new SceneObjectGroup(part2), false);
} }
MemoryStream archiveWriteStream = new MemoryStream(); MemoryStream archiveWriteStream = new MemoryStream();
scene.EventManager.OnOarFileSaved += SaveCompleted; scene.EventManager.OnOarFileSaved += SaveCompleted;
lock (this) lock (this)
{ {
archiverModule.ArchiveRegion(archiveWriteStream); archiverModule.ArchiveRegion(archiveWriteStream);
Monitor.Wait(this, 60000); Monitor.Wait(this, 60000);
} }
byte[] archive = archiveWriteStream.ToArray(); byte[] archive = archiveWriteStream.ToArray();
MemoryStream archiveReadStream = new MemoryStream(archive); MemoryStream archiveReadStream = new MemoryStream(archive);
TarArchiveReader tar = new TarArchiveReader(archiveReadStream); TarArchiveReader tar = new TarArchiveReader(archiveReadStream);
bool gotControlFile = false; bool gotControlFile = false;
bool gotObject1File = false; bool gotObject1File = false;
bool gotObject2File = false; bool gotObject2File = false;
@ -132,11 +132,11 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
"{0}_{1:000}-{2:000}-{3:000}__{4}.xml", "{0}_{1:000}-{2:000}-{3:000}__{4}.xml",
part2.Name, part2.Name,
Math.Round(part2.GroupPosition.X), Math.Round(part2.GroupPosition.Y), Math.Round(part2.GroupPosition.Z), Math.Round(part2.GroupPosition.X), Math.Round(part2.GroupPosition.Y), Math.Round(part2.GroupPosition.Z),
part2.UUID); part2.UUID);
string filePath; string filePath;
TarArchiveReader.TarEntryType tarEntryType; TarArchiveReader.TarEntryType tarEntryType;
while (tar.ReadEntry(out filePath, out tarEntryType) != null) while (tar.ReadEntry(out filePath, out tarEntryType) != null)
{ {
if (ArchiveConstants.CONTROL_FILE_PATH == filePath) if (ArchiveConstants.CONTROL_FILE_PATH == filePath)
@ -146,7 +146,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
else if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) else if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH))
{ {
string fileName = filePath.Remove(0, ArchiveConstants.OBJECTS_PATH.Length); string fileName = filePath.Remove(0, ArchiveConstants.OBJECTS_PATH.Length);
if (fileName.StartsWith(part1.Name)) if (fileName.StartsWith(part1.Name))
{ {
Assert.That(fileName, Is.EqualTo(expectedObject1FileName)); Assert.That(fileName, Is.EqualTo(expectedObject1FileName));
@ -155,7 +155,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
else if (fileName.StartsWith(part2.Name)) else if (fileName.StartsWith(part2.Name))
{ {
Assert.That(fileName, Is.EqualTo(expectedObject2FileName)); Assert.That(fileName, Is.EqualTo(expectedObject2FileName));
gotObject2File = true; gotObject2File = true;
} }
} }
} }
@ -163,7 +163,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
Assert.That(gotControlFile, Is.True, "No control file in archive"); Assert.That(gotControlFile, Is.True, "No control file in archive");
Assert.That(gotObject1File, Is.True, "No object1 file in archive"); Assert.That(gotObject1File, Is.True, "No object1 file in archive");
Assert.That(gotObject2File, Is.True, "No object2 file in archive"); Assert.That(gotObject2File, Is.True, "No object2 file in archive");
// TODO: Test presence of more files and contents of files. // TODO: Test presence of more files and contents of files.
// Temporary // Temporary
Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod()); Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod());
@ -171,143 +171,143 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
/// <summary> /// <summary>
/// Test loading a V0.2 OpenSim Region Archive. /// Test loading a V0.2 OpenSim Region Archive.
/// </summary> /// </summary>
[Test] [Test]
public void TestLoadOarV0p2() public void TestLoadOarV0p2()
{ {
//log4net.Config.XmlConfigurator.Configure(); //log4net.Config.XmlConfigurator.Configure();
MemoryStream archiveWriteStream = new MemoryStream(); MemoryStream archiveWriteStream = new MemoryStream();
TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
tar.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, ArchiveWriteRequestExecution.Create0p2ControlFile()); tar.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, ArchiveWriteRequestExecution.Create0p2ControlFile());
string part1Name = "object1"; string part1Name = "object1";
PrimitiveBaseShape shape = PrimitiveBaseShape.CreateCylinder(); PrimitiveBaseShape shape = PrimitiveBaseShape.CreateCylinder();
Vector3 groupPosition = new Vector3(90, 80, 70); Vector3 groupPosition = new Vector3(90, 80, 70);
Quaternion rotationOffset = new Quaternion(60, 70, 80, 90); Quaternion rotationOffset = new Quaternion(60, 70, 80, 90);
Vector3 offsetPosition = new Vector3(20, 25, 30); Vector3 offsetPosition = new Vector3(20, 25, 30);
SceneObjectPart part1 SceneObjectPart part1
= new SceneObjectPart( = new SceneObjectPart(
UUID.Zero, shape, groupPosition, rotationOffset, offsetPosition); UUID.Zero, shape, groupPosition, rotationOffset, offsetPosition);
part1.Name = part1Name; part1.Name = part1Name;
SceneObjectGroup object1 = new SceneObjectGroup(part1); SceneObjectGroup object1 = new SceneObjectGroup(part1);
string object1FileName = string.Format( string object1FileName = string.Format(
"{0}_{1:000}-{2:000}-{3:000}__{4}.xml", "{0}_{1:000}-{2:000}-{3:000}__{4}.xml",
part1Name, part1Name,
Math.Round(groupPosition.X), Math.Round(groupPosition.Y), Math.Round(groupPosition.Z), Math.Round(groupPosition.X), Math.Round(groupPosition.Y), Math.Round(groupPosition.Z),
part1.UUID); part1.UUID);
tar.WriteFile(ArchiveConstants.OBJECTS_PATH + object1FileName, object1.ToXmlString2()); tar.WriteFile(ArchiveConstants.OBJECTS_PATH + object1FileName, object1.ToXmlString2());
tar.Close(); tar.Close();
MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
SerialiserModule serialiserModule = new SerialiserModule(); SerialiserModule serialiserModule = new SerialiserModule();
ArchiverModule archiverModule = new ArchiverModule(); ArchiverModule archiverModule = new ArchiverModule();
Scene scene = SceneSetupHelpers.SetupScene(); Scene scene = SceneSetupHelpers.SetupScene();
SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
archiverModule.DearchiveRegion(archiveReadStream); archiverModule.DearchiveRegion(archiveReadStream);
SceneObjectPart object1PartLoaded = scene.GetSceneObjectPart(part1Name); SceneObjectPart object1PartLoaded = scene.GetSceneObjectPart(part1Name);
Assert.That(object1PartLoaded, Is.Not.Null, "object1 was not loaded"); Assert.That(object1PartLoaded, Is.Not.Null, "object1 was not loaded");
Assert.That(object1PartLoaded.Name, Is.EqualTo(part1Name), "object1 names not identical"); Assert.That(object1PartLoaded.Name, Is.EqualTo(part1Name), "object1 names not identical");
Assert.That(object1PartLoaded.GroupPosition, Is.EqualTo(groupPosition), "object1 group position not equal"); Assert.That(object1PartLoaded.GroupPosition, Is.EqualTo(groupPosition), "object1 group position not equal");
Assert.That( Assert.That(
object1PartLoaded.RotationOffset, Is.EqualTo(rotationOffset), "object1 rotation offset not equal"); object1PartLoaded.RotationOffset, Is.EqualTo(rotationOffset), "object1 rotation offset not equal");
Assert.That( Assert.That(
object1PartLoaded.OffsetPosition, Is.EqualTo(offsetPosition), "object1 offset position not equal"); object1PartLoaded.OffsetPosition, Is.EqualTo(offsetPosition), "object1 offset position not equal");
// Temporary // Temporary
Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod()); Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod());
} }
/// <summary> /// <summary>
/// Test merging a V0.2 OpenSim Region Archive into an existing scene /// Test merging a V0.2 OpenSim Region Archive into an existing scene
/// </summary> /// </summary>
///[Test] ///[Test]
public void TestMergeOarV0p2() public void TestMergeOarV0p2()
{ {
//XmlConfigurator.Configure(); //XmlConfigurator.Configure();
MemoryStream archiveWriteStream = new MemoryStream(); MemoryStream archiveWriteStream = new MemoryStream();
string part2Name = "objectMerge"; string part2Name = "objectMerge";
PrimitiveBaseShape part2Shape = PrimitiveBaseShape.CreateCylinder(); PrimitiveBaseShape part2Shape = PrimitiveBaseShape.CreateCylinder();
Vector3 part2GroupPosition = new Vector3(90, 80, 70); Vector3 part2GroupPosition = new Vector3(90, 80, 70);
Quaternion part2RotationOffset = new Quaternion(60, 70, 80, 90); Quaternion part2RotationOffset = new Quaternion(60, 70, 80, 90);
Vector3 part2OffsetPosition = new Vector3(20, 25, 30); Vector3 part2OffsetPosition = new Vector3(20, 25, 30);
// Create an oar file that we can use for the merge // Create an oar file that we can use for the merge
{ {
ArchiverModule archiverModule = new ArchiverModule(); ArchiverModule archiverModule = new ArchiverModule();
SerialiserModule serialiserModule = new SerialiserModule(); SerialiserModule serialiserModule = new SerialiserModule();
TerrainModule terrainModule = new TerrainModule(); TerrainModule terrainModule = new TerrainModule();
Scene scene = SceneSetupHelpers.SetupScene(); Scene scene = SceneSetupHelpers.SetupScene();
SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule);
SceneObjectPart part2 SceneObjectPart part2
= new SceneObjectPart( = new SceneObjectPart(
UUID.Zero, part2Shape, part2GroupPosition, part2RotationOffset, part2OffsetPosition); UUID.Zero, part2Shape, part2GroupPosition, part2RotationOffset, part2OffsetPosition);
part2.Name = part2Name; part2.Name = part2Name;
SceneObjectGroup object2 = new SceneObjectGroup(part2); SceneObjectGroup object2 = new SceneObjectGroup(part2);
scene.AddNewSceneObject(object2, false); scene.AddNewSceneObject(object2, false);
// Write out this scene // Write out this scene
scene.EventManager.OnOarFileSaved += SaveCompleted; scene.EventManager.OnOarFileSaved += SaveCompleted;
lock (this) lock (this)
{ {
archiverModule.ArchiveRegion(archiveWriteStream); archiverModule.ArchiveRegion(archiveWriteStream);
Monitor.Wait(this, 60000); Monitor.Wait(this, 60000);
} }
} }
{ {
ArchiverModule archiverModule = new ArchiverModule(); ArchiverModule archiverModule = new ArchiverModule();
SerialiserModule serialiserModule = new SerialiserModule(); SerialiserModule serialiserModule = new SerialiserModule();
TerrainModule terrainModule = new TerrainModule(); TerrainModule terrainModule = new TerrainModule();
Scene scene = SceneSetupHelpers.SetupScene(); Scene scene = SceneSetupHelpers.SetupScene();
SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule);
string part1Name = "objectExisting"; string part1Name = "objectExisting";
PrimitiveBaseShape part1Shape = PrimitiveBaseShape.CreateCylinder(); PrimitiveBaseShape part1Shape = PrimitiveBaseShape.CreateCylinder();
Vector3 part1GroupPosition = new Vector3(80, 70, 60); Vector3 part1GroupPosition = new Vector3(80, 70, 60);
Quaternion part1RotationOffset = new Quaternion(50, 60, 70, 80); Quaternion part1RotationOffset = new Quaternion(50, 60, 70, 80);
Vector3 part1OffsetPosition = new Vector3(15, 20, 25); Vector3 part1OffsetPosition = new Vector3(15, 20, 25);
SceneObjectPart part1 SceneObjectPart part1
= new SceneObjectPart( = new SceneObjectPart(
UUID.Zero, part1Shape, part1GroupPosition, part1RotationOffset, part1OffsetPosition); UUID.Zero, part1Shape, part1GroupPosition, part1RotationOffset, part1OffsetPosition);
part1.Name = part1Name; part1.Name = part1Name;
SceneObjectGroup object1 = new SceneObjectGroup(part1); SceneObjectGroup object1 = new SceneObjectGroup(part1);
scene.AddNewSceneObject(object1, false); scene.AddNewSceneObject(object1, false);
// Merge in the archive we created earlier // Merge in the archive we created earlier
byte[] archive = archiveWriteStream.ToArray(); byte[] archive = archiveWriteStream.ToArray();
MemoryStream archiveReadStream = new MemoryStream(archive); MemoryStream archiveReadStream = new MemoryStream(archive);
archiverModule.DearchiveRegion(archiveReadStream, true); archiverModule.DearchiveRegion(archiveReadStream, true);
SceneObjectPart object1Existing = scene.GetSceneObjectPart(part1Name); SceneObjectPart object1Existing = scene.GetSceneObjectPart(part1Name);
Assert.That(object1Existing, Is.Not.Null, "object1 was not present after merge"); Assert.That(object1Existing, Is.Not.Null, "object1 was not present after merge");
Assert.That(object1Existing.Name, Is.EqualTo(part1Name), "object1 names not identical after merge"); Assert.That(object1Existing.Name, Is.EqualTo(part1Name), "object1 names not identical after merge");
Assert.That(object1Existing.GroupPosition, Is.EqualTo(part1GroupPosition), "object1 group position not equal after merge"); Assert.That(object1Existing.GroupPosition, Is.EqualTo(part1GroupPosition), "object1 group position not equal after merge");
SceneObjectPart object2PartMerged = scene.GetSceneObjectPart(part2Name); SceneObjectPart object2PartMerged = scene.GetSceneObjectPart(part2Name);
Assert.That(object2PartMerged, Is.Not.Null, "object2 was not present after merge"); Assert.That(object2PartMerged, Is.Not.Null, "object2 was not present after merge");
Assert.That(object2PartMerged.Name, Is.EqualTo(part2Name), "object2 names not identical after merge"); Assert.That(object2PartMerged.Name, Is.EqualTo(part2Name), "object2 names not identical after merge");
Assert.That(object2PartMerged.GroupPosition, Is.EqualTo(part2GroupPosition), "object2 group position not equal after merge"); Assert.That(object2PartMerged.GroupPosition, Is.EqualTo(part2GroupPosition), "object2 group position not equal after merge");
} }
} }
} }
} }

View File

@ -105,7 +105,7 @@
</Files> </Files>
</Project> </Project>
<Project name="OpenSim.Framework.Archive" path="OpenSim/Framework/Archive" type="Library"> <Project name="OpenSim.Framework.Serialization" path="OpenSim/Framework/Serialization" type="Library">
<Configuration name="Debug"> <Configuration name="Debug">
<Options> <Options>
<OutputPath>../../../bin/</OutputPath> <OutputPath>../../../bin/</OutputPath>
@ -885,7 +885,7 @@
<Reference name="OpenMetaverseTypes"/> <Reference name="OpenMetaverseTypes"/>
<Reference name="OpenMetaverse.StructuredData"/> <Reference name="OpenMetaverse.StructuredData"/>
<Reference name="OpenSim.Framework"/> <Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Archive"/> <Reference name="OpenSim.Framework.Serialization"/>
<Reference name="OpenSim.Framework.Servers"/> <Reference name="OpenSim.Framework.Servers"/>
<Reference name="OpenSim.Grid.AssetInventoryServer" /> <Reference name="OpenSim.Grid.AssetInventoryServer" />
<Reference name="log4net"/> <Reference name="log4net"/>
@ -1150,7 +1150,7 @@
<Reference name="OpenSim.Framework.Communications"/> <Reference name="OpenSim.Framework.Communications"/>
<Reference name="OpenSim.Data" /> <Reference name="OpenSim.Data" />
<Reference name="OpenSim.Region.Framework" /> <Reference name="OpenSim.Region.Framework" />
<Reference name="OpenSim.Framework.Archive"/> <Reference name="OpenSim.Framework.Serialization"/>
<Reference name="OpenSim.Framework.Console"/> <Reference name="OpenSim.Framework.Console"/>
<Reference name="OpenSim.Framework.Servers"/> <Reference name="OpenSim.Framework.Servers"/>
<Reference name="OpenSim.Framework.Statistics"/> <Reference name="OpenSim.Framework.Statistics"/>
@ -2972,7 +2972,7 @@
<Reference name="OpenMetaverse.dll"/> <Reference name="OpenMetaverse.dll"/>
<Reference name="OpenSim.Data"/> <Reference name="OpenSim.Data"/>
<Reference name="OpenSim.Framework"/> <Reference name="OpenSim.Framework"/>
<Reference name="OpenSim.Framework.Archive"/> <Reference name="OpenSim.Framework.Serialization"/>
<Reference name="OpenSim.Framework.Communications"/> <Reference name="OpenSim.Framework.Communications"/>
<Reference name="OpenSim.Framework.Console"/> <Reference name="OpenSim.Framework.Console"/>
<Reference name="OpenSim.Framework.Servers"/> <Reference name="OpenSim.Framework.Servers"/>