Files

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.notification to com.r35157.service.notification, without compatibility aliases.
  • BREAKING Replace BoundNotifier and AddressedNotifier with transport-independent BoundNotificationService and destination-only generic AddressedNotificationService contracts.
  • 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.