2016-06-28 10:56 GMT+02:00 Svetlin Zarev <svetlin.angelov.za...@gmail.com>:

> Hi,
>
> >Oh I see, then Template can be set as a component using the fully
> qualified
> name:
>
> The Template API is very nice, but the AutoConfig deployer fails too early
> if it cannot find a service provider and hence the template is never
> invoked.
> But while digging through it, I found that AutoConfig::autoCreateResource
> looks for service provider by type and I was able to register a *default*
> SP
> during the AssemblerCreated event :). So at the end the observer approach
> seems to be the right one.
>
> I just wonder how stable is the ServiceUtils API ?
>
>
if you speak about the service-provider system property (
openejb.provider.default) to override defaults and service-jar.xml: it is
stable
if you speak about the class: internal (i'd like to kill it to bind it to
the container instance and not keep it global to be honest but never got
time and that's a serious change)


> Kind regards,
> Svetlin
>
> 2016-06-27 17:33 GMT+03:00 Romain Manni-Bucau <rmannibu...@gmail.com>:
>
> > 2016-06-27 16:23 GMT+02:00 Svetlin Zarev <
> svetlin.angelov.za...@gmail.com
> > >:
> >
> > > HI,
> > >
> > > Are there any resources for the Template API ? I was not able to find
> > any.
> > >
> > >
> > Javadoc mainly:
> >
> >
> https://github.com/apache/tomee/blob/master/container/openejb-api/src/main/java/org/apache/openejb/api/resource/Template.java
> >
> > here is a sample
> >
> >
> https://github.com/apache/tomee/blob/master/container/openejb-core/src/test/java/org/apache/openejb/resource/TemplateTest.java#L54
> > and here how to configure it
> >
> >
> https://github.com/apache/tomee/blob/master/container/openejb-core/src/test/java/org/apache/openejb/resource/TemplateTest.java#L46
> >
> >
> > >
> > > > your custom tomee.xml you would write in this observer
> > > Generating a tomee.xml on the fly (or any other declaration of the
> > > resources) is not an option, because the resources are not known at
> that
> > > time.  I cannot know what resources they have declared in their
> > > web.xml/web-fragment.xmls or through annotations.
> > >
> > > Basically I need a mechanism to tell tomee to create a resource using a
> > > "default" object factory/service provider for every resource that does
> > not
> > > have an explicit one set.
> > >
> > >
> > Oh I see, then Template can be set as a component using the fully
> qualified
> > name:
> >
> > org.apache.openejb.api.resource.Template = com.foo.MyTemplate
> >
> > Note: it will also affects datasources, queues etc...
> >
> >
> > > Kind regards,
> > > Svetlin
> > >
> > >
> > >
> > > 2016-06-27 15:33 GMT+03:00 Romain Manni-Bucau <rmannibu...@gmail.com>:
> > >
> > > > Hi
> > > >
> > > > there are two things:
> > > >
> > > > 1. being able to inherit from default to auto configure a declared
> > object
> > > > (this is doable using plain new Template API or old service-provider)
> > > > 2. being able to declare on the fly resources (this requires you to
> > > write a
> > > > small openejb observer to add resources before they get created. this
> > can
> > > > be done observing AssemblerCreated event and overriding
> > openejb.conf.file
> > > > to point on your custom tomee.xml you would write in this observer,
> > > > alternative is to set system properties for resources using
> properties
> > > > syntax)
> > > >
> > > >
> > > >
> > > >
> > > > Romain Manni-Bucau
> > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > <https://blog-rmannibucau.rhcloud.com> | Old Wordpress Blog
> > > > <http://rmannibucau.wordpress.com> | Github <
> > > > https://github.com/rmannibucau> |
> > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> > > > <http://www.tomitribe.com> | JavaEE Factory
> > > > <https://javaeefactory-rmannibucau.rhcloud.com>
> > > >
> > > > 2016-06-27 14:19 GMT+02:00 Svetlin Zarev <
> > > svetlin.angelov.za...@gmail.com
> > > > >:
> > > >
> > > > > Hello,
> > > > >
> > > > >
> > > > >
> > > > > Let’s assume that I have an object: org.example.ExampleObject and a
> > > > service
> > > > > provider: org.example.ExampleObjectProvider
> > > > >
> > > > > The service provider has a service-jar.xml:
> > > > >
> > > > >
> > > > >
> > > > > <ServiceJar>
> > > > >     <ServiceProvider id=
> > > > > *"Default ExampleObject Provider"                      *service=
> > > > > *"Resource"                      *types=
> > > > > *"org.example.ExampleObject"                      *class-name=
> > > > > *"org.example.ExampleObjectProvider"
> > > *factory-name=
> > > > > *"provide"                      *constructor=*"ServiceId"*>
> > > > >     </ServiceProvider>
> > > > > </ServiceJar>
> > > > >
> > > > >
> > > > >
> > > > > Can I register that service provider to be the *default* service
> > > provider
> > > > > for ExampleObject objects without having to declare every single
> > > > > ExampleObject resource in tome.xml/resource.xml ? In other words –
> I
> > > want
> > > > > it to behave exactly like the default service-providers (for
> instance
> > > > like
> > > > > the javax.sql.DataSource provider) declared in
> > > > > org.apache.openejb/service-jar.xml.
> > > > >
> > > > >
> > > > >
> > > > > Kind regards,
> > > > >
> > > > > Svetlin
> > > > >
> > > >
> > >
> >
>

Reply via email to