I agree with Francesco. SNFE should be an implementation detail of the Segment bundle. If any code outside of this module depends on SNFE in order to handle it differently, I would consider that a leaked abstraction. The special handling should instead be moved into the Segment bundle (which may not be trivial and could require API changes/additions).
IMHO, that's how modularization can help drive good APIs. Together with baselining + impprt/export packages, violations of module boundaries become visible. Regards Julian On Tue, Dec 8, 2015 at 10:32 AM, Michael Dürig <[email protected]> wrote: >>> IMO SNFE should be exported so upstream projects can depend on it. >>> Otherwise there is no value in throwing a specific exception in the first >>> place. >>> >>> >> My goal is to move the Segment Store into its own bundle without having >> circular dependencies between this new bundle and oak-core. I could have >> tried to create two bundles - one with the exported API of the Segment >> Store and one with its implementation - but I prefer not to go this way at >> the moment. Defining a proper Segment Store API seems to require a >> refactoring way deeper than the one I'm doing, and I'm not sure if we want >> to go head first into this task, given the current changes currently in >> progress on the Segment Store. > > > Right, makes sense. Can we come up with a different way of (somewhat) > reliable conveying a SNFE up the stack so interested parties could hook into > it? > > Michael
