public void Start(EngineMode mode, Project project, MarshalByRefObject remoteListener) { Project.CurrentProject = project; EventAggregator.Start((IRemoteListener)remoteListener); _project = project; Type systemType = null; try { systemType = _project.DetermineSystemType(); _system = Activator.CreateInstance(systemType).As <ISystem>(); _services.Add(_system); var timeZone = new MachineTimeZoneContext(); var clock = new Clock(); var systemTime = new SystemTime(clock, timeZone); _specExpiration = new SpecExpiration(systemTime); if (mode == EngineMode.Interactive) { _engine = buildUserInterfaceEngine(); } else { _engine = buildBatchedEngine(project.TracingStyle); } _engine.Start(project.StopConditions); } catch (Exception e) { var message = new SystemRecycled { error = e.ToString(), success = false, }; if (systemType != null) { message.system_name = systemType.AssemblyQualifiedName; } EventAggregator.SendMessage(message); } AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; AppDomain.CurrentDomain.DomainUnload += CurrentDomainOnDomainUnload; }
public SystemRecycled CloneWithOverriddenFixtures(FixtureModel[] fixtureArray) { var clone = new SystemRecycled { error = error, success = success, system_full_name = system_full_name, time = time, name = name, system_name = system_name, fixtures = fixtureArray }; return(clone); }
public SystemRecycled CloneWithOverriddenFixtures(FixtureModel[] fixtureArray) { var clone = new SystemRecycled { error = error, success = success, system_full_name = system_full_name, time = time, name = name, system_name = system_name, properties = properties, fixtures = fixtureArray }; return clone; }
public static SystemRecycled Initialize(this ISystem system, Action<FixtureLibrary> onStarted) { CellHandling cellHandling = null; try { cellHandling = system.Start(); } catch (Exception ex) { ConsoleWriter.Write(ConsoleColor.Red, ex.ToString()); var message = new SystemRecycled { success = false, fixtures = new FixtureModel[0], system_name = system.ToString(), system_full_name = system.GetType().FullName, name = Path.GetFileName(AppContext.BaseDirectory), error = ex.ToString() }; return message; } var library = FixtureLibrary.CreateForAppDomain(cellHandling); onStarted(library); return new SystemRecycled { success = true, fixtures = library.Models.GetAll().ToArray(), system_name = system.ToString(), name = Path.GetFileName(AppContext.BaseDirectory) }; }
public void RecordSystemFixtures(SystemRecycled recycled) { _systemFixtures = FixtureLibrary.From(recycled.fixtures); }
private SystemRecycled tryToStart() { CellHandling cellHandling = null; try { cellHandling = _system.Start(); } catch (Exception ex) { var message = new SystemRecycled { success = false, fixtures = new FixtureModel[0], system_name = _system.ToString(), system_full_name = _system.GetType().FullName, name = Path.GetFileName(AppDomain.CurrentDomain.BaseDirectory), error = ex.ToString() }; return message; } var library = FixtureLibrary.CreateForAppDomain(cellHandling); startTheConsumingQueues(library); return new SystemRecycled { success = true, fixtures = library.Models.GetAll().ToArray(), system_name = _system.ToString(), name = Path.GetFileName(AppDomain.CurrentDomain.BaseDirectory) }; }
public void Start(EngineMode mode, Project project, MarshalByRefObject remoteListener) { Project.CurrentProject = project; EventAggregator.Start((IRemoteListener) remoteListener); _project = project; Type systemType = null; try { systemType = _project.DetermineSystemType(); _system = Activator.CreateInstance(systemType).As<ISystem>(); _services.Add(_system); var timeZone = new MachineTimeZoneContext(); var clock = new Clock(); var systemTime = new SystemTime(clock, timeZone); _specExpiration = new SpecExpiration(systemTime); if (mode == EngineMode.Interactive) { _engine = buildUserInterfaceEngine(); } else { _engine = buildBatchedEngine(project.TracingStyle); } _engine.Start(project.StopConditions); } catch (Exception e) { var message = new SystemRecycled { error = e.ToString(), success = false, }; if (systemType != null) { message.system_name = systemType.AssemblyQualifiedName; } EventAggregator.SendMessage(message); } AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; AppDomain.CurrentDomain.DomainUnload += CurrentDomainOnDomainUnload; }
public void Start(Project project) { if (_system != null) { Console.WriteLine($"AGENT: Trying to start specification runner for {_system.GetType().Name} at {project.ProjectPath} and port {project.Port}"); } Project.CurrentProject = project; _project = project; Type systemType = null; try { if (_system == null) { systemType = _project.DetermineSystemType(); _system = Activator.CreateInstance(systemType).As<ISystem>(); _disposables.Add(_system); } if (project.Mode == EngineMode.ExportOnly) { var recycled = _system.Initialize(lib => { }); EventAggregator.SendMessage(recycled); return; } _engine = project.Mode == EngineMode.Interactive ? buildUserInterfaceEngine() : buildBatchedEngine(project.TracingStyle); _engine.Start(project.StopConditions); ConsoleWriter.Write("AGENT: Specification running engine ready at " + project.ProjectPath); } catch (Exception e) { ConsoleWriter.Write(ConsoleColor.Red, e.ToString()); var message = new SystemRecycled { error = e.ToString(), success = false, }; if (systemType != null) { message.system_name = systemType.AssemblyQualifiedName; } EventAggregator.SendMessage(message); } }
public InitialModel(SystemRecycled recycled, HierarchyLoaded hierarchy) : base("initial-model") { Recycled = recycled; Hierarchy = hierarchy; }