public static void Go() { // SAMPLE: Bootstrapping-Basic using (var host = JasperHost.Basic()) { // do stuff } // ENDSAMPLE // SAMPLE: Bootstrapping-Basic2 using (var host = JasperHost.CreateDefaultBuilder() .UseJasper() .StartJasper()) { // do stuff } // ENDSAMPLE // SAMPLE: Bootstrapping-Basic3 using (var runtime = JasperHost.For(_ => { _.Transports.ListenForMessagesFrom("tcp://localhost:2001"); })) { // do stuff } // ENDSAMPLE }
public FastModeRoutingBenchmark() { var builder = new WebHostBuilder() .ConfigureLogging(x => { x.ClearProviders(); }) .UseJasper(x => x.HttpRoutes.AspNetCoreCompliance = ComplianceMode.GoFaster) .Configure(app => app.UseJasper()); _system = new SystemUnderTest(builder); var graph = _system.Services.GetRequiredService <RouteGraph>(); _routes = graph .Select(x => x.Action.HandlerType) .Where(x => x.IsConcreteWithDefaultCtor()) .Distinct() .Select(Activator.CreateInstance) .OfType <IHasUrls>() .SelectMany(x => x.Urls().Select(url => new TestRoute(x.Method, url))) .ToArray(); var aspnetBuilder = AspNetCorePerfTarget.Program.CreateWebHostBuilder(new string[0]) .UseStartup <AspNetCorePerfTarget.Startup>(); _aspnetSystem = new SystemUnderTest(aspnetBuilder); var hybridBuilder = JasperHost.CreateDefaultBuilder().UseJasper <HybridRegistry>(); _hybridSystem = new SystemUnderTest(hybridBuilder); }
/// <summary> /// Helper to quickly attach Alba scenario tests to a Jasper application /// </summary> /// <param name="registry"></param> /// <returns></returns> public static SystemUnderTest For(JasperRegistry registry) { var builder = JasperHost.CreateDefaultBuilder().UseJasper(registry); var system = new SystemUnderTest(builder, registry.ApplicationAssembly); system.As <ISystemUnderTest>().Urls = new JasperUrlLookup(system.Services.GetRequiredService <IUrlRegistry>()); return(system); }
public IntegrationFixture() { // Bootstrap your application with a few overrides to // configuration, and slightly modify the Jasper configuration Host = JasperHost.CreateDefaultBuilder() .OverrideConfigValue("outgoing", "stub://outgoing") .OverrideConfigValue("incoming", "stub://incoming") .UseJasper <MyJasperApp>() // This gives you an IJasperHost, but this works as well with an // IWebHost as well .StartJasper(); }
public void can_generate_code() { var input = new CodeInput(); var registry = new JasperRegistry(); registry.Handlers.DisableConventionalDiscovery(); registry.Handlers.IncludeType <MessageConsumer>(); input.WebHostBuilder = JasperHost.CreateDefaultBuilder().UseJasper(registry); var cmd = new CodeCommand(); cmd.Execute(input); }
public void read_settings_from_json() { var builder = JasperHost.CreateDefaultBuilder() .ConfigureAppConfiguration((context, config) => config.AddJsonFile("messaging.json")) .UseJasper(); using (var runtime = builder.StartJasper()) { var settings = runtime.Get <JasperOptions>(); // See the messaging.json file settings.DisableAllTransports.ShouldBeTrue(); settings.ScheduledJobs.PollingTime.ShouldBe(10.Seconds()); settings.Listeners.Contains("tcp://localhost:2000".ToUri()).ShouldBeTrue(); settings.Subscriptions.Contains(Subscription.All("tcp://localhost:2002".ToUri())).ShouldBeTrue(); } }
public void pass_the_environment_flag() { var registry = new JasperRegistry(); registry.Handlers.DisableConventionalDiscovery(); registry.HttpRoutes.DisableConventionalDiscovery(); var input = new JasperInput { WebHostBuilder = JasperHost.CreateDefaultBuilder().UseJasper(registry), EnvironmentFlag = "Fake" }; using (var runtime = input.BuildHost(StartMode.Lightweight)) { runtime.Get <IHostingEnvironment>() .EnvironmentName.ShouldBe("Fake"); } }
public override void SetUp() { _envelopes.Clear(); _nodeLockers.Clear(); _workers = new RecordingWorkerQueue(); _host = JasperHost.CreateDefaultBuilder() .UseJasper(_ => { _.ServiceName = Guid.NewGuid().ToString(); _.MartenConnectionStringIs(Servers.PostgresConnectionString); _.Services.AddSingleton <IWorkerQueue>(_workers); _.Include <MartenBackedPersistence>(); _.Settings.Alter <JasperOptions>(x => { x.Retries.FirstNodeReassignmentExecution = 30.Minutes(); x.ScheduledJobs.FirstExecution = 30.Minutes(); x.Retries.FirstNodeReassignmentExecution = 30.Minutes(); x.Retries.NodeReassignmentPollingTime = 30.Minutes(); }); }) .StartJasper(); _admin = _host.Get <IEnvelopePersistence>().Admin; _admin.RebuildSchemaObjects(); _settings = _host.Get <PostgresqlSettings>(); _serializers = _host.Get <MessagingSerializationGraph>(); theStore = _host.Get <IDocumentStore>(); theStore.Advanced.Clean.DeleteAllDocuments(); _currentNodeId = _host.Get <JasperOptions>().UniqueNodeId; _owners["This Node"] = _currentNodeId; }
public void set_up_verbose_logging() { var registry = new JasperRegistry(); registry.Handlers.DisableConventionalDiscovery(); registry.HttpRoutes.DisableConventionalDiscovery(); var input = new JasperInput { WebHostBuilder = JasperHost.CreateDefaultBuilder().UseJasper(registry), VerboseFlag = true }; using (var runtime = input.BuildHost(StartMode.Lightweight)) { var providers = runtime.Container.GetAllInstances <ILoggerProvider>(); providers.OfType <ConsoleLoggerProvider>().Any().ShouldBeTrue(); providers.OfType <DebugLoggerProvider>().Any().ShouldBeTrue(); } }
public async Task will_still_apply_middleware() { var runtime = JasperHost.CreateDefaultBuilder() .Configure(app => { app.Run(c => c.Response.WriteAsync("Hello")); }) .UseJasper(_ => _.Http(opts => opts.DisableConventionalDiscovery())) .ToAlbaSystem(); try { await runtime.Scenario(s => { s.Get.Url("/"); s.ContentShouldBe("Hello"); }); } finally { runtime.Dispose(); } }
public override void SetUp() { var admin = new PostgresqlEnvelopeStorageAdmin(new PostgresqlSettings { ConnectionString = Servers.PostgresConnectionString }); admin.RecreateAll(); var registry = new ScheduledMessageApp(); theReceiver = registry.Receiver; var logger = new StorytellerAspNetCoreLogger(); Context.Reporting.Log(logger); theHost = JasperHost .CreateDefaultBuilder() .ConfigureLogging(x => x.AddProvider(logger)) .UseJasper(registry) .StartJasper(); }
public void with_aspnet_core() { var builder = JasperHost.CreateDefaultBuilder() .ConfigureAppConfiguration(config => { config.SetBasePath(Directory.GetCurrentDirectory()); config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: false); }) .UseJasper(); var host = builder.Build(); var services = host.Services; var options = services.GetService <IOptions <LoggerFilterOptions> >(); var logging = options.Value; var logger = services.GetRequiredService <ILogger <Thing> >(); logger.ShouldNotBeNull(); }
public override void SetUp() { _messageLogger = new StorytellerMessageLogger(new MessageHistory(), new LoggerFactory(), new NulloMetrics()); _messageLogger.Start(Context); _senderWatcher = new SenderLatchDetected(new LoggerFactory()); _receiverStore = DocumentStore.For(_ => { _.PLV8Enabled = false; _.Connection(Servers.PostgresConnectionString); _.DatabaseSchemaName = "receiver"; _.Schema.For <TraceDoc>(); }); _receiverStore.Advanced.Clean.CompletelyRemoveAll(); _receiverStore.Schema.ApplyAllConfiguredChangesToDatabase(); _sendingStore = DocumentStore.For(_ => { _.PLV8Enabled = false; _.Connection(Servers.PostgresConnectionString); _.DatabaseSchemaName = "sender"; }); new PostgresqlEnvelopeStorageAdmin(new PostgresqlSettings { ConnectionString = Servers.PostgresConnectionString, SchemaName = "receiver" }).RecreateAll(); new PostgresqlEnvelopeStorageAdmin(new PostgresqlSettings { ConnectionString = Servers.PostgresConnectionString, SchemaName = "sender" }).RecreateAll(); _sendingStore.Advanced.Clean.CompletelyRemoveAll(); _sendingStore.Schema.ApplyAllConfiguredChangesToDatabase(); _receivers = new LightweightCache <string, IJasperHost>(key => { var registry = new ReceiverApp(); registry.Services.AddSingleton <IMessageLogger>(_messageLogger); var logger = new StorytellerAspNetCoreLogger(key); // Tell Storyteller about the new logger so that it'll be // rendered as part of Storyteller's results Context.Reporting.Log(logger); // This is bootstrapping a Jasper application through the // normal ASP.Net Core IWebHostBuilder return(JasperHost .CreateDefaultBuilder() .ConfigureLogging(x => { x.SetMinimumLevel(LogLevel.Debug); x.AddDebug(); x.AddConsole(); // Add the logger to the new Jasper app // being built up x.AddProvider(logger); }) .UseJasper(registry) .StartJasper()); }); _senders = new LightweightCache <string, IJasperHost>(key => { var logger = new StorytellerAspNetCoreLogger(key); // Tell Storyteller about the new logger so that it'll be // rendered as part of Storyteller's results Context.Reporting.Log(logger); var registry = new SenderApp(); registry.Services.AddSingleton <IMessageLogger>(_messageLogger); registry.Services.For <ITransportLogger>().Use(_senderWatcher); return(JasperHost.CreateDefaultBuilder() .ConfigureLogging(x => { x.SetMinimumLevel(LogLevel.Debug); x.AddDebug(); x.AddConsole(); // Add the logger to the new Jasper app // being built up x.AddProvider(logger); }) .UseJasper(registry) .StartJasper()); }); }