If hibernate-search-orm needs it, it's likely that infinispan-query
could also make use of that contract. After all, infinispan-query is
very similar conceptually to our ORM integration albeit simpler.
Isn't it our definition of a SPI?
If you don't change your mind, I am not a big fan of the internal name.
If nothing because ORM uses it with a different semantic.
I don't have very good alternatives
- friend
- sharedimpl
Emmanuel
On Fri 2014-12-05 20:30, Sanne Grinovero wrote:
One of today's issues for Hibernate Search had the goal to move
this class:
org.hibernate.search.engine.spi.SearchFactoryImplementor
to not have the "SPI" package postfix as we never meant this to be
part of the SPI but rather an internal contract.
While it's an internal contract, it's functionality is needed by other
modules *in our same repository*, for example hibernate-search-orm
needs to access it.
So we consider it an integration contract across our own shards, but
it's not meant to be used by anyone else.
So it seemed a straight-forward decision to move it to:
org.hibernate.search.engine.impl.SearchFactoryImplementor
However then we need to patch the OSGi descriptor to export this package:
org.hibernate.search.engine.impl
By doing so this will export more than what is strictly necessary - as
there are other classes in there - and this gets Karaf to blow up with
many nasty errors as there are dependent classloaders being triggered
by those other internal components. So we really need to keep those
sealed into the module.
So I was thinking to create a new package classification "internal":
org.hibernate.search.engine.internal.SearchFactoryImplementor
We would export this package via OSGi descriptors, but still the name
should be self-explanatory enough as a warning to other consumers?
Sanne
_______________________________________________
hibernate-dev mailing list
hibernate-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev