Hi Angela,
Thanks for driving this and coming up with a PoC. I like the direction this is taking. The module boundaries make sense to me and having certain dependencies de-tangled will certainly be helpful going forward. Could you share a bit of your experience doing this refactoring? What were the main difficulties? Quick wins? Is there anything that could be controversial?
Looking at the list of modules, its size and the names, did you consider switching to a hierarchical module structure? Or could this make sense later on? Otherwise can we come up with a naming scheme that implies grouping (e.g. node store implementations, blob store implementations, etc.)
Re. oak-base and oak-commons, these are probably separated to avoid circular dependencies. Is there anyway to otherwise clarify the difference between the two? I.e. if I implement a new class, which module it should go into? Would oak-base be something like oak-core-spi or even oak-spi? This would nicely dual the oak-store-spi module.
Is there plans to move document/rdb stores to separate modules or is this beyond the current scope?
Michael On 12.04.17 11:21, Angela Schreiber wrote:
Hi As mentioned my Marcel this morning [0] we had some offline discussions related to the oak-blob-azure module and how we could independently release it. While we didn't see a satisfying solution for the 1.6 branch, we concluded that we should pick up the modularisation discussion for address this in the near future. Consequently a group of oak devs started to work on a PoC on how to improve modularisation of Oak (in particular oak-core). As we managed to get rid of the dependency of oak-blob-azure (and oak-segment-tar for that matter) from oak-core with a reasonable effort, we would like move forward with this in oak-trunk. For that matter I created a new epic "Modularisation of Oak" (OAK-6069 at [1]) and added/linked a initial bunch of issues spotted during the workshop and earlier. For the 'oak-blob-azure' topic I create a dedicated task OAK-6073 [2], where I will also add some detailed summary of the initial effort. The latter can also be looked at on a github fork at [3]. Kind regards Angela [0] http://markmail.org/message/neoiyv5qsffo424e?q=azure+list:org%2Eapache%2Eja ckrabbit%2Eoak-dev+from:%22Marcel+Reutegger%22&page=1 [1] https://issues.apache.org/jira/browse/OAK-6069 [2] https://issues.apache.org/jira/browse/OAK-6073 [3] https://github.com/mreutegg/jackrabbit-oak/tree/m12n.
