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

Reply via email to