requiredCapabilities (NMF) vs requiredCapabilitySets
Notes
It seems like NMF implements a previous standard of the Commons Service, e.g. the implementation used by NMF matches the ServiceFilter specification in the Red Book standard:
https://public.ccsds.org/Lists/CCSDS%205220R1/522x0r1.pdf
This seems to be causing an issue when trying to decode a ServiceFilter messages when using the Directory Service to retrieve Provider Ids (lookupProvider operation). The issue in question happens when getting the buffer string length while decoding the service provider Identifier, here (a very large erroneous number is fetched): https://github.com/esa/CCSDS_MO_TRANS/blob/7539001de3c46fcc82e018436a01edeb61733722/CCSDS_MAL_ENCODING_BINARY/src/main/java/esa/mo/mal/encoder/binary/fixed/FixedBinaryDecoder.java#L212-L215
Here are some of the noted differences in the generated ServiceFilter code between NMF and MAL C:
a) Different list type for the required capabilities set It's a UShort List in the latest CCSDS MO Common XML Specs, which is used to generate the MAL C stubs: https://github.com/ccsdsmo/xml-service-specifications/blob/fac03edae4821d148ab70924ed20bf8b30fb9cdf/xml-ccsds-mo-standards/src/main/resources/xml/area003-v001-Common.xml#L267-L270
But in ServiceFilter.java for the generated Java stubs used by the NMF Supervisor it's UInteger List: https://gitlab.com/esa/NMF/nanosat-mo-framework/-/blob/0067fb0420f4d12b6618beef8ab41c9e375b5a90/core/mo-services-impl/ccsds-common-impl/src/main/java/esa/mo/common/impl/provider/DirectoryProviderServiceImpl.java#L323-331
It's UShort in the Blue Book standard, see section 4.2.6 COMPOSITE: ServiceFilter, here: https://public.ccsds.org/Pubs/522x0b1.pdf
b) Differences in field names
Notes