Hi, what is exactly the distinction between SPI and non-SPI classes? i.e. classes below oajo.spi.* and those outside?
is the SPI meant to be the "PI" for plugins and extensibility? If so, the SPI should contain all those classes that are: 1. public (in the osgi sense) 2. used to implement/extends oak features all other classes (that are neither api nor utility) should be private and implementation detail and probably live in oajo.core.* (assuming that core is not exported) or in oajo.spi.impl.* -- OR -- is the SPI thought of the service layer in context of the overall architecture of a content repository, where the SPI provides some of the JCR functionality that is needed by any client (local or remote). (this is IIRC how jackrabbit 2.x thought of it): ... JCR --- SPI ... CORE --- MK (where --- could be remoted and ... is a java only interface). I'm not sure if either of the meanings of SPI is clearly followed in oak, and I think we should clarify this. Regards, Toby
