/////////////////////////////////////////////////////////////////////////////////////////

		private void WebServicesConfigurationChanged (Conf.Section section)
		{			
			Logger.Log.Info("WebServicesConfigurationChanged EventHandler invoked");
			if (! (section is Conf.WebServicesConfig))
				return;
			
			Conf.WebServicesConfig wsc = (Conf.WebServicesConfig) section;
			
			if (web_global != wsc.AllowGlobalAccess) {
				// Update AllowGlobalAccess configuration:
				web_global = wsc.AllowGlobalAccess;
				Logger.Log.Info("WebServicesBackEnd: Global WebServicesAccess {0}", web_global ? "Enabled" : "Disabled");
			}
			
			if (wsc.PublicFolders.Count == 0)
				return;
				
			Logger.Log.Warn("WebServicesBackEnd: Changes in PublicFolders configuration doesn't take effect until Beagle daemon is restarted!");
				
/*			Note: ExternalAccessFilter Matchers can be updated, 
				  but app mapping changes in BeagleXsp Server require it to be restarted !
			
			ArrayList newList = new ArrayList();
			foreach (string pf in wsc.PublicFolders) {
					if (pf == null || pf == "")
						continue;					
	
					newList.Add (new NetBeagleHandler (host, port, this));								
			}	
			
			if (usingPublicFoldersDotCfgFile) {
				usingPublicFoldersDotCfgFile = false;
				log.Warn("NetBeagleQueryable: Duplicate configuration of PublicFolders in '~/.beagle/publicfolders.cfg' and '~/.beagle/config/webservices.xml' !");
				log.Info("NetBeagleQueryable: Remove '~/.beagle/publicfolders.cfg' file. Use 'beagle-config' instead to setup public folders.");		
				log.Info("NetBeagleQueryable: Replacing PublicFoldersList with new list from \"webservices.xml\" having {0} node(s)", newList.Count);
			}			
			
			AccessFilter.ReplaceAccessFilter(newList);  			
*/					 
		}
		private void NetBeagleConfigurationChanged (Conf.Section section)
		{			
			Logger.Log.Info("NetBeagleConfigurationChanged EventHandler invoked");		
			if (! (section is Conf.NetworkingConfig))
				return;
				
			Conf.NetworkingConfig nc = (Conf.NetworkingConfig) section;

			//if (nc.NetBeagleNodes.Count == 0)
			//	return;
					
			ArrayList newList = new ArrayList();
			foreach (string nb in nc.NetBeagleNodes) {
					if (nb == null || nb == "")
						continue;					
					string[] data = nb.Split (':');
					if (data.Length < 2) {
						log.Warn("NetBeagleQueryable: Ignoring improper NetBeagle entry: {0}", nb);
						continue; 
					}						
					string host = data[0];
					string port = data[1];		
					newList.Add (new NetBeagleHandler (host, port, this));												
			}	
			
			lock (this) {
				NetBeagleList = newList;
				NetBeagleListActive = (newList.Count == 0) ? false:true;
			}			 
		}