anchor.diff:  		return stVeritfyMessages;
   	}
   
  +
  +	/**
  +	* @hint removes a specific mailserver defined for this context.
  +	* @host hostname for the mail server to be removed.
  +	* @username username of the mail server to be removed.
  +	*/
  +	public void function removeMailServer( required string host, required string username ){
  +		admin
  +			action="removeMailServer"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			hostname="#arguments.host#"
  +			username="#arguments.username#"
  +			remoteClients="#variables.remoteClients#";
  +	}
  +
  +	/**
  +	* @hint returns mail settings for this context.
  +	*/
  +	public struct function getMailSetting(){
  +		admin
  +			action="getMailSetting"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			returnVariable="local.mail";
  +		return local.mail;
  +	}
  +
  +	/**
  +	* @hint updates the mail settings for this context
  +	* @spoolenable If enabled the mails are sent in a background thread and the main request does not have to wait until the mails are sent.
  +	* @timeout Time in seconds that the Task Manager waits to send a single mail, when the time is reached the Task Manager stops the thread and the mail gets moved to unsent folder, where the Task Manager will pick it up later to try to send it again.
  +	* @defaultEncoding Default encoding used for mail servers
  +	*/
  +	public void function updateMailSetting( required boolean spoolEnable, required numeric timeOut, required string defaultEncoding ){
  +		admin
  +			action="updateMailSetting"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			spoolEnable="#arguments.spoolEnable#"
  +			timeout="#arguments.timeOut#"
  +			defaultEncoding="#arguments.defaultEncoding#"
  +			remoteClients="#variables.remoteClients#";
  +	}
  +
  +	/**
  +	* @hint resets the mail settings for this context
  +	*/
  +	public void function resetMailSetting(){
  +		admin
  +			action="updateMailSetting"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			spoolEnable=""
  +			timeout=""
  +			defaultEncoding=""
  +			remoteClients="#variables.remoteClients#";
  +	}
  +
  +	/**
  +	* @hint returns the list of mappings defined for this context
  +	*/
  +	public query function getMappings(){
  +		admin
  +			action="getMappings"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			returnVariable="local.mappings";
  +		return local.mappings;
  +	}
  +
  +	public struct function getMapping( required string virtual ){
  +		admin
  +			action="getMapping"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			virtual = "#arguments.virtual#"
  +			returnVariable="local.providers";
  +		return providers;
  +	}
  +
  +	/**
  +	* @hint updates/inserts a specific mapping for this context
  +	* @virtual virtual name for the mapping
  +	* @physical physical path for the mapping
  +	* @archive archive path for the mapping, if needed.
  +	* @primary type of mapping ( physical/archive )
  +	* @inspect type of inspection for the mapping(never/once/always/"").
  +	*/
  +	public void function updateMapping(required string virtual, string physical="", string archive="", string primary="", string inspect="") {
  +		admin
  +			action="updateMapping"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			virtual="#arguments.virtual#"
  +			physical="#arguments.physical#"
  +			archive="#arguments.archive#"
  +			primary="#arguments.primary#"
  +			inspect="#arguments.inspect#"
  +			toplevel="yes"
  +			remoteClients="#variables.remoteClients#";
  +	}
  +
  +	/**
  +	* @hint removes a mapping defined in this context
  +	* @virtual virtual name for the mapping to be removed.
  +	*/
  +	public void function removeMapping(required string virtual){
  +		admin
  +			action="removeMapping"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			virtual="#arguments.virtual#"
  +			remoteClients="#variables.remoteClients#";
  +	}
  +
  +	/**
  +	* @hint compiles the mapping for any errors
  +	* @virtual virtual name for the mapping to be compiled.
  +	*/
  +	public void function compileMapping(required string virtual, boolean stopOnError=true){
  +		admin
  +			action="compileMapping"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			virtual="#arguments.virtual#"
  +			stoponerror="#stopOnError#"
  +			remoteClients="#variables.remoteClients#";
  +	}
  +
  +	/**
  +	* @hint creates new archieve for the mapping
  +	* @virtual virtual name for the mapping.
  +	* @addCFMLFile Add all CFML Source Templates as well (.cfm,.cfc,.cfml).
  +	* @addNonCFMLFile Add all Non CFML Source Templates as well (.js,.css,.gif,.png ...)
  +	* @doDownload Whether need to download the archive or not.
  +	*/
  +	public void function createArchiveFromMapping(required string virtual, boolean addCFMLFile=true, boolean addNonCFMLFile=true, required string target){
  +		var ext="lar";
  +		var filename=arguments.virtual;
  +		filename=mid(filename,2,len(filename));
  +		if(len(filename)){
  +			filename="archive-"&filename&"."&ext;
  +		}else{
  +			filename="archive-root."&ext;
  +		}
  +		filename=Replace(filename,"/","-","all");
  +		var target=expandPath("#cgi.context_path#/lucee/archives/"&filename);
  +		count=0;
  +		while(fileExists(target)){
  +			count=count+1;
  +			target="#cgi.context_path#/lucee/archives/"&filename;
  +			target=replace(target,'.'&ext,count&'.'&ext);
  +			target=expandPath(target);
  +		}
  +		admin
  +			action="createArchive"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			file="#arguments.target#"
  +			virtual="#arguments.virtual#"
  +			addCFMLFiles="#arguments.addCFMLFile#"
  +			addNonCFMLFiles="#arguments.addNonCFMLFile#"
  +			append="true"
  +			remoteClients="#variables.remoteClients#";
  +
  +		// downloadFile(arguments.target);
  +	}
  +
  +	//getCustomTagMappings
  +	public query function getCustomTagMappings(){
  +		admin
  +			action="getCustomTagMappings"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			returnVariable="local.providers";
  +		return providers;
  +	}
  +
  +	/**
  +	* @hint returns the list of extensions for this context.
  +	*/
  +	public query function getExtensions(){
  +		admin
  +			action="getRHExtensions"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			returnVariable="local.extensions";
  +		return local.extensions;
  +	}
  +
  +	/**
  +	* @hint returns the extension Info
  +	*/
  +	public struct function getExtensionInfo(){
  +		admin
  +			action="getExtensionInfo"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			returnVariable="local.info";
  +		return info;
  +	}
  +
  +	/**
  +	* @hint updates(install/upgrade/downgrade) a specific extension.
  +	* @provider provider of the extension
  +	* @id id of the extension
  +	* @version version of the extension
  +	*/
  +	public void function updateExtension( required string provider, required string id , required string version ){
  +		admin
  +			action="updateRHExtension"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			source="#downloadFull(arguments.provider,arguments.id,arguments.version)#";
  +	}
  +
  +	/**
  +	* @hint removes(uninstall) a specific extension.
  +	* @id id of the extension to be removed
  +	*/
  +	public void function removeExtension( required string id  ){
  +		admin
  +			action="removeRHExtension"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			id="#arguments.id#";
  +	}
  +
  +	/**
  +	* @hint returns the list of extension providers for this context.
  +	*/
  +	public query function getExtensionProviders(){
  +		admin
  +			action="getRHExtensionProviders"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			returnVariable="local.providers";
  +		return local.providers;
  +	}
  +
  +	/**
  +	* @hint Adds a new extension provider for this context.
  +	* @url URL to the Extension Provider (Example: http://www.myhost.com)
  +	*/
  +	public void function updateExtensionProvider( required string url ){
  +		admin
  +			action="updateRHExtensionProvider"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			url="#trim(arguments.url)#";
  +	}
  +
  +	/**
  +	* @hint Adds a new extension provider for this context.
  +	* @url URL to the Extension Provider (Example: http://www.myhost.com)
  +	*/
  +	public void function removeExtensionProvider( required string url ){
  +		admin
  +			action="removeRHExtensionProvider"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +
  +			url="#trim(arguments.url)#";
  +	}
  +
  +	//getRHServerExtensions
  +	public query function getRHServerExtensions(){
  +		admin
  +			action="getRHServerExtensions"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			returnVariable="local.rtn";
  +		return rtn;
  +	}
  +
  +	//getLocalExtension
  +	public struct function getLocalExtension( required string id  ){
  +		admin
  +			action="getLocalExtension"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			id="#arguments.id#"
  +			returnVariable="local.rtn";
  +		return rtn;
  +	}
  +
  +	//getLocalExtensions
  +	public query function getLocalExtensions(){
  +		admin
  +			action="getLocalExtensions"
  +			type="#variables.type#"
  +			password="#variables.password#"
  +			returnVariable="local.rtn";
  +		return rtn;
  +	}
  +
   	//verifyExtensionProvider
  -
   	public struct function verifyExtensionProvider( required string url ){
   		local.verifyExtensionProvider={};
   		try{
  
positive.code: 			type="#variables.type#"
  			password="#variables.password#"
  			returnVariable="local.rtn"
  			
  			action="getLocales";
  			return rtn;
  	}
  
  
  	
  	/**
  	* @hint updates or inserts of not existing a jar to the Lucee handled lib folder
  	* @path path (including file name) to the jar file, this can be any virtual file systm supported (local filesystem, zip, ftp, s3, ram ...)
  
negative.code: 	*/
  	public void function resetCharset(){
  		if(variables.type != "web") return;
  
  		admin
  			action="updateCharset"
  			type="#variables.type#"
  			password="#variables.password#"
  			templateCharset=""
  			webCharset=""
  			resourceCharset=""
  			remoteClients="#variables.remoteClients#";
  	}
  
  	/**
  	* @hint returns output settings for this context
  	*/
  