You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Willem Jiang (JIRA)" <ji...@apache.org> on 2008/05/12 05:03:43 UTC
[jira] Updated: (SM-1111) Endpoint operation information lost when
routing through camel
[ https://issues.apache.org/activemq/browse/SM-1111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Willem Jiang updated SM-1111:
-----------------------------
Attachment: SM-1111.patch
Added the support of setting the JbiEndpoint's operation by using the Camel DSL , this patch also includes a test for it.
> Endpoint operation information lost when routing through camel
> --------------------------------------------------------------
>
> Key: SM-1111
> URL: https://issues.apache.org/activemq/browse/SM-1111
> Project: ServiceMix
> Issue Type: Bug
> Components: servicemix-camel
> Reporter: Kristian Koehler
> Assignee: Willem Jiang
> Attachments: patches.zip, SM-1111.patch
>
>
> Hi
> I encountered problems regarding message routing to the camel service engine and
> back to the jbi NMR again. The information about the ("initial") called
> operation on a endpoint is lost while communicating with camel.
> see also
> http://www.nabble.com/Possible-Solution-to-a-camel-serviceengine-problem-or-only-a-bad-workaround---tf4645158s12049.html
> IMHO there are three different strategies to solve this problem:
> (thanks Guillaume pointing me to them ;-) )
> * (1) DSL - API call within the RouteBuilder
> It's currently not possible to do this because the JbiEndpoint doesn't have
> methods to set the operation.
> Sample:
> --- 8< ---
> String toUri = "jbi:endpoint:xxx";
> Endpoint endpoint = getContext().getEndpoint(toUri);
> if (endpoint instanceof JbiEndpoint) {
>
> JbiEndpoint jbiEndpoint = (JbiEndpoint) endpoint;
> //not possible
> jbiEndpoint.setOperation(operation);
>
> }
>
> from(fromUri).to(toUri);
> --- 8< ---
> * (2) URI - Setting the operation within the endpoint URI.
> This option specifies the operation within the given endpoint URI. It's clear
> which operation should be called but you always have to define the operation
> for a routing.
> --- 8< ---
> String toUri = "jbi:endpoint:xxx?operation=process";
> from(fromUri).to(toUri);
> --- 8< ---
> * (3) Copying the information
> This option copies the operation information from the "from-"Endpoint to the
> "to-"Endpoint. This is a simple solution if you want to call the same
> operation on all endpoints involved.
> I think option 2 and 3 should be applied. Option 2 overrides option 3. If you
> specify a direct operation information within your URI this one is used.
> Kristian
> ps: option 2 and 3 are available as patches within the attached file
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.