[OpenNMS/opennms] 06d744: NMS-20107: versioned group management API and Prim...
joseanesONMS via opennms-cvs <[email protected]>
| Newsgroups | gmane.network.opennms.cvs |
|---|---|
| Message-ID | <OpenNMS/opennms/push/refs/heads/develop/[email protected]> |
Branch: refs/heads/develop
Home: https://github.com/OpenNMS/opennms
Commit: 06d7448dd82d89cdec0fd7b547b3c3c3830cf14e
https://github.com/OpenNMS/opennms/commit/06d7448dd82d89cdec0fd7b547b3c3c3830cf14e
Author: Jose Anes <[email protected]>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/GroupsRestService.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/api/GroupsRestApi.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/model/GroupDto.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/model/GroupRenameRequest.java
M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
A opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/GroupsRestServiceIT.java
M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml
A ui/src/components/ManageGroups/GroupEditorDialog.vue
A ui/src/components/ManageGroups/GroupRenameDialog.vue
A ui/src/components/ManageGroups/GroupsTable.vue
A ui/src/containers/ManageGroups.vue
M ui/src/main/router/index.ts
A ui/src/services/groupAdminService.ts
M ui/src/services/index.ts
A ui/src/stores/groupAdminStore.ts
A ui/src/types/groupAdmin.ts
A ui/tests/stores/groupAdminStore.test.ts
Log Message:
-----------
NMS-20107: versioned group management API and PrimeVue Manage Groups page
Adds /api/v2/groups (list/get/create/update, rename, delete), admin-only
via Spring Security rules plus in-code checks, wrapping GroupManager so
groups.xml stays the system of record. The member list order is
preserved end to end — it drives the notification escalation order —
and fields the API does not expose (default-map) survive updates.
Requests are validated up front (name and comment markup, members must
exist, duty schedule grammar with overnight ranges legal) and applied to
a detached copy, so rejected requests leave no partial state. Unlike the
legacy page, which only hid the buttons, the Admin group is protected
server-side, renames follow the on-call roles' membership-group
references, and deletes are rejected while roles still reference the
group instead of leaving dangling references.
The Manage Groups page (ui/#/admin/groups) visualizes the API: groups
table, editor with an ordered member list (move up/down), rename and
delete dialogs with the system group disabled. The menu entry now points
at the new page. 13 integration tests and 8 store tests.
Commit: 9c2503ccf0e1f0abbd2b47a991cefcfebb33327c
https://github.com/OpenNMS/opennms/commit/9c2503ccf0e1f0abbd2b47a991cefcfebb33327c
Author: Jose Anes <[email protected]>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/GroupsRestService.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/GroupsRestServiceIT.java
M ui/src/components/ManageGroups/GroupEditorDialog.vue
A ui/src/components/ManageGroups/GroupsHelpPanel.vue
M ui/src/containers/ManageGroups.vue
Log Message:
-----------
NMS-20107: review fixes, category handling, and in-context help
Fixes from self-review. Duty schedules with begin after end are rejected
for new entries — DutySchedule.isInSchedule compares within one calendar
day, so an overnight range never matches and would silently take the
group off duty; strings already stored on the record keep round-tripping
so hand-edited files never make a group uneditable. Delete and rename go
through GroupService so the DB category authorizations are cleared and
migrated as the legacy page did (deleting a group otherwise leaked its
authorizations to a future group reusing the name). Renames re-point the
on-call roles in memory first, so the rename's single save persists
groups and roles together, with the role changes reverted on failure.
Both v2 services now serialize on a shared monitor because user
mutations cascade into GroupManager. Dot-segment names are rejected, and
clearing the comments field works (an explicit empty string clears; an
omitted key still preserves).
Adds a collapsed "?" help panel explaining what groups are for and how
to use the page, including the escalation-order and rename semantics.
Commit: 36d60b46916dce54c9e4740287cb81bd6a97a285
https://github.com/OpenNMS/opennms/commit/36d60b46916dce54c9e4740287cb81bd6a97a285
Author: Jose Anes <[email protected]>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M ui/src/components/ManageGroups/GroupEditorDialog.vue
M ui/src/components/ManageGroups/GroupRenameDialog.vue
M ui/src/components/ManageGroups/GroupsTable.vue
A ui/src/lib/adminValidation.ts
M ui/src/services/groupAdminService.ts
M ui/src/stores/groupAdminStore.ts
A ui/tests/components/AdminDialogs/GroupEditorDialog.test.ts
A ui/tests/lib/adminValidation.test.ts
M ui/tests/stores/groupAdminStore.test.ts
Log Message:
-----------
NMS-20107: validate group fields inline and surface API errors in the dialogs
Same treatment as the users page: group mutations return the server's error
message and the editor/rename dialogs show it inline instead of relying on a
toast hidden behind the modal; the group name and comments fields get live
client-side checks mirroring the server rules, and groups with names the
security filter cannot address in a URL path show a file-managed note in
place of row actions.
Commit: 5cf1dc9dfc9e0cbfecbf2c94f977d40013d93085
https://github.com/OpenNMS/opennms/commit/5cf1dc9dfc9e0cbfecbf2c94f977d40013d93085
Author: Jose Anes <[email protected]>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/GroupsRestService.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/GroupsRestServiceIT.java
Log Message:
-----------
NMS-20107: grandfather stale group members on update
A hand-edited groups.xml can reference a user that no longer exists; since
the editor always sends the full member list, the unknown-user check made
such groups uneditable. Members already stored on the group now skip the
existence check, matching the duty-schedule and on-call-schedule handling;
members new to a request must still resolve to a real user.
Commit: 64a64393527df8a64b81e12eb46fad5c73fc1fe4
https://github.com/OpenNMS/opennms/commit/64a64393527df8a64b81e12eb46fad5c73fc1fe4
Author: Jose Anes <[email protected]>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/GroupsRestService.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/GroupsRestServiceIT.java
M ui/src/components/ManageGroups/GroupEditorDialog.vue
M ui/src/lib/adminValidation.ts
M ui/tests/components/AdminDialogs/GroupEditorDialog.test.ts
M ui/tests/lib/adminValidation.test.ts
Log Message:
-----------
NMS-20107: close review findings on the groups API and editor
The name and comments regexes now scan for forbidden characters instead of
full-string matches a newline could bypass. Hand-edited comments containing
markup characters are grandfathered while unchanged — server-side and in
the editor — so such groups stay editable; changed comments are still
validated. The rename rollback no longer re-points on-call roles in memory
when the rename already persisted to groups.xml (only the DB category
migration failed), which would have diverged memory from the file; that
case now reports the partial failure explicitly.
Commit: 02faec42dd5e9a88d1cd62d3642f1ed20c5a4e8f
https://github.com/OpenNMS/opennms/commit/02faec42dd5e9a88d1cd62d3642f1ed20c5a4e8f
Author: Jose Anes <[email protected]>
Date: 2026-07-30 (Thu, 30 Jul 2026)
Changed paths:
M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
Log Message:
-----------
NMS-20107: follow the Manage Groups menu entry to the new page in MenuHeaderIT
The menu entry now lands on the Vue page, so the smoke test waits for its
page title instead of the legacy JSP breadcrumb.
Commit: 601df07eea341fb1a9fdac7d2d595761cea7c67f
https://github.com/OpenNMS/opennms/commit/601df07eea341fb1a9fdac7d2d595761cea7c67f
Author: Jose Anes <[email protected]>
Date: 2026-08-04 (Tue, 04 Aug 2026)
Changed paths:
M ui/src/components/ManageGroups/GroupEditorDialog.vue
M ui/src/components/ManageGroups/GroupRenameDialog.vue
M ui/src/components/ManageGroups/GroupsTable.vue
Log Message:
-----------
NMS-20107: use @opennms/onms-ui wrappers on the Manage Groups page
Swap direct PrimeVue for the Onms-XXX seam wrappers across the groups
table and its editor/rename dialogs: Button->OnmsButton (text/outlined
mapped to variant), Dialog->OnmsDialog, InputText->OnmsInputText,
Select->OnmsSelect, DataTable->OnmsTable, Column->OnmsColumn, Tag->OnmsTag.
Message and IftaLabel have no wrapper yet and stay on PrimeVue. No
behaviour change.
Commit: 3d5c6cd42420c3a5582764b203ac19019ebf4a4b
https://github.com/OpenNMS/opennms/commit/3d5c6cd42420c3a5582764b203ac19019ebf4a4b
Author: Jose Anes <[email protected]>
Date: 2026-08-04 (Tue, 04 Aug 2026)
Changed paths:
M ui/src/components/ManageGroups/GroupEditorDialog.vue
M ui/src/components/ManageGroups/GroupRenameDialog.vue
Log Message:
-----------
NMS-20107: address review — OnmsIconButton for icon-only buttons, OnmsDialog width prop
Icon-only buttons (add member, move up/down, remove) now use OnmsIconButton
with icon components instead of OnmsButton with a fallthrough icon="pi ...";
dialog sizing routes through the OnmsDialog width prop (min(Npx, 95vw)) rather
than :style. Both defeat the seam by riding $attrs into PrimeVue.
Commit: 03eb1887a5244495161dbdc9f807fd27c2eb1bf6
https://github.com/OpenNMS/opennms/commit/03eb1887a5244495161dbdc9f807fd27c2eb1bf6
Author: Jose Anes <[email protected]>
Date: 2026-08-13 (Thu, 13 Aug 2026)
Changed paths:
M opennms-config/src/main/java/org/opennms/netmgt/config/GroupManager.java
A opennms-config/src/test/java/org/opennms/netmgt/config/GroupManagerRenameTest.java
Log Message:
-----------
NMS-20107: make group rename atomic so a failed save leaves no phantom
GroupManager.renameGroup mutated the in-memory map (removed the old key, set
the new name, put the new key) before calling saveGroups(). If that save threw,
memory held the rename while groups.xml still held the old name, and the
mtime-gated update() would never re-read. GroupsRestService then read that
phantom through hasGroup(), mistook it for a persisted rename, reported the
wrong failure, and skipped its role rollback -- serving the phantom plus the
repointed roles until restart.
Roll the in-memory rename back when the save fails, so hasGroup() only ever
reports what groups.xml actually received and the caller's rollback runs on the
real failure. New GroupManagerRenameTest covers both the rolled-back and the
committed paths.
Commit: 3626a369dfe5509e2a9f6c2d0bf62a45e169f4c9
https://github.com/OpenNMS/opennms/commit/3626a369dfe5509e2a9f6c2d0bf62a45e169f4c9
Author: Jose Anes <[email protected]>
Date: 2026-08-13 (Thu, 13 Aug 2026)
Changed paths:
M ui/src/components/ManageGroups/GroupEditorDialog.vue
M ui/src/components/ManageGroups/GroupRenameDialog.vue
M ui/tests/components/AdminDialogs/GroupEditorDialog.test.ts
Log Message:
-----------
NMS-20107: bring Manage Groups dialogs onto the current onms-ui seam
Drop the nested primevue IftaLabel from every field for FormField's own
label/for/required/error props, and replace the direct primevue Message error
banners with a themed role=alert element, so the dialogs no longer import any
un-wrapped PrimeVue primitive. Field errors now render through FormField (the
test selectors follow the FormField-generated error ids).
Commit: bcaa96d942127c274edefa194a978d265fbc7f2a
https://github.com/OpenNMS/opennms/commit/bcaa96d942127c274edefa194a978d265fbc7f2a
Author: Jose Anes <[email protected]>
Date: 2026-08-13 (Thu, 13 Aug 2026)
Changed paths:
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/GroupsRestService.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/model/GroupDto.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/model/GroupRenameRequest.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/GroupsRestServiceIT.java
M ui/src/components/ManageGroups/GroupEditorDialog.vue
M ui/src/components/ManageGroups/GroupsTable.vue
M ui/src/services/groupAdminService.ts
M ui/src/types/groupAdmin.ts
M ui/tests/components/AdminDialogs/GroupEditorDialog.test.ts
M ui/tests/stores/groupAdminStore.test.ts
Log Message:
-----------
NMS-20107: make the v2 groups API pure camelCase JSON
Drop the JAXB annotations from GroupDto and GroupRenameRequest so they
serialize as plain camelCase JSON (users, dutySchedules, newName) instead of
the hyphenated/singular XML element names, and carry that through the UI type,
service, dialogs, table, and tests. The groups.xml mapping already lives in the
REST service. Also swap the hand-rolled isBlank/trimToNull helpers for
org.apache.commons.lang3.StringUtils, matching the users service.
Commit: 6a2c064cb74768924b7256df1bf07ba3e769d229
https://github.com/OpenNMS/opennms/commit/6a2c064cb74768924b7256df1bf07ba3e769d229
Author: Jose Anes <[email protected]>
Date: 2026-08-13 (Thu, 13 Aug 2026)
Changed paths:
M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
Log Message:
-----------
NMS-20107: point the Manage Groups menu entry to the Vue page in the default template too
menu-template-default.json must stay identical to menu-template.json.
Commit: 4afadebe50c192b01c748d45149e69cf013582b3
https://github.com/OpenNMS/opennms/commit/4afadebe50c192b01c748d45149e69cf013582b3
Author: Jose Anes <[email protected]>
Date: 2026-08-13 (Thu, 13 Aug 2026)
Changed paths:
A ui/src/components/Common/AboutDialogButton.vue
A ui/src/components/ManageGroups/GroupsAbout.vue
R ui/src/components/ManageGroups/GroupsHelpPanel.vue
M ui/src/components/ManageGroups/GroupsTable.vue
M ui/src/containers/ManageGroups.vue
Log Message:
-----------
NMS-20107: adopt the Info-dialog help and overflow-menu row actions
Mirror the Manage Users pattern: replace the inline About panel with an
Info-icon button in the table header that opens the help copy in an OnmsDialog
(shared AboutDialogButton), and collapse the per-row buttons to inline Edit and
Delete plus a overflow OnmsMenu carrying Rename. Protected-group disabling and
the file-managed note for unaddressable names are unchanged.
Commit: 146d78018632ee545c5436d924bf12d0fc847d8d
https://github.com/OpenNMS/opennms/commit/146d78018632ee545c5436d924bf12d0fc847d8d
Author: Jose Anes <[email protected]>
Date: 2026-08-18 (Tue, 18 Aug 2026)
Changed paths:
M .circleci/README.md
M .circleci/config.yml
M .circleci/epoch
M .circleci/main/jobs/build/build-ui.yml
M .circleci/main/jobs/publish.yml
M .circleci/main/jobs/tests/integration/integration-test.yml
M .circleci/main/parameters.yml
M .circleci/main/workflows/workflows_v2.json
M .circleci/pyscripts/library/cci_components/workflow.py
M .circleci/pyscripts/process_generate.py
M .circleci/trivy-config/trivyignore
M .gitignore
R bin/adoc-to-markdown.sh
R bin/bamboo.pl
R bin/deploy.pl
R bin/nightly-debian.sh
R bin/nightly-jar.sh
R bin/nightly-rpm.sh
R bin/repo.spec
R bin/run-tests.pl
R bin/seriallist.sh
M container/features/pom.xml
M container/features/src/main/resources/features-core.xml
M container/features/src/main/resources/features-sentinel.xml
M container/features/src/main/resources/features.xml
M container/karaf/pom.xml
M container/karaf/src/main/filtered-resources/etc/custom.properties
M container/karaf/src/main/internal/features-processing.xml
A container/pax-url-aether-patch/pom.xml
A container/plexus-utils-relocated/pom.xml
M container/pom.xml
M container/shared/pom.xml
M container/shared/src/main/internal/features-processing.xml
M core/daemon/pom.xml
M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Invoker.java
M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Manager.java
M core/daemon/src/main/java/org/opennms/netmgt/vmmgr/Starter.java
A core/daemon/src/main/java/org/opennms/netmgt/vmmgr/StartupLifecycleHook.java
M core/ipc/sink/kafka/itests/src/test/java/org/opennms/core/ipc/sink/kafka/itests/HeartbeatSinkIT.java
M core/ipc/sink/kafka/server/src/main/java/org/opennms/core/ipc/sink/kafka/server/KafkaMessageConsumerManager.java
M core/lib/src/main/java/org/opennms/core/utils/ConfigFileConstants.java
M core/tracing/jaeger-osgi/pom.xml
M core/upgrade/src/test/java/org/opennms/upgrade/implementations/EOLServiceConfigMigratorOfflineTest.java
M core/upgrade/src/test/java/org/opennms/upgrade/implementations/ServiceConfig1701MigratorOfflineTest.java
M core/upgrade/src/test/java/org/opennms/upgrade/implementations/ServiceConfigMigratorOfflineTest.java
M core/web-assets/.node-version
M core/web-assets/package.json
M core/web-assets/pnpm-lock.yaml
M core/web-assets/src/main/assets/js/apps/notifications/index.js
M core/web-assets/src/main/assets/js/vendor/ipaddress-js.js
M core/web-assets/src/main/assets/style/opennms-theme.scss
M core/web-assets/src/test/javascript/ipaddress.test.js
M debian/changelog
R debian/opennms-contrib.dirs
R dependencies/activemq-web/pom.xml
R dependencies/activemq-web/src/license/THIRD-PARTY.properties
M dependencies/activemq/pom.xml
A dependencies/angus-mail-shaded/pom.xml
R dependencies/asterisk/pom.xml
M dependencies/cxf/pom.xml
R dependencies/javamail/pom.xml
R dependencies/javamail/src/license/THIRD-PARTY.properties
M dependencies/jaxb/pom.xml
M dependencies/pom.xml
R dependencies/smack/pom.xml
M dependencies/spring-security/pom.xml
R dependencies/twitter4j/pom.xml
M docs/antora.yml
M docs/modules/development/pages/rest/info.adoc
M docs/modules/operation/nav.adoc
M docs/modules/operation/pages/deep-dive/admin/configuration/token-authentication.adoc
A docs/modules/operation/pages/deep-dive/admin/high-availability.adoc
M docs/modules/operation/pages/deep-dive/events/event-tokens.adoc
M docs/modules/operation/pages/deep-dive/events/scriptd.adoc
M docs/modules/operation/pages/deep-dive/meta-data.adoc
M docs/modules/operation/pages/deep-dive/notifications/bonus-strategies.adoc
M docs/modules/operation/pages/deep-dive/notifications/commands.adoc
M docs/modules/operation/pages/deep-dive/notifications/configuration.adoc
M docs/modules/operation/pages/deep-dive/notifications/introduction.adoc
R docs/modules/operation/pages/deep-dive/notifications/strategies/mattermost.adoc
A docs/modules/operation/pages/deep-dive/notifications/strategies/scripting.adoc
R docs/modules/operation/pages/deep-dive/notifications/strategies/slack.adoc
A docs/modules/operation/pages/deep-dive/notifications/strategies/ticket.adoc
A docs/modules/operation/pages/deep-dive/notifications/strategies/webhook.adoc
M docs/modules/operation/pages/quick-start/beyond-qs.adoc
M docs/modules/operation/pages/quick-start/notifications.adoc
M docs/modules/reference/pages/configuration/system-properties.adoc
M docs/modules/reference/pages/daemons/daemon-config-files/notifd.adoc
M docs/modules/reference/pages/daemons/introduction.adoc
M docs/modules/reference/pages/karaf-shell/karaf-shell.adoc
M docs/modules/reference/pages/provisioning/detectors/BsfDetector.adoc
M docs/modules/reference/pages/service-assurance/monitors/BSFMonitor.adoc
M docs/modules/reference/pages/service-assurance/monitors/MailTransportMonitor.adoc
M docs/modules/releasenotes/pages/changelog.adoc
M docs/modules/releasenotes/pages/whatsnew.adoc
M features/config/pom.xml
M features/config/test/src/test/java/org/opennms/features/config/service/util/BeanFieldCopyUtilTest.java
R features/config/util/pom.xml
R features/config/util/src/license/THIRD-PARTY.properties
R features/config/util/src/main/java/org/opennms/features/config/util/json/YesNoDeserializer.java
R features/config/util/src/test/java/org/opennms/features/config/util/YesNoDeserializerTest.java
M features/distributed/dao/api/pom.xml
M features/distributed/dao/impl/pom.xml
M features/distributed/kv-store/blob/blob-itests/pom.xml
M features/events/daemon/src/main/java/org/opennms/netmgt/eventd/Eventd.java
M features/events/syslog/pom.xml
M features/events/syslog/src/main/java/org/opennms/netmgt/syslogd/RadixTreeParser.java
M features/events/syslog/src/test/java/org/opennms/netmgt/syslogd/SyslogMessageTest.java
R features/executor-factory/cassandra/pom.xml
R features/executor-factory/cassandra/src/license/THIRD-PARTY.properties
R features/executor-factory/cassandra/src/main/java/org/opennms/core/concurrent/cassandra/ExecutorFactoryCassandraSEPImpl.java
R features/executor-factory/pom.xml
A features/ha-management/ha-api/pom.xml
A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaConfiguration.java
A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaInstanceState.java
A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaMode.java
A features/ha-management/ha-api/src/main/java/org/opennms/netmgt/ha/HaRole.java
A features/ha-management/ha-daemon/pom.xml
A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/DbConnectionFactory.java
A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaConfigSyncer.java
A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaHeartbeatWriter.java
A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStartupCoordinator.java
A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStartupLifecycleHook.java
A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaStatusSchema.java
A features/ha-management/ha-daemon/src/main/java/org/opennms/netmgt/ha/HaSyncFiles.java
A features/ha-management/ha-daemon/src/main/resources/META-INF/services/org.opennms.netmgt.vmmgr.StartupLifecycleHook
A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/DbConnectionFactoryTest.java
A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaConfigSyncerTest.java
A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaStartupCoordinatorTest.java
A features/ha-management/ha-daemon/src/test/java/org/opennms/netmgt/ha/HaStartupLifecycleHookTest.java
A features/ha-management/ha-rest/pom.xml
A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/HaRestService.java
A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/dto/HaInstanceStatusDto.java
A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/dto/HaStatusCollectionDto.java
A features/ha-management/ha-rest/src/main/java/org/opennms/netmgt/ha/rest/impl/HaRestServiceImpl.java
A features/ha-management/ha-rest/src/main/resources/OSGI-INF/blueprint/blueprint.xml
A features/ha-management/ha-shell/pom.xml
A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaConfigCommand.java
A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaFailoverCommand.java
A features/ha-management/ha-shell/src/main/java/org/opennms/netmgt/ha/shell/HaStatusCommand.java
A features/ha-management/pom.xml
M features/jest/dependencies/pom.xml
M features/jest/feature/pom.xml
M features/minion/repository/pom.xml
M features/minion/repository/src/assembly/repo.xml
M features/newts-repository-converter/pom.xml
M features/newts/pom.xml
M features/notifications/ticket-strategy/src/main/java/org/opennms/netmgt/notifd/TicketNotificationStrategy.java
M features/notifications/ticket-strategy/src/test/java/org/opennms/netmgt/notifd/TicketNotificationStrategyTest.java
R features/nrtg/commander/logs/NRTCollector/NRTCollector.log
R features/nrtg/commander/pom.xml
R features/nrtg/commander/src/license/THIRD-PARTY.properties
R features/nrtg/commander/src/main/java/org/opennms/nrtg/commander/internal/CollectionCommanderStarter.java
R features/nrtg/commander/src/main/java/org/opennms/nrtg/commander/internal/JmsExceptionListener.java
R features/nrtg/commander/src/main/java/org/opennms/nrtg/commander/internal/JobPublisher.java
R features/nrtg/commander/src/main/java/org/opennms/nrtg/commander/internal/PooledJobPublisher.java
R features/nrtg/commander/src/main/java/org/opennms/nrtg/commander/internal/SimpleJobPublisher.java
R features/nrtg/commander/src/main/java/org/opennms/nrtg/commander/internal/config/AppConfig.java
R features/nrtg/commander/src/main/resources/logback.xml
R features/nrtg/commander/src/test/resources/logback-test.xml
R features/nrtg/jar/nrtcollector/logs/NRTCollector/NRTCollector.log
R features/nrtg/jar/nrtcollector/pom.xml
R features/nrtg/jar/nrtcollector/src/license/THIRD-PARTY.properties
R features/nrtg/jar/nrtcollector/src/main/java/org/opennms/nrtg/jar/nrtcollector/AppConfig.java
R features/nrtg/jar/nrtcollector/src/main/java/org/opennms/nrtg/jar/nrtcollector/NrtCollectorStarter.java
R features/nrtg/jar/nrtcollector/src/main/resources/OSGI-INF/blueprint/blueprint.xml
R features/nrtg/jar/nrtcollector/src/main/resources/logback.xml
R features/nrtg/jar/pom.xml
M features/nrtg/nrtcollector/pom.xml
M features/nrtg/pom.xml
M features/nrtg/protocolcollector/tca/pom.xml
R features/nrtg/system-exports/pom.xml
M features/poller/monitors/core/pom.xml
M features/poller/monitors/core/src/main/java/org/opennms/netmgt/poller/monitors/MailTransportMonitor.java
M features/poller/pom.xml
R features/poller/runtime/pom.xml
M features/pom.xml
M features/reporting/dao/pom.xml
M features/reporting/sdo/pom.xml
M features/springframework-security/src/main/java/org/opennms/web/springframework/security/LoginModuleUtils.java
A features/springframework-security/src/test/java/org/opennms/web/springframework/security/LoginModuleUtilsTest.java
M features/ticketing/jira-client/pom.xml
M features/topology-map/poms/pom.xml
R features/topology-map/poms/wrappers/pom.xml
M features/wsman/pom.xml
M integration-tests/config/pom.xml
M integration-tests/config/src/test/java/org/opennms/netmgt/config/WillItUnmarshalIT.java
M opennms-ackd/pom.xml
M opennms-ackd/src/main/java/org/opennms/netmgt/ackd/readers/MailAckProcessor.java
M opennms-ackd/src/test/java/org/opennms/netmgt/ackd/readers/JavaMailAckReaderIT.java
M opennms-alarms/bsf-northbounder/pom.xml
M opennms-alarms/bsf-northbounder/src/main/java/org/opennms/netmgt/alarmd/northbounder/bsf/BSFEngineHandler.java
M opennms-alarms/bsf-northbounder/src/main/resources/xsds/bsf-northbounder-configuration.xsd
R opennms-alarms/http-northbounder/pom.xml
R opennms-alarms/http-northbounder/src/license/THIRD-PARTY.properties
R opennms-alarms/http-northbounder/src/main/java/org/opennms/netmgt/alarmd/northbounder/http/HttpNorthbounder.java
R opennms-alarms/http-northbounder/src/main/java/org/opennms/netmgt/alarmd/northbounder/http/HttpNorthbounderConfig.java
R opennms-alarms/http-northbounder/src/main/resources/META-INF/opennms/component-dao.xml
R opennms-alarms/http-northbounder/src/test/java/org/opennms/netmgt/alarmd/northbounder/http/HttpNorthBounderTest.java
R opennms-alarms/http-northbounder/src/test/java/org/opennms/netmgt/alarmd/northbounder/http/JAXBTest.java
R opennms-alarms/http-northbounder/src/test/resources/test-context.xml
M opennms-alarms/pom.xml
M opennms-assemblies/minion/src/main/filtered/debian/changelog
M opennms-assemblies/sentinel/src/main/filtered/debian/changelog
M opennms-assemblies/webapp-full/pom.xml
R opennms-asterisk/pom.xml
R opennms-asterisk/src/license/THIRD-PARTY.properties
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/AsteriskGateway.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/jmx/AsteriskGateway.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/jmx/AsteriskGatewayMBean.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/BaseOnmsAgiScript.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/LouieLouieLyricsAgiScript.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/agi/scripts/ReadNoticeDetailsAgiScript.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/monitor/AsteriskSIPPeerMonitor.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskConfig.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskOriginator.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskOriginatorException.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/asterisk/utils/AsteriskUtils.java
R opennms-asterisk/src/main/java/org/opennms/netmgt/notifd/asterisk/AsteriskOriginateNotificationStrategy.java
R opennms-asterisk/src/main/resources/META-INF/opennms/applicationContext-asteriskGateway.xml
R opennms-asterisk/src/main/resources/META-INF/services/org.opennms.netmgt.poller.ServiceMonitor
R opennms-asterisk/src/main/resources/beanRefContext.xml
M opennms-base-assembly/pom.xml
A opennms-base-assembly/src/main/filtered-meridian/etc/ha-configuration.xml
R opennms-base-assembly/src/main/filtered/bin/microblog-auth
M opennms-base-assembly/src/main/filtered/bin/newts-repository-converter
R opennms-base-assembly/src/main/filtered/etc/actiond-configuration.xml
R opennms-base-assembly/src/main/filtered/etc/ami-config.xml
R opennms-base-assembly/src/main/filtered/etc/asterisk-configuration.properties
M opennms-base-assembly/src/main/filtered/etc/bsf-northbounder-configuration.xml
M opennms-base-assembly/src/main/filtered/etc/examples/destinationPaths.xml
M opennms-base-assembly/src/main/filtered/etc/examples/event-proxy/scriptd-configuration.xml
M opennms-base-assembly/src/main/filtered/etc/examples/javamail-configuration.properties
M opennms-base-assembly/src/main/filtered/etc/examples/notificationCommands.xml
M opennms-base-assembly/src/main/filtered/etc/examples/scriptd-configuration.xml
R opennms-base-assembly/src/main/filtered/etc/examples/scriptd-event-forwarder.bsh
A opennms-base-assembly/src/main/filtered/etc/examples/scriptd-event-forwarder.groovy
M opennms-base-assembly/src/main/filtered/etc/examples/service-configuration.xml.default
M opennms-base-assembly/src/main/filtered/etc/javamail-configuration.properties
M opennms-base-assembly/src/main/filtered/etc/javamail-configuration.xml
M opennms-base-assembly/src/main/filtered/etc/log4j2.xml
R opennms-base-assembly/src/main/filtered/etc/microblog-configuration.xml
M opennms-base-assembly/src/main/filtered/etc/notificationCommands.xml
M opennms-base-assembly/src/main/filtered/etc/opennms.properties
M opennms-base-assembly/src/main/filtered/etc/opennms.service
M opennms-base-assembly/src/main/filtered/etc/scriptd-configuration.xml
M opennms-base-assembly/src/main/filtered/etc/service-configuration.xml
R opennms-base-assembly/src/main/filtered/etc/xmpp-configuration.properties
M opennms-config-api/src/main/java/org/opennms/netmgt/config/api/UserConfig.java
M opennms-config-model/pom.xml
R opennms-config-model/src/main/java/org/opennms/netmgt/config/actiond/ActiondConfiguration.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/actiond/package-info.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/AmiAgentConfig.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/AmiConfig.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/Definition.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/Range.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/ami/package-info.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/microblog/MicroblogConfiguration.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/microblog/MicroblogProfile.java
R opennms-config-model/src/main/java/org/opennms/netmgt/config/microblog/package-info.java
M opennms-config-model/src/main/resources/defaults/service-configuration.xml
R opennms-config-model/src/main/resources/xsds/actiond-configuration.xsd
R opennms-config-model/src/main/resources/xsds/ami-config.xsd
R opennms-config-model/src/main/resources/xsds/microblog-configuration.xsd
M opennms-config-model/src/main/resources/xsds/users.xsd
R opennms-config-model/src/test/java/org/opennms/netmgt/config/actiond/ActiondConfigurationTest.java
R opennms-config-model/src/test/java/org/opennms/netmgt/config/ami/AmiConfigTest.java
R opennms-config-model/src/test/java/org/opennms/netmgt/config/microblog/MicroblogConfigurationTest.java
M opennms-config-model/src/test/java/org/opennms/netmgt/config/scriptd/ScriptdConfigurationTest.java
M opennms-config-tester/src/main/resources/META-INF/opennms/applicationContext-configTester.xml
M opennms-config-tester/src/test/java/org/opennms/netmgt/config/tester/ConfigTesterTest.java
R opennms-config/src/main/java/org/opennms/netmgt/config/ActiondConfigFactory.java
R opennms-config/src/main/java/org/opennms/netmgt/config/AmiPeerFactory.java
M opennms-config/src/main/java/org/opennms/netmgt/config/NotificationManager.java
M opennms-config/src/main/java/org/opennms/netmgt/config/UserManager.java
A opennms-config/src/main/java/org/opennms/netmgt/config/tokenauth/TokenScope.java
M opennms-config/src/main/resources/META-INF/opennms/applicationContext-token-auth.xml
M opennms-config/src/main/resources/META-INF/opennms/component-dao.xml
R opennms-config/src/test/java/org/opennms/netmgt/config/AmiPeerFactoryTest.java
A opennms-config/src/test/java/org/opennms/netmgt/config/tokenauth/TokenScopeTest.java
R opennms-config/src/test/resources/etc/ami-config.xml
M opennms-container/common.mk
M opennms-container/core/Dockerfile
M opennms-container/core/container-fs/confd/templates/service-configuration.xml.tmpl
M opennms-container/core/container-fs/health.sh
M opennms-container/minion/Dockerfile
M opennms-container/sentinel/Dockerfile
M opennms-correlation/drools-correlation-engine/pom.xml
M opennms-correlation/drools-correlation-engine/src/test/java/org/opennms/netmgt/correlation/drools/DroolsConfigurationTest.java
R opennms-dao-api/src/main/java/org/opennms/netmgt/dao/api/MicroblogConfigurationDao.java
R opennms-dao/src/main/java/org/opennms/netmgt/dao/jaxb/DefaultMicroblogConfigurationDao.java
M opennms-enterprise-reporting/opennms-reportd/pom.xml
M opennms-enterprise-reporting/opennms-reportd/src/main/java/org/opennms/netmgt/reporting/service/JavaMailDeliveryService.java
M opennms-full-assembly/pom.xml
M opennms-full-assembly/src/assembly/components/osgi.xml
M opennms-full-assembly/src/license/THIRD-PARTY.properties
M opennms-javamail/opennms-javamail-api/pom.xml
M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailer.java
M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailer2.java
M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaMailerConfig.java
M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaReadMailer.java
M opennms-javamail/opennms-javamail-api/src/main/java/org/opennms/javamail/JavaSendMailer.java
A opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerConfigTokenTest.java
M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerTest.java
A opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaMailerWireTest.java
M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaReadMailerTest.java
M opennms-javamail/opennms-javamail-api/src/test/java/org/opennms/javamail/JavaSendMailerTest.java
A opennms-openapi-docs/README.adoc
A opennms-openapi-docs/pom.xml
A opennms-openapi-docs/src/main/java/org/opennms/openapi/OpenApiDocGenerator.java
A opennms-openapi-docs/src/main/java/org/opennms/openapi/OpenApiDocWriter.java
A opennms-openapi-docs/src/test/java/org/opennms/openapi/OpenApiDocsContentTest.java
A opennms-openapi-docs/src/test/java/org/opennms/openapi/OpenApiResourceCoverageTest.java
R opennms-provision/opennms-snmp-scanners/pom.xml
R opennms-provision/opennms-snmp-scanners/src/license/THIRD-PARTY.properties
R opennms-provision/opennms-snmp-scanners/src/main/java/org/opennms/netmgt/provision/scan/snmp/AbstractSnmpScanner.java
R opennms-provision/opennms-snmp-scanners/src/main/java/org/opennms/netmgt/provision/scan/snmp/SnmpNodeScanner.java
R opennms-provision/opennms-snmp-scanners/src/test/java/org/opennms/netmgt/provision/scan/snmp/SnmpNodeScannerTest.java
R opennms-provision/opennms-snmp-scanners/src/test/resources/emptyContext.xml
R opennms-provision/opennms-snmp-scanners/src/test/resources/org/opennms/netmgt/provision/scan/snmp/snmpTestData1.properties
M opennms-provision/pom.xml
M opennms-services/pom.xml
R opennms-services/src/main/java/org/opennms/netmgt/actiond/Actiond.java
R opennms-services/src/main/java/org/opennms/netmgt/actiond/BroadcastEventProcessor.java
R opennms-services/src/main/java/org/opennms/netmgt/actiond/Executor.java
R opennms-services/src/main/java/org/opennms/netmgt/actiond/jmx/Actiond.java
R opennms-services/src/main/java/org/opennms/netmgt/actiond/jmx/ActiondMBean.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/AbstractSlackCompatibleNotificationStrategy.java
M opennms-services/src/main/java/org/opennms/netmgt/notifd/BSFNotificationStrategy.java
M opennms-services/src/main/java/org/opennms/netmgt/notifd/BrowserNotificationStrategy.java
M opennms-services/src/main/java/org/opennms/netmgt/notifd/HttpNotificationStrategy.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/IrcCatNotificationStrategy.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/MattermostNotificationStrategy.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/MicroblogAuthorization.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/MicroblogClient.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/MicroblogDMNotificationStrategy.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/MicroblogNotificationStrategy.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/MicroblogReplyNotificationStrategy.java
M opennms-services/src/main/java/org/opennms/netmgt/notifd/NotificationTask.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/SlackNotificationStrategy.java
A opennms-services/src/main/java/org/opennms/netmgt/notifd/WebhookNotificationStrategy.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/XMPPGroupNotificationStrategy.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/XMPPNotificationManager.java
R opennms-services/src/main/java/org/opennms/netmgt/notifd/XMPPNotificationStrategy.java
M opennms-services/src/main/java/org/opennms/netmgt/notifd/browser/BrowserNotificationMessage.java
M opennms-services/src/main/java/org/opennms/netmgt/scriptd/helper/SnmpTrapHelper.java
M opennms-services/src/test/java/org/opennms/netmgt/notifd/BSFNotificationStrategyIT.java
R opennms-services/src/test/java/org/opennms/netmgt/notifd/IrcCatNotificationStrategyTest.java
R opennms-services/src/test/java/org/opennms/netmgt/notifd/MattermostNotificationStrategyIT.java
R opennms-services/src/test/java/org/opennms/netmgt/notifd/MattermostNotificationStrategyTestServlet.java
R opennms-services/src/test/java/org/opennms/netmgt/notifd/MicroblogClientTest.java
R opennms-services/src/test/java/org/opennms/netmgt/notifd/SlackCompatibleNotificationStrategyTest.java
R opennms-services/src/test/java/org/opennms/netmgt/notifd/SlackNotificationStrategyIT.java
A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyIT.java
A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyTest.java
A opennms-services/src/test/java/org/opennms/netmgt/notifd/WebhookNotificationStrategyTestServlet.java
R opennms-services/src/test/java/org/opennms/netmgt/notifd/XMPPNotificationTest.java
R opennms-services/src/test/resources/MattermostNotificationStrategyTest/WEB-INF/web.xml
A opennms-services/src/test/resources/WebhookNotificationStrategyTest/WEB-INF/web.xml
R opennms-services/src/test/resources/microblog-configuration.xml
M opennms-services/src/test/resources/opennmsPageSequence.xml
M opennms-util/src/main/java/org/opennms/core/utils/jexl/OnmsJexlUberspect.java
A opennms-util/src/test/java/org/opennms/core/utils/jexl/OnmsJexlSandboxBypassTest.java
M opennms-web-api/pom.xml
M opennms-web-api/src/main/java/org/opennms/web/api/RestUtils.java
R opennms-web-api/src/main/java/org/opennms/web/svclayer/NodeListService.java
R opennms-web-api/src/main/java/org/opennms/web/svclayer/model/NodeListCommand.java
R opennms-web-api/src/main/java/org/opennms/web/svclayer/model/NodeListModel.java
R opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultNodeListService.java
M opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultRequisitionAccessService.java
M opennms-web-api/src/main/java/org/opennms/web/svclayer/support/DefaultSchedulerService.java
A opennms-web-api/src/test/java/org/opennms/web/api/RestUtilsTest.java
M opennms-web-dependencies/pom.xml
M opennms-webapp-rest/pom.xml
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/support/openapi/AbstractStaticOpenApiResource.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/support/openapi/AbstractSwaggerUiResource.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/AssetRecordResource.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/CategoryRestService.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/NodeRestService.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/OnmsIpInterfaceResource.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/OnmsMonitoredServiceResource.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/OnmsSnmpInterfaceResource.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/OpenApiResource.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v1/SwaggerUiResource.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/AbstractDaoRestServiceWithDTO.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/AlarmRestService.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeCategoriesRestService.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeIpInterfacesRestService.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeRestService.java
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/NodeSnmpInterfacesRestService.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/OpenApiResource.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/SwaggerUiResource.java
A opennms-webapp-rest/src/main/resources/openapi/swagger-ui.properties
M opennms-webapp-rest/src/main/webapp/WEB-INF/applicationContext-cxf-rest-v1.xml
M opennms-webapp-rest/src/main/webapp/WEB-INF/applicationContext-cxf-rest-v2.xml
M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-alt.json
M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-legacy.json
M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/menu/MenuProviderTest.java
A opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/openapi/StaticOpenApiResourceTest.java
A opennms-webapp-rest/src/test/java/org/opennms/web/rest/support/openapi/SwaggerUiResourceTest.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v1/CategoryRestServiceIT.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v1/NodeRestServiceIT.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/AlarmRestServiceIT.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/MonitoringLocationRestServiceIT.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/NodeRestServiceIT.java
R opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/OpenApiIT.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/SnmpInterfaceRestServiceIT.java
M opennms-webapp-rest/src/test/resources/dispatcher-servlet.xml
M opennms-webapp-rest/src/test/resources/menu/menu-template.json
A opennms-webapp-rest/src/test/resources/openapi/openapi-stub.json
M opennms-webapp/src/main/java/org/opennms/web/admin/users/UpdateUserServlet.java
M opennms-webapp/src/main/java/org/opennms/web/admin/users/parsers/NotificationInfo.java
R opennms-webapp/src/main/java/org/opennms/web/controller/node/NodeListController.java
M opennms-webapp/src/main/java/org/opennms/web/element/ElementIdNotFoundException.java
M opennms-webapp/src/main/java/org/opennms/web/element/ElementUtil.java
M opennms-webapp/src/main/java/org/opennms/web/notification/NotificationStreamServlet.java
M opennms-webapp/src/main/resources/org/opennms/web/svclayer/applicationContext-svclayer.xml
M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml
R opennms-webapp/src/main/webapp/WEB-INF/jsp/element/nodeList.jsp
R opennms-webapp/src/main/webapp/WEB-INF/tags/element/nodelist.tag
R opennms-webapp/src/main/webapp/WEB-INF/tags/element/pagedList.tag
M opennms-webapp/src/main/webapp/WEB-INF/web.xml
M opennms-webapp/src/main/webapp/account/selfService/index.jsp
M opennms-webapp/src/main/webapp/admin/userGroupView/users/list.jsp
M opennms-webapp/src/main/webapp/admin/userGroupView/users/modifyUser.jsp
M opennms-webapp/src/main/webapp/admin/userGroupView/users/userDetail.jsp
M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
M opennms-webapp/src/main/webapp/includes/help-documentation.jsp
A opennms-webapp/src/main/webapp/includes/notification-optin.jsp
A opennms-webapp/src/main/webapp/notification-sw.js
M opennms-webapp/src/main/webapp/notification/index.jsp
M pom.xml
M runtests.sh
M smoke-test/pom.xml
M smoke-test/src/main/java/org/opennms/smoketest/containers/MockCloudContainer.java
M smoke-test/src/main/java/org/opennms/smoketest/selenium/AbstractOpenNMSSeleniumHelper.java
M smoke-test/src/main/resources/opennms-overlay/etc/notificationCommands.xml
M smoke-test/src/main/resources/opennms-overlay/etc/service-configuration.xml
M smoke-test/src/test/java/org/opennms/smoketest/AdminPasswordGateIT.java
M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
R smoke-test/src/test/java/org/opennms/smoketest/NodeListPageIT.java
M smoke-test/src/test/java/org/opennms/smoketest/NotificationsPageIT.java
M smoke-test/src/test/java/org/opennms/smoketest/ProvisioningNewUIIT.java
M smoke-test/src/test/java/org/opennms/smoketest/UsageStatisticsIT.java
M smoke-test/src/test/java/org/opennms/smoketest/UserIT.java
A smoke-test/src/test/java/org/opennms/smoketest/rest/OpenApiRestIT.java
M smoke-test/src/test/java/org/opennms/smoketest/ui/NodeListIT.java
R src/site/site.xml
A ui/CLAUDE.md
M ui/eslint.config.js
M ui/package.json
A ui/packages/onms-ui-example-plugin/README.md
A ui/packages/onms-ui-example-plugin/package.json
A ui/packages/onms-ui-example-plugin/scripts/verify-dist.mjs
A ui/packages/onms-ui-example-plugin/src/ExampleApp.vue
A ui/packages/onms-ui-example-plugin/src/main.ts
A ui/packages/onms-ui-example-plugin/tsconfig.json
A ui/packages/onms-ui-example-plugin/vite.config.ts
M ui/packages/onms-ui/README.md
M ui/packages/onms-ui/package.json
M ui/packages/onms-ui/src/components/OnmsAutoComplete.vue
M ui/packages/onms-ui/src/components/OnmsListbox.vue
M ui/packages/onms-ui/src/components/OnmsTabs.vue
A ui/packages/onms-ui/src/directives/OnmsTooltip.ts
M ui/packages/onms-ui/src/index.ts
M ui/pnpm-lock.yaml
A ui/src/components/AdhocGraphs/AdhocChart.vue
A ui/src/components/AdhocGraphs/AdhocChartToolbar.vue
A ui/src/components/AdhocGraphs/AdhocGraphBuilder.vue
A ui/src/components/AdhocGraphs/ExpressionEditor.vue
A ui/src/components/AdhocGraphs/RrdDefinitionDialog.vue
A ui/src/components/AdhocGraphs/SelectionColumn.vue
A ui/src/components/AdhocGraphs/SeriesTable.vue
A ui/src/components/AdhocGraphs/utils/adhocColors.ts
A ui/src/components/AdhocGraphs/utils/adhocQuery.ts
A ui/src/components/AdhocGraphs/utils/adhocUrlState.ts
A ui/src/components/AdhocGraphs/utils/jexlToRpn.ts
A ui/src/components/AdhocGraphs/utils/rrdGraphDefinition.ts
M ui/src/components/Configuration/ConfigurationAdvancedPanel.vue
M ui/src/components/Configuration/ConfigurationCopyPasteDisplay.vue
M ui/src/components/Configuration/ConfigurationHelper.ts
M ui/src/components/Configuration/ConfigurationTable.vue
M ui/src/components/Configuration/ProvisionDForm.vue
M ui/src/components/Device/DCBModalConfigDiffContent.vue
M ui/src/components/Device/DCBModalViewHistoryContent.vue
M ui/src/components/Device/DCBTable.vue
M ui/src/components/EventConfiguration/EventConfigUploadFilesTab.vue
M ui/src/components/FileEditor/FileSidebar.vue
M ui/src/components/Menu/Menubar.vue
M ui/src/components/Menu/Search.vue
M ui/src/components/Menu/SideMenu.vue
M ui/src/components/Menu/UserSelfServiceMenuItem.vue
M ui/src/components/Menu/utils.ts
M ui/src/components/Nodes/AssetFilterPanel.vue
M ui/src/components/Nodes/ColumnSelectionDrawer.vue
M ui/src/components/Nodes/ExtendedSearchPanel.vue
M ui/src/components/Nodes/FlowTooltipCell.vue
M ui/src/components/Nodes/ManagementIPTooltipCell.vue
M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
A ui/src/components/Nodes/NodeInterfacesPanel.vue
M ui/src/components/Nodes/NodeTooltipCell.vue
M ui/src/components/Nodes/NodesTable.vue
M ui/src/components/Nodes/hooks/queryStringParser.ts
A ui/src/components/Nodes/hooks/useInterfaceListing.ts
M ui/src/components/Nodes/hooks/useNodeQuery.ts
M ui/src/components/Nodes/utils.ts
M ui/src/components/Resources/Graph.vue
M ui/src/components/Resources/GraphDataTable.vue
M ui/src/components/Resources/Graphs.vue
M ui/src/components/Resources/TimeControls.vue
A ui/src/components/Resources/utils/graphExport.ts
A ui/src/components/Resources/utils/timeRangeOptions.ts
M ui/src/components/SCV/ScvInputIcon.vue
M ui/src/components/SnmpDataCollection/SnmpDataCollectionSourcesTable.vue
A ui/src/composables/useClipboard.ts
M ui/src/composables/useDownload.ts
A ui/src/containers/AdhocGraphs.vue
M ui/src/containers/Nodes.vue
M ui/src/containers/OpenAPI.vue
M ui/src/main/App.vue
M ui/src/main/main.ts
M ui/src/main/router/index.ts
M ui/src/services/index.ts
M ui/src/services/ipInterfaceService.ts
M ui/src/services/localStorageService.ts
M ui/src/services/resourceService.ts
M ui/src/services/snmpDataCollectionService.ts
A ui/src/services/snmpInterfaceService.ts
M ui/src/services/themeService.ts
A ui/src/stores/adhocGraphStore.ts
A ui/src/stores/nodeListStore.ts
M ui/src/stores/nodeStore.ts
R ui/src/stores/nodeStructureStore.ts
M ui/src/styles/opennms-styles.scss
M ui/src/theme/primevue-setup.ts
A ui/src/types/adhocGraph.ts
M ui/src/types/index.ts
A ui/tests/components/AdhocGraphs/AdhocGraphBuilder.test.ts
A ui/tests/components/AdhocGraphs/RrdDefinitionDialog.test.ts
A ui/tests/components/AdhocGraphs/adhocColors.test.ts
A ui/tests/components/AdhocGraphs/adhocQuery.test.ts
A ui/tests/components/AdhocGraphs/adhocUrlState.test.ts
A ui/tests/components/AdhocGraphs/jexlToRpn.test.ts
A ui/tests/components/AdhocGraphs/rrdGraphDefinition.test.ts
A ui/tests/components/Device/dcbModalConfigDiffContent.test.ts
M ui/tests/components/EventConfiguration/EventConfigUploadFilesTab.test.ts
A ui/tests/components/Menu/SideMenu.test.ts
A ui/tests/components/Menu/UserSelfServiceMenuItem.test.ts
M ui/tests/components/Menu/menu-template-test.json
M ui/tests/components/Menu/utils.test.ts
M ui/tests/components/Nodes/AssetFilterPanel.test.ts
M ui/tests/components/Nodes/ColumnSelectionDrawer.test.ts
M ui/tests/components/Nodes/EventsTable.test.ts
M ui/tests/components/Nodes/ExtendedSearchPanel.test.ts
M ui/tests/components/Nodes/IpInterfacesTable.test.ts
M ui/tests/components/Nodes/NodeAdvancedFiltersDrawer.test.ts
A ui/tests/components/Nodes/NodeInterfacesPanel.test.ts
M ui/tests/components/Nodes/NodeTooltipCell.test.ts
M ui/tests/components/Nodes/NodesTable.test.ts
M ui/tests/components/Nodes/OutagesTable.test.ts
M ui/tests/components/Nodes/SnmpInterfacesTable.test.ts
M ui/tests/components/Nodes/hooks/queryStringParser.test.ts
A ui/tests/components/Nodes/hooks/useInterfaceListing.test.ts
M ui/tests/components/Nodes/hooks/useNodeQuery.test.ts
A ui/tests/components/Resources/GraphDataTable.test.ts
A ui/tests/components/Resources/timeRangeOptions.test.ts
M ui/tests/components/SnmpDataCollection/SnmpDataCollectionSourcesTable.test.ts
M ui/tests/components/TrapdConfiguration/GeneralConfiguration.test.ts
A ui/tests/composables/useClipboard.test.ts
M ui/tests/configuration.test.ts
A ui/tests/containers/Nodes.test.ts
A ui/tests/containers/OpenAPI.test.ts
A ui/tests/containers/OpenAPIFetch.test.ts
M ui/tests/deviceConfigBackup.test.ts
M ui/tests/deviceConfigBackupPagination.test.ts
M ui/tests/fileEditor.test.ts
M ui/tests/onms-ui/OnmsAutoComplete.test.ts
M ui/tests/onms-ui/OnmsListbox.test.ts
M ui/tests/onms-ui/OnmsTable.test.ts
M ui/tests/onms-ui/OnmsTabs.test.ts
A ui/tests/onms-ui/OnmsTooltip.test.ts
A ui/tests/onms-ui/exports.test.ts
A ui/tests/resourceGraphExport.test.ts
A ui/tests/resourceGraphPdfExport.test.ts
A ui/tests/services/ipInterfaceService.test.ts
A ui/tests/services/localStorageService.test.ts
A ui/tests/services/snmpInterfaceService.test.ts
A ui/tests/services/themeService.test.ts
A ui/tests/stores/adhocGraphStore.test.ts
A ui/tests/stores/nodeListStore.test.ts
A ui/tests/stores/nodeStore.test.ts
R ui/tests/stores/nodeStructureStore.test.ts
M ui/tsconfig.json
M ui/vite.config.menu.ts
M ui/vite.config.ts
Log Message:
-----------
Merge remote-tracking branch 'origin/develop' into jira/NMS-20107-manage-groups-primevue
Commit: fb0600a758e5c1088bb2221815e916e2af69d5a4
https://github.com/OpenNMS/opennms/commit/fb0600a758e5c1088bb2221815e916e2af69d5a4
Author: Jose Anes <[email protected]>
Date: 2026-08-21 (Fri, 21 Aug 2026)
Changed paths:
M opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/GroupsRestService.java
M opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/GroupsRestServiceIT.java
M ui/src/lib/adminValidation.ts
M ui/src/services/groupAdminService.ts
M ui/tests/lib/adminValidation.test.ts
A ui/tests/services/groupAdminService.test.ts
Log Message:
-----------
NMS-20107: persist category authorizations on rename/delete; fix member picker
Address the review blockers on the Manage Groups API:
- Category authorizations never reached the DB. GroupService.renameGroup and
deleteGroup mutate managed OnmsCategory entities without an explicit save,
and OSIV runs with MANUAL flush, so the changes were silently discarded:
delete left orphaned authorized_group rows and rename dropped the group's
categories. Annotate both REST methods @Transactional so the OSIV session
flushes on commit, matching the legacy @Transactional WebGroupRepository
path. GroupsRestServiceIT now asserts migration on rename and clearing on
delete.
- The member picker was always empty. getGroupMemberCandidates read
resp.data.users, but v1 /rest/users serializes the list under "user"
(@JsonProperty). Read the correct key and cover it with a service test.
Also make the feature's UI files pass pnpm lint.
Commit: 0c41265c6a5635d26248021c0731cece47f9e192
https://github.com/OpenNMS/opennms/commit/0c41265c6a5635d26248021c0731cece47f9e192
Author: joseanesONMS <[email protected]>
Date: 2026-08-24 (Mon, 24 Aug 2026)
Changed paths:
M opennms-config/src/main/java/org/opennms/netmgt/config/GroupManager.java
A opennms-config/src/test/java/org/opennms/netmgt/config/GroupManagerRenameTest.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/GroupsRestService.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/api/GroupsRestApi.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/model/GroupDto.java
A opennms-webapp-rest/src/main/java/org/opennms/web/rest/v2/model/GroupRenameRequest.java
M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template-default.json
M opennms-webapp-rest/src/main/webapp/WEB-INF/menu/menu-template.json
A opennms-webapp-rest/src/test/java/org/opennms/web/rest/v2/GroupsRestServiceIT.java
M opennms-webapp/src/main/webapp/WEB-INF/applicationContext-spring-security.xml
M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
A ui/src/components/Common/AboutDialogButton.vue
A ui/src/components/ManageGroups/GroupEditorDialog.vue
A ui/src/components/ManageGroups/GroupRenameDialog.vue
A ui/src/components/ManageGroups/GroupsAbout.vue
A ui/src/components/ManageGroups/GroupsTable.vue
A ui/src/containers/ManageGroups.vue
A ui/src/lib/adminValidation.ts
M ui/src/main/router/index.ts
A ui/src/services/groupAdminService.ts
M ui/src/services/index.ts
A ui/src/stores/groupAdminStore.ts
A ui/src/types/groupAdmin.ts
A ui/tests/components/AdminDialogs/GroupEditorDialog.test.ts
A ui/tests/lib/adminValidation.test.ts
A ui/tests/services/groupAdminService.test.ts
A ui/tests/stores/groupAdminStore.test.ts
Log Message:
-----------
Merge pull request #8714 from OpenNMS/jira/NMS-20107-manage-groups-primevue
NMS-20107: versioned group management API and PrimeVue Manage Groups page
Compare: https://github.com/OpenNMS/opennms/compare/e9f333dee36c...0c41265c6a56
To unsubscribe from these emails, change your notification settings at https://github.com/OpenNMS/opennms/settings/notifications
_______________________________________________
Please read the OpenNMS Mailing List FAQ:
http://www.opennms.org/wiki/index.php?page=MailingListFaq
opennms-cvs mailing list
To *unsubscribe* or change your subscription options, see the bottom of this page:
https://lists.sourceforge.net/lists/listinfo/opennms-cvs