feat: add message filter pattern support#278
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
There was a problem hiding this comment.
Pull request overview
Adds a first-class Message Filter enterprise integration pattern to PatternKit, including a fluent runtime API, Roslyn source generator support, and a production-shaped order fraud-screening example with DI and docs—bringing pattern catalog and coverage artifacts up to date.
Changes:
- Introduces
MessageFilter<TPayload>runtime API + result type inPatternKit.Core. - Adds
[GenerateMessageFilter]/[MessageFilterRule]abstractions andMessageFilterGeneratorwith diagnosticsPKMF001–PKMF004. - Adds example implementation + DI registration, expands pattern/example catalogs, and adds TinyBDD coverage and docs.
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| test/PatternKit.Tests/Messaging/Routing/MessageFilterTests.cs | Runtime behavior coverage for accept/reject, context propagation, and validation. |
| test/PatternKit.Generators.Tests/MessageFilterGeneratorTests.cs | Generator output + diagnostic coverage for message filter factories. |
| test/PatternKit.Generators.Tests/AbstractionsAttributeCoverageTests.cs | Ensures new attributes are included in abstractions coverage expectations. |
| test/PatternKit.Examples.Tests/ProductionReadiness/PatternKitPatternCatalogTests.cs | Updates pattern catalog expectations to include Message Filter. |
| test/PatternKit.Examples.Tests/Messaging/OrderMessageFilterExampleTests.cs | Validates fluent vs generated behavior and DI importability for the example. |
| test/PatternKit.Examples.Tests/DependencyInjection/PatternKitExampleDependencyInjectionTests.cs | Ensures aggregate example registration includes the new message filter example. |
| src/PatternKit.Generators/Messaging/MessageFilterGenerator.cs | New incremental generator emitting MessageFilter<TPayload> factories and diagnostics. |
| src/PatternKit.Generators/AnalyzerReleases.Unshipped.md | Documents new analyzer IDs and severities for release tracking. |
| src/PatternKit.Generators.Abstractions/Messaging/MessageFilterAttributes.cs | Adds generator-facing attributes: [GenerateMessageFilter], [MessageFilterRule]. |
| src/PatternKit.Examples/ProductionReadiness/PatternKitPatternCatalog.cs | Adds Message Filter entry mapping docs/runtime/generator/example/test coverage. |
| src/PatternKit.Examples/ProductionReadiness/PatternKitExampleCatalog.cs | Registers “Order Message Filter” example descriptor in the example catalog. |
| src/PatternKit.Examples/Messaging/OrderMessageFilterExample.cs | Production-shaped fraud-screening example (fluent + generated) + DI helpers. |
| src/PatternKit.Examples/DependencyInjection/PatternKitExampleServiceCollectionExtensions.cs | Adds aggregate DI import path for the order message filter example. |
| src/PatternKit.Core/Messaging/Routing/MessageFilter.cs | Implements the runtime message filter pattern + MessageFilterResult<TPayload>. |
| docs/patterns/toc.yml | Adds Message Filter to docs navigation. |
| docs/patterns/messaging/message-filter.md | New pattern doc page with fluent and generator usage guidance. |
| docs/guides/pattern-coverage.md | Adds Message Filter row to the pattern coverage guide. |
| docs/generators/toc.yml | Adds Message Filter generator docs to generator navigation. |
| docs/generators/message-filter.md | New generator doc page describing attributes, rules, and diagnostics behavior. |
| docs/generators/index.md | Adds Message Filter entry to the generator index table. |
| docs/examples/toc.yml | Adds Order Message Filter example to examples navigation. |
| docs/examples/order-message-filter.md | New example doc page describing the fraud-screening demo and integration points. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Test Results 1 files 1 suites 3m 22s ⏱️ Results for commit c6dc238. |
Code Coverage |
🔍 PR Validation ResultsVersion: `` ✅ Validation Steps
📊 ArtifactsDry-run artifacts have been uploaded and will be available for 7 days. This comment was automatically generated by the PR validation workflow. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #278 +/- ##
==========================================
+ Coverage 90.41% 95.98% +5.56%
==========================================
Files 372 376 +4
Lines 32847 33087 +240
Branches 4597 4638 +41
==========================================
+ Hits 29699 31758 +2059
+ Misses 1432 1329 -103
+ Partials 1716 0 -1716
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Closes #273
Adds the Message Filter enterprise integration pattern with: