Hi Christian,

Yeah, If camel team agree to upgrade to commons-dbcp 1.4 then we can use SMX wrapped commons-dbcp 1.4 bundle directly.

If there's no other objection I'll append a patch which upgrade to commons-dbcp 1.4 also.

Best Regards
Freeman
On 2011-8-6, at 上午12:50, Christian Müller wrote:

I wonder is there a reason not to upgrade Camel to use commons-dbcp 1.4 when
SMX already use this version?

Best,
Christian

On Fri, Aug 5, 2011 at 9:27 AM, Freeman Fang (JIRA) <j...@apache.org> wrote:


  [
https://issues.apache.org/jira/browse/CAMEL-4308?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13079810 #comment-13079810]

Freeman Fang commented on CAMEL-4308:
-------------------------------------

I noticed that camel now use commons-dbcp 1.3 but in servicemix we have wrapped commons-dbcp 1.2.2 and 1.4, so I create SMX4-892[1] and will add
commons-dbcp 1.3 bundle in servicemix firstly.

[1]https://issues.apache.org/jira/browse/SMX4-892

Freeman

commons-dbcp bundle used in camel feature.xml doesn't allow dynamic
imports

---------------------------------------------------------------------------

               Key: CAMEL-4308
               URL: https://issues.apache.org/jira/browse/CAMEL-4308
           Project: Camel
        Issue Type: Improvement
          Reporter: Freeman Fang

currently the commons-dbcp bundle used in camel feature.xml doesn't allow
dynamic imports, it will cause exception like
org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class
'oracle.jdbc.driver.OracleDriver'
as
JDBC driver class not found actually is a common issue in OSGi container,
this problem generally from a bundle(let's say it bundle A, commons- dbcp in this case) using some code like classForName(jdbc_driver_classname) to init a jdbc driver class, this is a big problem in OSGi world, as if BundleA not import package for jdbc_driver_classname, we'll see the problem. However BundleA actually can't know about package name for jdbc_driver_classname beforehand, as the jdbc_driver_classname generally is passed in through configuration during runtime, it can't be determined during build time, so
we can't add correct package import when we generate bundle A.
The general solution is
1. add dynamic import for bundle A(commons-dbcp)
or
2. create JDBC driver as a fragment bundle, and attach it to bundle
A(bundle A is host bundle now), so that all resource from fragment bundle is
available for the host bundle.
Solution 1 left less effort for end user and n servicemix wrapped
commons-dbcp bundle we already have dynamic-import header and I think camel features should use the servicemix wrapped commons-dbcp bundle as well.
I will append a patch soon.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




---------------------------------------------
Freeman Fang

FuseSource
Email:ff...@fusesource.com
Web: fusesource.com
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com









Reply via email to