Separation of extension's API and SPI

Issue #22 closed
Markus KARG created an issue

Due to Java's language specification, a in interface's method has to be public when implemented by a class. Extensions have to implement two interfaces: The API, used by the application vendor and typically small (for example only "getAvatar" and "publishAvatar" for AvatarManager), and the SPI, used by the Babbler kernel to invoke extensions (for example sessionStatusChanged, handleMessage and handlePresence). As a consequence, it is sometimes not easy for the begginer to understand what methods of an extensions are part of the API and which are part of the SPI. It would be good if this could be more clear, and to prevent applications from calling SPI methods (so applications do not "see" those messages).

Comments (5)

  1. Log in to comment