[hibernate-dev] Is there a way to have ServiceContributor per SessionFactory/EMF instead of per application classloader?
Scott Marlow
smarlow at redhat.com
Thu Sep 20 15:17:01 EDT 2018
I'm going to try some more changes on the WF side, to see if I can work
around this problem. I'll report back on how that goes. :)
On 9/20/18 12:05 PM, Scott Marlow wrote:
> Is https://gist.github.com/scottmarlow/63241549820243923aab16e664c3c6c3
> closer to what we need?
>
> On 9/19/18 3:47 PM, Steve Ebersole wrote:
>> StandardServiceRegistry`No, it's not.
>>
>> Each call to `registry.getService( RegionFactory.class )` in your test
>> returns the same `RegionFactory` - by design.
>>
>> By default each SF bootstrap uses a unique StandardServiceRegistry
>> which is what the ServiceContributor contributes services to. In
>> terms of your test, it would be like creating a second
>> `StandardServiceRegistry` and asking that for the second RegionFactory
>>
>>
>>
>> On Wed, Sep 19, 2018 at 11:12 AM Scott Marlow <smarlow at redhat.com
>> <mailto:smarlow at redhat.com>> wrote:
>>
>> Please look at
>>
>> https://github.com/scottmarlow/hibernate-orm/tree/ServiceContributorTest
>>
>> and let me know if this is a valid test. I added a test that calls
>> registry.getService( RegionFactory.class ) twice and fails if the
>> RegionFactoryInitiator doesn't get called twice.
>>
>> Is that the same as creating two separate SFs and expecting the
>> RegionFactoryInitiator to be called twice?
>>
>>
>> On 9/19/18 9:52 AM, Scott Marlow wrote:
>> >
>> >
>> > On 9/19/18 9:22 AM, Steve Ebersole wrote:
>> >> Ohhh... Sorry I misunderstood. I thought you were asking about
>> ways
>> >> to have the contributor only apply to one of the PUs...
>> >>
>> >> I'm surprised it isn't applied to each actually. I'd consider
>> that a
>> >> bug. Can you put together a test?
>> >
>> > Yes, I will work on a test.
>> >
>> >>
>> >>
>> >> On Wed, Sep 19, 2018, 8:12 AM Scott Marlow <smarlow at redhat.com
>> <mailto:smarlow at redhat.com>
>> >> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>>> wrote:
>> >>
>> >>
>> >>
>> >> On 9/19/18 5:41 AM, Gunnar Morling wrote:
>> >> > Would SessionFactoryServiceContributor [1] be of use to
>> you? It
>> >> lets you
>> >> > add services to the SF-scoped service registry; not sure
>> whether
>> >> that
>> >> > suits your requirements or no.
>> >>
>> >> Thanks, I will give that a try. We currently use
>> >> RegionFactoryInitiator
>> >> and update the configuration settings passed via
>> >> RegionFactoryInitiator#resolveRegionFactory(Map
>> configurationValues,
>> >> ServiceRegistryImplementor). I wonder if that is possible
>> with
>> >> SessionFactoryServiceContributor?
>> >>
>> >> >
>> >> > --Gunnar
>> >> >
>> >> > [1]
>> >> >
>> >>
>> >>
>>
>> https://github.com/hibernate/hibernate-orm/blob/master/hibernate-core/src/main/java/org/hibernate/service/spi/SessionFactoryServiceContributor.java
>>
>>
>> >>
>> >> >
>> >> > Am Di., 18. Sep. 2018 um 21:00 Uhr schrieb Scott Marlow
>> >> > <smarlow at redhat.com <mailto:smarlow at redhat.com>
>> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>>
>> >> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>
>> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>>>>:
>> >> > >
>> >> > >
>> >> > > On 9/14/18 6:14 PM, Steve Ebersole wrote:
>> >> > > > Doing so would require a programatic call while
>> bootstrapping
>> >> > > > Hibernate. The ServiceContributors are applied
>> during
>> >> > > >
>> >>
>> `org.hibernate.boot.registry.StandardServiceRegistryBuilder#build`
>> >> > > > processing. So we'd need a call to register a
>> >> ServiceContributor with
>> >> > > > the StandardServiceRegistryBuilder.
>> >> > > >
>> >> > > > Of course that also means you'd have to have access
>> to the
>> >> > > > StandardServiceRegistryBuilder
>> >> > >
>> >> > > I don't have a way to add a programatic call while
>> >> bootstrapping "not
>> >> > > JPA container".
>> >> > >
>> >> > > >
>> >> > > > On Fri, Sep 14, 2018 at 9:27 PM Scott Marlow
>> >> <smarlow at redhat.com <mailto:smarlow at redhat.com>
>> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>>
>> >> > <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>
>> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>>>
>> >> > > > <mailto:smarlow at redhat.com
>> <mailto:smarlow at redhat.com> <mailto:smarlow at redhat.com
>> <mailto:smarlow at redhat.com>>
>> >> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>
>> <mailto:smarlow at redhat.com <mailto:smarlow at redhat.com>>>>> wrote:
>> >> > > >
>> >> > > > I'm deploying an application with two
>> persistence units
>> >> > however, the
>> >> > > > ServiceContributor
>> >> contribute(StandardServiceRegistryBuilder)
>> >> > [1] is
>> >> > > > only being called once, instead of per
>> >> SessionFactory/EMF (or so it
>> >> > > > seems).
>> >> > > >
>> >> > > > Is there a way to have the
>> >> > > > contribute(StandardServiceRegistryBuilder) be
>> >> > > > called per SessionFactory/EMF instead?
>> >> > > >
>> >> > > > Scott
>> >> > > >
>> >> > > > [1]
>> >> > > >
>> >> >
>> >>
>> >>
>>
>> https://github.com/wildfly/wildfly/blob/master/jpa/hibernate5_3/src/main/java/org/jboss/as/jpa/hibernate5/service/ServiceContributorImpl.java#L28
>>
>>
>> >>
>> >> > > > _______________________________________________
>> >> > > > hibernate-dev mailing list
>> >> > > > hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>
>> >> <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>>
>> >> > <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>
>> >> <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>>>
>> >> > <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>
>> >> <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>>
>> >> > <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>
>> >> <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>>>>
>> >> > > >
>> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>> >> > > >
>> >> > > _______________________________________________
>> >> > > hibernate-dev mailing list
>> >> > > hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>
>> >> <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>>
>> >> <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>
>> >> <mailto:hibernate-dev at lists.jboss.org
>> <mailto:hibernate-dev at lists.jboss.org>>>
>> >> > > https://lists.jboss.org/mailman/listinfo/hibernate-dev
>> >>
>>
More information about the hibernate-dev
mailing list