[hibernate-dev] Evolvement of SPIs

Steve Ebersole steve at hibernate.org
Mon Apr 2 19:42:12 EDT 2012


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<emmanuel at 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 at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev

--
steve at hibernate.org
http://hibernate.org



More information about the hibernate-dev mailing list