Hi JB,

I would suggest to add pax-jdbc feature as dependency to pax-jdbc-derby
feature as it would work without. Just keep pax features independent
from possible installed karaf feature.

What do you think?

Regards

Benjamin

Am 04.02.2019 um 21:20 schrieb Jean-Baptiste Onofré:
> Hi Benjamin,
>
> Previously, pax-jdbc-derby feature also needed pax-jdbc feature.
>
> I directly installed the derby bundle, it uses dynamic import, that's
> why it works with pax-jdbc-spec IMHO (with the package with
> DataSourceFactory is there).
>
> So, I'm not sure to see your point: in previous version, you also need
> pax-jdbc to get the adapter working.
>
> What are you suggesting ?
>
> Regards
> JB
>
> On 04/02/2019 21:08, Benjamin Graf wrote:
>> Hu JB,
>>
>> Just to summarize:
>>
>> Karaf jdbc installs pax-jdbc and pax-jdbc-config sub features. pax-jdbc
>> is needed to get a DataSourceFactory instance for Driver only
>> installations like Derby. Derby does not register a DataSourceFactory 
>> directly. But if you do not install jdbc and/or pax-jdbc you won't get
>> the DataSourceFactory for Derby anymore. That IMHO is a break to
>> previous versions using the pax-jdbc-derby adaptor.
>>
>> Regards
>>
>> Benjamin
>>
>> Am 04.02.2019 um 21:03 schrieb Jean-Baptiste Onofré:
>>> pax-jdbc installs the pax-jdbc-spec bundle, that's why.
>>>
>>> Regards
>>> JB
>>>
>>> On 04/02/2019 20:59, Benjamin Graf wrote:
>>>> This way pax-jdbc-derby also need pax-jdbc feature to get installed!
>>>>
>>>> Am 04.02.2019 um 20:57 schrieb Benjamin Graf:
>>>>> Hi JB,
>>>>>
>>>>> I install pax-jdbc-config and pax-jdbc-derby. After installing pax-jdbc
>>>>> I got the derby DataSourceFactory. IMHO pax-jdbc is not mandatory to
>>>>> install and pooling seems to not work either.
>>>>>
>>>>> Regards
>>>>>
>>>>> Benjamin
>>>>>
>>>>> Am 04.02.2019 um 20:44 schrieb Jean-Baptiste Onofré:
>>>>>> By the way, Karaf example itest (jdbc example) use Derby without problem.
>>>>>>
>>>>>> Regards
>>>>>> JB
>>>>>>
>>>>>> On 04/02/2019 20:23, Benjamin Graf wrote:
>>>>>>> Hi JB,
>>>>>>>
>>>>>>> if I install pax-jdbc-derby on a fresh Karaf 4.2.3-SNAPSHOT I do not get
>>>>>>> a DataSourceFactory registered. I also do not found any code in derby
>>>>>>> sources that does anything about that if do not install pax-jdbc  to get
>>>>>>> the Driver instrumented.
>>>>>>>
>>>>>>> Regards
>>>>>>>
>>>>>>> Benjamin
>>>>>>>
>>>>>>> Am 04.02.2019 um 16:30 schrieb Jean-Baptiste Onofré:
>>>>>>>> FYI: I did Pax JDBC 1.3.3 release yesterday, and Karaf 4.2.3-SNAPSHOT 
>>>>>>>> is
>>>>>>>> already updated. So it will be included in 4.2.3 release that will be 
>>>>>>>> on
>>>>>>>> vote tonight.
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> JB
>>>>>>>>
>>>>>>>> On 04/02/2019 16:27, Alex Soto wrote:
>>>>>>>>> Thank you all,
>>>>>>>>>
>>>>>>>>> The workaround worked, i.e., removed feature /pax-jdbc-derby / and
>>>>>>>>> adding only the derby feature.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>> Alex soto
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> On Feb 2, 2019, at 1:48 AM, Jean-Baptiste Onofré <[email protected]
>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>
>>>>>>>>>> That's what I'm testing: still keeping pax-jdbc-derby feature but 
>>>>>>>>>> just
>>>>>>>>>> installing the derby bundle (not the pax-jdbc wrapper bundle).
>>>>>>>>>>
>>>>>>>>>> Regards
>>>>>>>>>> JB
>>>>>>>>>>
>>>>>>>>>> On 02/02/2019 07:35, Christian Schneider wrote:
>>>>>>>>>>> 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é
>>>>>>>>>>> <[email protected] <mailto:[email protected]> 
>>>>>>>>>>> <mailto:[email protected]>>:
>>>>>>>>>>>
>>>>>>>>>>>    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
>>>>>>>>>>>    <http://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é
>>>>>>>>>>>    <[email protected] <mailto:[email protected]> 
>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>> 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é
>>>>>>>>>>>    <[email protected] <mailto:[email protected]> 
>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>>>>>> <mailto:[email protected] <mailto:[email protected]>>> 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 <http://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 <http://osgi.jdbc.driver.name> = 
>>>>>>>>>>>>>>>>> derby
>>>>>>>>>>>>>>>>>     osgi.jndi.service.name <http://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
>>>>>>>>>>>>>>>>> <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 <http://osgi.jdbc.driver.name> = 
>>>>>>>>>>>>>>>>> derby
>>>>>>>>>>>>>>>>>     osgi.jndi.service.name <http://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
>>>>>>>>>>>>>>>>> <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é
>>>>>>>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>>>>> <mailto:[email protected]
>>>>>>>>>>>    <mailto:[email protected]>> <mailto:[email protected]
>>>>>>>>>>>    <mailto:[email protected]>>
>>>>>>>>>>>>>>>> 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é
>>>>>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>    <mailto:[email protected] <mailto:[email protected]>>
>>>>>>>>>>>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>>>>>>>>>>>>> Talend - http://www.talend.com <http://www.talend.com/>
>>>>>>>>>>>    --
>>>>>>>>>>>    Jean-Baptiste Onofré
>>>>>>>>>>>    [email protected] <mailto:[email protected]>
>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>    http://blog.nanthrax.net
>>>>>>>>>>>    Talend - http://www.talend.com
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> -- 
>>>>>>>>>>> -- 
>>>>>>>>>>> Christian Schneider
>>>>>>>>>>> http://www.liquid-reality.de
>>>>>>>>>>>
>>>>>>>>>>> Computer Scientist
>>>>>>>>>>> http://www.adobe.com
>>>>>>>>>>>
>>>>>>>>>> -- 
>>>>>>>>>> Jean-Baptiste Onofré
>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>> http://blog.nanthrax.net
>>>>>>>>>> Talend - http://www.talend.com

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to