public void Init(string configPath, bool serviceBrowserAvailable) { Type type; this._messageBroker = new FluorineFx.Messaging.MessageBroker(this); this._serviceConfigSettings = FluorineFx.Messaging.Config.ServiceConfigSettings.Load(configPath, "services-config.xml"); foreach (ChannelSettings settings in this._serviceConfigSettings.ChannelsSettings) { type = ObjectFactory.Locate(settings.Class); if (type != null) { IEndpoint endpoint = ObjectFactory.CreateInstance(type, new object[] { this._messageBroker, settings }) as IEndpoint; if (endpoint != null) { this._messageBroker.AddEndpoint(endpoint); } } else { log.Error(__Res.GetString("Type_InitError", new object[] { settings.Class })); } ChannelSettings channelSettings = new ChannelSettings("__@fluorinertmpt", null); IEndpoint endpoint2 = new RtmptEndpoint(this._messageBroker, channelSettings); this._messageBroker.AddEndpoint(endpoint2); } foreach (FactorySettings settings3 in this._serviceConfigSettings.FactoriesSettings) { type = ObjectFactory.Locate(settings3.ClassId); if (type != null) { IFlexFactory factory = ObjectFactory.CreateInstance(type, new object[0]) as IFlexFactory; if (factory != null) { this._messageBroker.AddFactory(settings3.Id, factory); } } else { log.Error(__Res.GetString("Type_InitError", new object[] { settings3.ClassId })); } } this._messageBroker.AddFactory("dotnet", new DotNetFactory()); if (serviceBrowserAvailable && (this._serviceConfigSettings.ServiceSettings["remoting-service"] != null)) { ServiceSettings serviceSettings = this._serviceConfigSettings.ServiceSettings["remoting-service"]; AdapterSettings adapterSettings = this._serviceConfigSettings.ServiceSettings["remoting-service"].AdapterSettings["dotnet"]; this.InstallServiceBrowserDestinations(serviceSettings, adapterSettings); } foreach (ServiceSettings settings6 in this._serviceConfigSettings.ServiceSettings) { type = ObjectFactory.Locate(settings6.Class); if (type != null) { IService service = ObjectFactory.CreateInstance(type, new object[] { this._messageBroker, settings6 }) as IService; if (service != null) { this._messageBroker.AddService(service); } } else { log.Error(__Res.GetString("Type_InitError", new object[] { settings6.Class })); } } if ((this._serviceConfigSettings.SecuritySettings != null) && ((this._serviceConfigSettings.SecuritySettings.LoginCommands != null) && (this._serviceConfigSettings.SecuritySettings.LoginCommands.Count > 0))) { string loginCommand = this._serviceConfigSettings.SecuritySettings.LoginCommands.GetLoginCommand("asp.net"); type = ObjectFactory.Locate(loginCommand); if (type != null) { ILoginCommand command = ObjectFactory.CreateInstance(type, new object[0]) as ILoginCommand; this._messageBroker.LoginCommand = command; } else { log.Error(__Res.GetString("Type_InitError", new object[] { loginCommand })); } } this.InitAuthenticationService(); try { if ((FluorineConfiguration.Instance.FluorineSettings.Silverlight.PolicyServerSettings != null) && FluorineConfiguration.Instance.FluorineSettings.Silverlight.PolicyServerSettings.Enable) { IResource resource = FluorineContext.Current.GetResource(FluorineConfiguration.Instance.FluorineSettings.Silverlight.PolicyServerSettings.PolicyFile); if (!resource.Exists) { throw new FileNotFoundException("Policy file not found", FluorineConfiguration.Instance.FluorineSettings.Silverlight.PolicyServerSettings.PolicyFile); } log.Info(__Res.GetString("Silverlight_StartPS", new object[] { resource.File.FullName })); this._policyServer = new PolicyServer(resource.File.FullName); } } catch (Exception exception) { log.Error(__Res.GetString("Silverlight_PSError"), exception); } }
public static ServiceConfigSettings Load(string configPath, string configFileName) { ChannelSettings settings2; FluorineFx.Messaging.Config.ServiceSettings settings4; AdapterSettings settings5; FluorineFx.Messaging.Config.SecuritySettings settings6; string path = Path.Combine(configPath, configFileName); ServiceConfigSettings serviceConfigSettings = new ServiceConfigSettings(); if (File.Exists(path)) { log.Debug(__Res.GetString("MessageServer_LoadingConfig", new object[] { path })); XmlDocument document = new XmlDocument(); document.Load(path); XmlNodeList list = document.SelectNodes("/services-config/channels/channel-definition"); foreach (XmlNode node in list) { XmlNode node2 = node.SelectSingleNode("endpoint"); string str2 = node2.Attributes["class"].Value; string str3 = node2.Attributes["uri"].Value; settings2 = new ChannelSettings(node); serviceConfigSettings.ChannelsSettings.Add(settings2); } XmlNodeList list2 = document.SelectNodes("/services-config/factories/factory"); foreach (XmlNode node3 in list2) { string str4 = node3.Attributes["id"].Value; string str5 = node3.Attributes["class"].Value; FactorySettings settings3 = new FactorySettings(node3); serviceConfigSettings.FactoriesSettings.Add(settings3); } XmlNodeList list3 = document.SelectNodes("/services-config/services/service-include"); foreach (XmlNode node4 in list3) { string str6 = node4.Attributes["file-path"].Value; str6 = Path.Combine(configPath, str6); log.Debug(__Res.GetString("MessageServer_LoadingServiceConfig", new object[] { str6 })); settings4 = new FluorineFx.Messaging.Config.ServiceSettings(serviceConfigSettings); settings4.Init(str6); if ((settings4.Id == "remoting-service") && (settings4.DefaultAdapter == null)) { settings5 = new AdapterSettings("dotnet", typeof(RemotingAdapter).FullName, false); settings4.AdapterSettings.Add(settings5); } serviceConfigSettings.ServiceSettings.Add(settings4); } XmlNodeList list4 = document.SelectNodes("/services-config/services/service"); foreach (XmlNode node5 in list4) { settings4 = new FluorineFx.Messaging.Config.ServiceSettings(serviceConfigSettings); settings4.Init(node5); if ((settings4.Id == "remoting-service") && (settings4.DefaultAdapter == null)) { settings5 = new AdapterSettings("dotnet", typeof(RemotingAdapter).FullName, false); settings4.AdapterSettings.Add(settings5); } serviceConfigSettings.ServiceSettings.Add(settings4); } XmlNode securityNode = document.SelectSingleNode("/services-config/security"); if (securityNode != null) { settings6 = new FluorineFx.Messaging.Config.SecuritySettings(null, securityNode); serviceConfigSettings._securitySettings = settings6; } XmlNode flexClientNode = document.SelectSingleNode("/services-config/flex-client"); if (flexClientNode != null) { FluorineFx.Messaging.Config.FlexClientSettings settings7 = new FluorineFx.Messaging.Config.FlexClientSettings(flexClientNode); serviceConfigSettings._flexClientSettings = settings7; return(serviceConfigSettings); } serviceConfigSettings._flexClientSettings = new FluorineFx.Messaging.Config.FlexClientSettings(); return(serviceConfigSettings); } log.Debug(__Res.GetString("MessageServer_LoadingConfigDefault", new object[] { path })); LoginCommandCollection loginCommands = FluorineConfiguration.Instance.LoginCommands; if (loginCommands != null) { settings6 = new FluorineFx.Messaging.Config.SecuritySettings(null); LoginCommandSettings item = new LoginCommandSettings { Server = "asp.net", Type = loginCommands.GetLoginCommand("asp.net") }; settings6.LoginCommands.Add(item); serviceConfigSettings._securitySettings = settings6; } settings2 = new ChannelSettings("my-amf", "flex.messaging.endpoints.AMFEndpoint", "http://{server.name}:{server.port}/{context.root}/Gateway.aspx"); serviceConfigSettings.ChannelsSettings.Add(settings2); settings4 = new FluorineFx.Messaging.Config.ServiceSettings(serviceConfigSettings, "remoting-service", typeof(RemotingService).FullName); string customClass = "flex.messaging.messages.RemotingMessage"; string type = FluorineConfiguration.Instance.ClassMappings.GetType(customClass); settings4.SupportedMessageTypes[customClass] = type; serviceConfigSettings.ServiceSettings.Add(settings4); settings5 = new AdapterSettings("dotnet", typeof(RemotingAdapter).FullName, true); settings4.DefaultAdapter = settings5; DestinationSettings settings9 = new DestinationSettings(settings4, "fluorine", settings5, "*"); settings4.DestinationSettings.Add(settings9); serviceConfigSettings._flexClientSettings = new FluorineFx.Messaging.Config.FlexClientSettings(); return(serviceConfigSettings); }