camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Claus Ibsen (JIRA)" <>
Subject [jira] [Commented] (CAMEL-8647) Make Camel OSGI Extender Subsystem-Aware
Date Tue, 19 May 2015 06:03:00 GMT


Claus Ibsen commented on CAMEL-8647:

Thanks Manuel there was another in camel-cxf-transport.

But we are not there yet still some new problems 
  Apache Karaf (2.4.2)

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'osgi:shutdown' or 'logout' to shutdown Karaf.

karaf@root> features:chooseurl camel 2.16-SNAPSHOT
Adding feature url mvn:org.apache.camel.karaf/apache-camel/2.16-SNAPSHOT/xml/features
karaf@root> features:install camel
karaf@root> features:install camel-cxf
Error executing command: Can't install feature camel-cxf/0.0.0:
Could not start bundle mvn:org.apache.cxf/cxf-rt-rs-extension-providers/3.0.4 in feature(s)
cxf-jaxrs-3.0.4: Uses constraint violation. Unable to resolve bundle revision org.apache.cxf.cxf-rt-frontend-jaxrs
[117.0] because it is exposed to package 'javax.annotation' from bundle revisions javax.annotation-api
[80.0] and org.apache.felix.framework [0] via two dependency chains.

Chain 1:
  org.apache.cxf.cxf-rt-frontend-jaxrs [117.0]
    import: (&(osgi.wiring.package=javax.annotation)(version>=1.2.0)(!(version>=2.0.0)))
    export: osgi.wiring.package=javax.annotation
  javax.annotation-api [80.0]

Chain 2:
  org.apache.cxf.cxf-rt-frontend-jaxrs [117.0]
    import: (&(osgi.wiring.package=org.springframework.context.annotation)(version>=3.1.0)(!(version>=5.0.0)))
    export: osgi.wiring.package=org.springframework.context.annotation; uses:=javax.annotation
  org.apache.servicemix.bundles.spring-context [67.0]
    import: (osgi.wiring.package=javax.annotation)
    export: osgi.wiring.package=javax.annotation
  org.apache.felix.framework [0]

> Make Camel OSGI Extender Subsystem-Aware
> ----------------------------------------
>                 Key: CAMEL-8647
>                 URL:
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core, osgi
>            Reporter: Manuel Holzleitner
>            Assignee: Christian Schneider
>             Fix For: 2.16.0
> 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]

This message was sent by Atlassian JIRA

View raw message