Example #1
0
        private void RegisterCoreServices()
        {
            switch (KernelConfiguration.DefaultSecurityChanged)
            {
            case false:
            {
                ModuleAppDomain = AppDomain.CreateDomain("Modules AppDomain",
                                                         new Evidence(
                                                             AppDomain.CurrentDomain.
                                                             Evidence),
                                                         AppDomain.CurrentDomain.
                                                         BaseDirectory,
                                                         AppDomain.CurrentDomain.
                                                         BaseDirectory,
                                                         true);
                break;
            }

            case true:
            {
                AppDomainSetup appDomainSetup = new AppDomainSetup
                {
                    ApplicationBase = AppDomain.CurrentDomain.BaseDirectory,
                };
                ModuleAppDomain = AppDomain.CreateDomain(
                    "Sandboxed Modules AppDomain",
                    new Evidence(AppDomain.CurrentDomain.Evidence),
                    appDomainSetup,
                    KernelConfiguration.ModulesDomainPermissions,
                    KernelConfiguration.FullTrustAssembliesSet.ToArray()
                    );
                break;
            }
            }


            // create kernel version of the event aggregator4
            var siteEventAggregator = new EventAggregator(new NullGuiThreadProvider());

            // use container creator to create communication services on modules app domain
            string asmName  = typeof(ContainerCreator).Assembly.FullName;
            string typeName = typeof(ContainerCreator).FullName;

            var moduleLoaderCreator = (ContainerCreator)
                                      ModuleAppDomain.CreateInstanceAndUnwrap(asmName, typeName);

            // create facade for event aggregator combining proxy and on site object
            EventAggregator = new ForwardingEventAggregator(moduleLoaderCreator.EventAggregatorOnModulesDomain,
                                                            siteEventAggregator);

            // used proxied service locator
            ServiceLocator = moduleLoaderCreator.ServiceLocator;

            ModuleLoader = moduleLoaderCreator.CreateModuleLoaderInstance();

            _moduleManager = new ModuleManager(ModuleLoader,
                                               KernelConfiguration.ModuleFilter,
                                               KernelConfiguration.DependencyChecker);
        }
Example #2
0
        private void RegisterCoreServices(NomadConfiguration nomadConfiguration)
        {
            ModuleAppDomain = AppDomain.CreateDomain("Modules AppDomain",
                                                     new Evidence(AppDomain.CurrentDomain.Evidence),
                                                     AppDomain.CurrentDomain.BaseDirectory,
                                                     AppDomain.CurrentDomain.BaseDirectory,
                                                     true);

            // create kernel version of the event aggregator4
            var siteEventAggregator = new EventAggregator(new NullGuiThreadProvider());

            // use container creator to create communication services on modules app domain
            string asmName  = typeof(ContainerCreator).Assembly.FullName;
            string typeName = typeof(ContainerCreator).FullName;

            if (typeName != null)
            {
                _moduleLoaderCreator = (ContainerCreator)
                                       ModuleAppDomain.CreateInstanceAndUnwrap(asmName, typeName);

                DistributedConfiguration distributedConfiguration = nomadConfiguration.DistributedConfiguration;
                String loggerConfiguration = KernelConfiguration.ModulesLoggerConfigurationFilePath;
                _moduleLoaderCreator.Install(distributedConfiguration, loggerConfiguration);

                // create facade for event aggregator combining proxy and on site object
                EventAggregator = new ForwardingEventAggregator(_moduleLoaderCreator.EventAggregatorOnModulesDomain,
                                                                siteEventAggregator);

                // used proxied service locator
                ServiceLocator = _moduleLoaderCreator.ServiceLocator;

                ModuleLoader = _moduleLoaderCreator.CreateModuleLoaderInstance();
            }

            _moduleManager = new ModuleManager(ModuleLoader,
                                               KernelConfiguration.ModuleFilter,
                                               KernelConfiguration.DependencyChecker);
        }
Example #3
0
        private void RegisterCoreServices(NomadConfiguration nomadConfiguration)
        {
            ModuleAppDomain = AppDomain.CreateDomain("Modules AppDomain",
                                                     new Evidence(AppDomain.CurrentDomain.Evidence),
                                                     AppDomain.CurrentDomain.BaseDirectory,
                                                     AppDomain.CurrentDomain.BaseDirectory,
                                                     true);

            // create kernel version of the event aggregator4
            var siteEventAggregator = new EventAggregator(new NullGuiThreadProvider());

            // use container creator to create communication services on modules app domain
            string asmName = typeof (ContainerCreator).Assembly.FullName;
            string typeName = typeof (ContainerCreator).FullName;

            if (typeName != null)
            {
                _moduleLoaderCreator = (ContainerCreator)
                                       ModuleAppDomain.CreateInstanceAndUnwrap(asmName, typeName);

                DistributedConfiguration distributedConfiguration = nomadConfiguration.DistributedConfiguration;
                String loggerConfiguration = KernelConfiguration.ModulesLoggerConfigurationFilePath;
                _moduleLoaderCreator.Install(distributedConfiguration, loggerConfiguration);

                // create facade for event aggregator combining proxy and on site object
                EventAggregator = new ForwardingEventAggregator(_moduleLoaderCreator.EventAggregatorOnModulesDomain,
                                                                siteEventAggregator);

                // used proxied service locator
                ServiceLocator = _moduleLoaderCreator.ServiceLocator;

                ModuleLoader = _moduleLoaderCreator.CreateModuleLoaderInstance();
            }

            _moduleManager = new ModuleManager(ModuleLoader,
                                               KernelConfiguration.ModuleFilter,
                                               KernelConfiguration.DependencyChecker);
        }
Example #4
0
        private void RegisterCoreServices()
        {
            switch (KernelConfiguration.DefaultSecurityChanged)
            {
                case false:
                    {
                        ModuleAppDomain = AppDomain.CreateDomain("Modules AppDomain",
                                                                 new Evidence(
                                                                     AppDomain.CurrentDomain.
                                                                         Evidence),
                                                                 AppDomain.CurrentDomain.
                                                                     BaseDirectory,
                                                                 AppDomain.CurrentDomain.
                                                                     BaseDirectory,
                                                                 true);
                        break;
                    }
                case true:
                    {
                        AppDomainSetup appDomainSetup = new AppDomainSetup
                                                            {
                                                                ApplicationBase = AppDomain.CurrentDomain.BaseDirectory,
                                                            };
                        ModuleAppDomain = AppDomain.CreateDomain(
                            "Sandboxed Modules AppDomain",
                            new Evidence(AppDomain.CurrentDomain.Evidence),
                            appDomainSetup,
                            KernelConfiguration.ModulesDomainPermissions,
                            KernelConfiguration.FullTrustAssembliesSet.ToArray()
                            );
                        break;
                    }
            }

            // create kernel version of the event aggregator4
            var siteEventAggregator = new EventAggregator(new NullGuiThreadProvider());

            // use container creator to create communication services on modules app domain
            string asmName = typeof (ContainerCreator).Assembly.FullName;
            string typeName = typeof (ContainerCreator).FullName;

            var moduleLoaderCreator = (ContainerCreator)
                                      ModuleAppDomain.CreateInstanceAndUnwrap(asmName, typeName);

            // create facade for event aggregator combining proxy and on site object
            EventAggregator = new ForwardingEventAggregator(moduleLoaderCreator.EventAggregatorOnModulesDomain,
                                          siteEventAggregator);

            // used proxied service locator
            ServiceLocator = moduleLoaderCreator.ServiceLocator;

            ModuleLoader = moduleLoaderCreator.CreateModuleLoaderInstance();

            _moduleManager = new ModuleManager(ModuleLoader,
                                               KernelConfiguration.ModuleFilter,
                                               KernelConfiguration.DependencyChecker);
        }