private void RegisterPlugin(IPlugin plugin) { TryAdd(plugin, AnalyzeConfiguration.FindAsyncCounterpartsFinders); TryAdd(plugin, AnalyzeConfiguration.InvocationExpressionAnalyzers); TryAdd(plugin, AnalyzeConfiguration.BodyFunctionReferencePostAnalyzers); TryAdd(plugin, AnalyzeConfiguration.MethodExceptionHandlers); TryAdd(plugin, AnalyzeConfiguration.PreconditionCheckers); TryAdd(plugin, TransformConfiguration.DocumentTransformers); TryAdd(plugin, TransformConfiguration.FunctionReferenceTransformers); TryAdd(plugin, TransformConfiguration.MethodTransformers); TryAdd(plugin, TransformConfiguration.FunctionTransformers); TryAdd(plugin, TransformConfiguration.TypeTransformers); RegisteredPlugins.Add(plugin); }
private void RegisterPlugin(IPlugin plugin) { TryAdd(plugin, RegisteredConfigurators); TryAdd(plugin, AnalyzeConfiguration.AsyncCounterpartsFinders); TryAdd(plugin, AnalyzeConfiguration.InvocationExpressionAnalyzers); TryAdd(plugin, AnalyzeConfiguration.BodyFunctionReferencePostAnalyzers); TryAdd(plugin, AnalyzeConfiguration.MethodExceptionHandlers); TryAdd(plugin, AnalyzeConfiguration.PreconditionCheckers); TryAdd(plugin, AnalyzeConfiguration.PreserveMethodReturnTypeProviders); TryAdd(plugin, AnalyzeConfiguration.MethodConversionProviders); TryAdd(plugin, AnalyzeConfiguration.TypeConversionProviders); TryAdd(plugin, AnalyzeConfiguration.FieldConversionProviders); TryAdd(plugin, AnalyzeConfiguration.AlwaysAwaitMethodProviders); TryAdd(plugin, AnalyzeConfiguration.SearchForMethodReferencesProviders); TryAdd(plugin, AnalyzeConfiguration.CancellationTokens.MethodRequiresCancellationTokenProviders); TryAdd(plugin, TransformConfiguration.DocumentTransformers); TryAdd(plugin, TransformConfiguration.FunctionReferenceTransformers); TryAdd(plugin, TransformConfiguration.MethodTransformers); TryAdd(plugin, TransformConfiguration.FunctionTransformers); TryAdd(plugin, TransformConfiguration.TypeTransformers); RegisteredPlugins.Add(plugin); }
internal List <Plugin> GetUnregisteredPlugins() { List <Plugin> unregistered = new List <Plugin>(); //check the plugins path is valid if (Directory.Exists(PluginsPath)) { string[] pluginFiles = Directory.GetFiles(PluginsPath, "*.xml", SearchOption.AllDirectories); int tempId = Int32.MinValue; foreach (string filePath in pluginFiles) { //check to see if filepath listed as a registered plugin if (RegisteredPlugins.FirstOrDefault(p => p.FilePath.ToLower() == filePath.ToLower()) == null) { //create new unregistered plugin Plugin plugin = Plugin.New(); plugin.IsUnregistered = true; //add a temporary pluginId for identification purposes plugin.PluginId = tempId++; //try and deserialize the plugin xml config IPlugin pluginFile = null; try { pluginFile = PluginHelper.ReadPlugin(filePath); } catch (Exception e) { //an error occurred so assume the config xml //is invalid and does not validate correctly plugin.FormatErrorMessage = String.Format("{0} {1}", e.Message, (e.InnerException != null ? ":- " + e.InnerException.Message : String.Empty)); } AddPluginFile(plugin, pluginFile, filePath); if (plugin.HasPluginFile) { if (plugin.RegistrationKey != Guid.Empty) { //plugin has a registration key so see if //it can be found in registered plugins Plugin registeredPlugin = RegisteredPlugins.FirstOrDefault(p => p.RegistrationKey == plugin.RegistrationKey); if (registeredPlugin != null) { //is registered plugin listed with a missing file status if ((registeredPlugin.Status & PluginStatus.PluginMissing) != 0) { //attach plugin file to its registered plugin AddPluginFile(registeredPlugin, plugin.PluginFile, filePath); //update new path details Update(registeredPlugin); } continue; //move to next file } else { //reset the registration key as must be copied from somewhere else plugin.RegistrationKey = Guid.Empty; } } } unregistered.Add(plugin); } } } else { m_Logger.Error(string.Format("The plugins path is not set to a valid folder - {0}", PluginsPath)); } return(unregistered); }
/// <summary> /// Creates new instance with default Functions/Types/Scope. /// </summary> public Context() { Types = new RegisteredTypes(); ExternalFunctions = new ExternalFunctions(); Words = new RegisteredWords(); Plugins = new RegisteredPlugins(); PluginsMeta = new MetaPluginContainer(); Symbols = new Symbols(); Memory = new Memory(); Limits = new Limits(this); TokenAliases = new Dictionary<string, Token>(); var stack = new CallStack(Limits.CheckCallStack); Callbacks = new Callbacks(); State = new LangState(stack); Units = new Units(); Methods = new RegisteredMethods(); Plugins.Init(); }
public override void UnregisterPlugin(string serviceBusPluginName) { var toRemove = RegisteredPlugins.First(x => x.Name == serviceBusPluginName); RegisteredPlugins.Remove(toRemove); }
public override void RegisterPlugin(ServiceBusPlugin serviceBusPlugin) { RegisteredPlugins.Add(serviceBusPlugin); }
/// <summary> /// Unregister a pugin /// </summary> public void UnregisterPlugin(Plugin Plugin) { RegisteredPlugins.Remove(Plugin); }
/// <summary> /// Register a new plugin /// </summary> public void RegisterPlugin(Plugin Plugin) { RegisteredPlugins.Add(Plugin); }