1.7 KiB
1.7 KiB
Why
The existing notification API exposes transport-specific message types to consumers, so a fully configured notification sender cannot be substituted without changing consumer code. Before adding further transports, the framework needs a stable service API in which configuration is bound at composition time and consumers provide only a semantically tagged text message.
What Changes
- BREAKING Relocate the notification API and implementations from
com.r35157.libs.notificationtocom.r35157.service.notification, without compatibility aliases. - BREAKING Replace
BoundNotifierandAddressedNotifierwith transport-independentBoundNotificationServiceand destination-only genericAddressedNotificationServicecontracts. - BREAKING Remove the marker and transport-specific message wrappers in favor of
ΩNotificationMessageΩdirectly. - Rename the Pushover, Discord, and SMTP implementations to notification-service terminology while preserving their current delivery status.
- Validate every notification message before delivery, and make SMTP binding capture both a validated email address and fixed subject.
Capabilities
New Capabilities
notification-services: Defines the transport-independent notification API, binding and validation behavior, and the required behavior of the existing Pushover, Discord, and SMTP implementations.
Modified Capabilities
None.
Impact
The change replaces the public notification package and its API types, updates all production imports and inline examples, and removes obsolete message classes. Pushover's synchronous HTTP delivery remains functional; Discord webhook and SMTP delivery remain unimplemented. Alarm-specific Pushover code and Nenjim startup composition are unaffected.