(core): remove atoms and camp reflexion completely
Description
Our "atoms" library is no longer used to serialize objects. However, it is still used for:
- comparing data objects
- "extract" objects in the XML configs
Proposal
-
Remove libs/core/atoms #807 (closed) -
propose an alternative to compare data objects #808 (closed) -
rework SExtractObj
#799 (closed) -
rework activities requirements
The first one could be easily replaced by the implementation of operator==()
for each data, but we should be careful because some tests used to exclude some attributes depending on what they want to test.
SExtractObj
could be reworked to explicitly handle a few data types. A generic solution was appreciable, but anyway most of the time we always extract the same kind of attributes from data. We may also create specific services. Renaming the service could also be a good thing: SExtractObject
, SGetObject
, SGetSubObject
?
Eventually, the harder thing to replace would be the activity requirements. I have nothing in mind at this stage.
Edit:
This is actually fairly easy. Actually, the activity requirements use this syntax to access subobjects fo requirements exactly the same way SExtractObj does. So in short, this is to avoid having a SExtractObj in the configuration. In most cases, we just pass the required object and not its subobject, so I would say we simply remove the feature. This removes a shortcut path, but this let only one way to achieve this "extraction" which is, I think, clearer for everyone.
Outcomes
Remove this legacy code, and above all, remove this will allow getting rid of Camp!