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