Files
UA-.NETStandard/tests
Marc Schier 3e433eb6c4 XRegistry: registration lifecycle, identifier allocation, registrar roles and atomic Resource replace (#4756)
# Description

Extracts the generic xRegistry registration lifecycle from the WoT work
into a standalone, master-targeted change:

- Canonical xRegistry identifier allocation (`XRegistryIdentifier`) with
case-folded bounded collision handling and exact Version
allocation/delete semantics.
- Registrar roles / capabilities in the xRegistry NodeSet2 model (only
the roles/capabilities facts).
- Default-Version views and Resource Meta handling.
- FileType read/write modes, session ownership/discard, cursor handling,
and short reads until actual EOF on the client.
- Atomic whole-document `ReplaceAsync` on the in-memory and file-system
resource stores.
- Generic projection engine/provisioning and projection contracts, label
ownership/no-op behavior, Resource-vs-Version event targets.
- Documentation in `docs/XRegistry.md` and XML docs for owned members.
- Tests: Identifier, RegistrarRoles, Attribute, Projection,
RegistrationEvent, FileMode, ResourceStore, Client, VersionAssignment,
concurrent read.

Intentionally excluded (handled in separate PRs): trusted Federation /
Registry origin model and provider (G9); WoT lease/dispatcher, prepared
manifest, 0.7 model/version bump (G12).

Merged current `master` (a14b23e7d) with an ordinary merge; no
conflicts.

## Qualification (head a8fb2d01)

- `b9b4f224`: `Opc.Ua.XRegistry.Tests` 411/411 passed on net10.0 and
net48 (raw exit 0). TRX SHA256 net10 `4F669A1A...B02B`, net48
`3EDBFF2A...7D29`.
- `a8fb2d01` differs from `b9b4f224` by one added blank line (static
whitespace-only proof, CRLF intact); no rebuild/rerun of tests on
`a8fb2d01`.
- `a8fb2d01`: default-analyzer `dotnet format --verify` on
`Opc.Ua.XRegistry.Tests` reports 0 findings in lines changed by this PR;
128 pre-existing baseline findings are untouched.
`Opc.Ua.XRegistry.Server`: 0 owned (13 baseline) as of `b9b4f224`.
- Not claimed: full UA.slnx, native, or all-CI results.

## Related Issues

- No tracking issue; split of the WoT/xRegistry work.

## Checklist

- [ ] I have signed the
[CLA](https://opcfoundation.org/license/cla/ContributorLicenseAgreementv1.0.pdf)
and read the
[CONTRIBUTING](https://github.com/OPCFoundation/UA-.NETStandard/blob/master/CONTRIBUTING.md)
doc.
- [ ] I have added tests that prove my fix is effective or that my
feature works and increased code coverage.
- [ ] I have added all necessary documentation.
- [ ] I have verified that my changes do not introduce (new) build or
analyzer warnings.
- [ ] I ran **all** tests locally using the **UA.slnx** solution against
at least .net **framework** and .net **10**, and all passed.
- [ ] I fixed **all** failing and flaky tests in the CI pipelines and
**all** CodeQL warnings.
- [ ] I have addressed **all** PR feedback received.
2026-10-13 18:48:07 +00:00
..