Skip to content

Add 16 modules to reach Spring/pyfly parity#23

Merged
ancongui merged 1 commit into
mainfrom
spring-parity-expansion
May 7, 2026
Merged

Add 16 modules to reach Spring/pyfly parity#23
ancongui merged 1 commit into
mainfrom
spring-parity-expansion

Conversation

@ancongui
Copy link
Copy Markdown
Contributor

@ancongui ancongui commented May 7, 2026

Summary

  • Brings the .NET port from 52 → 68 projects so it covers what Java/Spring and pyfly already shipped. Each new module is a thin .NET 10 port packaged like the existing Firefly modules (csproj + DI extension + options + README + tests).
  • 16 new modules: Resilience, Security, Aop, Scheduling, Messaging, Actuator, Admin, I18n, Session, WebSocket, Shell, Testing, Cli, Agentic, AgenticBridge, Notifications.Smtp.
  • Starters now bundle the new modules: Starter.Application adds Resilience+Security+Actuator+Scheduling+Session+I18n+Aop+WebSocket; Starter.Core adds Resilience+Messaging; Starter.Domain adds Aop. Existing services pick them up with no code changes.

What landed

Group Module Mirrors
Cross-cutting FireflyFramework.Resilience Resilience4j (Polly v8)
Cross-cutting FireflyFramework.Security Spring Security
Cross-cutting FireflyFramework.Aop Spring AOP
Cross-cutting FireflyFramework.Scheduling Spring @Scheduled (Cronos)
Cross-cutting FireflyFramework.Messaging Spring Messaging (in-process)
Spring infra FireflyFramework.Actuator Spring Boot Actuator
Spring infra FireflyFramework.Admin Spring Boot Admin Server
Spring infra FireflyFramework.I18n Spring MessageSource
Spring infra FireflyFramework.Session Spring Session
Spring infra FireflyFramework.WebSocket Spring WebSocket
Tools FireflyFramework.Shell Spring Shell
Tools FireflyFramework.Testing Spring Boot Test
Tools FireflyFramework.Cli fireflyframework-cli (Go)
Tools FireflyFramework.Agentic fireflyframework-agentic (Python)
Tools FireflyFramework.AgenticBridge fireflyframework-agentic-bridge
Provider FireflyFramework.Notifications.Smtp pyfly notifications/smtp

Test plan

  • dotnet build FireflyFramework.sln — clean across all 68 projects
  • dotnet test FireflyFramework.sln — 390 tests pass (346 existing + 44 new)
  • Each new module has at least one focused xUnit test exercising its primary contract (tests/FireflyFramework.Tests/{Resilience,Security,Aop,Scheduling,Messaging,Actuator,Admin,I18n,Session,WebSocketRegistry,Shell,TestingHelpers,Agentic,AgenticBridge,SmtpProvider}Tests.cs)
  • docs/MODULES.md, root README.md, CHANGELOG.md reflect the new modules and the starter recomposition
  • Each module ships a didactic per-project README with motivation, quick start, and configuration keys

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.
@ancongui ancongui merged commit 8e49b8c into main May 7, 2026
2 checks passed
@ancongui ancongui deleted the spring-parity-expansion branch May 7, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant