Skip to content

Add unsupported Query service set#1789

Merged
kevinherron merged 1 commit into
mainfrom
ctt/fix/query-service-unsupported-status
Jul 1, 2026
Merged

Add unsupported Query service set#1789
kevinherron merged 1 commit into
mainfrom
ctt/fix/query-service-unsupported-status

Conversation

@kevinherron

@kevinherron kevinherron commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Add a server-side Query service set that reports Milo's QueryFirst and QueryNext services as unsupported with Bad_ServiceUnsupported, matching OPC UA service-level unsupported semantics.

  • Adds QueryServiceSet so Query services fit the same SDK service-set registration pattern as Attribute, View, Session, and the other service families.
  • Registers DefaultQueryServiceSet on normal server endpoints and has it return Bad_ServiceUnsupported for QueryFirst and QueryNext until Milo implements Query semantics.
  • Preserves the generic no-handler fallback of Bad_NotImplemented for unrelated service dispatch gaps.
  • Adds integration coverage through the public client Query APIs and a dispatcher fallback regression.

Key Changes

  • Query service architecture: AbstractServiceHandler can now register QueryFirst and QueryNext handlers through QueryServiceSet, avoiding a dispatcher-level status special case.
  • Default unsupported behavior: DefaultQueryServiceSet provides explicit service-level unsupported responses for the recognized-but-unimplemented Query services.
  • Regression coverage: QueryServiceUnsupportedTest asserts client-observed service-level status for QueryFirst and QueryNext, and directly verifies a non-Query missing handler still returns Bad_NotImplemented.

Testing

  • QueryServiceUnsupportedTest covers QueryFirst/QueryNext unsupported service faults and the non-Query missing-handler fallback.
  • mvn -q spotless:apply
  • mvn -q -pl opc-ua-sdk/integration-tests -am test -Dtest=QueryServiceUnsupportedTest -Dsurefire.failIfNoSpecifiedTests=false
  • mvn -q clean compile
  • mvn -q clean verify

References

  • OPC-10000-4 Appendix B.2.3, QueryFirst
  • OPC-10000-4 Appendix B.2.4, QueryNext
  • OPC-10000-4 section 7.38.2, Bad_ServiceUnsupported and Bad_NotImplemented

Milo recognizes QueryFirst and QueryNext but does not implement the Query
service set. Register a default Query service set that returns
Bad_ServiceUnsupported for these known unsupported services while preserving
the generic missing-handler fallback for other service dispatch gaps.
@kevinherron kevinherron force-pushed the ctt/fix/query-service-unsupported-status branch from f45bb04 to 87430c5 Compare July 1, 2026 17:04
@kevinherron kevinherron changed the title Return BadServiceUnsupported for Query services Add unsupported Query service set Jul 1, 2026
@kevinherron kevinherron added this to the 1.1.5 milestone Jul 1, 2026
@kevinherron kevinherron merged commit e77af4d into main Jul 1, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant