"Compact" version of AJSON
mbtools opened this issue · 6 comments
I have several projects where I want to include the core ajson functionality (no filter, no mapping). However, now it's all linked with dependencies, so I need to copy 3 classes + 4 interfaces + exception. Ideally, it should be 1 class, 1 interface, 1 exception.
I can, of course, clone and reduce this myself in another repo (with credit to you). But I wonder if there's a way to manage this in your repo without causing double maintenance. It needs an abapmerge for OO... Anyway, just something to think about.
I knew it would come one day ... I started feeling that ajson becomes a bit bloated.
First thoughts:
- agrh ! I just aligned mapping and filtering to fit well to the ajson interface ! It looks so well ... but probably it is not the final iteration.
- Would it make things easier if I split the package into 2 ? pure ajson and then other features like mapping, filtering, diffing ? But it would become more difficult to install ...
- Indeed it would be nice to decouple classes more. Then just part of classes can be installed. Kind of ajson_core. And ... others ... utils ? schema ? The core would be ajson itself, exception, the interface and probably some unified interface for filtering/mapping. Then maybe some feature in AG to install a subpackage only. And abaplint rule to check the cross dependencies inside subpackages (could be nice ? @larshp )
Just thoughts. No immediate solution.
any impact on existing projects if split the package into 3 subpackages (in one repo)? core, utils and perf (for perf test prog) ?
abapGit impact: might need some adjustments in the renaming, but no problem, go for it
anyhow, we will get tree-shaking sometime for ABAP, abaplint ftw
The split into core and others looks good. Thanks!