[hibernate-dev] Redefining the API/SPI/implementation split

Emmanuel Bernard emmanuel at hibernate.org
Mon Dec 8 09:31:13 EST 2014


> On 08 Dec 2014, at 14:34, Hardy Ferentschik <hardy at hibernate.org> wrote:
> 
> On Mon, Dec 08, 2014 at 12:07:45PM +0000, Sanne Grinovero wrote:
>>> 2. The name. SearchFactoryImplementor is something which implements SearchFactory. However,
>>>   one of the latest changes was to make SearchFactory a stand alone class of the orm module.
>>>   SearchFactory is now only available in the orm module and has not inheritance link anymore
>>>   to SearchFactoryImplementor or SearchIntegrator. This is awesome, since now we are able
>>>   to evolve the engine code in the direction for "free form" entities without affecting the
>>>   API for the users using Search in combination with Hibernate ORM. However, it also means
>>>   that the engine module should now be agnostic of the orm module. Having a SearchFactoryImplementor
>>>   in the engine module, but the SearchFactory defined in the orm module seems wrong.
>> 
>> Remember this still is "the implementor" for the SearchFactory API so
>> the name is not wrong; what is wrong is the position in terms of
>> modules.
> 
> How can an interface be the "implementor" of anything. It just defines an API, it does not implement 
> anything. This is exactly what I am saying, it is a misnomer to start with.

It a contract of all implementors of SearchFactory, I don’t see anything wrong with the name.


More information about the hibernate-dev mailing list