Folder of Plugin data. Can be used to store some plugin specific information.
		public PluginRegistry()
		{
			For<IDocumentIndexProvider>().Singleton().Use(c =>
				{
					var logger = c.GetInstance<IActivityLogger>();
					var setup = c.GetInstance<DocumentIndexSetup>();
					return new DocumentIndexProvider(logger.Debug, setup);
				});
			For<DocumentIndexSetup>().Singleton().Use(() =>
				{
					var folder = new PluginDataFolder();
					return new DocumentIndexSetup(indexPath: folder.Path, minStringLengthToSearch: 2, maxStringLengthIgnore: 60, aliveTimeoutInMinutes:20);
				});
			For<QueryEntityTypeProvider>().Singleton().Use<QueryEntityTypeProvider>();
			Forward<QueryEntityTypeProvider, IQueryResultFactory>();
			Forward<QueryEntityTypeProvider, IEntityTypeProvider>();
			For<IDocumentIdFactory>().Singleton().Use<DocumentIdFactory>();
			For<IEntityIndexer>().Singleton().Use<EntityIndexer>();
			For<AutomaticOnDemandProfileCreator>().Singleton().Use<AutomaticOnDemandProfileCreator>();
			Forward<AutomaticOnDemandProfileCreator, ITargetProcessMessageWhenNoProfilesHandler>();
			Forward<AutomaticOnDemandProfileCreator, ITargetProcessConditionalMessageRouter>();
			For<QueryParser>().Singleton().Use<QueryParser>();
			For<QueryPlanBuilder>().Use<QueryPlanBuilder>();
			For<QueryPlanExecutor>().Use<QueryPlanExecutor>();
			For<QueryRunner>().Use<QueryRunner>();
			For<TextOperations>().Singleton().Use<TextOperations>();
		}
		public DocumentIndexSetup Load()
		{
			int aliveTimeoutInMinutes = PluginSettings.LoadInt(IndexAliveTimeoutInMinutesName, 10);
			int deferredOptimizeCallsOnChange = PluginSettings.LoadInt(DeferredOptimizeCallsOnChangeName, 1);
			DeferredOptimizeType optimizeType = PluginSettings.LoadEnum(DeferredOptimizeTypeName, DeferredOptimizeType.None);
			int checkIntervalInMinutes = PluginSettings.LoadInt(SearchCheckIntervalInMinutesName, aliveTimeoutInMinutes);
			int? managedMemoryThresholdInMb = PluginSettings.LoadInt(ManagedMemoryThresholdInMbName);
			var folder = new PluginDataFolder();
			return new DocumentIndexSetup(indexPath: folder.Path, minStringLengthToSearch: 2, maxStringLengthIgnore: 60,
				aliveTimeoutInMinutes: aliveTimeoutInMinutes, deferredOptimizeCounter: deferredOptimizeCallsOnChange,
				deferredOptimizeType: optimizeType, checkIntervalInMinutes: checkIntervalInMinutes,
				managedMemoryThresholdInMb: managedMemoryThresholdInMb);
		}
		public LibraryLocalFolder(PluginDataFolder pluginDataFolder)
		{
			Path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, pluginDataFolder.Path, MashupLibraryFolderName);
		}