public Broker(string metadataDir = null, IRegistryProvider registryProvider = null) { _workingDir = Directory.GetCurrentDirectory(); var binDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var studioDir = Path.Combine(binDir, "studio"); Log.Info("Studio dir: {0}", studioDir); metadataDir = Path.GetFullPath(metadataDir ?? Path.Combine(_workingDir, "metadata")); Log.Info("Metadata dir: {0}", metadataDir); var metadataFile = Path.Combine(metadataDir, "interop.json"); _transportServers = new[] { TransportServerFactory.Instance.Create( PipeTransmissionServerFactory.Instance.Create(_workingDir), DefaultTransportSerializationProvider), TransportServerFactory.Instance.Create( WebSocketTransmissionServerFactory.Instance.Create( _workingDir, new Dictionary <string, string> { { "/metadata/interop", metadataFile }, { "/studio", studioDir } }), DefaultTransportSerializationProvider) }; _connectionListener = new ServerConnectionListener(_transportServers); registryProvider = registryProvider ?? JsonRegistryProvider.Initialize(Path.Combine(metadataDir, "interop.json")); _appLifecycleManager = AppLifecycleManagerFactory.Instance.Create(metadataDir); _brokerProcessor = BrokerProcessorFactory.Instance.Create( _connectionListener.In, registryProvider, DefaultProtocolSerializationProvider, _appLifecycleManager); OnStop(_connectionListener.Stop); }
public Context(IAppLifecycleManager appLifecycleManager, string kind, UniqueId ownerAppInstanceId) { _appLifecycleManager = appLifecycleManager; Kind = string.IsNullOrEmpty(kind) ? Guid.NewGuid().ToString() : kind; OwnerAppInstanceId = ownerAppInstanceId; }
public DiscoveryRequestHandler( IAppLifecycleManager connectionTracker, IProtocolImplementation protocol, IRegistryService registryService) { _connectionTracker = connectionTracker; _protocol = protocol; _registryService = registryService; }
public ContextLinkageServiceImpl(IRegistryProvider appRegistryProvider, IAppLifecycleManager appLifecycleManager, IAppLaunchedEventProvider appLaunchedEventProvider) { _appRegistryProvider = appRegistryProvider; _appLifecycleManager = appLifecycleManager; _contextsSet = new ContextsSet(appLifecycleManager); appLaunchedEventProvider.AppLaunchedStream.Subscribe(OnAppLaunched); appLifecycleManager.ConnectionEventsStream.Subscribe(OnAppConnectedOrDisconnected); }
public AppLaunchedEventSubscriber(IAppLifecycleManager appConnectedEventProvider, IRegistryProvider registryProvider, IAppLaunchedEventConsumer appLaunchedEventConsumer, Lazy <IClient> client) { _registryProvider = registryProvider; _appLaunchedEventConsumer = appLaunchedEventConsumer; _client = client; appConnectedEventProvider.ConnectionEventsStream .Where(ev => ev.Type == ConnectionEventType.AppConnected) .Select(ev => ev.Connection) .Subscribe(OnAppConnected); }
public BrokerRunner(string metadataDir = null, IRegistryProvider registryProvider = null) { _workingDir = Path.GetFullPath(Directory.GetCurrentDirectory()); metadataDir = metadataDir ?? _workingDir; _registryProvider = registryProvider ?? JsonRegistryProvider.Initialize(Path.Combine(metadataDir, "interop.json")); _instanceSemaphore = new Semaphore(1, 1, $"Global{Path.DirectorySeparatorChar}plexus-interop-broker-semaphore-{_workingDir.Replace(Path.DirectorySeparatorChar, ':')}"); _transportServer = new CompositeTransportServer(new[] { CreateNamedPipeServer(), CreateWebSocketServer() }); _appLifecycleManager = new AppLifecycleManager(metadataDir, _workingDir); }
public AuthenticationHandler( IAppLifecycleManager connectionTracker, IProtocolImplementation protocol, IRegistryService registryService) { _messageFactory = protocol.MessageFactory; _serializer = protocol.Serializer; _connectionTracker = connectionTracker; _registryService = registryService; }
public DiscoveryRequestHandler( IAppLifecycleManager appLifecycleManager, IProtocolImplementation protocol, IRegistryService registryService, IContextLinkageManager contextLinkageManager) { _appLifecycleManager = appLifecycleManager; _protocol = protocol; _registryService = registryService; _contextLinkageManager = contextLinkageManager; }
public InvocationRequestHandler( IAppLifecycleManager appLifecycleManager, IProtocolImplementation protocol, IRegistryService registryService) { _appLifecycleManager = appLifecycleManager; _protocolMessageFactory = protocol.MessageFactory; _protocolSerializer = protocol.Serializer; _registryService = registryService; _createRequestHandler = new InvocationTargetHandler <IInvocationStartRequested, IAppConnection>(CreateInvocationTarget, CreateInvocationTarget); _resolveTargetConnectionHandler = new InvocationTargetHandler <ValueTask <IAppConnection>, IAppConnection>(ResolveTargetConnectionAsync, ResolveTargetConnectionAsync); }
public IBrokerProcessor Create( IReadableChannel <ITransportConnection> incomingConnections, IRegistryProvider registryProvider, IProtocolSerializerFactory protocolSerializerFactory, IAppLifecycleManager appLifecycleManager) { return(new BrokerProcessor( incomingConnections, registryProvider, protocolSerializerFactory, appLifecycleManager)); }
private async Task InitializeAppAsync(LaunchActivatedEventArgs e) { _log = Startup.ServiceProvider.GetService <ILogger>(); _lifecycleManager = Startup.ServiceProvider.GetService <IAppLifecycleManager>(); if (await _lifecycleManager.IsFirstRun()) { await _lifecycleManager.InitializeAppForFirstRun(); } InitializeShell(e); }
public BrokerProcessor( IReadableChannel <ITransportConnection> incomingConnections, IRegistryProvider registryProvider, IProtocolSerializerFactory serializerFactory, IAppLifecycleManager connectionTracker) { _incomingConnections = incomingConnections; var registryService = new RegistryService(registryProvider); var protocol = new ProtocolImplementation(DefaultProtocolMessageFactory, serializerFactory); _authenticationHandler = new AuthenticationHandler(connectionTracker, protocol, registryService); _clientRequestHandler = new ClientRequestHandler(connectionTracker, protocol, registryService); }
public BrokerProcessor( IReadableChannel <ITransportConnection> incomingConnections, IProtocolSerializerFactory serializerFactory, IInteropContext interopContext) { _incomingConnections = incomingConnections; var registryService = new RegistryService(interopContext.RegistryProvider); var protocol = new ProtocolImplementation(DefaultProtocolMessageFactory, serializerFactory); _appLifecycleManager = interopContext.AppLifecycleManager; _authenticationHandler = new AuthenticationHandler(interopContext.AppLifecycleManager, protocol, registryService); _clientRequestHandler = new ClientRequestHandler(interopContext.AppLifecycleManager, protocol, registryService, interopContext.InvocationEventProvider, interopContext.ContextLinkageManager); }
private async Task InitializeAppAsync(LaunchActivatedEventArgs e) { var ioc = new IocBootstrapper(); _log = ServiceLocator.Current.GetInstance <ILogger>(); _lifecycleManager = ServiceLocator.Current.GetInstance <IAppLifecycleManager>(); if (await _lifecycleManager.IsFirstRun()) { await _lifecycleManager.InitializeAppForFirstRun(); } InitializeShell(e); }
public AppLaunchedEventSubscriber( IAppLifecycleManager appConnectedEventProvider, IRegistryProvider registryProvider, IAppLaunchedEventConsumer appLaunchedEventConsumer, IAppLifecycleManagerClientClientRepository lifecycleManagerClientRepo) { _registryProvider = registryProvider; _appLaunchedEventConsumer = appLaunchedEventConsumer; _lifecycleManagerClientRepo = lifecycleManagerClientRepo; appConnectedEventProvider.ConnectionEventsStream .Where(ev => ev.Type == ConnectionEventType.AppConnected) .Select(ev => ev.Connection) .Subscribe(OnAppConnected); }
public BrokerProcessor( IReadableChannel <ITransportConnection> incomingConnections, IRegistryProvider registryProvider, IProtocolSerializerFactory serializerFactory, IAppLifecycleManager appLifecycleManager = null) { _incomingConnections = incomingConnections; var registryService = new RegistryService(registryProvider); var protocol = new ProtocolImplementation(DefaultProtocolMessageFactory, serializerFactory); _appLifecycleManager = appLifecycleManager ?? new NoopAppLifecycleManager(); var connectionTracker = new ClientConnectionTracker(_appLifecycleManager); _authenticationHandler = new AuthenticationHandler(connectionTracker, protocol, registryService); _clientRequestHandler = new ClientRequestHandler(connectionTracker, protocol, registryService); Completion = TaskRunner.RunInBackground(ProcessAsync); }
public InvocationRequestHandler( IAppLifecycleManager appLifecycleManager, IProtocolImplementation protocol, IRegistryService registryService, IInvocationEventProvider invocationEventProvider, IContextLinkageManager contextLinkageManager) { _appLifecycleManager = appLifecycleManager; _protocolMessageFactory = protocol.MessageFactory; _protocolSerializer = protocol.Serializer; _registryService = registryService; _invocationEventProvider = invocationEventProvider; _contextLinkageManager = contextLinkageManager; _createRequestHandler = new InvocationTargetHandler <IInvocationStartRequested, IAppConnection>(CreateInvocationTarget, CreateInvocationTarget); _resolveTargetConnectionHandler = new InvocationTargetHandler <ValueTask <IAppConnection>, IAppConnection, IContextLinkageOptions>(ResolveTargetConnectionAsync, ResolveTargetConnectionAsync); _stopwatch.Start(); }
public AppLifecycleServiceImpl(IAppLifecycleManager appLifecycleManager) { _appLifecycleManager = appLifecycleManager; _appLifecycleManager.ConnectionEventsStream.Subscribe(BroadcastConnectionEvents); }
public Context(IAppLifecycleManager appLifecycleManager) { _appLifecycleManager = appLifecycleManager; AppContextBindings = _bindingSubject; ContextUpdatedEventStream = _contextUpdatedSubject; }
public ContextsSet(IAppLifecycleManager appLifecycleManager) { _appLifecycleManager = appLifecycleManager; AppContextBindingEvents = _appContextBindingSubject.ObserveOn(TaskPoolScheduler.Default); }
public AppRegistrationServiceImpl(IAppLifecycleManager appLifecycleManager) { _appLifecycleManager = appLifecycleManager; }