[hibernate-dev] Integrator locator
Adam Warski
adam at warski.org
Wed Mar 30 14:16:50 EDT 2011
Heh sorry, pasted the wrong link :) This should be the right one:
http://java.sun.com/developer/technicalArticles/javase/extensible/index.html
Anyway, the mechanism/names were standardized as part of Java 6.
That's e.g. how CDI extensions are discovered: http://docs.jboss.org/weld/reference/1.1.0.Final/en-US/html/extend.html#d0e4848
It also looks like there is some support in Java6: http://download.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html
But as Hibernate aims Java5 we can't use that, although we can use the same file name.
Adam
On Mar 30, 2011, at 6:40 PM, Steve Ebersole wrote:
> This is exactly what I have done. There is no standard java mechanism for doing this. Your link simply shows how one piece of java (Sound API) does it.
> On Wednesday, March 30, 2011, at 11:22 am, Adam Warski wrote:
> > Did you think about using the java services mechanism? Essentialy placing a
> > file in META-INF/services:
> > http://download.oracle.com/javase/1.4.2/docs/guide/sound/programmer_guide/
> > chapter13.html ?
> >
> > I don't think it gives any functionality, but is a standard way for doing
> > such things.
> >
> > Adam
> >
> > On Mar 27, 2011, at 7:27 PM, Steve Ebersole wrote:
> > > HHH-5562 is done, which introduces a locator/discovery means for
> > > integrating with Hibernate. Specifically it introduces the (alternate
> > > name suggestions welcome, i am indifferent to this one)
> > > org.hibernate.impl.Integrator interface.
> > >
> > > It does discovery based on a classpath lookup for a well-defined filename
> > > (can discover multiple) which names an implementor of this interface.
> > > The process occurs in the midst of Sessionfactory building to account
> > > for the main use cases I know of including Envers, Search, Validation
> > > and BV. Currently I additionally define those 4 as "built in"
> > > integrators, meaning there is no need for them to define auto-discovery
> > > files unless we want them to be integrated in that manner (I know for
> > > example that Search is interested in this via HSEARCH-595). Anyway, we
> > > should probably decide pretty early which integrations we want done
> > > which way.
> > >
> > > Actually I take one part back. Envers is actually handed by discovery
> > > due to the fact that it is in a separate project (jar). The others were
> > > done this way because they already had the reflection code in place to
> > > do this. So for it, we need to decide if we want to go the opposite
> > > way.
> > >
> > >
> > > ---
> > > Steve Ebersole <steve at hibernate.org>
> > > http://hibernate.org
> > > _______________________________________________
> > > hibernate-dev mailing list
> > > hibernate-dev at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> ---
> Steve Ebersole <steve at hibernate.org>
> http://hibernate.org
--
Adam Warski
http://www.warski.org
http://www.softwaremill.eu
More information about the hibernate-dev
mailing list