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); } }
private void RegisterServiceHostDEA(DistributedConfiguration distributedConfiguration) { _distributedEventAggregatorServiceHost = new DIServiceHost(typeof(DistributedEventAggregator), _windsorContainer); _distributedEventAggregatorServiceHost.AddServiceEndpoint ( typeof(IDistributedEventAggregator), new NetTcpBinding(), distributedConfiguration.LocalURI ); _distributedEventAggregatorServiceHost.Open(); }
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); }
public NomadDistributedDeliverySubsystemsInstaller(DistributedConfiguration distributedConfiguration) { _distributedConfiguration = distributedConfiguration; }
public SimpleResolver(DistributedConfiguration distributedConfiguration) { DistributedConfiguration = distributedConfiguration; }
public ResolverFactory(DistributedConfiguration configuration) { _configuration = configuration; _simpleResolver = new SimpleResolver(configuration); }