fix: Remove the legacy digest engine - EXO-90072 - eXIP7.3.0.22 - #782
Merged
azayati merged 2 commits intoSep 9, 2026
Merged
Conversation
This was referenced Sep 8, 2026
azayati
force-pushed
the
exip-7.3.0.22-cleanup-legacy-digest-api
branch
from
September 8, 2026 13:18
2c6033e to
3080954
Compare
azayati
force-pushed
the
exip-7.3.0.22-cleanup-legacy-digest-api
branch
2 times, most recently
from
September 8, 2026 19:30
ccd7c6a to
a66d370
Compare
azayati
force-pushed
the
exip-7.3.0.22-cleanup-legacy-digest-api
branch
from
September 8, 2026 19:57
a66d370 to
7be3cfb
Compare
This was referenced Sep 8, 2026
exo-swf
force-pushed
the
feature/experience
branch
from
September 8, 2026 23:17
01beb86 to
c776503
Compare
The digest engine switched off in 2022 (crons pushed to 2099) is removed in full, now that io.meeds.commons.digest replaces it. Engine: DigestorService and its implementation, the daily and weekly jobs with their MBeans, DigestDailyPlugin and DigestWeeklyPlugin, the digest template provider, DigestTemplate, the two gtmpl templates, the JPA mail notification storage with its three entities and DAOs, their Kernel configuration, the 2099 cron properties and the exo.feature.digestMailNotification.enabled flag, and the legacy digest keys in the 40 locales of the notification bundle. API: makeDigest and buildDigest disappear from AbstractNotificationPlugin and AbstractTemplateBuilder, NotificationService loses its digest entry point, UserSetting loses its daily and weekly plugin lists, isInDaily, isInWeekly and the DAILY and WEEKLY frequencies, TemplateUtils and the template transformer lose processDigest, NotificationUtils loses getDigest. The addons drop their overrides in their own PRs of the same wave; no addon declares Daily or Weekly as a default frequency, and the frequency parser returns null on an unknown name, so nothing breaks at startup. Data: three Liquibase change sets drop NTF_EMAIL_NOTIFS, NTF_EMAIL_NOTIFS_DIGEST, NTF_EMAIL_NOTIFS_PARAMS and their sequences, and the legacy exo:daily and exo:weekly rows of a user are purged the next time his settings are saved. Kept untouched: the mail queue, the instant path of MailLifecycle, NotificationServiceImpl.process and the new digest engine. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
azayati
force-pushed
the
exip-7.3.0.22-cleanup-legacy-digest-api
branch
from
September 9, 2026 07:48
7be3cfb to
c4e639c
Compare
…igest plugins - EXO-90072 - eXIP7.3.0.22 The notification bundles reach the ResourceBundleService only through the plugins that declare them, and the two removed digest plugins were the only ones declaring locale.notification.template.CommonsNotification: the digest email came out with its keys (subject, greeting, intro, footer links). NotificationPluginContainer now takes an extra list of bundle paths to deploy, declared where the component is. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
azayati
added a commit
to Meeds-io/task
that referenced
this pull request
Sep 9, 2026
…ns - EXO-90072 - eXIP7.3.0.22 (#644) > **Depends on Meeds-io/commons#782** (the legacy `makeDigest` hook becomes a concrete deprecated no-op there). Until it is merged this branch does not compile against the feature branch, hence the draft. Task EXO-90072, spec 50469 §5. ## What - `MailTemplateProvider`: the `makeDigest` override and the `buildDigestMsg` helpers are removed; the mail `CommentTemplateBuilder` only held a `buildDigestMsg` override, so it is gone and `TaskCommentPlugin` uses the plain `TemplateBuilder`. - `PushTemplateProvider`: the two no-op `makeDigest` overrides. - `TaskNotification_en.properties`: the 12 `Notification.digest.{one,more}.*` keys and 5 `Notification.label.*` keys (and, one.other, more.other, task, tasks) read only by the removed code (verified by grep over Java, gtmpl, JS, Vue). The same keys are removed in the 40 locale files of the bundle. - Tests: `testMakeDigest` removed (it only asserted the removed bodies). Untouched: `TaskDigestLinePlugin`, its Kernel declaration and its `digest.*` keys (the new digest of the eXIP), every `makeMessage` path. ## Checked `services` and `webapps` build; the 17 notification tests are green (the DAO container tests fail identically on the base branch locally, stale social snapshot). N2 (addon, no schema, no security). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
azayati
added a commit
that referenced
this pull request
Sep 9, 2026
exo-swf
pushed a commit
to Meeds-io/task
that referenced
this pull request
Sep 9, 2026
…ns - EXO-90072 - eXIP7.3.0.22 (#644) > **Depends on Meeds-io/commons#782** (the legacy `makeDigest` hook becomes a concrete deprecated no-op there). Until it is merged this branch does not compile against the feature branch, hence the draft. Task EXO-90072, spec 50469 §5. ## What - `MailTemplateProvider`: the `makeDigest` override and the `buildDigestMsg` helpers are removed; the mail `CommentTemplateBuilder` only held a `buildDigestMsg` override, so it is gone and `TaskCommentPlugin` uses the plain `TemplateBuilder`. - `PushTemplateProvider`: the two no-op `makeDigest` overrides. - `TaskNotification_en.properties`: the 12 `Notification.digest.{one,more}.*` keys and 5 `Notification.label.*` keys (and, one.other, more.other, task, tasks) read only by the removed code (verified by grep over Java, gtmpl, JS, Vue). The same keys are removed in the 40 locale files of the bundle. - Tests: `testMakeDigest` removed (it only asserted the removed bodies). Untouched: `TaskDigestLinePlugin`, its Kernel declaration and its `digest.*` keys (the new digest of the eXIP), every `makeMessage` path. ## Checked `services` and `webapps` build; the 17 notification tests are green (the DAO container tests fail identically on the base branch locally, stale social snapshot). N2 (addon, no schema, no security). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
azayati
added a commit
to Meeds-io/task
that referenced
this pull request
Sep 10, 2026
…ns - EXO-90072 - eXIP7.3.0.22 (#644) > **Depends on Meeds-io/commons#782** (the legacy `makeDigest` hook becomes a concrete deprecated no-op there). Until it is merged this branch does not compile against the feature branch, hence the draft. Task EXO-90072, spec 50469 §5. ## What - `MailTemplateProvider`: the `makeDigest` override and the `buildDigestMsg` helpers are removed; the mail `CommentTemplateBuilder` only held a `buildDigestMsg` override, so it is gone and `TaskCommentPlugin` uses the plain `TemplateBuilder`. - `PushTemplateProvider`: the two no-op `makeDigest` overrides. - `TaskNotification_en.properties`: the 12 `Notification.digest.{one,more}.*` keys and 5 `Notification.label.*` keys (and, one.other, more.other, task, tasks) read only by the removed code (verified by grep over Java, gtmpl, JS, Vue). The same keys are removed in the 40 locale files of the bundle. - Tests: `testMakeDigest` removed (it only asserted the removed bodies). Untouched: `TaskDigestLinePlugin`, its Kernel declaration and its `digest.*` keys (the new digest of the eXIP), every `makeMessage` path. ## Checked `services` and `webapps` build; the 17 notification tests are green (the DAO container tests fail identically on the base branch locally, stale social snapshot). N2 (addon, no schema, no security). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> (cherry picked from commit 5beb448)
exo-swf
pushed a commit
that referenced
this pull request
Sep 11, 2026
exo-swf
pushed a commit
to Meeds-io/task
that referenced
this pull request
Sep 14, 2026
…ns - EXO-90072 - eXIP7.3.0.22 (#644) > **Depends on Meeds-io/commons#782** (the legacy `makeDigest` hook becomes a concrete deprecated no-op there). Until it is merged this branch does not compile against the feature branch, hence the draft. Task EXO-90072, spec 50469 §5. ## What - `MailTemplateProvider`: the `makeDigest` override and the `buildDigestMsg` helpers are removed; the mail `CommentTemplateBuilder` only held a `buildDigestMsg` override, so it is gone and `TaskCommentPlugin` uses the plain `TemplateBuilder`. - `PushTemplateProvider`: the two no-op `makeDigest` overrides. - `TaskNotification_en.properties`: the 12 `Notification.digest.{one,more}.*` keys and 5 `Notification.label.*` keys (and, one.other, more.other, task, tasks) read only by the removed code (verified by grep over Java, gtmpl, JS, Vue). The same keys are removed in the 40 locale files of the bundle. - Tests: `testMakeDigest` removed (it only asserted the removed bodies). Untouched: `TaskDigestLinePlugin`, its Kernel declaration and its `digest.*` keys (the new digest of the eXIP), every `makeMessage` path. ## Checked `services` and `webapps` build; the 17 notification tests are green (the DAO container tests fail identically on the base branch locally, stale social snapshot). N2 (addon, no schema, no security). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
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.



What
The commons part of the legacy digest cleanup (task EXO-90072, spec 50469 §4 "Decision" and §5). The engine was switched off in 2022, its crons pushed to year 2099;
io.meeds.commons.digestreplaces it. Everything goes in this PR, including the API hooks: 97 files, −3968 lines.Engine:
DigestorService+DigestorServiceImpl,NotificationDailyJob/NotificationWeeklyJoband thejob/mbeanspackage,DigestDailyPlugin/DigestWeeklyPlugin,DigestMailTemplateProvider,DigestTemplate, the two digest.gtmpl,JPAMailNotificationStorage+MailNotifEntity/MailDigestEntity/MailParamEntity+ their DAOs and theMailNotificationStorageAPI, their Kernel configuration (components, plugins, 2099 cron properties,exo.feature.digestMailNotification.enabled), the legacy digest keys in the 40 locales of the notification bundle, the digest branches ofNotificationServiceImpl,MailLifecycle,NotificationJoband the three digest MBean getters.API:
makeDigestandbuildDigestare removed fromAbstractNotificationPluginandAbstractTemplateBuilder,NotificationServicelosesdigest,UserSettinglosesgetDailyPlugins/getWeeklyPlugins/ their setters /isInDaily/isInWeeklyand theFREQUENCY.DAILY/FREQUENCY.WEEKLYconstants,TemplateUtilsandTemplateContentTransformerServiceloseprocessDigest,NotificationUtilslosesgetDigest.Data: change sets
1.0.0-22..27dropNTF_EMAIL_NOTIFS_PARAMS,NTF_EMAIL_NOTIFS_DIGEST,NTF_EMAIL_NOTIFS(children first) and their sequences, each guarded bytableExists/sequenceExistswithonFail="MARK_RAN". A user's legacyexo:daily/exo:weeklyrows are purged the next time his settings are saved.Untouched: the mail queue (
QueueMessage,SendEmailNotificationJob,MailQueueEntity), the instant path ofMailLifecycle,NotificationServiceImpl.process(still broadcastsnotification.processedand dispatches to the channels), and everything underio.meeds.commons.digest.Merge order
makeDigestwas abstract, so seventeen repositories override it. This PR merges first; their branches are knowingly red until their own PRs land, and those PRs are green because they remove the override. Same wave, task EXO-90072: social#6083, task#644, content#913, agenda#1112, processes#494, plus anti-malware, dlp, documents, email-connector, gamification, kudos, multifactor-authentication, notes, perk-store, push-notifications, wallet, web-conferencing.Checked before removing the two frequency constants: no addon declares
DailyorWeeklyas a default frequency, andFREQUENCY.getFrequecyreturnsnullon an unknown name while both callers compare toINSTANTLY, so an old configuration cannot break startup.Checked
mvn installofcommons-api,commons-component-common,commons-extension-webappgreen;commons-component-commonsuite: 258 tests, only the 10 knownImageResizeServiceImplTesterrors (a space in the local working-copy path, environmental, identical on the base branch).How to test
NotificationDailyJob/NotificationWeeklyJobin the Quartz log or JMX.NTF_EMAIL_NOTIFS*tables are gone,DATABASECHANGELOGholds1.0.0-22..27.N1 (commons, schema). 🤖 Generated with Claude Code