Hi JB,

I poked around a bit more. This is what I found.

When I replace the jdbc feature in the bootFeatures section with only the 
required features I do end up with a single DataSourceFactory and two 
Datasources (which is expected)

<bootFeatures>
...
        <!--feature>jdbc</feature-->
        <feature>pax-jdbc-spec</feature>
        <feature>pax-jdbc-mysql</feature>
        <feature>pax-jdbc-config</feature>
        <feature>pax-jdbc-pool-dbcp2</feature>
...

karaf@root()> services | grep DataSource
[javax.sql.DataSource]
[javax.sql.DataSource]
[org.osgi.service.jdbc.DataSourceFactory]
[org.ops4j.pax.jdbc.pool.common.PooledDataSourceFactory]
[org.ops4j.pax.jdbc.pool.common.PooledDataSourceFactory]

But now I have lost the console commands. When I manually install the jdbc 
feature I get the console commands back but now I also have duplicate DSFactory 
again.

Just FYI.


Regards,

Erwin


> On May 22, 2019, at 09:39, Jean-Baptiste Onofré <[email protected]> wrote:
> 
> Hi Erwin,
> 
> Hmmm, that's weird. Let me try to reproduce on Karaf example using MySQL.
> 
> Regards
> JB
> 
> On 22/05/2019 15:33, Erwin Hogeweg wrote:
>> Thanks JB…
>> 
>> Trying to get this to work by modding the feature.xml. This approach
>> doesn’t work because the the pax-jdbc feature is still pulled in as a
>> depended feature.
>> <!--feature version="1.3.1">pax-jdbc</feature>-->
>>         <feature version="1.3.1">pax-jdbc-config</feature>
>>         <feature version="1.3.1">pax-jdbc-pool-dbcp2</feature>
>>         <feature version="1.3.1">pax-jdbc-mysql</feature>
>> 
>> So I tried 1.3.5 as you recommended: 
>> <!--feature version="1.3.1">pax-jdbc</feature>-->
>>         <feature version="1.3.5">pax-jdbc-config</feature>
>>         <feature version="1.3.5">pax-jdbc-pool-dbcp2</feature>
>>         <feature version="1.3.5">pax-jdbc-mysql</feature>
>> 
>> But those 1.3.5 features don’t appear to exist yet. 
>> 
>> Next approach, just include the individual bundles: 
>> <!-- pax-jdbc 1.3.5 -->
>> <bundle start-level="30">mvn:org.apache.commons/commons-dbcp2/2.6.0</bundle>
>>         <bundle
>> start-level="30">mvn:org.ops4j.pax.jdbc/pax-jdbc-config/1.3.5</bundle>
>>         <bundle
>> start-level="30">mvn:org.ops4j.pax.jdbc/pax-jdbc-pool-dbcp2/1.3.5</bundle>
>>         <bundle
>> start-level="30">mvn:org.ops4j.pax.jdbc/pax-jdbc-mysql/1.3.5</bundle>
>> 
>> But now I am ending up pulling in a bunch of depended bundles. I have no
>> problem to continue down this path but I am not sure this is the right
>> direction.
>> 
>> Please share your opinion.
>> 
>> 
>> Thanks, Erwin  
>> 
>>> On May 22, 2019, at 00:53, Jean-Baptiste Onofré <[email protected]
>>> <mailto:[email protected]>> wrote:
>>> 
>>> Hi Erwin,
>>> 
>>> First, I'm suggesting to upgrade to Pax JDBC 1.3.5 containing fixes.
>>> 
>>> I guess you have both pax-jdbc-config feature and pax-jdbc bundle
>>> installed.
>>> pax-jdbc bundle is a wrapper that automatically detect and expose a
>>> factory.
>>> 
>>> It's similar to what I fixed in
>>> https://ops4j1.jira.com/browse/PAXJDBC-135.
>>> 
>>> You should not install pax-jdbc bundle IMHO as you are using
>>> pax-jdbc-mysql feature.
>>> 
>>> Regards
>>> JB
>>> 
>>> On 22/05/2019 04:28, Erwin Hogeweg wrote:
>>>> Hi,
>>>> 
>>>> Not sure if I am doing something wrong or if this is a known issue. I am
>>>> using Karaf-4.2.5 with pax-jdbc-1.3.1 and I end up with two identical
>>>> DataSourceFactories and 2 identical Data Sources. One from the
>>>> mysql-5.1.34 Oracle bundle and one from the pax-jdbc-mysql adapter
>>>> bundle.
>>>> 
>>>> When I use jdbc:ds-list I see 2 Datasources for ea. database and Karaf
>>>> even generates a warning msg that I have duplicate DataSources and that
>>>> I should check my config.
>>>> 
>>>> I only have ONE config file for ea. database.
>>>> 
>>>> Name           │ Product │ Version    │ URL                            
>>>>                                                             │ Status
>>>> ───────────────┼─────────┼────────────┼─────────────────────────────────────────────────────────────────────────────────────────────┼───────
>>>> jdbc/database1 │ MySQL   │ 5.5.61-cll │
>>>> jdbc:mysql://p.q.r.s:3306/Schema?useSSL=false&zeroDateTimeBehavior=convertToNull
>>>> │ OK
>>>> jdbc/database2 │ MySQL   │ 5.6.31-log │
>>>> jdbc:mysql://the_db_server:3306/schema?useSSL=false                     
>>>>                     │ OK
>>>> jdbc/database2 │ MySQL   │ 5.6.31-log │
>>>> jdbc:mysql://the_db_server:3306/schema?useSSL=false                     
>>>>                     │ OK
>>>> jdbc/databawe1 │ MySQL   │ 5.5.61-cll │
>>>> jdbc:mysql://p.q.r.s:3306/Schema?useSSL=false&zeroDateTimeBehavior=convertToNull
>>>> │ OK
>>>> 
>>>>   [pipe-jdbc:ds-list] WARN
>>>> org.apache.karaf.jdbc.internal.JdbcServiceImpl - Multiple JDBC
>>>> datasources found with the same service ranking for jdbc/myDB
>>>> 
>>>> 
>>>> [org.osgi.service.jdbc.DataSourceFactory]
>>>> -----------------------------------------
>>>>  osgi.jdbc.driver.class = com.mysql.jdbc.Driver
>>>>  osgi.jdbc.driver.name = com.mysql.jdbc
>>>>  osgi.jdbc.driver.version = 5.1.34
>>>>  service.bundleid = 172
>>>>  service.id <http://service.id> <http://service.id> = 415
>>>>  service.scope = singleton
>>>> *Provided by : 
>>>>  Oracle Corporation's JDBC Driver for MySQL (172)*
>>>> Used by: 
>>>>  OPS4J Pax JDBC Config (12)
>>>> 
>>>> [org.osgi.service.jdbc.DataSourceFactory]
>>>> -----------------------------------------
>>>>  osgi.jdbc.driver.class = com.mysql.jdbc.Driver
>>>>  osgi.jdbc.driver.name = mysql
>>>>  service.bundleid = 235
>>>>  service.id <http://service.id> <http://service.id> = 420
>>>>  service.scope = singleton
>>>> *Provided by : 
>>>>  OPS4J Pax JDBC MySQL Driver Adapter (235)*
>>>> Used by: 
>>>>  OPS4J Pax JDBC Config (12)
>>>> 
>>>> 
>>>> Kind Regards,
>>>> 
>>>> Erwin
>>> 
>>> -- 
>>> Jean-Baptiste Onofré
>>> [email protected] <mailto:[email protected]>
>>> http://blog.nanthrax.net
>>> Talend - http://www.talend.com
>> 
> 
> -- 
> Jean-Baptiste Onofré
> [email protected]
> http://blog.nanthrax.net
> Talend - http://www.talend.com

Reply via email to