You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Christian Schneider (JIRA)" <ji...@apache.org> on 2014/07/04 11:47:34 UTC

[jira] [Resolved] (KARAF-3034) Automatically create data sources from configuration files

     [ https://issues.apache.org/jira/browse/KARAF-3034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Christian Schneider resolved KARAF-3034.
----------------------------------------

    Resolution: Won't Fix

Will implement this in pax-jdbc as the implementation does not depend on karaf. So we can just reuse it.

See
https://ops4j1.jira.com/browse/PAXJDBC-29

> Automatically create data sources from configuration files
> ----------------------------------------------------------
>
>                 Key: KARAF-3034
>                 URL: https://issues.apache.org/jira/browse/KARAF-3034
>             Project: Karaf
>          Issue Type: New Feature
>    Affects Versions: 3.0.1
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>             Fix For: 4.0.0, 3.0.2, 2.3.6
>
>
> We already support creation of data sources using the jdbc:create command. There we create a blueprint file in the deploy folder.
> This has some drawbacks though:
> 1. It requires blueprint which is bad for karaf 4
> 2. The deploy folder often creates race conditions so it is rather not good for production usage
> 3. The create command needs to support each database type and the configs in the resulting blueprint can not be changed using config admin
> So what I have in mind is to create a module that watches for configs in config admin that match a certain filter like org.apache.karaf.datasource.*.cfg or even datasource.*.cfg.
> Each such config contains properties defined in DataSourceFactory like url, user, password, ...
> The DataSourceFactory is chosen by a driver property.
> So such a config (datasource.test.cfg) could look like this for derby:
> driver=org.apache.derby.jdbc.EmbeddedDriver
> databaseName=memory:TEST;create=true
> So the new module would do the following:
> - pick up the config
> - find the matching DataSourceFactory (e.g. provided by pax jdbc)
> - create a new DataSource with the rest of the properties
> - publish the DataSource as an OSGi service and with a jndi name suitable for aries jndi
> So the user would install:
> - derby
> - pax jdbc derby
> - the new module
> - config in etc
> The result would be a data source that is ready to use for aries jdbc or any other use case.
> This solution would work much better for production deployments than the current blueprint solution.
> We could then adapt the jdbc:create command to work on the config files to make it even easier to create data sources than with pure configs.



--
This message was sent by Atlassian JIRA
(v6.2#6252)