Hi,
I encountered a somewhat troublesome issues with this MP Config test:
The source is a dynamic source, meaning it will accept any property key and echoes it back. This test however failed on Liberty, while it passes on Payara and WildFly.
However, after internal discussion with Steve, I think the root source of the problem is the interpretation of getProperties(). Liberty seems to interpret this as a kind of validation constraint; it enforces that the source only ever accepts property keys that are initially returned by the getProperties() map. In Payara, and I guess WildFly too, the method is seen as optional, i.e. for if someone would need all keys from a source, and not as a constraint that has to be enforced all the time.
In the Payara and potentially WildFly interpretation, sources can thus always be dynamic, in the Liberty interpretation sources can only ever provide the set of keys which are known and/or available at deployment time and are thus static.
I see a couple of issues with the Liberty interpretation:
1. Where in the spec does it actually say getProperties() or getPropertyNames() is a constraint that needs to be enforced?
2. The set of properties may not be known at deployment time, which is especially true for more dynamic sources
3. The method should be optionally any way, as it may be impossible to support without risking overloading the server's memory if the source has a very large amount of keys (thinks e.g. modelling FaceBook users as properties)
Thoughts?
Kind regards,
Arjan Tijms