If derby now provides a DataSourceFactory then we should remove pax-jdbc-derby from the feature.
I guess at some point derby started providing the DSF and we just forgot to remove the adapter bundle. Christian Am Sa., 2. Feb. 2019 um 07:19 Uhr schrieb Jean-Baptiste Onofré < j...@nanthrax.net>: > By the way, a simple workaround is to stop or even remove the > pax-jdbc-derby bundle, and use only the derby bundle (or the opposite). > > Regards > JB > > On 02/02/2019 06:55, Jean-Baptiste Onofré wrote: > > OK, I think I found the problem: installing the pax-jdbc-derby feature > > actually registers two DataSourceFactory services: > > > > 1. a DataSourceFactory service coming from pax-jdbc-derby bundle (which > > is normal) (org.apache.derby.jdbc.EmbeddedDriver) > > 2. a DataSourceFactory service coming from directly Derby bundle > > (org.apache.derby.jdbc.AutoloadedDriver). > > > > Both using the same derby value for osgi.jdbc.driver.name service > property. > > > > So pax-jdbc-config sees two factory and so it creates one datasource per > > factory. > > > > That's why it's only when you use derby and actually, the two datasource > > services come from the two factories. > > > > I'm fixing that. > > > > Regards > > JB > > > > On 01/02/2019 19:10, Alex Soto wrote: > >> Oh, thanks! > >> > >> Can you suggest a work around? > >> What s the ETA for a fix? > >> I have a release deadline looming and I am afraid I can't wait too > long. > >> > >> Thank you for the prompt response. > >> > >> Best regards, > >> Alex soto > >> > >> > >> > >> > >>> On Feb 1, 2019, at 1:05 PM, Jean-Baptiste Onofré <j...@nanthrax.net > >>> <mailto:j...@nanthrax.net>> wrote: > >>> > >>> Indeed, I can reproduce the issue embedded: > >>> > >>> Name │ Service Id │ Product │ Version │ URL > >>> │ Status > >>> > ────────┼────────────┼──────────────┼───────────────────────┼───────────────────────────────┼─────── > >>> querier │ 91 │ Apache Derby │ 10.13.1.1 - (1765088) │ > >>> jdbc:derby:derby-data/querier │ OK > >>> querier │ 92 │ Apache Derby │ 10.13.1.1 - (1765088) │ > >>> jdbc:derby:derby-data/querier │ OK > >>> > >>> I will fix that. > >>> > >>> Regards > >>> JB > >>> > >>> On 01/02/2019 19:01, Alex Soto wrote: > >>>>> How to do you provision the datasource cfg file ? > >>>>> Using a feature or by dropping the file in the etc folder ? > >>>> > >>>> > >>>> Dropping file in the etc/ directory > >>>> > >>>> Best regards, > >>>> Alex soto > >>>> > >>>> > >>>> > >>>> > >>>>> On Feb 1, 2019, at 12:57 PM, Jean-Baptiste Onofré <j...@nanthrax.net > >>>>> <mailto:j...@nanthrax.net> > >>>>> <mailto:j...@nanthrax.net>> wrote: > >>>>> > >>>>> Hi, > >>>>> > >>>>> I just did a blog where I'm using a derby datasource (on Karaf > >>>>> 4.2.3-SNAPSHOT): http://blog.nanthrax.net/?p=874 > >>>>> > >>>>> If you install an unique provider (only derby or derbyclient, but not > >>>>> both), then, it should work. > >>>>> > >>>>> I did: > >>>>> > >>>>> feature:install pax-jdbc-derbyclient > >>>>> > >>>>> then: > >>>>> > >>>>> jdbc:ds-create -dn derbyclient -url > jdbc:derby://localhost:1527/foo foo > >>>>> > >>>>> And I see only one datasource service: > >>>>> > >>>>> karaf@root()> jdbc:ds-list > >>>>> Name │ Service Id │ Product │ Version │ URL > >>>>> │ Status > >>>>> > ────┼────────────┼──────────────┼───────────────────────┼───────────────────────────────────────┼─────── > >>>>> foo │ 91 │ Apache Derby │ 10.14.2.0 - (1828579) │ > >>>>> jdbc:derby://localhost:1527/scheduler │ OK > >>>>> > >>>>> In your case, it seems that pax-jdbc-config is in cause, like it > >>>>> bootstrap two db. How to do you provision the datasource cfg file ? > >>>>> Using a feature or by dropping the file in the etc folder ? > >>>>> > >>>>> I will check when my build is complete. > >>>>> > >>>>> Regards > >>>>> JB > >>>>> > >>>>> On 01/02/2019 18:48, Alex Soto wrote: > >>>>>> Hello, > >>>>>> > >>>>>> I am experiencing a problem where /pax-jdbc-config/ (version 1.3.0) > is > >>>>>> creating duplicate Derby Data Sources. I copy the data source > >>>>>> configuration file to Karaf's /etc/ /directory, after a while I > >>>>>> can see > >>>>>> it created two identical Data Sources. > >>>>>> > >>>>>> The configuration file: /org.ops4j.datasource-querier.cfg/ > >>>>>> > >>>>>> osgi.jdbc.driver.name = derby > >>>>>> dataSourceName=querier > >>>>>> url=jdbc:derby:derby-data/querier;create=true > >>>>>> > >>>>>> user=enquery > >>>>>> password=XXXX > >>>>>> databaseName=querier > >>>>>> > >>>>>> ops4j.preHook=querierDB > >>>>>> > >>>>>> > >>>>>> It creates duplicate Data Sources: > >>>>>> > >>>>>> karaf@root()> service:list DataSource > > >>>>>> > > >>>>>> > > >>>>>> > >>>>>> [javax.sql.DataSource] > >>>>>> ---------------------- > >>>>>> databaseName = querier > >>>>>> dataSourceName = querier > >>>>>> felix.fileinstall.filename = > >>>>>> file:/Users/asoto/test/etc/org.ops4j.datasource-querier.cfg > >>>>>> ops4j.preHook = querierDB > >>>>>> osgi.jdbc.driver.name = derby > >>>>>> osgi.jndi.service.name = querier > >>>>>> password = enquery > >>>>>> pax.jdbc.managed = true > >>>>>> service.bundleid = 169 > >>>>>> service.factoryPid = org.ops4j.datasource > >>>>>> service.id > >>>>>> <http://service.id/> <http://service.id/> <http://service.id > >>>>>> <http://service.id/> > >>>>>> <http://service.id/>> = 238 > >>>>>> service.pid = > >>>>>> org.ops4j.datasource.b161e768-e5f8-40bb-b19f-40cab9111316 > >>>>>> service.scope = singleton > >>>>>> url = jdbc:derby:derby-data/querier;create=true > >>>>>> user = enquery > >>>>>> Provided by : > >>>>>> OPS4J Pax JDBC Config (169) > >>>>>> Used by: > >>>>>> JPA (22) > >>>>>> [javax.sql.DataSource] > >>>>>> ---------------------- > >>>>>> databaseName = querier > >>>>>> dataSourceName = querier > >>>>>> felix.fileinstall.filename > >>>>>> = file:/Users/asoto/test/etc/org.ops4j.datasource-querier.cfg > >>>>>> ops4j.preHook = querierDB > >>>>>> osgi.jdbc.driver.name = derby > >>>>>> osgi.jndi.service.name = querier > >>>>>> password = enquery > >>>>>> pax.jdbc.managed = true > >>>>>> service.bundleid = 169 > >>>>>> service.factoryPid = org.ops4j.datasource > >>>>>> service.id > >>>>>> <http://service.id/> <http://service.id/> <http://service.id > >>>>>> <http://service.id/> > >>>>>> <http://service.id/>> = 282 > >>>>>> service.pid = > >>>>>> org.ops4j.datasource.b161e768-e5f8-40bb-b19f-40cab9111316 > >>>>>> service.scope = singleton > >>>>>> url = jdbc:derby:derby-data/querier;create=true > >>>>>> user = enquery > >>>>>> Provided by : > >>>>>> OPS4J Pax JDBC Config (169) > >>>>>> > >>>>>> > >>>>>> Also: > >>>>>> > >>>>>> karaf@root()> jdbc:ds-list > >>>>>> Name │ Product │ Version │ URL > > >>>>>> │ Status > >>>>>> > > ────────┼──────────────┼───────────────────────┼───────────────────────────────┼─────── > >>>>>> querier │ Apache Derby │ 10.13.1.1 - (1765088) │ > >>>>>> jdbc:derby:derby-data/querier │ OK > >>>>>> querier │ Apache Derby │ 10.13.1.1 - (1765088) │ > >>>>>> jdbc:derby:derby-data/querier │ OK > >>>>>> > >>>>>> > >>>>>> > >>>>>> I think it must be specific to Derby, as the same works fine if the > >>>>>> driver is MariaDB. > >>>>>> Any clues? > >>>>>> > >>>>>> Best regards, > >>>>>> Alex soto > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>> > >>>>> -- > >>>>> Jean-Baptiste Onofré > >>>>> jbono...@apache.org > >>>>> <mailto:jbono...@apache.org> <mailto:jbono...@apache.org> > >>>>> http://blog.nanthrax.net > >>>>> <http://blog.nanthrax.net/> <http://blog.nanthrax.net/> > >>>>> Talend - http://www.talend.com > >>>>> <http://www.talend.com/> <http://www.talend.com/> > >>>> > >>> > >>> -- > >>> Jean-Baptiste Onofré > >>> jbono...@apache.org <mailto:jbono...@apache.org> > >>> http://blog.nanthrax.net <http://blog.nanthrax.net/> > >>> Talend - http://www.talend.com <http://www.talend.com/> > >> > > > > -- > Jean-Baptiste Onofré > jbono...@apache.org > http://blog.nanthrax.net > Talend - http://www.talend.com > -- -- Christian Schneider http://www.liquid-reality.de Computer Scientist http://www.adobe.com