Some cleaning up and removed a few old files no longer in use.

Temporary have had to rename the OpenSim.DataStore.MonoSqlite project to OpenSim.DataStore.MonoSqlite1, as I'm not sure what was done to stop the old project name being included in the VS2005 solution.
Also some config changes:
OpenSim now has a INI (OpenSim.ini) file that it will read some config settings from (if the ini file exists).
Added Mono.Data.SqliteClient.dll so that we can use the same code for sqlite on Windows and mono/linux. (from what I can tell Mono class libraries have a MIT license so there should be no problems with us including this dll).
So now to get the basic prim storage working , you need to first create the sqlite database file from the sqlite3-prims.sql in share directory. Then in the OpenSim.ini file, change the storage_plugin so it points to OpenSim.DataStore.MonoSqlite1.dll (storage_plugin = OpenSim.DataStore.MonoSqlite1.dll). Then in your region.xml files change the DataStore value so it is the name of your database file (at the moment you need a different sqlite3 database file for each region).
afrisby
MW 2007-08-10 17:22:54 +00:00
parent 8b17e4da10
commit 79f0ac82e3
18 changed files with 251 additions and 186 deletions

View File

@ -1,71 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using libsecondlife;
using OpenSim.Framework.Types;
namespace OpenSim.Framework.Interfaces
{
/// <summary>
/// ILocalStorage. Really hacked together right now needs cleaning up
/// </summary>
[System.Obsolete("Redundant, use IRegionDataStore instead")]
public interface ILocalStorage
{
void Initialise(string datastore);
void StorePrim(PrimData prim);
void RemovePrim(LLUUID primID);
void LoadPrimitives(ILocalStorageReceiver receiver);
[System.Obsolete("Use DataStorage instead")]
float[] LoadScene();
[System.Obsolete("Use DataStorage instead")]
void SaveMap(float[] heightmap);
void SaveLandObjects(LandData[] lands);
void SaveLandObject(LandData land);
void RemoveLandObject(LandData land);
void RemoveAllLandObjects();
void LoadLandObjects(ILocalStorageLandObjectReceiver recv);
void ShutDown();
}
public interface ILocalStorageReceiver
{
void PrimFromStorage(PrimData prim);
}
public interface ILocalStorageLandObjectReceiver
{
void LandFromStorage(LandData data);
void NoLandDataFromStorage();
}
}

View File

@ -1,39 +0,0 @@
/*
* Copyright (c) Contributors, http://www.openmetaverse.org/
* See CONTRIBUTORS.TXT for a full list of copyright holders.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the OpenSim Project nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
using libsecondlife;
using OpenSim.Framework.Inventory;
namespace OpenSim.Framework.Interfaces
{
public interface IUserServer
{
AgentInventory RequestAgentsInventory(LLUUID agentID);
void SetServerInfo(string ServerUrl, string SendKey, string RecvKey);
bool UpdateAgentsInventory(LLUUID agentID, AgentInventory inventory);
}
}

View File

@ -29,6 +29,7 @@ using System;
using System.Globalization;
using System.Net;
using System.Net.Sockets;
using Nini.Config;
using libsecondlife;
using OpenSim.Framework.Console;
using OpenSim.Framework.Interfaces;
@ -163,9 +164,55 @@ namespace OpenSim.Framework.Types
m_externalHostName = externalUri;
}
public void LoadFromNiniSource(IConfigSource source)
{
this.LoadFromNiniSource(source, "RegionInfo");
}
public void LoadFromNiniSource(IConfigSource source, string sectionName)
{
string errorMessage = "";
this.SimUUID = new LLUUID(source.Configs[sectionName].GetString("sim_UUID", LLUUID.Random().ToStringHyphenated()));
this.RegionName = source.Configs[sectionName].GetString("sim_name", "OpenSim Test");
this.m_regionLocX = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_x", "1000"));
this.m_regionLocY = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_y", "1000"));
this.DataStore = source.Configs[sectionName].GetString("datastore", "OpenSim.db");
string ipAddress = source.Configs[sectionName].GetString("internal_ip_address", "0.0.0.0");
IPAddress ipAddressResult;
if (IPAddress.TryParse(ipAddress, out ipAddressResult))
{
this.m_internalEndPoint = new IPEndPoint(ipAddressResult, 0);
}
else
{
errorMessage = "needs an IP Address (IPAddress)";
}
this.m_internalEndPoint.Port = source.Configs[sectionName].GetInt("internal_ip_port",(int) 9000);
string externalHost = source.Configs[sectionName].GetString("external_host_name", "127.0.0.1");
if (externalHost != "SYSTEMIP")
{
this.m_externalHostName = externalHost;
}
else
{
this.m_externalHostName = Util.GetLocalHost().ToString();
}
this.MasterAvatarFirstName = source.Configs[sectionName].GetString("master_avatar_first", "Test");
this.MasterAvatarLastName = source.Configs[sectionName].GetString("master_avatar_last", "User");
this.MasterAvatarSandboxPassword = source.Configs[sectionName].GetString("master_avatar_pass", "test");
if (errorMessage != "")
{
// a error
}
}
public void loadConfigurationOptions()
{
configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "UUID of Simulator (Default is recommended, random UUID)", LLUUID.Random().ToString(),true);
configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "UUID of Simulator (Default is recommended, random UUID)", LLUUID.Random().ToString(), true);
configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Simulator Name", "OpenSim Test", false);
configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (X Axis)", "1000", false);
configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (Y Axis)", "1000", false);

View File

@ -32,6 +32,8 @@ using System.Net;
using System.Text;
using libsecondlife;
using Nini.Config;
namespace OpenSim.Framework.Utilities
{
public class Util
@ -313,5 +315,28 @@ namespace OpenSim.Framework.Utilities
{
}
// Nini (config) related Methods
public static IConfigSource ConvertDataRowToXMLConfig(System.Data.DataRow row, string fileName)
{
if(!File.Exists(fileName))
{
//create new file
}
XmlConfigSource config = new XmlConfigSource(fileName);
AddDataRowToConfig(config, row);
config.Save();
return config;
}
public static void AddDataRowToConfig(IConfigSource config, System.Data.DataRow row)
{
config.Configs.Add((string)row[0]);
for (int i = 0; i < row.Table.Columns.Count; i++)
{
config.Configs[(string)row[0]].Set(row.Table.Columns[i].ColumnName, row[i]);
}
}
}
}

View File

@ -60,8 +60,8 @@ namespace OpenSim
public bool m_sandbox;
public bool user_accounts;
public bool m_gridLocalAsset;
protected bool m_useConfigFile;
public string m_configFileName;
protected string m_storageDLL = "OpenSim.DataStore.NullStorage.dll";
protected List<UDPServer> m_udpServers = new List<UDPServer>();
protected List<RegionInfo> m_regionData = new List<RegionInfo>();
@ -74,31 +74,30 @@ namespace OpenSim
: base()
{
IConfigSource startupSource = configSource;
string iniFile = startupSource.Configs["Startup"].GetString("inifile", "NA");
if (iniFile != "NA")
{
//a INI file is set to be used for startup settings
string iniFilePath = Path.Combine(Util.configDir(), iniFile);
if (File.Exists(iniFilePath))
{
startupSource = new IniConfigSource(iniFilePath);
string iniFile = startupSource.Configs["Startup"].GetString("inifile", "OpenSim.ini");
//enable following line, if we want the original config source(normally commandline args) merged with ini file settings.
//in this case we have it so that if both sources have the same named setting, the command line value will overwrite the ini file value.
//(as if someone has bothered to enter a command line arg, we should take notice of it)
//startupSource.Merge(configSource);
}
//check for .INI file (either default or name passed in command line)
string iniFilePath = Path.Combine(Util.configDir(), iniFile);
if (File.Exists(iniFilePath))
{
startupSource = new IniConfigSource(iniFilePath);
//enable following line, if we want the original config source(normally commandline args) merged with ini file settings.
//in this case we have it so that if both sources have the same named setting, the command line value will overwrite the ini file value.
//(as if someone has bothered to enter a command line arg, we should take notice of it)
startupSource.Merge(configSource);
}
ReadConfigSettings(startupSource);
}
protected void ReadConfigSettings(IConfigSource configSource)
{
m_useConfigFile = configSource.Configs["Startup"].GetBoolean("configfile", false);
m_sandbox = !configSource.Configs["Startup"].GetBoolean("gridmode", false);
m_physicsEngine = configSource.Configs["Startup"].GetString("physics", "basicphysics");
m_configFileName = configSource.Configs["Startup"].GetString("config", "simconfig.xml");
m_silent = configSource.Configs["Startup"].GetBoolean("noverbose", false);
m_storageDLL = configSource.Configs["Startup"].GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll");
}
/// <summary>
@ -110,7 +109,7 @@ namespace OpenSim
{
Directory.CreateDirectory(Util.logDir());
}
m_log = new LogBase(Path.Combine(Util.logDir(), m_logFilename), "Region", this, m_silent);
MainLog.Instance = m_log;
@ -131,12 +130,12 @@ namespace OpenSim
}
string regionConfigPath = Path.Combine(Util.configDir(), "Regions");
if (!Directory.Exists(regionConfigPath))
{
Directory.CreateDirectory(regionConfigPath);
}
string[] configFiles = Directory.GetFiles(regionConfigPath, "*.xml");
if (configFiles.Length == 0)
@ -175,7 +174,7 @@ namespace OpenSim
protected override StorageManager CreateStorageManager(RegionInfo regionInfo)
{
return new StorageManager("OpenSim.DataStore.NullStorage.dll", regionInfo.DataStore, regionInfo.RegionName);
return new StorageManager(m_storageDLL, regionInfo.DataStore, regionInfo.RegionName);
}
protected override Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, AgentCircuitManager circuitManager)
@ -287,7 +286,7 @@ namespace OpenSim
case "terrain":
string result = "";
foreach(Scene scene in m_localScenes)
foreach (Scene scene in m_localScenes)
{
if (!scene.Terrain.RunTerrainCmd(cmdparams, ref result, scene.RegionInfo.RegionName))
{
@ -296,21 +295,21 @@ namespace OpenSim
}
break;
case "script":
foreach(Scene scene in m_localScenes )
foreach (Scene scene in m_localScenes)
{
scene.SendCommandToScripts(cmdparams);
}
break;
case "backup":
foreach(Scene scene in m_localScenes )
foreach (Scene scene in m_localScenes)
{
scene.Backup();
}
break;
case "alert":
foreach(Scene scene in m_localScenes)
foreach (Scene scene in m_localScenes)
{
scene.HandleAlertCommand(cmdparams);
}
@ -344,19 +343,19 @@ namespace OpenSim
for (int i = 0; i < m_localScenes.Count; i++)
{
Scene scene = m_localScenes[i];
foreach (Entity entity in scene.Entities.Values )
foreach (Entity entity in scene.Entities.Values)
{
if ( entity is ScenePresence )
if (entity is ScenePresence)
{
ScenePresence scenePrescence = entity as ScenePresence;
m_log.Error(
String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}{6,-16}",
String.Format("{0,-16}{1,-16}{2,-25}{3,-25}{4,-16},{5,-16}{6,-16}",
scenePrescence.Firstname,
scenePrescence.Lastname,
scenePrescence.UUID,
scenePrescence.UUID,
scenePrescence.ControllingClient.AgentId,
"Unknown",
"Unknown",
"Unknown",
"Unknown",
scene.RegionInfo.RegionName));
}
}

View File

@ -64,17 +64,6 @@ namespace OpenSim.Assets
}
}
public AgentInventory FetchAgentsInventory(LLUUID agentID, IUserServer userserver)
{
AgentInventory res = null;
if (!this._agentsInventory.ContainsKey(agentID))
{
res = userserver.RequestAgentsInventory(agentID);
this._agentsInventory.Add(agentID,res);
}
return res;
}
public AgentInventory GetAgentsInventory(LLUUID agentID)
{
if (this._agentsInventory.ContainsKey(agentID))
@ -85,18 +74,6 @@ namespace OpenSim.Assets
return null;
}
public void ClientLeaving(LLUUID clientID, IUserServer userserver)
{
if (this._agentsInventory.ContainsKey(clientID))
{
if (userserver != null)
{
userserver.UpdateAgentsInventory(clientID, this._agentsInventory[clientID]);
}
this._agentsInventory.Remove(clientID);
}
}
public bool CreateNewInventoryFolder(ClientView remoteClient, LLUUID folderID)
{
return this.CreateNewInventoryFolder(remoteClient, folderID, 0);

View File

@ -120,7 +120,7 @@ namespace OpenSim.Region.ClientStack
public void KillClient()
{
clientPingTimer.Stop();
this.m_inventoryCache.ClientLeaving(this.AgentID, null);
m_scene.RemoveClient(this.AgentId);
m_clientThreads.Remove(this.CircuitCode);

View File

@ -70,7 +70,7 @@ namespace OpenSim.Region.ClientStack
Initialize();
ScenePresence.CreateDefaultTextureEntry("avatar-texture.dat");
ScenePresence.CreateDefaultTextureEntry();
m_httpServer = new BaseHttpServer( m_httpServerPort );

View File

@ -41,7 +41,7 @@ namespace OpenSim.Region.Environment.LandManagement
/// <summary>
/// Handles Land objects and operations requiring information from other Land objects (divide, join, etc)
/// </summary>
public class LandManager : ILocalStorageLandObjectReceiver
public class LandManager
{
#region Constants

View File

@ -50,7 +50,7 @@ namespace OpenSim.Region.Environment.Scenes
public delegate void ForEachScenePresenceDelegate(ScenePresence presence);
public partial class Scene : SceneBase, ILocalStorageReceiver
public partial class Scene : SceneBase
{
protected Timer m_heartbeatTimer = new Timer();
protected Dictionary<LLUUID, ScenePresence> Avatars;
@ -229,7 +229,7 @@ namespace OpenSim.Region.Environment.Scenes
//backup scene data
storageCount++;
if (storageCount > 1200) //set to how often you want to backup
if (storageCount > 600) //set to how often you want to backup
{
Backup();
storageCount = 0;

View File

@ -665,19 +665,8 @@ namespace OpenSim.Region.Environment.Scenes
}
}
public static void CreateDefaultTextureEntry(string name)
public static void CreateDefaultTextureEntry()
{
/* FileInfo fInfo = new FileInfo(name);
long numBytes = fInfo.Length;
FileStream fStream = new FileStream(name, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fStream);
byte[] data1 = br.ReadBytes((int)numBytes);
br.Close();
fStream.Close();
DefaultTexture = data1;
LLObject.TextureEntry textu = new LLObject.TextureEntry(data1, 0, data1.Length);
Console.WriteLine("default texture entry: " + textu.ToString());*/
LLObject.TextureEntry textu = new LLObject.TextureEntry(new LLUUID("C228D1CF-4B5D-4BA8-84F4-899A0796AA97"));
textu.CreateFace(0).TextureID = new LLUUID("00000000-0000-1111-9999-000000000012");
textu.CreateFace(1).TextureID = new LLUUID("5748decc-f629-461c-9a36-a35a221fe21f");

View File

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using OpenSim.Region.Environment.Scenes;
using OpenSim.Region.Environment.LandManagement;
@ -31,9 +30,10 @@ namespace OpenSim.DataStore.MonoSqliteStorage
public void Initialise(string dbfile, string dbname)
{
// for us, dbfile will be the connect string
string connectionString = "URI=file:" + dbfile + ",version=3";
MainLog.Instance.Verbose("DATASTORE", "Sqlite - connecting: " + dbfile);
SqliteConnection conn = new SqliteConnection(dbfile);
SqliteConnection conn = new SqliteConnection(connectionString);
SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn);
primDa = new SqliteDataAdapter(primSelectCmd);
@ -301,6 +301,7 @@ namespace OpenSim.DataStore.MonoSqliteStorage
Convert.ToSingle(row["RotationZ"]),
Convert.ToSingle(row["RotationW"])
);
return prim;
}

Binary file not shown.

4
bin/OpenSim.ini Normal file
View File

@ -0,0 +1,4 @@
[Startup]
gridmode = false
physics = basicphysics
storage_plugin = "OpenSim.DataStore.NullStorage.dll"

BIN
bin/sqlite-3.4.1.so Normal file

Binary file not shown.

131
bin/sqlite3.def Normal file
View File

@ -0,0 +1,131 @@
EXPORTS
sqlite3_aggregate_context
sqlite3_aggregate_count
sqlite3_apis
sqlite3_auto_extension
sqlite3_bind_blob
sqlite3_bind_double
sqlite3_bind_int
sqlite3_bind_int64
sqlite3_bind_null
sqlite3_bind_parameter_count
sqlite3_bind_parameter_index
sqlite3_bind_parameter_name
sqlite3_bind_text
sqlite3_bind_text16
sqlite3_bind_value
sqlite3_bind_zeroblob
sqlite3_blob_bytes
sqlite3_blob_close
sqlite3_blob_open
sqlite3_blob_read
sqlite3_blob_write
sqlite3_busy_handler
sqlite3_busy_timeout
sqlite3_changes
sqlite3_clear_bindings
sqlite3_close
sqlite3_collation_needed
sqlite3_collation_needed16
sqlite3_column_blob
sqlite3_column_bytes
sqlite3_column_bytes16
sqlite3_column_count
sqlite3_column_decltype
sqlite3_column_decltype16
sqlite3_column_double
sqlite3_column_int
sqlite3_column_int64
sqlite3_column_name
sqlite3_column_name16
sqlite3_column_text
sqlite3_column_text16
sqlite3_column_type
sqlite3_column_value
sqlite3_commit_hook
sqlite3_complete
sqlite3_complete16
sqlite3_create_collation
sqlite3_create_collation16
sqlite3_create_collation_v2
sqlite3_create_function
sqlite3_create_function16
sqlite3_create_module
sqlite3_create_module_v2
sqlite3_data_count
sqlite3_db_handle
sqlite3_declare_vtab
sqlite3_enable_load_extension
sqlite3_enable_shared_cache
sqlite3_errcode
sqlite3_errmsg
sqlite3_errmsg16
sqlite3_exec
sqlite3_expired
sqlite3_extended_result_codes
sqlite3_finalize
sqlite3_free
sqlite3_free_table
sqlite3_get_autocommit
sqlite3_get_auxdata
sqlite3_get_table
sqlite3_global_recover
sqlite3_interrupt
sqlite3_last_insert_rowid
sqlite3_libversion
sqlite3_libversion_number
sqlite3_load_extension
sqlite3_malloc
sqlite3_mprintf
sqlite3_open
sqlite3_open16
sqlite3_overload_function
sqlite3_prepare
sqlite3_prepare16
sqlite3_prepare16_v2
sqlite3_prepare_v2
sqlite3_profile
sqlite3_progress_handler
sqlite3_realloc
sqlite3_reset
sqlite3_reset_auto_extension
sqlite3_result_blob
sqlite3_result_double
sqlite3_result_error
sqlite3_result_error16
sqlite3_result_error_toobig
sqlite3_result_int
sqlite3_result_int64
sqlite3_result_null
sqlite3_result_text
sqlite3_result_text16
sqlite3_result_text16be
sqlite3_result_text16le
sqlite3_result_value
sqlite3_result_zeroblob
sqlite3_rollback_hook
sqlite3_set_authorizer
sqlite3_set_auxdata
sqlite3_sleep
sqlite3_snprintf
sqlite3_step
sqlite3_thread_cleanup
sqlite3_total_changes
sqlite3_trace
sqlite3_transfer_bindings
sqlite3_update_hook
sqlite3_user_data
sqlite3_value_blob
sqlite3_value_bytes
sqlite3_value_bytes16
sqlite3_value_double
sqlite3_value_int
sqlite3_value_int64
sqlite3_value_numeric_type
sqlite3_value_text
sqlite3_value_text16
sqlite3_value_text16be
sqlite3_value_text16le
sqlite3_value_type
sqlite3_version
sqlite3_vmprintf

BIN
bin/sqlite3.dll Normal file

Binary file not shown.

View File

@ -93,11 +93,13 @@
<ReferencePath>../../../bin/</ReferencePath>
<Reference name="System"/>
<Reference name="System.Xml"/>
<Reference name="System.Data"/>
<Reference name="libsecondlife.dll"/>
<Reference name="Db4objects.Db4o.dll"/>
<Reference name="XMLRPC.dll"/>
<Reference name="OpenSim.Framework.Console"/>
<Reference name="OpenSim.Framework.Data"/>
<Reference name="Nini.dll" />
<Files>
<Match pattern="*.cs" recurse="true"/>
</Files>
@ -636,7 +638,7 @@
</Files>
</Project>
<Project name="OpenSim.DataStore.MonoSqlite" path="OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite" type="Library">
<Project name="OpenSim.DataStore.MonoSqlite1" path="OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite" type="Library">
<Configuration name="Debug">
<Options>
<OutputPath>../../../../bin/</OutputPath>