[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