-
Type: Improvement
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 10.10
-
Fix Version/s: 11.5
-
Epic Link:
-
Impact type:API change
-
Upgrade notes:
-
Team:AT
-
Sprint:nxAT 11.1.26, nxAT 11.1.27, nxAT 11.x.28, nxAT 11.x.29, nxAT 11.x.30, nxAT 11.x.31, nxAT 11.x.32
-
Story Points:8
Currently there are several issues with the descriptor mechanism, and several needed improvements :
- using a generic interface to be implemented is a big constraint on "freely annotated xmap" classes, maybe using an annotation instead would be good
- the merge/override logics needs to be handled in a way that leads developers towards a "standard" way, but still including historic use cases to allow migration to the new system (still, using annotations)
- lazy merge/override done on this registry requires caches logics: it would be better not to have a lazy behaviour, and compute it once, at framework startup
- (detail, maybe related) not sure why DefaultComponent holds the descriptor as a class field right now: a lookup, when needed, should be enough
- when retrieving descriptors from this generic registry, it is not possible anymore to know the contributing component, which does not allow proper error management (
NXP-29573,NXP-28948) - ideally, all default platform components should be migrated to use this registry, to encourage moving to this new system
Related improvements
- a global registry handling all resources allows more easily to document and track overrides on contributions (and order can be documented, see
NXP-29569and NXP-29022 on explorer side) - similarly to merge/override, handle contribution enablement in a standard way
- all components that can handle hot-reload would be covered generically
Pros
- runtime services behaviour would be more homogeneous, less error-prone, more user friendly for people writing new components, and people contributing to them
- it would be easier for Studio to contribute to any extension point, with hotreload covered by the target service
- the declarative approach using annotations makes it easier to understand and document the service merge/override behaviours, and encourages one "default" approach for new components
- later, this would also ease up migration towards a better system than xmap for processing of services/contributions (typically spring)
- depends on
-
NXDOC-2235 Add documentation for XMap annotations
- Resolved
- is related to
-
NXP-22868 Improve contribution system
- Open
-
NXP-23282 Nuxeo Runtime Evolutions - Step 3
- Open
-
NXP-29908 Implement conditional components
- Resolved
-
NXP-29880 Cleanup deprecated NXRuntimeTestCase remnant usage
- Resolved
-
NXP-19330 Improve Runtime Extension Points and Descriptors
- Resolved
-
NXP-25688 Define extension points as pure XML
- Resolved
-
NXP-29569 Make explorer registration order meaningful
- Resolved
- is required by
-
NXP-29022 Fix some contributions override generation on explorer
- Open
-
NXP-28948 Handle components in error in Explorer export
- Resolved
-
NXP-29984 Migrate Runtime Contributions to XRegistry Annotations
- Resolved
-
NXDOC-2248 Write upgrade instructions for Runtime Registries
- Resolved
-
NXP-29573 Better track runtime errors and warnings
- Resolved
-
NXCLI-57 Update CLI to follow component implementation with Runtime registry annotations
- Resolved
- Is referenced in