Skip to content

Commit

Permalink
Update NServiceBus.Extensions.Hosting to 3.0.0-alpha.3 (#426)
Browse files Browse the repository at this point in the history
  • Loading branch information
bording authored Dec 21, 2023
1 parent ecede9a commit 890ee51
Show file tree
Hide file tree
Showing 23 changed files with 483 additions and 549 deletions.
173 changes: 85 additions & 88 deletions src/ParticularTemplates/NServiceBusEndpoint/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,121 +24,118 @@
builder.Services.AddWindowsService();
#endif

builder.UseNServiceBus(() =>
{
// TODO: consider moving common endpoint configuration into a shared project
// for use by all endpoints in the system
// TODO: consider moving common endpoint configuration into a shared project
// for use by all endpoints in the system

var endpointConfiguration = new EndpointConfiguration("ProjectName");
var endpointConfiguration = new EndpointConfiguration("ProjectName");

#if (transport == "LearningTransport")
// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
#elseif (transport == "AzureServiceBus")
// Azure Service Bus Transport: https://docs.particular.net/transports/azure-service-bus/
var transport = new AzureServiceBusTransport("CONNECTION_STRING");
var routing = endpointConfiguration.UseTransport(transport);
// Azure Service Bus Transport: https://docs.particular.net/transports/azure-service-bus/
var transport = new AzureServiceBusTransport("CONNECTION_STRING");
var routing = endpointConfiguration.UseTransport(transport);
#elseif (transport == "AzureStorageQueues")
// Azure Storage Queues Transport: https://docs.particular.net/transports/azure-storage-queues/
var transport = new AzureStorageQueueTransport("DefaultEndpointsProtocol=https;AccountName=[ACCOUNT];AccountKey=[KEY];");
var routing = endpointConfiguration.UseTransport(transport);
// Azure Storage Queues Transport: https://docs.particular.net/transports/azure-storage-queues/
var transport = new AzureStorageQueueTransport("DefaultEndpointsProtocol=https;AccountName=[ACCOUNT];AccountKey=[KEY];");
var routing = endpointConfiguration.UseTransport(transport);
#elseif (transport == "SQS")
// Amazon SQS Transport: https://docs.particular.net/transports/sqs/
var transport = new SqsTransport();
var routing = endpointConfiguration.UseTransport(transport);
// Amazon SQS Transport: https://docs.particular.net/transports/sqs/
var transport = new SqsTransport();
var routing = endpointConfiguration.UseTransport(transport);
#elseif (transport == "RabbitMQ")
// RabbitMQ Transport: https://docs.particular.net/transports/rabbitmq/
var rabbitMqConnectionString = "CONNECTION_STRING";
var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Quorum), rabbitMqConnectionString);
var routing = endpointConfiguration.UseTransport(transport);
// RabbitMQ Transport: https://docs.particular.net/transports/rabbitmq/
var rabbitMqConnectionString = "CONNECTION_STRING";
var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Quorum), rabbitMqConnectionString);
var routing = endpointConfiguration.UseTransport(transport);
#elseif (transport == "SQL")
// SQL Server Transport: https://docs.particular.net/transports/sql/
var transport = new SqlServerTransport("Data Source=.\\SqlExpress;Initial Catalog=dbname;Integrated Security=True");
var routing = endpointConfiguration.UseTransport(transport);
// SQL Server Transport: https://docs.particular.net/transports/sql/
var transport = new SqlServerTransport("Data Source=.\\SqlExpress;Initial Catalog=dbname;Integrated Security=True");
var routing = endpointConfiguration.UseTransport(transport);
#endif

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");
// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");

#if (persistence == "LearningPersistence")
// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
#elseif (persistence == "MSSQL")
// SQL Persistence: https://docs.particular.net/persistence/sql/
// Microsoft SQL Server dialect: https://docs.particular.net/persistence/sql/dialect-mssql
var dbConnectionString = "Data Source=.\\SqlExpress;Initial Catalog=dbname;Integrated Security=True;";
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.SqlDialect<SqlDialect.MsSqlServer>();
persistence.ConnectionBuilder(() => new SqlConnection(dbConnectionString));
// SQL Persistence: https://docs.particular.net/persistence/sql/
// Microsoft SQL Server dialect: https://docs.particular.net/persistence/sql/dialect-mssql
var dbConnectionString = "Data Source=.\\SqlExpress;Initial Catalog=dbname;Integrated Security=True;";
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.SqlDialect<SqlDialect.MsSqlServer>();
persistence.ConnectionBuilder(() => new SqlConnection(dbConnectionString));
#elseif (persistence == "MySQL")
// SQL Persistence: https://docs.particular.net/persistence/sql/
// MySQL dialect: https://docs.particular.net/persistence/sql/dialect-mysql
var dbConnectionString = "server=localhost;user=root;database=dbname;port=3306;password=pass;AllowUserVariables=True;AutoEnlist=false";
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.SqlDialect<SqlDialect.MySql>();
persistence.ConnectionBuilder(() => new MySqlConnection(dbConnectionString));
// SQL Persistence: https://docs.particular.net/persistence/sql/
// MySQL dialect: https://docs.particular.net/persistence/sql/dialect-mysql
var dbConnectionString = "server=localhost;user=root;database=dbname;port=3306;password=pass;AllowUserVariables=True;AutoEnlist=false";
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.SqlDialect<SqlDialect.MySql>();
persistence.ConnectionBuilder(() => new MySqlConnection(dbConnectionString));
#elseif (persistence == "PostgreSQL")
// SQL Persistence: https://docs.particular.net/persistence/sql/
// PostgreSQL dialect: https://docs.particular.net/persistence/sql/dialect-postgresql
var dbConnectionString = "Server=localhost;Port=5432;Database=dbname;User Id=user;Password=pass;";
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
var dialect = persistence.SqlDialect<SqlDialect.PostgreSql>();
dialect.JsonBParameterModifier(parameter =>
{
var npgsqlParameter = (NpgsqlParameter)parameter;
npgsqlParameter.NpgsqlDbType = NpgsqlDbType.Jsonb;
});
persistence.ConnectionBuilder(() => new NpgsqlConnection(dbConnectionString));
// SQL Persistence: https://docs.particular.net/persistence/sql/
// PostgreSQL dialect: https://docs.particular.net/persistence/sql/dialect-postgresql
var dbConnectionString = "Server=localhost;Port=5432;Database=dbname;User Id=user;Password=pass;";
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
var dialect = persistence.SqlDialect<SqlDialect.PostgreSql>();
dialect.JsonBParameterModifier(parameter =>
{
var npgsqlParameter = (NpgsqlParameter)parameter;
npgsqlParameter.NpgsqlDbType = NpgsqlDbType.Jsonb;
});
persistence.ConnectionBuilder(() => new NpgsqlConnection(dbConnectionString));
#elseif (persistence == "Oracle")
// SQL Persistence: https://docs.particular.net/persistence/sql/
// Oracle dialect: https://docs.particular.net/persistence/sql/dialect-oracle
var dbConnectionString = "Data Source=localhost;User Id=username;Password=pass;Enlist=false;";
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.SqlDialect<SqlDialect.Oracle>();
persistence.ConnectionBuilder(() => new OracleConnection(dbConnectionString));
// SQL Persistence: https://docs.particular.net/persistence/sql/
// Oracle dialect: https://docs.particular.net/persistence/sql/dialect-oracle
var dbConnectionString = "Data Source=localhost;User Id=username;Password=pass;Enlist=false;";
var persistence = endpointConfiguration.UsePersistence<SqlPersistence>();
persistence.SqlDialect<SqlDialect.Oracle>();
persistence.ConnectionBuilder(() => new OracleConnection(dbConnectionString));
#elseif (persistence == "CosmosDB")
// Cosmos DB Persistence: https://docs.particular.net/persistence/cosmosdb/
var persistence = endpointConfiguration.UsePersistence<CosmosPersistence>();
persistence.CosmosClient(new CosmosClient("CONNECTION_STRING"));
persistence.DatabaseName("DATABASE_NAME");
// Cosmos DB Persistence: https://docs.particular.net/persistence/cosmosdb/
var persistence = endpointConfiguration.UsePersistence<CosmosPersistence>();
persistence.CosmosClient(new CosmosClient("CONNECTION_STRING"));
persistence.DatabaseName("DATABASE_NAME");
#elseif (persistence == "AzureTable")
// Azure Table Persistence: https://docs.particular.net/persistence/azure-table/
var persistence = endpointConfiguration.UsePersistence<AzureTablePersistence>();
persistence.ConnectionString("DefaultEndpointsProtocol=https;AccountName=[ACCOUNT];AccountKey=[KEY];");
// Azure Table Persistence: https://docs.particular.net/persistence/azure-table/
var persistence = endpointConfiguration.UsePersistence<AzureTablePersistence>();
persistence.ConnectionString("DefaultEndpointsProtocol=https;AccountName=[ACCOUNT];AccountKey=[KEY];");
#elseif (persistence == "RavenDB")
// RavenDB Persistence: https://docs.particular.net/persistence/ravendb/
DocumentStore documentStore;
var persistence = endpointConfiguration.UsePersistence<RavenDBPersistence>();
persistence.SetDefaultDocumentStore(readOnlySettings =>
// RavenDB Persistence: https://docs.particular.net/persistence/ravendb/
DocumentStore documentStore;
var persistence = endpointConfiguration.UsePersistence<RavenDBPersistence>();
persistence.SetDefaultDocumentStore(readOnlySettings =>
{
documentStore = new DocumentStore
{
documentStore = new DocumentStore
{
Urls = new[] { "http://localhost:8080" },
Database = readOnlySettings.EndpointName()
};
return documentStore;
});
Urls = new[] { "http://localhost:8080" },
Database = readOnlySettings.EndpointName()
};
return documentStore;
});
#elseif (persistence == "MongoDB")
// MongoDB Persistence: https://docs.particular.net/persistence/mongodb/
var persistence = endpointConfiguration.UsePersistence<MongoPersistence>();
persistence.DatabaseName("DATABASE_NAME");
// MongoDB Persistence: https://docs.particular.net/persistence/mongodb/
var persistence = endpointConfiguration.UsePersistence<MongoPersistence>();
persistence.DatabaseName("DATABASE_NAME");
#elseif (persistence == "DynamoDB")
// Amazon DynamoDB Persistence: https://docs.particular.net/persistence/dynamodb/
var persistence = endpointConfiguration.UsePersistence<DynamoPersistence>();
// Amazon DynamoDB Persistence: https://docs.particular.net/persistence/dynamodb/
var persistence = endpointConfiguration.UsePersistence<DynamoPersistence>();
#endif

// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();

endpointConfiguration.DefineCriticalErrorAction(OnCriticalError);
endpointConfiguration.DefineCriticalErrorAction(OnCriticalError);

// Installers are useful in development. Consider disabling in production.
// https://docs.particular.net/nservicebus/operations/installers
endpointConfiguration.EnableInstallers();
// Installers are useful in development. Consider disabling in production.
// https://docs.particular.net/nservicebus/operations/installers
endpointConfiguration.EnableInstallers();

return endpointConfiguration;
});
builder.UseNServiceBus(endpointConfiguration);

var app = builder.Build();
app.Run();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

<ItemGroup>
<PackageReference Include="NServiceBus" Version="9.0.0-alpha.9" />
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="3.0.0-alpha.2" />
<PackageReference Include="NServiceBus.Extensions.Hosting" Version="3.0.0-alpha.3" />
<PackageReference Condition="'$(hosting)' == 'Docker'" Include="Microsoft.Net.Build.Containers" Version="8.0.100" />
<PackageReference Condition="'$(hosting)' == 'WindowsService'" Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
<PackageReference Condition="'$(transport)' == 'AzureServiceBus'" Include="NServiceBus.Transport.AzureServiceBus" Version="4.0.0-alpha.2" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,34 +29,31 @@ using Microsoft.Extensions.Hosting;

var builder = Host.CreateApplicationBuilder(args);

builder.UseNServiceBus(() =>
{
// TODO: consider moving common endpoint configuration into a shared project
// for use by all endpoints in the system
// TODO: consider moving common endpoint configuration into a shared project
// for use by all endpoints in the system

var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpoint");
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpoint");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");
// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");

// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();

// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();

endpointConfiguration.DefineCriticalErrorAction(OnCriticalError);
endpointConfiguration.DefineCriticalErrorAction(OnCriticalError);

// Installers are useful in development. Consider disabling in production.
// https://docs.particular.net/nservicebus/operations/installers
endpointConfiguration.EnableInstallers();
// Installers are useful in development. Consider disabling in production.
// https://docs.particular.net/nservicebus/operations/installers
endpointConfiguration.EnableInstallers();

return endpointConfiguration;
});
builder.UseNServiceBus(endpointConfiguration);

var app = builder.Build();
app.Run();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,34 +29,31 @@ using Microsoft.Extensions.Hosting;

var builder = Host.CreateApplicationBuilder(args);

builder.UseNServiceBus(() =>
{
// TODO: consider moving common endpoint configuration into a shared project
// for use by all endpoints in the system
// TODO: consider moving common endpoint configuration into a shared project
// for use by all endpoints in the system

var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpointHostingConsoleApp");
var endpointConfiguration = new EndpointConfiguration("NServiceBusEndpointHostingConsoleApp");

// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());
// Learning Transport: https://docs.particular.net/transports/learning/
var routing = endpointConfiguration.UseTransport(new LearningTransport());

// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");
// Define routing for commands: https://docs.particular.net/nservicebus/messaging/routing#command-routing
// routing.RouteToEndpoint(typeof(MessageType), "DestinationEndpointForType");
// routing.RouteToEndpoint(typeof(MessageType).Assembly, "DestinationForAllCommandsInAssembly");

// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();
// Learning Persistence: https://docs.particular.net/persistence/learning/
endpointConfiguration.UsePersistence<LearningPersistence>();

// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();
// Message serialization
endpointConfiguration.UseSerialization<SystemJsonSerializer>();

endpointConfiguration.DefineCriticalErrorAction(OnCriticalError);
endpointConfiguration.DefineCriticalErrorAction(OnCriticalError);

// Installers are useful in development. Consider disabling in production.
// https://docs.particular.net/nservicebus/operations/installers
endpointConfiguration.EnableInstallers();
// Installers are useful in development. Consider disabling in production.
// https://docs.particular.net/nservicebus/operations/installers
endpointConfiguration.EnableInstallers();

return endpointConfiguration;
});
builder.UseNServiceBus(endpointConfiguration);

var app = builder.Build();
app.Run();
Expand Down
Loading

0 comments on commit 890ee51

Please sign in to comment.