From 16efb78698fc505fb33ad87962b39047939d636c Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Mon, 11 May 2009 22:54:09 +0000 Subject: Changes to the new user system to add the modularity developed for the asset system --- .../Asset/LocalAssetServiceConnector.cs | 2 +- .../User/LocalUserServiceConnector.cs | 37 ++++++++++++++++++++-- .../User/RemoteUserServiceConnector.cs | 1 - OpenSim/Servers/User/UserServerConnector.cs | 17 ++++++++-- bin/OpenSim.Servers.UserServer.ini.example | 1 + bin/OpenSim.ini.example | 8 +++++ prebuild.xml | 2 -- 7 files changed, 60 insertions(+), 8 deletions(-) diff --git a/OpenSim/Region/CoreModules/ServiceConnectors/Asset/LocalAssetServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectors/Asset/LocalAssetServiceConnector.cs index 1aaf552..bd4638a 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectors/Asset/LocalAssetServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectors/Asset/LocalAssetServiceConnector.cs @@ -67,7 +67,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectors.Asset IConfig assetConfig = source.Configs["AssetService"]; if (assetConfig == null) { - m_log.Error("[ASSET CONNECTOR]: AssetService missing from OpanSim.ini"); + m_log.Error("[ASSET CONNECTOR]: AssetService missing from OpenSim.ini"); return; } diff --git a/OpenSim/Region/CoreModules/ServiceConnectors/User/LocalUserServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectors/User/LocalUserServiceConnector.cs index 1528ef2..637931e 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectors/User/LocalUserServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectors/User/LocalUserServiceConnector.cs @@ -25,16 +25,23 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +using System; +using System.Reflection; +using log4net; using Nini.Config; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; +using OpenSim.Servers.Base; using OpenSim.Services.Interfaces; -using OpenSim.Services.UserService; namespace OpenSim.Region.CoreModules.ServiceConnectors.User { public class LocalUserServicesConnector : ISharedRegionModule { + private static readonly ILog m_log = + LogManager.GetLogger( + MethodBase.GetCurrentMethod().DeclaringType); + private IUserService m_UserService; private bool m_Enabled = false; @@ -52,8 +59,34 @@ namespace OpenSim.Region.CoreModules.ServiceConnectors.User string name = moduleConfig.GetString("UserServices", ""); if (name == Name) { + IConfig userConfig = source.Configs["UserService"]; + if (userConfig == null) + { + m_log.Error("[USER CONNECTOR]: UserService missing from OpenSim.ini"); + return; + } + + string serviceDll = userConfig.GetString("LocalServiceModule", + String.Empty); + + if (serviceDll == String.Empty) + { + m_log.Error("[USER CONNECTOR]: No LocalServiceModule named in section UserService"); + return; + } + + Object[] args = new Object[] { source }; + m_UserService = + ServerUtils.LoadPlugin(serviceDll, + args); + + if (m_UserService == null) + { + m_log.Error("[USER CONNECTOR]: Can't load user service"); + return; + } m_Enabled = true; - m_UserService = new UserService(source); + m_log.Info("[USER CONNECTOR]: Local user connector enabled"); } } } diff --git a/OpenSim/Region/CoreModules/ServiceConnectors/User/RemoteUserServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectors/User/RemoteUserServiceConnector.cs index 58e52ac..e56aac5 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectors/User/RemoteUserServiceConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectors/User/RemoteUserServiceConnector.cs @@ -29,7 +29,6 @@ using Nini.Config; using OpenSim.Region.Framework.Interfaces; using OpenSim.Region.Framework.Scenes; using OpenSim.Services.Interfaces; -using OpenSim.Services.UserService; namespace OpenSim.Region.CoreModules.ServiceConnectors.User { diff --git a/OpenSim/Servers/User/UserServerConnector.cs b/OpenSim/Servers/User/UserServerConnector.cs index c20cc31..15b09bc 100644 --- a/OpenSim/Servers/User/UserServerConnector.cs +++ b/OpenSim/Servers/User/UserServerConnector.cs @@ -25,9 +25,10 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +using System; using Nini.Config; +using OpenSim.Servers.Base; using OpenSim.Services.Interfaces; -using OpenSim.Services.UserService; using OpenSim.Framework.Servers.HttpServer; namespace OpenSim.Servers.UserServer @@ -38,7 +39,19 @@ namespace OpenSim.Servers.UserServer public UserServiceConnector(IConfigSource config, IHttpServer server) { - m_UserService = new UserService(config); + IConfig serverConfig = config.Configs["UserService"]; + if (serverConfig == null) + throw new Exception("No section 'Server' in config file"); + + string userService = serverConfig.GetString("LocalServiceModule", + String.Empty); + + if (userService == String.Empty) + throw new Exception("No UserService in config file"); + + Object[] args = new Object[] { config }; + m_UserService = + ServerUtils.LoadPlugin(userService, args); } } } diff --git a/bin/OpenSim.Servers.UserServer.ini.example b/bin/OpenSim.Servers.UserServer.ini.example index 39d0ace..55ff4e8 100644 --- a/bin/OpenSim.Servers.UserServer.ini.example +++ b/bin/OpenSim.Servers.UserServer.ini.example @@ -2,5 +2,6 @@ port = 8002 [UserService] +LocalServiceModule = "OpenSim.Services.UserService.dll:UserService" StorageProvider = "OpenSim.Data.MySQL.dll" ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=opensim;" diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index de8139b..de1fcce 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -1277,6 +1277,11 @@ ;AssetCaching = "CoreAssetCache" + ; Choose one + ;UserServices = "LocalUserServicesConnector" + ;UserServices = "RemoteUserServicesConnector" + + [AssetService] ; Parameters for local assets ;LocalServiceModule = "OpenSim.Services.AssetService.dll:AssetService" @@ -1297,3 +1302,6 @@ [AssetCache] ; Number of buckets for assets ;CacheBuckets = 32768 + +[UserService] + ;LocalServiceModule = "OpenSim.Services.UserService.dll:UserService" diff --git a/prebuild.xml b/prebuild.xml index de4918d..081e166 100644 --- a/prebuild.xml +++ b/prebuild.xml @@ -1374,7 +1374,6 @@ - @@ -1442,7 +1441,6 @@ - -- cgit v1.1