[
https://issues.apache.org/jira/browse/CAMEL-8647?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14499467#comment-14499467
]
Christian Schneider commented on CAMEL-8647:
--------------------------------------------
Generally offering a capability for the extender is a very good step. The
capability itself can also do no harm.
A problem may occur as soon as people start to require the extender in their
user bundles if they sometimes want to use an old camel version that does not
offer the capability. So we should start offering the capability as soon as
possible but not yet recommend that everyone should start using it right away.
Supporting subsystems could be a solution for some of the classloading problems
but I am not yet familiar enough with subsystems to make a good decision how to
proceed here. I am also not sure how well subsystems already work. If the patch
does not cause problems for normal usage I am fine with adding it.
About the required OSGi version. I think we mainly need BundleWiring which is
available in 4.3.1 and is already provided by all half way current OSGi
frameworks.
If I find some time I will review and test the patch today and give feedback.
> Make Camel OSGI Extender Subsystem-Aware
> ----------------------------------------
>
> Key: CAMEL-8647
> URL: https://issues.apache.org/jira/browse/CAMEL-8647
> Project: Camel
> Issue Type: Improvement
> Components: camel-core, osgi
> Reporter: Manuel Holzleitner
>
> I would like to propose a change to the camel-core extender for components,
> type converters, etc. to allow to use camel-core with subsystem-aware
> OSGI-containers to separate components and it’s dependencies into subsystems.
> This would allow to isolate applications and camel components (incl. it’s
> libraries) from each other. I.e. you could run HTTP-related components that
> rely on (otherwise conflicting) HTTP client libs in different versions next
> to each other.
> Currently, the BundleTracker in the camel-core extender is initialized on its
> own BundleContext and therefore does not receive any events from started
> camel component bundles that reside in subsystems. I discussed a solution to
> make the camel extender subsystem-aware in the Aries mailinglist [1], who
> already conducted this change in the blueprint implementation.
> This approach from the upcoming R6 DS 1.3 spec was proposed by David Jencks
> as a solution:
> - use the system bundle (bundle 0) to look for events of interest, so you
> see them for all bundles
> - have the extender register an extender capability
> - have bundles that need extension register a matching extender requirement
> - the extender should only extend bundles with no extender requirement or
> ones with extender requirements wired to their own extender capability.
> I implemented this approach accordingly for camel and tested it in
> combination with the Aries subsystem module. Any feedback to this would be
> very much appreciated.
> [1]
> http://mail-archives.apache.org/mod_mbox/aries-user/201503.mbox/%3CCADE24oihG71CdC=pz-zno9reuxnoq4zh4qw4fgseor4zxqc...@mail.gmail.com%3E
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)