develop
Reduce async/await usage for DisposeAsync
Cleanup using
Replace Array.Empty with collection expression
Client Request Handle change to start time when request is actually sent, to avoid delays in middleware processing affecting timeout
Changed the InboxCleanupService and OutboxDeliveryService registrations and configuration order to work properly
Fixed scenario where the Fault<TJob> event was not published when UseMessageRetry is configured on the bus
Updated packages, fixed NHibernate Test vulnerability package reference
Fixed #6031 - Redelivery of routing slips was not properly propagating the Result through the RetryContext
Made the endpoint name configurable for the job service instance endpoint.
AggregateException should be recognized by the ExceptionFilter and properly inspected to determine if an exception should be handled or ignored.
Massive file cleanup
Updated all state machine activities to pass the CancellationToken when calling any transport-related methods (publish, send, request, schedule, etc.)
Added ability to advance the delayed scheduler for the in-memory transport, making tests run more quickly.
Fixed #5022 - assume UTC when no offset is present.
Added net10.0 build target
Fixed #6131 - events not handled in certain job states
Huge push towards optimization on startup, state machines, type discovery, caching, and the consume pipeline. Rebuilt the dispatch filter as a consume context filter for message type dispatch.
Verify duplicate baggage in telemetry only captures most recent value
Added lock context handlers to deal with duplicate message deliveries from the transport.
Fixed in-memory outbox telemetry to capture ExecutionContext, which should properly flow activity traces
Modified the expression builder for property-based saga queries to use an explicit type for member access and added methods to access that property value. Changes the behavior of 2b3e1b0 and https://github.com/MassTransit/MassTransit/pull/5931
Fixed #6017 - made ScheduleId and ScheduleGroup settable
Changed MemoryMessageBody to convert to string when string requested
Do not (re)throw exceptions from Faulted within the ReceiveLockContext
Added to additional methods for modifying the in-memory saga repository using the test harness
FinalizeJob command to remove job saga / job attempt saga entries when a job was canceled or faulted.
Integration of all external packages into MassTransit, split out into Abstractions, Middleware, and the core MassTransit assembly.
An OperationCanceledException (typically happens when the consumer stop times out) should not cause the receive transport to exit.
Added lock around telemetry update
Check for empty chart before calculating range (fixed #5938).
Figured out a way to try and unit test the message receiver used by Azure Functions to ensure that consumer definitions are properly applied (read: yes, they are).
Set a default timeout for `IBusControl` `Start` and `Stop` methods
Changed endpoint client factory to avoid Task return value, added support for RabbitMQ direct REPLY-TO request client using SetRabbitMqReplyToRequestClientFactory
Cleaned up leftover container abstractions that were no longer useful
Use context.CancellationToken in Forward
Changed Endpoint properties to public, so they should be properly serialized as a health result #3402
Added a new IScopedClientFactory which can be used to create a request client in the current scope
Added JobProperties, InstanceProperties, and JobTypeProperties to the JobCompleted events, so that completed job details can be observed
Fixed #4510 - Properly handle cross-region or SNS deliveries that are wrapped in an SNS envelope when deserializing using System.Text.Json only.
Cleaned up logging on bus start fault/cancellation
Updated AddMassTransitTestHarness so that it can replace an existing bus configuration with an in-memory bus while retaining any existing consumers, sagas, and activities.
Adding usage telemetry reporting, to track feature usage
Pause/Resume scheduled recurring message, Quartz, Hangfire (cleaned up by PBG)
Change RawSerializerOptions.Default to be the "new" default for use within MT, use RawSerializerOptions.All to match legacy behavior.
Add the ability to delay execute of the next routing slip activity, as well as a new callback for setting variables, setting the delay.
Fixed #3868 - default value routing slip arguments were not overridden by variables because default/null values should not be serialized.