Exemplo n.º 1
0
        private bool CreateFactories(
            FrontEndContext frontEndContext,
            TestEngineAbstraction engineAbstraction,
            FrontEndStatistics frontEndStatistics,
            ICommandLineConfiguration configuration,
            out AmbientTesting ambientTesting,
            out ModuleRegistry moduleRegistry,
            out FrontEndFactory frontEndFactory)
        {
            moduleRegistry = new ModuleRegistry(frontEndContext.SymbolTable);
            ambientTesting = new AmbientTesting(engineAbstraction, GetAllDiagnostics, moduleRegistry.PrimitiveTypes);
            ambientTesting.Initialize(moduleRegistry.GlobalLiteral);

            var ambientAssert = new AmbientAssert(moduleRegistry.PrimitiveTypes);

            ambientAssert.Initialize(moduleRegistry.GlobalLiteral);

            // Create the controller
            frontEndFactory = new FrontEndFactory();
            frontEndFactory.SetConfigurationProcessor(new TestConfigProcessor(configuration));
            frontEndFactory.AddFrontEnd(
                new DScriptFrontEnd(
                    frontEndStatistics,
                    logger: m_astLogger));

            if (!frontEndFactory.TrySeal(frontEndContext.LoggingContext))
            {
                HandleDiagnostics();
                return(false);
            }

            return(true);
        }
Exemplo n.º 2
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents.Instance.OnBeginHttpRequest  += new WebEvents.HttpApplicationCancellableEventHandler(WebEvents_OnBeginHttpRequest);
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
     WebEvents.Instance.OnPathNotFound      += new WebEvents.RequestedPathEventHandler(WebEvents_OnPathNotFound);
     WebEvents.Instance.OnEndHttpRequest    += new WebEvents.HttpApplicationEventHandler(WebEvents_OnEndHttpRequest);
 }
		public void AttachEventHandlers(ModuleRegistry registry)
		{
			DatabaseManager.Instance.OnDatabaseHandlerLoaded += new NotificationEventHandler<IDatabaseHandler>(Instance_OnDatabaseHandlerLoaded);
			DatabaseSetup.Instance.Completed += new EmptyHandler(DatabaseSetup_Completed);
			WebEvents.Instance.OnBeforeLoadExistingFile += new WebEvents.RequestedPathEventHandler(Instance_OnBeforeLoadExistingFile);
			WebAuthentication.Instance.OnValidatingLogin += new WebAuthentication.LoginAuthenticationHandler(WebAuthentication_OnValidatingLogin);
		}
Exemplo n.º 4
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     if (HttpContext.Current != null)
     {
         HttpContext.Current.ApplicationInstance.PostRequestHandlerExecute += new EventHandler(PostRequestHandlerExecute);
     }
 }
        /// <summary>
        /// Schedule the specified nodes and retrieves the result
        /// </summary>
        internal NinjaSchedulingResult ScheduleAll(NinjaResolverSettings resolverSettings, IList <NinjaNode> nodes, QualifierId qualifierId)
        {
            var moduleRegistry  = new ModuleRegistry(FrontEndContext.SymbolTable);
            var frontEndFactory = CreateFrontEndFactoryForEvaluation(ParseAndEvaluateLogger);

            using (var controller = CreateFrontEndHost(GetDefaultCommandLine(), frontEndFactory, moduleRegistry, AbsolutePath.Invalid, out _, out _))
            {
                var pipConstructor = new NinjaPipConstructor(
                    FrontEndContext,
                    controller,
                    "NinjaFrontEnd",
                    m_testModule,
                    qualifierId,
                    resolverSettings.ProjectRoot,
                    resolverSettings.SpecFile,
                    resolverSettings.RemoveAllDebugFlags ?? false,
                    resolverSettings.UntrackingSettings);

                var schedulingResults = new Dictionary <NinjaNode, (bool, Process)>();

                foreach (var node in nodes)
                {
                    var result = pipConstructor.TrySchedulePip(node, qualifierId, out Process process);
                    schedulingResults[node] = (result, process);
                }

                return(new NinjaSchedulingResult(PathTable, controller.PipGraph, schedulingResults));
            }
        }
Exemplo n.º 6
0
        public void AttachEventHandlers(ModuleRegistry registry)
        {
            WebEvents wem = WebEvents.Instance;

            wem.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(OnLoadRequestedPath);
            OnAdminRequest          += new AdminRequestHandler(WebsiteAdmin_OnAdminRequest);
        }
Exemplo n.º 7
0
 private void RegisterMessageReceivedEvents(ModuleRegistry moduleRegistry, DiscordSocketClient discordClient)
 {
     foreach (IMessageEventListenerModule messageListenerModule in moduleRegistry.GetModules().Where((module) => module is IMessageEventListenerModule))
     {
         discordClient.MessageReceived += messageListenerModule.OnMessageReceived;
     }
 }
Exemplo n.º 8
0
        private static IFrontEndController TryCreateFrontEndController(
            FrontEndFactory frontEndFactory,
            IDecorator <EvaluationResult> decorator,
            ICommandLineConfiguration configuration,
            SymbolTable symbolTable,
            LoggingContext loggingContext,
            PerformanceCollector collector,
            bool collectMemoryAsSoonAsPossible,
            IFrontEndStatistics statistics)
        {
            Contract.Requires(frontEndFactory != null && !frontEndFactory.IsSealed);

            // Statistic should be global for all front-ends, not per an instance.
            var frontEndStatistics = statistics ?? new FrontEndStatistics();

            var sharedModuleRegistry = new ModuleRegistry(symbolTable);

            // Note, that the following code is absolutely critical for detecting that front-end related objects
            // are freed successfully after evaluation.
            // ModuleRegistry was picked intentionally because it holds vast amount of front-end data.
            FrontEndControllerMemoryObserver.CaptureFrontEndReference(sharedModuleRegistry);

            frontEndFactory.SetConfigurationProcessor(
                new ConfigurationProcessor(
                    new FrontEndStatistics(), // Configuration processing is so lightweight that it won't affect overall perf statistics
                    logger: null));

            frontEndFactory.AddFrontEnd(new DScriptFrontEnd(
                                            frontEndStatistics,
                                            evaluationDecorator: decorator));

            frontEndFactory.AddFrontEnd(new NugetFrontEnd(
                                            frontEndStatistics,
                                            evaluationDecorator: decorator));

            frontEndFactory.AddFrontEnd(new DownloadFrontEnd());

#if PLATFORM_WIN
            frontEndFactory.AddFrontEnd(new MsBuildFrontEnd());
            frontEndFactory.AddFrontEnd(new NinjaFrontEnd());
            frontEndFactory.AddFrontEnd(new CMakeFrontEnd());
            frontEndFactory.AddFrontEnd(new RushFrontEnd());
            frontEndFactory.AddFrontEnd(new YarnFrontEnd());
            frontEndFactory.AddFrontEnd(new LageFrontEnd());
#endif

            if (!frontEndFactory.TrySeal(loggingContext))
            {
                return(null);
            }

            return(new FrontEndHostController(
                       frontEndFactory,
                       evaluationScheduler: EvaluationScheduler.Default,
                       moduleRegistry: sharedModuleRegistry,
                       frontEndStatistics: frontEndStatistics,
                       logger: BuildXL.FrontEnd.Core.Tracing.Logger.CreateLogger(),
                       collector: collector,
                       collectMemoryAsSoonAsPossible: collectMemoryAsSoonAsPossible));
        }
Exemplo n.º 9
0
 private static void RegisterModules(IEnumerable <IModule> modules, ModuleRegistry moduleRegistry)
 {
     foreach (IModule module in modules)
     {
         moduleRegistry.RegisterModule(module);
     }
 }
Exemplo n.º 10
0
        /// <summary>
        /// Uses <see cref="CreateProjectToPipConstructor(FrontEndContext, FrontEndHost, ModuleDefinition, TResolverSettings, IEnumerable{KeyValuePair{string, string}}, IEnumerable{string})"/>
        /// to schedule the specified projects and retrieves the result
        protected internal virtual SchedulingResult <TProject> ScheduleAll(TResolverSettings resolverSettings, IEnumerable <TProject> projects, QualifierId currentQualifier, QualifierId[] requestedQualifiers)
        {
            var moduleRegistry  = new ModuleRegistry(FrontEndContext.SymbolTable);
            var frontEndFactory = CreateFrontEndFactoryForEvaluation(ParseAndEvaluateLogger);

            using (var controller = CreateFrontEndHost(GetDefaultCommandLine(), frontEndFactory, moduleRegistry, AbsolutePath.Invalid, out _, out _, requestedQualifiers))
            {
                resolverSettings.ComputeEnvironment(FrontEndContext.PathTable, out var trackedEnv, out var passthroughVars, out _);

                var pipConstructor = CreateProjectToPipConstructor(
                    FrontEndContext,
                    controller,
                    m_testModule,
                    resolverSettings,
                    trackedEnv,
                    passthroughVars,
                    projects);

                var schedulingResults = new Dictionary <TProject, (bool, string, Process)>();

                foreach (var rushProject in projects)
                {
                    var result = pipConstructor.TrySchedulePipForProject(rushProject, currentQualifier);
                    schedulingResults[rushProject] = (
                        result.Succeeded, result.Succeeded? null : result.Failure.Describe(),
                        result.Succeeded? (Process)controller.PipGraph.GetPipFromPipId(result.Result.ProcessPipId) : null);
                }

                return(new SchedulingResult <TProject>(controller.PipGraph, schedulingResults, controller.Configuration));
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// Builds a set of javascript methods which are mapped to corresponding ModuleBase-derived
        /// class methods which are marked with the AjaxMethod attribute.
        /// </summary>
        /// <param name="registry">A reference to the module registry</param>
        /// <returns>A block of javascript defining objects and methods that encapsulate ajax calls to
        /// matching server-side methods</returns>
        private string GetAjaxMethodsScript(ModuleRegistry registry)
        {
            Hashtable modules = new Hashtable();

            foreach (RegisteredModule module in registry)
            {
                if (module.Module.GetType().GetCustomAttributes(typeof(AjaxMethodHandlerAttribute), false).Length != 1)
                {
                    continue;
                }
                MethodInfo[] infos     = module.Module.GetType().GetMethods(BindingFlags.Public | BindingFlags.Instance);
                bool         nameAdded = false;
                foreach (MethodInfo info in infos)
                {
                    object[] attrs = info.GetCustomAttributes(typeof(AjaxMethodAttribute), false);
                    if (attrs.Length == 1)
                    {
                        if (!nameAdded)
                        {
                            nameAdded = true;
                            modules.Add(module.Module.RegistrationCode, new ArrayList());
                        }
                        ((ArrayList)modules[module.Module.RegistrationCode]).Add(info.Name);
                    }
                }
            }

            StringBuilder sb = new StringBuilder();

            sb.Append(Environment.NewLine);
            sb.Append("Ajax = {};");
            sb.Append(Environment.NewLine);

            foreach (DictionaryEntry de in modules)
            {
                sb.Append("Ajax.");
                sb.Append(de.Key.ToString());
                sb.Append(" = {");
                sb.Append(Environment.NewLine);
                ArrayList arr = (ArrayList)de.Value;
                for (int i = 0; i < arr.Count; i++)
                {
                    sb.Append("\t");
                    sb.Append(arr[i]);
                    sb.Append(" : function() { SprocketAjax.Request('");
                    sb.Append(de.Key.ToString());
                    sb.Append(".");
                    sb.Append(arr[i]);
                    sb.Append("', arguments); }");
                    if (i < arr.Count - 1)
                    {
                        sb.Append(",");
                    }
                    sb.Append(Environment.NewLine);
                }
                sb.Append("}");
                sb.Append(Environment.NewLine);
            }
            return(sb.ToString());
        }
Exemplo n.º 12
0
        /// <summary>
        /// Uses <see cref="MsBuildPipConstructor"/> to schedule the specified projects and retrieves the result
        internal MsBuildSchedulingResult ScheduleAll(MsBuildResolverSettings resolverSettings, IEnumerable <ProjectWithPredictions> projectsWithPredictions, QualifierId currentQualifier, QualifierId[] requestedQualifiers)
        {
            var moduleRegistry  = new ModuleRegistry(FrontEndContext.SymbolTable);
            var frontEndFactory = CreateFrontEndFactoryForEvaluation(ParseAndEvaluateLogger);

            using (var controller = CreateFrontEndHost(GetDefaultCommandLine(), frontEndFactory, moduleRegistry, AbsolutePath.Invalid, out _, out _, requestedQualifiers))
            {
                resolverSettings.ComputeEnvironment(out var trackedEnv, out var passthroughVars, out _);

                var pipConstructor = new PipConstructor(
                    FrontEndContext,
                    controller,
                    m_testModule,
                    resolverSettings,
                    resolverSettings.ShouldRunDotNetCoreMSBuild()? DotnetCoreMSBuild : FullframeworkMSBuild,
                    resolverSettings.ShouldRunDotNetCoreMSBuild()? DotnetExe : AbsolutePath.Invalid,
                    nameof(MsBuildFrontEnd),
                    trackedEnv,
                    passthroughVars);

                var schedulingResults = new Dictionary <ProjectWithPredictions, (bool, string, Process)>();

                foreach (var projectWithPredictions in projectsWithPredictions)
                {
                    var result = pipConstructor.TrySchedulePipForFile(projectWithPredictions, currentQualifier, out string failureDetail, out Process process);
                    schedulingResults[projectWithPredictions] = (result, failureDetail, process);
                }

                return(new MsBuildSchedulingResult(PathTable, controller.PipGraph, schedulingResults));
            }
        }
Exemplo n.º 13
0
        private TypeOrNamespaceModuleLiteral DoInstantiate(ModuleRegistry moduleRegistry, TypeOrNamespaceModuleLiteral module, QualifierValue qualifier, FileModuleLiteral outerScope)
        {
            Contract.Requires(module != null);
            Contract.Requires(qualifier != QualifierValue.Unqualified);

            Interlocked.CompareExchange(ref m_qualifier, qualifier, QualifierValue.Unqualified);

            // The outer scope of this should have the same qualifier. So if that's not the case we instantiate one and set the parent appropriately
            if (outerScope.Qualifier.QualifierId != qualifier.QualifierId)
            {
                var newOuterScope = moduleRegistry.InstantiateModule(
                    (outerScope, moduleRegistry, qualifier),
                    QualifiedModuleId.Create(outerScope.Id, qualifier.QualifierId),
                    (state, qualifiedModuleId) =>
                {
                    var capturedOuterScope     = state.outerScope;
                    var capturedModuleRegistry = state.moduleRegistry;
                    var capturedQualifier      = state.qualifier;
                    return(capturedOuterScope.InstantiateFileModuleLiteral(capturedModuleRegistry, capturedQualifier));
                });

                return(new TypeOrNamespaceModuleLiteral(module.Id, qualifier, newOuterScope, module.Location));
            }

            if (m_qualifier.QualifierId == qualifier.QualifierId)
            {
                // Uninstantiated module becomes the first instance.
                return(this);
            }

            // Create a new file module instance.
            return(new TypeOrNamespaceModuleLiteral(module.Id, qualifier, outerScope, module.Location));
        }
        public void ProcessingFileShouldAddItToTheRegistry()
        {
            ModuleRegistry.Clear();
            _transform.Process("~/test", "Bla bla bla");

            ModuleRegistry.GetModuleName("~/test").ShouldBe("Name");
        }
        protected override async Task EstablishContext()
        {
            eventStore = new MemoryEventSource();

            documentStore = new RavenDocumentStoreBuilder().Build();

            countryCode = Guid.NewGuid();

            using (var session = documentStore.OpenAsyncSession())
            {
                await session.StoreAsync(new CountryLookupBuilder()
                                         .IdentifiedBy(countryCode)
                                         .Named("Netherlands")
                                         .Build());

                await session.StoreAsync(new DocumentCountProjectionBuilder()
                                         .WithNumber("123")
                                         .InCountry(countryCode)
                                         .OfKind("Filming")
                                         .Build());

                await session.SaveChangesAsync();
            }

            var modules = new ModuleRegistry(new StatisticsModule());

            host = new TestHostBuilder().Using(documentStore).Using(eventStore).WithModules(modules).Build();
        }
Exemplo n.º 16
0
        private BuildXLEngine CreateEngine(bool rememberAllChangedTrackedInputs)
        {
            IFrontEndController Create(PathTable pathTable, SymbolTable symbolTable)
            {
                var frontEndStatistics = new FrontEndStatistics();
                var moduleRegistry     = new ModuleRegistry(symbolTable);

                var frontEndFactory = FrontEndFactory.CreateInstanceForTesting(
                    () => new ConfigurationProcessor(new FrontEndStatistics(), ParseAndEvaluateLogger),
                    new DScriptFrontEnd(frontEndStatistics, ParseAndEvaluateLogger));

                var evaluationScheduler = new EvaluationScheduler(degreeOfParallelism: 1);

                return(new FrontEndHostController(
                           frontEndFactory,
                           evaluationScheduler,
                           moduleRegistry,
                           new FrontEndStatistics(),
                           logger: InitializationLogger,
                           collector: null,
                           collectMemoryAsSoonAsPossible: false));
            }

            BuildXLEngine.PopulateLoggingAndLayoutConfiguration(Configuration, Context.PathTable, bxlExeLocation: null, inTestMode: true);
            var successfulValidation = BuildXLEngine.PopulateAndValidateConfiguration(Configuration, Configuration, Context.PathTable, LoggingContext);

            Assert.True(successfulValidation);

            var engine = BuildXLEngine.Create(LoggingContext, Context, Configuration, new LambdaBasedFrontEndControllerFactory(Create), new BuildViewModel(), rememberAllChangedTrackedInputs: rememberAllChangedTrackedInputs);

            engine.TestHooks = TestHooks;

            return(engine);
        }
Exemplo n.º 17
0
        /// <summary>
        /// Uses <see cref="MsBuildPipConstructor"/> to schedule the specified projects and retrieves the result
        internal MsBuildSchedulingResult ScheduleAll(MsBuildResolverSettings resolverSettings, IEnumerable <ProjectWithPredictions> projectsWithPredictions, QualifierId currentQualifier, QualifierId[] requestedQualifiers)
        {
            var moduleRegistry   = new ModuleRegistry(FrontEndContext.SymbolTable);
            var workspaceFactory = CreateWorkspaceFactoryForTesting(FrontEndContext, ParseAndEvaluateLogger);
            var frontEndFactory  = CreateFrontEndFactoryForEvaluation(workspaceFactory, ParseAndEvaluateLogger);

            using (var controller = CreateFrontEndHost(GetDefaultCommandLine(), frontEndFactory, workspaceFactory, moduleRegistry, AbsolutePath.Invalid, out _, out _, requestedQualifiers))
            {
                var pipConstructor = new PipConstructor(
                    FrontEndContext,
                    controller,
                    m_testModule,
                    resolverSettings,
                    AbsolutePath.Create(PathTable, TestDeploymentDir).Combine(PathTable, "MSBuild.exe"),
                    nameof(MsBuildFrontEnd));

                var schedulingResults = new Dictionary <ProjectWithPredictions, (bool, string, Process)>();

                foreach (var projectWithPredictions in projectsWithPredictions)
                {
                    var result = pipConstructor.TrySchedulePipForFile(projectWithPredictions, currentQualifier, out string failureDetail, out Process process);
                    schedulingResults[projectWithPredictions] = (result, failureDetail, process);
                }

                return(new MsBuildSchedulingResult(PathTable, controller.PipGraph, schedulingResults));
            }
        }
Exemplo n.º 18
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     if (registry.IsRegistered("WebClientScripts"))
     {
         WebClientScripts.Instance.OnBeforeRenderJavaScript += new Sprocket.Web.WebClientScripts.BeforeRenderJavaScriptHandler(OnPreRenderJavaScript);
     }
 }
Exemplo n.º 19
0
 private static void RegisterKnownWorkspaceResolvers(
     DScriptWorkspaceResolverFactory workspaceFactory,
     GlobalConstants constants,
     ModuleRegistry sharedModuleRegistry,
     IFrontEndStatistics statistics,
     MsBuildFrontEnd msBuildFrontEnd,
     NinjaFrontEnd ninjaFrontEnd,
     CMakeFrontEnd cmakeFrontend)
 {
     workspaceFactory.RegisterResolver(
         KnownResolverKind.SourceResolverKind,
         () => new WorkspaceSourceModuleResolver(constants, sharedModuleRegistry, statistics, logger: null));
     workspaceFactory.RegisterResolver(
         KnownResolverKind.DScriptResolverKind,
         () => new WorkspaceSourceModuleResolver(constants, sharedModuleRegistry, statistics, logger: null));
     workspaceFactory.RegisterResolver(
         KnownResolverKind.DefaultSourceResolverKind,
         () => new WorkspaceDefaultSourceModuleResolver(constants, sharedModuleRegistry, statistics, logger: null));
     workspaceFactory.RegisterResolver(
         KnownResolverKind.NugetResolverKind,
         () => new WorkspaceNugetModuleResolver(constants, sharedModuleRegistry, statistics));
     workspaceFactory.RegisterResolver(
         KnownResolverKind.DownloadResolverKind,
         () => new DownloadWorkspaceResolver(constants, sharedModuleRegistry));
     workspaceFactory.RegisterResolver(
         KnownResolverKind.MsBuildResolverKind,
         () => new MsBuildWorkspaceResolver(constants, sharedModuleRegistry, statistics, msBuildFrontEnd));
     workspaceFactory.RegisterResolver(
         KnownResolverKind.NinjaResolverKind,
         () => new NinjaWorkspaceResolver(constants, sharedModuleRegistry, statistics, ninjaFrontEnd));
     workspaceFactory.RegisterResolver(
         KnownResolverKind.CMakeResolverKind,
         () => new CMakeWorkspaceResolver(constants, sharedModuleRegistry, statistics, cmakeFrontend, ninjaFrontEnd));
 }
Exemplo n.º 20
0
        public static void LoadModules(ModuleRegistry moduleRegistry)
        {
            IEnumerable <Assembly> libaries = LoadLibraries();
            IEnumerable <IModule>  modules  = LoadModules(libaries);

            RegisterModules(modules, moduleRegistry);
        }
Exemplo n.º 21
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
     SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(Settings_OnCheckingSettings);
     if (registry.IsRegistered("PageRequestHandler"))
         PageRequestHandler.Instance.OnRegisteringPlaceHolderRenderers += new PageRequestHandler.RegisteringPlaceHolderRenderers(PageRequestHandler_OnRegisteringPlaceHolderRenderers);
 }
Exemplo n.º 22
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     AdminHandler.Instance.OnLoadAdminPage += new AdminHandler.AdminRequestHandler(AdminHandler_OnLoadAdminPage);
     WebEvents.AddFormProcessor(new WebEvents.FormPostAction(null, null, "page-edit-button", "Save Page", SavePage));
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
     AdminHandler.AddPagePreprocessor("PageEdit", PreEditPage);
 }
Exemplo n.º 23
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     DatabaseManager.Instance.OnDatabaseHandlerLoaded += new NotificationEventHandler <IDatabaseHandler>(Instance_OnDatabaseHandlerLoaded);
     DatabaseSetup.Instance.Completed             += new EmptyEventHandler(DatabaseSetup_Completed);
     WebEvents.Instance.OnBeforeLoadExistingFile  += new WebEvents.RequestedPathEventHandler(Instance_OnBeforeLoadExistingFile);
     WebAuthentication.Instance.OnValidatingLogin += new WebAuthentication.LoginAuthenticationHandler(WebAuthentication_OnValidatingLogin);
 }
Exemplo n.º 24
0
 protected DScriptInterpreterBase(GlobalConstants constants, ModuleRegistry sharedModuleRegistry, IFrontEndStatistics statistics, Logger logger,
                                  FrontEndHost host, FrontEndContext context, IConfiguration configuration)
     : this(constants, sharedModuleRegistry, statistics, logger)
 {
     // ReSharper disable once VirtualMemberCallInConstructor
     // The call is safe and used only for testing purposes.
     InitializeInterpreter(host, context, configuration);
 }
Exemplo n.º 25
0
        // TODO: Move these to virtual filesystem. There is something funny with line numbers when usng the virtual filesystem.
        public DsDebuggerTest(ITestOutputHelper output)
            : base(output, usePassThroughFileSystem: true)
        {
            var sharedModuleRegistry = new ModuleRegistry();
            var constants            = new GlobalConstants(FrontEndContext.SymbolTable);

            Debugger = new MockService(FrontEndContext.PathTable, LoggingContext).Debugger;
        }
Exemplo n.º 26
0
        /// <nodoc/>
        internal FileModuleLiteral(AbsolutePath path, QualifierValue qualifier, GlobalModuleLiteral outerScope, Package package, ModuleRegistry moduleRegistry, LineMap lineMap)
            : this(ModuleLiteralId.Create(path), qualifier, outerScope, package, lineMap)
        {
            Contract.Requires(path.IsValid);
            Contract.Requires(lineMap != null);

            m_moduleRegistry = moduleRegistry;
        }
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     if (!File.Exists(WebUtility.MapPath(PageRegistry.XmlFilePath))) return;
     WebEvents.Instance.OnBeginHttpRequest += new WebEvents.HttpApplicationCancellableEventHandler(OnBeginHttpRequest);
     WebEvents.Instance.OnEndHttpRequest += new WebEvents.HttpApplicationEventHandler(OnEndHttpRequest);
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(OnLoadRequestedPath);
     WebEvents.Instance.OnPathNotFound += new WebEvents.RequestedPathEventHandler(OnPathNotFound);
     //WebsiteAdmin.Instance.OnAdminRequest += new WebsiteAdmin.AdminRequestHandler(OnAdminRequest);
 }
Exemplo n.º 28
0
 /// <nodoc/>
 public WorkspaceDefaultSourceModuleResolver(
     GlobalConstants constants,
     ModuleRegistry sharedModuleRegistry,
     IFrontEndStatistics statistics,
     Logger logger = null)
     : base(constants, sharedModuleRegistry, statistics, logger)
 {
     Name = nameof(WorkspaceDefaultSourceModuleResolver);
 }
Exemplo n.º 29
0
        public void ConfigureServices(IServiceCollection services)
        {
            var modules = new ModuleRegistry(new StatisticsModule());

            services
            .AddServicesFrom(modules)
            .AddMvcCore()
            .ConfigureMvcUsing(modules);
        }
Exemplo n.º 30
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents.Instance.OnLoadRequestedPath       += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
     SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(Settings_OnCheckingSettings);
     if (registry.IsRegistered("PageRequestHandler"))
     {
         PageRequestHandler.Instance.OnRegisteringPlaceHolderRenderers += new PageRequestHandler.RegisteringPlaceHolderRenderers(PageRequestHandler_OnRegisteringPlaceHolderRenderers);
     }
 }
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     Core.Instance.OnInitialise += new ModuleInitialisationHandler(Instance_OnInitialise);
     WebEvents.Instance.OnBeginHttpRequest += new WebEvents.HttpApplicationCancellableEventHandler(OnBeginHttpRequest);
     WebEvents.Instance.OnEndHttpRequest += new WebEvents.HttpApplicationEventHandler(OnEndHttpRequest);
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(OnLoadRequestedPath);
     WebEvents.Instance.OnPathNotFound += new WebEvents.RequestedPathEventHandler(OnPathNotFound);
     WebsiteAdmin.Instance.OnAdminRequest += new WebsiteAdmin.AdminRequestHandler(OnAdminRequest);
 }
Exemplo n.º 32
0
        /// <nodoc />
        public ConfigurationProcessor(
            GlobalConstants constants,
            ModuleRegistry sharedModuleRegistry,
            Logger logger)

        // Configuration processing is so lightweight that it won't affect overall perf statistics
            : base(constants, sharedModuleRegistry, new FrontEndStatistics(), logger)
        {
        }
Exemplo n.º 33
0
 /// <nodoc/>
 public MsBuildFrontEnd(
     GlobalConstants constants,
     ModuleRegistry sharedModuleRegistry,
     IFrontEndStatistics statistics,
     Logger logger = null)
     : base(constants, sharedModuleRegistry, statistics, logger)
 {
     Name = nameof(MsBuildFrontEnd);
 }
Exemplo n.º 34
0
 /// <nodoc />
 internal FileModuleLiteral(
     BuildXLReader reader,
     PathTable pathTable,
     GlobalModuleLiteral outerScope,
     ModuleRegistry moduleRegistry,
     LineMap lineMap)
     : this(reader, pathTable, reader.ReadAbsolutePath(), ReadPackage(reader, pathTable), outerScope, moduleRegistry, lineMap)
 {
 }
Exemplo n.º 35
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(OnCheckingSettings);
     WebsiteAdmin.Instance.OnAdminRequest += new WebsiteAdmin.AdminRequestHandler(OnAdminRequest);
     WebsiteAdmin.Instance.OnCMSAdminAuthenticationSuccess += new InterruptableEventHandler<string>(OnCMSAdminAuthenticationSuccess);
     AjaxFormHandler.Instance.OnValidateField += new AjaxFormFieldValidationHandler(OnValidateField);
     AjaxFormHandler.Instance.OnValidateForm += new AjaxFormSubmissionHandler(OnValidateForm);
     AjaxFormHandler.Instance.OnSaveForm += new AjaxFormSubmissionHandler(OnSaveForm);
     AjaxRequestHandler.Instance.OnAjaxRequestAuthenticationCheck += new InterruptableEventHandler<System.Reflection.MethodInfo>(OnAjaxRequestAuthenticationCheck);
     Pages.PageRequestHandler.Instance.OnRegisteringPlaceHolderRenderers += new Sprocket.Web.CMS.Pages.PageRequestHandler.RegisteringPlaceHolderRenderers(Instance_OnRegisteringPlaceHolderRenderers);
 }
Exemplo n.º 36
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(OnCheckingSettings);
     SecurityProvider.Instance.BeforeFirstClientDataInserted += new SecurityProvider.InitialClientHandler(BeforeFirstClientDataInserted);
     WebsiteAdmin.Instance.OnAdminRequest += new WebsiteAdmin.AdminRequestHandler(OnAdminRequest);
     WebsiteAdmin.Instance.OnCMSAdminAuthenticationSuccess += new InterruptableEventHandler<string>(OnCMSAdminAuthenticationSuccess);
     AjaxFormHandler.Instance.OnValidateField += new AjaxFormFieldValidationHandler(OnValidateField);
     AjaxFormHandler.Instance.OnValidateForm += new AjaxFormSubmissionHandler(OnValidateForm);
     AjaxFormHandler.Instance.OnSaveForm += new AjaxFormSubmissionHandler(OnSaveForm);
     AjaxRequestHandler.Instance.OnAjaxRequestAuthenticationCheck += new InterruptableEventHandler<System.Reflection.MethodInfo>(OnAjaxRequestAuthenticationCheck);
 }
		public void AttachEventHandlers(ModuleRegistry registry)
		{
			SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(OnCheckingSettings);
			WebsiteAdmin.Instance.OnAdminRequest += new WebsiteAdmin.AdminRequestHandler(OnAdminRequest);
			WebsiteAdmin.Instance.OnCMSAdminAuthenticationSuccess += new InterruptableEventHandler<string>(OnCMSAdminAuthenticationSuccess);
			//AdminWindow.Instance.OnBeforeDisplayAdminWindowOverlay += new InterruptableEventHandler(AdminWindow_OnBeforeDisplayAdminWindowOverlay);
			AjaxFormHandler.Instance.OnValidateField += new AjaxFormFieldValidationHandler(OnValidateField);
			AjaxFormHandler.Instance.OnValidateForm += new AjaxFormSubmissionHandler(OnValidateForm);
			AjaxFormHandler.Instance.OnSaveForm += new AjaxFormSubmissionHandler(OnSaveForm);
			AjaxRequestHandler.Instance.OnAjaxRequestAuthenticationCheck += new InterruptableEventHandler<System.Reflection.MethodInfo>(OnAjaxRequestAuthenticationCheck);
			WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
		}
Exemplo n.º 38
0
        public void AttachEventHandlers(ModuleRegistry registry)
        {
            SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(OnCheckingSettings);
            AdminHandler.Instance.OnLoadAdminPage += new AdminHandler.AdminRequestHandler(OnAdminRequest);
            //WebsiteAdmin.Instance.OnCMSAdminAuthenticationSuccess += new InterruptableEventHandler<string>(OnCMSAdminAuthenticationSuccess);
            //AdminWindow.Instance.OnBeforeDisplayAdminWindowOverlay += new InterruptableEventHandler(AdminWindow_OnBeforeDisplayAdminWindowOverlay);
            AjaxFormHandler.Instance.OnValidateField += new AjaxFormFieldValidationHandler(OnValidateField);
            AjaxFormHandler.Instance.OnValidateForm += new AjaxFormSubmissionHandler(OnValidateForm);
            AjaxFormHandler.Instance.OnSaveForm += new AjaxFormSubmissionHandler(OnSaveForm);
            WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
            Core.Instance.OnInitialiseComplete += new EmptyHandler(Core_OnInitialiseComplete);

            if(!SecurityProvider.DisableAuthenticationHooks)
                AjaxRequestHandler.Instance.AjaxAuthenticate = AuthenticateForAjaxRequest;
        }
Exemplo n.º 39
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     DatabaseManager.Instance.OnDatabaseHandlerLoaded += new NotificationEventHandler<IDatabaseHandler>(DatabaseManager_OnDatabaseHandlerLoaded);
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
     SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(Settings_OnCheckingSettings);
 }
Exemplo n.º 40
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     if(registry.IsRegistered("WebClientScripts"))
         WebClientScripts.Instance.OnBeforeRenderJavaScript += new Sprocket.Web.WebClientScripts.BeforeRenderJavaScriptHandler(OnPreRenderJavaScript);
     AjaxRequestHandler.Instance.OnAjaxRequestAuthenticationCheck += new InterruptableEventHandler<System.Reflection.MethodInfo>(Instance_OnAjaxRequestAuthenticationCheck);
     SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(OnCheckingSprocketSettings);
 }
		public void AttachEventHandlers(ModuleRegistry registry)
		{
			DatabaseManager.Instance.OnDatabaseHandlerLoaded += new NotificationEventHandler<IDatabaseHandler>(DatabaseManager_OnDatabaseHandlerLoaded);
			ContentManager.Instance.OnBeforeRenderPage += new ContentManager.BeforeRenderPage(ContentManager_OnBeforeRenderPage);
		}
Exemplo n.º 42
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
     SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(Settings_OnCheckingSettings);
 }
Exemplo n.º 43
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(OnLoadRequestedPath);
 }
Exemplo n.º 44
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents.Instance.OnBeginHttpRequest += new WebEvents.HttpApplicationCancellableEventHandler(OnBeginHttpRequest);
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(OnLoadRequestedPath);
 }
Exemplo n.º 45
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     //WebEvents.Instance.OnBeginHttpRequest += new WebEvents.HttpApplicationCancellableEventHandler(OnBeginHttpRequest);
     WebEvents.Instance.OnEndHttpRequest += new WebEvents.HttpApplicationEventHandler(OnEndHttpRequest);
 }
Exemplo n.º 46
0
 public void Initialise(ModuleRegistry registry)
 {
     Directory.CreateDirectory(WebUtility.MapPath("datastore/filemanager/uploads"));
     Directory.CreateDirectory(WebUtility.MapPath("datastore/filemanager/thumbnails"));
 }
Exemplo n.º 47
0
 public void Initialise(ModuleRegistry registry)
 {
 }
Exemplo n.º 48
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(WebEvents_OnLoadRequestedPath);
     WebEvents.Instance.OnRequestedPathProcessed += new WebEvents.HttpApplicationEventHandler(WebEvents_OnRequestedPathProcessed);
 }
		public void AttachEventHandlers(ModuleRegistry registry)
		{
			DatabaseManager.Instance.OnDatabaseHandlerLoaded += new NotificationEventHandler<IDatabaseHandler>(Database_OnDatabaseHandlerLoaded);
		}
Exemplo n.º 50
0
 /// <summary>
 /// This allows you to hook into events of any other modules. This method is called once when the application thread is
 /// first initialised. This module instance is held alive for the lifetime of the application thread. Remember: Don't use
 /// static variables unless you are prepared to write thread-safe code, or other worker processes may cause thread-related
 /// problems. Remember that each worker process (HttpApplication instance) is only serving one request at a time, so while
 /// being executed, all of its instance members are isolated for the use of that one request.
 /// </summary>
 /// <param name="registry">A quick reference to the modules in the module registry. You can also request a module reference
 /// any time by accessing Core.Instance[typeof(SomeModule)].</param>
 public void AttachEventHandlers(ModuleRegistry registry)
 {
 }
Exemplo n.º 51
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     PageRequestHandler.Instance.OnRegisteringPlaceHolderRenderers += new PageRequestHandler.RegisteringPlaceHolderRenderers(OnRegisteringPlaceHolderRenderers);
 }
Exemplo n.º 52
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     DatabaseManager.Instance.OnDatabaseHandlerLoaded += new NotificationEventHandler<IDatabaseHandler>(Instance_OnDatabaseHandlerLoaded);
     DatabaseSetup.Instance.Completed += new EmptyHandler(DatabaseSetup_Completed);
     WebEvents.Instance.OnBeforeLoadExistingFile += new WebEvents.RequestedPathEventHandler(Instance_OnBeforeLoadExistingFile);
     if (!DisableAuthenticationHooks)
     {
         WebAuthentication.Instance.Authenticate = ValidateLogin;
         WebAuthentication.Instance.VerifyUserAccess = VerifyUserAccess;
     }
 }
Exemplo n.º 53
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     SprocketSettings.Instance.OnSettingsVerified += new EmptyHandler(SprocketSettings_OnSettingsVerified);
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(ContentCache_OnLoadRequestedPath);
 }
Exemplo n.º 54
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     Core.Instance.OnInitialise += new ModuleInitialisationHandler(Core_OnInitialise);
     SystemEvents.Instance.OnRequestShutDown += new EmptyHandler(Instance_OnRequestShutDown);
     WebEvents.Instance.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(Instance_OnLoadRequestedPath);
 }
Exemplo n.º 55
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     if(HttpContext.Current != null)
         HttpContext.Current.ApplicationInstance.PostRequestHandlerExecute += new EventHandler(PostRequestHandlerExecute);
 }
		public void AttachEventHandlers(ModuleRegistry registry)
		{
			if(registry.IsRegistered("WebClientScripts"))
				WebClientScripts.Instance.OnBeforeRenderJavaScript += new Sprocket.Web.WebClientScripts.BeforeRenderJavaScriptHandler(OnPreRenderJavaScript);
			SprocketSettings.Instance.OnCheckingSettings += new SprocketSettings.CheckSettingsHandler(OnCheckingSprocketSettings);
		}
		public void AttachEventHandlers(ModuleRegistry registry)
		{
			WebEvents.Instance.OnBeforeLoadExistingFile += new WebEvents.RequestedPathEventHandler(WebEvents_OnBeforeLoadExistingFile);
		}
Exemplo n.º 58
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     SystemCore.Instance.OnEventsAttached += new EmptyEventHandler(OnEventsAttached);
 }
Exemplo n.º 59
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents wem = WebEvents.Instance;
     wem.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(OnLoadRequestedPath);
     OnAdminRequest += new AdminRequestHandler(WebsiteAdmin_OnAdminRequest);
 }
Exemplo n.º 60
0
 public void AttachEventHandlers(ModuleRegistry registry)
 {
     WebEvents w = (WebEvents)SystemCore.Instance["WebEvents"];
     w.OnLoadRequestedPath += new WebEvents.RequestedPathEventHandler(OnLoadRequestedPath);
 }