Sorry for me to chime in on that.
But this scenario should already be possible with Pax-JDBC as far as I
remember correctly :D

Might want to take a look at the surrounding eco-systems ;) especially the
OPS4j (Pax *) one.

regards, Achim

2014-12-02 8:35 GMT+01:00 matthjes <[email protected]>:

> Hi,
>
> I'm currently experimenting with Karaf / Aries blueprint to find out if
> there are suitable ways to provide some functions for my application. One
> of this is to dynamically create DataSources (and then Providers) based on
> properties stored in a file. So the use case would be:
> 1. Create a property file with, e.g., the database driver, url, password
> etc. and Aries JNDI specifier
> 2. Drop this file into karaf/etc
> 3. A new DataSource service is created with the service property "
> osgi.jndi.service.name" set to the value specified in the property file.
> 4. In the persistence.xml the appropriate data source is used (it also has
> a configurable unit name)
> 5. A provider is created based on the persistence.xml
>
> So basically I have an "applications" running in the container that use JPA
> to write/read data to a database. A new application (with a new data
> source) is initialized when a new configuration file is dropped into the
> karaf/etc folder.
>
> Furthermore, it is somehow difficult to find a good documentation about
> blueprint (e.g. property-placeholder, cm:properties, cm:config). Do you
> know a good reference?
>
> On Tue, Dec 2, 2014 at 7:16 AM, jbonofre [via Karaf] <
> [email protected]> wrote:
>
> > Hi,
> >
> > why do you need managed service factory ?
> >
> > A simple cm:config is not enough (it can be provided by a feature) ?
> >
> > Just to understand your use case.
> >
> > Regards
> > JB
> >
> > On 12/02/2014 06:24 AM, matthjes wrote:
> >
> > > Hi,
> > >
> > > I have the following managed-service-factory:
> > >
> > >      <cm:managed-service-factory factory-pid="DataSource"
> > > interface="javax.sql.DataSource">
> > >          <service-properties>
> > >              <entry key="osgi.jndi.service.name" value="${dbname}"/>
> > >          </service-properties>
> > >          <cm:managed-component
> > > class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
> > >              <property name="driverClassName" value=""/>
> > >              <property name="url" value=""/>
> > >              <property name="username" value=""/>
> > >              <property name="password" value=""/>
> > >          </cm:managed-component>
> > >      </cm:managed-service-factory>
> > >
> > > Now I'd like to set ${dbname} to a value specified in a configuration
> > file
> > > so that every time I put a new config file into karaf/etc a new
> > DataSource
> > > service with a specific osgi.jndi.service.name is created.
> > >
> > > I've tried using property-placeholder, however, this did not work. The
> > only
> > > method that currently works ist the following:
> > >
> > >      <cm:managed-service-factory factory-pid="DataSource"
> > > interface="javax.sql.DataSource">
> > >          <service-properties>
> > >              <cm:cm-properties persistent-id="DataSource"/>
> > >          </service-properties>
> > >          <cm:managed-component
> > > class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
> > >              <property name="driverClassName" value=""/>
> > >              <property name="url" value=""/>
> > >              <property name="username" value=""/>
> > >              <property name="password" value=""/>
> > >          </cm:managed-component>
> > >      </cm:managed-service-factory>
> > >
> > > So using cm-properties inside the service-properties element. However,
> > this
> > > uses *all* properties defined in the config file for the
> > service-properties,
> > > which is not intended.
> > >
> > > Is there some way to have a config file with several properties but
> only
> > use
> > > one of them as a service property for a managed service?
> > >
> > >
> > >
> > > --
> > > View this message in context:
> >
> http://karaf.922171.n3.nabble.com/managed-service-factory-how-to-set-service-properties-from-config-file-tp4036836.html
> > > Sent from the Karaf - User mailing list archive at Nabble.com.
> > >
> >
> > --
> > Jean-Baptiste Onofré
> > [hidden email] <http:///user/SendEmail.jtp?type=node&node=4036837&i=0>
> > http://blog.nanthrax.net
> > Talend - http://www.talend.com
> >
> >
> > ------------------------------
> >  If you reply to this email, your message will be added to the discussion
> > below:
> >
> >
> http://karaf.922171.n3.nabble.com/managed-service-factory-how-to-set-service-properties-from-config-file-tp4036836p4036837.html
> >  To unsubscribe from managed-service-factory: how to set
> > service-properties from config file, click here
> > <
> http://karaf.922171.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4036836&code=bWF0dGhqZXNAZ21haWwuY29tfDQwMzY4MzZ8LTk5NjI4MTMwNQ==
> >
> > .
> > NAML
> > <
> http://karaf.922171.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
> >
> >
>
>
>
>
> --
> View this message in context:
> http://karaf.922171.n3.nabble.com/managed-service-factory-how-to-set-service-properties-from-config-file-tp4036836p4036840.html
> Sent from the Karaf - User mailing list archive at Nabble.com.
>



-- 

Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
blog <http://notizblog.nierbeck.de/>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>

Software Architect / Project Manager / Scrum Master

Reply via email to