An SPI is a contract that a user would implement, but also a contract the need to implement such a contract.
For example, take SessionImplementor from ORM. It is the SPI contract for Session. Most other SPI contracts pass SessionImplementor as an argment, or make it available in some fashion for the SPI implementor to user. We don't really expect the user to implement SessionImplementor; it is just there to provide an expanded set of features they will likely need. On Mon 02 Apr 2012 05:33:59 PM CDT, Gunnar Morling wrote: > Hi, > >> What's your definition of an SPI > > I think an SPI is something which the user implements (as you say > typically advanced users which need to plug-in custom functionality > into the framework) opposed to an API, which is something which a user > just uses/invokes. > >> That's the proposal I have pushed to the common guidelines at JBoss. > > Do you have a link to these guidelines? > > I think I like the combined interface/abstract implementation approach. > > --Gunnar > > > 2012/4/2 Emmanuel Bernard<emman...@hibernate.org>: >> >> On 2 avr. 2012, at 11:44, Hardy Ferentschik wrote: >> >>>> >>>> What's your definition of an SPI, in the team we have slightly different >>>> ones. >>>> >>>> In Hibernate search an SPI is targeted at frameworks or hyper advanced >>>> user who are willing to integrate or enhance Hibernate Search. Otherwise, >>>> they are considered APIs - which includes interfaces you might need to >>>> implement like FieldBridge. Hibernate ORM has a different semantic where >>>> an API is what the application directly code on. >>> >>> The HV interpretation of SPI is the same view as in ORM. Imo It makes for a >>> simpler, easier to understand cut between API and SPI. >> >> You guys think too much of your own comfort and less of the user's ;P >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev > > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev -- st...@hibernate.org http://hibernate.org _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev