Add 16 modules to reach Spring/pyfly parity#23
Merged
Conversation
Brings the .NET port from 52 to 68 projects so it covers everything the Java framework and pyfly already shipped. Each module is a thin .NET 10 port of a long-standing Spring concept, packaged the same way the existing Firefly modules are: csproj + DI extension + options class + README. Cross-cutting platform additions (Resilience, Security, Aop, Scheduling, Messaging) — Resilience4j-style attributes over Polly v8, Spring Security SecurityContext + JWT + BCrypt + SpEL evaluator, Spring AOP advice + pointcut DSL, Spring @scheduled cron/fixed-rate/fixed-delay over Cronos, and a lightweight in-process IMessageBroker. Spring infrastructure ports (Actuator, Admin, I18n, Session, WebSocket) — /actuator/* endpoints with secret masking, Spring Boot Admin Server- style instance registry + heartbeat client, MessageSource with locale resolvers, distributed sessions over in-memory + Redis, server-side WebSocket binding with group broadcast. Tools and supporting (Shell, Testing, Cli, Agentic, AgenticBridge) — Spring Shell-style [ShellMethod]/CommandLineRunner, Spring Boot Test helpers (FireflyTestBase, EventCapturePublisher, slice attributes), a 'firefly' dotnet tool that scaffolds services / handlers / sagas / migrations, an LLM agent loop with provider-agnostic ports, and a REST/SSE bridge to Python-hosted agents. Notifications.Smtp closes the SaaS-only gap by adding a plain System.Net.Mail provider for environments that can only use a corporate relay. Starter wiring: Starter.Application now bundles Resilience + Security + Actuator + Scheduling + Session + I18n + Aop + WebSocket; Starter.Core now bundles Resilience + Messaging; Starter.Domain now bundles Aop. Existing services pick up the new modules without any code changes. Tests: 44 new xUnit cases (390 total, all green) — retry/timeout pipelines, JWT round-trip, SpEL compounds, around-advice argument flow, cron + fixed-rate scheduling, broker delivery, env-endpoint masking, admin heartbeats, locale fallback, session round-trip, WebSocket broadcast, shell parser, event-capture assertions, scripted agent loop, REST agentic bridge, SMTP failure path. Documentation: docs/MODULES.md, README, and CHANGELOG updated to list the new modules and their Java/pyfly originals; every new module ships its own didactic README with motivation + quick start + config keys.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Starter.Applicationadds Resilience+Security+Actuator+Scheduling+Session+I18n+Aop+WebSocket;Starter.Coreadds Resilience+Messaging;Starter.Domainadds Aop. Existing services pick them up with no code changes.What landed
FireflyFramework.ResilienceFireflyFramework.SecurityFireflyFramework.AopFireflyFramework.Scheduling@Scheduled(Cronos)FireflyFramework.MessagingFireflyFramework.ActuatorFireflyFramework.AdminFireflyFramework.I18nMessageSourceFireflyFramework.SessionFireflyFramework.WebSocketFireflyFramework.ShellFireflyFramework.TestingFireflyFramework.Clifireflyframework-cli(Go)FireflyFramework.Agenticfireflyframework-agentic(Python)FireflyFramework.AgenticBridgefireflyframework-agentic-bridgeFireflyFramework.Notifications.Smtpnotifications/smtpTest plan
dotnet build FireflyFramework.sln— clean across all 68 projectsdotnet test FireflyFramework.sln— 390 tests pass (346 existing + 44 new)tests/FireflyFramework.Tests/{Resilience,Security,Aop,Scheduling,Messaging,Actuator,Admin,I18n,Session,WebSocketRegistry,Shell,TestingHelpers,Agentic,AgenticBridge,SmtpProvider}Tests.cs)docs/MODULES.md, rootREADME.md,CHANGELOG.mdreflect the new modules and the starter recomposition