Esempio n. 1
0
        public void Install(DistributedConfiguration distributedConfiguration, string loggerConfiguration)
        {
            RegisterLogging(loggerConfiguration);

            if (distributedConfiguration == null)
            {
                // use nomad specific installer for that
                _windsorContainer.Install(
                    new NomadEventAggregatorInstaller(),
                    new NomadServiceLocatorInstaller(),
                    new ModuleLoaderInstaller()
                    );
            }
            else
            {
                // use nomad specific installer for that
                _windsorContainer.Install(
                    new NomadDistributedDeliverySubsystemsInstaller(distributedConfiguration),
                    new NomadDistributedEventAggregatorInstaller(),
                    new NomadServiceLocatorInstaller(),
                    new ModuleLoaderInstaller()
                    );

                // TODO: make registering resolver with container later
                var dea =
                    (DistributedEventAggregator)
                    _windsorContainer.Resolve <IEventAggregator>(NomadDistributedEventAggregatorInstaller.ON_SITE_NAME);

                _resolver = new ResolverFactory(distributedConfiguration);
                dea.RemoteDistributedEventAggregator = _resolver.Resolve();

                // run service
                RegisterServiceHostDEA(distributedConfiguration);
            }
        }
Esempio n. 2
0
 private void RegisterServiceHostDEA(DistributedConfiguration distributedConfiguration)
 {
     _distributedEventAggregatorServiceHost = new DIServiceHost(typeof(DistributedEventAggregator), _windsorContainer);
     _distributedEventAggregatorServiceHost.AddServiceEndpoint
     (
         typeof(IDistributedEventAggregator),
         new NetTcpBinding(),
         distributedConfiguration.LocalURI
     );
     _distributedEventAggregatorServiceHost.Open();
 }
Esempio n. 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);
        }
Esempio n. 4
0
 public NomadDistributedDeliverySubsystemsInstaller(DistributedConfiguration distributedConfiguration)
 {
     _distributedConfiguration = distributedConfiguration;
 }
Esempio n. 5
0
 public SimpleResolver(DistributedConfiguration distributedConfiguration)
 {
     DistributedConfiguration = distributedConfiguration;
 }
Esempio n. 6
0
 public SimpleResolver(DistributedConfiguration distributedConfiguration)
 {
     DistributedConfiguration = distributedConfiguration;
 }
Esempio n. 7
0
 public ResolverFactory(DistributedConfiguration configuration)
 {
     _configuration  = configuration;
     _simpleResolver = new SimpleResolver(configuration);
 }
Esempio n. 8
0
 public ResolverFactory(DistributedConfiguration configuration)
 {
     _configuration = configuration;
     _simpleResolver = new SimpleResolver(configuration);
 }
 public NomadDistributedDeliverySubsystemsInstaller(DistributedConfiguration distributedConfiguration)
 {
     _distributedConfiguration = distributedConfiguration;
 }