[OpenNMS/opennms] a2fb99: NMS-20226: Bumped jackson version

Scott Theleman via opennms-cvs <[email protected]>
Newsgroups gmane.network.opennms.cvs
Message-ID <OpenNMS/opennms/push/refs/heads/jira/NMS-20250-dependabot-coreweb-security-issues-august-2026-smoke/[email protected]>
  Branch: refs/heads/jira/NMS-20250-dependabot-coreweb-security-issues-august-2026-smoke
  Home:   https://github.com/OpenNMS/opennms
  Commit: a2fb99634f00ed70f9c4c61b655340c265984b25
      https://github.com/OpenNMS/opennms/commit/a2fb99634f00ed70f9c4c61b655340c265984b25
  Author: Christian Pape <[email protected]>
  Date:   2026-08-20 (Thu, 20 Aug 2026)

  Changed paths:
    M container/features/pom.xml
    M container/features/src/main/resources/features-core.xml
    M container/features/src/main/resources/features-experimental.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/overrides.properties
    M container/shared/pom.xml
    M container/shared/src/main/filtered-resources/etc/overrides.properties
    M container/shared/src/main/filtered-resources/etc/startup.properties
    M dependencies/jackson2/pom.xml
    M features/minion/core/features/src/main/resources/features.xml
    M features/minion/repository/src/assembly/repo.xml
    M features/sentinel/repository/src/assembly/repo.xml
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M pom.xml
    M smoke-test/pom.xml

  Log Message:
  -----------
  NMS-20226: Bumped jackson version


  Commit: 51c9c1102324e54314b98f396f7cced014d7cba9
      https://github.com/OpenNMS/opennms/commit/51c9c1102324e54314b98f396f7cced014d7cba9
  Author: Morteza E <[email protected]>
  Date:   2026-08-20 (Thu, 20 Aug 2026)

  Changed paths:
    M opennms-container/common.mk
    M opennms-container/core/Dockerfile
    M opennms-container/minion/Dockerfile
    M opennms-container/sentinel/Dockerfile
    M smoke-test/src/main/java/org/opennms/smoketest/containers/MockCloudContainer.java

  Log Message:
  -----------
  Upgrade our base images


  Commit: a77516a33f327cad81d610b7e50e20861ad92c61
      https://github.com/OpenNMS/opennms/commit/a77516a33f327cad81d610b7e50e20861ad92c61
  Author: Morteza E <[email protected]>
  Date:   2026-08-20 (Thu, 20 Aug 2026)

  Changed paths:
    M container/features/pom.xml
    M container/features/src/main/resources/features-core.xml
    M container/features/src/main/resources/features-experimental.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M container/features/src/main/resources/overrides.properties
    M container/karaf/pom.xml
    M container/shared/pom.xml
    M container/shared/src/main/filtered-resources/etc/overrides.properties
    M container/shared/src/main/filtered-resources/etc/startup.properties
    M dependencies/jackson2/pom.xml
    M features/minion/core/features/src/main/resources/features.xml
    M features/minion/repository/src/assembly/repo.xml
    M opennms-container/common.mk
    M opennms-container/core/Dockerfile
    M opennms-container/minion/Dockerfile
    M opennms-container/sentinel/Dockerfile
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M pom.xml
    M smoke-test/pom.xml
    M smoke-test/src/main/java/org/opennms/smoketest/containers/MockCloudContainer.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: f97200f01127524bb011673fb2c1b78d6ba47521
      https://github.com/OpenNMS/opennms/commit/f97200f01127524bb011673fb2c1b78d6ba47521
  Author: Morteza E <[email protected]>
  Date:   2026-08-20 (Thu, 20 Aug 2026)

  Changed paths:
    M features/container/sentinel/src/main/internal/features-processing.xml

  Log Message:
  -----------
  missed update


  Commit: a49d84c71a2ba681a4ba760c673f3a8c6542486d
      https://github.com/OpenNMS/opennms/commit/a49d84c71a2ba681a4ba760c673f3a8c6542486d
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-20 (Thu, 20 Aug 2026)

  Changed paths:
    M opennms-config/src/main/java/org/opennms/netmgt/config/EventTranslatorConfigFactory.java
    A opennms-config/src/test/java/org/opennms/netmgt/config/EventTranslatorCloneEventTest.java
    A opennms-config/src/test/java/org/opennms/netmgt/config/EventTranslatorSqlValueTest.java

  Log Message:
  -----------
  NMS-20204: Reduce per-event overhead in the event translator (#8779)

* NMS-20204: Reduce per-event overhead in the event translator

EventTranslatorConfigFactory repeated most of its work on every event.

Value specs exposed matches() and getResult() as separate calls, and
TranslationMapping.translate() invoked both, so each value was resolved
twice per event. For a sql value that meant two connection checkouts,
two prepared statements and two round trips, and nested values were
evaluated three times. ValueSpec now exposes a single evaluate() that
returns whether the value matched along with the value to assign.
EvaluationResult carries the two separately rather than collapsing into
an Optional, because a sql lookup that finds a row with a null column is
a match whose value is null, which must not fall through to the
assignment default.

The matches regex was recompiled on every evaluation, and a "~"-prefixed
parameter name was recompiled once per parm scanned via String.matches.
Both are now compiled once when the value spec is constructed.

translate() cloned the event before running any assignment, so a mapping
that rejected the event still paid for the clone. Assignments are now
resolved against the source event first, which is safe because value
specs only ever read the source event, and the clone happens only once
the mapping is known to match. The early exit on the first assignment
that neither matches nor has a default is preserved, so a rejecting
mapping does no more work than before.

cloneEvent() deep-copied through a Java serialization round trip, which
spent most of its time re-writing class descriptors: 52 us/op against
0.74 us/op for a field copy through the immutable event model. Event
does not implement IEvent, so the copy goes via ImmutableMapper. Both
mappers cover all 34 of Event's fields.

m_translationSpecs is now volatile, since update() clears it while
translateEvent() reads it without synchronization.

No configuration, schema or interface changes.

* NMS-20204: Address review findings in the event translator

Read m_translationSpecs into a local before the null check. Returning the
field directly hands back null when update() clears it in between, and
translateEvent() iterates the result. Two threads racing a reload may now
each construct a list, which is cheaper than putting a lock on the
per-event path.

Fix the misplaced quotes in the two getAttributeValue() debug messages.


  Commit: 9fb0962c2b70773fe5faefe9b9070ea490db426a
      https://github.com/OpenNMS/opennms/commit/9fb0962c2b70773fe5faefe9b9070ea490db426a
  Author: Morteza E <[email protected]>
  Date:   2026-08-20 (Thu, 20 Aug 2026)

  Changed paths:
    M container/features/pom.xml
    M container/features/src/main/resources/features-core.xml
    M container/features/src/main/resources/features-experimental.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M container/features/src/main/resources/overrides.properties
    M container/karaf/pom.xml
    M container/shared/pom.xml
    M container/shared/src/main/filtered-resources/etc/overrides.properties
    M container/shared/src/main/filtered-resources/etc/startup.properties
    M dependencies/jackson2/pom.xml
    M features/container/sentinel/src/main/internal/features-processing.xml
    M features/minion/core/features/src/main/resources/features.xml
    M features/minion/repository/src/assembly/repo.xml
    M opennms-config/src/main/java/org/opennms/netmgt/config/EventTranslatorConfigFactory.java
    A opennms-config/src/test/java/org/opennms/netmgt/config/EventTranslatorCloneEventTest.java
    A opennms-config/src/test/java/org/opennms/netmgt/config/EventTranslatorSqlValueTest.java
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M pom.xml
    M smoke-test/pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into foundation-2026


  Commit: fb9ba8bd48f27eedef18b3f0fbf0cfc8a8c22ca4
      https://github.com/OpenNMS/opennms/commit/fb9ba8bd48f27eedef18b3f0fbf0cfc8a8c22ca4
  Author: Chandra Gorantla <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M docs/modules/reference/pages/performance-data-collection/collectors/xml.adoc
    M protocols/xml/src/main/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandler.java
    M protocols/xml/src/test/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandlerTest.java

  Log Message:
  -----------
  NMS-20206: Fix XXE in XML collector (#8782)

* NMS-20206: Fix XXE in XML collector

Disable external entity/DTD resolution in AbstractXmlCollectionHandler's
DocumentBuilderFactory and TransformerFactory so collected XML cannot read local
files or trigger out-of-band requests. Avoids disallow-doctype-decl to keep
pre-parse-html working. Adds regression tests.

* NMS-20206: Handle review comments

* NMS-20206: Handle some more review comments

Disable external entity/DTD resolution in the DocumentBuilder and, for the
xslt-source-file path, parse the stylesheet and collected source through a
hardened XMLReader (SAXSource) so XXE is blocked even under Xalan. Adds
regression tests.

* NMS-20206: Add some more protections

* NMS-20206: Update docs

* NMS-20206: Add ErrorListener


  Commit: 9dbc420da3b3039d59946b16e978fac9724809a2
      https://github.com/OpenNMS/opennms/commit/9dbc420da3b3039d59946b16e978fac9724809a2
  Author: Chandra Gorantla <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M integration-tests/config/pom.xml

  Log Message:
  -----------
  NMS-20226: Updates missing jackson2AnnotationsVersion


  Commit: 2e76241023e776c97ce55792d9a4ef3af725b6ba
      https://github.com/OpenNMS/opennms/commit/2e76241023e776c97ce55792d9a4ef3af725b6ba
  Author: CI/CD System <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M docs/modules/reference/pages/performance-data-collection/collectors/xml.adoc
    M protocols/xml/src/main/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandler.java
    M protocols/xml/src/test/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandlerTest.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2023' into foundation-2024


  Commit: 42f848bd56e97e86d27bdd30a4c47c4b9c76abe9
      https://github.com/OpenNMS/opennms/commit/42f848bd56e97e86d27bdd30a4c47c4b9c76abe9
  Author: CI/CD System <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M docs/modules/reference/pages/performance-data-collection/collectors/xml.adoc
    M protocols/xml/src/main/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandler.java
    M protocols/xml/src/test/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandlerTest.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: 0187081573367af778ae57b4893a752684835332
      https://github.com/OpenNMS/opennms/commit/0187081573367af778ae57b4893a752684835332
  Author: Chandra Gorantla <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java

  Log Message:
  -----------
  update search element, fix MenuHeaderIT


  Commit: 22c9726c5d87a5a1c5a0e5c8685a7c5e4cbf5096
      https://github.com/OpenNMS/opennms/commit/22c9726c5d87a5a1c5a0e5c8685a7c5e4cbf5096
  Author: Morteza E <[email protected]>
  Date:   2026-08-21 (Fri, 21 Aug 2026)

  Changed paths:
    M docs/modules/reference/pages/performance-data-collection/collectors/xml.adoc
    M protocols/xml/src/main/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandler.java
    M protocols/xml/src/test/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandlerTest.java

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into foundation-2026


  Commit: 609bbc6034793f4c1718b661240b37de63d4aa53
      https://github.com/OpenNMS/opennms/commit/609bbc6034793f4c1718b661240b37de63d4aa53
  Author: mershad-manesh <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M docs/modules/deployment/pages/repos/rhel-centos/horizon-rhel10.adoc

  Log Message:
  -----------
  update RHEL10 instructions (#8812)


  Commit: 798127593134f31e4c3ac7973dfa3a1c0952697a
      https://github.com/OpenNMS/opennms/commit/798127593134f31e4c3ac7973dfa3a1c0952697a
  Author: Morteza E <[email protected]>
  Date:   2026-08-24 (Mon, 24 Aug 2026)

  Changed paths:
    M .circleci/epoch

  Log Message:
  -----------
  force a build


  Commit: 8860e08a486786ee0c926225d8bab38ce51b3e20
      https://github.com/OpenNMS/opennms/commit/8860e08a486786ee0c926225d8bab38ce51b3e20
  Author: Christian Pape <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/db/pom.xml
    M dependencies/quartz/pom.xml

  Log Message:
  -----------
  NMS-20236: use mchange-commons-java version 0.6.1


  Commit: ffdd98b3ed13cd781d3531c482f0d90cd08e2dff
      https://github.com/OpenNMS/opennms/commit/ffdd98b3ed13cd781d3531c482f0d90cd08e2dff
  Author: CI/CD System <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/db/pom.xml
    M dependencies/quartz/pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2024' into foundation-2025


  Commit: e5d10988a35d1b80dbc7fd666e4224c4feb7de5f
      https://github.com/OpenNMS/opennms/commit/e5d10988a35d1b80dbc7fd666e4224c4feb7de5f
  Author: Morteza E <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/db/pom.xml
    M dependencies/quartz/pom.xml

  Log Message:
  -----------
  Merge remote-tracking branch 'origin/foundation-2025' into foundation-2026


  Commit: 8d0a708fb1f395e95a82668005a22eba58c168ac
      https://github.com/OpenNMS/opennms/commit/8d0a708fb1f395e95a82668005a22eba58c168ac
  Author: Marshall Massengill <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M features/graph/provider/legacy/pom.xml
    M features/graph/provider/legacy/src/main/java/org/opennms/netmgt/graph/provider/legacy/LegacyEdge.java
    A features/graph/provider/legacy/src/test/java/org/opennms/netmgt/graph/provider/legacy/LegacyEdgeTest.java
    A features/topology-map/org.opennms.features.topology.api/src/main/java/org/opennms/features/topology/api/topo/LinkDetailsAware.java
    M features/topology-map/plugins/org.opennms.features.topology.plugins.topo.linkd/src/main/java/org/opennms/features/topology/plugins/topo/linkd/internal/LinkdEdge.java
    M features/topology-map/plugins/org.opennms.features.topology.plugins.topo.linkd/src/test/java/org/opennms/features/topology/plugins/topo/linkd/internal/EnhancedLinkdTopologyProviderTest.java

  Log Message:
  -----------
  NMS-20254: Expose a discovered link's interfaces on its graph API edge (#8811)

* NMS-20254: Carry a discovered link's interfaces onto its graph edge

Enlinkd resolves the interface at each end of a link: the rows are one-sided,
but the service layer pairs them and the updaters look each ifIndex up in the
SNMP interface table. The Vaadin plugin keeps that on LinkdEdge's two ports, and
it stopped there, because converting a legacy edge to a graph-API edge kept only
the id, label, namespace and endpoint node refs.

Edges that know their link now say so through LinkDetailsAware, and the
conversion copies both ifIndexes and the discovery protocol into the edge
properties. The graph REST layer already serializes that bag, so nothing there
changed. The interface, rather than an instanceof on the plugin's edge class,
keeps the generic graph module off a Vaadin plugin.

The keys live on LegacyEdge, not GenericProperties, which is offered for any
element. Values are strings because the REST converters have no case for a boxed
Integer and fall back to toString() regardless, as nodeID already does. All
three are optional, and the builder drops nulls, so an end discovery could not
resolve is absent.

Tested against real provider-built edges and their clones, which is all
getEdges() ever returns.

Unblocks the weathermap link metrics, which need (node, ifIndex) per direction.
It does not retire the UI's parseIfIndex regex on its own: that reads
/api/v2/enlinkd/{nodeId}, not /api/v2/graphs.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <[email protected]>

---------

Co-authored-by: Copilot Autofix powered by AI <[email protected]>


  Commit: 0df544da580d0c858a8d0152464fc5377a1deb26
      https://github.com/OpenNMS/opennms/commit/0df544da580d0c858a8d0152464fc5377a1deb26
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M .circleci/epoch
    M container/features/pom.xml
    M container/features/src/main/resources/features-core.xml
    M container/features/src/main/resources/features-experimental.xml
    M container/features/src/main/resources/features-sentinel.xml
    M container/features/src/main/resources/features.xml
    M container/features/src/main/resources/overrides.properties
    M container/karaf/pom.xml
    M container/shared/pom.xml
    M container/shared/src/main/filtered-resources/etc/overrides.properties
    M container/shared/src/main/filtered-resources/etc/startup.properties
    M core/db/pom.xml
    M dependencies/jackson2/pom.xml
    M dependencies/quartz/pom.xml
    M docs/modules/deployment/pages/repos/rhel-centos/horizon-rhel10.adoc
    M docs/modules/reference/pages/performance-data-collection/collectors/xml.adoc
    M features/container/sentinel/src/main/internal/features-processing.xml
    M features/graph/provider/legacy/pom.xml
    M features/graph/provider/legacy/src/main/java/org/opennms/netmgt/graph/provider/legacy/LegacyEdge.java
    A features/graph/provider/legacy/src/test/java/org/opennms/netmgt/graph/provider/legacy/LegacyEdgeTest.java
    M features/minion/core/features/src/main/resources/features.xml
    M features/minion/repository/src/assembly/repo.xml
    A features/topology-map/org.opennms.features.topology.api/src/main/java/org/opennms/features/topology/api/topo/LinkDetailsAware.java
    M features/topology-map/plugins/org.opennms.features.topology.plugins.topo.linkd/src/main/java/org/opennms/features/topology/plugins/topo/linkd/internal/LinkdEdge.java
    M features/topology-map/plugins/org.opennms.features.topology.plugins.topo.linkd/src/test/java/org/opennms/features/topology/plugins/topo/linkd/internal/EnhancedLinkdTopologyProviderTest.java
    M integration-tests/config/pom.xml
    M opennms-config/src/main/java/org/opennms/netmgt/config/EventTranslatorConfigFactory.java
    A opennms-config/src/test/java/org/opennms/netmgt/config/EventTranslatorCloneEventTest.java
    A opennms-config/src/test/java/org/opennms/netmgt/config/EventTranslatorSqlValueTest.java
    M opennms-full-assembly/pom.xml
    M opennms-full-assembly/src/assembly/components/osgi.xml
    M pom.xml
    M protocols/xml/src/main/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandler.java
    M protocols/xml/src/test/java/org/opennms/protocols/xml/collector/AbstractXmlCollectionHandlerTest.java
    M smoke-test/pom.xml
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java

  Log Message:
  -----------
  Merge branch 'foundation-2026' into jira/NMS-20250-dependabot-coreweb-security-issues-august-2026-smoke


  Commit: e57195b8e6c0c914bca00145dc48ce19d843c867
      https://github.com/OpenNMS/opennms/commit/e57195b8e6c0c914bca00145dc48ce19d843c867
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/web-assets/src/main/assets/style/opennms-theme.scss
    M opennms-base-assembly/src/main/filtered/etc/search-actions.xml
    M opennms-webapp/src/main/webapp/WEB-INF/jsp/alarm/list.jsp
    M opennms-webapp/src/main/webapp/account/selfService/passwordGate.jsp
    M opennms-webapp/src/main/webapp/includes/bootstrap-footer.jsp
    M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
    M opennms-webapp/src/main/webapp/login.jsp
    M smoke-test/src/test/java/org/opennms/smoketest/AdminPageIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    M ui/packages/onms-ui/src/components/OnmsDialog.vue
    M ui/packages/onms-ui/src/components/OnmsDrawer.vue
    M ui/src/components/Common/FormField.vue
    M ui/src/components/Device/DCBTable.vue
    M ui/src/components/Layout/Footer.vue
    M ui/src/components/Logs/Editor.vue
    M ui/src/components/Logs/Logs.vue
    M ui/src/components/Nodes/ColumnSelectionDrawer.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    M ui/src/components/SCV/SCVForm.vue
    M ui/src/components/SnmpConfiguration/SnmpConfigDetailsPanel.vue
    M ui/src/containers/Map.vue
    M ui/src/main/App.vue
    M ui/src/styles/onms-base.scss
    M ui/src/styles/opennms-styles.scss
    M ui/tests/components/Common/FormField.test.ts

  Log Message:
  -----------
  NMS-20182: Various UI fixes after the PrimeVue / OnmsUI migration (#8808)

* NMS-20182: Keep legacy <textarea>s readable in dark mode

The alarm detail page's Sticky Memo and Journal Memo textareas carry no
`.form-control` class, so Bootstrap gives them no explicit background or
text color. In dark mode PrimeVue emits `color-scheme: dark` on the
document, which inherits into the legacy JSP page and makes the browser
paint those textareas with dark UA field colors on a light-only page.

Add `textarea` to the existing rule that already pins native selects,
checkboxes and radios to `color-scheme: light`, so legacy textareas stay
dark-on-light in both themes. Only the menu bundle imports this
stylesheet, so the SPA's PrimeVue Textarea (which sets its colors from
theme tokens) is unaffected.

* NMS-20182: Stop a:visited from overriding button label colors

`a:visited` has a pseudo-class in the selector, so it outranks Bootstrap's
single-class `.btn-secondary`. Any list-page menu item that was both an
anchor with an href and an already-visited URL therefore lost its white
label: "View all alarms" and "Short/Long Listing" on the alarm list,
"View all events" and the "Next" pagination button on the event list. The
items rendered as anchors without an href ("Advanced Search", "Severity
Legend", "Help") are never :visited, which is why they stayed white.

The rule was redundant anyway — the `a` rule above it already colors
visited links, since an author declaration beats the UA's visited color —
so drop it from both places it was declared and leave a note about why it
should not come back. Also drop the two `text-white` workarounds it had
prompted on the alarm list, and DCBTable's scoped `a:visited`, so its
node links keep one color in both states.

* Add Vue Resource Graphs, Geographical Map and Topological Map to 'search-actions.xml' so they are searchable.

* NMS-20182: Lock page scroll while a drawer or modal dialog is open

The drawers are modal, but PrimeVue defaults `blockScroll` to false, so the
wheel over an open drawer scrolled the node table behind it — the page's
scrollbar sat at the viewport edge and read as the drawer's. In the Advanced
Filters drawer it was worse: that drawer's own scroller made two adjacent
scrollbars, only one of which belonged to it.

Turn `blockScroll` on in the seam wrappers — unconditionally for Drawer,
tracking `modal` for Dialog, which also covers OnmsConfirmationDialog and
OnmsMessageDialog.

That alone is not enough here. `html { overflow-x: hidden }` makes <html> the
SPA's scroll container, so the body class PrimeVue toggles never reaches the
element that actually scrolls; lock <html> off that class instead. Match open
`.p-overlay-mask` elements as well, because PrimeVue's block/unblock is not
reference-counted: closing a dialog opened inside an open drawer removed the
body class and unlocked the page while the drawer was still up. Add
`scrollbar-gutter: stable` so hiding the page scrollbar does not shift the
fixed Menubar and side rail — PrimeVue's `padding-right` compensation only
moves in-flow content.

Finally, drop the two node drawers' inner `height: 100%; overflow: auto`, so
PrimeVue's `.p-drawer-content` is each drawer's single scroll container.

* NMS-20182: Align the SNMP Add button with the inputs beside it

The button sat outside any FormField, so it never skipped the vertical space
its siblings' labels occupy and its top edge landed a label-height above their
inputs. An eyeballed `margin-top` had been standing in for that space and was
too small.

Give FormField a `reserveLabelSpace` prop instead: with no label of its own it
lays out an aria-hidden, `for`-less <label> so an unlabelled field still lines
its control up with the labelled fields next to it. A real <label> element is
what makes this work — the label line box comes from the global `label`
typography, which a <span> would not pick up — and it keeps the stand-in in
step with the labelled case for free.

The Add button now sits in such a FormField and needs no offset of its own;
matching the input height keeps their centers aligned as before.

* NMS-20182: Sit the JSP footer at the bottom of a short page

JSP pages left #content a plain block, so the footer stopped wherever the
content ended: on a short page it floated hundreds of pixels above the bottom
of the window (157px into a 969px viewport on the node list). The Vue SPA does
not have this problem because its layout grid is `min-height: 100vh` with a 1fr
content row that takes up the slack.

Give #content the same shape with flexbox. Block layout has no way to push a
last child down — auto margins only work in flex and grid — so the container has
to become a flex column.

Page markup must not become flex items in the process: that stretches
inline-level children (the outage list's .btn-group grew to the full content
width), collapses ones sized by auto margins (the reports page's <hr> shrank to
nothing) and stops margin collapsing. So bootstrap.jsp wraps everything but the
footer in a new #content-body div, leaving #content with exactly two flex items
and all page markup inside a plain block, where it lays out exactly as before.
#content-body takes the slack; the footer follows it.

Also drop the SPA's default body margin, which sat outside .app-layout's
`min-height: 100vh`: it made every page overflow the viewport by ~16px, so even
a page that fit scrolled and its footer never reached the bottom of the window.
Both stacks now put the footer exactly at the bottom edge.

* NMS-20182: Drop the SPA footer's 1rem spacer div

The spacer sat inside the layout's footer row, making it 57px tall instead of
41px. A page whose content needs the full height left over from the header —
SNMP Config, OpenAPI and Resource Graphs all want exactly 868px at a 969px
viewport — therefore overflowed by the spacer's 16px and grew a scrollbar with
nothing to scroll to. Those three now fit exactly, and the footer looks the same
without it: it keeps its own 0.5rem padding and top border.

* NMS-20182: Stop Map, Logs and SCV clipping the footer

Each of these pages sizes its tall element with a hand-picked `calc(100vh - x)`,
and each x was too small for the chrome actually above and below it, so the page
overflowed the viewport and pushed the footer off the bottom of the window — most
visibly on the map, where the footer was cut in half.

Derive the subtraction instead of guessing it: the masthead comes off via
--onms-header-height, then the 41px footer band, then whatever that page stacks
around the element — a breadcrumb row, card padding, a heading, a filter box.
Each site spells the terms out so the next person can check the arithmetic
against what they see. Map was 21px over, Logs 62px, SCV 7px; all three now fit
exactly, at a 969px viewport and at 720px.

The Logs page needed both halves of its card: capping only the editor left the
log list, with its heading and filter box, as the taller column.

* NMS-20182: Address PR review on the footer and scroll-lock changes

Four fixes from review:

Wrap the custom-footer includes in a block of their own. They are emitted after
the footer, so an install's markup was landing as a direct flex item of #content
— the exact case #content-body exists to prevent. Confirmed with a test include:
as flex items a <span> stretched from 160px to the full 1562px and an <hr> sized
by auto margins collapsed to zero.

Lock page scroll on the dialog and drawer masks specifically, not on
`.p-overlay-mask` alone. DataTable, Tree, TreeTable, Image, Galleria and SpeedDial
put that class on their masks unconditionally, so the broader selector would have
frozen page scroll for the length of a table's loading state the day anyone wires
up OnmsTable's loading prop.

Replace the 41px footer band literal with an --onms-footer-height token, defined
in Footer.vue next to the element it describes and mirroring how Menubar.vue owns
--onms-header-height. `.footer` takes its min-height from the token so the two
cannot drift, and the four pages that size against it now consume it.

Close #content-body and #content on login.jsp and passwordGate.jsp. They include
bootstrap.jsp but deliberately not bootstrap-footer.jsp, so nothing else closed
the divs it opens. Both stay footer-less.

* fix smoke tests


  Commit: 8c6e1c9be83a6e2bd27c575745d4eb12fb69cde9
      https://github.com/OpenNMS/opennms/commit/8c6e1c9be83a6e2bd27c575745d4eb12fb69cde9
  Author: Scott Theleman <[email protected]>
  Date:   2026-08-25 (Tue, 25 Aug 2026)

  Changed paths:
    M core/web-assets/src/main/assets/style/opennms-theme.scss
    M opennms-base-assembly/src/main/filtered/etc/search-actions.xml
    M opennms-webapp/src/main/webapp/WEB-INF/jsp/alarm/list.jsp
    M opennms-webapp/src/main/webapp/account/selfService/passwordGate.jsp
    M opennms-webapp/src/main/webapp/includes/bootstrap-footer.jsp
    M opennms-webapp/src/main/webapp/includes/bootstrap.jsp
    M opennms-webapp/src/main/webapp/login.jsp
    M smoke-test/src/test/java/org/opennms/smoketest/AdminPageIT.java
    M smoke-test/src/test/java/org/opennms/smoketest/MenuHeaderIT.java
    M ui/packages/onms-ui/src/components/OnmsDialog.vue
    M ui/packages/onms-ui/src/components/OnmsDrawer.vue
    M ui/src/components/Common/FormField.vue
    M ui/src/components/Device/DCBTable.vue
    M ui/src/components/Layout/Footer.vue
    M ui/src/components/Logs/Editor.vue
    M ui/src/components/Logs/Logs.vue
    M ui/src/components/Nodes/ColumnSelectionDrawer.vue
    M ui/src/components/Nodes/NodeAdvancedFiltersDrawer.vue
    M ui/src/components/SCV/SCVForm.vue
    M ui/src/components/SnmpConfiguration/SnmpConfigDetailsPanel.vue
    M ui/src/containers/Map.vue
    M ui/src/main/App.vue
    M ui/src/styles/onms-base.scss
    M ui/src/styles/opennms-styles.scss
    M ui/tests/components/Common/FormField.test.ts

  Log Message:
  -----------
  Merge branch 'foundation-2026' into jira/NMS-20250-dependabot-coreweb-security-issues-august-2026-smoke


Compare: https://github.com/OpenNMS/opennms/compare/06c5a9d9f24b...8c6e1c9be83a

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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.