aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Data/MSSQL/MSSQLInventoryData.cs6
-rw-r--r--OpenSim/Data/MySQL/MySQLInventoryData.cs6
-rw-r--r--OpenSim/Data/NHibernate/NHibernateAssetData.cs10
-rw-r--r--OpenSim/Data/NHibernate/NHibernateInventoryData.cs26
-rw-r--r--OpenSim/Data/SQLite/SQLiteInventoryStore.cs16
-rw-r--r--OpenSim/Framework/Communications/InventoryServiceBase.cs4
-rw-r--r--OpenSim/Framework/IInventoryData.cs2
-rw-r--r--OpenSim/Framework/InventoryConfig.cs42
-rw-r--r--OpenSim/Grid/InventoryServer/InventoryManager.cs4
-rw-r--r--OpenSim/Grid/InventoryServer/Main.cs2
-rw-r--r--OpenSim/Region/Application/OpenSimMain.cs2
-rw-r--r--bin/OpenSim.ini.example7
12 files changed, 75 insertions, 52 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLInventoryData.cs b/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
index 27f8b60..c524fc0 100644
--- a/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
+++ b/OpenSim/Data/MSSQL/MSSQLInventoryData.cs
@@ -51,6 +51,12 @@ namespace OpenSim.Data.MSSQL
51 /// <summary> 51 /// <summary>
52 /// Loads and initialises this database plugin 52 /// Loads and initialises this database plugin
53 /// </summary> 53 /// </summary>
54 public void Initialise(string connect)
55 {
56 // TODO: actually use the provided connect string
57 Initialise();
58 }
59
54 public void Initialise() 60 public void Initialise()
55 { 61 {
56 IniFile GridDataMySqlFile = new IniFile("mssql_connection.ini"); 62 IniFile GridDataMySqlFile = new IniFile("mssql_connection.ini");
diff --git a/OpenSim/Data/MySQL/MySQLInventoryData.cs b/OpenSim/Data/MySQL/MySQLInventoryData.cs
index dbcb9bd..6261d37 100644
--- a/OpenSim/Data/MySQL/MySQLInventoryData.cs
+++ b/OpenSim/Data/MySQL/MySQLInventoryData.cs
@@ -51,6 +51,12 @@ namespace OpenSim.Data.MySQL
51 /// <summary> 51 /// <summary>
52 /// Loads and initialises this database plugin 52 /// Loads and initialises this database plugin
53 /// </summary> 53 /// </summary>
54 public void Initialise(string connect)
55 {
56 // TODO: actually use the provided connect string
57 Initialise();
58 }
59
54 public void Initialise() 60 public void Initialise()
55 { 61 {
56 IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini"); 62 IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
diff --git a/OpenSim/Data/NHibernate/NHibernateAssetData.cs b/OpenSim/Data/NHibernate/NHibernateAssetData.cs
index 7bd4a0b..beac693 100644
--- a/OpenSim/Data/NHibernate/NHibernateAssetData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateAssetData.cs
@@ -55,11 +55,11 @@ namespace OpenSim.Data.NHibernate
55 55
56 public override void Initialise(string connect) 56 public override void Initialise(string connect)
57 { 57 {
58 // TODO: hard coding for sqlite based stuff to begin with, just making it easier to test 58 // Split out the dialect, driver, and connect string
59 char[] split = {';'}; 59 char[] split = {';'};
60 string[] parts = connect.Split(split); 60 string[] parts = connect.Split(split);
61 61
62 // This is stubbing for now, it will become dynamic later and support different db backends 62 // NHibernate setup
63 cfg = new Configuration(); 63 cfg = new Configuration();
64 cfg.SetProperty(Environment.ConnectionProvider, 64 cfg.SetProperty(Environment.ConnectionProvider,
65 "NHibernate.Connection.DriverConnectionProvider"); 65 "NHibernate.Connection.DriverConnectionProvider");
@@ -74,7 +74,11 @@ namespace OpenSim.Data.NHibernate
74 using ( MemoryStream stream = 74 using ( MemoryStream stream =
75 HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly())) 75 HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly()))
76 cfg.AddInputStream(stream); 76 cfg.AddInputStream(stream);
77 77
78 // If uncommented this will auto create tables, but it
79 // does drops of the old tables, so we need a smarter way
80 // to acturally manage this.
81
78 // new SchemaExport(cfg).Create(true, true); 82 // new SchemaExport(cfg).Create(true, true);
79 83
80 factory = cfg.BuildSessionFactory(); 84 factory = cfg.BuildSessionFactory();
diff --git a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
index 1ac0f0c..938f47c 100644
--- a/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
+++ b/OpenSim/Data/NHibernate/NHibernateInventoryData.cs
@@ -50,25 +50,21 @@ namespace OpenSim.Data.NHibernate
50 /// <summary> 50 /// <summary>
51 /// Initialises the interface 51 /// Initialises the interface
52 /// </summary> 52 /// </summary>
53 public void Initialise() 53 public void Initialise(string connect)
54 { 54 {
55 Initialise("Inventory.db", "Inventory"); 55 // Split out the dialect, driver, and connect string
56 } 56 char[] split = {';'};
57 57 string[] parts = connect.Split(split);
58 public void Initialise(string dbfile, string dbname) 58
59 { 59 // Establish NHibernate Connection
60 // TODO: hard coding for sqlite based stuff to begin with, just making it easier to test
61
62 // This is stubbing for now, it will become dynamic later and support different db backends
63 cfg = new Configuration(); 60 cfg = new Configuration();
64 cfg.SetProperty(Environment.ConnectionProvider, 61 cfg.SetProperty(Environment.ConnectionProvider,
65 "NHibernate.Connection.DriverConnectionProvider"); 62 "NHibernate.Connection.DriverConnectionProvider");
66 cfg.SetProperty(Environment.Dialect, 63 cfg.SetProperty(Environment.Dialect,
67 "NHibernate.Dialect.SQLiteDialect"); 64 "NHibernate.Dialect." + parts[0]);
68 cfg.SetProperty(Environment.ConnectionDriver, 65 cfg.SetProperty(Environment.ConnectionDriver,
69 "NHibernate.Driver.SqliteClientDriver"); 66 "NHibernate.Driver." + parts[1]);
70 cfg.SetProperty(Environment.ConnectionString, 67 cfg.SetProperty(Environment.ConnectionString, parts[2]);
71 "URI=file:" + dbfile + ",version=3");
72 cfg.AddAssembly("OpenSim.Data.NHibernate"); 68 cfg.AddAssembly("OpenSim.Data.NHibernate");
73 69
74 HbmSerializer.Default.Validate = true; 70 HbmSerializer.Default.Validate = true;
@@ -76,6 +72,10 @@ namespace OpenSim.Data.NHibernate
76 HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly())) 72 HbmSerializer.Default.Serialize(Assembly.GetExecutingAssembly()))
77 cfg.AddInputStream(stream); 73 cfg.AddInputStream(stream);
78 74
75 // If uncommented this will auto create tables, but it
76 // does drops of the old tables, so we need a smarter way
77 // to acturally manage this.
78
79 // new SchemaExport(cfg).Create(true, true); 79 // new SchemaExport(cfg).Create(true, true);
80 80
81 factory = cfg.BuildSessionFactory(); 81 factory = cfg.BuildSessionFactory();
diff --git a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
index 442ba39..2eb0ad5 100644
--- a/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
+++ b/OpenSim/Data/SQLite/SQLiteInventoryStore.cs
@@ -50,17 +50,13 @@ namespace OpenSim.Data.SQLite
50 /// <summary> 50 /// <summary>
51 /// Initialises the interface 51 /// Initialises the interface
52 /// </summary> 52 /// </summary>
53 public void Initialise() 53 public void Initialise(string dbconnect)
54 { 54 {
55 Initialise("inventoryStore.db", "inventoryDatabase"); 55 if (dbconnect == string.Empty) {
56 } 56 dbconnect = "URI=file:inventoryStore.db,version=3";
57 57 }
58 public void Initialise(string dbfile, string dbname) 58 m_log.Info("[Inventory]: Sqlite - connecting: " + dbconnect);
59 { 59 SqliteConnection conn = new SqliteConnection(dbconnect);
60 string connectionString = "URI=file:" + dbfile + ",version=3";
61
62 m_log.Info("[Inventory]: Sqlite - connecting: " + dbfile);
63 SqliteConnection conn = new SqliteConnection(connectionString);
64 60
65 conn.Open(); 61 conn.Open();
66 62
diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs
index 769c530..5cbfcf9 100644
--- a/OpenSim/Framework/Communications/InventoryServiceBase.cs
+++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs
@@ -46,7 +46,7 @@ namespace OpenSim.Framework.Communications
46 /// Adds a new user server plugin - plugins will be requested in the order they were loaded. 46 /// Adds a new user server plugin - plugins will be requested in the order they were loaded.
47 /// </summary> 47 /// </summary>
48 /// <param name="FileName">The filename to the user server plugin DLL</param> 48 /// <param name="FileName">The filename to the user server plugin DLL</param>
49 public void AddPlugin(string FileName) 49 public void AddPlugin(string FileName, string connect)
50 { 50 {
51 if (!String.IsNullOrEmpty(FileName)) 51 if (!String.IsNullOrEmpty(FileName))
52 { 52 {
@@ -63,7 +63,7 @@ namespace OpenSim.Framework.Communications
63 { 63 {
64 IInventoryData plug = 64 IInventoryData plug =
65 (IInventoryData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); 65 (IInventoryData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
66 plug.Initialise(); 66 plug.Initialise(connect);
67 m_plugins.Add(plug.getName(), plug); 67 m_plugins.Add(plug.getName(), plug);
68 m_log.Info("[AGENTINVENTORY]: Added IInventoryData Interface"); 68 m_log.Info("[AGENTINVENTORY]: Added IInventoryData Interface");
69 } 69 }
diff --git a/OpenSim/Framework/IInventoryData.cs b/OpenSim/Framework/IInventoryData.cs
index d72231d..508099e 100644
--- a/OpenSim/Framework/IInventoryData.cs
+++ b/OpenSim/Framework/IInventoryData.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Framework
38 /// <summary> 38 /// <summary>
39 /// Initialises the interface 39 /// Initialises the interface
40 /// </summary> 40 /// </summary>
41 void Initialise(); 41 void Initialise(string connect);
42 42
43 /// <summary> 43 /// <summary>
44 /// Closes the interface 44 /// Closes the interface
diff --git a/OpenSim/Framework/InventoryConfig.cs b/OpenSim/Framework/InventoryConfig.cs
index 39a6930..1e22fe8 100644
--- a/OpenSim/Framework/InventoryConfig.cs
+++ b/OpenSim/Framework/InventoryConfig.cs
@@ -40,6 +40,7 @@ namespace OpenSim.Framework
40 public string UserRecvKey = String.Empty; 40 public string UserRecvKey = String.Empty;
41 41
42 public string DatabaseProvider = String.Empty; 42 public string DatabaseProvider = String.Empty;
43 public string DatabaseConnect = String.Empty;
43 public static uint DefaultHttpPort = 8004; 44 public static uint DefaultHttpPort = 8004;
44 45
45 public uint HttpPort = DefaultHttpPort; 46 public uint HttpPort = DefaultHttpPort;
@@ -68,6 +69,8 @@ namespace OpenSim.Framework
68 "Key to expect from user server", "null", false); 69 "Key to expect from user server", "null", false);
69 configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING, 70 configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
70 "DLL for database provider", "OpenSim.Data.SQLite.dll", false); 71 "DLL for database provider", "OpenSim.Data.SQLite.dll", false);
72 configMember.addConfigurationOption("database_connect", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
73 "Database Connect String", "", false);
71 configMember.addConfigurationOption("http_port", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, 74 configMember.addConfigurationOption("http_port", ConfigurationOption.ConfigurationTypes.TYPE_UINT32,
72 "Http Listener port", DefaultHttpPort.ToString(), false); 75 "Http Listener port", DefaultHttpPort.ToString(), false);
73 } 76 }
@@ -76,24 +79,27 @@ namespace OpenSim.Framework
76 { 79 {
77 switch (configuration_key) 80 switch (configuration_key)
78 { 81 {
79 case "default_startup_message": 82 case "default_startup_message":
80 DefaultStartupMsg = (string) configuration_result; 83 DefaultStartupMsg = (string) configuration_result;
81 break; 84 break;
82 case "default_user_server": 85 case "default_user_server":
83 UserServerURL = (string) configuration_result; 86 UserServerURL = (string) configuration_result;
84 break; 87 break;
85 case "user_send_key": 88 case "user_send_key":
86 UserSendKey = (string) configuration_result; 89 UserSendKey = (string) configuration_result;
87 break; 90 break;
88 case "user_recv_key": 91 case "user_recv_key":
89 UserRecvKey = (string) configuration_result; 92 UserRecvKey = (string) configuration_result;
90 break; 93 break;
91 case "database_provider": 94 case "database_provider":
92 DatabaseProvider = (string) configuration_result; 95 DatabaseProvider = (string) configuration_result;
93 break; 96 break;
94 case "http_port": 97 case "database_connect":
95 HttpPort = (uint) configuration_result; 98 DatabaseConnect = (string) configuration_result;
96 break; 99 break;
100 case "http_port":
101 HttpPort = (uint) configuration_result;
102 break;
97 } 103 }
98 104
99 return true; 105 return true;
diff --git a/OpenSim/Grid/InventoryServer/InventoryManager.cs b/OpenSim/Grid/InventoryServer/InventoryManager.cs
index b3c6891..1d4a4e3 100644
--- a/OpenSim/Grid/InventoryServer/InventoryManager.cs
+++ b/OpenSim/Grid/InventoryServer/InventoryManager.cs
@@ -48,7 +48,7 @@ namespace OpenSim.Grid.InventoryServer
48 /// Adds a new inventory server plugin - user servers will be requested in the order they were loaded. 48 /// Adds a new inventory server plugin - user servers will be requested in the order they were loaded.
49 /// </summary> 49 /// </summary>
50 /// <param name="FileName">The filename to the inventory server plugin DLL</param> 50 /// <param name="FileName">The filename to the inventory server plugin DLL</param>
51 public void AddDatabasePlugin(string FileName) 51 public void AddDatabasePlugin(string FileName, string dbconnect)
52 { 52 {
53 m_log.Info("[" + OpenInventory_Main.LogName + "]: Invenstorage: Attempting to load " + FileName); 53 m_log.Info("[" + OpenInventory_Main.LogName + "]: Invenstorage: Attempting to load " + FileName);
54 Assembly pluginAssembly = Assembly.LoadFrom(FileName); 54 Assembly pluginAssembly = Assembly.LoadFrom(FileName);
@@ -65,7 +65,7 @@ namespace OpenSim.Grid.InventoryServer
65 { 65 {
66 IInventoryData plug = 66 IInventoryData plug =
67 (IInventoryData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); 67 (IInventoryData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
68 plug.Initialise(); 68 plug.Initialise(dbconnect);
69 _databasePlugin = plug; 69 _databasePlugin = plug;
70 m_log.Info("[" + OpenInventory_Main.LogName + "]: " + 70 m_log.Info("[" + OpenInventory_Main.LogName + "]: " +
71 "Invenstorage: Added IInventoryData Interface"); 71 "Invenstorage: Added IInventoryData Interface");
diff --git a/OpenSim/Grid/InventoryServer/Main.cs b/OpenSim/Grid/InventoryServer/Main.cs
index 2454650..85d9ba5 100644
--- a/OpenSim/Grid/InventoryServer/Main.cs
+++ b/OpenSim/Grid/InventoryServer/Main.cs
@@ -72,7 +72,7 @@ namespace OpenSim.Grid.InventoryServer
72 72
73 m_inventoryService = new GridInventoryService(); 73 m_inventoryService = new GridInventoryService();
74 // m_inventoryManager = new InventoryManager(); 74 // m_inventoryManager = new InventoryManager();
75 m_inventoryService.AddPlugin(m_config.DatabaseProvider); 75 m_inventoryService.AddPlugin(m_config.DatabaseProvider, m_config.DatabaseConnect);
76 76
77 m_log.Info("[" + LogName + "]: Starting HTTP server ..."); 77 m_log.Info("[" + LogName + "]: Starting HTTP server ...");
78 78
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs
index c01fc5a..aaf2d7e 100644
--- a/OpenSim/Region/Application/OpenSimMain.cs
+++ b/OpenSim/Region/Application/OpenSimMain.cs
@@ -353,7 +353,7 @@ namespace OpenSim
353 if (m_sandbox) 353 if (m_sandbox)
354 { 354 {
355 LocalInventoryService inventoryService = new LocalInventoryService(); 355 LocalInventoryService inventoryService = new LocalInventoryService();
356 inventoryService.AddPlugin(m_standaloneInventoryPlugin); 356 inventoryService.AddPlugin(m_standaloneInventoryPlugin, m_standaloneInventorySource);
357 357
358 LocalUserServices userService = 358 LocalUserServices userService =
359 new LocalUserServices(m_networkServersInfo, m_networkServersInfo.DefaultHomeLocX, 359 new LocalUserServices(m_networkServersInfo, m_networkServersInfo.DefaultHomeLocX,
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index bced391..5a15c85 100644
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -104,13 +104,18 @@ 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
107; the Asset DB source. This only works for sqlite and nhibernate for now 108; the Asset DB source. This only works for sqlite and nhibernate for now
108asset_source = "URI=file:Asset.db,version=3" 109; Asset Source SQLite Exampe
110; asset_source = "URI=file:Asset.db,version=3"
111; Asset Source NHibernate Example (DIALECT;DRIVER;CONNECTSTRING)
112; asset_source = "SQLiteDialect;SqliteClientDriver;URI=file:Asset.db,version=3"
109 113
110; Inventory database provider 114; Inventory database provider
111inventory_plugin = "OpenSim.Data.SQLite.dll" 115inventory_plugin = "OpenSim.Data.SQLite.dll"
112; inventory_plugin = "OpenSim.Data.MySQL.dll" 116; inventory_plugin = "OpenSim.Data.MySQL.dll"
113 117
118
114; User Data Database provider 119; User Data Database provider
115userDatabase_plugin = "OpenSim.Data.SQLite.dll" 120userDatabase_plugin = "OpenSim.Data.SQLite.dll"
116; userDatabase_plugin = "OpenSim.Data.MySQL.dll" 121; userDatabase_plugin = "OpenSim.Data.MySQL.dll"