jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jukka Zitting <jukka.zitt...@gmail.com>
Subject Re: Separating API/SPI in different bundles (was: svn commit: r1561926 - /jackrabbit/oak/tags/jackrabbit-oak-core-0.15.2/pom.xml)
Date Wed, 29 Jan 2014 00:04:00 GMT

On Tue, Jan 28, 2014 at 2:32 PM, Tobias Bocanegra <tripod@apache.org> wrote:
> I also think that the amount of exported packages is very large. It
> looks like we didn't really know how to modularize oak and just
> exported basically everything :-)

That's a pretty broad statement. Yes, there are a few cases where the
package-level dependencies should be fixed to avoid exporting too many
details, but most of the exported packages don't fall into this
category. In fact one could come to the exact opposite conclusion: a
modular system necessarily exports lots of packages. At least one
package for each distinct extension point and often a supporting
package of base classes and utility code related to that extension
point. Just look at the number of exported packages in a Sling system.

Instead of splitting code to separate API/SPI bundles (What would the
SPI bundle be anyway? Instead of one monolithic facade, the Oak SPI
consists of various more or less independent extension points, whose
main shared feature is just that they're used by oak-core, making a
standalone SPI bundle an odd construct.), a more productive approach
would IMHO be to look at the exports individually and refactor the
code to fix cases where an export shouldn't exist.


Jukka Zitting

View raw message