[teiid-issues] [JBoss JIRA] Commented: (TEIID-600) Better handling of connector depdendencies

John Doyle (JIRA) jira-events at lists.jboss.org
Mon May 18 09:19:05 EDT 2009


    [ https://jira.jboss.org/jira/browse/TEIID-600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12468026#action_12468026 ] 

John Doyle commented on TEIID-600:
----------------------------------

Can you better explain the distinction between the two categories of connector dependencies?

I don't know all of the issues you are trying to address with this change, but I'm concerned that it's a solution that won't work for all users.  Will custom connectors have to promote jars to the lib, and if so, how do they make the determination of which ones go in lib and which ones don't.  What about completing versions of libraries?  

Larry had proposed some weeks back pulling the connectors further out of teiid so that they could support multiple versions, and I approve of that direction.  This change seems to go the other way. 

> Better handling of connector depdendencies
> ------------------------------------------
>
>                 Key: TEIID-600
>                 URL: https://jira.jboss.org/jira/browse/TEIID-600
>             Project: Teiid
>          Issue Type: Quality Risk
>          Components: Connector API
>    Affects Versions: 6.0.0
>            Reporter: Steven Hawkins
>            Assignee: Steven Hawkins
>            Priority: Critical
>             Fix For: 6.1.0
>
>
> Connector dependencies by in large really fall into two categories - our built-in jars or jars that are intended to be at a system level (such as a driver).  By only allowing these jars to exist under a post delegation class loader there are many downsides - it has a negative impact on memory, it can cause issues with classloader leaks, makes built in connector patching more difficult, and simply won't work in the case of native oracle drivers.  Here are the steps we would like to take to address this:
> Promote all top-level built-in connector jars to the lib - this would be things like connector-jdbc, connector-ldap, etc.
> Add the notion of the common extension classpath to the dqp.
> Change the common extension classpath to be a delegating classloader.
> Change the meaning of the connector classpath to "required common dependencies", then at the start of any connector service ensure/add all entries from the connector classpath into the common extension classpath.  The common extension classpath will be cached and managed similar to the connector classloader cache.  Changes to extension modules will cause it to be reloaded.  Since this approach does not actually threat connector classpath setting as a classpath ordering of the entries doe not matter and thus patch jars would not be useful in this setting.  Rather users would simply replace the extension module they are attempting to patch.
> The connector type classpath would remain and still specifies required post delegation libraries. 
> How Designer is managing dependencies does not need to initially change at all.  Basically all jars added as connector dependencies will be treated as common.  The only scenario that won't work initially is a custom connector requiring post-delegation libraries.  We can address this at a later time.   

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the teiid-issues mailing list