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 ?

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