[ https://issues.apache.org/jira/browse/AMQ-5821?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14580210#comment-14580210 ]
Guillaume Nodet commented on AMQ-5821: -------------------------------------- The patch is wrong. The goal is not to verify that the bundle actually imports *some* known packages, but the fact that the bundle imports *our* package. So the use of the wiring API is good, but we need to ensure that the provider is *our* bundle, or at least the same bundle which is used to load the classes. > Activator can trigger unwanted behaviour when loading classes from other > bundles > -------------------------------------------------------------------------------- > > Key: AMQ-5821 > URL: https://issues.apache.org/jira/browse/AMQ-5821 > Project: ActiveMQ > Issue Type: Bug > Components: Broker > Affects Versions: 5.11.1 > Reporter: Christian Schneider > Fix For: 5.11.2, 5.12.0 > > > Currently org.apache.activemq.util.osgi.Activator watches all other bundles > and tries to load some classes using their classloader to check if they might > implement extensions. > This can go wrong if the bundle uses dynamic imports like e.g. jline does. In > this case the jline bundle is triggered to load classes from ActiveMQ. This > establishes a wiring from jline to ActiveMQ. If the ActiveMQ bundle are now > refreshed or uninstalled jline also has to be refreshed which triggers > refreshs of a lot more bundles. > I propose to replace the class probing with checking of the bundle > requirements. We simply check if the bundle has an import for the packages of > the interface classes of ActiveMQ. So we avoid triggering classloading and > the creation of unwanted wirings. -- This message was sent by Atlassian JIRA (v6.3.4#6332)