aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorSean Dague2008-04-23 19:13:06 +0000
committerSean Dague2008-04-23 19:13:06 +0000
commita1cc0e436ff9081f3c0a76de861ed0673cd36142 (patch)
tree31d775f3e17109b5b6765e89b73da9f036172328
parent* Fix a console issue where pressing return on some operating systems cause t... (diff)
downloadopensim-SC-a1cc0e436ff9081f3c0a76de861ed0673cd36142.zip
opensim-SC-a1cc0e436ff9081f3c0a76de861ed0673cd36142.tar.gz
opensim-SC-a1cc0e436ff9081f3c0a76de861ed0673cd36142.tar.bz2
opensim-SC-a1cc0e436ff9081f3c0a76de861ed0673cd36142.tar.xz
changes to allow asset_source to be specified in the opensim.ini
this will work for sqlite and nhibernate, but will be ignored for mysql and mssql (reverting to their ini files) until someone writes that bit.
-rw-r--r--OpenSim/Data/AssetDataBase.cs1
-rw-r--r--OpenSim/Data/MSSQL/MSSQLAssetData.cs7
-rw-r--r--OpenSim/Data/MySQL/MySQLAssetData.cs7
-rw-r--r--OpenSim/Data/NHibernate/NHibernateAssetData.cs16
-rw-r--r--OpenSim/Data/SQLite/SQLiteAssetData.cs9
-rw-r--r--OpenSim/Framework/Communications/Cache/SQLAssetServer.cs8
-rw-r--r--OpenSim/Framework/IAssetProvider.cs1
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs2
-rw-r--r--bin/OpenSim.ini.example2
9 files changed, 40 insertions, 13 deletions
diff --git a/OpenSim/Data/AssetDataBase.cs b/OpenSim/Data/AssetDataBase.cs
index b30ae73..e3b5c25 100644
--- a/OpenSim/Data/AssetDataBase.cs
+++ b/OpenSim/Data/AssetDataBase.cs
@@ -40,6 +40,7 @@ namespace OpenSim.Data
40 40
41 public abstract string Version { get; } 41 public abstract string Version { get; }
42 public abstract string Name { get; } 42 public abstract string Name { get; }
43 public abstract void Initialise(string connect);
43 public abstract void Initialise(); 44 public abstract void Initialise();
44 } 45 }
45} 46}
diff --git a/OpenSim/Data/MSSQL/MSSQLAssetData.cs b/OpenSim/Data/MSSQL/MSSQLAssetData.cs
index 2029b80..d837e4e 100644
--- a/OpenSim/Data/MSSQL/MSSQLAssetData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLAssetData.cs
@@ -191,6 +191,13 @@ namespace OpenSim.Data.MSSQL
191 191
192 #region IPlugin Members 192 #region IPlugin Members
193 193
194 override public void Initialise(string connect)
195 {
196 // TODO: this would allow you to pass in connnect info as
197 // a string instead of file, if someone writes the support
198 Initialise();
199 }
200
194 override public void Initialise() 201 override public void Initialise()
195 { 202 {
196 IniFile GridDataMySqlFile = new IniFile("mssql_connection.ini"); 203 IniFile GridDataMySqlFile = new IniFile("mssql_connection.ini");
diff --git a/OpenSim/Data/MySQL/MySQLAssetData.cs b/OpenSim/Data/MySQL/MySQLAssetData.cs
index 111f7d1..b6545d7 100644
--- a/OpenSim/Data/MySQL/MySQLAssetData.cs
+++ b/OpenSim/Data/MySQL/MySQLAssetData.cs
@@ -170,6 +170,13 @@ namespace OpenSim.Data.MySQL
170 170
171 #region IPlugin Members 171 #region IPlugin Members
172 172
173 override public void Initialise(string connect)
174 {
175 // TODO: This will let you pass in the connect string in
176 // the config, though someone will need to write that.
177 Initialise();
178 }
179
173 override public void Initialise() 180 override public void Initialise()
174 { 181 {
175 IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini"); 182 IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
diff --git a/OpenSim/Data/NHibernate/NHibernateAssetData.cs b/OpenSim/Data/NHibernate/NHibernateAssetData.cs
index db90d09..7bd4a0b 100644
--- a/OpenSim/Data/NHibernate/NHibernateAssetData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateAssetData.cs
@@ -50,18 +50,24 @@ namespace OpenSim.Data.NHibernate
50 50
51 public override void Initialise() 51 public override void Initialise()
52 { 52 {
53 // TODO: hard coding for sqlite based stuff to begin with, just making it easier to test 53 Initialise("SQLiteDialect;SqliteClientDriver;URI=file:Asset.db,version=3");
54 }
54 55
56 public override void Initialise(string connect)
57 {
58 // TODO: hard coding for sqlite based stuff to begin with, just making it easier to test
59 char[] split = {';'};
60 string[] parts = connect.Split(split);
61
55 // This is stubbing for now, it will become dynamic later and support different db backends 62 // This is stubbing for now, it will become dynamic later and support different db backends
56 cfg = new Configuration(); 63 cfg = new Configuration();
57 cfg.SetProperty(Environment.ConnectionProvider, 64 cfg.SetProperty(Environment.ConnectionProvider,
58 "NHibernate.Connection.DriverConnectionProvider"); 65 "NHibernate.Connection.DriverConnectionProvider");
59 cfg.SetProperty(Environment.Dialect, 66 cfg.SetProperty(Environment.Dialect,
60 "NHibernate.Dialect.SQLiteDialect"); 67 "NHibernate.Dialect." + parts[0]);
61 cfg.SetProperty(Environment.ConnectionDriver, 68 cfg.SetProperty(Environment.ConnectionDriver,
62 "NHibernate.Driver.SqliteClientDriver"); 69 "NHibernate.Driver." + parts[1]);
63 cfg.SetProperty(Environment.ConnectionString, 70 cfg.SetProperty(Environment.ConnectionString, parts[2]);
64 "URI=file:Asset.db,version=3");
65 cfg.AddAssembly("OpenSim.Data.NHibernate"); 71 cfg.AddAssembly("OpenSim.Data.NHibernate");
66 72
67 HbmSerializer.Default.Validate = true; 73 HbmSerializer.Default.Validate = true;
diff --git a/OpenSim/Data/SQLite/SQLiteAssetData.cs b/OpenSim/Data/SQLite/SQLiteAssetData.cs
index 2b63d2b..0d8b468 100644
--- a/OpenSim/Data/SQLite/SQLiteAssetData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAssetData.cs
@@ -56,9 +56,12 @@ namespace OpenSim.Data.SQLite
56 56
57 private SqliteConnection m_conn; 57 private SqliteConnection m_conn;
58 58
59 public void Initialise(string dbfile, string dbname) 59 override public void Initialise(string dbconnect)
60 { 60 {
61 m_conn = new SqliteConnection("URI=file:" + dbfile + ",version=3"); 61 if (dbconnect == string.Empty) {
62 dbconnect = "URI=file:AssetStorage.db,version=3";
63 }
64 m_conn = new SqliteConnection(dbconnect);
62 m_conn.Open(); 65 m_conn.Open();
63 TestTables(m_conn); 66 TestTables(m_conn);
64 return; 67 return;
@@ -289,7 +292,7 @@ namespace OpenSim.Data.SQLite
289 292
290 override public void Initialise() 293 override public void Initialise()
291 { 294 {
292 Initialise("AssetStorage.db", ""); 295 Initialise("URI=file:AssetStorage.db,version=3");
293 } 296 }
294 297
295 override public string Name 298 override public string Name
diff --git a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs
index 1afec70..334c5bd 100644
--- a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs
+++ b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs
@@ -35,9 +35,9 @@ namespace OpenSim.Framework.Communications.Cache
35 { 35 {
36 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 36 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
37 37
38 public SQLAssetServer(string pluginName) 38 public SQLAssetServer(string pluginName, string connect)
39 { 39 {
40 AddPlugin(pluginName); 40 AddPlugin(pluginName, connect);
41 } 41 }
42 42
43 public SQLAssetServer(IAssetProvider assetProvider) 43 public SQLAssetServer(IAssetProvider assetProvider)
@@ -45,7 +45,7 @@ namespace OpenSim.Framework.Communications.Cache
45 m_assetProvider = assetProvider; 45 m_assetProvider = assetProvider;
46 } 46 }
47 47
48 public void AddPlugin(string FileName) 48 public void AddPlugin(string FileName, string connect)
49 { 49 {
50 m_log.Info("[SQLAssetServer]: AssetStorage: Attempting to load " + FileName); 50 m_log.Info("[SQLAssetServer]: AssetStorage: Attempting to load " + FileName);
51 Assembly pluginAssembly = Assembly.LoadFrom(FileName); 51 Assembly pluginAssembly = Assembly.LoadFrom(FileName);
@@ -61,7 +61,7 @@ namespace OpenSim.Framework.Communications.Cache
61 IAssetProvider plug = 61 IAssetProvider plug =
62 (IAssetProvider) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); 62 (IAssetProvider) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
63 m_assetProvider = plug; 63 m_assetProvider = plug;
64 m_assetProvider.Initialise(); 64 m_assetProvider.Initialise(connect);
65 65
66 m_log.Info("[AssetStorage]: " + 66 m_log.Info("[AssetStorage]: " +
67 "Added " + m_assetProvider.Name + " " + 67 "Added " + m_assetProvider.Name + " " +
diff --git a/OpenSim/Framework/IAssetProvider.cs b/OpenSim/Framework/IAssetProvider.cs
index c9e4c8a..dcb79ea 100644
--- a/OpenSim/Framework/IAssetProvider.cs
+++ b/OpenSim/Framework/IAssetProvider.cs
@@ -36,5 +36,6 @@ namespace OpenSim.Framework
36 void UpdateAsset(AssetBase asset); 36 void UpdateAsset(AssetBase asset);
37 bool ExistsAsset(LLUUID uuid); 37 bool ExistsAsset(LLUUID uuid);
38 void CommitAssets(); // force a sync to the database 38 void CommitAssets(); // force a sync to the database
39 void Initialise(string connect);
39 } 40 }
40} 41}
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index ad0ee45..c01fc5a 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -454,7 +454,7 @@ namespace OpenSim
454 } 454 }
455 else 455 else
456 { 456 {
457 SQLAssetServer sqlAssetServer = new SQLAssetServer(m_standaloneAssetPlugin); 457 SQLAssetServer sqlAssetServer = new SQLAssetServer(m_standaloneAssetPlugin, m_standaloneAssetSource);
458 sqlAssetServer.LoadDefaultAssets(); 458 sqlAssetServer.LoadDefaultAssets();
459 assetServer = sqlAssetServer; 459 assetServer = sqlAssetServer;
460 } 460 }
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index ab7dfe4..bced391 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -104,6 +104,8 @@ welcome_message = "Welcome to OpenSim"
104; Asset database provider 104; Asset database provider
105asset_plugin = "OpenSim.Data.SQLite.dll" 105asset_plugin = "OpenSim.Data.SQLite.dll"
106; asset_plugin = "OpenSim.Data.MySQL.dll" 106; asset_plugin = "OpenSim.Data.MySQL.dll"
107; the Asset DB source. This only works for sqlite and nhibernate for now
108asset_source = "URI=file:Asset.db,version=3"
107 109
108; Inventory database provider 110; Inventory database provider
109inventory_plugin = "OpenSim.Data.SQLite.dll" 111inventory_plugin = "OpenSim.Data.SQLite.dll"