You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by rwoolf <ro...@rosswoolf.com> on 2015/11/09 21:47:18 UTC

Using a specific bundle version (in Karaf in Blueprint/Camel context route.

Does Camel or Blueprint provide a way for me to use the same dependency model
as OSGi where I can specify a specific version of a bean to use in a camel
context when running in Karaf?

If I have two different versions/bundles of an API jar in Karaf (theAPI
version 1, and theAPI version 2) is there a way to tell one camel context to
use version 1 of the bundle and another camel context to use version 2 of
the bundle? 

theAPI is wired as a bean in a route within a camel context.  My camel
context is configured within a blueprint xml file.

I know that when I create a bundle for Karaf I can declare dependencies
based on a bundle version number (basic OSGi), but I can't see a similar way
to do this at the camel level.  




--
View this message in context: http://camel.465427.n5.nabble.com/Using-a-specific-bundle-version-in-Karaf-in-Blueprint-Camel-context-route-tp5773548.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Using a specific bundle version (in Karaf in Blueprint/Camel context route.

Posted by Ross Woolf <ro...@rosswoolf.com>.
Thank you, that solved my problem.

On Tue, Nov 10, 2015 at 12:32 PM, John Taylor <jt...@gmail.com> wrote:

> rwoolf <ro...@rosswoolf.com> writes:
>
> > My blueprint xml file is my "bundle."  I drop the blueprint xml file into
> > the deploy directory.  I have two different blueprint xml files for the
> two
> > different contexts.  So in this regard they are different bundles.  But
> > they are not packaged as jar based bundles.  I'm guessing from what you
> > said that neither blueprint or camel will be able to provide any means to
> > declare a specific version dependency.  I would need to package these
> > blueprint xml files into real jar bundles in order to be able to declare
> > version dependencies.  Am I right?
> >
> > It would be really nice if I could declare a version dependency in the
> > blueprint xml file and then just deploy that xml file.  Since blueprint
> is
> > geared towards OSGi it would be great if I could do something like this.
> >
>
> The version imports are going to be a function of the osgi deployment,
> and in this specific case would be driven by the Karaf "Blueprint
> Deployer" see [1], specifically the section on customizing the generated
> manifest where it shows
>
> <manifest xmlns="http://karaf.apache.org/xmlns/deployer/blueprint/v1.0.0">
> Require-Bundle= my-bundle
> </manifest>
>
> The Require-Bundle header is documented at osgi.org at [2].
>
> [1] https://karaf.apache.org/manual/latest/users-guide/deployers.html
> [2] http://wiki.osgi.org/wiki/Require-Bundle
>
>
> Hope that helps.
> -John
>

Re: Using a specific bundle version (in Karaf in Blueprint/Camel context route.

Posted by John Taylor <jt...@gmail.com>.
rwoolf <ro...@rosswoolf.com> writes:

> My blueprint xml file is my "bundle."  I drop the blueprint xml file into
> the deploy directory.  I have two different blueprint xml files for the two
> different contexts.  So in this regard they are different bundles.  But
> they are not packaged as jar based bundles.  I'm guessing from what you
> said that neither blueprint or camel will be able to provide any means to
> declare a specific version dependency.  I would need to package these
> blueprint xml files into real jar bundles in order to be able to declare
> version dependencies.  Am I right?
>
> It would be really nice if I could declare a version dependency in the
> blueprint xml file and then just deploy that xml file.  Since blueprint is
> geared towards OSGi it would be great if I could do something like this.
>

The version imports are going to be a function of the osgi deployment,
and in this specific case would be driven by the Karaf "Blueprint
Deployer" see [1], specifically the section on customizing the generated
manifest where it shows

<manifest xmlns="http://karaf.apache.org/xmlns/deployer/blueprint/v1.0.0">
Require-Bundle= my-bundle
</manifest>

The Require-Bundle header is documented at osgi.org at [2].

[1] https://karaf.apache.org/manual/latest/users-guide/deployers.html
[2] http://wiki.osgi.org/wiki/Require-Bundle


Hope that helps.
-John

Re: Using a specific bundle version (in Karaf in Blueprint/Camel context route.

Posted by rwoolf <ro...@rosswoolf.com>.
My blueprint xml file is my "bundle."  I drop the blueprint xml file into
the deploy directory.  I have two different blueprint xml files for the two
different contexts.  So in this regard they are different bundles.  But
they are not packaged as jar based bundles.  I'm guessing from what you
said that neither blueprint or camel will be able to provide any means to
declare a specific version dependency.  I would need to package these
blueprint xml files into real jar bundles in order to be able to declare
version dependencies.  Am I right?

It would be really nice if I could declare a version dependency in the
blueprint xml file and then just deploy that xml file.  Since blueprint is
geared towards OSGi it would be great if I could do something like this.

On Tue, Nov 10, 2015 at 12:12 AM, Claus Ibsen-2 [via Camel] <
ml-node+s465427n5773558h84@n5.nabble.com> wrote:

> Not if both CamelContext's are in the same bundle, and the API is
> exported in the same package name as well.
>
> You need to have one bundle per CamelContext, and then for that bundle
> you can import the API with the version range you want.
>
> On Mon, Nov 9, 2015 at 9:47 PM, rwoolf <[hidden email]
> <http:///user/SendEmail.jtp?type=node&node=5773558&i=0>> wrote:
>
> > Does Camel or Blueprint provide a way for me to use the same dependency
> model
> > as OSGi where I can specify a specific version of a bean to use in a
> camel
> > context when running in Karaf?
> >
> > If I have two different versions/bundles of an API jar in Karaf (theAPI
> > version 1, and theAPI version 2) is there a way to tell one camel
> context to
> > use version 1 of the bundle and another camel context to use version 2
> of
> > the bundle?
> >
> > theAPI is wired as a bean in a route within a camel context.  My camel
> > context is configured within a blueprint xml file.
> >
> > I know that when I create a bundle for Karaf I can declare dependencies
> > based on a bundle version number (basic OSGi), but I can't see a similar
> way
> > to do this at the camel level.
> >
> >
> >
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Using-a-specific-bundle-version-in-Karaf-in-Blueprint-Camel-context-route-tp5773548.html
> > Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://camel.465427.n5.nabble.com/Using-a-specific-bundle-version-in-Karaf-in-Blueprint-Camel-context-route-tp5773548p5773558.html
> To unsubscribe from Using a specific bundle version (in Karaf in
> Blueprint/Camel context route., click here
> <http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5773548&code=cm9zc0Byb3Nzd29vbGYuY29tfDU3NzM1NDh8NDI4MDIzOTky>
> .
> NAML
> <http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>




--
View this message in context: http://camel.465427.n5.nabble.com/Using-a-specific-bundle-version-in-Karaf-in-Blueprint-Camel-context-route-tp5773548p5773578.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Using a specific bundle version (in Karaf in Blueprint/Camel context route.

Posted by Claus Ibsen <cl...@gmail.com>.
Not if both CamelContext's are in the same bundle, and the API is
exported in the same package name as well.

You need to have one bundle per CamelContext, and then for that bundle
you can import the API with the version range you want.

On Mon, Nov 9, 2015 at 9:47 PM, rwoolf <ro...@rosswoolf.com> wrote:
> Does Camel or Blueprint provide a way for me to use the same dependency model
> as OSGi where I can specify a specific version of a bean to use in a camel
> context when running in Karaf?
>
> If I have two different versions/bundles of an API jar in Karaf (theAPI
> version 1, and theAPI version 2) is there a way to tell one camel context to
> use version 1 of the bundle and another camel context to use version 2 of
> the bundle?
>
> theAPI is wired as a bean in a route within a camel context.  My camel
> context is configured within a blueprint xml file.
>
> I know that when I create a bundle for Karaf I can declare dependencies
> based on a bundle version number (basic OSGi), but I can't see a similar way
> to do this at the camel level.
>
>
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Using-a-specific-bundle-version-in-Karaf-in-Blueprint-Camel-context-route-tp5773548.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2