camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From souciance <souciance.eqdam.ras...@gmail.com>
Subject Re: It IS possible to import routeContext in OSGi Blueprint
Date Tue, 31 May 2016 19:59:54 GMT
I am not sure I understand completely your requirement but I have done
something like this for my unit tests.

1. I created a separate blueprint.xml where only necessary routes are
created in the routebuilder ref statements. Other routes are not started.
2. In my @Before I do some advice with stuff and remove certain parts of a
route not wanted and then add the route to my context.
3. Start the context.

This way, you can make remove dependencies to other stuff like amqp
provider and only start routes when you need and also remove parts of a
route to mock certain responses.


On Tue, May 31, 2016 at 8:02 PM, owain [via Camel] <
ml-node+s465427n5783323h76@n5.nabble.com> wrote:

> ![](
> https://link.nylas.com/open/ez36v71u7uh7qiundny4ougdd/local-2413efdb-c652)
>
>
> Just come across this article  https://access.redhat.com/solutions/259293 and
>
> it something not easily found in the community.
> http://camel.465427.n5.nabble.com/camel-blueprint-unit-tests-td5738925.html
> and
> http://camel.apache.org/how-do-i-import-routes-from-other-xml-files.html
>
>
> So I have just split a small camelContext into three files thinking that
> this
> would make unit testing easier (and faster) by not having to load all of
> the
> routes and stopping/mocking the ones you are not actually testing.  So
> that we
> can aim for a TestClass for each of the separate routeContexts.
>
> However, if you set this up as below
>
>
>
>  &lt;camelContext id="i4ip-order"
> xmlns="http://camel.apache.org/schema/blueprint"&gt;
>    &lt;routeContextRef ref="i4ip-order-hello"/&gt;
>    &lt;routeContextRef ref="i4ip-order-hipchat"/&gt;
>  &lt;/camelContext&gt;
>
> &lt;/blueprint&gt;
>
> You are unable to just getBluePrintDescriptor of the individual route as
> you
> still need a camelContext which doesn't really get any closer to the
> individual route per unit test class.
> ~~~
>  @Override
>  protected String getBlueprintDescriptor() {
>    return "/OSGI-INF/blueprint/i4ip-order-hello-route.xml";
>  }
> ~~~
>
> all of the Blueprint routeContext  files reside is in the same blueprint
> directory as the "production" camelContext for this bundle.  It is the id
> and
> ref that link them together.
>
> ~~~
>  &lt;routeContext id="i4ip-order-hello"
> xmlns="http://camel.apache.org/schema/blueprint"&gt;
>
>    &lt;route id="i4ip-order-hello"&gt;
>      &lt;from id="fromTimer" uri="timer:foo?period=5000"/&gt;
>      &lt;setBody id="invokeHelloBean"&gt;
>        &lt;method ref="helloBean" method="hello"/&gt;
>      &lt;/setBody&gt;
>      &lt;log message="The message contains ${body}"/&gt;
>      &lt;to uri="seda:hipchatMessages" id="toHipchat"/&gt;
>    &lt;/route&gt;
>
>  &lt;/routeContext&gt;
> ~~~
>
>
> I don't want to have each routeContext in its own camelContext since that
> precludes seda and direct endpoints.
>
>
>
> Is there a way around this, like weave a "temporary" context around the
> routeContext just for unit testing.  I have had a play with this but I
> think I
> have to have a "context" every time.
>
>
>
> The other option I was thinking of was to use RouteBuillder to create a
> CamelContext then for it to pull in the relevant ref for the routeContext.
>
>
>
> Has anyone had any success with this or think of a better approach.
>
>
>
> Thanks,
>
>
>
> O.
>
>
>
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://camel.465427.n5.nabble.com/It-IS-possible-to-import-routeContext-in-OSGi-Blueprint-tp5783323.html
> To start a new topic under Camel - Users, email
> ml-node+s465427n465428h31@n5.nabble.com
> To unsubscribe from Camel - Users, click here
> <http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=465428&code=c291Y2lhbmNlLmVxZGFtLnJhc2h0aUBnbWFpbC5jb218NDY1NDI4fDE1MzI5MTE2NTY=>
> .
> 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/It-IS-possible-to-import-routeContext-in-OSGi-Blueprint-tp5783323p5783325.html
Sent from the Camel - Users mailing list archive at Nabble.com.
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message