diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs
index a032670588..636bf8645b 100644
--- a/OpenSim/Data/SQLite/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs
@@ -30,7 +30,7 @@ using System.Data;
using System.Reflection;
using System.Collections.Generic;
using log4net;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
using OpenMetaverse;
using OpenSim.Framework;
@@ -137,7 +137,7 @@ namespace OpenSim.Data.SQLite
cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local));
cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary));
cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data));
-
+
cmd.ExecuteNonQuery();
}
}
@@ -340,4 +340,4 @@ namespace OpenSim.Data.SQLite
#endregion
}
-}
\ No newline at end of file
+}
diff --git a/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs b/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
index aa10734d50..086ac0a972 100644
--- a/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
@@ -31,7 +31,7 @@ using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
namespace OpenSim.Data.SQLite
{
@@ -56,13 +56,8 @@ namespace OpenSim.Data.SQLite
m_Connection = new SqliteConnection(connectionString);
m_Connection.Open();
- using (SqliteConnection dbcon = (SqliteConnection)((ICloneable)m_Connection).Clone())
- {
- dbcon.Open();
- Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore");
- m.Update();
- dbcon.Close();
- }
+ Migration m = new Migration(m_Connection, GetType().Assembly, "AuthStore");
+ m.Update();
m_initialized = true;
}
@@ -113,7 +108,7 @@ namespace OpenSim.Data.SQLite
}
finally
{
- CloseCommand(cmd);
+ //CloseCommand(cmd);
}
return null;
@@ -156,14 +151,14 @@ namespace OpenSim.Data.SQLite
{
if (ExecuteNonQuery(cmd, m_Connection) < 1)
{
- CloseCommand(cmd);
+ //CloseCommand(cmd);
return false;
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
- CloseCommand(cmd);
+ //CloseCommand(cmd);
return false;
}
}
@@ -184,19 +179,19 @@ namespace OpenSim.Data.SQLite
{
if (ExecuteNonQuery(cmd, m_Connection) < 1)
{
- CloseCommand(cmd);
+ //CloseCommand(cmd);
return false;
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
- CloseCommand(cmd);
+ //CloseCommand(cmd);
return false;
}
}
- CloseCommand(cmd);
+ //CloseCommand(cmd);
return true;
}
diff --git a/OpenSim/Data/SQLite/SQLiteAvatarData.cs b/OpenSim/Data/SQLite/SQLiteAvatarData.cs
index b3f4a4c077..c093884db4 100644
--- a/OpenSim/Data/SQLite/SQLiteAvatarData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAvatarData.cs
@@ -33,7 +33,7 @@ using System.Threading;
using log4net;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
namespace OpenSim.Data.SQLite
{
@@ -55,8 +55,8 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = new SqliteCommand();
cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm);
- cmd.Parameters.Add(":PrincipalID", principalID.ToString());
- cmd.Parameters.Add(":Name", name);
+ cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString());
+ cmd.Parameters.AddWithValue(":Name", name);
try
{
@@ -67,7 +67,7 @@ namespace OpenSim.Data.SQLite
}
finally
{
- CloseCommand(cmd);
+ //CloseCommand(cmd);
}
}
}
diff --git a/OpenSim/Data/SQLite/SQLiteEstateData.cs b/OpenSim/Data/SQLite/SQLiteEstateData.cs
index bd6b776f80..9dd4a2e69b 100644
--- a/OpenSim/Data/SQLite/SQLiteEstateData.cs
+++ b/OpenSim/Data/SQLite/SQLiteEstateData.cs
@@ -30,7 +30,7 @@ using System.Collections.Generic;
using System.Data;
using System.Reflection;
using log4net;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
@@ -62,8 +62,8 @@ namespace OpenSim.Data.SQLite
Migration m = new Migration(m_connection, assem, "EstateStore");
m.Update();
- m_connection.Close();
- m_connection.Open();
+ //m_connection.Close();
+ // m_connection.Open();
Type t = typeof(EstateSettings);
m_Fields = t.GetFields(BindingFlags.NonPublic |
@@ -87,7 +87,7 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = sql;
- cmd.Parameters.Add(":RegionID", regionID.ToString());
+ cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
return DoLoad(cmd, regionID, create);
}
@@ -143,13 +143,13 @@ namespace OpenSim.Data.SQLite
if (m_FieldMap[name].GetValue(es) is bool)
{
if ((bool)m_FieldMap[name].GetValue(es))
- cmd.Parameters.Add(":"+name, "1");
+ cmd.Parameters.AddWithValue(":"+name, "1");
else
- cmd.Parameters.Add(":"+name, "0");
+ cmd.Parameters.AddWithValue(":"+name, "0");
}
else
{
- cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString());
+ cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
}
}
@@ -167,8 +167,8 @@ namespace OpenSim.Data.SQLite
r.Close();
cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)";
- cmd.Parameters.Add(":RegionID", regionID.ToString());
- cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
+ cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
+ cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
// This will throw on dupe key
try
@@ -211,13 +211,13 @@ namespace OpenSim.Data.SQLite
if (m_FieldMap[name].GetValue(es) is bool)
{
if ((bool)m_FieldMap[name].GetValue(es))
- cmd.Parameters.Add(":"+name, "1");
+ cmd.Parameters.AddWithValue(":"+name, "1");
else
- cmd.Parameters.Add(":"+name, "0");
+ cmd.Parameters.AddWithValue(":"+name, "0");
}
else
{
- cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString());
+ cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
}
}
@@ -236,7 +236,7 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID";
- cmd.Parameters.Add(":EstateID", es.EstateID);
+ cmd.Parameters.AddWithValue(":EstateID", es.EstateID);
IDataReader r = cmd.ExecuteReader();
@@ -260,7 +260,7 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "delete from estateban where EstateID = :EstateID";
- cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
+ cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
cmd.ExecuteNonQuery();
@@ -270,8 +270,8 @@ namespace OpenSim.Data.SQLite
foreach (EstateBan b in es.EstateBans)
{
- cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
- cmd.Parameters.Add(":bannedUUID", b.BannedUserID.ToString());
+ cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
+ cmd.Parameters.AddWithValue(":bannedUUID", b.BannedUserID.ToString());
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
@@ -283,7 +283,7 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "delete from "+table+" where EstateID = :EstateID";
- cmd.Parameters.Add(":EstateID", EstateID.ToString());
+ cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
cmd.ExecuteNonQuery();
@@ -293,8 +293,8 @@ namespace OpenSim.Data.SQLite
foreach (UUID uuid in data)
{
- cmd.Parameters.Add(":EstateID", EstateID.ToString());
- cmd.Parameters.Add(":uuid", uuid.ToString());
+ cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
+ cmd.Parameters.AddWithValue(":uuid", uuid.ToString());
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
@@ -308,7 +308,7 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID";
- cmd.Parameters.Add(":EstateID", EstateID);
+ cmd.Parameters.AddWithValue(":EstateID", EstateID);
IDataReader r = cmd.ExecuteReader();
@@ -333,7 +333,7 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = sql;
- cmd.Parameters.Add(":EstateID", estateID.ToString());
+ cmd.Parameters.AddWithValue(":EstateID", estateID.ToString());
return DoLoad(cmd, UUID.Zero, false);
}
@@ -347,7 +347,7 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = sql;
- cmd.Parameters.Add(":EstateName", search);
+ cmd.Parameters.AddWithValue(":EstateName", search);
IDataReader r = cmd.ExecuteReader();
@@ -365,8 +365,8 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)";
- cmd.Parameters.Add(":RegionID", regionID.ToString());
- cmd.Parameters.Add(":EstateID", estateID.ToString());
+ cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
+ cmd.Parameters.AddWithValue(":EstateID", estateID.ToString());
if (cmd.ExecuteNonQuery() == 0)
return false;
diff --git a/OpenSim/Data/SQLite/SQLiteFramework.cs b/OpenSim/Data/SQLite/SQLiteFramework.cs
index 20b508515a..cf114d1a07 100644
--- a/OpenSim/Data/SQLite/SQLiteFramework.cs
+++ b/OpenSim/Data/SQLite/SQLiteFramework.cs
@@ -31,7 +31,7 @@ using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
namespace OpenSim.Data.SQLite
{
@@ -55,11 +55,14 @@ namespace OpenSim.Data.SQLite
{
lock (connection)
{
+/*
SqliteConnection newConnection =
(SqliteConnection)((ICloneable)connection).Clone();
newConnection.Open();
cmd.Connection = newConnection;
+*/
+ cmd.Connection = connection;
//Console.WriteLine("XXX " + cmd.CommandText);
return cmd.ExecuteNonQuery();
@@ -70,11 +73,12 @@ namespace OpenSim.Data.SQLite
{
lock (connection)
{
- SqliteConnection newConnection =
- (SqliteConnection)((ICloneable)connection).Clone();
- newConnection.Open();
+ //SqliteConnection newConnection =
+ // (SqliteConnection)((ICloneable)connection).Clone();
+ //newConnection.Open();
- cmd.Connection = newConnection;
+ //cmd.Connection = newConnection;
+ cmd.Connection = connection;
//Console.WriteLine("XXX " + cmd.CommandText);
return cmd.ExecuteReader();
diff --git a/OpenSim/Data/SQLite/SQLiteFriendsData.cs b/OpenSim/Data/SQLite/SQLiteFriendsData.cs
index 0b121826d6..b06853ce68 100644
--- a/OpenSim/Data/SQLite/SQLiteFriendsData.cs
+++ b/OpenSim/Data/SQLite/SQLiteFriendsData.cs
@@ -31,7 +31,7 @@ using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
namespace OpenSim.Data.SQLite
{
@@ -47,7 +47,7 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = new SqliteCommand();
cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm);
- cmd.Parameters.Add(":PrincipalID", userID.ToString());
+ cmd.Parameters.AddWithValue(":PrincipalID", userID.ToString());
return DoQuery(cmd);
@@ -58,8 +58,8 @@ namespace OpenSim.Data.SQLite
SqliteCommand cmd = new SqliteCommand();
cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm);
- cmd.Parameters.Add(":PrincipalID", principalID.ToString());
- cmd.Parameters.Add(":Friend", friend);
+ cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString());
+ cmd.Parameters.AddWithValue(":Friend", friend);
ExecuteNonQuery(cmd, cmd.Connection);
diff --git a/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs b/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs
index b39bb19fb7..3c70aeffc4 100644
--- a/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs
+++ b/OpenSim/Data/SQLite/SQLiteGenericTableHandler.cs
@@ -30,7 +30,7 @@ using System.Collections.Generic;
using System.Data;
using System.Reflection;
using log4net;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
@@ -59,19 +59,21 @@ namespace OpenSim.Data.SQLite
if (!m_initialized)
{
m_Connection = new SqliteConnection(connectionString);
+ Console.WriteLine(string.Format("OPENING CONNECTION FOR {0} USING {1}", storeName, connectionString));
m_Connection.Open();
if (storeName != String.Empty)
{
Assembly assem = GetType().Assembly;
- SqliteConnection newConnection =
- (SqliteConnection)((ICloneable)m_Connection).Clone();
- newConnection.Open();
+ //SqliteConnection newConnection =
+ // (SqliteConnection)((ICloneable)m_Connection).Clone();
+ //newConnection.Open();
- Migration m = new Migration(newConnection, assem, storeName);
+ //Migration m = new Migration(newConnection, assem, storeName);
+ Migration m = new Migration(m_Connection, assem, storeName);
m.Update();
- newConnection.Close();
- newConnection.Dispose();
+ //newConnection.Close();
+ //newConnection.Dispose();
}
m_initialized = true;
@@ -197,7 +199,7 @@ namespace OpenSim.Data.SQLite
result.Add(row);
}
- CloseCommand(cmd);
+ //CloseCommand(cmd);
return result.ToArray();
}
diff --git a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
index a5e051726e..ece2495c2b 100644
--- a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
+++ b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
@@ -30,7 +30,7 @@ using System.Collections.Generic;
using System.Data;
using System.Reflection;
using log4net;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
using OpenMetaverse;
using OpenSim.Framework;
@@ -98,11 +98,13 @@ namespace OpenSim.Data.SQLite
ds.Tables.Add(createInventoryFoldersTable());
invFoldersDa.Fill(ds.Tables["inventoryfolders"]);
setupFoldersCommands(invFoldersDa, conn);
+ CreateDataSetMapping(invFoldersDa, "inventoryfolders");
m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions");
ds.Tables.Add(createInventoryItemsTable());
invItemsDa.Fill(ds.Tables["inventoryitems"]);
setupItemsCommands(invItemsDa, conn);
+ CreateDataSetMapping(invItemsDa, "inventoryitems");
m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions");
ds.AcceptChanges();
@@ -728,6 +730,15 @@ namespace OpenSim.Data.SQLite
*
**********************************************************************/
+ protected void CreateDataSetMapping(IDataAdapter da, string tableName)
+ {
+ ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
+ foreach (DataColumn col in ds.Tables[tableName].Columns)
+ {
+ dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
+ }
+ }
+
///
/// Create the "inventoryitems" table
///
diff --git a/OpenSim/Data/SQLite/SQLiteRegionData.cs b/OpenSim/Data/SQLite/SQLiteRegionData.cs
index d2ba9ae298..997664a45c 100644
--- a/OpenSim/Data/SQLite/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLite/SQLiteRegionData.cs
@@ -32,7 +32,7 @@ using System.Drawing;
using System.IO;
using System.Reflection;
using log4net;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
@@ -87,119 +87,142 @@ namespace OpenSim.Data.SQLite
/// the connection string
public void Initialise(string connectionString)
{
- m_connectionString = connectionString;
-
- ds = new DataSet();
-
- m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
- m_conn = new SqliteConnection(m_connectionString);
- m_conn.Open();
-
-
-
- SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
- primDa = new SqliteDataAdapter(primSelectCmd);
- // SqliteCommandBuilder primCb = new SqliteCommandBuilder(primDa);
-
- SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
- shapeDa = new SqliteDataAdapter(shapeSelectCmd);
- // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
-
- SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn);
- itemsDa = new SqliteDataAdapter(itemsSelectCmd);
-
- SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn);
- terrainDa = new SqliteDataAdapter(terrainSelectCmd);
-
- SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn);
- landDa = new SqliteDataAdapter(landSelectCmd);
-
- SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn);
- landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd);
-
- SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn);
- regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd);
- // This actually does the roll forward assembly stuff
- Assembly assem = GetType().Assembly;
- Migration m = new Migration(m_conn, assem, "RegionStore");
- m.Update();
-
- lock (ds)
+ try
{
- ds.Tables.Add(createPrimTable());
- setupPrimCommands(primDa, m_conn);
- primDa.Fill(ds.Tables["prims"]);
+ m_connectionString = connectionString;
- ds.Tables.Add(createShapeTable());
- setupShapeCommands(shapeDa, m_conn);
+ ds = new DataSet("Region");
- ds.Tables.Add(createItemsTable());
- setupItemsCommands(itemsDa, m_conn);
- itemsDa.Fill(ds.Tables["primitems"]);
+ m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
+ m_conn = new SqliteConnection(m_connectionString);
+ m_conn.Open();
- ds.Tables.Add(createTerrainTable());
- setupTerrainCommands(terrainDa, m_conn);
+ SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
+ primDa = new SqliteDataAdapter(primSelectCmd);
- ds.Tables.Add(createLandTable());
- setupLandCommands(landDa, m_conn);
+ SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
+ shapeDa = new SqliteDataAdapter(shapeSelectCmd);
+ // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
- ds.Tables.Add(createLandAccessListTable());
- setupLandAccessCommands(landAccessListDa, m_conn);
+ SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn);
+ itemsDa = new SqliteDataAdapter(itemsSelectCmd);
- ds.Tables.Add(createRegionSettingsTable());
-
- setupRegionSettingsCommands(regionSettingsDa, m_conn);
+ SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn);
+ terrainDa = new SqliteDataAdapter(terrainSelectCmd);
- // WORKAROUND: This is a work around for sqlite on
- // windows, which gets really unhappy with blob columns
- // that have no sample data in them. At some point we
- // need to actually find a proper way to handle this.
- try
+ SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn);
+ landDa = new SqliteDataAdapter(landSelectCmd);
+
+ SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn);
+ landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd);
+
+ SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn);
+ regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd);
+ // This actually does the roll forward assembly stuff
+ Assembly assem = GetType().Assembly;
+ Migration m = new Migration(m_conn, assem, "RegionStore");
+ m.Update();
+
+ lock (ds)
{
- shapeDa.Fill(ds.Tables["primshapes"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on primshapes table");
- }
+ ds.Tables.Add(createPrimTable());
+ setupPrimCommands(primDa, m_conn);
- try
- {
- terrainDa.Fill(ds.Tables["terrain"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on terrain table");
- }
+ ds.Tables.Add(createShapeTable());
+ setupShapeCommands(shapeDa, m_conn);
- try
- {
- landDa.Fill(ds.Tables["land"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on land table");
- }
+ ds.Tables.Add(createItemsTable());
+ setupItemsCommands(itemsDa, m_conn);
- try
- {
- landAccessListDa.Fill(ds.Tables["landaccesslist"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
- }
+ ds.Tables.Add(createTerrainTable());
+ setupTerrainCommands(terrainDa, m_conn);
- try
- {
- regionSettingsDa.Fill(ds.Tables["regionsettings"]);
+ ds.Tables.Add(createLandTable());
+ setupLandCommands(landDa, m_conn);
+
+ ds.Tables.Add(createLandAccessListTable());
+ setupLandAccessCommands(landAccessListDa, m_conn);
+
+ ds.Tables.Add(createRegionSettingsTable());
+ setupRegionSettingsCommands(regionSettingsDa, m_conn);
+
+ // WORKAROUND: This is a work around for sqlite on
+ // windows, which gets really unhappy with blob columns
+ // that have no sample data in them. At some point we
+ // need to actually find a proper way to handle this.
+ try
+ {
+ primDa.Fill(ds.Tables["prims"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on prims table");
+ }
+
+ try
+ {
+ shapeDa.Fill(ds.Tables["primshapes"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on primshapes table");
+ }
+
+ try
+ {
+ terrainDa.Fill(ds.Tables["terrain"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on terrain table");
+ }
+
+ try
+ {
+ landDa.Fill(ds.Tables["land"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on land table");
+ }
+
+ try
+ {
+ landAccessListDa.Fill(ds.Tables["landaccesslist"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
+ }
+
+ try
+ {
+ regionSettingsDa.Fill(ds.Tables["regionsettings"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
+ }
+
+ // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values!
+ // Not sure exactly why this is - this kind of thing was not necessary before - justincc 20100409
+ // Possibly because we manually set up our own DataTables before connecting to the database
+ CreateDataSetMapping(primDa, "prims");
+ CreateDataSetMapping(shapeDa, "primshapes");
+ CreateDataSetMapping(itemsDa, "primitems");
+ CreateDataSetMapping(terrainDa, "terrain");
+ CreateDataSetMapping(landDa, "land");
+ CreateDataSetMapping(landAccessListDa, "landaccesslist");
+ CreateDataSetMapping(regionSettingsDa, "regionsettings");
}
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
- }
- return;
}
+ catch (Exception e)
+ {
+ m_log.Error(e);
+ Environment.Exit(23);
+ }
+
+ return;
}
public void Dispose()
@@ -603,7 +626,7 @@ namespace OpenSim.Data.SQLite
}
}
}
- rev = (int) row["Revision"];
+ rev = Convert.ToInt32(row["Revision"]);
}
else
{
@@ -755,6 +778,7 @@ namespace OpenSim.Data.SQLite
///
public void Commit()
{
+ //m_log.Debug("[SQLITE]: Starting commit");
lock (ds)
{
primDa.Update(ds, "prims");
@@ -769,18 +793,11 @@ namespace OpenSim.Data.SQLite
{
regionSettingsDa.Update(ds, "regionsettings");
}
- catch (SqliteExecutionException SqlEx)
+ catch (SqliteException SqlEx)
{
- if (SqlEx.Message.Contains("logic error"))
- {
- throw new Exception(
- "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!",
- SqlEx);
- }
- else
- {
- throw SqlEx;
- }
+ throw new Exception(
+ "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!",
+ SqlEx);
}
ds.AcceptChanges();
}
@@ -802,6 +819,15 @@ namespace OpenSim.Data.SQLite
*
**********************************************************************/
+ protected void CreateDataSetMapping(IDataAdapter da, string tableName)
+ {
+ ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
+ foreach (DataColumn col in ds.Tables[tableName].Columns)
+ {
+ dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
+ }
+ }
+
///
///
///
@@ -1897,7 +1923,7 @@ namespace OpenSim.Data.SQLite
///
public void StorePrimInventory(UUID primID, ICollection items)
{
- m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
+ //m_log.InfoFormat("[REGION DB]: Entered StorePrimInventory with prim ID {0}", primID);
DataTable dbItems = ds.Tables["primitems"];
@@ -1964,6 +1990,7 @@ namespace OpenSim.Data.SQLite
sql += ") values (:";
sql += String.Join(", :", cols);
sql += ")";
+ //m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql);
SqliteCommand cmd = new SqliteCommand(sql);
// this provides the binding for all our parameters, so
@@ -2259,6 +2286,36 @@ namespace OpenSim.Data.SQLite
return DbType.String;
}
}
+
+ static void PrintDataSet(DataSet ds)
+ {
+ // Print out any name and extended properties.
+ Console.WriteLine("DataSet is named: {0}", ds.DataSetName);
+ foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties)
+ {
+ Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
+ }
+ Console.WriteLine();
+ foreach (DataTable dt in ds.Tables)
+ {
+ Console.WriteLine("=> {0} Table:", dt.TableName);
+ // Print out the column names.
+ for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
+ {
+ Console.Write(dt.Columns[curCol].ColumnName + "\t");
+ }
+ Console.WriteLine("\n----------------------------------");
+ // Print the DataTable.
+ for (int curRow = 0; curRow < dt.Rows.Count; curRow++)
+ {
+ for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
+ {
+ Console.Write(dt.Rows[curRow][curCol].ToString() + "\t");
+ }
+ Console.WriteLine();
+ }
+ }
+ }
}
}
diff --git a/OpenSim/Data/SQLite/SQLiteUserAccountData.cs b/OpenSim/Data/SQLite/SQLiteUserAccountData.cs
index 67cf7165b1..893f105604 100644
--- a/OpenSim/Data/SQLite/SQLiteUserAccountData.cs
+++ b/OpenSim/Data/SQLite/SQLiteUserAccountData.cs
@@ -31,7 +31,7 @@ using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
namespace OpenSim.Data.SQLite
{
@@ -66,7 +66,7 @@ namespace OpenSim.Data.SQLite
if (words.Length == 1)
{
- cmd.CommandText = String.Format("select * from {0} where (ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')",
+ cmd.CommandText = String.Format("select * from {0} where ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')",
m_Realm, scopeID.ToString(), words[0]);
}
else
diff --git a/OpenSim/Data/SQLite/SQLiteUtils.cs b/OpenSim/Data/SQLite/SQLiteUtils.cs
index 4a835ce52f..07c6b69a3b 100644
--- a/OpenSim/Data/SQLite/SQLiteUtils.cs
+++ b/OpenSim/Data/SQLite/SQLiteUtils.cs
@@ -27,7 +27,7 @@
using System;
using System.Data;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
namespace OpenSim.Data.SQLite
{
diff --git a/OpenSim/Data/SQLite/SQLiteXInventoryData.cs b/OpenSim/Data/SQLite/SQLiteXInventoryData.cs
index a66e0c6fe0..be1d0412fd 100644
--- a/OpenSim/Data/SQLite/SQLiteXInventoryData.cs
+++ b/OpenSim/Data/SQLite/SQLiteXInventoryData.cs
@@ -29,7 +29,7 @@ using System;
using System.Data;
using System.Reflection;
using System.Collections.Generic;
-using Mono.Data.SqliteClient;
+using Mono.Data.Sqlite;
using log4net;
using OpenMetaverse;
using OpenSim.Framework;
@@ -147,7 +147,7 @@ namespace OpenSim.Data.SQLite
}
reader.Close();
- CloseCommand(cmd);
+ //CloseCommand(cmd);
return perms;
}
diff --git a/OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs b/OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs
similarity index 96%
rename from OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs
rename to OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs
index 4aeb67b375..609a024b73 100644
--- a/OpenSim/Data/SQLiteNG/Properties/AssemblyInfo.cs
+++ b/OpenSim/Data/SQLiteLegacy/Properties/AssemblyInfo.cs
@@ -32,11 +32,11 @@ using System.Runtime.InteropServices;
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly : AssemblyTitle("OpenSim.Data.SQLiteNG")]
+[assembly : AssemblyTitle("OpenSim.Data.SQLiteLegacy")]
[assembly : AssemblyDescription("")]
[assembly : AssemblyConfiguration("")]
[assembly : AssemblyCompany("http://opensimulator.org")]
-[assembly : AssemblyProduct("OpenSim.Data.SQLiteNG")]
+[assembly : AssemblyProduct("OpenSim.Data.SQLiteLegacy")]
[assembly : AssemblyCopyright("Copyright (c) OpenSimulator.org Developers 2007-2009")]
[assembly : AssemblyTrademark("")]
[assembly : AssemblyCulture("")]
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_AssetStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/001_AssetStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/001_AssetStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_AuthStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/001_AuthStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/001_AuthStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_Avatar.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/001_Avatar.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/001_Avatar.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_FriendsStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/001_FriendsStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/001_FriendsStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_InventoryStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/001_InventoryStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/001_InventoryStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/001_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/001_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_UserAccount.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/001_UserAccount.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/001_UserAccount.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/001_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/001_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/001_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/001_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_AssetStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/002_AssetStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/002_AssetStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_AuthStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/002_AuthStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/002_AuthStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_FriendsStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/002_FriendsStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/002_FriendsStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_InventoryStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/002_InventoryStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/002_InventoryStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/002_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/002_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_UserAccount.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/002_UserAccount.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/002_UserAccount.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/002_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/002_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/002_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/002_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_AssetStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/003_AssetStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/003_AssetStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_InventoryStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/003_InventoryStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/003_InventoryStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/003_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/003_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/003_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/003_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/003_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/003_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_AssetStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_AssetStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/004_AssetStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/004_AssetStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_InventoryStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_InventoryStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/004_InventoryStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/004_InventoryStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/004_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/004_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/004_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/004_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/004_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/004_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/005_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/005_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/005_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/005_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/005_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/005_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/005_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/005_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/006_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/006_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/006_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/006_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/006_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/006_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/006_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/006_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/007_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/007_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/007_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/007_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/007_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/007_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/007_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/007_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/008_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/008_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/008_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/008_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/008_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/008_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/008_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/008_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/009_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/009_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/009_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/009_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/009_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/009_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/009_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/009_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/010_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/010_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/010_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/010_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/010_UserStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/010_UserStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/010_UserStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/010_UserStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/011_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/011_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/011_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/011_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/012_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/012_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/012_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/012_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/013_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/013_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/013_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/013_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/014_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/014_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/014_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/014_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/015_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/015_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/015_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/015_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/016_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/016_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/016_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/016_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/017_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/017_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/017_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/017_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/018_RegionStore.sql b/OpenSim/Data/SQLiteLegacy/Resources/018_RegionStore.sql
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/018_RegionStore.sql
rename to OpenSim/Data/SQLiteLegacy/Resources/018_RegionStore.sql
diff --git a/OpenSim/Data/SQLiteNG/Resources/OpenSim.Data.SQLite.addin.xml b/OpenSim/Data/SQLiteLegacy/Resources/OpenSim.Data.SQLite.addin.xml
similarity index 100%
rename from OpenSim/Data/SQLiteNG/Resources/OpenSim.Data.SQLite.addin.xml
rename to OpenSim/Data/SQLiteLegacy/Resources/OpenSim.Data.SQLite.addin.xml
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAssetData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs
similarity index 99%
rename from OpenSim/Data/SQLiteNG/SQLiteAssetData.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs
index 9b34a21592..0d63deacd8 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteAssetData.cs
@@ -30,11 +30,11 @@ using System.Data;
using System.Reflection;
using System.Collections.Generic;
using log4net;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
using OpenMetaverse;
using OpenSim.Framework;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
///
/// An asset storage interface for the SQLite database system
@@ -137,7 +137,7 @@ namespace OpenSim.Data.SQLiteNG
cmd.Parameters.Add(new SqliteParameter(":Local", asset.Local));
cmd.Parameters.Add(new SqliteParameter(":Temporary", asset.Temporary));
cmd.Parameters.Add(new SqliteParameter(":Data", asset.Data));
-
+
cmd.ExecuteNonQuery();
}
}
@@ -340,4 +340,4 @@ namespace OpenSim.Data.SQLiteNG
#endregion
}
-}
+}
\ No newline at end of file
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs
similarity index 93%
rename from OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs
index 4a5dc2eeba..c64830a455 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteAuthenticationData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteAuthenticationData.cs
@@ -31,9 +31,9 @@ using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
public class SQLiteAuthenticationData : SQLiteFramework, IAuthenticationData
{
@@ -56,8 +56,13 @@ namespace OpenSim.Data.SQLiteNG
m_Connection = new SqliteConnection(connectionString);
m_Connection.Open();
- Migration m = new Migration(m_Connection, GetType().Assembly, "AuthStore");
- m.Update();
+ using (SqliteConnection dbcon = (SqliteConnection)((ICloneable)m_Connection).Clone())
+ {
+ dbcon.Open();
+ Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore");
+ m.Update();
+ dbcon.Close();
+ }
m_initialized = true;
}
@@ -108,7 +113,7 @@ namespace OpenSim.Data.SQLiteNG
}
finally
{
- //CloseCommand(cmd);
+ CloseCommand(cmd);
}
return null;
@@ -151,14 +156,14 @@ namespace OpenSim.Data.SQLiteNG
{
if (ExecuteNonQuery(cmd, m_Connection) < 1)
{
- //CloseCommand(cmd);
+ CloseCommand(cmd);
return false;
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
- //CloseCommand(cmd);
+ CloseCommand(cmd);
return false;
}
}
@@ -179,19 +184,19 @@ namespace OpenSim.Data.SQLiteNG
{
if (ExecuteNonQuery(cmd, m_Connection) < 1)
{
- //CloseCommand(cmd);
+ CloseCommand(cmd);
return false;
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
- //CloseCommand(cmd);
+ CloseCommand(cmd);
return false;
}
}
- //CloseCommand(cmd);
+ CloseCommand(cmd);
return true;
}
diff --git a/OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs
similarity index 92%
rename from OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs
index d0fd49c5ae..660632ca07 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteAvatarData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteAvatarData.cs
@@ -33,9 +33,9 @@ using System.Threading;
using log4net;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
///
/// A SQLite Interface for Avatar Data
@@ -55,8 +55,8 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = new SqliteCommand();
cmd.CommandText = String.Format("delete from {0} where `PrincipalID` = :PrincipalID and `Name` = :Name", m_Realm);
- cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString());
- cmd.Parameters.AddWithValue(":Name", name);
+ cmd.Parameters.Add(":PrincipalID", principalID.ToString());
+ cmd.Parameters.Add(":Name", name);
try
{
@@ -67,7 +67,7 @@ namespace OpenSim.Data.SQLiteNG
}
finally
{
- //CloseCommand(cmd);
+ CloseCommand(cmd);
}
}
}
diff --git a/OpenSim/Data/SQLiteNG/SQLiteEstateData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs
similarity index 87%
rename from OpenSim/Data/SQLiteNG/SQLiteEstateData.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs
index 2e2d717cc9..e135eaa524 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteEstateData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteEstateData.cs
@@ -30,12 +30,12 @@ using System.Collections.Generic;
using System.Data;
using System.Reflection;
using log4net;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
public class SQLiteEstateStore : IEstateDataStore
{
@@ -62,8 +62,8 @@ namespace OpenSim.Data.SQLiteNG
Migration m = new Migration(m_connection, assem, "EstateStore");
m.Update();
- //m_connection.Close();
- // m_connection.Open();
+ m_connection.Close();
+ m_connection.Open();
Type t = typeof(EstateSettings);
m_Fields = t.GetFields(BindingFlags.NonPublic |
@@ -87,7 +87,7 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = sql;
- cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
+ cmd.Parameters.Add(":RegionID", regionID.ToString());
return DoLoad(cmd, regionID, create);
}
@@ -143,13 +143,13 @@ namespace OpenSim.Data.SQLiteNG
if (m_FieldMap[name].GetValue(es) is bool)
{
if ((bool)m_FieldMap[name].GetValue(es))
- cmd.Parameters.AddWithValue(":"+name, "1");
+ cmd.Parameters.Add(":"+name, "1");
else
- cmd.Parameters.AddWithValue(":"+name, "0");
+ cmd.Parameters.Add(":"+name, "0");
}
else
{
- cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
+ cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString());
}
}
@@ -167,8 +167,8 @@ namespace OpenSim.Data.SQLiteNG
r.Close();
cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)";
- cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
- cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
+ cmd.Parameters.Add(":RegionID", regionID.ToString());
+ cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
// This will throw on dupe key
try
@@ -211,13 +211,13 @@ namespace OpenSim.Data.SQLiteNG
if (m_FieldMap[name].GetValue(es) is bool)
{
if ((bool)m_FieldMap[name].GetValue(es))
- cmd.Parameters.AddWithValue(":"+name, "1");
+ cmd.Parameters.Add(":"+name, "1");
else
- cmd.Parameters.AddWithValue(":"+name, "0");
+ cmd.Parameters.Add(":"+name, "0");
}
else
{
- cmd.Parameters.AddWithValue(":"+name, m_FieldMap[name].GetValue(es).ToString());
+ cmd.Parameters.Add(":"+name, m_FieldMap[name].GetValue(es).ToString());
}
}
@@ -236,7 +236,7 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "select bannedUUID from estateban where EstateID = :EstateID";
- cmd.Parameters.AddWithValue(":EstateID", es.EstateID);
+ cmd.Parameters.Add(":EstateID", es.EstateID);
IDataReader r = cmd.ExecuteReader();
@@ -260,7 +260,7 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "delete from estateban where EstateID = :EstateID";
- cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
+ cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
cmd.ExecuteNonQuery();
@@ -270,8 +270,8 @@ namespace OpenSim.Data.SQLiteNG
foreach (EstateBan b in es.EstateBans)
{
- cmd.Parameters.AddWithValue(":EstateID", es.EstateID.ToString());
- cmd.Parameters.AddWithValue(":bannedUUID", b.BannedUserID.ToString());
+ cmd.Parameters.Add(":EstateID", es.EstateID.ToString());
+ cmd.Parameters.Add(":bannedUUID", b.BannedUserID.ToString());
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
@@ -283,7 +283,7 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "delete from "+table+" where EstateID = :EstateID";
- cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
+ cmd.Parameters.Add(":EstateID", EstateID.ToString());
cmd.ExecuteNonQuery();
@@ -293,8 +293,8 @@ namespace OpenSim.Data.SQLiteNG
foreach (UUID uuid in data)
{
- cmd.Parameters.AddWithValue(":EstateID", EstateID.ToString());
- cmd.Parameters.AddWithValue(":uuid", uuid.ToString());
+ cmd.Parameters.Add(":EstateID", EstateID.ToString());
+ cmd.Parameters.Add(":uuid", uuid.ToString());
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
@@ -308,7 +308,7 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "select uuid from "+table+" where EstateID = :EstateID";
- cmd.Parameters.AddWithValue(":EstateID", EstateID);
+ cmd.Parameters.Add(":EstateID", EstateID);
IDataReader r = cmd.ExecuteReader();
@@ -333,7 +333,7 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = sql;
- cmd.Parameters.AddWithValue(":EstateID", estateID.ToString());
+ cmd.Parameters.Add(":EstateID", estateID.ToString());
return DoLoad(cmd, UUID.Zero, false);
}
@@ -347,7 +347,7 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = sql;
- cmd.Parameters.AddWithValue(":EstateName", search);
+ cmd.Parameters.Add(":EstateName", search);
IDataReader r = cmd.ExecuteReader();
@@ -365,8 +365,8 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = (SqliteCommand)m_connection.CreateCommand();
cmd.CommandText = "insert into estate_map values (:RegionID, :EstateID)";
- cmd.Parameters.AddWithValue(":RegionID", regionID.ToString());
- cmd.Parameters.AddWithValue(":EstateID", estateID.ToString());
+ cmd.Parameters.Add(":RegionID", regionID.ToString());
+ cmd.Parameters.Add(":EstateID", estateID.ToString());
if (cmd.ExecuteNonQuery() == 0)
return false;
diff --git a/OpenSim/Data/SQLiteNG/SQLiteFramework.cs b/OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs
similarity index 89%
rename from OpenSim/Data/SQLiteNG/SQLiteFramework.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs
index f0ddc597bd..606478ea7e 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteFramework.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteFramework.cs
@@ -31,9 +31,9 @@ using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
///
/// A database interface class to a user profile storage system
@@ -55,14 +55,11 @@ namespace OpenSim.Data.SQLiteNG
{
lock (connection)
{
-/*
SqliteConnection newConnection =
(SqliteConnection)((ICloneable)connection).Clone();
newConnection.Open();
cmd.Connection = newConnection;
-*/
- cmd.Connection = connection;
//Console.WriteLine("XXX " + cmd.CommandText);
return cmd.ExecuteNonQuery();
@@ -73,12 +70,11 @@ namespace OpenSim.Data.SQLiteNG
{
lock (connection)
{
- //SqliteConnection newConnection =
- // (SqliteConnection)((ICloneable)connection).Clone();
- //newConnection.Open();
+ SqliteConnection newConnection =
+ (SqliteConnection)((ICloneable)connection).Clone();
+ newConnection.Open();
- //cmd.Connection = newConnection;
- cmd.Connection = connection;
+ cmd.Connection = newConnection;
//Console.WriteLine("XXX " + cmd.CommandText);
return cmd.ExecuteReader();
diff --git a/OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs
similarity index 91%
rename from OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs
index 702a1d8643..d529d4d8ab 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteFriendsData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteFriendsData.cs
@@ -31,9 +31,9 @@ using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
public class SQLiteFriendsData : SQLiteGenericTableHandler, IFriendsData
{
@@ -47,7 +47,7 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = new SqliteCommand();
cmd.CommandText = String.Format("select a.*,case when b.Flags is null then -1 else b.Flags end as TheirFlags from {0} as a left join {0} as b on a.PrincipalID = b.Friend and a.Friend = b.PrincipalID where a.PrincipalID = :PrincipalID", m_Realm);
- cmd.Parameters.AddWithValue(":PrincipalID", userID.ToString());
+ cmd.Parameters.Add(":PrincipalID", userID.ToString());
return DoQuery(cmd);
@@ -58,8 +58,8 @@ namespace OpenSim.Data.SQLiteNG
SqliteCommand cmd = new SqliteCommand();
cmd.CommandText = String.Format("delete from {0} where PrincipalID = :PrincipalID and Friend = :Friend", m_Realm);
- cmd.Parameters.AddWithValue(":PrincipalID", principalID.ToString());
- cmd.Parameters.AddWithValue(":Friend", friend);
+ cmd.Parameters.Add(":PrincipalID", principalID.ToString());
+ cmd.Parameters.Add(":Friend", friend);
ExecuteNonQuery(cmd, cmd.Connection);
diff --git a/OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs b/OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs
similarity index 93%
rename from OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs
index 632c5bf8c9..1c1fe8cc0f 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteGenericTableHandler.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteGenericTableHandler.cs
@@ -30,12 +30,12 @@ using System.Collections.Generic;
using System.Data;
using System.Reflection;
using log4net;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
public class SQLiteGenericTableHandler : SQLiteFramework where T: class, new()
{
@@ -59,21 +59,19 @@ namespace OpenSim.Data.SQLiteNG
if (!m_initialized)
{
m_Connection = new SqliteConnection(connectionString);
- Console.WriteLine(string.Format("OPENING CONNECTION FOR {0} USING {1}", storeName, connectionString));
m_Connection.Open();
if (storeName != String.Empty)
{
Assembly assem = GetType().Assembly;
- //SqliteConnection newConnection =
- // (SqliteConnection)((ICloneable)m_Connection).Clone();
- //newConnection.Open();
+ SqliteConnection newConnection =
+ (SqliteConnection)((ICloneable)m_Connection).Clone();
+ newConnection.Open();
- //Migration m = new Migration(newConnection, assem, storeName);
- Migration m = new Migration(m_Connection, assem, storeName);
+ Migration m = new Migration(newConnection, assem, storeName);
m.Update();
- //newConnection.Close();
- //newConnection.Dispose();
+ newConnection.Close();
+ newConnection.Dispose();
}
m_initialized = true;
@@ -199,7 +197,7 @@ namespace OpenSim.Data.SQLiteNG
result.Add(row);
}
- //CloseCommand(cmd);
+ CloseCommand(cmd);
return result.ToArray();
}
diff --git a/OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs b/OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs
similarity index 98%
rename from OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs
index 9207ca3cc4..726703b79d 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteInventoryStore.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteInventoryStore.cs
@@ -30,11 +30,11 @@ using System.Collections.Generic;
using System.Data;
using System.Reflection;
using log4net;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
using OpenMetaverse;
using OpenSim.Framework;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
///
/// An Inventory Interface to the SQLite database
@@ -98,13 +98,11 @@ namespace OpenSim.Data.SQLiteNG
ds.Tables.Add(createInventoryFoldersTable());
invFoldersDa.Fill(ds.Tables["inventoryfolders"]);
setupFoldersCommands(invFoldersDa, conn);
- CreateDataSetMapping(invFoldersDa, "inventoryfolders");
m_log.Info("[INVENTORY DB]: Populated Inventory Folders Definitions");
ds.Tables.Add(createInventoryItemsTable());
invItemsDa.Fill(ds.Tables["inventoryitems"]);
setupItemsCommands(invItemsDa, conn);
- CreateDataSetMapping(invItemsDa, "inventoryitems");
m_log.Info("[INVENTORY DB]: Populated Inventory Items Definitions");
ds.AcceptChanges();
@@ -730,15 +728,6 @@ namespace OpenSim.Data.SQLiteNG
*
**********************************************************************/
- protected void CreateDataSetMapping(IDataAdapter da, string tableName)
- {
- ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
- foreach (DataColumn col in ds.Tables[tableName].Columns)
- {
- dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
- }
- }
-
///
/// Create the "inventoryitems" table
///
diff --git a/OpenSim/Data/SQLiteNG/SQLiteRegionData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs
similarity index 91%
rename from OpenSim/Data/SQLiteNG/SQLiteRegionData.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs
index 289d626543..eb78037bb1 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteRegionData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteRegionData.cs
@@ -32,13 +32,13 @@ using System.Drawing;
using System.IO;
using System.Reflection;
using log4net;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
using OpenMetaverse;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Region.Framework.Scenes;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
///
/// A RegionData Interface to the SQLite database
@@ -87,142 +87,119 @@ namespace OpenSim.Data.SQLiteNG
/// the connection string
public void Initialise(string connectionString)
{
- try
+ m_connectionString = connectionString;
+
+ ds = new DataSet();
+
+ m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
+ m_conn = new SqliteConnection(m_connectionString);
+ m_conn.Open();
+
+
+
+ SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
+ primDa = new SqliteDataAdapter(primSelectCmd);
+ // SqliteCommandBuilder primCb = new SqliteCommandBuilder(primDa);
+
+ SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
+ shapeDa = new SqliteDataAdapter(shapeSelectCmd);
+ // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
+
+ SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn);
+ itemsDa = new SqliteDataAdapter(itemsSelectCmd);
+
+ SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn);
+ terrainDa = new SqliteDataAdapter(terrainSelectCmd);
+
+ SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn);
+ landDa = new SqliteDataAdapter(landSelectCmd);
+
+ SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn);
+ landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd);
+
+ SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn);
+ regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd);
+ // This actually does the roll forward assembly stuff
+ Assembly assem = GetType().Assembly;
+ Migration m = new Migration(m_conn, assem, "RegionStore");
+ m.Update();
+
+ lock (ds)
{
- m_connectionString = connectionString;
+ ds.Tables.Add(createPrimTable());
+ setupPrimCommands(primDa, m_conn);
+ primDa.Fill(ds.Tables["prims"]);
- ds = new DataSet("Region");
+ ds.Tables.Add(createShapeTable());
+ setupShapeCommands(shapeDa, m_conn);
- m_log.Info("[REGION DB]: Sqlite - connecting: " + connectionString);
- m_conn = new SqliteConnection(m_connectionString);
- m_conn.Open();
+ ds.Tables.Add(createItemsTable());
+ setupItemsCommands(itemsDa, m_conn);
+ itemsDa.Fill(ds.Tables["primitems"]);
- SqliteCommand primSelectCmd = new SqliteCommand(primSelect, m_conn);
- primDa = new SqliteDataAdapter(primSelectCmd);
+ ds.Tables.Add(createTerrainTable());
+ setupTerrainCommands(terrainDa, m_conn);
- SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, m_conn);
- shapeDa = new SqliteDataAdapter(shapeSelectCmd);
- // SqliteCommandBuilder shapeCb = new SqliteCommandBuilder(shapeDa);
+ ds.Tables.Add(createLandTable());
+ setupLandCommands(landDa, m_conn);
- SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, m_conn);
- itemsDa = new SqliteDataAdapter(itemsSelectCmd);
+ ds.Tables.Add(createLandAccessListTable());
+ setupLandAccessCommands(landAccessListDa, m_conn);
- SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, m_conn);
- terrainDa = new SqliteDataAdapter(terrainSelectCmd);
+ ds.Tables.Add(createRegionSettingsTable());
+
+ setupRegionSettingsCommands(regionSettingsDa, m_conn);
- SqliteCommand landSelectCmd = new SqliteCommand(landSelect, m_conn);
- landDa = new SqliteDataAdapter(landSelectCmd);
-
- SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, m_conn);
- landAccessListDa = new SqliteDataAdapter(landAccessListSelectCmd);
-
- SqliteCommand regionSettingsSelectCmd = new SqliteCommand(regionSettingsSelect, m_conn);
- regionSettingsDa = new SqliteDataAdapter(regionSettingsSelectCmd);
- // This actually does the roll forward assembly stuff
- Assembly assem = GetType().Assembly;
- Migration m = new Migration(m_conn, assem, "RegionStore");
- m.Update();
-
- lock (ds)
+ // WORKAROUND: This is a work around for sqlite on
+ // windows, which gets really unhappy with blob columns
+ // that have no sample data in them. At some point we
+ // need to actually find a proper way to handle this.
+ try
{
- ds.Tables.Add(createPrimTable());
- setupPrimCommands(primDa, m_conn);
-
- ds.Tables.Add(createShapeTable());
- setupShapeCommands(shapeDa, m_conn);
-
- ds.Tables.Add(createItemsTable());
- setupItemsCommands(itemsDa, m_conn);
-
- ds.Tables.Add(createTerrainTable());
- setupTerrainCommands(terrainDa, m_conn);
-
- ds.Tables.Add(createLandTable());
- setupLandCommands(landDa, m_conn);
-
- ds.Tables.Add(createLandAccessListTable());
- setupLandAccessCommands(landAccessListDa, m_conn);
-
- ds.Tables.Add(createRegionSettingsTable());
- setupRegionSettingsCommands(regionSettingsDa, m_conn);
-
- // WORKAROUND: This is a work around for sqlite on
- // windows, which gets really unhappy with blob columns
- // that have no sample data in them. At some point we
- // need to actually find a proper way to handle this.
- try
- {
- primDa.Fill(ds.Tables["prims"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on prims table");
- }
-
- try
- {
- shapeDa.Fill(ds.Tables["primshapes"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on primshapes table");
- }
-
- try
- {
- terrainDa.Fill(ds.Tables["terrain"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on terrain table");
- }
-
- try
- {
- landDa.Fill(ds.Tables["land"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on land table");
- }
-
- try
- {
- landAccessListDa.Fill(ds.Tables["landaccesslist"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
- }
-
- try
- {
- regionSettingsDa.Fill(ds.Tables["regionsettings"]);
- }
- catch (Exception)
- {
- m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
- }
-
- // We have to create a data set mapping for every table, otherwise the IDataAdaptor.Update() will not populate rows with values!
- // Not sure exactly why this is - this kind of thing was not necessary before - justincc 20100409
- // Possibly because we manually set up our own DataTables before connecting to the database
- CreateDataSetMapping(primDa, "prims");
- CreateDataSetMapping(shapeDa, "primshapes");
- CreateDataSetMapping(itemsDa, "primitems");
- CreateDataSetMapping(terrainDa, "terrain");
- CreateDataSetMapping(landDa, "land");
- CreateDataSetMapping(landAccessListDa, "landaccesslist");
- CreateDataSetMapping(regionSettingsDa, "regionsettings");
+ shapeDa.Fill(ds.Tables["primshapes"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on primshapes table");
}
- }
- catch (Exception e)
- {
- m_log.Error(e);
- Environment.Exit(23);
- }
- return;
+ try
+ {
+ terrainDa.Fill(ds.Tables["terrain"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on terrain table");
+ }
+
+ try
+ {
+ landDa.Fill(ds.Tables["land"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on land table");
+ }
+
+ try
+ {
+ landAccessListDa.Fill(ds.Tables["landaccesslist"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on landaccesslist table");
+ }
+
+ try
+ {
+ regionSettingsDa.Fill(ds.Tables["regionsettings"]);
+ }
+ catch (Exception)
+ {
+ m_log.Info("[REGION DB]: Caught fill error on regionsettings table");
+ }
+ return;
+ }
}
public void Dispose()
@@ -626,7 +603,7 @@ namespace OpenSim.Data.SQLiteNG
}
}
}
- rev = Convert.ToInt32(row["Revision"]);
+ rev = (int) row["Revision"];
}
else
{
@@ -778,7 +755,6 @@ namespace OpenSim.Data.SQLiteNG
///
public void Commit()
{
- m_log.Debug("[SQLITE]: Starting commit");
lock (ds)
{
primDa.Update(ds, "prims");
@@ -793,11 +769,18 @@ namespace OpenSim.Data.SQLiteNG
{
regionSettingsDa.Update(ds, "regionsettings");
}
- catch (SqliteException SqlEx)
+ catch (SqliteExecutionException SqlEx)
{
- throw new Exception(
- "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!",
- SqlEx);
+ if (SqlEx.Message.Contains("logic error"))
+ {
+ throw new Exception(
+ "There was a SQL error or connection string configuration error when saving the region settings. This could be a bug, it could also happen if ConnectionString is defined in the [DatabaseService] section of StandaloneCommon.ini in the config_include folder. This could also happen if the config_include folder doesn't exist or if the OpenSim.ini [Architecture] section isn't set. If this is your first time running OpenSimulator, please restart the simulator and bug a developer to fix this!",
+ SqlEx);
+ }
+ else
+ {
+ throw SqlEx;
+ }
}
ds.AcceptChanges();
}
@@ -819,15 +802,6 @@ namespace OpenSim.Data.SQLiteNG
*
**********************************************************************/
- protected void CreateDataSetMapping(IDataAdapter da, string tableName)
- {
- ITableMapping dbMapping = da.TableMappings.Add(tableName, tableName);
- foreach (DataColumn col in ds.Tables[tableName].Columns)
- {
- dbMapping.ColumnMappings.Add(col.ColumnName, col.ColumnName);
- }
- }
-
///
///
///
@@ -1990,7 +1964,6 @@ namespace OpenSim.Data.SQLiteNG
sql += ") values (:";
sql += String.Join(", :", cols);
sql += ")";
- m_log.DebugFormat("[SQLITE]: Created insert command {0}", sql);
SqliteCommand cmd = new SqliteCommand(sql);
// this provides the binding for all our parameters, so
@@ -2286,36 +2259,6 @@ namespace OpenSim.Data.SQLiteNG
return DbType.String;
}
}
-
- static void PrintDataSet(DataSet ds)
- {
- // Print out any name and extended properties.
- Console.WriteLine("DataSet is named: {0}", ds.DataSetName);
- foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties)
- {
- Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
- }
- Console.WriteLine();
- foreach (DataTable dt in ds.Tables)
- {
- Console.WriteLine("=> {0} Table:", dt.TableName);
- // Print out the column names.
- for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
- {
- Console.Write(dt.Columns[curCol].ColumnName + "\t");
- }
- Console.WriteLine("\n----------------------------------");
- // Print the DataTable.
- for (int curRow = 0; curRow < dt.Rows.Count; curRow++)
- {
- for (int curCol = 0; curCol < dt.Columns.Count; curCol++)
- {
- Console.Write(dt.Rows[curRow][curCol].ToString() + "\t");
- }
- Console.WriteLine();
- }
- }
- }
}
}
diff --git a/OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs
similarity index 94%
rename from OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs
index f77159c772..27553c61eb 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteUserAccountData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteUserAccountData.cs
@@ -31,9 +31,9 @@ using System.Collections.Generic;
using System.Data;
using OpenMetaverse;
using OpenSim.Framework;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
public class SQLiteUserAccountData : SQLiteGenericTableHandler, IUserAccountData
{
@@ -66,7 +66,7 @@ namespace OpenSim.Data.SQLiteNG
if (words.Length == 1)
{
- cmd.CommandText = String.Format("select * from {0} where ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')",
+ cmd.CommandText = String.Format("select * from {0} where (ScopeID='{1}' or ScopeID='00000000-0000-0000-0000-000000000000') and (FirstName like '{2}%' or LastName like '{2}%')",
m_Realm, scopeID.ToString(), words[0]);
}
else
diff --git a/OpenSim/Data/SQLiteNG/SQLiteUtils.cs b/OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs
similarity index 99%
rename from OpenSim/Data/SQLiteNG/SQLiteUtils.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs
index 82a2e37993..095a26251f 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteUtils.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteUtils.cs
@@ -27,9 +27,9 @@
using System;
using System.Data;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
///
/// A base class for methods needed by all SQLite database classes
diff --git a/OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs b/OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs
similarity index 98%
rename from OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs
rename to OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs
index a0c17f8fd9..5422cbf6ad 100644
--- a/OpenSim/Data/SQLiteNG/SQLiteXInventoryData.cs
+++ b/OpenSim/Data/SQLiteLegacy/SQLiteXInventoryData.cs
@@ -29,12 +29,12 @@ using System;
using System.Data;
using System.Reflection;
using System.Collections.Generic;
-using Mono.Data.Sqlite;
+using Mono.Data.SqliteClient;
using log4net;
using OpenMetaverse;
using OpenSim.Framework;
-namespace OpenSim.Data.SQLiteNG
+namespace OpenSim.Data.SQLiteLegacy
{
///
/// A MySQL Interface for the Asset Server
@@ -147,7 +147,7 @@ namespace OpenSim.Data.SQLiteNG
}
reader.Close();
- //CloseCommand(cmd);
+ CloseCommand(cmd);
return perms;
}
diff --git a/OpenSim/Data/Tests/DataTestUtil.cs b/OpenSim/Data/Tests/DataTestUtil.cs
index d211ab3b40..5393529592 100644
--- a/OpenSim/Data/Tests/DataTestUtil.cs
+++ b/OpenSim/Data/Tests/DataTestUtil.cs
@@ -39,7 +39,8 @@ namespace OpenSim.Data.Tests
public class DataTestUtil
{
public const uint UNSIGNED_INTEGER_MIN = uint.MinValue;
- public const uint UNSIGNED_INTEGER_MAX = uint.MaxValue;
+ //public const uint UNSIGNED_INTEGER_MAX = uint.MaxValue;
+ public const uint UNSIGNED_INTEGER_MAX = INTEGER_MAX;
public const int INTEGER_MIN = int.MinValue + 1; // Postgresql requires +1 to .NET int.MinValue
public const int INTEGER_MAX = int.MaxValue;
diff --git a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
index 23d5b3c2ec..febd4ca993 100644
--- a/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Friends/FriendsModule.cs
@@ -365,6 +365,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
List GetOnlineFriends(UUID userID)
{
List friendList = new List();
+ List online = new List();
foreach (FriendInfo fi in m_Friends[userID].Friends)
{
@@ -372,9 +373,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Friends
friendList.Add(fi.Friend);
}
- PresenceInfo[] presence = PresenceService.GetAgents(friendList.ToArray());
+ if (friendList.Count == 0)
+ // no friends whatsoever
+ return online;
- List online = new List();
+ PresenceInfo[] presence = PresenceService.GetAgents(friendList.ToArray());
foreach (PresenceInfo pi in presence)
{
diff --git a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml
index 0a5ff3f982..c7382965d6 100644
--- a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml
+++ b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml
@@ -47,6 +47,7 @@
+
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs
index 3509161daa..fc3393f53d 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/HGInventoryBroker2.cs
@@ -41,27 +41,22 @@ using OpenMetaverse;
namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
{
- public class HGInventoryBroker2 : INonSharedRegionModule, IInventoryService
+ public class HGInventoryBroker2 : ISharedRegionModule, IInventoryService
{
private static readonly ILog m_log =
LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
- private static bool m_Initialized = false;
private static bool m_Enabled = false;
private static IInventoryService m_LocalGridInventoryService;
- private static ISessionAuthInventoryService m_HGService; // obsolete
private Dictionary m_connectors = new Dictionary();
// A cache of userIDs --> ServiceURLs, for HGBroker only
- protected Dictionary m_InventoryURLs;
+ protected Dictionary m_InventoryURLs = new Dictionary();
- private Scene m_Scene;
private List m_Scenes = new List();
- private IUserAccountService m_UserAccountService;
-
public Type ReplaceableInterface
{
get { return null; }
@@ -74,65 +69,45 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public void Initialise(IConfigSource source)
{
- if (!m_Initialized)
+ IConfig moduleConfig = source.Configs["Modules"];
+ if (moduleConfig != null)
{
- IConfig moduleConfig = source.Configs["Modules"];
- if (moduleConfig != null)
+ string name = moduleConfig.GetString("InventoryServices", "");
+ if (name == Name)
{
- string name = moduleConfig.GetString("InventoryServices", "");
- if (name == Name)
+ IConfig inventoryConfig = source.Configs["InventoryService"];
+ if (inventoryConfig == null)
{
- IConfig inventoryConfig = source.Configs["InventoryService"];
- if (inventoryConfig == null)
- {
- m_log.Error("[HG INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini");
- return;
- }
-
- string localDll = inventoryConfig.GetString("LocalGridInventoryService",
- String.Empty);
- string HGDll = inventoryConfig.GetString("HypergridInventoryService",
- String.Empty);
-
- if (localDll == String.Empty)
- {
- m_log.Error("[HG INVENTORY CONNECTOR]: No LocalGridInventoryService named in section InventoryService");
- //return;
- throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's");
- }
-
- if (HGDll == String.Empty)
- {
- m_log.Error("[HG INVENTORY CONNECTOR]: No HypergridInventoryService named in section InventoryService");
- //return;
- throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's");
- }
-
- Object[] args = new Object[] { source };
- m_LocalGridInventoryService =
- ServerUtils.LoadPlugin(localDll,
- args);
-
- m_HGService =
- ServerUtils.LoadPlugin(HGDll,
- args);
-
- if (m_LocalGridInventoryService == null)
- {
- m_log.Error("[HG INVENTORY CONNECTOR]: Can't load local inventory service");
- return;
- }
- if (m_HGService == null)
- {
- m_log.Error("[HG INVENTORY CONNECTOR]: Can't load hypergrid inventory service");
- return;
- }
-
- m_Enabled = true;
- m_log.Info("[HG INVENTORY CONNECTOR]: HG inventory broker enabled");
+ m_log.Error("[HG INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini");
+ return;
}
+
+ string localDll = inventoryConfig.GetString("LocalGridInventoryService",
+ String.Empty);
+ //string HGDll = inventoryConfig.GetString("HypergridInventoryService",
+ // String.Empty);
+
+ if (localDll == String.Empty)
+ {
+ m_log.Error("[HG INVENTORY CONNECTOR]: No LocalGridInventoryService named in section InventoryService");
+ //return;
+ throw new Exception("Unable to proceed. Please make sure your ini files in config-include are updated according to .example's");
+ }
+
+ Object[] args = new Object[] { source };
+ m_LocalGridInventoryService =
+ ServerUtils.LoadPlugin(localDll,
+ args);
+
+ if (m_LocalGridInventoryService == null)
+ {
+ m_log.Error("[HG INVENTORY CONNECTOR]: Can't load local inventory service");
+ return;
+ }
+
+ m_Enabled = true;
+ m_log.InfoFormat("[HG INVENTORY CONNECTOR]: HG inventory broker enabled with inner connector of type {0}", m_LocalGridInventoryService.GetType());
}
- m_Initialized = true;
}
}
@@ -149,13 +124,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (!m_Enabled)
return;
- m_Scene = scene;
m_Scenes.Add(scene);
- m_UserAccountService = m_Scene.UserAccountService;
scene.RegisterModuleInterface(this);
- scene.EventManager.OnMakeRootAgent += OnMakeRootAgent;
scene.EventManager.OnClientClosed += OnClientClosed;
}
@@ -177,13 +149,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
}
- #region Cache
-
- void OnMakeRootAgent(ScenePresence presence)
- {
- if (!m_InventoryURLs.ContainsKey(presence.UUID))
- CacheInventoryServiceURL(presence.Scene, presence.UUID);
- }
+ #region URL Cache
void OnClientClosed(UUID clientID, Scene scene)
{
@@ -200,10 +166,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
return;
}
}
-
- m_log.DebugFormat(
- "[INVENTORY CACHE]: OnClientClosed in {0}, user {1} out of sim. Dropping inventory URL",
- scene.RegionInfo.RegionName, clientID);
DropInventoryServiceURL(clientID);
}
}
@@ -213,35 +175,47 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
/// and sticks it in the cache
///
///
- private void CacheInventoryServiceURL(Scene scene, UUID userID)
+ private void CacheInventoryServiceURL(UUID userID)
{
- if (scene.UserAccountService.GetUserAccount(scene.RegionInfo.ScopeID, userID) == null)
+ if (m_Scenes[0].UserAccountService.GetUserAccount(m_Scenes[0].RegionInfo.ScopeID, userID) == null)
{
// The user does not have a local account; let's cache its service URL
string inventoryURL = string.Empty;
ScenePresence sp = null;
- scene.TryGetScenePresence(userID, out sp);
- if (sp != null)
+ foreach (Scene scene in m_Scenes)
{
- AgentCircuitData aCircuit = scene.AuthenticateHandler.GetAgentCircuitData(sp.ControllingClient.CircuitCode);
- if (aCircuit.ServiceURLs.ContainsKey("InventoryServerURI"))
+ scene.TryGetScenePresence(userID, out sp);
+ if (sp != null)
{
- inventoryURL = aCircuit.ServiceURLs["InventoryServerURI"].ToString();
- if (inventoryURL != null && inventoryURL != string.Empty)
+ AgentCircuitData aCircuit = scene.AuthenticateHandler.GetAgentCircuitData(sp.ControllingClient.CircuitCode);
+ if (aCircuit.ServiceURLs.ContainsKey("InventoryServerURI"))
{
- inventoryURL = inventoryURL.Trim(new char[] { '/' });
- m_InventoryURLs.Add(userID, inventoryURL);
+ inventoryURL = aCircuit.ServiceURLs["InventoryServerURI"].ToString();
+ if (inventoryURL != null && inventoryURL != string.Empty)
+ {
+ inventoryURL = inventoryURL.Trim(new char[] { '/' });
+ m_InventoryURLs.Add(userID, inventoryURL);
+ m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Added {0} to the cache of inventory URLs", inventoryURL);
+ return;
+ }
}
}
}
}
+
+ // else put a null; it means that the methods should forward to local grid's inventory
+ m_InventoryURLs.Add(userID, null);
}
private void DropInventoryServiceURL(UUID userID)
{
lock (m_InventoryURLs)
if (m_InventoryURLs.ContainsKey(userID))
+ {
+ string url = m_InventoryURLs[userID];
m_InventoryURLs.Remove(userID);
+ m_log.DebugFormat("[HG INVENTORY CONNECTOR]: Removed {0} from the cache of inventory URLs", url);
+ }
}
public string GetInventoryServiceURL(UUID userID)
@@ -249,7 +223,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (m_InventoryURLs.ContainsKey(userID))
return m_InventoryURLs[userID];
- return null;
+ else
+ CacheInventoryServiceURL(userID);
+
+ return m_InventoryURLs[userID];
}
#endregion
@@ -276,7 +253,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public InventoryFolderBase GetRootFolder(UUID userID)
{
- m_log.DebugFormat("[HGInventory]: GetRootFolder for {0}", userID);
+ m_log.DebugFormat("[HG INVENTORY CONNECTOR]: GetRootFolder for {0}", userID);
string invURL = GetInventoryServiceURL(userID);
@@ -290,7 +267,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public InventoryFolderBase GetFolderForType(UUID userID, AssetType type)
{
- m_log.DebugFormat("[HGInventory]: GetFolderForType {0} type {1}", userID, type);
+ m_log.DebugFormat("[HG INVENTORY CONNECTOR]: GetFolderForType {0} type {1}", userID, type);
string invURL = GetInventoryServiceURL(userID);
@@ -304,7 +281,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public InventoryCollection GetFolderContent(UUID userID, UUID folderID)
{
- m_log.Debug("[HGInventory]: GetFolderContent " + folderID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolderContent " + folderID);
string invURL = GetInventoryServiceURL(userID);
@@ -319,7 +296,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public List GetFolderItems(UUID userID, UUID folderID)
{
- m_log.Debug("[HGInventory]: GetFolderItems " + folderID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolderItems " + folderID);
string invURL = GetInventoryServiceURL(userID);
@@ -337,7 +314,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (folder == null)
return false;
- m_log.Debug("[HGInventory]: AddFolder " + folder.ID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: AddFolder " + folder.ID);
string invURL = GetInventoryServiceURL(folder.Owner);
@@ -354,7 +331,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (folder == null)
return false;
- m_log.Debug("[HGInventory]: UpdateFolder " + folder.ID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: UpdateFolder " + folder.ID);
string invURL = GetInventoryServiceURL(folder.Owner);
@@ -373,7 +350,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (folderIDs.Count == 0)
return false;
- m_log.Debug("[HGInventory]: DeleteFolders for " + ownerID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: DeleteFolders for " + ownerID);
string invURL = GetInventoryServiceURL(ownerID);
@@ -390,7 +367,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (folder == null)
return false;
- m_log.Debug("[HGInventory]: MoveFolder for " + folder.Owner);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: MoveFolder for " + folder.Owner);
string invURL = GetInventoryServiceURL(folder.Owner);
@@ -407,7 +384,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (folder == null)
return false;
- m_log.Debug("[HGInventory]: PurgeFolder for " + folder.Owner);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: PurgeFolder for " + folder.Owner);
string invURL = GetInventoryServiceURL(folder.Owner);
@@ -424,7 +401,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (item == null)
return false;
- m_log.Debug("[HGInventory]: AddItem " + item.ID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: AddItem " + item.ID);
string invURL = GetInventoryServiceURL(item.Owner);
@@ -441,7 +418,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (item == null)
return false;
- m_log.Debug("[HGInventory]: UpdateItem " + item.ID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: UpdateItem " + item.ID);
string invURL = GetInventoryServiceURL(item.Owner);
@@ -460,7 +437,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (items.Count == 0)
return true;
- m_log.Debug("[HGInventory]: MoveItems for " + ownerID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: MoveItems for " + ownerID);
string invURL = GetInventoryServiceURL(ownerID);
@@ -481,7 +458,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (itemIDs.Count == 0)
return true;
- m_log.Debug("[HGInventory]: DeleteItems for " + ownerID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: DeleteItems for " + ownerID);
string invURL = GetInventoryServiceURL(ownerID);
@@ -497,7 +474,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
{
if (item == null)
return null;
- m_log.Debug("[HGInventory]: GetItem " + item.ID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: GetItem " + item.ID);
string invURL = GetInventoryServiceURL(item.Owner);
@@ -514,7 +491,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
if (folder == null)
return null;
- m_log.Debug("[HGInventory]: GetFolder " + folder.ID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: GetFolder " + folder.ID);
string invURL = GetInventoryServiceURL(folder.Owner);
@@ -538,7 +515,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public int GetAssetPermissions(UUID userID, UUID assetID)
{
- m_log.Debug("[HGInventory]: GetAssetPermissions " + assetID);
+ m_log.Debug("[HG INVENTORY CONNECTOR]: GetAssetPermissions " + assetID);
string invURL = GetInventoryServiceURL(userID);
@@ -575,44 +552,5 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
return connector;
}
-
- private UUID GetSessionID(UUID userID)
- {
- ScenePresence sp = null;
- if (m_Scene.TryGetScenePresence(userID, out sp))
- {
- return sp.ControllingClient.SessionId;
- }
-
- m_log.DebugFormat("[HG INVENTORY CONNECTOR]: scene presence for {0} not found", userID);
- return UUID.Zero;
- }
-
- private bool IsForeignUser(UUID userID, out string inventoryURL)
- {
- inventoryURL = string.Empty;
- UserAccount account = null;
- if (m_Scene.UserAccountService != null)
- account = m_Scene.UserAccountService.GetUserAccount(m_Scene.RegionInfo.ScopeID, userID);
-
- if (account == null) // foreign user
- {
- ScenePresence sp = null;
- m_Scene.TryGetScenePresence(userID, out sp);
- if (sp != null)
- {
- AgentCircuitData aCircuit = m_Scene.AuthenticateHandler.GetAgentCircuitData(sp.ControllingClient.CircuitCode);
- if (aCircuit.ServiceURLs.ContainsKey("InventoryServerURI"))
- {
- inventoryURL = aCircuit.ServiceURLs["InventoryServerURI"].ToString();
- inventoryURL = inventoryURL.Trim(new char[] { '/' });
- return true;
- }
- }
- }
- return false;
- }
-
-
}
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
index ac9e792317..277060d2aa 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Inventory/RemoteXInventoryServiceConnector.cs
@@ -172,11 +172,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
return m_RemoteConnector.GetFolderForType(userID, type);
}
- public Dictionary GetSystemFolders(UUID userID)
- {
- return m_RemoteConnector.GetSystemFolders(userID);
- }
-
public InventoryCollection GetFolderContent(UUID userID, UUID folderID)
{
return m_RemoteConnector.GetFolderContent(userID, folderID);
@@ -267,9 +262,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Inventory
public InventoryItemBase GetItem(InventoryItemBase item)
{
+ m_log.DebugFormat("[XINVENTORY CONNECTOR]: GetItem {0}", item.ID);
if (item == null)
return null;
+ if (m_RemoteConnector == null)
+ m_log.DebugFormat("[XINVENTORY CONNECTOR]: connector stub is null!!!");
return m_RemoteConnector.GetItem(item);
}
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs
index 865f99e10a..5f3666e323 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Presence/RemotePresenceServiceConnector.cs
@@ -76,7 +76,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Presence
m_PresenceDetector = new PresenceDetector(this);
- m_log.Info("[INVENTORY CONNECTOR]: Remote presence enabled");
+ m_log.Info("[REMOTE PRESENCE CONNECTOR]: Remote presence enabled");
}
}
diff --git a/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs b/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs
deleted file mode 100644
index 41897eb5a2..0000000000
--- a/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * * Neither the name of the OpenSimulator Project nor the
- * names of its contributors may be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Net;
-using System.Reflection;
-using log4net;
-using Nini.Config;
-using Nwc.XmlRpc;
-using OpenSim.Server.Base;
-using OpenSim.Server.Handlers.Inventory;
-using OpenSim.Services.Interfaces;
-using OpenSim.Framework;
-using OpenSim.Framework.Servers.HttpServer;
-using OpenSim.Server.Handlers.Base;
-using OpenMetaverse;
-
-namespace OpenSim.Server.Handlers.Hypergrid
-{
- public class HGInventoryServiceInConnector : InventoryServiceInConnector
- {
- private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
-
- //private static readonly int INVENTORY_DEFAULT_SESSION_TIME = 30; // secs
- //private AuthedSessionCache m_session_cache = new AuthedSessionCache(INVENTORY_DEFAULT_SESSION_TIME);
-
- private IUserAgentService m_UserAgentService;
-
- public HGInventoryServiceInConnector(IConfigSource config, IHttpServer server, string configName) :
- base(config, server, configName)
- {
- IConfig serverConfig = config.Configs[m_ConfigName];
- if (serverConfig == null)
- throw new Exception(String.Format("No section '{0}' in config file", m_ConfigName));
-
- string userAgentService = serverConfig.GetString("UserAgentService", string.Empty);
- string m_userserver_url = serverConfig.GetString("UserAgentURI", String.Empty);
- if (m_userserver_url != string.Empty)
- {
- Object[] args = new Object[] { m_userserver_url };
- m_UserAgentService = ServerUtils.LoadPlugin(userAgentService, args);
- }
-
- AddHttpHandlers(server);
- m_log.Debug("[HG INVENTORY HANDLER]: handlers initialized");
- }
-
- ///
- /// Check that the source of an inventory request for a particular agent is a current session belonging to
- /// that agent.
- ///
- ///
- ///
- ///
- public override bool CheckAuthSession(string session_id, string avatar_id)
- {
- //m_log.InfoFormat("[HG INVENTORY IN CONNECTOR]: checking authed session {0} {1}", session_id, avatar_id);
- // This doesn't work
-
- // if (m_session_cache.getCachedSession(session_id, avatar_id) == null)
- // {
- // //cache miss, ask userserver
- // m_UserAgentService.VerifyAgent(session_id, ???);
- // }
- // else
- // {
- // // cache hits
- // m_log.Info("[HG INVENTORY IN CONNECTOR]: got authed session from cache");
- // return true;
- // }
-
- // m_log.Warn("[HG INVENTORY IN CONNECTOR]: unknown session_id, request rejected");
- // return false;
-
- return true;
- }
- }
-}
diff --git a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs
index 16b05df9e2..b0fee6d4cb 100644
--- a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs
+++ b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs
@@ -144,8 +144,6 @@ namespace OpenSim.Server.Handlers.Asset
return HandleGetActiveGestures(request);
case "GETASSETPERMISSIONS":
return HandleGetAssetPermissions(request);
- case "GETSYSTEMFOLDERS":
- return HandleGetSystemFolders(request);
}
m_log.DebugFormat("[XINVENTORY HANDLER]: unknown method request: {0}", method);
}
@@ -575,29 +573,6 @@ namespace OpenSim.Server.Handlers.Asset
return encoding.GetBytes(xmlString);
}
- byte[] HandleGetSystemFolders(Dictionary request)
- {
- Dictionary result = new Dictionary();
- UUID principal = UUID.Zero;
- UUID.TryParse(request["PRINCIPAL"].ToString(), out principal);
-
- Dictionary sfolders = GetSystemFolders(principal);
- //m_log.DebugFormat("[XXX]: SystemFolders got {0} folders", sfolders.Count);
-
- Dictionary folders = new Dictionary();
- int i = 0;
- foreach (KeyValuePair kvp in sfolders)
- {
- folders["folder_" + i.ToString()] = EncodeFolder(kvp.Value);
- i++;
- }
- result["FOLDERS"] = folders;
-
- string xmlString = ServerUtils.BuildXmlResponse(result);
- //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString);
- UTF8Encoding encoding = new UTF8Encoding();
- return encoding.GetBytes(xmlString);
- }
private Dictionary EncodeFolder(InventoryFolderBase f)
{
@@ -683,30 +658,5 @@ namespace OpenSim.Server.Handlers.Asset
return item;
}
- #region Extra
- private Dictionary GetSystemFolders(UUID userID)
- {
- InventoryFolderBase root = m_InventoryService.GetRootFolder(userID);
- if (root != null)
- {
- InventoryCollection content = m_InventoryService.GetFolderContent(userID, root.ID);
- if (content != null)
- {
- Dictionary folders = new Dictionary();
- foreach (InventoryFolderBase folder in content.Folders)
- {
- if ((folder.Type != (short)AssetType.Folder) && (folder.Type != (short)AssetType.Unknown))
- folders[(AssetType)folder.Type] = folder;
- }
- // Put the root folder there, as type Folder
- folders[AssetType.Folder] = root;
- return folders;
- }
- }
- m_log.WarnFormat("[XINVENTORY SERVICE]: System folders for {0} not found", userID);
- return new Dictionary();
- }
- #endregion
-
}
}
diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
index 52294dab71..e25e7ebd3c 100644
--- a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
+++ b/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
@@ -158,30 +158,31 @@ namespace OpenSim.Services.Connectors
public InventoryCollection GetFolderContent(UUID principalID, UUID folderID)
{
- Dictionary ret = MakeRequest("GETFOLDERCONTENT",
- new Dictionary {
- { "PRINCIPAL", principalID.ToString() },
- { "FOLDER", folderID.ToString() }
- });
-
- if (ret == null)
- return null;
- if (ret.Count == 0)
- return null;
-
-
InventoryCollection inventory = new InventoryCollection();
- inventory.Folders = new List();
- inventory.Items = new List();
- inventory.UserID = principalID;
- Dictionary folders =
- (Dictionary)ret["FOLDERS"];
- Dictionary items =
- (Dictionary)ret["ITEMS"];
-
try
{
+ Dictionary ret = MakeRequest("GETFOLDERCONTENT",
+ new Dictionary {
+ { "PRINCIPAL", principalID.ToString() },
+ { "FOLDER", folderID.ToString() }
+ });
+
+ if (ret == null)
+ return null;
+ if (ret.Count == 0)
+ return null;
+
+
+ inventory.Folders = new List();
+ inventory.Items = new List();
+ inventory.UserID = principalID;
+
+ Dictionary folders =
+ (Dictionary)ret["FOLDERS"];
+ Dictionary items =
+ (Dictionary)ret["ITEMS"];
+
foreach (Object o in folders.Values) // getting the values directly, we don't care about the keys folder_i
inventory.Folders.Add(BuildFolder((Dictionary)o));
foreach (Object o in items.Values) // getting the values directly, we don't care about the keys item_i
@@ -189,7 +190,7 @@ namespace OpenSim.Services.Connectors
}
catch (Exception e)
{
- m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: Exception unwrapping content list: {0}", e.Message);
+ m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: Exception in GetFolderContent: {0}", e.Message);
}
return inventory;
@@ -408,32 +409,50 @@ namespace OpenSim.Services.Connectors
public InventoryItemBase GetItem(InventoryItemBase item)
{
- Dictionary ret = MakeRequest("GETITEM",
- new Dictionary {
+ try
+ {
+ Dictionary ret = MakeRequest("GETITEM",
+ new Dictionary {
{ "ID", item.ID.ToString() }
});
- if (ret == null)
- return null;
- if (ret.Count == 0)
- return null;
+ if (ret == null)
+ return null;
+ if (ret.Count == 0)
+ return null;
- return BuildItem((Dictionary)ret["item"]);
+ return BuildItem((Dictionary)ret["item"]);
+ }
+ catch (Exception e)
+ {
+ m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: Exception in GetItem: {0}", e.Message);
+ }
+
+ return null;
}
public InventoryFolderBase GetFolder(InventoryFolderBase folder)
{
- Dictionary ret = MakeRequest("GETFOLDER",
- new Dictionary {
+ try
+ {
+ Dictionary ret = MakeRequest("GETFOLDER",
+ new Dictionary {
{ "ID", folder.ID.ToString() }
});
- if (ret == null)
- return null;
- if (ret.Count == 0)
- return null;
+ if (ret == null)
+ return null;
+ if (ret.Count == 0)
+ return null;
- return BuildFolder((Dictionary)ret["folder"]);
+ return BuildFolder((Dictionary)ret["folder"]);
+ }
+ catch (Exception e)
+ {
+ m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: Exception in GetFolder: {0}", e.Message);
+ }
+
+ return null;
}
public List GetActiveGestures(UUID principalID)
@@ -468,36 +487,6 @@ namespace OpenSim.Services.Connectors
return int.Parse(ret["RESULT"].ToString());
}
- public Dictionary GetSystemFolders(UUID userID)
- {
- Dictionary ret = MakeRequest("GETSYSTEMFOLDERS",
- new Dictionary {
- { "PRINCIPAL", userID.ToString() },
- });
-
- if (ret == null)
- return new Dictionary();
-
- Dictionary sfolders = new Dictionary();
-
- try
- {
- Dictionary folders = (Dictionary)ret["FOLDERS"];
-
- foreach (Object o in folders.Values) // getting the values directly, we don't care about the keys folder_i
- {
- InventoryFolderBase folder = BuildFolder((Dictionary)o);
- sfolders.Add((AssetType)folder.Type, folder);
- }
-
- }
- catch (Exception e)
- {
- m_log.DebugFormat("[XINVENTORY CONNECTOR STUB]: exception {0}", e.Message);
- }
-
- return sfolders;
- }
// These are either obsolete or unused
//
diff --git a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs b/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs
index 4dadd9ebb7..23621b7387 100644
--- a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs
@@ -329,7 +329,7 @@ namespace OpenSim.Services.Connectors
reqString);
if (reply == null || (reply != null && reply == string.Empty))
{
- m_log.DebugFormat("[PRESENCE CONNECTOR]: GetAgent received null or empty reply");
+ m_log.DebugFormat("[PRESENCE CONNECTOR]: GetAgents received null or empty reply");
return null;
}
}
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 59bce363cd..f49cd975f1 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -112,11 +112,15 @@
;storage_plugin = "OpenSim.Data.Null.dll"
; --- To use sqlite as region storage:
- ; PLEASE NOTE: If you use want to use SQLite with Mono 2.6 and above, you must use the SQLiteNG plugin rather than the existing SQLite one
- ; do this by commenting out the OpenSim.Data.SQLite.dll line below and uncommenting the OpenSim.Data.SQLiteNG.dll one
+ ;
+ ; PLEASE NOTE: Unfortunately, the current SQLite database plugin (necessary to use SQLite with Mono on Linux) is
+ ; not compatible with the sqlite3 library installed on Mac OSX. If you're using Mono 2.4 you can still use the old sqlite
+ ; library by uncommenting the SQLiteLegacy.dll storage plugin (and commenting out SQLite.dll). Unfortunately, the older library
+ ; will not work with Mono 2.6 on Mac OSX so you will either need to replace the OSX sqlite3 system library or use MySQL instead
+ ;
; You will also need to do the same thing in config-include/StandaloneCommon.ini if you are running in standalone mode
storage_plugin = "OpenSim.Data.SQLite.dll"
- ; storage_plugin = "OpenSim.Data.SQLiteNG.dll"
+ ;storage_plugin = "OpenSim.Data.SQLiteLegacy.dll"
storage_connection_string="URI=file:OpenSim.db,version=3";
; --- To use MySQL storage, supply your own connection string (this is only an example):
diff --git a/bin/config-include/StandaloneCommon.ini.example b/bin/config-include/StandaloneCommon.ini.example
index 74bdbe2d23..572c153bef 100644
--- a/bin/config-include/StandaloneCommon.ini.example
+++ b/bin/config-include/StandaloneCommon.ini.example
@@ -6,12 +6,12 @@
;
; SQLite
- ; Uncomment this line if you want to use sqlite storage with Mono 2.4
Include-Storage = "config-include/storage/SQLiteStandalone.ini";
- ; If you want to use sqlite with Mono 2.6 and above, uncomment this line instead.
- ; Don't forget to do the same thing for the storage_plugin setting in OpenSim.ini
- ; Include-Storage = "config-include/storage/SQLiteNGStandalone.ini";
+ ; Unfortunately the current SQLite database plugin is not compatible with Mac OSX. You can still use the older
+ ; legacy sqlite library if you are using Mono 2.4. Please see the notes in OpenSim.ini (search for sqlite)
+ ; for more details
+ ;Include-Storage = "config-include/storage/SQLiteLegacyStandalone.ini";
; MySql
; Uncomment these lines if you want to use mysql storage
diff --git a/bin/config-include/storage/SQLiteNGStandalone.ini b/bin/config-include/storage/SQLiteLegacyStandalone.ini
similarity index 88%
rename from bin/config-include/storage/SQLiteNGStandalone.ini
rename to bin/config-include/storage/SQLiteLegacyStandalone.ini
index ba00acaf6c..1d4dd29d60 100644
--- a/bin/config-include/storage/SQLiteNGStandalone.ini
+++ b/bin/config-include/storage/SQLiteLegacyStandalone.ini
@@ -1,7 +1,7 @@
; These are the initialization settings for running OpenSim Standalone with an SQLite database
[DatabaseService]
- StorageProvider = "OpenSim.Data.SQLiteNG.dll"
+ StorageProvider = "OpenSim.Data.SQLiteLegacy.dll"
[AvatarService]
ConnectionString = "URI=file:avatars.db,version=3"
diff --git a/prebuild.xml b/prebuild.xml
index 123f56955e..329ef7b41b 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -2178,7 +2178,7 @@
-
+
../../../bin/
@@ -2215,7 +2215,7 @@
-
+
../../../bin/